兩張圖告訴你為什么域名會被解析到65.49.2.178
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]