環境介紹:
作業系統:rhel6.5
node1.cn:slave
node2.cn:master
1、軟體包安裝
<code>[root@node2 ~]</code><code># yum -y install bind</code>
<code>[root@node2 ~]</code><code># rpm -ivh /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm </code>
<code>[root@node2 ~]</code><code># rpm -ivh /mnt/Packages/bind-chroot-9.8.2-0.17.rc1.el6_4.6.x86_64.rp</code>
2、服務啟動
<code>[root@node2 ~]</code><code># service named restart</code>
DNS服務啟動之後的檔案挂載資訊
<code>[root@node2 ~]</code><code># mount</code>
<code>/dev/sda2</code> <code>on / </code><code>type</code> <code>ext4 (rw)</code>
<code>proc on </code><code>/proc</code> <code>type</code> <code>proc (rw)</code>
<code>sysfs on </code><code>/sys</code> <code>type</code> <code>sysfs (rw)</code>
<code>devpts on </code><code>/dev/pts</code> <code>type</code> <code>devpts (rw,gid=5,mode=620)</code>
<code>tmpfs on </code><code>/dev/shm</code> <code>type</code> <code>tmpfs (rw)</code>
<code>/dev/sda1</code> <code>on </code><code>/boot</code> <code>type</code> <code>ext4 (rw)</code>
<code>/dev/sr0</code> <code>on </code><code>/mnt</code> <code>type</code> <code>iso9660 (ro)</code>
<code>none on </code><code>/proc/sys/fs/binfmt_misc</code> <code>type</code> <code>binfmt_misc (rw)</code>
3、本地網卡eth0配置資訊
<code>DEVICE=eth0</code>
<code>TYPE=Ethernet</code>
<code>ONBOOT=</code><code>yes</code>
<code>NM_CONTROLLED=</code><code>yes</code>
<code>BOOTPROTO=none</code>
<code>HWADDR=00:0c:29:47:1b:4A</code>
<code>IPADDR=192.168.31.102</code>
<code>PREFIX=24</code>
<code>GATEWAY=192.168.31.1</code>
<code>DNS1=192.168.31.102</code>
<code>DEFROUTE=</code><code>yes</code>
<code>IPV4_FAILURE_FATAL=</code><code>yes</code>
<code>IPV6INIT=no</code>
<code>NAME=</code><code>"System eth0"</code>
4、服務相關配置檔案
<code>[root@node2 ~]</code><code># ls /etc/named.conf //主要配置檔案</code>
<code>[root@node2 ~]</code><code># vim /var/named/chroot/etc/named.conf </code>
<code>options 為全局配置檔案</code>
<code>options {</code>
<code> </code><code>listen-on port 53 { any; };</code>
<code> </code><code>listen-on-v6 port 53 { any; };</code>
<code> </code><code>directory </code><code>"/var/named"</code><code>;</code>
<code> </code><code>dump-</code><code>file</code> <code>"/var/named/data/cache_dump.db"</code><code>;</code>
<code> </code><code>statistics-</code><code>file</code> <code>"/var/named/data/named_stats.txt"</code><code>;</code>
<code> </code><code>memstatistics-</code><code>file</code> <code>"/var/named/data/named_mem_stats.txt"</code><code>;</code>
<code> </code><code>allow-query { any; };</code>
<code> </code><code>recursion </code><code>yes</code><code>;</code>
<code> </code><code>dnssec-</code><code>enable</code> <code>yes</code><code>;</code>
<code> </code><code>dnssec-validation </code><code>yes</code><code>;</code>
<code> </code><code>dnssec-lookaside auto;</code>
<code> </code><code>/* Path to ISC DLV key */</code>
<code> </code><code>bindkeys-</code><code>file</code> <code>"/etc/named.iscdlv.key"</code><code>;</code>
<code> </code><code>managed-keys-directory </code><code>"/var/named/dynamic"</code><code>;</code>
<code>};</code>
<code>logging {</code>
<code> </code><code>channel default_debug {</code>
<code> </code><code>file</code> <code>"data/named.run"</code><code>;</code>
<code> </code><code>severity dynamic;</code>
<code> </code><code>};</code>
<code>zone </code><code>"."</code> <code>IN {</code>
<code> </code><code>type</code> <code>hint;</code>
<code> </code><code>file</code> <code>"named.ca"</code><code>;</code>
<code>zone </code><code>"node2.cn"</code> <code>IN { </code><code>//</code><code>建立區域檔案</code>
<code> </code><code>type</code> <code>master;</code>
<code> </code><code>file</code> <code>"node2.cn.zone"</code><code>; </code><code>//</code><code>區域配置對應檔案名</code>
<code>include </code><code>"/etc/named.rfc1912.zones"</code><code>;</code>
<code>include </code><code>"/etc/named.root.key"</code><code>;</code>
建立新的區域檔案
<code>[root@node2 named]</code><code># cp -rp named.localhost node2.cn.zone //保證權限的一緻性</code>
<code>[root@node2 named]</code><code># vim node2.cn.zone</code>
<code>原檔案内容</code>
<code>$TTL 1D</code>
<code>@ IN SOA @ rname.invalid. ( </code><code>#SOA授權資源記錄</code>
<code> </code><code>0 ; serial</code>
<code> </code><code>1D ; refresh</code>
<code> </code><code>1H ; retry</code>
<code> </code><code>1W ; expire</code>
<code> </code><code>3H ) ; minimum</code>
<code> </code><code>NS @</code>
<code> </code><code>A 127.0.0.1</code>
<code> </code><code>AAAA ::1</code>
<code> </code><code>修改之後配置檔案</code>
<code> </code><code>$TTL 1D 緩存時間</code>
<code>@ IN SOA ns.node2.cn. root.node2.cn ( SOA授權資源記錄,每隔zone隻能有一條SO A記錄</code>
<code> </code><code>0 ; serial 手動設定</code>
<code> </code><code>1D ; refresh 重新整理時間</code>
<code> </code><code>NS ns.node2.cn.</code>
<code>ns A 192.168.31.102 ns A資源記錄</code>
<code>www A 192.168.31.102 web伺服器A資源記錄</code>
<code>mail A 192.168.31.101 mail郵箱位址</code>
<code>www.zabbix.lexue.cc CNAME jiankong.lexue.cc. 别名</code>
重新開機named服務
<code> </code><code>[root@node2 named]</code><code># /etc/init.d/named restart</code>
驗證
<code>[root@node2 ~]</code><code># cat /etc/resolv.conf</code>
<code># Generated by NetworkManager</code>
<code>nameserver 192.168.31.102</code>
本地DNS服務基本配置完成
開啟疊代查詢功能使能查詢其他DNS伺服器擁有記錄的功能
<code> </code><code>#dnssec-enable yes;</code>
<code> </code><code>#dnssec-validation yes;</code>
<code> </code><code>#dnssec-lookaside auto; 将其注釋掉即可開啟疊代查詢</code>
<code> </code><code>forward only; </code><code>#配置轉發功能</code>
<code> </code><code>forwarders { 114.114.114.114; }; </code><code>#轉發的DNS位址</code>
主從配置DNS伺服器
<code>zone </code><code>"node2.cn"</code> <code>IN {</code>
<code> </code><code>file</code> <code>"node2.cn.zone"</code><code>;</code>
<code> </code><code>allow-transfer{ 192.168.31.0</code><code>/24</code><code>;}; </code><code>//</code><code>區域配置中指定的從DNS伺服器網段</code>
配置從DNS伺服器
[root@node1 ~]# yum -y install bind*
[root@node1 ~]# /etc/init.d/named restart #啟動服務
<code> </code><code>type</code> <code>slave;</code>
<code> </code><code>file</code> <code>"slaves/node2.cn.zone.file"</code><code>;</code>
<code> </code><code>masters { 192.168.31.102; };</code>
添加主機資訊
<code>@ IN SOA ns.node1.cn. root.node1.cn (</code>
<code> </code><code>1D ; refresh 預設同步時間</code>
<code> </code><code>NS ns.node1.cn.</code>
<code>ns A 192.168.31.101</code>
<code>www A 192.168.31.101</code>
<code>www.node1.cn CNAME jiankong.lexue.cc.</code>
DNS主從密鑰認證
1、同步DNS伺服器時間
<code>[root@node1 ~]</code><code># yum -y install ntpdate</code>
<code>[root@node2 ~]</code><code># ntpdate server 0.rhel.pool.ntp.org</code>
<code>[root@node2 ~]</code><code># /etc/init.d/ntpd restart</code>
<code>^C[root@node1 ~]</code><code># crontab -e</code>
<code>no </code><code>crontab</code> <code>for</code> <code>root - using an empty one</code>
<code>0 5 * * * </code><code>/usr/sbin/ntpdate</code> <code>192.168.31.102</code>
2、生成密鑰,進行主從認證,在主DNS伺服器操作
<code>[root@node2 ~]</code><code># dnssec-keygen -a hmac-md5 -b 128 -n HOST xyz</code>
-a 指定加密類型 -b密鑰長度 -n 名字類型 xyz 密鑰
<code>[root@node2 ~]</code><code># ls</code>
<code>Kxyz.+157+02502.private 私鑰</code>
<code>Kxyz.+157+02502.key 公鑰</code>
修改主配置檔案:
<code>key xyzkey {</code>
<code> </code><code>algorithm hmac-md5;</code>
<code> </code><code>secret </code><code>"OWH6FbG9P2Op5CTEqi5muQ=="</code><code>;</code>
<code>zone </code><code>"node1.cn"</code> <code>IN {</code>
<code> </code><code>file</code> <code>"node1.cn.zone"</code><code>;</code>
<code> </code><code>allow-transfer{ key abckey;};</code>
從DNS伺服器修改的内容
<code> </code><code>masters { 192.168.31.102 key xyzkey; };</code>
重新開機主從伺服器驗證是否可通過密鑰對驗證是否成功
測試指令
<code>nslookup</code> <code>互動解析</code>
<code>dig</code> <code>可制定使用哪寫DNS伺服器進行解析</code>
通過不同DNS伺服器對相同域名進行解析對比結果
<code>[root@node1 ~]</code><code># dig @192.168.31.102 www.node1.cn</code>
<code>[root@node1 ~]</code><code># dig @114.114.114.114 www.node1.cn</code>
版權聲明:原創作品,如需轉載,請注明出處。否則将追究法律責任
本文轉自 CARYFLASH 51CTO部落格,原文連結:http://blog.51cto.com/maoxiaoxiong/1956925