Linux之DNS服务器实战:部署本地正解反解DNS服务器,部署主从服务器,DNS_View视图实验

作业15 DNS服务器

15.0 实验准备

主机IP系统从属
DNS服务器192.168.6.128Centos 7
客户端192.168.6.146Centos 6.9
测试机192.168.6.111Centos 6.9-

15.1 部署本地DNS服务器,域名与ip自行规划,正解反解都需要做

  1. 正解配置
  • DSN服务器端配置

    1. 防火墙和selinux设置

      [root@ ~ 09:54:27]#firewall-cmd --list-services
      ssh dhcpv6-client
      [root@ ~ 09:55:37]#firewall-cmd --query-service=dns
      no
      [root@ ~ 09:57:12]#firewall-cmd --add-service=dns
      success
      
      
      [root@ ~ 09:58:19]#setenforce 0
      [root@ ~ 09:58:19]#getenforce
      Disabled
      
    2. 相关软件安装

      [root@ ~ 09:22:35]#yum -y install bind bind-utils
      
    3. 主配置文件DNS服务全局参数修改

      [root@ / 03:10:15]#vim /etc/named.conf 
      options {
                  listen-on port 53 { any; };  //监听地址和端口
                  allow-query     { any; };    //允许任意主机来解析域名
                  ...
                  recursion yes;				 //支持递归查询
        			...
                  dnssec-enable no;			 //关闭dns安全检查
                  dnssec-validation no;
                  
      };
      
      include "/etc/named.rfc1912.zones"; //可以在这个文件下定义正解区域,也可以在当前文件里定义正解区域,我们选择前者,步骤且看下一步
      
      
    4. 定义正解区域

      [root@ ~ 09:29:04]#vim /etc/named.rfc1912.zones 
       zone "lpz.com" IN {
      	 type master;
           file "named.lpz.com";   //文件默认位于/var/named目录下
      }; #漏了分号,启动失败 named status呈现failed
      
    5. 创建正解文件

      [root@ ~ 09:38:10]#cp /var/named/named.localhost  /var/named/named.lpz.com 
      //复制模板,模板基础上修改成正解文件
      [root@ ~ 09:39:22]#vim /var/named/named.lpz.com
      $TTL 1D
      lpz.com.        IN SOA dns.lpz.com. root.lpz.com (
                                              0       ; serial //序列号,用于主从dns同步
                                              1D      ; refresh //1天周期性更新
                                              1H      ; retry   //重连时间
                                              1W      ; expire  
                                              3H )    ; minimum //缓存时间
      lpz.com.       IN       NS      dns.lpz.com.    //dns服务器域名FQDN格式
      dns.lpz.com.   IN        A      192.168.6.128   //dns服务器ip
      ftp            IN        A      192.168.6.146   //ftp识别成ftp.lpz.com.
      www            IN        A      192.168.6.111   //www识别成www.lpz.com.
      
      #其中 lpz.com. 可以用 @ 替换,代表域
      
    6. 修改正解文件权限并重启服务

      [root@ ~ 09:58:50]#ll /var/named -l
      total 32
      ...
      -rw-r----- 1 root  named  152 Jun 21  2007 named.localhost
      ...
      -rw-r--r-- 1 root  root   286 Sep 24 09:46 named.lpz.com
      ...
      #如果不修改属组权限,服务重启失败
      [root@ ~ 09:59:10]#chgrp named /var/named/named.lpz.com 
      [root@ ~ 10:05:27]#systemctl restart named
      
      
  • 客户端

    1. 域名服务器客户端配置文件修改
    [root@lin ~]# vim /etc/resolv.conf
    nameserver 192.168.6.128 #NS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名
    
    #修改前,ping通
    [root@lin ~]# ping lpz.com
    PING lpz.com (67.227.154.119) 56(84) bytes of data.
    
    #修改后,ping通
    [root@lin ~]# ping ftp.lpz.com
    PING ftp.lpz.com (192.168.6.146) 56(84) bytes of data.
    64 bytes from 192.168.6.146: icmp_seq=1 ttl=64 time=0.054 ms
    
    [root@lin ~]# ping www.lpz.com
    PING www.lpz.com (192.168.6.111) 56(84) bytes of data.
    
    [root@lin ~]# ping dns.lpz.com
    PING dns.lpz.com (192.168.6.128) 56(84) bytes of data.
    64 bytes from 192.168.6.128: icmp_seq=1 ttl=64 time=0.370 ms
    
    [root@lin ~]# ping www.baidu.com  
    #响应速度慢
    PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
    64 bytes from 14.215.177.38: icmp_seq=1 ttl=128 time=9.28 ms
    [9]+  Stopped                 ping www.baidu.com
    
    
  1. 反解配置
  • DSN服务器端

    1. 定义反解区域

      [root@ ~ 10:20:34]#vim /etc/named.rfc1912.zones 
      zone "6.168.192.in-addr.arpa" IN {
              type master;
              file "name.192.168.6";
      };
      
    2. 创建反解文件

      [root@ ~ 11:15:02]#cp -a /var/named/named.lpz.com  /var/named/named.192.168.6
      #-a 表示复制原来的所有权属性
      [root@ ~ 11:15:42]#vim /var/named/named.192.168.6 
      $TTL 1D
      @       IN SOA dns.lpz.com. root.lpz.com (
                                              0       ; serial
                                              1D      ; refresh
                                              1H      ; retry
                                              1W      ; expire
                                              3H )    ; minimum
      @       IN      NS      dns.lpz.com.
      128             IN     PTR      dns.lpz.com.
      146             IN      PTR     ftp.lpz.com.
      111             IN     PTR      www.lpz.com.
      
    3. 重启服务

      [root@ ~ 11:15:42]#systemctl restart named
      
  • 客户端

    [root@lin ~]# dig -t PTR 146.6.168.192.in-addr.arpa @192.168.6.128
    #查找146.6.168.192.in-addr.arpa对应的域名
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.7 <<>> -t PTR 146.6.168.192.in-addr.arpa @192.168.6.128
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26292
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
    
    ;; QUESTION SECTION:
    ;146.6.168.192.in-addr.arpa.	IN	PTR
    
    ;; ANSWER SECTION:
    146.6.168.192.in-addr.arpa. 86400 IN	PTR	ftp.lpz.com.  #查找成功:ftp.lpz.com.
    
    ;; AUTHORITY SECTION:
    6.168.192.in-addr.arpa.	86400	IN	NS	dns.lpz.com.
    
    ;; ADDITIONAL SECTION:
    dns.lpz.com.		86400	IN	A	192.168.6.128
    
    ;; Query time: 0 msec
    ;; SERVER: 192.168.6.128#53(192.168.6.128)
    ;; WHEN: Thu Aug 20 04:38:05 2020
    ;; MSG SIZE  rcvd: 103
    

