子域授权:分布式数据库


  1. 定义:每个域的名称服务器,都是通过其上级名称服务器所在的解析库进行授权:

    例子:

    1. 根域授权tld,在根域的名称服务器上,解析库中添加资源记录:

  • .com.            IN      NS      ns1.com.
    .com.            IN      NS      ns2.com.
    ns1.com.         IN       A      2.2.2.1
    ns2.com.         IN       A      2.2.2.2


lalala.com. 在.com的名称服务器上,解析库中添加资源记录:

        

  • lalala.com            IN      NS      ns1.lalala.com.
    lalala.com            IN      NS      ns2.lalala.com.
    lalala.com            IN      NS      ns3.lalala.com.
    ns1.lalala.com.       IN       A       3.3.3.1
    ns2.lalala.com.       IN       A       3.3.3.2
    ns3.lalala.com.       IN       A       3.3.3.3



正向子域授权实例:

                                ----    三级域名的子域授权(ops.lalala.com)


[root@server named]# cat lalala.com.zone
$TTL 1D
@       IN SOA   ns1.lalala.com. admin.lalala.com (
                                       2016060905; serial
                                       1D      ; refresh
                                       1H      ; retry
                                       1W      ; expire
                                       3H )    ; minimum
       NS      ns1.lalala.com.
       NS      ns2.lalala.com.
       MX  10  mx1.lalala.com.
       MX  20  mx2.lalala.com.
ns1     A       172.25.254.11
ns2     A       172.25.254.18
www     A       172.25.254.11
*       A       172.25.254.11为

#子域授权

ops     NS      ns1.ops   #没加.  则自动追加成ops.lalala.com
ops     NS      ns2.ops
ns1.ops A       172.25.254.10
ns2.ops A       172.25.254.19


                                       root                                     

    |

     com 

    |

                        lalala                   

     /       \

(local dns) ops     www  

                                                                            |——   user


有了子域授权,父域就能轻松的找到子域啦,可是子域还是不知道父域在什么地方==

    

  1. 假设子域(ops)为用户的本地dns服务器,用户需要访问www.lalala.com 

  2. 访问过程:

    1. user请求ops,由于ops不负责lalala.com这个域

    2. 所以ops把请求给root,由root开始,层层迭代....

  3. 出现的问题

    1. 本来是内部区域解析问题,却要麻烦root进行层层迭代,效率地下
      所以转发器应运而生,当当当党~

  4. 解决方法

    1. 当我们服务器发现有不能解析的域时,将请求转发给指定服务器

    2. 一般指定服务器为上游服务器,也就是转发服务器~






定义转发服务器


                - 注意:被转发服务器需要能够为当前请求做递归,否则转发请求不予进行


    转发类型:

            1.全部转发:

                    -    对不是本机负责解析的区域的请求,统统转发给指定服务器

Options {
                    forward (first|only)
                    fowarders
       }

        

            2.区域转发:

                     -     仅转发对特定区域的请求至某服务器


     zone "ZONE_NAME" IN {
   type forward;
   forward (first|only)
            fowarders
   };


               3.转发的两种模式:    

        

  • first:先递归,后迭代(找根)

  • only:只递归,无结果,自我放弃



下面来看一下区域转发服务器的配置



    • 配置核心思想:

      desktop 本身不能解析lalala.com,所以将解析需求转发到能解析lalala.com的server上.



定义转发服务器前:(解析失败)

wKiom1lBSmWAJuWxAACvA_Y1_EU129.png


定义区域转发服务器:


[root@desktop named]# vim /etc/named.rfc1912.zones
zone "lalala.com" IN {
       type forward; #定义转发类型
       forward only; #只使用递归模式查找
       forwarders {172.25.254.11;}; #转发服务器为172.25.254.11

};


定义转发服务器后:(解析成功)


wKioL1lBSmXz24APAADe1FW5ICw961.png


注意:

  1. 开启转发功能时,应关闭两台服务器的dnssec校验

[root@server named]# vim /etc/named.conf
       dnssec-enable yes;
       dnssec-validation no;
       dnssec-lookaside auto;


区域转发比全局转发优先级高