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

2018-05-28 14:48:33 +08:00
 zocome
最近在为手里几个破站寻找合适的海外 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 的时候自动访问另一个?
7655 次点击
所在节点    DNS
12 条回复
dorothyREN
2018-05-28 15:10:01 +08:00
正常发送 dns 请求只会返回一个 ip,不管你解析了多少个。
enenaaa
2018-05-28 15:15:32 +08:00
貌似没啥标准,怎么 ip 看各家实现。
Shura
2018-05-28 15:15:38 +08:00
DNS 轮询只是依据权重随机返回 IP,并不能(也不可能)根据网络情况返回 IP。
zocome
2018-05-28 15:18:53 +08:00
@Shura #3 不是根据网络情况返回 IP,我是说本地是不是会根据网络情况请求不同的 IP
Livid
2018-05-28 15:22:28 +08:00
1. 返回多个 IP 时,浏览器会随机选择一个。
2. 如果你只想返回建康的 IP,那么你需要的是 Route 53 Multivalue Answer + Health Check。
7654
2018-05-28 15:22:47 +08:00
@zocome #4 要想达成这样的效果,请使用 CDN
zocome
2018-05-28 15:36:18 +08:00
@Livid #5
1、按照你说的,我同一个 Chrome 浏览器多试了几次,发现确实是随机请求,但是我把其中一个 IP 的 http 停掉之后,发现却只请求其中那个还在线的 IP,剩下一个不管怎么刷都没有出现,之前听说站长你是做 CDN 相关的,我想请教的是,浏览器这种请求在线服务的,是否有相关的文档可查?

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

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

好好学点实在的
zocome
2018-05-29 11:39:59 +08:00
@OneNian #11 抱歉,我问的是会不会,没有说是不是,我承认我对这块确实不了解,我发这个帖子就是在寻求帮助,不知道你最后这一句是什么意思,虚心向各位求教也有错?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/458369

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX