1. 程式人生 > >構建DNS緩存、主從域名服務器

構建DNS緩存、主從域名服務器

分享 ces 位置 解析 去掉 roc 序列號 hosts 分號

前言:DNS(DomainNameSystem)是“域名系統”的英文縮寫,是一種組織成域層次結構的計算機和網絡服務的命名系統。
現如今大部分網站都有域名,比IP訪問網站更加直觀,而且更容易被用戶記住。
作用:將相關的域名翻譯成網絡能接受的IP地址

搭建緩存域名服務器

具體步驟:
插入安裝光盤並掛載,然後安裝bind軟件包及相關的軟件包。如圖所示:

技術分享圖片
技術分享圖片

2.編輯主配置文件。
主配置文件named.conf通常位於/etc/目錄下,如果安裝了bind-chroot軟件包,則主配置文件默認位於/var/named/chroot/etc/目錄下,需要用戶手工建立。在named.conf文件中,主要包括全局配置、區域配置兩個部分,每一條配置記錄的行尾以分號“;”表示結束,以“#”號或“//”開始的部分表示註釋文件(大段註釋可以使用“/……

/”的格式)。如圖所示:
技術分享圖片

技術分享圖片

上述配置內容中,除了directory項通常會保留以外,其他的配置項都可以省略。若不指定listen-on配置項時,named默認在所有接口的UDP 53端口監聽服務;不指定allow-query配置項時,默認會響應所有客戶機的查詢請求。dump-file、statistics-file、memstatistics-file等配置項用於指定緩存數據庫文件、狀態統計文件的位置。添加了“zone “.” in { };”部分的根區域設置,盡管緩存服務器並沒有自主控制的區域數據,但可以向根服務器進行叠代查詢,並將最終獲得的解析結果反饋給客戶。
有時候為了提高解析效率,也可以不向根分區查詢,而是將來自客戶端的查詢請求轉發給國內電信運營商的DNS服務器(如北京的202.106.0.20、202.106.148.1),緩存服務器收到返回的查詢結果後再傳遞給客戶端。只要去掉“zone “.” in {……};”的設置,並在全局配置中正確設置forwarders參數即可實現該功能。如下所示:

[root@localhost ~]# vim /var/named/chroot/etc/named.conf
options {
…… //省略部分內容
Forwarders { 202.106.0.20;202.106.148.1 };
};
3.確認根域的區域數據庫文件named.ca
根區域的區域數據庫文件默認位於文件/var/named/chroot/var/named/named.ca中,該文件記錄了Internet中13臺根域服務器的域名和IP地址等相關信息。如圖所示:
技術分享圖片

技術分享圖片

4.啟動named服務
執行“service named start”命令,啟動named服務,並通過netstat命令確認named服務的端口監聽狀態。若服務啟動失敗或發現沒有正常監聽UDP 53端口,可以根據錯誤提示信息(或者/var/log/messages文件中的日誌記錄)排除錯誤,

然後再重啟服務即可。如圖所示:
技術分享圖片

緩存服務器搭建成功!
搭建主域名服務器
技術分享圖片

具體步驟:
1.設置本機的IP地址、主機名稱,通過修改網絡配置文件的方式進行。另外,為了提高域名解析效率,建議將兩個DNS服務器的地址映射直接寫入到/etc/hosts文件中,並在/etc/resolv.conf文件中指定兩個DNS服務器的地址。如圖所示:
技術分享圖片

技術分享圖片

