DNS中的ACrndc智能DNS解析和基础排错

Posted shenxm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNS中的ACrndc智能DNS解析和基础排错相关的知识,希望对你有一定的参考价值。

bind中的ACL和rndc

    DNS除了服务器外,还具有一些访问控制和视图功能。
    访问控制是指仅对定义的网络进行解析,视图也就是智能解析。
        1》访问控制是通过acl函数来实现的,acl把一个或多个地址归为一个集合,随后可通过此统一的名称对此集合内的所有主机进行统一调用。
        2》注意:只能先定义,后使用,因此一般定义在配置文件中,处于options的前面。
        3》格式:
            acl acl_name {
                ip; 具体的ip地址
                net/prelen; 表示一个网段
                ……
            };
                示例:
                    acl mynet {
                        172.16.0.0/16;
                        10.10.10.10;
                    };
        4》bind 有四个内置的acl:
            none:  没有一个主机
            any:  任意主机
            localhost:  本机
            localnet:  本机的IP同掩码运算后得到的网络地址
        
        5》定义好后,在下方的options中或在其他的zone中进行调用。其中的访问控制的指令:
            allow-query {}:  允许查询的主机;白名单
            allow-transfer {}:允许区域传送的主机;白名单
            allow-recursion {}:  允许递归的主机, 建议全局使用
            allow-update {}:允许更新 
            
    rndc
        1》由于DNS服务器的重要性,每次修改配置文件、解析库文件后不可能都要进行重启服务器操作,否则会导致用户在重启过程当中出现无法解析的情况。因此就需要有种管理机制能够平滑的去管理这些操作,这种机制rndc。
        2》rndc是bind安装包提供的一种控制域名服务运行的工具。它监听tcp的953端口,它可以运行在其他计算机上,通过网络与DNS服务器进行连接,然后根据管理员的指令对named进程进行远程控制,此时,管理员不需要DNS服务器的根用户权限。
        3》使用rndc可以在不停止DNS服务器工作的情况下进行数据的更新,使修改后的配置文件生效。
        4》rndc与DNS服务器实时连接时,需要通过数字证书进行认证。rndc在连接通道中发送命令时,必须使用经过服务器认证的密钥加密。可以使用rndc-confgen命令产生密钥和相应的配置,再把这些配置分别放入name.conf和rndc的配置文件rndc.conf中。
        5》rndc: remote name domain controller,是一个服务,用来提供辅助性的管理功能,该服务监听在主机tcp的935号端口,默认与bind 安装在同一主机,且只能通过127.0.0.1连接DNS服务的named。因此仅允许本地使用,不允许远程。

智能DNS解析

    智能DNS解析也就是DNS的视图,bind view,view功能的实现也是需要结合acl来实现的。
    1》view是一个函数,一个bind服务器可定义多个view ,每个view 中可定义一个或多个zone,用来实现不同的来源ip解析不同的结果。
    2》每个view 用来匹配一组客户端
    3》多个view 内可能需要对同一个区域进行解析,但使用不同的区域解析库文件
    4》格式:
        view VIEW_NAME {
            match-clients { testacl; };
            zone “adc.com” {
                    type master;
                    file “adc.com.zone”; 
                    };
            include “/etc/named.rfc1912.zones”;
        } ;
        
    5》注意:
        1。一旦启用了view ,所有的zone 都只能定义在view中 
        2。仅在允许递归请求的客户端所在view中定义根区域
        3。客户端请求到达时,是自上而下检查每个view 所在服务的客户端列表

DNS基础排除

    1》例如:dig A example.com
        ; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> Aexample.com
        ;; global options: +cmd
        ;; Got answer:
        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id:30523
        ...
    
    2》SERVFAIL:The nameserver encountered a problem while processing the query.
        可使用dig +trace 排错,可能是网络和防火墙导致
    3》NXDOMAIN :The queried name does not exist in the zone.
        可能是CNAME 对应的A记录不存在导致
    4》REFUSED :The nameserver refused the client‘s DNS request due to policy restrictions.
        可能是DNS 策略导致
    5》NOERROR 不代表没有问题,也可以是过时的记录
    6》查看是否为权威记录,flags:aa 标记判断
    7》被删除的记录仍能返回结果,可能是因为* 记录存在
            如:*.example.com. . IN A 172.25.254.254
    9》注意“.”的使用
    10》避免CNAME指向CNAME记录,可能产生回环
        test.example.com. IN CNAME lab.example.com.
        lab.example.com. IN CNAME test.example.com.
    11》正确配置PTR 记录,许多服务依赖PTR ,如sshd,MTA
    12》正确配置轮询round-robin

以上是关于DNS中的ACrndc智能DNS解析和基础排错的主要内容,如果未能解决你的问题,请参考以下文章

DNS从入门到管理

F5 GTM DNS 知识点和实验 4 -智能DNS基础

智能DNS

讲清楚,说明白!DNS域名解析服务实现原理之二--智能解析

nslookup

浅谈智能DNS云解析