23.2互联网架构DNS服务的实验


演示实验:假如有一个网址为www.immortal.com.;小区里有个客户端主机想访问此网址,且是小区里第一个访问此网址的,则先到小区DNS服务器(只缓存服务器),没找到此网址,则此服务器(递归,负责到底)再去找根服务器;;
根服务器查看此网址的顶级域名为.com,则把.com顶级域DNS服务器的IP给小区的DNS服务器;;
小区DNS服务器器拿到IP直接访问顶级域.com的DNS服务器查询www.immortal.com,把.immortal二级域的IP给小区DNS服务器;;
小区DNS服务器拿到.immortal的二级域ip去查找此ip的dns服务器,给出www.immortal.com.此网址服务器的ip地址,最终,用户访问网站www.immortal.com.对应的ip主机;;
小区dns缓存此域名和ip对应关系,客户端电脑缓存此域名和ip对应关系;;
如图
      


        一共需要6个虚拟机,
        客户端               192.168.31.6
        小区          DNS 192.168.31.7
        根.            DNS  192.168.31.17
        .com         DNS 192.168.31.27
        .immortal  DNS 192.168.31.37
        .immortal  DNS 192.168.31.47   从DNS
        www         DNS 192.168.31.57   www.imortal.com. 服务器
        

先搭建immortal.com DNS服务器,再搭建immortal.com  DNS主从服务器,再搭建com DNS和子域委派,再搭建根服务器,再搭建小区电信dns服务器

上面7个机器安装bind  :yum -y install bind
所有都清空防火墙:iptables -F
查看防火墙 : iptables -vnL
关闭selinux: getenforce  ; setenforce 0 ; vim /etc/selinux/config ,改为disabled
=============================================
目的主机

192.168.31.57,即www.immortal.com服务器上面安装httpd服务,
[root@www57:~ ]# yum -y install httpd
[root@www57:~ ]# echo -e "welcome to www.immortal.com 192.168.31.57" > /var/www/html/index.html
[root@www57:~ ]# ss -ntl  #80端口未开
[root@www57:~ ]# systemctl start httpd
[root@www57:~ ]# iptables -F
[root@www57:~ ]# getenforce
Disabled
[root@client6 ~ ]#curl 192.168.31.57
welcome to www.immortal.com 192.168.31.57
或者用links浏览器命令

=============================================
www主服务器37

[root@immortal-master37:~ ]# vim /etc/named.conf
//      listen-on port 53 { 127.0.0.1; };  #此行注释掉
//      allow-query     { localhost; };    #此行注释掉
        allow-transfer {192.168.31.47;};   #添加此行,允许从服务器47拉取数据

        [root@immortal-slave47:~ ]# vim /etc/named.rfc1912.zones

        zone "immortal.com"{
                type master;
                file "immortal.com.zone";
        };

        

        [root@immortal-master37:~ ]# vim /var/named/immortal.com.zone
        $TTL 1D
        @ IN SOA dns1 admin (1 1D 1H 1W 3H)
             NS  dns1
             NS  dns2
        dns1 A   192.168.31.37
        dns2 A   192.168.31.47
        www  CNAME websrv
        websrv A 192.168.31.57

        [root@immortal-master37:~ ]# ll /var/named/
        total 20
        drwxrwx--- 2 named named    6 Aug  4  2017 data
        drwxrwx--- 2 named named    6 Aug  4  2017 dynamic
        -rw-r--r-- 1 root  root   146 Jul 24 21:57 immortal.com.zone
        [root@immortal-master37:~ ]# chgrp named /var/named/immortal.com.zone
        [root@immortal-master37:~ ]# chmod 640 /var/named/immortal.com.zone
        #检查配置文件/etc/named.conf和/etc/named.rfc1912.zones
        [root@immortal-master37:~ ]# named-checkconf
        #检查区域文件/var/named/immortal.com.zone
        [root@immortal-master37:~ ]# named-checkzone immortal.com.zone /var/named/immortal.com.zone
        zone immortal.com.zone/IN: loaded serial 1
        OK
        #重启服务
        [root@immortal-master37:~ ]# systemctl start named

    
