前言
《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等)發行版本信息,經常用如下命令查詢:
一、DNS相關的基礎知識
1、DNS服務器的主要作用:
DNS服務器的主要作用: 維護一個主機域名與IP地址的對應關係數據庫,在需要時爲客戶端網絡程序提供2個方面的地址解析功能。
(1)正向解析:將主機的名稱(域名)解析爲對應的IP地址。
域名的正向解析是DNS服務器最基本的功能,也是最常用的功能!
(2)反向解析:把主機的IP地址解析爲對應的域名。
域名的反向解析不是很常用,卻是DNS服務器不可缺少的功能,如 郵件服務 可能會用到域名反向解析結果實施訪問控制策略;若缺少對應的反向解析記錄可能會被列入「黑名單」中,導致接收不到郵件!PS:我就碰到過,後來我養成一個習慣:構建DNS服務器,一般而言,是會配置反向解析的。
2、DNS系統的結構:
爲了查詢域名的效率高,故Internet中的域名系統採用了分佈式的數據庫方式,把不同的範圍內的域名和IP地址對應關係交給不同的DNS服務器管理(授權)。分佈數據庫採用樹型結構,全世界的域名系統具有唯一的「根」。(可惜呀……我們不能《把「根」留住》---在中國!)如下圖所示:
3、DNS系統的類型:
常見的DNS類型有:
(1)緩存域名服務器
也叫「唯高速緩存服務器」,主要功能提供域名解析記錄的緩存。不包含註冊的DNS區域設置,只對用戶查詢過的域名解析記錄進行緩存,當用戶首次進行某個域名的查詢時,緩存服務器通過向根域服務器及其他DNS服務器查詢並將結果保存在地緩存中。可提高常用域名的查詢速度,因此特別適合在企業局域網內部使用。
(2)主域名服務器
主域名服務器是唯一的,在Internet中。其管理的域名解析記錄具有權威性!主域名服務器需要在本地設置所管理區域的地址數據庫文件。
(3)從域名服務器
也叫輔助域名服務器,主要功能是提供備份,通常與主域名服務器同時提供服務,對於客戶端而言,主、從域名服務器提供完全相同的功能!但是從DNS Server提供的地址解析記錄並不由自己決定的,她的命令運掌握在主域名服務器的手中。她適應「環境」的能力特強:她的地址數據庫隨着主域名服務器的地址數據庫變化而變化!
二、BIND域名服務基礎
1、安裝BIND軟件
由於是用在生產環境中,以安全穩定爲主!而且採用的是CentOS6.4 64bit的OS,故就用光盤中的BIND軟件安裝。
先來查看哈,如下圖所示:
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包了)
//安裝主程序包
123//查看哈……
123456[[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
[[email protected] ~]#
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)以及對應文件名和存儲路徑;
1234567891011121314151617181920[[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
;};
};
//檢查配置文件:
1named-checkconf
(2)建立區域文件,依據named.conf文件中指定的路徑來建立區域文件,此文件主要記錄該區域內的資料記錄;
//正向解析配置文件:
1234567891011121314151617[[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//反向解析配置文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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
>
|
二、構建從DNS服務器
從域名服務器作爲主服務器的冗餘備份,與主域名服務器一起,同時提供本域內主機名與IP地址的解析,從域名服務器的地址數據庫需從主域名服務器中定期更新。
(1)建立主配置文件named.conf,即其主要是設置DNS服務器能管理哪些區域(zone)以及對應文件名和存儲路徑;
123456789101112131415161718192021[[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
|