V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Betterr
V2EX  ›  DNS

分地区解析是基于什么实现的啊?

  •  1
     
  •   Betterr · 272 天前 · 3012 次点击
    这是一个创建于 272 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用户使用的 DNS ,IP 都不一样,是如何去实现分区解析的呢?

    15 条回复    2023-07-31 20:55:38 +08:00
    igeeky
        1
    igeeky  
       272 天前
    大概是这个协议: edns-client-subnet
    https://blog.csdn.net/ai2000ai/article/details/98970374
    就是一个 DNS 扩展协议, 让 DNS 服务器能拿到用户 IP. 根据用户 IP 的不同, 解析结果也不同.
    Betterr
        2
    Betterr  
    OP
       272 天前
    @igeeky 我看有文章指出 ECS 的兼容性不是很好,不过这些文章都挺旧的了。在 2023 年的今天,ECS 的支持情况如何?运营商普遍支持了吗?

    刚刚看了一篇文章: https://docs.varnish-software.com/tutorials/dns-based-gslb/
    大概讲了如何通过 PowerDNS 实现 GSLB 。通过根据用户 IP 或用户所使用 DNS 的 IP 与节点列表选择最接近的子网的 IP 。

    但是还有几处疑惑,如果节点列表包含 Anycast IP 怎么办?
    DCjanus
        3
    DCjanus  
       272 天前
    一般是基于一个假设:绝大部分用户不懂配 DNS ,都直接用运营商的 DNS 。
    1423
        4
    1423  
       272 天前
    发起 DNS 递归解析的机器的 IP 并不是 114 8.8.8.8 1.1.1.1 这些
    realpg
        5
    realpg  
       272 天前   ❤️ 1
    @DCjanus #3
    不是这样的
    内部会议一般这么描述:
    忽略那群自以为是瞎几把改 DNS 的傻逼 他们慢就慢吧
    Jirajine
        6
    Jirajine  
       272 天前
    更“现代”的做法是通过 ecs 发送一个客户端的 ip 段,根据这个 ip 段分区。
    古老的做法是用户默认使用运营商提供的递归解析器,这个递归解析器的 ip 和最终用户比较近,以这个递归解析器的 ip 分区。
    不标准的做法,如各种传统公共 DNS ,是用户通过 anycast 接入,在多地部署递归解析器,通过距离用户最近的递归解析器解析,然后以这个递归解析器的 ip 分区。
    这三种方式准确性由高到低。
    naminokoe
        7
    naminokoe  
       271 天前 via iPhone
    @DCjanus 在国外用运营商 DNS 就是最优选择,自己瞎改反而不能用。
    nrtEBH
        8
    nrtEBH  
       271 天前
    绝大部分应该是根据用户递归 dns 的 ip 来判断的 不确定现在国内运营商是否支持 ecs 这种协议 有内部人士知道么
    picone
        9
    picone  
       271 天前
    以前百度的 GTC 就是根据用户设置的 DNS 来的,所以很不准,会出现跨区域调度。所以这就是为什么设置运营商的 DNS 速度会更快。

    后来有了 HTTPDNS ,直接拿到用户 IP ,所以就更准确调度了。
    thetbw
        10
    thetbw  
       271 天前
    cloudflare 有类似服务,配置多个服务器 ip ,然后 dns 查询就近返回
    Betterr
        11
    Betterr  
    OP
       271 天前 via iPhone
    @thetbw 这我倒是没用过,愿闻其详。我只用过 Cloudflare 的“橙色云” CDN 。不过如果使用 CF 的话,和其他国内的服务商(例如 DNSPOD )比起来的话,在查询方面是否有更高的延迟呢?
    Betterr
        12
    Betterr  
    OP
       271 天前
    @thetbw 刚刚去了解了一下,这是一个付费功能。https://developers.cloudflare.com/load-balancing/
    thetbw
        13
    thetbw  
       271 天前
    @Betterr 是的,付费,不知道国内厂商有没有类似的功能
    l4ever
        14
    l4ever  
       271 天前
    @thetbw 阿里云智能 DNS 解析, 早就用上了.
    mohumohu
        15
    mohumohu  
       271 天前   ❤️ 1
    6 楼讲的很清楚了。要查看自己的 DNS 的实际出口可以用 nslookup whoami.03k.org
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1077 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 23:10 · PVG 07:10 · LAX 16:10 · JFK 19:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.