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

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

  •  1
     
  •   Betterr · 2023-07-30 21:53:02 +08:00 · 3360 次点击
    这是一个创建于 417 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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