2014年1月21日中国出现重大网络事故,大量域名被解析到一个65.49.2.178 这个IP了。
中国的一家DNS服务商DNSPOD于 2014 年 1 月 21 日 16:18 说:
2014年1月21日下午15:10左右,DNSPod发现国内所有通用顶级域的根出现异常,技术人员已联系相关机构协调处理。目前根已恢复正常,但是后续还会存在以下问题:
根虽已恢复,但还有返回错误IP地址,因为各地有缓存,所以部分地区可能会持续12小时。 |
正常的域名解析应该是这样的:
域名解析四步:
第一步先是找到最近的根域名,返回 f.root-servers.net. 这样的结果 第二步根域名返回gTLD地址,返回 a.gtld-servers.net. 这样的结果 第三步gTLD返回name server地址和IP,返回 ns1.dreamhost.com. 这样的结果 第四步name server返回域名的真实IP,返回 69.163.141.215 这样的结果
而事故发生时dig +trace 却不是上面四个步骤,如下图
上图来自知乎
上图中gTLD地址和name server地址都没有返回,看上去是通用顶级域的根出现问题了,所用延时极短就直接返回65.49.2.178这个假IP,这张图显示只用了27毫秒。
本来有四步才能得到答案,结果有人插嘴就得到答案了,省掉了两步,这就是DNS劫持造成的。就好比你在广州放只鸽子去北京,本来要路过长沙和郑州,来回要4天,结果鸽子只用了一天就回来了,它没有郑州和北京,只去了长沙。
结论是,机房有设备干扰了DNS查询过程,是一个DNS污染事故,是尝试在机房的GFW审查设备做网络封锁时无意中犯下的过错,可能是封锁IP时操作成封锁所有域名了。
附: 65.49.2.178 这个IP所在的IP段是 Dynamic Internet Technology公司的Anonymous Proxy的IP : http://bgp.he.net/net/65.49.2.0/24#_dns
如果你对任播这种一个IP对应多个服务器的技术细节不会头大,欢迎翻墙去http://www.zhoushuguang.com/2014/01/nslookup.html 查看详细分析。
PS:
国内的科技媒体上说“根服务器只有13台,亚洲唯一的一台在日本”,这样的说法过时了,亚洲有26台根服务器啦,F-Root有14台,I-Root有9台,K-Root有3台 http://www.apnic.net/community/support/root-servers/root-server-ma
全球有386台根服务器,被编号为A到M共13个标号。中国北京有两台编号为F的根服务器镜像,编号为I、J、L的各一,共5台镜像,在香港有A、F、I、J、L五台根服务器镜像,全部借由任播(Anycast)技术,所有编号相同的根服务器都是同一个IP,386台根服务器总共只使用了13个IP. 详情见 http://www.root-servers.org
[原文发表在 http://www.zhoushuguang.com/2014/01/nslookup.html
原创作者:佐拉 http://weibo.com/zuol]