天天看點

建構主從DNS伺服器

                           建構主從DNS伺服器

實驗背景:

 公司注冊了DNS區域tarena.com,準備使用兩台RHEL5伺服器建構主、從域名系統,其中任何一台都能夠解析tarena.com域内的主機位址。

1.主DNS伺服器:svr5.tarena.com,192.168.4.5 。

2.從DNS伺服器:svr6.tarena.com,192.168.4.6 。

3.負責解析以下站點:

網站:www.tarena.com ? 192.168.4.100

郵件:mail.tarena.com ? 192.168.4.25

FTP:是www的别名

4.為*.tarena.com提供泛域名解析:192.168.4.100 。

實驗方案:

 使用2台RHEL 5虛拟機,其中一台作為主DNS伺服器(192.168.4.5)、另外一台作為從DNS伺服器(192.168.4.6),兩台RHEL 5虛拟機及Windows真機都可作為DNS客戶機執行測試。

實驗實作:

1.認識Linux中的bind域名服務軟體包

BIND不是唯一能夠提供域名服務的DNS服務程式,卻是應用最為廣泛的,BIND可以運作在大多數UNIX/Linux主機中。其官方站點位于https://www.isc.org/。

1)安裝bind相關的軟體包

RHEL 5系統CD光牒自帶了BIND服務的安裝檔案,主要包括以下軟體包:

bind-9.3.6-20.P1.el5_8.5.x86_64.rpm

bind-chroot-9.3.6-20.P1.el5_8.5.x86_64.rpm

bind-libs-9.3.6-20.P1.el5_8.5.x86_64.rpm

bind-utils-9.3.6-20.P1.el5_8.5.x86_64.rpm

caching-nameserver-9.3.6-20.P1.el5_8.5.x86_64.rpm

#rpm -ivh bind-9.3.6-20.P1.el5_8.5.x86_64.rpm bind-chroot-9.3.6-20.P1.el5_8.5.x86_64.rpm caching-nameserver-9.3.6-20.P1.el5_8.5.x86_64.rpm //安裝三個軟體包

2)了解bind、bind-chroot的配置路徑

# rpm -qc bind

/etc/dbus-1/system.d/named.conf /etc/logrotate.d/named /etc/named.conf                     //域名服務主配置檔案 /etc/rc.d/init.d/named

/etc/rndc.conf

/etc/rndc.key

/etc/sysconfig/named                 //服務程式named的選項配置檔案 /usr/share/dbus-1/services/named.service

# grep "^ROOTDIR" /etc/sysconfig/named //檢視真正的配置根目錄ROOTDIR=/var/named/chroot

 從上述定義可看出,服務程式named的主配置檔案最好存放到/var/named/chroot/etc目錄下,檔案名為named.conf:

3)

# chkconfig --list named                 //設定服務開機自啟動

2.搭建主DNS伺服器(192.168.4.5)

1)建構主配置檔案named.conf

直接用vim編輯器建立,存放到/var/named/chroot/etc/目錄下:

#cd /var/named/chroot/etc

#cp -p named.caching-nameserver.conf named.conf//複制模闆,保留權限不變

# vim ./etc/named.conf

2.options {                                 //定義全局選項

3.directory "/var/named";             //區域資料檔案的預設存放位置

4.allow-transfer { 192.168.4.6; };     //授權從DNS伺服器

5.};

6.zone "tarena.com" IN {                     //定義正向解析區域

7.type master;                         //類型為主區域

8.file "tarena.com.zone";             //本區域的位址資料檔案

9.};

10.zone "4.168.192.in-addr.arpa" IN {     //設定反向解析區域(不是必需的,可選)

11.type master;

12.file "192.168.4.arpa";

13.};

2)建立區域位址檔案(正向域tarena.com)

直接用vim編輯器建立,存放到/var/named/chroot/var/named/目錄下:

#cd ..//回到上一級目錄chroot

#cd ./var

#cp named.local tarena.com.zone

#vim /var/named/chroot/var/named/tarena.com.zone

2.$TTL 86400                                 //有效記錄的生存周期

3.@ IN SOA tarena.com. admin.tarena.com. ( //@表示目前tarena.com,

admin.tarena.com 表示郵箱,@變成了點.

4.2013101601                                 //更新序号

5.3H                                         //重新整理時間

6.15M                                         //重試間隔

7.1W                                         //失效時間

8.1D                                         //無效記錄的生存周期

9.)

10.@         IN NS         svr5.tarena.com.         //本域的DNS伺服器位址

11.            IN NS         svr6.tarena.com.         //本域的DNS伺服器位址

