DNS(Domain Name System,域名系統),因特網上作爲域名和IP地址相互映射的一個分佈式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。DNS協議運行在UDP協議之上,使用端口號爲53。
1.網絡環境圖示
2.分別在兩臺服務器ns1和ns2上通過YUM安裝Bind軟件包
[root@ns1 ~]# yum install bind [root@ns2 ~]# yum install bind
3.配置ns1的正反向區域配置文件
# 編輯named主區域配置文件,註釋不需要配置 # 在/etc/named.rfc1912.zones文件中添加區域配置信息 [root@ns1 ~]# tail -8 /etc/named.rfc1912.zones zone "test.com" IN { type master; file "test.com.zone"; }; zone "21.16.172.in-addr-arpa" IN { type master; file "172.16.21.zone"; }; #編輯test.com及"21.16.172.in-addr-arpa"的區域配置文件,內容如下 [root@ns1 ~]# cat /var/named/test.com.zone $TTL 3600 @IN SOA test.com. admin.test.com. ( 2014080501 3H 15M 5D 1D) @IN NSns1.test.com. IN MX 10mail.test.com. ns1IN A172.16.21.1 mailIN A172.16.21.100 wwwIN A172.16.21.10 [root@ns1 ~]# cat /var/named/172.16.21.zone $TTL 3600 @IN SOA test.com. admin.test.com. ( 2014080501 3H 15M 5D 1D) @IN NSns1.test.com. IN MX 10 mail.test.com. 1IN PTRns1.test.com. 100IN PTRmail.test.com 10IN PTRwww.test.com
驗證:
4.將ns2配置爲ns1的從服務器
#編輯主配置文件,將不需要選項加以註釋 #編輯/etc/named.rfc1912.zones,添加如下內容 [root@ns2 named]# tail -5 /etc/named.rfc1912.zones zone "test.com" IN { type slave; file "slave/test.com.zone"; masters { 172.16.21.1; }; }; #在ns1服務器上編輯/etc/named.rfc1912.zones文件,在區域test.com的配置中添加以下內容,用於支持區域傳送 allow-transfer { 172.16.21.2; }; #在ns1服務器上的test.com.zone配置文件中把ns2添加爲DNS服務器 @ IN NS ns2.test.com. ns2 IN A 172.16.21.2
驗證:
5.將ns配置爲ns1的tech子域的服務器,並將test.com.域的請求轉發到ns1服務器上
#在ns1的/var/named/test.com.zone文件中添加ns的膠水記錄 tech IN NS ns.tech.test.com. ns.tech IN A 172.16.21.2 #在ns2的/etc/named.rfc1912.zones中添加tech.test.com區域,內容如下 [root@ns2 named]# tail -5 /etc/named.rfc1912.zones zone "tech.test.com" IN { type master; file "tech.test.com.zone"; }; #編輯tech.test.com.zone區域配置文件 [root@ns2 named]# vim tech.test.com.zone $TTL 3600 @ IN SOA tech.test.com. admin.tech.test.com. ( 2014080501 ; serial 3H ; refresh 15M ; retry 5D ; expire 1D ) ; minimum IN NS ns ns IN A 172.16.21.2 www IN A 172.16.21.22 #修改tech.test.com.zone 屬組爲named chgrp named tech.test.com.zone
#在實驗過程當中遇到一個問題,父域的DNS總是無法解析子域中的名稱,錯誤信息如下
#Aug 4 22:09:15 wh1 named[3294]: error (no valid DS) resolving 'ns.tech.test.com/A/IN': 172.16.21.2#53
經過各種google,百度,終於找到解決方法
#####################################
dnssec-enable no;
dnssec-validation no;
#####################################
驗證:
#現在雖然使用父域的DNS可以解析到子域的服務器地址,但是子域卻會去根下查找其父域的域名,由於沒有在互聯網上註冊,所以肯定無法查找到,所以需要在子域上配置子域轉發 #配置子域轉發,在/etc/named.rfc1912.zones中添加如下內容 [root@ns2 named]# tail -5 /etc/named.rfc1912.zones zone "test.com" IN { type forward; forward only; forwarders { 172.16.21.1; }; }; #重啓服務
驗證:
6.將ns1服務器配置爲視圖,根據用戶網絡地址選擇最優的服務器地址返回給客戶
#修改配置文件,將原有的區域配置均移動到view neiwang { }; 中,並在其中添加: match-clients { 172.16.0.0/16; }; #並在下方再定義一個新的視圖,內容如下: view waiwang { match-clients { any; }; zone "test.com" IN { type master; file "test.com.zone.waiwang"; allow-transfer { any; }; }; };
驗證:
當客戶端IP爲172網段時,結果如下:
將客戶端IP改爲192.168網段,再進行解析,結果如下:
可見,視圖功能已經配置成功,當我們在雙線接入服務器以及當服務器面向內網及外網時,也可以減輕DNS服務器爲外網解析其他域IP地址而消耗多餘的資源.