V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
vultr
V2EX  ›  DNS

自建权威 dns,怎么让用户一直访问最合适的 dns 服务器

  •  
  •   vultr · Jan 5, 2017 · 8653 views
    This topic created in 3401 days ago, the information mentioned may be changed or developed.
    例如有: ns1.abc.com, ns2.abc.comns1.abc.com 用的是香港的云, ns2.abc.com 用的是 LA 的云,怎么让中国大陆用户一直请求 ns1.abc.com 对域名进行解析?

    搜索得知有 anycast 这样的技术,但不知道怎么弄,除了 anycast 还有其它招数不?
    19 replies    2017-01-06 15:42:49 +08:00
    xcodeghost
        1
    xcodeghost  
       Jan 5, 2017
    你这三台权威 DNS 得支持智能解析,在这三台服务器上设置 ns1.abc.com\ns2.abc.com\ns3.abc.com 的 A 记录时,设置智能解析到 ns1.abc.com 的 IP 地址,这样递归 DNS 获取的 IP 地址应该就是 ns1.abc.com

    这样应该可以的,没试过,不确定。
    shiji
        2
    shiji  
       Jan 5, 2017 via Android   ❤️ 1
    如果 abc.com 是你的域名的话, ns1.abc.com 是这个域名的 ns , 那么得设置 glue record 吧? glue record 结果是由.com 的 ns 负责的,没听说过.com 的 ns 支持过什么花花肠子功能。 所以我认为你提出的问题无解。
    mytsing520
        3
    mytsing520  
    PRO
       Jan 5, 2017
    楼上的说法的话,那还是要在 3 个线路上随机跳的,反而增加了解析时长
    mytsing520
        4
    mytsing520  
    PRO
       Jan 5, 2017
    说的是 1 楼, 2 楼请无视
    vultr
        5
    vultr  
    OP
       Jan 5, 2017
    @shiji 我目前也找不到解决的方法,上来 v2 问问,看有没有特别的招数。
    xcodeghost
        6
    xcodeghost  
       Jan 5, 2017   ❤️ 1
    @vultr
    @mytsing520 我记得递归 DNS 取得域名的最终 NS 记录是来自权威 DNS 上的记录,而并非.com 的记录。除非权威 DNS 上没有设置 NS 记录。
    xcodeghost
        7
    xcodeghost  
       Jan 5, 2017   ❤️ 1
    @shiji 这个问题我很早之前就请教过 fenghe ,他博客中当时还记录了: http://blog.dnsbed.com/archives/115

    本地递归DNS最终是缓存权威 DNS 上 NS 记录。
    vultr
        8
    vultr  
    OP
       Jan 5, 2017   ❤️ 1
    @xcodeghost 我在本机的环境验证了你的说法,确实如你所说的是缓存的权威 dns 的 ns 记录。

    看来 bind 上配置 minimal-responses yes ; 是不好的。
    shiji
        9
    shiji  
       Jan 5, 2017 via Android
    @xcodeghost 这个有点意思,我以前从来没注意过这块儿,学习了。
    raysonx
        10
    raysonx  
       Jan 5, 2017 via Android
    @vultr 没错, ns 的结果确实是权威 DNS 的 ns 的记录。
    但问题出在递归 DNS 第一次解析这个域名的时候, ns 记录是由 com.的权威 DNS 提供的。
    vultr
        11
    vultr  
    OP
       Jan 5, 2017
    @raysonx 是的,第一次解析可能慢的问题还没解决,不过已经解决大部分问题了。

    高手在 v2, 哈。

    一直在头痛的问题一下子就解决掉了,谢谢大家。
    lslqtz
        12
    lslqtz  
       Jan 5, 2017 via iPhone
    只能 anycast 了吧,国内 anycast 又残了
    johnjiang85
        13
    johnjiang85  
       Jan 5, 2017
    建议国内、国外分别部署多于一台服务器,用来做容灾。
    vultr
        14
    vultr  
    OP
       Jan 5, 2017
    @johnjiang85 是的,确实是要部署多台服务器。

    对了,完全不了解 DPDK 的如果要研究它的话,有没有什么好书或者资料介绍?
    johnjiang85
        15
    johnjiang85  
       Jan 5, 2017
    @vultr dpdk.org,官网的文档和 examples 都比较全,应该算是最好的资料了,除了 TCP/IP 协议栈没有开源。
    czb
        16
    czb  
       Jan 6, 2017 via Android
    你这样来的话 Points of Failure 太多了 而且还要有额外的查询 我觉得没有什么实用性
    czb
        17
    czb  
       Jan 6, 2017 via Android
    要实现你说的这个我知道的只有 Anycast
    txydhr
        18
    txydhr  
       Jan 6, 2017 via iPad
    dns 协议好像没有自动选择最近服务器的功能
    millken
        19
    millken  
       Jan 6, 2017   ❤️ 1
    @johnjiang85
    推荐 snabb ,性能不输 DPDK ,我就拿它来测试 dns 性能,万兆网卡发 dns 查询包可以达到 1000W+

    最合适的只有上 Anycast
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   932 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 21:19 · PVG 05:19 · LAX 14:19 · JFK 17:19
    ♥ Do have faith in what you're doing.