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

DNS 轮询的时候一个 IP 无法访问浏览器会自动重试另一个 IP 吗?

  •  
  •   8e47e42 · 2019-02-08 12:01:43 +08:00 · 2005 次点击
    这是一个创建于 1910 天前的主题,其中的信息可能已经有所发展或是发生改变。
    域名 xyz.com 有一条 A 记录,同时绑定 1.1.1.1 和 2.2.2.2 两个 IP 做 DNS 轮询。如果浏览器无法访问 1.1.1.1 的时候会自动重试 2.2.2.2 吗?谢谢大家。
    8 条回复    2019-02-08 14:21:41 +08:00
    whileFalse
        1
    whileFalse  
       2019-02-08 12:03:15 +08:00
    不会。
    mason961125
        2
    mason961125  
       2019-02-08 12:37:37 +08:00 via iPhone   ❤️ 1
    这样解释吧,轮询的意思是:多次 DNS Query 会返回不同的结果。但是一旦一个 DNS Query 完成了,那么这次的结果就确定了。
    flyz
        3
    flyz  
       2019-02-08 12:45:43 +08:00 via Android
    并不会,所以我套了减速 cf,
    不然要被别人打成孙子。
    tadtung
        4
    tadtung  
       2019-02-08 12:46:25 +08:00 via Android
    不会,轮询其实类似负载均衡。
    你需要的应该是故障后自动更换备用 dns。
    我记着 dnspod 这些都可以。
    1423
        5
    1423  
       2019-02-08 13:00:22 +08:00 via Android
    @mason961125 并不是吧
    配置多 ip 后会全部返回,是幂等的
    8888 这种会随机多个 ip 的顺序,是为了让只使用第一个 ip 的客户端实现也能够时间纬度上负载均衡

    多 ip 时是否失败重试,取决于客户端使用 socket 的方式,如果交给系统解析 dns,就无法区分是否有多个 ip,只能无脑重试 n 次,而 ss 或者 chrome 似乎都具备自行解析 dns 的功能,所以是否失败重试是客户端自行考量实现的

    curl 实现了 ipv6 失败时的回落 ipv4
    Aoang
        6
    Aoang  
       2019-02-08 14:17:52 +08:00 via Android
    配置 DDNS 的时候遇到过这个问题。
    因为之前使用的是 HE 的 DDNS,需要添加一条记录并开启 DDNS 才能使用。
    使用 Aliyun 的时候也跟着这么配置了(记录填了 8.8.8.8 ),然后访问网页的时候,有时候秒开,有时候根本打不开。
    一天突然想起来查 DNS 解析,才发现有两条记录。

    游览器是不会自动重试的,先返回那个 IP 就会访问那个。
    mason961125
        7
    mason961125  
       2019-02-08 14:21:04 +08:00
    @1423 #5 确实看具体应用的实现。
    BOYPT
        8
    BOYPT  
       2019-02-08 14:21:41 +08:00
    #5 楼正解。一个 A 记录多个 IP 地址,查询时候会直接返回全部的 IP,不存在“轮询”,实际使用哪个,取决于客户端实现。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2474 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:06 · PVG 22:06 · LAX 07:06 · JFK 10:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.