前言數據庫
《CentOS 6.4 x64構建DNS服務器(主、從DNS Server)》發表於51CTO上來,一來,因爲Q友們強烈建議發到51CTO博客上來;二來,我本身在配置此文時,也碰到「很多問題」,見招拆招!共同窗習,互相借鑑之。CentOS 6.x與CentOS 5.x確實有點「Beyond」(諧音:不同的),博友們,本身試試 :)vim
基本的網絡環境規劃爲以下:緩存
(1)主域名服務器安全
IP地址: 192.168.1.228/24 主機名:ns1.beyond.com服務器
(2)從域名服務器網絡
IP地址: 192.168.1.229/24 主機名:ns2.beyond.com dom
通常中型、大型企業少不了DNS服務器(主DNS、從DNS服務器)、DHCP服務器(主DHCP、從DHCP服務器)、FTP服務器,既然是大、中型企業,服務器和客戶端PC也比較多,那通常是域環境(單域或多域)等。分佈式
PS: 爲了準確清楚、瞭解Linux(如:RedHat、SuSE、Debian等)發行版本信息,常常用以下命令查詢:ide
1、DNS相關的基礎知識工具
一、DNS服務器的主要做用:
DNS服務器的主要做用: 維護一個主機域名與IP地址的對應關係數據庫,在須要時爲客戶端網絡程序提供2個方面的地址解析功能。
(1)正向解析:將主機的名稱(域名)解析爲對應的IP地址。
域名的正向解析是DNS服務器最基本的功能,也是最經常使用的功能!
(2)反向解析:把主機的IP地址解析爲對應的域名。
域名的反向解析不是很經常使用,倒是DNS服務器不可缺乏的功能,如 郵件服務 可能會用到域名反向解析結果實施訪問控制策略;若缺乏對應的反向解析記錄可能會被列入「黑名單」中,致使接收不到郵件!PS:我就碰到過,後來我養成一個習慣:構建DNS服務器,通常而言,是會配置反向解析的。
二、DNS系統的結構:
爲了查詢域名的效率高,故Internet中的域名系統採用了分佈式的數據庫方式,把不一樣的範圍內的域名和IP地址對應關係交給不一樣的DNS服務器管理(受權)。分佈數據庫採用樹型結構,全世界的域名系統具備惟一的「根」。(惋惜呀……咱們不能《把「根」留住》---在中國!)以下圖所示:
三、DNS系統的類型:
常見的DNS類型有:
(1)緩存域名服務器
也叫「惟高速緩存服務器」,主要功能提供域名解析記錄的緩存。不包含註冊的DNS區域設置,只對用戶查詢過的域名解析記錄進行緩存,當用戶首次進行某個域名的查詢時,緩存服務器經過向根域服務器及其餘DNS服務器查詢並將結果保存在地緩存中。可提升經常使用域名的查詢速度,所以特別適合在企業局域網內部使用。
(2)主域名服務器
主域名服務器是惟一的,在Internet中。其管理的域名解析記錄具備權威性!主域名服務器須要在本地設置所管理區域的地址數據庫文件。
(3)從域名服務器
也叫輔助域名服務器,主要功能是提供備份,一般與主域名服務器同時提供服務,對於客戶端而言,主、從域名服務器提供徹底相同的功能!可是從DNS Server提供的地址解析記錄並不禁本身決定的,她的命令運掌握在主域名服務器的手中。她適應「環境」的能力特強:她的地址數據庫隨着主域名服務器的地址數據庫變化而變化!
2、BIND域名服務基礎
一、安裝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包了)
//安裝主程序包
[root@ns1 Packages]# rpm -ivh bind-9.8.2-0.17.rc1.el6.x86_64.rpm [root@ns1 Packages]# rpm -ivh bind-chroot-9.8.2-0.17.rc1.el6.x86_64.rpm [root@ns1 Packages]# rpm -ivh bind-utils-9.8.2-0.17.rc1.el6.x86_64.rpm//查看哈……
[root@ns1 ~]# 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 [root@ns1 ~]#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)以及對應文件名和存儲路徑;
[root@ns1 ~]# vim /etc/named.conf 10 options { 11 listen-on port 53 { any; }; 12 //listen-on-v6 port 53 { ::1; }; //註銷此行! 17 allow-query { any; }; :wq 回車! [root@ns1 ~]# cd /etc/ [root@ns1 etc]# cp -p named.rfc1912.zones named.rfc1912.zones.bak [root@ns1 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;}; };//檢查配置文件:
named-checkconf(2)創建區域文件,依據named.conf文件中指定的路徑來創建區域文件,此文件主要記錄該區域內的資料記錄;
//正向解析配置文件:
[root@ns1 ~]# cd /var/named/ [root@ns1 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//檢查正向區域配置文件:
[root@ns1 ~]# named-checkzone fjian.com. /var/named/fjian.com//反向解析配置文件:
[root@ns1 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.
//檢查反向區域配置文件:
[root@ns1 named]#named-checkzone 1.168.192.in-addr.arpa. /var/named/192.168.1.rev
(3)從新加載配置文件或重啓named服務使用配置生效
[root@ns1 ~]#chkconfig --list named [root@ns1 ~]#chkconfig named on [root@ns1 ~]#chkconfig --list named [root@ns1 ~]#chkconfig --add named [root@ns1 ~]#service named restart
3. 驗證可否解析,以下圖所示:
[root@ns1 etc]# service named restart Stopping named: . [ OK ] Starting named: [ OK ] [root@ns1 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 >
2、構建從DNS服務器
從域名服務器做爲主服務器的冗餘備份,與主域名服務器一塊兒,同時提供本域內主機名與IP地址的解析,從域名服務器的地址數據庫需從主域名服務器中按期更新。
(1)創建主配置文件named.conf,即其主要是設置DNS服務器能管理哪些區域(zone)以及對應文件名和存儲路徑;
[root@ns2 ~]# vim /etc/named.conf 10 options { 11 listen-on port 53 { any; }; 12 //listen-on-v6 port 53 { ::1; }; //註銷此行! 17 allow-query { any; }; :wq 回車! [root@ns2 ~]# cd /etc/ [root@ns2 etc]# cp -p named.rfc1912.zones named.rfc1912.zones.bak [root@ns2 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 {192.168.1.228;}; file "slaves/192.168.1.rev"; }; :wq 回車
2. 執行以下操做:
[root@ns2 ~]# chkconfig --list named named 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root@ns2 ~]# chkconfig named on [root@ns2 ~]# chkconfig --list named named 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@ns2 ~]# chkconfig --add named [root@ns2 ~]# service named restart Stopping named: [ OK ] Starting named: [ OK ]
3. 數據同步測試
通過上面重啓從域名服務器named服務,使其與主域名服務器數據同步,成功後,在系統日誌文件中能夠看到下載區域數據庫文件的記錄,在「/var/named/chroot/var/named/slaves/」 (/var/named/slaves/)目錄中也能夠看到自動保存的區域數據庫文件。
[root@ns2 ~]# tail /var/log/messages May 19 21:56:49 ns2 named[2123]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0 May 19 21:56:49 ns2 named[2123]: zone 1.168.192.in-addr.arpa/IN: loaded serial 2013051800 May 19 21:56:49 ns2 named[2123]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0 May 19 21:56:49 ns2 named[2123]: zone fjian.com/IN: loaded serial 2013051800 May 19 21:56:49 ns2 named[2123]: zone localhost.localdomain/IN: loaded serial 0 May 19 21:56:49 ns2 named[2123]: zone localhost/IN: loaded serial 0 May 19 21:56:49 ns2 named[2123]: managed-keys-zone ./IN: loaded serial 3 May 19 21:56:49 ns2 named[2123]: running May 19 21:56:49 ns2 named[2123]: zone fjian.com/IN: sending notifies (serial 2013051800) May 19 21:56:49 ns2 named[2123]: zone 1.168.192.in-addr.arpa/IN: sending notifies (serial 2013051800) //用ll 查看/var/named/slaves/下,是否有自動保存的區域數據庫文件 [root@ns2 ~]# ll /var/named/slaves/ total 8 -rw-r--r--. 1 named named 462 May 19 21:45 192.168.1.rev -rw-r--r--. 1 named named 450 May 19 21:45 fjian.com [root@ns2 ~]#
4. 驗證從域名服務器
將客戶端PC的首選DNS設置從域名服務器的IP地址(192.168.1.229),再以下圖所示操做:
PS: 《CentOS 6.4 x64構建DNS服務器(主、從DNS Server)》至此完畢!其實還有《構建分離解析的域名服務器》也比較實用!!有心的朋友本身研究哈!