中国的域名解析到65.49.2.178 是一个什么失误?让我们来查一查。
第一部分 事故描述
中国的一家DNS服务商DNSPOD于 2014 年 1 月 21 日 16:18 说:
2014年1月21日下午15:10左右,DNSPod发现国内所有通用顶级域的根出现异常,技术人员已联系相关机构协调处理。目前根已恢复正常,但是后续还会存在以下问题:
根虽已恢复,但还有返回错误IP地址,因为各地有缓存,所以部分地区可能会持续12小时。
第二部分 从IP资料方面找原因
国内所有通用的顶级域名,被解析到65.49.2.178。
全国大规模网站故障 许多域名被解析到65.49.2.178,这是一个什么IP?
http://www.ip.cn/index.php?ip=65.49.2.178 有下面四种答案:
- GeoIP: Fremont, California, United States Hurricane Electric
- 65.49.2.178=美国 北卡罗莱纳州卡里镇
- Dynamic Internet Technology 动态互联网技术公司
- Anonymous Proxy
新浪科技的《中国顶级域名根服务器故障 大部分网站受影响》 在 2014年01月21日 16:16发文说:
新浪科技讯 1月21日下午消息,据多家DNS服务商透露,今日下午3点,全国所有通用顶级域的根服务器出现异常,导致国内大部分用户无法正确解析域名,对全国互联网链接造成系统性影响。
根服务器主要用来管理互联网的主目录。全世界只有13台,这13台根域名服务器中名字分别为“A”至“M”,其中10台设置在美国,另外各有一台设置于英国、瑞典和日本。
“简单的说,如果我们要访问baidu.com这个网站,先要指向根服务器,根服务再将用户指向.com服务器,.com的解析服务器再把用户指向baidu.com。”一位DNS技术专家解释说,这次的问题仅出现在中国,说明全球根服务器并未出现问题,问题很可能是国内网络运营商。
“这次访问故障出现在下午3点20分左右,当用户请求根服务器时,被指向一个IP地址(A记录),这是完全错误的引导。”上述专家表示。
前些年我的域名zuola.com被GFW污染,所已知GFW对域名污染的给的假IP有:
- 64.33.88.161 Trumbull, Connecticut, United States OLM, LLC
- 202.106.1.2 Beijing, China China Unicom Beijing
- 216.234.179.13 Edmonton, Alberta, Canada Tera-byte Dot Com
- 4.36.66.178 United State Level 3 Communications
- 211.94.66.147 Beijing, China
- 202.181.7.85 澳大利亚
- 209.145.54.50 San Marcos, California, United States
这个IP在2012年04月19日 出现在这个网页上
http://ffman.exteen.com/20110817/welfare-storm-ch2
在GOOGLE搜索 178.2.49.65.in-addr.arpa. 只有一条搜索结果 http://dns.l4x.org/65.49.2.178 ,没看懂是什么,从IP信息里看来找不到“国家支持的DNS污染”的证据。
http://whois.domaintools.com/65.49.2.178
和
http://whois.arin.net/rest/nets;q=65.49.2.178?showDetails=true&showARIN=false&ext=netref2
显示这个IP在美国 夏延市 Sophidea Inc.
United States Cheyenne Sophidea Inc.
我查过 65.49.2.178 这个IP和所在的IP段,是动态网用于匿名代理,被蜜罐项目侦测到过,但这个IP没有绑定任何域名,未提供过web服务,无法反向解析,不存在被GFW引导过去产生DDoS攻击效果的说法。 http://whois.webhosting.info/65.49.2.178
第三部分 从根域名服务器找原因
我印象中,至少有一台根服务器在中国,但腾讯网在报道此次事件时说:
根服务器主要用来管理互联网的主目录,全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。
维基百科上也说“中国根服务器被关闭”。这样给人印象是国外根域名服务器有错。我觉得不对,中国大陆有F、I这2个根域DNS服务器镜像。
- F-ROOT(电信,交换中心)由互联网软件联盟(ISC=Internet Systems Consortium)和中国电信共同建立。
- J-ROOT(网通) 由Verisign和网通共同设立。
- I-ROOT(CNNIC) 由瑞典国家互联网交换中心(Autonomatic,后来叫Netnod公司)在CNNIC设立。
“中国大陆有F、I这2个根域DNS镜像[9],但因为多次发生DNS污染而影响外国网络,威胁互联网安全和自由而被断开与国际互联网的连接。”
traceroute to 192.5.5.241 (192.5.5.241), 64 hops max, 72 byte packets
1 192.168.10.1 (192.168.10.1) 1.247 ms 1.114 ms 1.078 ms
2 192.168.1.1 (192.168.1.1) 1.481 ms 1.354 ms 1.313 ms
3 h×××.s98.ts.hinet.net (168.95.98.×××) 7.286 ms 7.455 ms 7.190 ms
4 * h242.s25.ts.hinet.net (168.95.25.242) 7.473 ms 7.358 ms
5 tpdt-3012.hinet.net (220.128.4.30) 21.033 ms * 13.669 ms
6 * * *
7 * * r4001-s2.tp.hinet.net (220.128.11.133) 10.042 ms
8 * 211-72-108-153.hinet-ip.hinet.net (211.72.108.153) 144.699 ms 144.337 ms
9 paix.r1.pao1.isc.org (198.32.176.3) 145.071 ms * 145.100 ms
10 f.root-servers.net (192.5.5.241) 144.551 ms 144.491 ms 144.794 ms
traceroute to 192.5.5.241 (192.5.5.241), 64 hops max, 72 byte packets
1 1.1.1.1 (1.1.1.1) 112.112 ms 108.556 ms 108.587 ms
2 221.6.170.1 (221.6.170.1) 119.476 ms 118.213 ms 113.267 ms
3 221.6.161.153 (221.6.161.153) 112.413 ms 118.053 ms 122.491 ms
4 221.6.161.201 (221.6.161.201) 119.346 ms 121.014 ms 114.563 ms
5 219.158.96.149 (219.158.96.149) 150.785 ms 150.258 ms 154.764 ms
6 219.158.4.10 (219.158.4.10) 147.241 ms 147.273 ms 147.740 ms
7 * 219.158.97.254 (219.158.97.254) 213.981 ms 205.347 ms
8 219.158.102.154 (219.158.102.154) 334.414 ms 330.767 ms *
9 las-bb1-link.telia.net (213.248.94.125) 505.146 ms 326.467 ms 316.009 ms
10 dls-bb1-link.telia.net (213.248.80.14) 361.110 ms 490.916 ms 360.979 ms
11 chi-bb1-link.telia.net (80.91.248.208) 404.532 ms 416.520 ms 454.820 ms
12 isc-117366-chi-bb1.telia.net (213.248.85.18) 456.797 ms 465.479 ms 468.200 ms
13 f.root-servers.net (192.5.5.241) 532.196 ms 494.677 ms 423.665 ms
结果显示先跑到江苏,然后到辽宁联通,然后离f.root-servers.net最近的80.91.248.208和213.248.85.18居然是欧洲IP。看来任播技术(anycast)是IP路由协议上的镜像行为,一个IP地址对应多个服务器,所以这个服务器在欧洲和美国都有。
C:Userschensh
aoju>tracert 192.5.5.241
通过最多 30 个跃点跟踪到 f.root-servers.net [192.5.5.241] 的路由:
1 4 ms 17 ms 4 ms 10.20.0.1 2 6 ms 4 ms 4 ms 10.20.0.1 3 23 ms 4 ms 5 ms 58.215.135.21 4 10 ms 11 ms 11 ms 61.177.102.13 5 31 ms 31 ms 32 ms 202.97.65.201 6 * * * 请求超时。 7 32 ms 32 ms 33 ms 18.254.120.106.static.bjteleco m.net [106.120.254.18] 8 42 ms 34 ms 32 ms 219.142.18.54 9 31 ms 32 ms 33 ms 218.241.102.10110 30 ms 39 ms 33 ms 218.241.107.9011 30 ms 72 ms 32 ms f.root-servers. net[192.5.5.241]
跟踪完成。
C:Userschensh
aoju>tracert 192.58.128.30
通过最多 30 个跃点跟踪到 j.root-servers.net [192.58.128.30] 的路由:
1 5 ms 3 ms 3 ms 10.20.0.1 2 4 ms 4 ms 3 ms 10.20.0.1 3 24 ms 5 ms 9 ms 58.215.156.185 4 7 ms 5 ms 6 ms 58.215.156.185 5 10 ms 9 ms 7 ms 202.97.39.113 6 8 ms 11 ms 11 ms 202.97.48.30 7 27 ms 26 ms 26 ms 219.158.32.93 8 33 ms 32 ms 31 ms 219.158.13.21 9 30 ms 40 ms 30 ms 123.126.0.6610 * 30 ms * 61.51.112.4211 138 ms 134 ms 136 ms 61.148.156.20212 37 ms 33 ms 33 ms bt-235-194.bta.net.cn[202.106.235.19 4]13 25 ms 36 ms 32 ms j.root-servers. net[192.58.128.30]跟踪完成。
C:Userschensh
aoju>tracert 192.36.148.17
通过最多 30 个跃点跟踪到 i.root-servers.net [192.36.148.17] 的路由:
1 5 ms 4 ms 3 ms 10.20.0.1 2 10 ms 3 ms 4 ms 10.20.0.1 3 9 ms 4 ms 3 ms 58.215.135.21 4 7 ms 15 ms 14 ms 58.215.135.41 5 7 ms 15 ms 71 ms 202.97.27.6 6 25 ms 15 ms 11 ms 202.97.82.53 7 24 ms 8 ms 10 ms 202.97.50.250 8 41 ms 39 ms 39 ms 202.97.35.22 9 15 ms 13 ms 13 ms 202.97.60.9710 269 ms 266 ms 266 ms 202.232.8.12911 202 ms * * osk004bb11.IIJ.Net[58.138.106.201 ]12 97 ms * 128 ms osk004bf01.IIJ. Net[58.138.82.189]13 * * * 请求超时。14 273 ms * * tky001bb10.IIJ. Net[58.138.80.14]15 177 ms * * tky001ix04.IIJ. Net[58.138.100.26]16 * * 185 ms as8674.dix-ie.j p [202.249.2.180]17 117 ms * 125 ms i.root-servers. net[192.36.148.17]
跟踪完成。
C:Documents and SettingsAdmini
strator>tracert 192.36.148.17
Tracing route to i.root-servers.net [192.36.148.17]over a maximum of 30 hops:
1 5 ms 3 ms 2 ms htuidc.bgp [42.51.7.65] 2 3 ms 2 ms 2 ms htuidc.bgp.ip [103.22.188.65] 3 3 ms 2 ms 2 ms route53.htu.cc [103.22.188.53] 4 12 ms 4 ms 1 ms hn.kd.ny.adsl [182.118.124.17] 5 4 ms 1 ms 1 ms pc177.zz.ha.cn [61.168.124.177] 6 58 ms 55 ms 56 ms pc137.zz.ha.cn [61.168.255.137 ] 7 53 ms 53 ms 53 ms 219.158.99.153 8 114 ms 122 ms * 219.158.3.222 9 163 ms * 148 ms 219.158.97.5410 270 ms * 205 ms 219.158.38.9811 * 244 ms 237 ms ae-1.r01.tokyjp 01.jp.bb.gin.nt t.net [129.250.3.241]12 93 ms 95 ms 97 ms peering.r1.jpp. dnsnode.net [210.173.176.43]13 299 ms 69 ms 297 ms i.root-servers. net [192.36.148.17]
Trace complete.
还是去日本了,看来用无锡电信、北京互联通和河南的网络接入均无法证明i-root在不在中国。据宫一鸣说:
其中I节点在2010年的GFW故障中因为给海外返回被污染的dns记录曾被人骂得狗血喷头,管理员满世界哭诉和他们无关, 有兴趣的可以翻翻这个陈年旧事 https://lists.dns-oarc.net/pipermail/dns-operations/2010-March/005260.html
C:Documents and SettingsAdmini
strator>tracert 199.7.83.42
Tracing route to l.root-servers.net [199.7.83.42]over a maximum of 30 hops:
1 13 ms 3 ms 2 ms htuidc.bgp [42.51.7.65] 2 3 ms 3 ms 2 ms htuidc.bgp.ip [103.22.188.65] 3 3 ms 3 ms 2 ms route53.htu.cc [103.22.188.53] 4 2 ms 9 ms 2 ms hn.kd.ny.adsl [182.118.124.17] 5 2 ms 1 ms 2 ms hn.kd.ny.adsl [125.45.253.25] 6 62 ms 63 ms 63 ms pc233.zz.ha.cn [61.168.194.233] 7 22 ms 19 ms 19 ms 219.158.98.217 8 18 ms 15 ms 15 ms 202.96.12.190 9 * * * Request timed out.10 18 ms 33 ms 19 ms 202.106.37.15411 16 ms 35 ms 16 ms 61.49.41.7412 16 ms 15 ms 16 ms l.root-servers. net [199.7.83.42]
Trace complete.
目前,全球共有13台套根域名服务器,其中美国10个,欧洲2个(位于英国和瑞典)、亚洲1个(位于日本),并在全球部署有三百多个根镜像服务节点,在中国大陆地区有5个,覆盖了F、I、J、L 根。其中,F 根由ISC(Internet Systems Consortium)机构与CNNIC合作,在北京建设了两个F根镜像服务节点,由中国电信和CNNIC分别提供网络接入;Verisign与中国联通合作,在北京建设了J根镜像服务器,中国联通提供接入。另外两个由CNNIC提供网络机房环境分别与Netnod、ICANN合作,在北京建设了I、L根镜像服务节点。目前中国还有相关机构继续与国际合作实施更多的根镜像节点。
这样说就对了,F-ROOT有两个,I-ROOT、J-ROOT和L-ROOT各一个,CNNIC的F-ROOT找到了,但中国电信的F-ROOT没在中国找到,I-ROOT我也没有办法证明在中国。也许哪位读者可以tracert一下找到,若能找到,麻烦贴下tracert结果吧。
C:Userschensh
aoju>tracert 192.33.14.30
通过最多 30 个跃点跟踪到 b.gtld-servers.net [192.33.14.30] 的路由:
1 8 ms 5 ms 7 ms 10.20.0.1 2 3 ms 3 ms 5 ms 10.20.0.1 3 7 ms 7 ms 6 ms 61.177.102.105 4 5 ms 4 ms 6 ms 61.177.102.105 5 8 ms 7 ms 7 ms 202.97.39.233 6 15 ms 11 ms 11 ms 202.97.48.42 7 94 ms 98 ms 96 ms 219.158.35.89 8 134 ms 134 ms 214 ms 219.158.5.217 9 70 ms 34 ms 32 ms 123.126.0.7010 * 38 ms * 124.65.56.1811 37 ms 29 ms 30 ms 61.148.6.4212 40 ms 37 ms 36 ms bt-235-194.bta.net.cn [202.106.235.19 4]13 36 ms 51 ms 45 ms b.gtld-servers. net [192.33.14.30]
跟踪完成。
离 b.gtld-servers.net 最近的IP 202.106.235.194 是联通的。
现在的问题是,不知道 在中国境内的F、I、J、L这五个根域名服务器,还有类似 b.gtld-servers.net 这样的顶级域名服务器在污染DNS方面做了些什么,不过可以合理怀疑中国的DNS根服务器不诚实,证据在下面两个链接中,这个事件发生在2010年:
3月24日,智利的一名域名解析系统(DNS)管理人员发现互联网信息流通出现异常,向Youtube、Twitter、Facebook发出的访问要求均被劫持到中国的假网站和IP地址。
这个链接也说外国网络用户得到了来自这个中国根域名服务器污染后的Twitter、Facebook、YouTube的IP地址。
第四部分 结论
- 先确定F-ROOT、I-ROOT、J-ROOT、L-ROOT的IP存活于中国境内,方法就是tracert这几个镜像的IP,他们的IP是全球统一的,但映射多个主机,你要确认离你网络最近的根域名主机是在线的。根域名主机的IP到这找 http://www.internic.net/domain/named.root
- 打开命令行,输入nslookup
- 然后输入set q=PTR
- 输入server 192.5.5.241
- 随便输入一个.com的域名,如 zuola.com
- 此时会返回 一串结果告诉你权威回答应该会在哪里:Authoritative answers can be found from:
com nameserver = h.gtld-servers.net.com nameserver = j.gtld-servers.net.com nameserver = k.gtld-servers.net.com nameserver = g.gtld-servers.net.com nameserver = m.gtld-servers.net.com nameserver = i.gtld-servers.net.com nameserver = c.gtld-servers.net.com nameserver = f.gtld-servers.net.com nameserver = a.gtld-servers.net.com nameserver = d.gtld-servers.net.com nameserver = e.gtld-servers.net.com nameserver = b.gtld-servers.net.com nameserver = l.gtld-servers.net.a.gtld-servers.net internet address = 192.5.6.30b.gtld-servers.net internet address = 192.33.14.30c.gtld-servers.net internet address = 192.26.92.30d.gtld-servers.net internet address = 192.31.80.30e.gtld-servers.net internet address = 192.12.94.30f.gtld-servers.net internet address = 192.35.51.30g.gtld-servers.net internet address = 192.42.93.30h.gtld-servers.net internet address = 192.54.112.30i.gtld-servers.net internet address = 192.43.172.30j.gtld-servers.net internet address = 192.48.79.30k.gtld-servers.net internet address = 192.52.178.30l.gtld-servers.net internet address = 192.41.162.30m.gtld-servers.net internet address = 192.55.83.30a.gtld-servers.net has AAAA address 2001:503:a83e::2:30
- 输入 server 192.5.6.30
- 输入zuola.com
- 此时返回 Server: 192.5.6.30
Address: 192.5.6.30#53Non-authoritative answer:*** Can’t find zuola.com: No answerAuthoritative answers can be found from:zuola.com nameserver = ns1.dreamhost.com.zuola.com nameserver = ns2.dreamhost.com.ns1.dreamhost.com internet address = 66.33.206.206ns2.dreamhost.com internet address = 208.96.10.221
- 上面返回的结果里包含了真正的nameserver的域名和IP,输入 server 66.33.206.206
- 会返回> server 66.33.206.206
Default server: 66.33.206.206Address: 66.33.206.206#53
- 输入set q=a
- 输入zuola.com
- 返回> zuola.com
Server: 66.33.206.206Address: 66.33.206.206#53Name: zuola.comAddress: 69.163.141.215
- 这样,就查到域名zuola.com 的真实IP为 69.163.141.215 了
ROOT Server返回域名应该去哪个gTLD找,gTLD提供一个最近的服务器告诉你哪个域名解析服务器(name server)上记录了你的域名对应的IP,gTLD的服务器上亦登记了域名解析服务器(name server)的域名和真实IP,在我的例子中,ns1.dreamhost.com和66.33.206.206的信息就记录在gtld-servers.net的A到M的13台服务器上。
下面这张图更清晰的描述的DNS解析过程:
2014年1月21日下午3点左右的dig操作却没有上图的第二步和第三步返回gTLD server和name server过程,直接跳过name server这个环节返回了一个65.49.2.178的地址,下面两张图都没有gTLD服务器出现,也没有name server,所用延时极短就返回65.49.2.178这个假IP。第一张图显示只用了27毫秒,第二张图显示只用了36毫秒。
我的结论是,这是一次中国境内的DNS污染事故,是尝试在机房的GFW审查设备做网络封锁时做出的honest mistake(无意犯下的过错),可能是封锁自由门的IP时操作成封锁所有域名了。
修改root域名服务器和nameserver来产生65.49.2.178这样一个IP太复杂了,估计是机房增加GFW却匹配错域名了,这样造成失误就容易些。
tracert 192.5.5.241
Tracing route to f.root-servers.net [192.5.5.241]
over a maximum of 30 hops:
1 4 ms 3 ms 3 ms e6500 [10.97.37.142]
2 93 ms 81 ms 92 ms 14.147.44.1
3 44 ms 36 ms 38 ms 137.32.63.58.broad.gz.gd.dynamic.163data.com.cn [58.63.32.137]
4 36 ms 30 ms 53 ms 113.98.103.117
5 28 ms 65 ms 29 ms 61.144.3.22
6 72 ms 69 ms 67 ms 202.97.34.121
7 * * 143 ms bj141-158-118.bjtelecom.net [219.141.158.118]
8 72 ms 100 ms 82 ms 18.254.120.106.static.bjtelecom.net [106.120.254.18]
9 69 ms 66 ms 70 ms 219.142.18.54
10 121 ms 202 ms 202 ms 218.241.102.101
11 63 ms 70 ms 61 ms 218.241.107.90
12 140 ms 144 ms 133 ms f.root-servers.net [192.5.5.241]
最近IP是218.241.107.90,也得到的是北京的IP,你离北京的f.root比较近:)
我觉得这次.com 域名网站瘫痪似乎跟这些“通用顶级域名根”没有关系,要让这些“任播”地址出现错误回答的提前是要把这13个gtld-server都在国内建个镜像。目前只发现b.gtld-server.net (192.33.14.30)在中国有镜像。
现在dig +trace直接显示dig: couldn't get address for 'a.root-servers.net': failure.
故障当时打开百度显示“Catch me if you can"……,所以个人以为不会是管理员失误。
没有办法确认 I.
$ traceroute 192.36.148.17
traceroute to 192.36.148.17 (192.36.148.17), 30 hops max, 60 byte packets
1 192.168.0.1 (192.168.0.1) 2.927 ms 3.643 ms 4.884 ms
2 123.119.184.1 (123.119.184.1) 40.759 ms 44.242 ms 45.985 ms
3 123.126.27.41 (123.126.27.41) 46.603 ms 47.843 ms 54.461 ms
4 124.65.56.21 (124.65.56.21) 56.452 ms 57.075 ms 58.938 ms
5 202.96.12.21 (202.96.12.21) 64.555 ms 65.297 ms 66.033 ms
6 219.158.101.178 (219.158.101.178) 98.644 ms 75.500 ms 140.181 ms
7 219.158.4.226 (219.158.4.226) 150.392 ms 153.130 ms 154.740 ms
8 219.158.97.78 (219.158.97.78) 199.112 ms 200.466 ms 204.579 ms
9 * * *
10 * * *
11 * * peering.r1.jpp.dnsnode.net (210.173.176.43) 183.454 ms
12 i.root-servers.net (192.36.148.17) 162.787 ms 171.917 ms 207.917 ms
"我们可以公开查到,65.49.2.178 属于美国 HE 公司。根据 HE 公司的记录,它把 65.49.2.1-65.49.2.255 这些 IP 租给了一家叫做 Sophidea, Inc. 的公司。再查一下这些 IP 下的具体域名,赫然发现,有一个叫 ultrasurf.us 的网站,就是著名的翻墙软件,“无界浏览器”。
既然是这样,我们就可以推测,是 GFW 的操作员原本想封锁此 IP 或污染此域名,但却填错地方了。
GFW干扰ROOT Server的意义并不大。
楼主说的很对,负责COM和NET解析的13台GTLDs Server中,有 b.gtld-servers.net 在北京有镜像,访问这台原本是无需经过GFW的。而其余12台GTLDs在国外,都是经过GFW的,因此污染一直存在。所以有理由怀疑,此次GFW应该是针对 b.gtld-servers.net 北京镜像机房进行的污染,但配置失误造成影响,因此这也解释了为什么国内有些地区影响重,有些地区影响轻。
Windows CMD下 nslookup -type=a http://www.520yx.com a.gtld-servers.net 看到的是污染后的返回结果。
nslookup -type=a http://www.520yx.com b.gtld-servers.net 看到的是没有污染的结果。
520yx.com 在GFW黑名单上。
待时机成熟,估计GFW会重新上马对 b.gtld-servers.net 的干扰,我们可以接续观察 b.gtld-servers.net 。
拭目以待
博主分析的很透彻,你认为那天上午腾讯的故障和下午的dns问题有关联吗?
之前只在国际出口进行污染。
而国内有几个Root server镜像。
国内有一个gTLD server镜像。
假设国际出口的GFW污染了abc.com。
而通过国内的f root server,可以获取到正确的gtld服务器。
接着通过b gtld server,于是可以获取到正确的Name Server
假设Name server在国内,于是向Name server请求A记录,也就可以获得。
这就是GFW的一个洞啊,校长哪里会睡得着觉啊。
I在中国,北京教育网,12跳可达,延时18ms左右