• DNS解析流程及服务搭建


    DNS解析流程及服务搭建

    解析流程

    • 以访问 www.baidu.com 为例子
      • 1.客户端首先查看本地hosts文件是否存在对应ip
      • 2.如果没有,则向/etc/resolv.conf 文件中指定的DNS解析服务器发起查询请求
      • 3.DNS服务器首先查看自己本地有没有用缓存,有就直接返回给客户端,没有就向根域服务发起请求
      • 4.根域服务器收到请求后,告诉DNS服务器去它下面的com域去查询
      • 5.com域服务器收到请求后,让DNS服务器去它下面的baidu.com去找
      • 6.baidu.com服务器收到请求后,发现确实有www主机的ip,于是将对应的ip地址返回给DNS服务器
      • 7.DNS服务器收到对应的ip地址后,自己缓存一份,然后发给客户端
      • 8.客户端再拿这个ip地址去访问 www.baidu.com

    相关知识点

    • 资源记录类型
      • SOA 指明起始授权机构,设置超时时间等
      • NS 标识哪台服务器是DNS服务器
      • A 存储域内主机名对应的IP地址
      • PTR 存储IP地址对应的主机名
      • MX 域邮件服务器
      • CNAME 主机别名

    服务搭建

    服务器端

    1.首先关闭selinux,iptables

    setenfore 0 
    systemctl stop firewalld
    

    上面是临时关闭,永久关闭如下:

    sed -ir 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
    source /etc/selinux/config
    systemctl disable firewalld
    
    

    2.编辑 /etc/named.conf文件

    listen-on port 53 { any; };#监听地址和端口
    allow-query    { any; }; #允许来解析的主机
    dnssec-enable no;#关闭dns安全检查
    
    

    3.修改/etc/named.rfc1912.zones 定义正反解解区域,增加以下内容

    #正解
    zone "pl.com" IN {
            type master;
            file "named.pl.com";
    }  
    #反解
    zone "139.168.192.in-addr.arpa" IN {
            type master;
            file "named.192.168.139";
    };
    
    

    4.创建正解文件/var/named/named.pl.com,反解文件/var/named/named.192.168.139 切记一定要修改所有者及所属组!!!

    [root@controller /var/named]# vim named.pl.com
    $TTL 1D
    @      IN SOA  dns.pl.com. rname.invalid. (
                                            0      ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
    @            IN  NS  dns.pl.com.
    dns.pl.com.  IN  A  192.168.139.105
    www.pl.com.  IN  A  192.168.139.106
    
    [root@controller /var/named]# vim named.192.168.139
    $TTL 1D
    @      IN SOA  dns.pl.com. rname.invalid. (
                                            0      ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
    @            IN  NS  dns.pl.com.
    105          IN  PTR  dns.pl.com.
    106          IN  PTR  www.pl.com.
    
    
    [root@controller /var/named]# chown named.named named.pl.com  named.192.168.139
    

    5.重启服务即可

    systemctl restart named
    

    客户端

    1.用dig命令测试

    #正解
    [root@controller /var/named]# dig dns.pl.com @192.168.139.105
    
    ; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> dns.pl.com @192.168.139.105
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34409
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;dns.pl.com.            IN    A
    
    ;; ANSWER SECTION:
    dns.pl.com.        86400    IN    A    192.168.139.105
    
    ;; AUTHORITY SECTION:
    pl.com.            86400    IN    NS    dns.pl.com.
    
    ;; Query time: 0 msec
    ;; SERVER: 192.168.139.105#53(192.168.139.105)
    ;; WHEN: Wed Feb 20 22:13:17 CST 2019
    ;; MSG SIZE  rcvd: 69
    
    #反解
    [root@controller /var/named]# dig -x 192.168.139.106 @192.168.139.105
    
    ; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> -x 192.168.139.106 @192.168.139.105
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34174
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;106.139.168.192.in-addr.arpa.    IN    PTR
    
    ;; ANSWER SECTION:
    106.139.168.192.in-addr.arpa. 86400 IN    PTR    www.pl.com.
    
    ;; AUTHORITY SECTION:
    139.168.192.in-addr.arpa. 86400    IN    NS    dns.pl.com.
    
    ;; ADDITIONAL SECTION:
    dns.pl.com.        86400    IN    A    192.168.139.105
    
    ;; Query time: 0 msec
    ;; SERVER: 192.168.139.105#53(192.168.139.105)
    ;; WHEN: Wed Feb 20 22:27:57 CST 2019
    ;; MSG SIZE  rcvd: 115
    
    
    

    2.永久指定DNS服务器,则修改/etc/resolv.conf文件

    [root@node1 ~]# vim /etc/resolv.conf
    nameserver 192.168.139.105
    

    DNS主从同步

    1.在主服务器上修改定义的正反区域,如下

    [root@controller /var/named]# vim /etc/named.rfc1912.zones 
    zone "pl.com" IN {
            type master;
            file "named.pl.com";
            allow_transfer { 192.168.139.106; };
    };
    
    zone "139.168.192.in-addr.arpa" IN {
            type master;
            file "named.192.168.139";
            allow_transfer { 192.168.139.106; };
    };
    

    2.将从服务器的NS记录加到正反解文件中

    [root@controller /var/named]# vim named.pl.com 
    $TTL 1D
    @      IN SOA  dns.pl.com. rname.invalid. (
                                            0      ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
    @            IN  NS  dns.pl.com.
    @            IN  NS  dns1.pl.com
    dns.pl.com.  IN  A  192.168.139.105
    www.pl.com.  IN  A  192.168.139.106
    
    [root@controller /var/named]# vim named.192.168.139 
    $TTL 1D
    @      IN SOA  dns.pl.com. rname.invalid. (
                                            0      ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
    @            IN  NS  dns.pl.com.
    @            IN  NS  dns1.pl.com
    105          IN  PTR  dns.pl.com.
    106          IN  PTR  www.pl.com.
    
    

    3.从服务器配置
    1.修改/etc/named.conf与主一致

    listen-on port 53 { any; };#监听地址和端口
    allow-query    { any; }; #允许来解析的主机
    dnssec-enable no;#关闭dns安全检查
    
    

    2.修改定义区域与主服务器一致,type为slave ,file放在slaves目录下,正反解无需自己创建,重启服务后会自动生成

    zone "pl.com" IN {
            type slave;
            file "slaves/named.pl.com";
            masters { 192.168.139.105; } ;
    };
    
    zone "139.168.192.in-addr.arpa" IN {
            type slave;
            file "slaves/named.192.168.139";
            masters { 192.168.139.105; } ;
    };
     
    

    3.重启服务即可

    systemctl restart named
    

    4.测试

    #可以看到/var/named/slaves自动生成了两个与主服务器一样的正反解文件
    [root@node1 /var/named/slaves]# ls
    named.192.168.139  named.pl.com
    #用dig命令指定从服务器,测试成功
    #正解
    [root@controller /var/named]# dig www.pl.com @192.168.139.106
    
    ; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> www.pl.com @192.168.139.106
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3356
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;www.pl.com.            IN    A
    
    ;; ANSWER SECTION:
    www.pl.com.        86400    IN    A    192.168.139.106
    
    ;; AUTHORITY SECTION:
    pl.com.            86400    IN    NS    dns.pl.com.
    
    ;; ADDITIONAL SECTION:
    dns.pl.com.        86400    IN    A    192.168.139.105
    
    ;; Query time: 3 msec
    ;; SERVER: 192.168.139.106#53(192.168.139.106)
    ;; WHEN: Wed Feb 20 22:54:48 CST 2019
    ;; MSG SIZE  rcvd: 89
    
    
    #反解
    [root@controller /var/named]# dig -x 192.168.139.106 @192.168.139.106
    
    ; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> -x 192.168.139.106 @192.168.139.106
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42659
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;106.139.168.192.in-addr.arpa.    IN    PTR
    
    ;; ANSWER SECTION:
    106.139.168.192.in-addr.arpa. 86400 IN    PTR    www.pl.com.
    
    ;; AUTHORITY SECTION:
    139.168.192.in-addr.arpa. 86400    IN    NS    dns.pl.com.
    
    ;; ADDITIONAL SECTION:
    dns.pl.com.        86400    IN    A    192.168.139.105
    
    ;; Query time: 0 msec
    ;; SERVER: 192.168.139.106#53(192.168.139.106)
    ;; WHEN: Wed Feb 20 22:48:51 CST 2019
    ;; MSG SIZE  rcvd: 115
    
    
    每次主服务器正反解有修改,都要更改设置的序列号serial,并且主从服务器都需要重启named服务,从服务器才能同步

    常见问题

    Feb 21 01:24:58 controller named[63486]: zone pl.com/IN: loading from master file named.pl.com failed: permission denied
    Feb 21 01:24:58 controller named[63486]: zone pl.com/IN: not loaded due to errors.
    

    无权限加载name.pl.com文件,这就是没有改变正反解文件所有者和所属组所导致的。
    解决办法:

    chown named.named named.pl.com
    
  • 相关阅读:
    LDAP服务器的概念和原理简单介绍
    LDAP概念和原理介绍
    @ENABLEWEBSECURITY和@ENABLEWEBMVCSECURITY有什么区别?
    解决:javac: 无效的目标发行版: 1.8
    win10下,cmd,power shell设置默认编码为‘UTF-8’?
    windows 控制台cmd乱码(及永久修改编码)的解决办法
    学而不思则罔,思而不学则殆(读书要思考,灵活运用。考虑问题的时候,不要陷入空想,要去看书学一下才有用)(孔子亲测:吾尝终日不食,终夜不寝,以思,无益,不如学也),死记硬背不行,光自己琢磨不看书也不行
    【需求采集】用户访谈的注意点
    C++中回调(CallBack)的使用方法(其实就是类方法指针,我觉得你的方法易用性不好,虽然原理正确)
    arm cpu的架构及分类说明
  • 原文地址:https://www.cnblogs.com/fllf/p/10416431.html
Copyright © 2020-2023  润新知