CentOS 6.4 x64構建DNS服務器(主、從DNS Server)

前言

《CentOS 6.4 x64構建DNS服務器(主、從DNS Server)》發表於51CTO上來,一來,由於Q友們強烈建議發到51CTO博客上來;二來,我自己在配置此文時,也碰到「不少問題」,見招拆招!共同學習,互相借鑑之。CentOS 6.x與CentOS 5.x確實有點「Beyond」(諧音:不一樣的),博友們,自己試試 :)

基本的網絡環境規劃爲如下:

(1)主域名服務器

IP地址: 192.168.1.228/24    主機名:ns1.beyond.com

(2)從域名服務器

IP地址: 192.168.1.229/24     主機名:ns2.beyond.com   

一般中型、大型企業少不了DNS服務器(主DNS、從DNS服務器)、DHCP服務器(主DHCP、從DHCP服務器)、FTP服務器,既然是大、中型企業,服務器和客戶端PC也比較多,那一般是域環境(單域或多域)等。

PS: 爲了準確清楚、瞭解Linux(如:RedHat、SuSE、Debian等)發行版本信息,經常用如下命令查詢:

image

一、DNS相關的基礎知識

1、DNS服務器的主要作用:

   DNS服務器的主要作用: 維護一個主機域名與IP地址的對應關係數據庫,在需要時爲客戶端網絡程序提供2個方面的地址解析功能。

(1)正向解析:將主機的名稱(域名)解析爲對應的IP地址。 

       域名的正向解析是DNS服務器最基本的功能,也是最常用的功能!

(2)反向解析:把主機的IP地址解析爲對應的域名。

       域名的反向解析不是很常用,卻是DNS服務器不可缺少的功能,如 郵件服務 可能會用到域名反向解析結果實施訪問控制策略;若缺少對應的反向解析記錄可能會被列入「黑名單」中,導致接收不到郵件!PS:我就碰到過,後來我養成一個習慣:構建DNS服務器,一般而言,是會配置反向解析的。

2、DNS系統的結構:

    爲了查詢域名的效率高,故Internet中的域名系統採用了分佈式的數據庫方式,把不同的範圍內的域名和IP地址對應關係交給不同的DNS服務器管理(授權)。分佈數據庫採用樹型結構,全世界的域名系統具有唯一的「根」。(可惜呀……我們不能《把「根」留住》---在中國!)如下圖所示:

image

3、DNS系統的類型:

     常見的DNS類型有:

(1)緩存域名服務器

       也叫「唯高速緩存服務器」,主要功能提供域名解析記錄的緩存。不包含註冊的DNS區域設置,只對用戶查詢過的域名解析記錄進行緩存,當用戶首次進行某個域名的查詢時,緩存服務器通過向根域服務器及其他DNS服務器查詢並將結果保存在地緩存中。可提高常用域名的查詢速度,因此特別適合在企業局域網內部使用。

(2)主域名服務器

       主域名服務器是唯一的,在Internet中。其管理的域名解析記錄具有權威性!主域名服務器需要在本地設置所管理區域的地址數據庫文件。

(3)從域名服務器

      也叫輔助域名服務器,主要功能是提供備份,通常與主域名服務器同時提供服務,對於客戶端而言,主、從域名服務器提供完全相同的功能!但是從DNS Server提供的地址解析記錄並不由自己決定的,她的命令運掌握在主域名服務器的手中。她適應「環境」的能力特強:她的地址數據庫隨着主域名服務器的地址數據庫變化而變化!

二、BIND域名服務基礎

1、安裝BIND軟件

   由於是用在生產環境中,以安全穩定爲主!而且採用的是CentOS6.4 64bit的OS,故就用光盤中的BIND軟件安裝。

先來查看哈,如下圖所示:

image

PS : 上圖中主要的軟件包作用如下:

(1)bind : 提供了域名服務的主要程序及相關文件;

(2)bind-utils : 提供了對DNS服務器的測試工具程序(如:nslookup、dig etc)

