RHEL5&Centos5.5上構建主從DNS

實驗環境說明

                操作系統     主機名    網卡數量          IP               用途
 --------------------------------------------------------------------------------------------------
                RHEL5         ns1       1塊        192.10.10.5/24         主DNS
 --------------------------------------------------------------------------------------------------
              Centos5.5       ns2       1塊        192.10.10.55/24        輔助DNS
 --------------------------------------------------------------------------------------------------
               Xp          Xp_client    1塊        192.10.10.10/24        內網客戶端 
 --------------------------------------------------------------------------------------------------
        以上,先用ping命令測試確保網絡連通性


一、在RHEL5上檢查構建DNS所需的安裝包

[root@ns1 ~]# rpm -qa |grep bind*
bind-utils-9.3.3-7.el5  #提供對DNS服務器的測試用的工具,如nslookup,dig等
bind-chroot-9.3.3-7.el5 #爲bind提供一個僞裝根目錄以增強安全性
bind-9.3.3-7.el5        #構建DNS的主要程序包

[root@ns1 ~]# rpm -qa |grep caching-name*
caching-nameserver-9.3.3-7.el5   #爲實現緩存DNS服務器提供必要的配置文件


BIND的主配置文件爲named.conf,RHEL5和Centos5.5的/etc和/var/named/chroot/etc下默認沒有此文件,需要手動建立,也可以從/usr/share/doc/bind-9.3.3/sample/etc/下複製BIND的主配置樣本文件到/var/named/chroot/etc下。
named.conf配置文件中主要包括全局配置和區域配置部分,全局配置部分包括在"options { };"的大括號中;而區域配置參數在"zone { };"中。

二、爲提高域名解析效率,需要將主從DNS的地址寫入到/etc/hosts,同時在/etc/resolv.conf文件中指定主從DNS地址。

[root@ns1 named]# cat /etc/hosts   #將主從DNS地址寫入到hosts文件中
# Do not remove the following line, or various programs
# that require network functionality will fail.
192.10.10.5    ns1.tgh.com  ns1
192.10.10.55    ns2.tgh.com  ns2

[root@ns1 named]# cat /etc/resolv.conf #將主從DNS地址寫入到resolv.conf文件中
search tgh.com
nameserver 192.10.10.5
nameserver 192.10.10.55