12.            IN MX 10    mail.tarena.com.         //本域的郵件伺服器位址

13.            IN A         192.168.4.100             //本域的預設IP位址

14.svr5     IN A         192.168.4.5             //A主機記錄

15.svr6     IN A         192.168.4.6

16.www         IN A         192.168.4.100

17.mail        IN A         192.168.4.25

18.ftp         IN CNAME    www                         //CNAME别名記錄

19.*         IN A        192.168.4.100             //*泛域名解析

3)建立區域位址檔案(反向域4.168.192.in-addr.arpa)

#cp -p tarena.com.zone 192.168.4.arpa

#vim 192.168.4.arpa//這裡編輯的還是/var/named/chroot/var/named/192.168.4.arpa

2.$TTL 86400

3.@ IN SOA tarena.com. admin.tarena.com. (

10.@         IN NS svr5.tarena.com.

11.        IN NS svr6.tarena.com.

12.5         IN PTR svr5.tarena.com.

13.6         IN PTR svr6.tarena.com.

14.25         IN PTR mail.tarena.com.

15.100         IN PTR www.tarena.com.//反向解析

4)檢查配置檔案是否正确

# named-checkconf etc/named.conf //沒有錯誤不提示

# named-checkzone tarena.com var/named/tarena.com.zone //沒有錯誤提示ok

# named-checkzone 4.168.192.in-addr.arpa var/named/192.168.4.arpa

5)啟動named服務,并在本機測試DNS解析是否符合預期

# service named restart                 //重新開機named服務

# vim /etc/resolv.conf //修改本機的DNS設定檔案:

nameserver 192.168.4.5                             //首選DNS指向主DNS伺服器

測試正向解析,都與預期的結果一緻:

1.[root@svr5 ~]# host svr5.tarena.com

2.svr5.tarena.com has address 192.168.4.5

3.[root@svr5 ~]# host svr6.tarena.com

4.svr6.tarena.com has address 192.168.4.6

5.[root@svr5 ~]# host mail.tarena.com

6.mail.tarena.com has address 192.168.4.25

7.[root@svr5 ~]# host www.tarena.com

8.www.tarena.com has address 192.168.4.100

測試反向解析(抽查),也都與預期的結果一緻:

1.[root@svr5 ~]# host 192.168.4.5

2.5.4.168.192.in-addr.arpa domain name pointer svr5.tarena.com.

3.[root@svr5 ~]# host 192.168.4.25

4.25.4.168.192.in-addr.arpa domain name pointer mail.tarena.com.

測試泛域名解析(查詢幾個不存在的域名),也都正确給出結果:

1.[root@svr5 ~]# host abc.tarena.com

2.abc.tarena.com has address 192.168.4.100

3.[root@svr5 ~]# host xxyyzz.tarena.com

4.xxyyzz.tarena.com has address 192.168.4.100

3.搭建從DNS伺服器(192.168.4.5)

在從DNS伺服器上,主配置檔案named.conf的内容大部分與主DNS伺服器上相同,是以隻要複制過來稍加改動即可,建議采用scp遠端複制:

# cd /var/named/chroot/etc/     //切換到主配置目錄

# scp [email protected]:/var/named/chroot/etc/named.conf ./

//遠端複制,保留到目前目錄下

2)  對複制過來的named.conf進行修改——去掉主DNS配置的allow-transfer授權,将正、反向區域的類型改為slave,并添加masters配置指定主DNS伺服器:

# vim /var/named/chroot/etc/named.conf

2.options {

3.directory "/var/named";

4.#allow-transfer { 192.168.4.6; };         //移除此行授權配置

6.zone "tarena.com" IN {

7.type slave;                                 //區域類型改為slave

8.file "slaves/tarena.com.zone";             //改為儲存到slaves/子目錄下

9.masters { 192.168.4.5; };                 //指定主DNS伺服器的位址

10.};

11.zone "4.168.192.in-addr.arpa" IN {

12.type slave;                                 //區域類型改為slave

13.file "slaves/192.168.4.arpa";             //指定主DNS伺服器的位址

14.masters { 192.168.4.5; };                 //改為儲存到slaves/子目錄下

15.};

 因為named服務程式的預設運作身份是named使用者,當從DNS伺服器自動從主DNS伺服器下載下傳區域位址資料檔案後,需要有本地寫入權限才能儲存成功。預設情況下,子目錄是專為主從同步準備的,named使用者有權限寫入:這裡的權限錯誤頁容易出錯,需要注意

2)建立區域位址檔案

對于從DNS伺服器來說,此步驟不需要做(因為會自動從主DNS伺服器下載下傳)。

