互聯網DNS架構模擬
本文模擬互聯網的DNS架構,由1臺客戶端,1臺運營商DNS服務器,1臺根域服務器,1臺.com域服務器,兩臺DNS服務器做主從,兩臺Web服務器,共8臺機器構成,實現互聯網上的DNS解析模擬。
DNS服務的基礎知識可參考上一篇博客http://blog.51cto.com/13695854/2132307
在此實驗中配置完1臺服務器就測試1臺,以免故障堆積後不好排查,以下是各臺服務器的配置
1、Web服務器1
#192.168.30.8
yum -y install httpd #安裝httpd服務 hostname webserver1 #更改主機名為webserver1 echo "welcome to abc.com webserver 1" > /var/www/html/index.html //設置Web主頁顯示welcome to abc.com webserver 1 systemctl restart httpd #啟動httpd服務
2、Web服務器2
#192.168.30.9
yum -y install httpd #安裝httpd服務 hostname webserver2 #更改主機名為webserver2 echo "welcome to abc.com webserver 2" > /var/www/html/index.html //設置Web主頁顯示welcome to abc.com webserver 2 systemctl restart httpd #啟動httpd服務
在客戶機上測試Web服務器1和2成功
curl 192.168.30.8 curl 192.168.30.9
3、
#192.168.30.6
hostname dnsserver1 #更改主機名為dnsserver1 yum -y install bind #安裝DNS服務
vim /etc/named.conf #修改主配置文件,在options大括號裏進行以下操作
// listen-on port 53 { 127.0.0.1; }; #註釋掉此行 // allow-query { localhost; }; #註釋掉此行 #添加以下這一行,為了安全,只允許作為從的DNS服務器跟主DNS服務器進行數據同步 allow-transfer { 192.168.30.7; }; dnssec-enable no; #以下這兩行dns安全選項改成no dnssec-validation no;
vim /etc/named.rfc1912.zones #修改主配置文件,添加如下內容
zone "abc.com" IN { type master; #區域類型為主DNS服務器 file "wind.com.zone"; #指定解析庫文件 };
vim /var/named/wind.com.zones #創建解析庫文件,添加如下內容
$TTL 1D @ IN SOA dns1.wind.com. admin.wind.com. ( 2 1D 2H 3D 1H ) NS dns1 NS dns2 dns1 A 192.168.30.6 #主DNS服務器自己 dns2 A 192.168.30.7 #從DNS服務器 websrv A 192.168.30.8 #Web服務器1 websrv A 192.168.30.9 #Web服務器2 www CNAME websrv @ A 192.168.30.8 @ A 192.168.30.9 * CNAME www
# 修改權限
chgrp named wind.com.zone chmod 640 wind.com.zone
# 重啟DNS服務
systemctl start named
在客戶機上測試,主DNS服務器解析Web服務器地址成功
4、wind.com從DNS服務器
#192.168.30.7
hostname dnsserver2 #更改主機名為dnsserver2 yum -y install bind
vim /etc/named.conf #在options大括號裏進行以下操作
// listen-on port 53 { 127.0.0.1; }; #註釋掉此行 // allow-query { localhost; }; #註釋掉此行 #添加這一行,為了安全,作為從的DNS服務器不允許進行數據同步 allow-transfer { none; }; dnssec-enable no; #以下這兩行dns安全選項改成no dnssec-validation no;
vim /etc/named.rfc1912.zones #創建解析庫文件,添加如下內容
zone "abc.com" IN { type slave; #區域類型為從DNS服務器 masters { 192.168.30.6; }; #指定主DNS服務器 file "slaves/wind.com.zone.slave"; #指定從DNS服務器的區域文件 };
# 重啟DNS服務
systemctl restart named
在客戶機上測試,從DNS服務器解析Web服務器地址成功
5、.com域服務器
#192.168.30.5
hostname comdns #更改主機名為comdns yum -y install bind
vim /etc/named.conf #在options大括號裏進行以下操作
// listen-on port 53 { 127.0.0.1; }; #註釋掉此行 // allow-query { localhost; }; #註釋掉此行 dnssec-enable no; #以下這兩行dns安全選項改成no dnssec-validation no;
vim /etc/named.rfc1912.zones #創建解析庫文件,添加如下內容
zone "com" { type master; file "com.zone"; };
vim /var/named/com.zone #添加如下內容
$TTL 1D @ IN SOA dns1.com. admin.com. ( 1 1D 2H 3D 3H ) NS dns1 wind NS dns2 wind NS dns3 dns1 A 192.168.30.5 #.com域自己 dns2 A 192.168.30.6 #向下委派給主DNS服務器 dns3 A 192.168.30.7 #向下委派給從DNS服務器
# 修改權限
chgrp named com.zone chmod 640 com.zone
# 重啟DNS服務
systemctl restart named
在客戶機上測試,.com域DNS服務器解析Web服務器地址成功
6、根域服務器
#192.168.30.4
hostname rootdns #更改主機名為rootdns yum -y install bind
vim /etc/named.conf #在options大括號裏進行以下操作
// listen-on port 53 { 127.0.0.1; }; #註釋掉此行 // allow-query { localhost; }; #註釋掉此行 dnssec-enable no; #以下這兩行dns安全選項改成no dnssec-validation no; #註釋掉下面四行 #zone "." IN { # type hint; # file "named.ca"; #};
vim /etc/named.rfc1912.zones #創建解析庫文件,添加如下內容
zone "." { type master; file "root.zone"; };
vim /var/named/root.zone #添加如下內容
$TTL 1D @ IN SOA dns1. admin. ( 1 1D 2H 3D 1H ) NS dns1 com NS dns2 dns1 A 192.168.30.4 #根域自己 dns2 A 192.168.30.5 #向下委派給com域
# 修改權限
chgrp named root.zone chmod 640 root.zone
# 重啟DNS服務
systemctl restart named
在客戶機上測試,根域DNS服務器解析Web服務器地址成功
7、電信DNS服務器
#192.168.30.3
hostname telecomdns #更改主機名為telecomdns yum -y install bind
vim /etc/named.conf #在options大括號裏進行以下操作
// listen-on port 53 { 127.0.0.1; }; #註釋掉此行 // allow-query { localhost; }; #註釋掉此行 dnssec-enable no; #以下這兩行dns安全選項改成no dnssec-validation no;
vim /var/named/named.ca #修改根域的解析庫文件
;; ANSWER SECTION: #此項只留下1條 . 518400 IN NS a.root-servers.net. ;; ADDITIONAL SECTION: #此項也只留下一條,並將IP改為192.168.30.4 a.root-servers.net. 3600000 IN A 192.168.30.4
在客戶機上測試,電信DNS服務器解析Web服務器地址成功
客戶端測試
#192.168.30.2
hostname client #更改主機名為client yum -y install elinks #安裝elinks包,用以訪問網頁
vim /etc/resolve.conf
nameserver 192.168.30.3 #指定DNS服務器為電信DNS服務器192.168.30.3
dig www.wind.com #客戶機上直接測試成功
links www.wind.com #訪問www.wind.com成功,還能隨機訪問到webserver1和webserver2,實現了輪詢
DNS服務器主從冗余性測試
把所有機器的DNS緩存清除
rndc flush
把主DNS服務器192.168.30.6給down掉,或者拔掉網線
在客戶端上links www.wind.com,仍然成功,證明了DNS服務器主從冗余性
互聯網DNS架構模擬