以前就知道很多 DNS 服务器都有解析优化的功能,好像是利用的 ECS 技术,会根据用户的 IP 解析返回不同的 IP 地址,比如北京联通就返回距离北京联通最近的 IP,而深圳电信就返回距离深圳电信最近的 IP。
于是就想测一下这个功能,现在拥有三个不同地方的 VPS,也就是有三个不同地方的 IP,分别在北京、香港和美国。 分别用这三个 IP 去解析淘宝的域名:taobao.com ,但是发现不管是在北京还是香港还是美国,解析到的 IP 都只有两个固定的:140.205.220.96 (上海)、140.205.94.189 (杭州),貌似没有办法根据用户的 IP 来区别解析。 但是分别用这三个 IP 去解析带 www 的淘宝域名:www.taobao.com ,就发现可以正常区别解析了:在北京解析到 110.249.197.237 (石家庄)、121.18.239.232 (保定)等,在香港解析到 47.246.16.234 (香港)、47.246.16.233 (香港),在美国解析到 47.246.25.234 (洛杉矶)、47.246.25.233 (洛杉矶)。
还测试了其他在全球都有服务的域名,都是类似的情况,不带 www 的域名没办法区别解析,只有带 www 或其他子域名的才可以。
所以问题来了:是因为某种规则限制了一级域名的优化解析吗?还是单纯的就是他们没有对一级域名进行配置(感觉不太可能)?还是因为我测试的问题?
1
unixeno 2019-08-16 00:16:13 +08:00 via Android
应该是就配了这俩 ip
|
2
cnrting 2019-08-16 00:22:53 +08:00 via iPad
肯定是只配了這倆 ip,跟 Baidu 一樣
|
3
Yourshell 2019-08-16 00:26:21 +08:00 via iPhone
anycast
|
4
gamexg 2019-08-16 00:28:32 +08:00
CNAME 和 MX 冲突。
``` gamexg@DESKTOP:/mnt/c/Users/gamexg$ dig www.taobao.com ; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> www.taobao.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37149 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.taobao.com. IN A ;; ANSWER SECTION: www.taobao.com. 330 IN CNAME www.taobao.com.danuoyi.tbcache.com. www.taobao.com.danuoyi.tbcache.com. 30 IN A 150.138.97.231 www.taobao.com.danuoyi.tbcache.com. 30 IN A 150.138.97.232 www.taobao.com.danuoyi.tbcache.com. 30 IN A 150.138.180.219 ;; Query time: 24 msec ;; SERVER: 192.168.105.1#53(192.168.105.1) ;; WHEN: Fri Aug 16 00:26:40 CST 2019 ;; MSG SIZE rcvd: 136 gamexg@DESKTOP-OMIKD5P:/mnt/c/Users/gamexg$ dig taobao.com ; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> taobao.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47195 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;taobao.com. IN A ;; ANSWER SECTION: taobao.com. 165 IN A 140.205.94.189 taobao.com. 165 IN A 140.205.220.96 ;; Query time: 15 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Aug 16 00:26:46 CST 2019 ;; MSG SIZE rcvd: 71 gamexg@DESKTOP:/mnt/c/Users/gamexg$ ``` |
6
Lax 2019-08-16 00:33:44 +08:00
CDN 主要用到 CNAME,而 CNAME 与 MX 冲突(有条件)。
因此大流量大业务都会尽量采用二级域名以利用 CDN。 国内 anycast 不方便用。 |
7
moult 2019-08-16 01:03:58 +08:00
打开 taobao.com 的时候,只需要返回一个 302 跳转到 www 就完事了,没必要上 CDN。
当然,CNAME 和 MX 记录不能共存,也是一个原因。 |
9
phxsuns 2019-08-16 14:29:49 +08:00
taobao.com 是有 MX 记录的,所以没法做 CNAME。
|
10
jinliming2 OP 大概看了一下 cname 的规范,感觉好霸道啊……
不过大概懂了,是因为要配其他记录,所以一级域名不做 CDN,通过跳转到 www 让用户走 CDN。 结贴。 所以理论上,地址栏手输域名访问的话,直接输入 www 域名更快?要是一级域名太远访问太慢,用 www 即可解决? |
11
wwbfred 2019-08-21 01:02:52 +08:00
除了像 Google 那样一个 IP 通吃所有服务的网站,大多数站点都不为一级域名做就近解析,因为提供的服务基本就是一个 301.
|
12
mytsing520 2019-09-10 17:06:48 +08:00
第一,taobao.com 不是主要流量汇聚点,主流量在 www.taobao.com ;
第二,为满足备案合规,将 taobao.com 解析到绑定了备案的 IP 地址; 第三,这种做法中央 ZF 机构网站,或百度、新浪等大型门户网站也是这么玩的。 |
13
mytsing520 2019-09-10 17:15:32 +08:00
12 楼观点的补充:
第四,主域名也可以设置为解析,但关闭 web 端口;毕竟接入商和管局查备案关系只是查解析,不会去尝试访问。 为了增强我的观点,我给几个示例,如下: baidu.com ,220.181.38.148 、39.156.69.79 sohu.com ,220.181.90.62 、123.125.116.28 、221.179.177.36 ifeng.com ,123.103.122.24 sina.com.cn ,123.126.55.41 、123.126.157.222 163.com ,123.58.180.7、123.58.180.8 |