Linux DNS

blob.png

libnss_files.so

libnss_dns

libnss_ldap

blob.png


展現的就是一個配置文件

/etc/nsswitch.conf

 

查看這個文件

blob.png

這個files就是通過libnss_files來找/etc/hosts

dns:指的就是DNS服務


stub resolver名稱解析器

ping www.magedu.com

 

先通個這個解析器找files對應的/etc/hosts看看有沒有這個名稱對應的IP地址,沒有就再給DNS

blob.png

blob.png

blob.png

blob.png

blob.png


DNS主從結構

片長掛了 副片長上

blob.png

版本號

檢查時間(是否有改變)

重試時間(萬一檢查失敗)

過期時間(萬一重試也失敗了)

否定答案的ttl

 

還有緩存服務器

轉發器,沒有緩存,只進行轉發

blob.png

blob.png

@ 代表ZONE NAME


blob.png

Domain:邏輯

區域ZONE:物理

blob.png

一、

至少有三個區域:

    根、  自己解析不了的 找根

    Locahost 正向區域

127.0.0.1 反向區域  其實這兩個都是別人要解析自己時的地址,一個正的,一個反的

 

區域數據文件:/var/named

named.ca    named.localhost   named.loopback    對應上面的根  本機正向,本機反向

 

directory : 固定工作路徑 (相對路徑)

type  { hint | master | slave | forward }       

                     轉發

 

二、

查看主配置文件 /etc/named.conf

備份下原配置文件

 

自己弄一個手動的配置文件   簡單

blob.png

這裏建了正向區域,還得去/var/named/下建立對應的數據文件

blob.png

blob.png

檢查語法


blob.png

blob.png

改屬主屬組和權限        跟原來文件權限一樣


blob.png

區域數據文件屬性也要改


blob.png

blob.png

查看tail  /var/log/messages 日誌信息

 

然後 重讀配置文件

killall  -1  named    不要重起服務,能夠重讀配置文件


blob.png

DNS指定自己IP

dig 測一下 如下圖:

blob.png

其實因爲已經修改了DNS指定,這裏就不用@IP地址也行


blob.png

blob.png

host命令也行

blob.png


windows上面測試:

blob.png


然後還要添加反向區域

blob.png


添加反向數據文件

blob.png

這樣快捷一些

然後修改:

blob.png

blob.png

blob.png

windows上檢測下,沒問題。


blob.png

泛域名解析

blob.png

有時,用戶輸錯也能定向到指定位置

blob.png



題外話:

原本named.conf文件

blob.png

只監聽在127.0.0.1  53端口上的  也就是隻監聽在本地回還接口上  不能和外界通信的

外面主機想通過它解析就不行,要把監聽端口改掉,就能變成緩存服務器

 

recurion yes 是否允許遞歸  不定義的話 默認開啓的  不過這樣不好

 

自定義給誰進行遞歸

allow -recursion  { 192.168.21.0/24; };  只給來自這個網段的地址遞歸

 

allow-query 只允許誰來查詢,一般用的不多

 

也可以寫成any

例子:

blob.png

此主機DNS爲有效 192.168.21.2   IP192.168.21.129

然後修改配置文件,將端口只監聽爲本機53端口

 

而此時,另一臺主機將DNS指定爲本機IP192.168.21.129

blob.png

解析不成功

 

一旦將配置文件中那行註釋掉

再嘗試有效

blob.png


blob.png

默認就是遞歸的,加了recurse一樣的


blob.png

+norecurse 就不進行遞歸了

找根,根告訴你直接找com.

 

從上面找一個com.地址 自己再找

blob.png

找到sohu.com. 還沒找到www.sohu.com

 

+trace 顯示查找信息

 

所以,如果我們把配置文件設置爲不允許遞歸,那麼除了我們負責的區域,其他解析就都沒用了

blob.png

表示不跟任何人遞歸


blob.png

這樣要找baidu就沒用了 因爲我們首先不負責這個域,得找根,再找com.

但因爲不遞歸了,所以沒有

 

panqi.com不同,這個域本就是我們所負責的,所以解析有效。

blob.png

blob.png

blob.png

改爲允許這個網段的遞歸,這樣就行了。因爲現在的DNS地址就在這個網段裏。


blob.png

127.0.0.1來試,雖然也是本機地址,但不在這個網段裏,所以不遞歸。


blob.png

把這個地址加上

blob.png

有效。


blob.png

完全區域傳送

得到對方區域內的所有數據


如果我在區域數據文件再加一條A記錄

同時,版本號加1

blob.png

這樣就會顯示新增一條記錄

 

這是從2018010101之後,變化的

blob.png

區域傳送:

有主、從結構

 

不是誰都能來的,只能允許自己的從服務器來

 

allow-transfer 允許誰來傳送的

寫在全局裏,對下面的每個區域都生效

可以寫在下面各個區域裏,只對各區域生效

 

 

比如允許給這臺主機傳送兩個區域,根,本機正向,反向都不允許

下圖:

blob.png

blob.png