[root@ns1 ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=ns1.tgh.com    #設置主機名
GATEWAY=192.10.10.1

三、手動創建BIND主配置文件

[root@ns1 ~]#vi /var/named/chroot/etc/named.conf   #使用vi創建並編輯BIND主配置文件named.conf
#全局配置參數
options { 
     listen-on port 53 { any; };  #設定監聽端口號、IP地址;若註釋此行,則在所有的可用IP地址上監聽服務,any爲監聽所有
     directory  "/var/named/";             #此行不能註釋,指定區域數據庫文件存放位置
     allow-query  { any; };                  #允許DNS查詢的客戶端地址,any表示所有都可查詢
     recursion yes;                            #設置允許遞歸查詢
};
#區域配置參數
zone "." IN {                    #設置根區域
        type hint;               #區域類型,hint表示根域、master表示主域、slave表示輔助域
        file "named.ca";         #對應的根域地址數據庫文件名
};

zone "tgh.com" IN {                     #設置正向DNS區域名稱
      type master;                      #區域類型爲主域
      file "tgh.com.zone";              #正向區域的地址數據庫文件名
      allow-transfer { 192.10.10.55; }; #設置允許下載區域數據庫信息的從域名服務器地址
      allow-update { none; };           #設置允許動態更新的客戶端地址爲禁止
};
zone "10.10.192.in-addr.arpa" IN {      #設置反向DNS區域名稱
      type master;                      #區域類型爲主域
      file "192.10.10.arpa";            #反向區域的地址數據庫文件名
      allow-transfer { 192.10.10.55;};  #設置允許下載區域數據庫信息的從域名服務器地址
      allow-update { none; };
};
:wq! #保存退出!

[root@ns1 etc]#chmod 755 named.conf #給予相關權限,不然在啓動named時會報錯
[root@ns1 etc]# ll named.conf   #查看區域配置文件的屬性
-rwxr-xr-x 1 root root 780 Nov 24 07:37 named.conf

[root@ns1 ~]# named-checkconf /var/named/chroot/etc/named.conf   #檢查主配置文件是否存在語法錯誤,注意指定路徑哦

四、手動創建BIND的區域數據庫配置文件

[root@ns1 ~]# vi /var/named/chroot/var/named/tgh.com.zone   #創建正向區域數據庫文件,注意文件名及路徑

$TTL 86400     #設置有效地址解析記錄的默認緩存時間
@ IN SOA tgh.com. admin.tgh.com. (    #設置SOA標記、域名、域管理郵箱
            2010112001             #更新序列號,用於標記地址數據庫的變化,可以是10位以內的整數
            4H                     #刷新時間,從域名服務器更新該地址數據庫文件的間隔時間
            15M                    #重試時間,從域名服務器更新地址數據庫失敗後,等待多長時(15 Minutes)間再次嘗試
            1W                     #失效時間,超過該時間(1 Week)仍無法更新地址數據庫,則不再嘗試
            1D                     #設置無效地址解析記錄的默認緩存時間(1 Day)
)
@    IN   NS   ns1.tgh.com.      #NS爲域名服務器記錄,用於設置當前域的DNS服務器的域名地址,注意名稱後都有"."
@    IN   NS   ns2.tgh.com.
     IN   MX 5 mail.tgh.com.    #MX郵件交換記錄,用於設置當前域的郵件服務器域名地址,數字表優先級,越大越低
ns1  IN   A    192.10.10.5       #A地址記錄,用於記錄正向域名解析
ns2  IN   A    192.10.10.55
www  IN   A    192.10.10.5
www  IN   A    192.10.10.4       #此處假設一個域名對應多個IP,可以實現基於DNS解析的負載均衡   
mail IN   A    192.10.10.5
ftp  IN   A    192.10.10.5
sz   IN  CNAME www              #CNAME別名記錄,表示sz.tgh.com是www.tgh.com的別名,可以通過nslookup sz.tgh.com查看到
*    IN   A    192.10.10.5      #當一個IP對應大量不同域名時,用作泛域名解析
:wq! #保存退出!
[root@ns1 ~]# vi /var/named/chroot/var/named/192.10.10.arpa   #創建反向區域數據庫文件,注意文件名及路徑

$TTL 86400
@      IN SOA tgh.com. admin.tgh.com. (
             2010112001
             4H
             15M
             1W
             1D
)
@      IN NS   ns1.tgh.com.    #注意名稱後有"."
@      IN NS   ns2.tgh.com.
5      IN PTR  ns1.tgh.com.
55     IN PTR  ns2.tgh.com.
5      IN PTR  www.tgh.com.   #PTR指針記錄,第一列爲主機地址
4      IN PTR  www.tgh.com.   #此處對應正向區域數據庫中的假設一個域名對應多個IP
5      IN PTR  mail.tgh.com.
5      IN PTR  ftp.tgh.com.

:wq! #保存退出!

五、給予相關權限,啓動named服務,並關閉防火牆

[root@ns1 named]# chmod 755 tgh.com.zone   #給予相關權限
[root@ns1 named]# chmod 755 192.10.10.arpa #給予相關權限
[root@ns1 ~]# service named restart   #重新啓動named服務
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]

[root@ns1 etc]# service iptables stop #關閉防火牆,不然客戶端不能正常解析
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: filter                    [  OK  ]
Unloading iptables modules:                                [  OK  ]

[root@ns1 ~]# chkconfig  --level 35 named on   #將named服務設爲開機自啓動

[root@ns1 ~]# chkconfig --list  named   #查看是否在3 5開啓
named           0:off   1:off   2:off   3:on    4:off   5:on    6:off

[root@ns1 data]# netstat -anp |grep :53  #查看named端口狀態

六、驗證主域名服務器
[root@ns1 ~]# nslookup   #啓用nslookup查詢
> www.tgh.com
Server:         192.10.10.5
Address:        192.10.10.5#53

Name:   www.tgh.com
Address: 192.10.10.5
> mail.tgh.com
Server:         192.10.10.5
Address:        192.10.10.5#53

Name:   mail.tgh.com
Address: 192.10.10.5
> sz.tgh.com
Server:         192.10.10.5
Address:        192.10.10.5#53

sz.tgh.com      canonical name = www.tgh.com.
Name:   www.tgh.com
Address: 192.10.10.5

> 192.10.10.5   #反向解析
Server:         192.10.10.5
Address:        192.10.10.5#53

5.10.10.192.in-addr.arpa        name = ftp.tgh.com.
5.10.10.192.in-addr.arpa        name = ns1.tgh.com.
5.10.10.192.in-addr.arpa        name = www.tgh.com.
5.10.10.192.in-addr.arpa        name = mail.tgh.com.

在客戶端XP_client上(注:客戶端的DNS應該爲192.10.10.5)

C:\Documents and Settings\tghfly>nslookup www.tgh.com #正向解析
Server:  ftp.tgh.com
Address:  192.10.10.5

