V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
infinityv
V2EX  ›  宽带症候群

使用 8.8.8.8 在 SG 机器上 部分 google 域名解析会到国内

  •  
  •   infinityv · 15 小时 1 分钟前 · 1040 次点击

    在某台位于 SG 机器上使用的 DNS 服务器是 8.8.8.8 1.1.1.1

    最近发现一些域名,比如:(域名前面代表次数 可以忽略)

    通过 8.8.8.8 解析,拿到的结果是 CN 的; 通过 1.1.1.1 解析,拿到的就都是 US 的;

    我的一些分析和猜测:

    • fonts.googleapis.com 这些域名本身确实在北京有节点(大概率是事实)
    • 1.1.1.1 并不支持 ECS ,所以并不会就近解析;
    • 8.8.8.8 支持 ECS ,这台 SG 机器和某些 CN 碰巧在一个自治域内。国内用户(通过国内 DNS )查询后,cdn 返回了国内的 ip ,同时这个请求被当前自治域的公共 dns 缓存。所以当国外用户查询(即使通过 8.8.8.8 )的时候,公共 dns 就直接返回了缓存的国内 ip ,从而导致这个问题。

    目前感觉除了替换 DNS 8.8.8.8 没有别的方案,话说有没有适合 SG 的本地的 DNS 服务器啊。 ( smartdns 里面配置用,SG 节点供应商未提供自己的 DNS 服务器)

    13 条回复    2024-12-23 13:03:27 +08:00
    by
        1
    by  
       14 小时 57 分钟前 via Android
    你的新加坡 IP 可能是被 Google 送中了

    试试
    129.250.35.250
    129.250.35.251
    infinityv
        2
    infinityv  
    OP
       14 小时 51 分钟前
    @by 差不多就是第三点 被放在一个 AS 下了么。

    这俩我试了下 和 1.1.1.1 差不多 都直接解析到 US 了。

    因为 smartdns 会缓存最快的解析记录,所以感觉除非把 8.8.8.8 移掉 不然感觉一直有这个问题。好难顶

    我的 SG 机器应该是套路云 SG 的节点 确实可能 AS 不干净
    gentrydeng
        3
    gentrydeng  
       14 小时 10 分钟前 via Android
    既然你都在用 SmartDNS 了,也知道 ECS 。那为什么不直接指定一个地理位置能被正确识别 ECS ?

    https://pymumu.github.io/smartdns/config/edns-client-subnet/

    发帖之前建议先自行查看程序文档来解决问题,而不是靠凭空想象。

    而 1.1.1.1 不支持 ECS 不代表它就不是“就近解析”,只是依赖任播。
    如果你的服务器访问 1.1.1.1 是被分配到 Cloudflare 新加坡节点。那么自然是通过 Cloudflare 新加坡节点进行 DNS 请求,这也是就近解析。

    相反,支持 ECS 也不代表就是“就近解析”,因为 ECS 是可以被设置(伪装)的。
    yyzh
        4
    yyzh  
       13 小时 41 分钟前 via Android
    g 家 dns 会送中很正常
    4 条 1 如果解析到的是真位于美国的 ip 那就很不正常
    dream0689
        5
    dream0689  
       8 小时 17 分钟前 via iPhone   ❤️ 1
    @yyzh 我遇到过 op 说的这种 4 个 1 解析到其他地区的情况。一般是商家没有把 cf 任播类地址路由调到当地的 ix 或者运营商出口跟 cf 直接 peer ,我当时是 sg 的机器走 singtel 到了 hkix ,延时 200ms+,这种情况使用 4 个 1 很多时候解析不仅慢还会返回 hk 解析结果,后来发工单找技术支持调路由到他们的 EQX SG 路由解决问题了。不过如果 op 所说 us 解析结果是在 SG 的广播地址,那是没有问题的。
    dream0689
        6
    dream0689  
       8 小时 5 分钟前 via iPhone
    楼主可以参考一下这个网站 https://publicdnsserver.com/singapore/
    根据你的机器出口选择适合你的 subnet 。网站上的 dns 地址也可以试试。我平时用来测试内地到海外运营商的路由。
    yyysuo
        7
    yyysuo  
       7 小时 22 分钟前
    ecs 给 vps ip 就行了。
    infinityv
        8
    infinityv  
    OP
       5 小时 27 分钟前 via iPhone
    @dream0689 @gentrydeng 分开说哈。8.8.8.8 这个解析到国内 意思是即使我的公网地址即使物理位置在 SG ,但是 google 认为这个地址的 subnet 就是 CN 的么。

    另外 1.1.1.1 Anycast 我明白,我说的意思有一些偏差,因为我对 ECS 是有一些误解。 现在看来 这个 SG 的机器被拿到的 1.1.1.1 广播地址看来也不对,这种应该是只能找厂家调路由出口吗
    mytsing520
        9
    mytsing520  
       5 小时 3 分钟前
    /t/1081627

    这里有答复
    infinityv
        10
    infinityv  
    OP
       3 小时 30 分钟前 via iPhone
    综合看目前应该是没被送 中
    dream0689
        11
    dream0689  
       3 小时 23 分钟前 via iPhone
    @yyysuo 谷歌把 SG 的机器 ip 识别为 CN ip ,这个只能向谷歌提交反馈,谷歌说是一个月会调整,但也未必,基本无解,也就是这位朋友 @yyzh 说的被送中了。所有谷歌系都会被指向 CN 区域。这种情况尽量不要使用 4 个 8 进行解析。我的 SG 机器 ip 被识别成了 HK ip ,所以 gemini 之类的都用不了。油管的广告也是 HK 的。

    你要先 trace 一下到 4 个 1 看走哪出的,如果不是从 sg 出的,再联系技术看不能调。但就算调了,也只是意味着 4 个 1 能就近解析了,谷歌系的解析 ip 结果也会是最近的,但服务区域仍将是 CN 区域的。


    @mytsing520 基本上遇到的都是类似的情况。

    问题的根源其实是机器 ip 不是原生 ip ,ip 注册地、注册公司、实际使用地(或是 gps 定位)三者不一致。
    infinityv
        12
    infinityv  
    OP
       3 小时 8 分钟前 via iPhone
    @dream0689 我现在其实油管啥的都能正常被识别为 SG 区。只是四个八的解析不对劲。 是不是可以说我的谷歌系服务没被送中,但是谷歌 dns 四个八 给我松中了
    dream0689
        13
    dream0689  
       3 小时 1 分钟前 via iPhone
    @infinityv 服务区域还在 SG ,就表示目前还没被送中。那应该改下机器的 dns 地址或者 smartdns 改一下 subnet 值就行了。如果要用 4 个 1 就在机器上 trace 一下,如果绕了就尝试寻求技术调一下路由。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5367 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 08:04 · PVG 16:04 · LAX 00:04 · JFK 03:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.