zoukankan      html  css  js  c++  java
  • DNS之三-----实现DNS的TCP/UDP功能及子域委派

    DNS之三-----实现DNS的TCP/UDP功能及子域委派

    验证TCP 和UDP的53端口作用:

    将从服务器B的/var/named/slaves/目录下的文件删掉:

    [root@centos7_1 slaves]# rm -rf /var/named/slaves/baidu.com.zone.slave   删除slaves目录下的文件
    [root@centos7_1 slaves]# systemctl restart named  重启DNS服务
    [root@centos7_1 slaves]# ls  还可以复制主服务器的文件
    baidu.com.zone.slave
    [root@ansible~]#iptables -A INPUT -p tcp --dport 53 -j REJECT  将目标tcp的53端口拒绝。
    [root@centos7_1 slaves]# systemctl restart named 重启服务
    [root@centos7_1 slaves]# ls  此时不能复制主服务器的文件
    

    在客户端C上dig可以查询到当前的53信息内容,此时的内容是来自于UDP的53端口

    [root@centos6network-scripts]#dig www.baidu.com
     
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3449
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
     
    ;; QUESTION SECTION:
    ;www.baidu.com.         IN  A
     
    ;; ANSWER SECTION:
    www.baidu.com.      86400   IN  CNAME   webs.baidu.com.
    webs.baidu.com.     86400   IN  A   66.66.66.66
     
    ;; AUTHORITY SECTION:
    baidu.com.      86400   IN  NS  dns1.baidu.com.
    baidu.com.      86400   IN  NS  dns2.baidu.com.
     
    ;; ADDITIONAL SECTION:
    dns1.baidu.com.     86400   IN  A   192.168.34.101
    dns2.baidu.com.     86400   IN  A   192.168.34.103
     
    ;; Query time: 10 msec
    <strong>;; SERVER: 192.168.34.101#53(192.168.34.101)</strong>
    ;; WHEN: Thu Nov  7 11:14:25 2019
    ;; MSG SIZE  rcvd: 136
    

    总结:TCP 的53端口影响了主从复制、UDP的53端口是供查询

    实现子域委派:子域和父域在同一台主机上(可以忽略不看)

    (1)创建子域,在主服务器A(主域)上将beijing.baidu.com域写入到/etc/named.rfc1912.zones配置文件内:

    [root@ansiblenamed]#vim /etc/named.rfc1912.zones
    zone  "baidu.com" {
            type master;
            file "baidu.com.zone";
    };
     
    zone  "beijing.baidu.com" {
            type master;
            file "beijing.baidu.com.zone";
    };
    

    创建一个beijing.baidu.com区域库文件,配置完之后启动DNS,systemctl start named:

    [root@ansible~]#cd /var/named
    [root@ansiblenamed]#ls
    192.168.34.zone  beijing.baidu.com.zone  dynamic   named.empty      named.loopback
    baidu.com.zone   data                    named.ca  named.localhost  slaves
    [root@ansiblenamed]#vim beijing.baidu.com.zone
     
    $TTL 1D
    @       IN SOA  dns1  admin (
                                            1       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      dns1
    dns1    A   192.168.34.101  # 当前的IP地址指向顶级域的IP地址
    www    CNAME    webs
    webs   A      88.88.88.88
     
    [root@ansiblenamed]# chgrp named beijing.baidu.com.zone  # 修改属组为named,保持权限一致
    [root@ansiblenamed]#  chmod  640   beijing.baidu.com.zone  # 文件修改权限为640,防止文件内容被泄露
    

    (2)在客户端C上dig查询配置好后的子域信息:

    [root@centos6network-scripts]#dig www.baidu.com  查看主服务器的baidu.com域
     
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41274
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
     
    ;; QUESTION SECTION:
    ;www.baidu.com.         IN  A
     
    ;; ANSWER SECTION:
    www.baidu.com.      86400   IN  CNAME   webs.baidu.com.
    webs.baidu.com.     86400   IN  A   66.66.66.66
     
    ;; AUTHORITY SECTION:
    baidu.com.      86400   IN  NS  dns2.baidu.com.
    baidu.com.      86400   IN  NS  dns1.baidu.com.
     
    ;; ADDITIONAL SECTION:
    dns1.baidu.com.     86400   IN  A   192.168.34.101
    dns2.baidu.com.     86400   IN  A   192.168.34.103
     
    ;; Query time: 0 msec
    ;; SERVER: 192.168.34.103#53(192.168.34.103)
    ;; WHEN: Thu Nov  7 11:57:45 2019
    ;; MSG SIZE  rcvd: 136
     
    [root@centos6network-scripts]#dig www.beijing.baidu.com  查看当前的子域内容
     
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.beijing.baidu.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59333
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1
     
    ;; QUESTION SECTION:
    ;www.beijing.baidu.com.     IN  A
     
    ;; ANSWER SECTION:
    www.beijing.baidu.com.  86400   IN  CNAME   webs.beijing.baidu.com.
    webs.beijing.baidu.com. 86400   IN  A   88.88.88.88
     
    ;; AUTHORITY SECTION:
    beijing.baidu.com.  86400   IN  NS  dns1.beijing.baidu.com.
     
    ;; ADDITIONAL SECTION:
    dns1.beijing.baidu.com. 86400   IN  A   192.168.34.101
     
    ;; Query time: 4 msec
    ;; SERVER: 192.168.34.101#53(192.168.34.101)
    ;; WHEN: Thu Nov  7 11:57:54 2019
    ;; MSG SIZE  rcvd: 109
    

    实现子域委派:父域和子域在不同主机上

    父域与子域委派架构图:

    image-20210701083631343

    1、在主DNS服务器上配置一个shenzhen子域

    (1)将主服务器A的配置文件/var/named/baidu.com.zone进行修改,添加一个shenzhen域:

    [root@ansiblenamed]#vim /var/named/baidu.com.zone
     
    $TTL 1D
    @       IN SOA  dns1  admin.baidu.com. (
                                            1       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      dns1
            NS      dns2
    shenzhen NS     dns3        # 添加一个shenzhen域
    dns1    A   192.168.34.101
    dns2    A   192.168.34.103
    dhs3    A   192.168.34.102   # 将shenzhen域委派给192.168.7.102主机
     
    www    CNAME    webs
    webs   A      66.66.66.66
    

    (2)重启主服务器A的DNS服务:

    [root@ansiblenamed]#rndc reload
    server reload successful
    

    注意:检查配置文件是否书写错误

    在子域DNS服务器上安装DNS服务,并DNS配置相关文件

    yum  install bind
     
    [root@centos102 ~]# vim /etc/named.conf
    options {
    //      listen-on port 53 { 127.0.0.1; };
            listen-on-v6 port 53 { ::1; };
            directory       "/var/named";
            dump-file       "/var/named/data/cache_dump.db";
            statistics-file "/var/named/data/named_stats.txt";
            memstatistics-file "/var/named/data/named_mem_stats.txt";
    //      allow-query     { localhost; };
    

    (4)修改子域DNS服务器的/etc/named.rfc1912.zones配置文件:

    [root@centos102 ~]# vim /etc/named.rfc1912.zones
    zone "shenzhen.baidu.com" {
            type master;
            file "shenzhen.baidu.com.zone";
    };
    

    (5)在子域DNS服务器上远程复制主服务器A的区域库文件,并将所属组属性进行修改:

    [root@centos102 ~]# scp -p 192.168.34.103:/var/named/baidu.com.zone  /var/named/shenzhen.baidu.com.zone
    [root@centos102 named]# ll
    total 32
    drwxrwx--- 2 named named 4096 Mar 23  2017 data
    drwxrwx--- 2 named named 4096 Mar 23  2017 dynamic
    -rw-r----- 1 root  named 3171 Jan 11  2016 named.ca
    -rw-r----- 1 root  named  152 Dec 15  2009 named.empty
    -rw-r----- 1 root  named  152 Jun 21  2007 named.localhost
    -rw-r----- 1 root  named  168 Dec 15  2009 named.loopback
    -rw-r----- 1 root  root   296 Nov  7 12:11 shenzhen.baidu.com.zone  此时的文件所属组属性有问题
    drwxrwx--- 2 named named 4096 Mar 23  2017 slaves
    [root@centos102 named]# chgrp named shenzhen.baidu.com.zone   修改当前的shenzhen.baidu.com.zone所属组属性
    

    (6)修改子域DNS服务器当前的shenzhen.baidu.com.zone配置文件:

    [root@centos7-2 named]# vim shenzhen.baidu.com.zone
    $TTL 1D
    @       IN SOA  dns1  admin (
                                            1       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      dns1
    dns1    A   192.168.34.102
     
    www    CNAME    webs
    webs   A      7.7.7.7
    

    注意:需要检查配置文件和域文件是否有误。

    named-checkconf 查看配置文件是否有误
    named-checkzone  baidu.com  /var/named/baidu.com.zone  检查域文件是否有误
    

    (7)启动(子域)DNS服务:

    [root@centos7-2 named]# systemctl start named
    

    3、在客户端上验证效果

    此时,我们的客户端并没有配置执行shenzhen.baidu.com.zone子域的DNS IP地址,

    在客户端执行dig查看当前的shenzhen.baidu.com.zone子域情况:

    [root@centos6~]#cat /etc/resolv.conf  # 查看当前的DNS指向的IP地址
    # Generated by NetworkManager
    search 10.localdomain
    nameserver 192.168.34.101
    nameserver 192.168.34.103
    [root@centos6~]#dig www.shenzhen.baidu.com   # 此时已经实现了迭代查询功能
     
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.shenzhen.baidu.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15796
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1
     
    ;; QUESTION SECTION:
    ;www.shenzhen.baidu.com.        IN  A
     
    ;; ANSWER SECTION:
    www.shenzhen.baidu.com. 86266   IN  CNAME   webs.shenzhen.baidu.com.
    webs.shenzhen.baidu.com. 86266  IN  A   7.7.7.7
     
    ;; AUTHORITY SECTION:
    shenzhen.baidu.com. 86266   IN  NS  dns1.shenzhen.baidu.com.
     
    ;; ADDITIONAL SECTION:
    dns1.shenzhen.baidu.com. 86266  IN  A   192.168.34.102
     
    ;; Query time: 4 msec
    ;; SERVER: 192.168.34.101#53(192.168.34.101)
    ;; WHEN: Thu Nov  7 16:35:25 2019
    ;; MSG SIZE  rcvd: 110
    

    转载至https://www.cnblogs.com/struggle-1216/p/12582252.html

    很高兴各位朋友能欣赏作品,本文版权归作者和博客园共有,欢迎转载,请在文章页面明显位置给出原文出处,否则将追究法律责任。 原文链接: https://www.cnblogs.com/strugger-0316
  • 相关阅读:
    如何将 DataTable 转成 IEnumerable<T> ?
    CodeMonkey少儿编程第7章 函数
    CodeMonkey少儿编程第6章 for循环
    CodeMonkey少儿编程第5章 数组与索引
    CoeMonkey少儿编程第4章 变量
    CodeMonkey少儿编程第3章 times循环
    CodeMonkey少儿编程第2章 turnTo对象
    CodeMonke少儿编程第1章 step与turn
    Web高级 Webpack编译提速思路
    RPC框架
  • 原文地址:https://www.cnblogs.com/strugger-0316/p/14970719.html
Copyright © 2011-2022 走看看