美文网首页
自建权威DNS-如何让用户就近接入

自建权威DNS-如何让用户就近接入

作者: 平解技术控 | 来源:发表于2019-07-12 11:23 被阅读0次

    引子:
    外网DNS是用户访问网站的第一道门,如果外网DNS调度不准确,会出现跨网,跨地域等问题,调度问题是外网DNS关注的首要问题。如何让用户就近接入?有没有好的设置方法可供参考?

    一、问题说明

    调度问题直观的表现是VIEW设置多少个,ACL是否匹配正确。ACL设置一般企业会采购IPIP库的结果,国内基本可以得到正确的结果,海外的IPIP归属地也不会有很大的波动。如果请求能正常到达要访问的权威服务器,看似就万事大吉了。但是在观察业务数据的时候,发现问题并没有那么简单。

    1、按照地域分NS

    这是一个演变的过程,按照改进的过程叙述。
    第一步:国内一般的方法是华北,华东,华南,三个地域建ns。海外选择离业务近的点建ns。中国和海外的ns设置不同的地址。自建权威服务器注册到DNS服务商。按照地域顺序往后排序。每个view配置相同的ns。认为DNS解析会按照最近的NS来请求。
    问题:
    前两台NS会收到很多访问的请求,用户的来源IP和之前给这个NS设定的覆盖范围也不一致,其他的NS请求量相对低。和用户分布的趋势不符合。
    如果这样的话,即使分了ACL,也没有达到多个NS覆盖多个的问题。用户域名请求的时间仍旧很高。那么local DNS不是应该像很多NS同时发请求,然后选择一个就近的接入,以后就按照这个NS来请求吗?
    当然不会,这样用户还需要在不同的NS上随机挑选,这样更加增加了local DNS的请求时间。

    2、glue 记录

    local DNS第一次解析域名的时候,ns的地址是由.com权威提供的,本地递归DNS最终是缓存权威DNS上的ns记录。.com权威提供的方式是通过glue记录。在注册域名的时候,需要额外填写。
    glue记录是非常容易忽略的一个问题,应该搭建常规的DNSserver并不是必须的选项,因此常常会忽略,我也是在注意到问题之后,才发现对glue记录并不了解。
    加入没有glue记录,local DNS拿到了请求之后,还要在询问NS地址是什么,
    查看 www.baidu.com的glue记录:
    请求命令:
    dig www.baidu.com

    glue.png

    位于返回请求的ADDITIONAL SECTION中。

    3、实验过程

    实验验证一下第一次请求的过程:
    先来看一下请求的TTL值


    image.png

    第二次递减:


    image.png

    第三次递减:


    image.png
    第四次递减:
    image.png

    变为0:


    image.png

    重新开始请求:


    image.png

    看下对应的抓包过程:
    第一次请求的过程:


    image.png
    192.58.128.30
    J.root-servers.net192.58.128.30美国

    A.root-servers.net198.41.0.4美国
    E.root-servers.net192.203.230.10美国
    分别像这几个根存问结果:
    首先像 J.root-servers.net192.58.128.30美国 询问,
    给服务器回复了 *.gtld-servers.net的地址 .com顶级域


    image.png
    image.png image.png

    com回复之后,继续往下看:

    com回复了baidu的ns

    image.png
    选择了第一个百度权威NS发起请求。
    百度权威NS回复了请求,中带有NS信息
    image.png
    继续像百度权威NS发起请求,得到答复。
    已经缓存住了baidu 的NS地址:
    这时直接向NS询问www.a.shifen.com的地址
    image.png

    本地递归DNS最终是缓存权威DNS上的NS记录。

    4、结论

    如果想实现按照NS调度,不同的View应该配置不同的NS地址,用户请求从com得到请求之后,再去查询NS ,就会按照NS配置的地址到想让他去的NS解析了。不足之处,第一次因为从glue拿地址,所以第一次没有办法实现智能解析

    5、bind配置minimal-responses 选项

    minimal-responses
    如果是yes,当产生响应的时候,服务器将只会按照需要将记录添加到authority和additional的数据部分。(例如,delegations,negative responses)。这样会改善服务器的性能。默认值为no。

    相关文章

      网友评论

          本文标题:自建权威DNS-如何让用户就近接入

          本文链接:https://www.haomeiwen.com/subject/ooaskctx.html