15.2 部署主从DNS服务器

  • 主DNS服务器配置
  1. 防火墙设置

    [root@ ~ 03:52:04]#systemctl restart firewalld
    [root@ ~ 03:52:08]#firewall-cmd --list-services
    ssh dhcpv6-client
    [root@ ~ 03:52:13]#firewall-cmd --add-service=dns
    success
    [root@ ~ 03:52:16]#firewall-cmd --list-services
    ssh dhcpv6-client dns
    
    
    [root@ ~ 09:58:19]#setenforce 0
    [root@ ~ 09:58:19]#getenforce
    Disabled
    
  2. 主服务器(.128)里进行时间同步

    [root@ ~ 03:21:32]#hostname -I
    192.168.6.128 
    
    [root@ ~ 03:22:32]#yum -y install ntpdate
    [root@ ~ 03:22:48]#ntpdate time1.aliyun.com
    24 Sep 15:23:18 ntpdate[3767]: step time server 203.107.6.88 offset 2.792904 sec
    [root@ ~ 03:23:34]#timedatectl set-timezone Asia/Shanghai
    [root@ ~ 03:23:59]#date
    Thu Sep 24 15:24:19 CST 2020
    
  3. 主服务器(.128)里DNS服务全局参数配置

    [root@ ~ 03:26:19]#vim /etc/named.conf 
    options {
        listen-on port 53 {any;};
        ...
        allow-query {any;};
        ...
        dnssec-enable no;
        dnssec-validation no;
    }
  4. 主服务器(.128)里重新定义正解区域和反解区域

    [root@ ~ 03:26:19]#vim /etc/named.rfc1912.zones 
    zone "lpz.com" IN {  						  //正解区域
            type master;   						 //主服务器
            file "named.lpz.com";
            allow-transfer { 192.168.6.146; };
    };
    zone "6.168.192.in-addr.arpa" IN { 			 //反解区域
            type master;  
            file "named.192.168.6";
            allow-transfer { 192.168.6.146; };  //允许同步到从服务器
    }; 											//注意有分号
    
  5. 主服务器(.128)里创建正解文件和反解文件

    [root@ ~ 03:30:25]#vim /var/named/named.lpz.com     //正解文件
    $TTL 1D
    lpz.com.        IN SOA dns1.lpz.com. root.lpz.com (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
    lpz.com.       IN       NS      dns1.lpz.com.      //第一个dns服务器 主
    lpz.com.       IN       NS      dns2.lpz.com.      //第二个dns服务器 从
    dns1.lpz.com.  IN        A      192.168.6.128      //主dns服务器映射指定ip
    dns2.lpz.com.  IN        A      192.168.6.146      //从dns服务器映射到另一个指定ip
    ftp            IN        A      192.168.6.112  
    www            IN        A      192.168.6.111
    
    [root@ ~ 03:34:48]#vim /var/named/named.192.168.6   //反解文件
    $TTL 1D
    @       IN SOA dns1.lpz.com. root.lpz.com (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
    @       IN      NS      dns1.lpz.com.
    @       IN      NS      dns2.lpz.com.
    128             IN     PTR      dns1.lpz.com.
    146             IN     PTR      dns2.lpz.com.
    111             IN     PTR      www.lpz.com.
    112             IN     PTR      ftp.lpz.com.
    
    
  6. 主服务器(.128)重启服务

    [root@ ~ 11:15:42]#systemctl restart named
    
  • 从DNS服务器配置
  1. 从服务器(.146)里时间同步

    [root@lin ~]# yum -y install ntpdate
    [root@lin ~]# ntpdate time1.aliyun.com
    [root@lin ~]# date
    Thu Sep 24 15:41:24 CST 2020
    [root@lin ~]# yum -y install bind bind-utils
    
  2. 从服务器(.146)防火墙设置

    [root@lin ~]# getenforce
    Enforcing
    [root@lin ~]# setenforce 0
    [root@lin ~]# iptables -F
    
  3. 从服务器(.146)dns服务全局参数配置

    [root@lin ~]# vim /etc/named.conf 
    options {
            listen-on port 53 { any; };
    ...
            allow-query     { any; };
    ...
            dnssec-enable no;
            dnssec-validation no;
    ...
    };
    
  4. 从服务器(.146)定义正解区域和反解区域

    [root@lin ~]# vim /etc/named.rfc1912.zones 
    zone "lpz.com" IN {     //正解区域
            type slave;    //从服务器
            file "slaves/named.lpz.com";  //正解文件
            masters { 192.168.6.128; };   //主dns服务器ip
    };
    
    zone "6.168.192.in-addr.arpa" IN {  //反解区域
            type slave;					//从服务器
            file "slaves/named.192.168.6";  //反解文件
            masters { 192.168.6.128; };		主dns服务器ip
    };
    
  5. 从服务器(.146)重启dns服务

    [root@lin ~]# service named restart
    Stopping named:                                            [  OK  ]
    Generating /etc/rndc.key:                                  [  OK  ]
    Starting named:                                            [  OK  ]
    
  6. 查看从服务器正解文件和反解文件的同步情况

    [root@lin ~]# ls /var/named/slaves/
    named.192.168.6  named.lpz.com    //重启服务器后,发现slaves出现正解文件和反解文件,正是从主服务器同步过来
    
    #查看正解文件内容,和主dns服务器的正解文件一模一样
    [root@lin ~]# vim /var/named/slaves/named.lpz.com
    $ORIGIN .
    $TTL 86400      ; 1 day
    lpz.com                 IN SOA  dns.lpz.com. root.lpz.com.lpz.com. (
                                    0          ; serial
                                    86400      ; refresh (1 day)
                                    3600       ; retry (1 hour)
                                    604800     ; expire (1 week)
                                    10800      ; minimum (3 hours)
                                    )
                            NS      dns.lpz.com.
    $ORIGIN lpz.com.
    dns                     A       192.168.6.128
    ftp                     A       192.168.6.146
    www                     A       192.168.6.111
    
    
  • 修改主DNS服务器正解文件,并查看同步到从DNS服务器的过程
  1. 从DNS服务器(.146)监控同步日志

    [root@lin ~]# tailf /var/named/data/named.run
    
  2. 主DNS服务器(.128)修改正解文件

    [root@ ~ 03:53:07]#vim /var/named/named.lpz.com 
    $TTL 1D
    lpz.com.        IN SOA dns1.lpz.com. root.lpz.com (
                                            20200924        ; serial  #修改此处
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
    lpz.com.       IN       NS      dns1.lpz.com.
    lpz.com.       IN       NS      dns2.lpz.com.
    dns1.lpz.com.  IN        A      192.168.6.128
    dns2.lpz.com.  IN        A      192.168.6.146
    ftp            IN        A      192.168.6.112
    www            IN        A      192.168.6.111
    csx            IN        A      192.168.6.113   #添加此处
    [root@ ~ 11:15:42]#systemctl restart named   #重启服务
    
  3. 从DNS服务器(.146)监控主服务器更新,查看日志变化

    #主服务器开始传输(同步)
    zone lpz.com/IN: Transfer started.   
    #同步正解文件,同步序列号是20200924
    transfer of 'lpz.com/IN' from 192.168.6.128#53: connected using 192.168.6.146#52096
    zone lpz.com/IN: transferred serial 20200924
    #同步完成
    transfer of 'lpz.com/IN' from 192.168.6.128#53: Transfer completed: 1 messages, 9 records, 240 bytes, 0.001 secs (240000 bytes/sec)
    zone lpz.com/IN: sending notifies (serial 20200924)
    #反解文件是最新的不需要更新同步
    client 192.168.6.128#37622: received notify for zone '6.168.192.in-addr.arpa'
    zone 6.168.192.in-addr.arpa/IN: notify from 192.168.6.128#37622: zone is up to date
    
  • 测试机(.111)测试主从服务器

    #1.安装相关工具
    [root@localhost ~]# yum intatall -y bind-utils
    ftp            IN        A      192.168.6.112
    www            IN        A      192.168.6.111
    #selinux 和防火墙测试
    [root@localhost ~]# getenforce
    Enforcing
    [root@localhost ~]# setenforce 0
    [root@localhost ~]# iptables -F
    
    #3.测试主DNS服务器,成功
    [root@localhost ~]# dig ftp.lpz.com @192.168.6.128
    ...
    ;; ANSWER SECTION:
    ftp.lpz.com.		86400	IN	A	192.168.6.112   #有答案 
    ...
    
    ;; Query time: 0 msec
    ;; SERVER: 192.168.6.128#53(192.168.6.128)
    ;; WHEN: Wed Sep 23 04:34:55 2020
    ;; MSG SIZE  rcvd: 115
    
    #4.测试从dns服务器,成功
    [root@localhost ~]# dig ftp.lpz.com @192.168.6.146
    ...
    ;; QUESTION SECTION:
    ;ftp.lpz.com.			IN	A
    ;; ANSWER SECTION:
    ftp.lpz.com.		86400	IN	A	192.168.6.146    #有答案
    ...
    ;; Query time: 1 msec
    ;; SERVER: 192.168.6.146#53(192.168.6.146)
    ;; WHEN: Wed Sep 23 04:34:09 2020
    ;; MSG SIZE  rcvd: 79
    

15.3 部署DNS_VIEW视图实验

网络配置

  1. DNS服务器

    [root@ / 05:20:06]#ifconfig ens33 192.168.6.128 netmask 255.255.255.0 //连接网通网
    [root@ / 05:20:48]#ifconfig ens33:0 10.1.1.128 netmask 255.255.255.0  //连接电信网
    
  2. 电信网:

    [root@localhost ~]#ifconfig eth0 10.1.1.111 netmask 255.255.255.0
    
  3. 网通网:

    [root@lin ~]#ifconfig eth0 192.168.6.146 netmask 255.255.255.0
    

DNS服务器配置

  1. 主配置文件修改
[root@ /var/named 01:05:45]#vim /etc/named.conf 
acl internal {       //设定电信用户网段(访问控制列表 acl) 
		10.1.1.0/24;
        127.0.0.0/8;
};
acl external {      //设定网通用户网段
        192.168.6.0/24;
};

options {
        listen-on port 53 { any; };  //监听所有地址的tcp/udp 53号端口
        allow-query     { any; };     //允许任何人查询
        recursion yes;    //允许递归查询
        directory       "/var/named";  //数据文件存放的位置
        dnssec-enable no;
        dnssec-validation no;
};
  1. 区域配置文件修改/etc/named.rfc1912.zones(也可以直接在named.conf中配置)

    #所有区域必须定义在view中!!!!
    #因此注释掉所有的没有在view中定义的zones
    #包括/etc/named.rfc1912.zones 和 named.conf都可能需要修改
    [root@ ~ 12:39:09]#vim /etc/named.rfc1912.zones 
    view "dxnet" {
            match-clients { internal;};
            recursion yes;
            zone "." IN {
                    type hint;
                    file "named.ca";
            };  
            zone "pl.com" IN {
                    type master;
                    file "pl.com.internal";
            };  
    };
    view "wtnet" {
            match-clients { external;};
            recursion no; 
            zone "." IN {
                    type hint;
                    file "named.ca";
            };  
            zone "pl.com" IN {
                    type master;
                    file "pl.com.external";
            };  
    };
    
  2. view中正解文件的创建

    • 电信网正解文件配置

      [root@ ~ 12:51:15]#cp /var/named/named.localhost /var/named/pl.com.internal
      
      [root@ /var/named 01:00:32]#chgrp named pl.com.internal 
      [root@ /var/named 01:00:52]#vim pl.com.internal 
      
      $TTL 1D
      @       IN SOA  @ root.pl.com (
                                              0       ; serial
                                              1D      ; refresh
                                              1H      ; retry
                                              1W      ; expire
                                              3H )    ; minimum
      @               IN      NS      dns1.pl.com.
      dns1.pl.com.    IN      A       10.1.1.128
      www             IN      A       10.1.1.128
      
    • 网通网正解文件配置

      [root@ /var/named 01:03:17]#cp pl.com.internal pl.com.external
      
      [root@ /var/named 01:04:33]#chgrp named pl.com.external
      [root@ /var/named 01:05:35]#vim pl.com.external 
      
      $TTL 1D
      @       IN SOA  @ root.pl.com (
                                              0       ; serial
                                              1D      ; refresh
                                              1H      ; retry
                                              1W      ; expire
                                              3H )    ; minimum
      @               IN      NS      dns1.pl.com.
      dns1.pl.com.    IN      A       192.168.6.128
      www             IN      A       192.168.6.128ss
      
  3. DNS服务重启,修改错误

    [root@ ~ 11:15:42]#systemctl restart named  #报错
    /etc/named.conf:62: when using 'view' statements, all zones must be in views
    /etc/named.rfc1912.zones:13: when using 'view' statements, all zones must be in 
    #修改:view以外的区域全部注释掉
    [root@ ~ 11:17:55]#systemctl restart named  #修改错误后重启成功
    
  • 测试

    1. 电信网主机测试(10.1.1.111)

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XAaCjAMU-1601443667902)(assets/2020-09-25_011949.jpg)]

    2. 网通网主机测试(192.168.6.146)

      [root@lin ~]# dig www.pl.com @192.168.6.128
      
      ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.7 <<>> www.pl.com @192.168.6.128
      ;; global options: +cmd
      ;; Got answer:
      ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2526
      ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
      ;; WARNING: recursion requested but not available
      
      ;; QUESTION SECTION:
      ;www.pl.com.			IN	A
      
      ;; ANSWER SECTION:
      www.pl.com.		86400	IN	A	192.168.6.128   #有答案
      
      ;; AUTHORITY SECTION:
      pl.com.			86400	IN	NS	dns1.pl.com.
      
      ;; ADDITIONAL SECTION:
      dns1.pl.com.		86400	IN	A	192.168.6.128
      
      ;; Query time: 1 msec
      ;; SERVER: 192.168.6.128#53(192.168.6.128)
      ;; WHEN: Fri Sep 25 00:49:22 2020
      ;; MSG SIZE  rcvd: 79
      
      

15.4 简述cdn网络中的GSLB技术

  • GSLB技术

    一般情况下,传统的用户主机访问某域名网址要经历如下过程:

    用户提交域名->浏览器对域名进行解析->DNS服务器递归查询,并返回IP地址,用主机根据收到的IP地址发起数据请求->用户主机收到数据并显示

    这个过程加入全局负载均衡技术后,过程会变成:

    用户提交域名->浏览器对域名进行解析->DNS服务器递归查询,最终会将请求交给GSLB服务器->GSLB按照某种决策方式(比如请求IP与内容服务器群中的服务器的物理距离远近),进行相关的服务状态检测,然后挑选最合适的服务器,返回IP->用户主机根据IP发出数据请求->用户主机得到相应的内容并显示

  • GSLB技术中服务器群的选择策略有:

    1.地理区域

    2.IP地址权重:为每个IP分配权重,权重排名算法决定分配给对应IP多少流量

    3.往返时间RTT算法

  • CDN技术

    ​ 使用GSLB设备为用户选择最合适的服务器群,受Web服务器的负荷和传输距离等因素的影响,响应速度依然经常不能满足用户的需求。

    ​ 解决方案:在传输网络上利用缓存技术使得Web服务数据流能够就近访问。内容分发网络(CDN)印证这种思想,CDN使用GSLB设备将用户引导到最合适的缓存节点(距离近,负载低),使得用户在访问静态内容时获得更好的体验。

    ​ 一般情况下,传统的用户主机访问某域名网址要经历如下过程:

    1. 用户在浏览器中输入域名
    2. 浏览器向域名解析服务器发出解析请求,获得此域名对应的 IP 地址
    3. 浏览器得到这个 IP 地址,向其对应的服务器发出访问请求
    4. 目标服务器对此作出响应,将数据回传至用户浏览器并显示出来

    ​ 使用 CDN 缓存后的网站访问过程:

    1. 用户在浏览器中输入目标域名
    2. 浏览器向本地域名服务器发出解析请求
    3. 经过 DNS 递归查询,请求被转移至 全局负载均衡系统,此时还没有产生 Cache 层
    4. GSLB 根据预定的决策依据算法返回最佳 CDN 接入节点的 IP,同时本地域名服务器缓存此接入节点
    5. 用户对此 CDN 接入节点发起IP请求,CDN 网络经过内部路由,并转发请求至源服务器
    6. 源服务器返回响应的数据,CDN 节点将数据返回至 CDN 接入节点
    7. CDN 接入节点将数据返回给用户,同时缓存数据
    8. 用户用户再次请求这一份数据时,CDN 缓存会直接返回,并不需要再由源服务器进行处理
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页