互联网DNS架构模拟

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了互联网DNS架构模拟相关的知识,希望对你有一定的参考价值。

技术分享图片

本文模拟互联网的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

 技术分享图片 

 

3wind.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架构模拟的主要内容,如果未能解决你的问题,请参考以下文章

模拟构建DNS解析流程

DNS互联网架构的实现

模拟互联网中的dns服务布置(bind)

用虚拟机自主搭建互联网架构的DNS

搭建DNS主从服务器实现反向解析,子域,转发,智能DNS及排错和互联网DNS架构实验

实现DNS互联网架构