技術分享圖片
技術分享圖片
技術分享圖片
2.建立主配置文件named.conf
新創建的named.conf主配置文件,由於只需要提供benet.com域的正向解析和173.16.16.0/24網段的反向解析,因此相應的添加這兩個區域即可。根區域、回環域等其他配置內容可以省略。如圖所示:
技術分享圖片
技術分享圖片
當不需要建立從域名服務器時,上述配置內容中的“allow-transfer……”部分可以不添加;當不需要提供反向解析,“zone “16.16.173.in-addr.arpa”……”部分也可以去掉。
3.建立正、反向區域數據文件
根據named.conf中的zone區域設置,分別建立正向區域數據文件benet.com.zone、反向區域數據文件173.16.16.arpa。配置內容可以參考回環域的區域數據文件/var/named/chroot/var/named/localdomain.zone,並根據實際情況進行修改。
區域數據配置文件通常位於/var/named/目錄下。如果安裝了bind-chroot軟件包,則默認位於/var/named/chroot/var/named/目錄下,需要手工建立。每個區域數據文件對應一個DNS解析區域,文件名及內容由該域的管理員自行設置。
在區域數據文件中,主要包括TTL配置項、SOA(Start Of Authority,授權信息開始)記錄、地址解析記錄。文件中的註釋信息以分號“;”開始。如圖所示:![](http://i2.51cto.com/images/blog/201801/17/db0d85685117b4bd81a8d72a0ae1783b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201801/17/fafca7d2e98ce99b159b8855f03bebe7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
上述配置內容中,時間單位默認為秒,也可以使用以下單位:M(分)、H(時)、W(周)、D(天)。文件中的“@”符號表示當前的DNS區域名,相當於“benet.com.”,“admin.benet.com.”表示域管理員的電子郵箱地址(由於“@”符號已有其他含義,因此將郵件地址中的“@”用“.”代替)。SOA記錄中的更新序列號用來同步主、從服務器的區域數據,當從服務器判斷區域更新時,若發現主服務器中的序列號與本地區域數據中的序列號相同,則不會進行下載。
br/>![](http://i2.51cto.com/images/blog/201801/17/db0d85685117b4bd81a8d72a0ae1783b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201801/17/fafca7d2e98ce99b159b8855f03bebe7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
上述配置內容中,時間單位默認為秒,也可以使用以下單位:M(分)、H(時)、W(周)、D(天)。文件中的“@”符號表示當前的DNS區域名,相當於“benet.com.”,“admin.benet.com.”表示域管理員的電子郵箱地址(由於“@”符號已有其他含義,因此將郵件地址中的“@”用“.”代替)。SOA記錄中的更新序列號用來同步主、從服務器的區域數據,當從服務器判斷區域更新時,若發現主服務器中的序列號與本地區域數據中的序列號相同,則不會進行下載。
技術分享圖片
技術分享圖片
在反向區域數據文件中,不會用到A地址記錄,而是使用PTR指針(Point)的記錄。使用PTR記錄時,第一列中只需要指明對應IP地址的“主機地址”部分即可,如“1”、“2”等,系統在查找地址記錄時會自動將當前反向域的網絡地址作為前綴。
在區域數據配置文件中,凡是不以點號“.”結尾的主機地址,系統在查找地址記錄中都會自動將當前的域名作為後綴。
?修改完主配置文件以後,可以執行named-checkconfig命令對named.conf文件進行語法檢查。如果文件中沒有語法錯誤,該命令將不給出任何提示;反之,則會給出相應的提示信息,只要根據出錯信息提示修正文件中的錯誤即可。帶“-z”選項的named-checkconfig命令還可以嘗試加載主配置文件中對應的區域數據庫文件,並檢查該文件是否存在問題。如圖所示:
技術分享圖片
關於named.conf文件中各種配置項的詳細說明,可以執行“man named.conf”查看手冊頁,也可參考配置樣本文件/usr/share/doc/bind-9.3.6/sample/etc/named.conf。
?修改完區域數據庫文件以後,可以執行named-checkzone命令對該文件進行語法檢查。依次指定區域名稱、數據文件名作為參數。如果文件中沒有語法錯誤,系統將給出“OK”的提示信息。如圖所示:
技術分享圖片
執行“service named start”命令以啟動named服務,如果之前named服務已經在運行,也可以重啟服務或重載配置。如圖所示:
技術分享圖片
在客戶端將DNS服務器指向173.16.16.5(主域名服務器的IP地址),使用nslookup命令驗證DNS查詢結果。如圖所示:
技術分享圖片
技術分享圖片
技術分享圖片
主域名服務器已搭建好!
搭建從域名服務器
具體步驟:
1.確認本機的網絡地址、主機映射、默認DNS服務器地址
將從域名服務器的IP地址設為173.16.16.6,主機名設為ns2.benet.com,通過修改網絡配置文件的方式進行。另外,主機映射文件/etc/hosts和DNS解析文件/etc/resolv.conf的內容與主服務器中的內容相同。
2.建立主配置文件named.conf
在從域名服務器中,named.conf文件的內容與主服務器的內容大部分相同,只是不需要再設置“allow-transfer ……”;更關鍵的一點是,zone部分的區域類型應設置為“slave”,並添加“masters { };”語句來指定主域名服務器的地址。如圖所示:
技術分享圖片
技術分享圖片
由於從服務器的區域數據文件是從主服務器中下載而來,因此該文件保存的名稱可以自行定義,不用非得與主服務器中的一致。但需要註意的是,named”服務默認以名為“named”的用戶身份運行,因此要確認named用戶對存放目錄有寫入權限。
技術分享圖片
3.啟動named服務,查看區域數據文件是否下載成功
在從域名服務器中執行“service named start”命令以啟動named服務。
技術分享圖片
若配置無誤,則named將會從主域名服務器中自動下載指定的區域數據文件,並保存到“slaves/”目錄下。另外,通過系統日誌文件/var/log/messages也可以觀察到下載區域數據文件的過程。
技術分享圖片
4.驗證從域名服務器
驗證從域名服務器時,只需要將客戶端的首選DNS服務器地址設為173.16.16.6(從域名服務器的IP地址),使用nslookup命令進行正常測試即可。如圖所示:
技術分享圖片
從域名服務器已搭建好!
Linux清除緩存命令:rndc flush
Linux客戶端沒有緩存

構建DNS緩存、主從域名服務器