-------------
        
        从服务器47
        [root@immortal-slave47:~ ]# vim /etc/named.conf
        options {
        //      listen-on port 53 { 127.0.0.1; };  #此行注释掉
        //      allow-query     { localhost; };    #此行注释掉
                allow-transfer { none; };          #添加此行,从服务器无需传输dns数据给别人


        zone "immortal.com" {
                type slave;
                masters { 192.168.31.37; };
                file "immortal.com.slave.zone";
        };
        
        [root@immortal-slave47:~ ]# named-checkconf
        [root@immortal-slave47:~ ]# systemctl restart named
        重启服务systemctl restart named 自动拉取文件
        [root@immortal-slave47:/var/named/slaves ]# ls
        immortal.com.slave.zone

---------------------------------
        测试主从服务器
        [root@client6 ~ ]#dig www.immortal.com @192.168.31.37
        ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.immortal.com @192.168.31.37
        ;; global options: +cmd
        ;; Got answer:
        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28952
        ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2    #aa权威服务器

        ;; QUESTION SECTION:
        ;www.immortal.com.        IN    A

        ;; ANSWER SECTION:
        www.immortal.com.    86400    IN    CNAME    websrv.immortal.com.
        websrv.immortal.com.    86400    IN    A    192.168.31.57

        ;; AUTHORITY SECTION:
        immortal.com.        86400    IN    NS    dns2.immortal.com.
        immortal.com.        86400    IN    NS    dns1.immortal.com.

        ;; ADDITIONAL SECTION:
        dns1.immortal.com.    86400    IN    A    192.168.31.37
        dns2.immortal.com.    86400    IN    A    192.168.31.47

        ;; Query time: 0 msec
        ;; SERVER: 192.168.31.37#53(192.168.31.37)
        ;; WHEN: Tue Jul 24 23:22:33 2018
        ;; MSG SIZE  rcvd: 141

        [root@client6 ~ ]#dig www.immortal.com @192.168.31.47
        ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.immortal.com @192.168.31.47
        ;; global options: +cmd
        ;; Got answer:
        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39537
        ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2    #权威服务器

        ;; QUESTION SECTION:
        ;www.immortal.com.        IN    A

        ;; ANSWER SECTION:
        www.immortal.com.    86400    IN    CNAME    websrv.immortal.com.
        websrv.immortal.com.    86400    IN    A    192.168.31.57

        ;; AUTHORITY SECTION:
        immortal.com.        86400    IN    NS    dns1.immortal.com.
        immortal.com.        86400    IN    NS    dns2.immortal.com.

        ;; ADDITIONAL SECTION:
        dns1.immortal.com.    86400    IN    A    192.168.31.37
        dns2.immortal.com.    86400    IN    A    192.168.31.47

        ;; Query time: 0 msec
        ;; SERVER: 192.168.31.47#53(192.168.31.47)
        ;; WHEN: Tue Jul 24 23:25:08 2018
        ;; MSG SIZE  rcvd: 141


=============================================
com服务器

        comdns 27
        委派子域
        [root@comdns:~ ]# vim /etc/named.conf
                options {
        //      listen-on port 53 { 127.0.0.1; };
        //      allow-query     { localhost; };
        
        
        [root@comdns:~ ]# scp 192.168.31.37:/var/named/immortal.com.zone /var/named/com.zone
        [root@comdns:~ ]# vim /etc/named.rfc1912.zones
        zone "com" {
                type master;
                file "com.zone";
        };
        vim com.zone  直接复制 37
        [root@comdns:~ ]# vim /var/named/com.zone
        $TTL 1D
        @ IN SOA dns1 admin (1 1D 1H 1W 3H)
             NS  dns1
        immortal     NS  dns2
        immortal     NS  dns3
        dns1 A   192.168.31.27     #.com域ip地址
        dns2 A   192.168.31.37     #子域服务器中的主服务器
        dsn3 A   192.168.31.47     #子域服务器中的从服务器      
        [root@comdns:~ ]# ll /var/named/
        total 20
        -rw-r----- 1 root  root   173 Jul 25 09:54 com.zone
        drwxrwx--- 2 named named    6 Aug  4  2017 data

        [root@comdns:~ ]# chgrp named /var/named/com.zone
        
        [root@comdns:~ ]# named-checkconf
        [root@comdns:~ ]# named-checkzone com.zone /var/named/com.zone
        zone com.zone/IN: loaded serial 1
        OK
        [root@comdns:~ ]# systemctl start named


        #测试客户端dig www.immortal.com. @192.168.31.27
        [root@client6 ~ ]#dig www.immortal.com @192.168.31.27
        ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.immortal.com @192.168.31.27
        ;; global options: +cmd
        ;; Got answer:
        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38190
        ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2       #非权威服务器,问37问出来的

        ;; QUESTION SECTION:
        ;www.immortal.com.        IN    A

        ;; ANSWER SECTION:
        www.immortal.com.    86400    IN    CNAME    websrv.immortal.com.
        websrv.immortal.com.    86400    IN    A    192.168.31.57

        ;; AUTHORITY SECTION:
        immortal.com.        86400    IN    NS    dns3.com.
        immortal.com.        86400    IN    NS    dns2.com.

        ;; ADDITIONAL SECTION:
        dns2.com.        86400    IN    A    192.168.31.37
        dns3.com.        86400    IN    A    192.168.31.47

        ;; Query time: 5 msec
        ;; SERVER: 192.168.31.27#53(192.168.31.27)
        ;; WHEN: Wed Jul 25 10:46:41 2018
        ;; MSG SIZE  rcvd: 141


=============================================  
根服务器

        根.  17
        注释掉
        [root@rootdns17:~]# vim /etc/named.conf
            options {
        //      listen-on port 53 { 127.0.0.1; };       #此行注释掉                                                           
        //      allow-query     { localhost; };         #此行注释掉
        ****省略****
        zone "." IN {
            type master;
            file "root.zone"                             #修改named.ca为root.zone
        };
        
        [root@rootdns17:~]# scp 192.168.31.37:/var/named/immortal.com.zone /var/named/root.zone
        [root@rootdns17:~]# chgrp named /var/named/root.zone
        [root@rootdns17:~]# vim /var/named/root.zone
        $TTL 1D
        @ IN SOA dns1 admin (1 1D 1H 1W 3H)
             NS  dns1
        com  NS  dns2
        dns1 A   192.168.31.17
        dns2 A 192.168.31.27                                                                                       
    [root@rootdns17:~]# systemctl start named
    
    [root@client6 ~ ]#dig www.immortal.com @192.168.31.17
        ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.immortal.com @192.168.31.17
        ;; global options: +cmd
        ;; Got answer:
        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8533
        ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

        ;; QUESTION SECTION:
        ;www.immortal.com.        IN    A

        ;; ANSWER SECTION:
        www.immortal.com.    86400    IN    CNAME    websrv.immortal.com.
        websrv.immortal.com.    86400    IN    A    192.168.31.57

        ;; AUTHORITY SECTION:
        immortal.com.        86400    IN    NS    dns2.com.
        immortal.com.        86400    IN    NS    dns3.com.

        ;; ADDITIONAL SECTION:
        dns3.com.        86400    IN    A    192.168.31.47
        dns2.com.        86400    IN    A    192.168.31.37

        ;; Query time: 7 msec
        ;; SERVER: 192.168.31.17#53(192.168.31.17)
        ;; WHEN: Wed Jul 25 11:07:17 2018
        ;; MSG SIZE  rcvd: 141

     
=============================================
小区DNS       

        电信dns  7
        
        [root@housedns7:~]# vim /etc/named.conf
                options {
        //      listen-on port 53 { 127.0.0.1; };   #注释掉此行
        //      allow-query     { localhost; };     #注释掉此行
            dnssec-enable no;           #改为no
            dnssec-validation no;       #改为no

        [root@housedns7:~]# vim /var/named/named.ca
        .                       518400  IN      NS      a.root-servers.net.  #只要此两行
        a.root-servers.net.     3600000 IN      A       192.168.31.17          #只要此两行
        [root@housedns7:~]# systemctl start named
        
        [root@client6 ~ ]#dig www.immortal.com @192.168.31.7
        ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.immortal.com @192.168.31.7
        ;; global options: +cmd
        ;; Got answer:
        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13983
        ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

        ;; QUESTION SECTION:
        ;www.immortal.com.        IN    A

        ;; ANSWER SECTION:
        www.immortal.com.    86400    IN    CNAME    websrv.immortal.com.
        websrv.immortal.com.    86400    IN    A    192.168.31.57

        ;; AUTHORITY SECTION:
        immortal.com.        86400    IN    NS    dns1.immortal.com.
        immortal.com.        86400    IN    NS    dns2.immortal.com.

        ;; ADDITIONAL SECTION:
        dns1.immortal.com.    86400    IN    A    192.168.31.37
        dns2.immortal.com.    86400    IN    A    192.168.31.47

        ;; Query time: 7 msec
        ;; SERVER: 192.168.31.7#53(192.168.31.7)
        ;; WHEN: Wed Jul 25 11:29:34 2018
        ;; MSG SIZE  rcvd: 141

=============================================    
客户端访问

        [root@client6 ~ ]#vim /etc/resolv.conf
        # Generated by NetworkManager
        #nameserver 223.5.5.5
        #nameserver 223.6.6.6
        nameserver 192.168.31.7

        [root@housedns7:~]# rndc flush
        [root@rootdns17:~]# rndc flush
        [root@rootdns27:~ ]# rndc flush
        [root@immortal-master37:~ ]# rndc flush
        
        #客户端通过域名访问www.ommortal.com,而不是一开始通过ip地址访问
        [root@client6 ~ ]#curl www.immortal.com
        welcome to www.immortal.com 192.168.31.57

        
        
        
        
        
        
        
        
        
        
        
        
        
       

猜你喜欢

转载自blog.csdn.net/csdn_immortal/article/details/81198263