libnss_files.so
libnss_dns
libnss_ldap
展現的就是一個配置文件
/etc/nsswitch.conf
查看這個文件
這個files就是通過libnss_files來找/etc/hosts
dns:指的就是DNS服務
stub resolver名稱解析器
ping www.magedu.com
先通個這個解析器找files對應的/etc/hosts看看有沒有這個名稱對應的IP地址,沒有就再給DNS
DNS主從結構
片長掛了 副片長上
版本號
檢查時間(是否有改變)
重試時間(萬一檢查失敗)
過期時間(萬一重試也失敗了)
否定答案的ttl
還有緩存服務器
轉發器,沒有緩存,只進行轉發
@ 代表ZONE NAME
域Domain:邏輯
區域ZONE:物理
一、
至少有三個區域:
根、 自己解析不了的 找根
Locahost 正向區域
127.0.0.1 反向區域 其實這兩個都是別人要解析自己時的地址,一個正的,一個反的
區域數據文件:/var/named
named.ca named.localhost named.loopback 對應上面的根 本機正向,本機反向
directory : 固定工作路徑 (相對路徑)
type { hint | master | slave | forward }
根 主 從 轉發
二、
查看主配置文件 /etc/named.conf
備份下原配置文件
自己弄一個手動的配置文件 簡單
這裏建了正向區域,還得去/var/named/下建立對應的數據文件
檢查語法
改屬主屬組和權限 跟原來文件權限一樣
區域數據文件屬性也要改
查看tail /var/log/messages 日誌信息
然後 重讀配置文件
killall -1 named 不要重起服務,能夠重讀配置文件
DNS指定自己IP
dig 測一下 如下圖:
其實因爲已經修改了DNS指定,這裏就不用@IP地址也行
host命令也行
在windows上面測試:
然後還要添加反向區域
添加反向數據文件
這樣快捷一些
然後修改:
windows上檢測下,沒問題。
泛域名解析
有時,用戶輸錯也能定向到指定位置
題外話:
原本named.conf文件
只監聽在127.0.0.1 53端口上的 也就是隻監聽在本地回還接口上 不能和外界通信的
外面主機想通過它解析就不行,要把監聽端口改掉,就能變成緩存服務器
recurion yes 是否允許遞歸 不定義的話 默認開啓的 不過這樣不好
自定義給誰進行遞歸
allow -recursion { 192.168.21.0/24; }; 只給來自這個網段的地址遞歸
allow-query 只允許誰來查詢,一般用的不多
也可以寫成any
例子:
此主機DNS爲有效 192.168.21.2 IP:192.168.21.129
然後修改配置文件,將端口只監聽爲本機53端口
而此時,另一臺主機將DNS指定爲本機IP:192.168.21.129
解析不成功
一旦將配置文件中那行註釋掉
再嘗試有效
默認就是遞歸的,加了recurse一樣的
+norecurse 就不進行遞歸了
找根,根告訴你直接找com.問
從上面找一個com.地址 自己再找
找到sohu.com. 還沒找到www.sohu.com
+trace 顯示查找信息
所以,如果我們把配置文件設置爲不允許遞歸,那麼除了我們負責的區域,其他解析就都沒用了
表示不跟任何人遞歸
這樣要找baidu就沒用了 因爲我們首先不負責這個域,得找根,再找com.
但因爲不遞歸了,所以沒有
而panqi.com不同,這個域本就是我們所負責的,所以解析有效。
改爲允許這個網段的遞歸,這樣就行了。因爲現在的DNS地址就在這個網段裏。
用127.0.0.1來試,雖然也是本機地址,但不在這個網段裏,所以不遞歸。
把這個地址加上
有效。
完全區域傳送
得到對方區域內的所有數據
如果我在區域數據文件再加一條A記錄
同時,版本號加1
這樣就會顯示新增一條記錄
這是從2018010101之後,變化的
區域傳送:
有主、從結構
不是誰都能來的,只能允許自己的從服務器來
allow-transfer 允許誰來傳送的
寫在全局裏,對下面的每個區域都生效
可以寫在下面各個區域裏,只對各區域生效
比如允許給這臺主機傳送兩個區域,根,本機正向,反向都不允許
下圖:
根裏面不要加none,不允許。
不讓傳了
把這臺DNS指向(上圖的IP地址配的DNS)
定義中的這臺192.168.21.129的IP就可以傳
如何配置DNS的從服務器
就以這臺129IP的主機爲例
只要建立主配置文件,數據文件傳送過來就行
已經裝好bind bind-utils
/var/named目錄 屬組權限無寫
那麼我們區域傳送時,是以named進行的,其沒有對這個目錄的寫權限,所以,同步也不行。
於是,很貼心的幫我們建好了一個目錄,把同步過來的文件放這裏就行了。
slaves 屬主屬組均爲named
主服務器上看日誌:顯示129過來同步數據了
從上面看,也有了
傳送過來的寫得更標準:
下面來看看增量區域傳送會不會發生
主服務器里加一條A記錄試試:
日誌顯顯重載成功
但傳送沒有發生
原因:當主服務器發生增量,應該會通知從服務器的,但我們沒有定義從,它找不到
我們只是在從裏面定義了主
修改數據文件:
兩邊都有日誌記錄
rndc命令
子命令:
reload 通知某個服務器,讓它重讀配置文件和區域數據文件
reload zone 只重讀區域數據文件,而且可以指定哪個
notify zone 手動讓某個區域向外發通知
reconfig 只重讀配置文件及新建的區域數據文件
flush 清空緩存
當前行到倒數第二行追加重定向到named.conf中
修改下格式
-c可以不用指
默認讀這個配置文件
如果要控制遠程主機
修改監聽的端口和允許的主機IP
必須將本機的這個key給另一臺主機
這邊關掉,另一臺named服務就沒了
正向區域裏
要有:
子域區域名稱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
1:vv.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
2:mm.panqi.com.
mm.panqi.com. IN NS ns.mm.panqi.com.
ns.mm.panqi.com. IN A 192.168.21.141
增量區域傳送
從服務器上就有了
修改vv上的配置文件
配置文件和區域數據文件權限別忘了
這個因爲用的DNS是192.168.21.2 解析的是外網上的信息
這個是以本機DNS解析 就能看到我們配置的作息
在從服務器上配置文件修改下
主的日誌上顯示從的過來同步數據了
從服務器上數據文件有了
效果一樣的 一主一從兩個DNS
配置mm這臺機的named服務
這個是解析外網的
這個就是解析的自己配置的
但子域是找不到父域的
怎麼才能讓子域不能聯外網還能找到父域,並且可以讓父域出去找
定義轉發 父域要能給子域進行遞歸
forward:
only 只給父域 不給找就算了
first 先給父域 找不到,再自己找根去了
先看first
雖然本機不負責panqi.com這個區 但因爲有first,所以先找父域,而父域就是負責這個域的
其實如果自己能上網,將不是父域負責的區域轉發父域也沒啥意義(因爲自己找或是父域找,都是非權威答案)
所以,我們最好將父域自己負責的區域轉給它,其他不用轉,比較合適。
這樣寫,先建個區域,將請求這個區域的,轉發給父域,也就是它自己負責的區域
其他區域的就不再轉發了
但測試結果,看的不明顯。也看不出怎麼轉發的。
我在主機裏定義了一個訪問.com的這個區域都轉發給.com的ns(13個)而不是根來解析
試驗結果:
跟以前不一樣了,變大寫了,我也不知道成不成功。??????
aa:權威答案
也可以定義acl列表:
dig -t axfr panqi.com @192.168.21.131
一般來說 查詢 安全相關的不開啓日誌
更新相關開啓
queryperf 使用