1. 程式人生 > >互聯網DNS架構模擬

互聯網DNS架構模擬

hostname span ttl answer dns服務 緩存清除 conf 兩臺 cal

技術分享圖片

本文模擬互聯網的DNS架構,由1臺客戶端,1臺運營商DNS服務器,1臺根域服務器,1.com域服務器,兩臺DNS服務器做主從,兩臺Web服務器,共8臺機器構成,實現互聯網上的DNS解析模擬。

DNS服務的基礎知識可參考上一篇博客http://blog.51cto.com/13695854/2132307

在此實驗中配置完1臺服務器就測試1臺,以免故障堆積後不好排查,以下是各臺服務器的配置

1Web服務器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服務

2Web服務器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服務器12成功

curl 192.168.30.8
curl 192.168.30.9

技術分享圖片

3

wind.comDNS服務器

#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服務器地址成功

技術分享圖片

4wind.comDNS服務器

#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

在客戶機上測試,.comDNS服務器解析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.6down掉,或者拔掉網線

技術分享圖片


在客戶端上links www.wind.com,仍然成功,證明了DNS服務器主從冗余性

技術分享圖片


互聯網DNS架構模擬