(3)bind-chroot : 爲bind提供一個僞裝的根目錄以增強安全性;

    (注:新版本CentOS 6.x 已將chroot所需使用的目錄,透過mount --bind的功能進行目錄

     鏈接了,故在CentOS 6.x中,根本無須切換到/var/named/chroot/了只需按常規目錄操

     作 即可!)請cat /etc/sysconfig/named目錄,其下是不是有「ROOTDIR="/var/named/chroot

(4)caching-nameserver : 爲配置BIND作爲緩存域名服務器提供必要的默認配置文件,這些文件在配置主、從域名服務器時也可作爲參考。(CentOS 6.x後沒有caching-nameserver包了

//安裝主程序包

1
2
3
[[email protected] Packages]# rpm -ivh bind- 9.8 . 2 - 0.17 .rc1.el6.x86_64.rpm
[[email protected] Packages]# rpm -ivh bind-chroot- 9.8 . 2 - 0.17 .rc1.el6.x86_64.rpm
[[email protected] Packages]# rpm -ivh bind-utils- 9.8 . 2 - 0.17 .rc1.el6.x86_64.rpm

//查看哈……

1
2
3
4
5
6
[[email protected] ~]# rpm -qa bind*
bind-chroot- 9.8 . 2 - 0.17 .rc1.el6.x86_64
bind-libs- 9.8 . 2 - 0.17 .rc1.el6.x86_64
bind-utils- 9.8 . 2 - 0.17 .rc1.el6.x86_64
bind- 9.8 . 2 - 0.17 .rc1.el6.x86_64

2. 簡單的方法,纔是最好的方法!一般而言,DNS服務器配置流程主要分爲3步:

(1)建立主配置文件named.conf,即其主要是設置DNS服務器能管理哪些區域(zone)以及對應文件名和存儲路徑;(/etc/named.conf/etc/named.rfc1912.zones)

(2)建立區域文件,依據named.conf文件中指定的路徑來建立區域文件,此文件主要記錄該區域內的資料記錄;(/var/named/fjian.com/etc/named/named.192.168.1.rev)

(3)重新加載配置文件或重啓named服務使用配置生效。

(chkconfig named  on、chkconfig  --add named、service  named start/restart etc)

下面詳細配置:

(1)建立主配置文件named.conf,即其主要是設置DNS服務器能管理哪些區域(zone)以及對應文件名和存儲路徑; 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[[email protected] ~]# vim  /etc/named.conf
10  options {
11          listen-on port  53  { any; };
12        //listen-on-v6 port 53 { ::1; };  //註銷此行!
17          allow-query     { any; };
:wq 回車!
[[email protected] ~]# cd /etc/
[[email protected] etc]# cp -p named.rfc1912.zones   named.rfc1912.zones.bak
[[email protected] etc]# vim named.rfc1912.zones
//先按shift + G 然後,添加如下內容:
zone  "fjian.com"  IN {    //設置正向DNS區域名稱
type master;
file  "fjian.com" ;    //設置對應的正向區域地址數據庫文件
allow-transfer  { 192.168 . 1.229 ;}; //允許下載區域數據庫信息的從域名服務器IP地址
};
zone  "1.168.192.in-addr.arpa"  IN {     //設置反向DNS區域名稱
type master;
file  "192.168.1.rev" ;      //設置對應的反向區域地址數據庫文件
allow-transfer  { 192.168 . 1.229 ;};
};

//檢查配置文件:      

1
named-checkconf

(2)建立區域文件,依據named.conf文件中指定的路徑來建立區域文件,此文件主要記錄該區域內的資料記錄;

//正向解析配置文件:      

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[[email protected] ~]# cd / var /named/
[[email protected] named]# vim fjian.com
$TTL     86400
@               IN SOA  @         root (
2013051800       ; serial (d. adams)
28800            ; refresh
14400            ; retry
3600000          ; expiry
86400  )         ; minimum
@               IN NS           ns1.fjian.com.
IN NS           ns2.fjian.com.
IN A              192.168 . 1.228
IN MX  5          mail.fjian.com.
ns1             IN A              192.168 . 1.228
ns2             IN A              192.168 . 1.229
mail             IN A              192.168 . 1.228
www             IN A             192.168 . 1.228

//檢查正向區域配置文件:    

1
[[email protected] ~]# named-checkzone fjian.com.  / var /named/fjian.com

//反向解析配置文件:     

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[[email protected] named]# vim  192.168 . 1 .rev
vim  192.168 . 1 .rev
$TTL     86400
@       IN      SOA     localhost. root.localhost.  (
2013051800      ; Serial
28800           ; Refresh
14400           ; Retry
3600000         ; Expire
86400  )        ; Minimum
@         IN      NS      ns1.fjian.com.
IN      NS       ns2 .fjian.com.
228        IN      PTR     ns1.fjian.com.
229        IN      PTR     ns2.fjian.com.
@         IN      MX  5     mail.fjian.com.
228        IN      PTR     mail.fjian.com.
228        IN      PTR     www.fjian.com.

//檢查反向區域配置文件:   

1
[[email protected] named]#named-checkzone   1.168 . 192 . in -addr.arpa.   / var /named/ 192.168 . 1 .rev

3)重新加載配置文件或重啓named服務使用配置生效

1
2
3
4
5
[[email protected] ~]#chkconfig  --list  named
[[email protected] ~]#chkconfig  named on
[[email protected] ~]#chkconfig  --list named
[[email protected] ~]#chkconfig  --add named
[[email protected] ~]#service  named restart

3.   驗證能否解析,如下圖所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[[email protected] etc]# service named restart
Stopping named: .                                          [  OK  ]
Starting named:                                            [  OK  ]
[[email protected] etc]# nslookup
192.168 . 1.228
Server:         192.168 . 1.228
Address:     192.168 . 1.228 # 53
228.1 . 168.192 . in -addr.arpa    name = ns1.fjian.com.
228.1 . 168.192 . in -addr.arpa    name = mail.fjian.com.
228.1 . 168.192 . in -addr.arpa    name = www.fjian.com.
> ns1.fjian.com
Server:         192.168 . 1.228
Address:     192.168 . 1.228 # 53
Name:    ns1.fjian.com
Address:  192.168 . 1.228
> mail.fjian.com
Server:         192.168 . 1.228
Address:     192.168 . 1.228 # 53
Name:    mail.fjian.com
Address:  192.168 . 1.228
> www.fjian.com
Server:         192.168 . 1.228
Address:     192.168 . 1.228 # 53
Name:    www.fjian.com
Address:  192.168 . 1.228
> ns2.fjian.com
Server:         192.168 . 1.228
Address:     192.168 . 1.228 # 53
Name:    ns2.fjian.com
Address:  192.168 . 1.229
>

image

 

二、構建從DNS服務器

 

從域名服務器作爲主服務器的冗餘備份,與主域名服務器一起,同時提供本域內主機名與IP地址的解析,從域名服務器的地址數據庫需從主域名服務器中定期更新。

(1)建立主配置文件named.conf,即其主要是設置DNS服務器能管理哪些區域(zone)以及對應文件名和存儲路徑;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[[email protected] ~]# vim  /etc/named.conf
10  options {
11          listen-on port  53  { any; };
12        //listen-on-v6 port 53 { ::1; };  //註銷此行!
17          allow-query     { any; };
:wq 回車!
[[email protected] ~]# cd /etc/
[[email protected] etc]# cp -p named.rfc1912.zones   named.rfc1912.zones.bak
[[email protected] etc]# vim named.rfc1912.zones
//先按shift + G 然後,添加如下內容:
zone  "fjian.com"  IN {
type slave;
masters { 192.168 . 1.228 ;};
file  "slaves/fjian.com" ;
};
zone  "1.168.192.in-addr.arpa"  IN {
type slave;
masters { . 1.228 ;};
file  "slaves/fjian.com" ;
};
zone  "1.168.192.in-addr.arpa"  IN {
type slave;
masters { 192.168 . 1.228 ;};
file  "slaves/192.168.1.rev" ;
};
:wq  回車

2. 執行如下操作:

1
2
3
4
5
6
7
8
相關文章
相關標籤/搜索