近日多次发现国外的域名无法解析,甚至有些国内的不常访问的网站,也无法进行DNS解析。查了一下,发现国内访问根DNS,以及访问com/net域的权威NS,都大规模故障。如下在一台广东电信服务器上,运行一个shell命令,测试根DNS的解析情况:
$ dig . ns +short |sort |while read LINE;do if dig . soa @$LINE >/dev/null 2>&1;then echo $LINE OK;else echo $LINE fail;fi;done a.root-servers.net. OK b.root-servers.net. fail c.root-servers.net. OK d.root-servers.net. fail e.root-servers.net. OK f.root-servers.net. OK g.root-servers.net. OK h.root-servers.net. fail i.root-servers.net. OK j.root-servers.net. fail k.root-servers.net. OK l.root-servers.net. fail m.root-servers.net. OK
我们看到,13台根DNS里,有5台无法解析。
再运行如下shell命令,测试com/net域的权威NS服务器解析情况。
$ dig com ns +short |sort |while read LINE;do if dig com soa @$LINE >/dev/null 2>&1;then echo $LINE OK;else echo $LINE fail;fi;done a.gtld-servers.net. fail b.gtld-servers.net. fail c.gtld-servers.net. OK d.gtld-servers.net. fail e.gtld-servers.net. OK f.gtld-servers.net. fail g.gtld-servers.net. OK h.gtld-servers.net. OK i.gtld-servers.net. fail j.gtld-servers.net. fail k.gtld-servers.net. fail l.gtld-servers.net. fail m.gtld-servers.net. OK
这个情况就更严重了,13台com/net域的权威NS,有8台无法解析,故障率高达61.5%.
对于不常访问的域名,各地的递归服务器里没有缓存,会产生向上查询。而上一级的权威NS(如com/net域)、以及根DNS都大规模访问失败,从而导致域名解析超时,或无法解析。
今日更新:我把问题提出来后,社区也就此进行了讨论。目前看与GFW的过滤有关。Xun Fan同学认为,部分root节点在国内有分布(注:基于anycast网络),当查询包没有正确路由到国内root节点,而真正的root节点又被GFW干扰,就引起这个问题。如下是他的邮件内容:
China has it’s own root nodes is confirmed long ago, we published that in our paper https://ant.isi.edu/blog/?p=362
Just pinged H-root from CERNET of China:
$ ping h.root-servers.net
PING h.root-servers.net (128.63.2.53) 56(84) bytes of data.
64 bytes from 128.63.2.53: icmp_seq=1 ttl=55 time=9.63 ms
64 bytes from 128.63.2.53: icmp_seq=2 ttl=55 time=9.56 ms
9ms is faster than the speed of light, given the two H-root sites are both in US and the ping source is in Shanghai.
For the failure in China telecom, one possible explanation is that somehow the route to the “Chinese H-root” doesn’t propagate to some server in China telecom, while the GFW has already started to drop packets from real H-root.
Pingback引用通告: 6.1国内DNS故障说明 | 风河博客