lhbc
V2EX  ›  问与答

公共 DNS 比如 114.114.114.114 和阿里 DNS 等是怎么解决各省线路和运营商的问题的?

  •  
  •   lhbc · Dec 8, 2014 · 5572 views
    This topic created in 4271 days ago, the information mentioned may be changed or developed.
    使用了CDN的域名,在各运营商和各省解析的结果都不相同
    那这些公共DNS怎么根据查询IP返回正确的解析结果?

    目前能够想到的办法就是在所有省份的各个运营商都部署服务器,然后根据查询者的IP,使用不同线路进行查询,然后得到该省份的运营商的解析结果返回给查询者
    比如广东电信的用户向阿里DNS查询某域名,阿里DNS根据用户的IP判断,使用广东电信的服务器向广东电信的DNS查询,然后返回结果给用户

    但这个成本非常高,而且架构很复杂

    请问有没有低成本、架构简单(一两台服务器)就能解决的办法?
    8 replies    2014-12-08 12:52:16 +08:00
    xiaozhizhu1997
        1
    xiaozhizhu1997  
       Dec 8, 2014 via Android
    首先是anycast,建立多节点。
    然后根据你的IP判断你属于什么地区什么ISP。
    lhbc
        2
    lhbc  
    OP
       Dec 8, 2014 via iPhone
    @xiaozhizhu1997 这个了解。通过购买准确的IP库判断来源IP所属的运营商和地区。
    重点是如何向上层DNS或者权威DNS请求用户所属的运营商和地区的结果。
    zhuyie
        3
    zhuyie  
       Dec 8, 2014
    你本机DNS设置为114,请求的确是发到114那边,但这是一个“可递归”查询请求,114会为你搞定后面的查询,最终结果是由你CDN的DNS服务器返回的。你CDN的DNS服务器当然知道它自己的节点分布情况。
    ovear
        4
    ovear  
       Dec 8, 2014 via Android
    ls基本都说错了。可以百度下edns
    jasontse
        5
    jasontse  
       Dec 8, 2014 via Android
    @ovear
    有没有错 ip.dnspod.cn 看一下就知道了,edns 太小众兼容性不行。
    lhbc
        6
    lhbc  
    OP
       Dec 8, 2014
    @ovear 这个有了解过
    不过需要权威DNS支持EDNS才有效
    目前大多数权威DNS都不支持吧
    ovear
        7
    ovear  
       Dec 8, 2014 via Android
    @jasontse 不小众 114 4个8 opendns 都支持
    运营商的dns就算不支持 既然是运营商的dns了 拿到的递归dns的ip就足够了
    @lhbc
    @lhbc
    @lhbc
    ovear
        8
    ovear  
       Dec 8, 2014 via Android
    靠。手机卡了 多@了几次
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3318 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 11:50 · PVG 19:50 · LAX 04:50 · JFK 07:50
    ♥ Do have faith in what you're doing.