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

关于 DNS 根据用户 IP 进行解析优化的问题

  •  
  •   jinliming2 · 2019-08-16 00:03:36 +08:00 · 8857 次点击
    这是一个创建于 1954 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以前就知道很多 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 或其他子域名的才可以。

    所以问题来了:是因为某种规则限制了一级域名的优化解析吗?还是单纯的就是他们没有对一级域名进行配置(感觉不太可能)?还是因为我测试的问题?

    13 条回复    2019-09-10 17:15:32 +08:00
    unixeno
        1
    unixeno  
       2019-08-16 00:16:13 +08:00 via Android
    应该是就配了这俩 ip
    cnrting
        2
    cnrting  
       2019-08-16 00:22:53 +08:00 via iPad
    肯定是只配了這倆 ip,跟 Baidu 一樣
    Yourshell
        3
    Yourshell  
       2019-08-16 00:26:21 +08:00 via iPhone
    anycast
    gamexg
        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$

    ```
    cnrting
        5
    cnrting  
       2019-08-16 00:33:30 +08:00 via iPad
    @Yourshell 並不是,就一個返回 302 的裸機,anycast 真心浪費
    Lax
        6
    Lax  
       2019-08-16 00:33:44 +08:00
    CDN 主要用到 CNAME,而 CNAME 与 MX 冲突(有条件)。
    因此大流量大业务都会尽量采用二级域名以利用 CDN。
    国内 anycast 不方便用。
    moult
        7
    moult  
       2019-08-16 01:03:58 +08:00
    打开 taobao.com 的时候,只需要返回一个 302 跳转到 www 就完事了,没必要上 CDN。
    当然,CNAME 和 MX 记录不能共存,也是一个原因。
    bclerdx
        8
    bclerdx  
       2019-08-16 01:23:14 +08:00
    @Lax 说的对,加上 www 是万维网。
    phxsuns
        9
    phxsuns  
       2019-08-16 14:29:49 +08:00
    taobao.com 是有 MX 记录的,所以没法做 CNAME。
    jinliming2
        10
    jinliming2  
    OP
       2019-08-16 19:41:30 +08:00 via iPhone
    大概看了一下 cname 的规范,感觉好霸道啊……
    不过大概懂了,是因为要配其他记录,所以一级域名不做 CDN,通过跳转到 www 让用户走 CDN。
    结贴。
    所以理论上,地址栏手输域名访问的话,直接输入 www 域名更快?要是一级域名太远访问太慢,用 www 即可解决?
    wwbfred
        11
    wwbfred  
       2019-08-21 01:02:52 +08:00
    除了像 Google 那样一个 IP 通吃所有服务的网站,大多数站点都不为一级域名做就近解析,因为提供的服务基本就是一个 301.
    mytsing520
        12
    mytsing520  
       2019-09-10 17:06:48 +08:00
    第一,taobao.com 不是主要流量汇聚点,主流量在 www.taobao.com
    第二,为满足备案合规,将 taobao.com 解析到绑定了备案的 IP 地址;
    第三,这种做法中央 ZF 机构网站,或百度、新浪等大型门户网站也是这么玩的。
    mytsing520
        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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2785 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:57 · PVG 21:57 · LAX 05:57 · JFK 08:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.