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

关于 CloudXNS 架构中的海外节点的疑问

  •  
  •   SukkaW · 2018-08-20 19:30:03 +08:00 · 4299 次点击
    这是一个创建于 2287 天前的主题,其中的信息可能已经有所发展或是发生改变。

    TL ; DR

    当权威 DNS 中给出的权威 DNS 的域名解析的 A 记录包含 Glue Record 以外的 IP 时,托管在该权威 DNS 上解析的域名会使用权威 DNS 的哪些 IP 进行解析。

    Details

    上述情况中最典型的权威 DNS 是 CloudXNS,ffdns.net 的 Glue Record 中没有海外节点 IP,海外节点的 IP 只有在海外 dig lv[3,4,5]ns[1-4].ffdns.net 时会通过 GeoDNS 返回,也就是说这些海外节点的 IP 是 CloudXNS 返回的。

    所以,递归 DNS 在解析托管在 CloudXNS 上的域名时,按照 DNS 迭代,需要先查询 lv[3,4,5]ns[1-4].ffdns.net 的 A 记录;那么这些 A 记录,是直接使用 ffdns.net 的 Glue Record,还是 CloudXNS 自己返回的记录。 ?

    第 1 条附言  ·  2018-08-20 23:29:33 +08:00
    感谢 @isCyan 问题已经解决了,为此还水了篇博客 https://blog.suka.moe/post/authoritative-dns-record-glue/
    14 条回复    2018-08-21 16:58:18 +08:00
    mytsing520
        1
    mytsing520  
       2018-08-20 20:11:30 +08:00
    去 glue record 请求
    isCyan
        2
    isCyan  
       2018-08-20 20:28:55 +08:00   ❤️ 1
    @mytsing520 只有请求 ffdns.net 的子域名的时候会到 glue record 里面查询
    楼主问的 A 记录是返回 CloudXNS 自己返回的记录。
    流程:
    查询 com
    查询 example.com => 返回 NS 选择 lv3ns1.ffdns.net
    查询 net
    查询 ffdns.net => 返回 NS xxx.ffdns.net 以及 glue record (因为 NS 域名和查询的域名是同一个 ffdns.net
    xxx.ffdns.net glue record 查询 lv3ns1.ffdns.net
    返回 GeoDNS 海外节点
    向海外节点查询 example.com
    返回
    也就是说,虽然查询 example.com 时访问了海外节点,但是查询 example.com 的 NS 服务器( lv3ns1.ffdns.net )的 IP 时还是使用的 glue record,并没有从根本上提升速度
    purezhang
        3
    purezhang  
       2018-08-20 20:32:50 +08:00 via iPhone
    mark
    SukkaW
        4
    SukkaW  
    OP
       2018-08-20 20:34:43 +08:00   ❤️ 3
    @isCyan 但是 lv3ns[1-4].ffdns.net 的 NS 就是自身 lv3ns[1-4].ffdns.net
    SukkaW
        5
    SukkaW  
    OP
       2018-08-20 20:35:53 +08:00   ❤️ 3
    @purezhang #3 我昨天还在你的 TG 群里和你讨论这个哩
    isCyan
        6
    isCyan  
       2018-08-20 20:36:13 +08:00
    @SukkaW 所以要用 glue record 啊
    我上面所说的 xxx. ffdns. net 就是指这些 ffdns. net 自己用自己的 NS
    isCyan
        7
    isCyan  
       2018-08-20 20:37:04 +08:00
    @SukkaW 除了自己用自己这种情况之外,其他情况全部不使用 glue record
    isCyan
        8
    isCyan  
       2018-08-20 20:41:10 +08:00
    查询使用 CloudXNS 的 example. com

    1. 由于是 example. com 使用 ffdns. net 不是自己,所以并不使用 example. com/ffdns. net 的 glue record
    2. 所以要多进行一次 ffdns 的查询,但是发现 ffdns 使用 ffdns 自己,所以使用 ffdns. net 的 glue
    SukkaW
        9
    SukkaW  
    OP
       2018-08-20 20:52:45 +08:00   ❤️ 2
    @isCyan 明白了~
    SukkaW
        10
    SukkaW  
    OP
       2018-08-20 21:24:33 +08:00   ❤️ 3
    @isCyan 对了,那么向 Glue Record 查询权威 DNS 的解析记录是随机选择么?如果 example.com 的一个 NS 里对应多个 IP 也是随机的?还是都会计算 RTT ?
    isCyan
        11
    isCyan  
       2018-08-20 22:33:19 +08:00 via Android
    @SukkaW 这就不知道了,我对这个也有疑问。听说不同 DNS 策略不同
    geekzu
        12
    geekzu  
       2018-08-21 07:54:17 +08:00 via Android
    @isCyan 描述的流程有一些问题,.com 和.net 实际上是同一组 DNS 服务的,所以在一开始查询 example.com 时,NS 就会返回 ffdns.net 的 glue 了
    mytsing520
        13
    mytsing520  
       2018-08-21 14:41:53 +08:00
    @isCyan 11# 理论值来说,是随机向其中一条发起请求并返回记录
    425685343
        14
    425685343  
       2018-08-21 16:58:18 +08:00
    本 zone 可以直接使用 glue 的结果,非本 zone 的必须从权威那里拿到 NS 的结果才可以使用,所以当递归解析 ffdns.net 本身的时候会直接使用 glue 记录的结果,如果解析其他托管在 ffdns.net 的域名则一定会从 ffdns.net 拿到 NS 的结果才能发起递归解析
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2780 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:20 · PVG 14:20 · LAX 22:20 · JFK 01:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.