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

一个域名解析多个 IP 及系统选择 IP 问题

  •  
  •   zocome · 2018-05-28 14:48:33 +08:00 · 7789 次点击
    这是一个创建于 2379 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在为手里几个破站寻找合适的海外 VPS,然后接触到了 NS1 这个国外的 DNS 解析服务商,发现在我用过的 DNS 解析服务商来说暂时就它家支持一个域名返回多个 IP,但是对于返回的多个 IP 有几点疑问,想请教下对这方面有了解的 V 友。

    前提条件:我在 NS1 给一个子域名添加了两个返回 IP,为了下文表述清楚,简单称为 A 和 B,且顺序为 A 和 B,这个子域名在各个系统能用 nslookup 和 dig 正确输出 A 和 B。

    1、如果我一个子域名返回 A 和 B,系统到底会不会自动选择本地网络到两个 IP 中网络更好的一个?我在 A 机器上用 mtr,发现 A 机器是直接到 A 的,但是到 B 机器上 mtr,B 是 mtr 到 A 的,A 机器系统是 Debian9,B 机器系统是 CentOS7。而我手头的 Win7 是 mtr 到了 A,但是 macOS 是 mtr 到了 B,本地的 win7 和 macOS 同一路由器下,相对来说 B 的网络环境好一点。
    系统会自动选择网络情况好一点的还是某些特定版本才会?这方面有没有专门的行业规定?

    2、我在 A 机器和 B 机器都开了 http 服务,在两者都可用的情况下,手头测试的 win7 和上面一样,自动访问了 A 机器,但是我手动把 Nginx 暂停,浏览器自动请求了 B,macOS 也是同样的,遇到一方不可用会自动切。用了同事的 win 下的 Chrome 及 360 以及我自己的 macOS 的 Chrome 发现都是这样。
    所以我的问题是,这种不可用自动切换机制有没有可查询的相关行业规范?

    基于 NS1 的这种机制,我是不是可以在域名解析的时候,返回两个 IP,然后让国内某些区域无法访问其中一个 IP 的时候自动访问另一个?
    12 条回复    2018-05-29 11:39:59 +08:00
    dorothyREN
        1
    dorothyREN  
       2018-05-28 15:10:01 +08:00
    正常发送 dns 请求只会返回一个 ip,不管你解析了多少个。
    enenaaa
        2
    enenaaa  
       2018-05-28 15:15:32 +08:00
    貌似没啥标准,怎么 ip 看各家实现。
    Shura
        3
    Shura  
       2018-05-28 15:15:38 +08:00
    DNS 轮询只是依据权重随机返回 IP,并不能(也不可能)根据网络情况返回 IP。
    zocome
        4
    zocome  
    OP
       2018-05-28 15:18:53 +08:00
    @Shura #3 不是根据网络情况返回 IP,我是说本地是不是会根据网络情况请求不同的 IP
    Livid
        5
    Livid  
    MOD
       2018-05-28 15:22:28 +08:00
    1. 返回多个 IP 时,浏览器会随机选择一个。
    2. 如果你只想返回建康的 IP,那么你需要的是 Route 53 Multivalue Answer + Health Check。
    7654
        6
    7654  
       2018-05-28 15:22:47 +08:00
    @zocome #4 要想达成这样的效果,请使用 CDN
    zocome
        7
    zocome  
    OP
       2018-05-28 15:36:18 +08:00
    @Livid #5
    1、按照你说的,我同一个 Chrome 浏览器多试了几次,发现确实是随机请求,但是我把其中一个 IP 的 http 停掉之后,发现却只请求其中那个还在线的 IP,剩下一个不管怎么刷都没有出现,之前听说站长你是做 CDN 相关的,我想请教的是,浏览器这种请求在线服务的,是否有相关的文档可查?

    2、首先感谢你提供的方案,但我现在是想先讨论这种想法,不是说寻求解决方案。因为我发现,同一个服务器,用 17ce 等一些在线测试工具测试的时候,国内有些节点能正常访问到有些不能正常访问,这种情况下,个人小站应该没有能力每个地方都监控吧?所以我的想法是,我在一个子域名返回两个 IP,在一个不能正常请求的情况下,让浏览器去请求另一个 IP
    mornlight
        8
    mornlight  
       2018-05-28 15:38:33 +08:00
    客户端没有这样的自动选择机制。比较接近你思路的是按区域设置解析:

    Showfom
        9
    Showfom  
       2018-05-28 15:41:42 +08:00 via iPhone
    @zocome 想多了 老老实实做站吧 不要想有的没的
    OneNian
        11
    OneNian  
       2018-05-28 23:50:11 +08:00 via iPhone
    浏览器如果一个 IP 不通会尝试另外的,而不是选择速度快的。

    好好学点实在的
    zocome
        12
    zocome  
    OP
       2018-05-29 11:39:59 +08:00
    @OneNian #11 抱歉,我问的是会不会,没有说是不是,我承认我对这块确实不了解,我发这个帖子就是在寻求帮助,不知道你最后这一句是什么意思,虚心向各位求教也有错?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2643 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:18 · PVG 15:18 · LAX 23:18 · JFK 02:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.