根裏面不要加none,不允許。


blob.png

不讓傳了

 

把這臺DNS指向(上圖的IP地址配的DNS

blob.png

blob.png

定義中的這臺192.168.21.129IP就可以傳

如何配置DNS的從服務器

就以這臺129IP的主機爲例

 

只要建立主配置文件,數據文件傳送過來就行

已經裝好bind bind-utils

 

 

/var/named目錄 屬組權限無寫

blob.png

那麼我們區域傳送時,是以named進行的,其沒有對這個目錄的寫權限,所以,同步也不行。

 

於是,很貼心的幫我們建好了一個目錄,把同步過來的文件放這裏就行了。

blob.png

slaves 屬主屬組均爲named


blob.png

blob.png

blob.png

blob.png

主服務器上看日誌:顯示129過來同步數據了

blob.png

從上面看,也有了


傳送過來的寫得更標準:

blob.png

blob.png


下面來看看增量區域傳送會不會發生

主服務器里加一條A記錄試試:

blob.png

blob.png

blob.png

日誌顯顯重載成功

 

但傳送沒有發生

原因:當主服務器發生增量,應該會通知從服務器的,但我們沒有定義從,它找不到

我們只是在從裏面定義了主

修改數據文件:

blob.png

blob.png

blob.png

blob.png

兩邊都有日誌記錄

 

rndc命令

子命令:

reload 通知某個服務器,讓它重讀配置文件和區域數據文件

reload zone 只重讀區域數據文件,而且可以指定哪個

notify zone 手動讓某個區域向外發通知

reconfig 只重讀配置文件及新建的區域數據文件

flush 清空緩存


blob.png

blob.png

當前行到倒數第二行追加重定向到named.conf

 

修改下格式

blob.png

blob.png

blob.png

blob.png

-c可以不用指

默認讀這個配置文件

如果要控制遠程主機

blob.png

修改監聽的端口和允許的主機IP


blob.png

blob.png

必須將本機的這個key給另一臺主機

blob.png

blob.png


blob.png

這邊關掉,另一臺named服務就沒了

blob.png


blob.png

正向區域裏

要有:

子域區域名稱SUB_ZONE_NAME       IN     NS    NSSERVER_SUB_ZONE_NAME

還要有相應的A記錄

NSSERVER_SUB_ZONE_NAME          IN     A   子域裏作DNS服務器的那臺IP

 

panqi.com.

192.168.21.131

192.168.21.129

 

1vv.panqi.com.

vv.panqi.com.          IN             NS                   ns1.vv.panqi.com.

vv.panqi.com.          IN             NS                   ns2.vv.panqi.com.

ns1.vv.panqi.com.          IN             A               192.168.21.117

ns2.vv.panqi.com.          IN             A               192.168.21.118

 

2mm.panqi.com.

mm.panqi.com.             IN             NS                   ns.mm.panqi.com.

ns.mm.panqi.com.           IN             A               192.168.21.141

blob.png

blob.png

增量區域傳送


blob.png

從服務器上就有了

blob.png

修改vv上的配置文件


blob.png

blob.png

blob.png

配置文件和區域數據文件權限別忘了


blob.png

這個因爲用的DNS192.168.21.2 解析的是外網上的信息

blob.png

這個是以本機DNS解析  就能看到我們配置的作息


blob.png

blob.png

在從服務器上配置文件修改下

blob.png


blob.png


blob.png

主的日誌上顯示從的過來同步數據了


blob.png

從服務器上數據文件有了


blob.png

blob.png

效果一樣的 一主一從兩個DNS


blob.png

配置mm這臺機的named服務


blob.png

blob.png

blob.png

這個是解析外網的


blob.png

這個就是解析的自己配置的

 

但子域是找不到父域的

怎麼才能讓子域不能聯外網還能找到父域,並且可以讓父域出去找

 

定義轉發  父域要能給子域進行遞歸

forward

only 只給父域  不給找就算了

first 先給父域   找不到,再自己找根去了

 

先看first

blob.png

blob.png

雖然本機不負責panqi.com這個區 但因爲有first,所以先找父域,而父域就是負責這個域的

其實如果自己能上網,將不是父域負責的區域轉發父域也沒啥意義(因爲自己找或是父域找,都是非權威答案)

所以,我們最好將父域自己負責的區域轉給它,其他不用轉,比較合適。

blob.png

這樣寫,先建個區域,將請求這個區域的,轉發給父域,也就是它自己負責的區域

其他區域的就不再轉發了

 

但測試結果,看的不明顯。也看不出怎麼轉發的。

blob.png

我在主機裏定義了一個訪問.com的這個區域都轉發給.comns13個)而不是根來解析

 

試驗結果:

blob.png

跟以前不一樣了,變大寫了,我也不知道成不成功。??????


aa:權威答案


也可以定義acl列表:

blob.png

blob.png

blob.png

blob.png

dig -t axfr panqi.com @192.168.21.131

blob.png

一般來說 查詢 安全相關的不開啓日誌

更新相關開啓

 

queryperf 使用




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章