在從DNS伺服器的named服務未啟動之前,沒有(也不需要有)區域位址檔案:

3)啟動named服務,确認已成功從主DNS伺服器下載下傳區域位址檔案

 檢查slaves/目錄,可發現已自動下載下傳正、反向區域位址檔案:

#ls -l /var/named/chroot/var/named/slaves/

 如果前面忘記将存放位置改成slaves/目錄下,則極可能因為無權限寫入而導緻區域檔案下載下傳失敗,此時檢查從DNS的日志應發現類似下列的提示:

dumping master file: tmp-MoaX2hDvPO: open: permission denied                                     //導出檔案到本地時被拒絕

Oct 16 15:54:39 svr6 named[16371]: transfer of 'tarena.com/IN' from 192.168.4.5#

53: failed while receiving responses: permission denied

                                               //最終回報:通路被拒絕

 隻要修正存放位置或解決named使用者的寫入權限問題,故障就會解決了。

4)在從DNS伺服器本機測試DNS解析是否符合預期

  測試操作與前面類似,使用host或nslookup都可以。

修改本機的DNS設定檔案:

# vim /etc/resolv.conf //此處容易忘記修改從伺服器的dns配置檔案,不修改時解析不出來的

抽查正向解析,與預期結果一緻:

1.[root@svr6 ~]# host www.tarena.com

2.www.tarena.com has address 192.168.4.100

3.[root@svr6 ~]# host svr5.tarena.com

4.svr5.tarena.com has address 192.168.4.5

抽查反向解析,與預期結果一緻:

1.[root@svr6 ~]# host 192.168.4.5

3.[root@svr6 ~]# host 192.168.4.25

測試泛域名解析,也能正确得出結果(192.168.4.100):

1.[root@svr6 ~]# host abc.tarena.com

3.[root@svr6 ~]# host xxyyzz.tarena.com

4.主、從DNS解析整體測試

1)修改客戶機的DNS伺服器指向

在主機192.168.4.5上,指定首選、輔助DNS伺服器:

# vim /etc/resolv.conf

2.search localdomain

3.nameserver 192.168.4.5                             //首選DNS伺服器

4.nameserver 192.168.4.6                             //輔助DNS伺服器

在主機192.168.4.5上,也指定首選、輔助DNS伺服器:

1.[root@svr6 ~]# vim /etc/resolv.conf

3.nameserver 192.168.4.6                             //首選DNS伺服器

4.nameserver 192.168.4.5                             //輔助DNS伺服器

實驗總結:

1  此實驗中尤其需要注意路徑,本實驗的各種路徑都是在/var/named/chroot/下的var和etc目錄下操作的

,在切換路徑的時候習慣性的在前面加上/ ,這樣就切換到根下了,是不正确的。

2  正向解析式最後的tarena.com. 後面的.不要忘記  

3  要解析出dns伺服器,還不要忘記修改/etc/resolve.conf檔案,添加本機的namesearch

4  如果還是解析不出來,可以檢視/var/log/message 檢視日志,日志中有的會提醒...denied 表示檔案的  屬性改變了,配置檔案和區域配置檔案的所屬組應該是named,檢視這幾個檔案的權限,如果是boot該為 named

例:chgrp named /var/named/chroot/etc/named.conf

 chgrp named /var/named/chroot/var/named/tarena.com.zone

chgrp named /var/named/chroot/etc/192.168.4.arpa

5 named.conf 的檢查指令是:named-checkconf ./etc/named.conf

 區域檔案的檢查指令是: named-checkzone tarena.com ./var/named/tarena.com.zone

named-checkzone tarena.com ./var/named/192.168.4.arpa

 每次配置完,用檢查指令接着檢查下,剛剛配置的是否正确

6。在設定别名的時候,IN之後的A改為CNAME,去掉A不要保留着,這裡自己容易忘記删除A

7.從dns伺服器要想從主伺服器上擷取資訊,首先要保證他們2個之間是能ping通的,解析不出也有可能是2個伺服器之間不能ping通

8.在編輯各個配置檔案的時候要注意标點符号的遺漏,像; ,在}外有;,不要遺漏

9 要學會用日志來檢查出錯資訊,要留意出錯時的錯誤提示資訊,根據提示資訊去找出錯誤并改正。

10 DNS使用端口  tcp/udp 53

11DNS負載均衡--同一個域名對應多個ip位址

12泛域名解析中有規律時的設定:

$GENERATE 1-200 station$ INA 192.168.4.$//正向解析

$GENERATE 1-200$INAstation$.tarena.com.//反向解析

繼續閱讀