V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lhbc
V2EX  ›  问与答

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

  •  
  •   lhbc · 2014-12-08 11:23:32 +08:00 · 5072 次点击
    这是一个创建于 3639 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用了CDN的域名,在各运营商和各省解析的结果都不相同
    那这些公共DNS怎么根据查询IP返回正确的解析结果?

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

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

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