Name:    www.tgh.com
Address:  192.10.10.5

C:\Documents and Settings\tghfly>nslookup sz.tgh.com  #對設置的別名進行正向解析
Server:  ftp.tgh.com
Address:  192.10.10.5

Name:    www.tgh.com
Address:  192.10.10.5
Aliases:  sz.tgh.com

C:\Documents and Settings\tghfly>nslookup 192.10.10.5  #反向解析
Server:  mail.tgh.com
Address:  192.10.10.5

Name:    www.tgh.com
Address:  192.10.10.5
----------------------------------------------------------------------------------------------------
七、在Centos5.5上使用bind構建輔助域名服務器

1、同樣設置好主機名、/etc/hosts 、/etc/resolv.conf文件

[root@ns2 network-scripts]# cat /etc/resolv.conf
nameserver 192.10.10.5
nameserver 192.10.10.55

[root@ns2 network-scripts]# cat /etc/hosts  
# Do not remove the following line, or various programs
# that require network functionality will fail.
192.10.10.5  ns1.tgh.com
192.10.10.55 ns2.tgh.com

[root@ns2 network-scripts]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=ns2.tgh.com
GATEWAY=192.10.10.1

2、在輔助域名服務器上建立BIND主配置文件named.conf

[root@ns2 ~]# vi /var/named/chroot/etc/named.conf

options {
        allow-query  { any; };
        directory "/var/named";
 recursion yes;
};
zone "tgh.com" IN {
     type slave;    #使用輔助區域類型
     masters { 192.10.10.5; };   #指定主域名服務器的IP地址
     file "slaves/tgh.com.zone"; #從主域名服務器上下載的地址數據庫文件保存到輔助域名服務器的slaves目錄下
};
zone "10.10.192.in-addr.arpa" IN {
      type slave;
      masters { 192.10.10.5; };
      file "slaves/192.10.10.arpa";
};

:wq! #保存退出

3、給予相關權限,啓動named服務,並關閉防火牆
[root@ns2 ~]# chmod 755 /var/named/chroot/etc/named.conf

[root@ns2 ~]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]

[root@ns2 ~]# service iptables stop
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: nat filter                [  OK  ]
Unloading iptables modules:                                [  OK  ]

[root@ns2 ~]# chkconfig  --level 35 named on

[root@ns2 ~]# tail -f /var/log/messages  #查看區域數據庫文件下載記錄
Nov 27 14:37:18 ns2 named[5463]: zone tgh.com/IN: Transfer started.
Nov 27 14:37:18 ns2 named[5463]: transfer of 'tgh.com/IN' from 192.10.10.5#53: connected using 192.10.10.55#53041
Nov 27 14:37:18 ns2 named[5463]: zone tgh.com/IN: transferred serial 2010112001
Nov 27 14:37:18 ns2 named[5463]: transfer of 'tgh.com/IN' from 192.10.10.5#53: end of transfer
Nov 27 14:37:18 ns2 named[5463]: zone tgh.com/IN: sending notifies (serial 2010112001)
Nov 27 14:37:19 ns2 named[5463]: zone 10.10.192.in-addr.arpa/IN: Transfer started.
Nov 27 14:37:19 ns2 named[5463]: transfer of '10.10.192.in-addr.arpa/IN' from 192.10.10.5#53: connected using 192.10.10.55#49613
Nov 27 14:37:19 ns2 named[5463]: zone 10.10.192.in-addr.arpa/IN: transferred serial 2010112001
Nov 27 14:37:19 ns2 named[5463]: transfer of '10.10.192.in-addr.arpa/IN' from 192.10.10.5#53: end of transfer
Nov 27 14:37:19 ns2 named[5463]: zone 10.10.192.in-addr.arpa/IN: sending notifies (serial 2010112001)

4、在客戶端XP_client上測試(注:客戶端的DNS應更改爲192.10.10.55)

C:\Documents and Settings\Administrator>nslookup
Default Server:  ns2.tgh.com
Address:  192.10.10.55

> www.tgh.com
Server:  ns2.tgh.com
Address:  192.10.10.55

Name:    www.tgh.com
Address:  192.10.10.5

> mail.tgh.com
Server:  ns2.tgh.com
Address:  192.10.10.55

Name:    mail.tgh.com
Address:  192.10.10.5

> sz.tgh.com
Server:  ns2.tgh.com
Address:  192.10.10.55

Name:    www.tgh.com
Address:  192.10.10.5
Aliases:  sz.tgh.com
備註:當客戶端不能通過輔助域名服務器解析時,可試試將slaves目錄中的地址數據庫文件刪除,重新啓動named獲取。
 

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