2014年1月21日中国互联网DNS瘫痪事件原因分析

1月21日下午,中国互联网大面积瘫痪。约2/3的网站和用户受影响。这么大范围的严重的事故真的让人瞠目结舌,我以为被是美国黑客入侵了。实际上中国伟大的防火墙GFW把所有网络连接都导给了一个法轮功网站。该网站的总裁Bill Xia在接受中国官方媒体环球时报采访时,声称他的公司与此事无关,并发布报告称这是"由於中國國內約50家ISP(網際網絡服務供應商)的域名解析伺服器上的域名遭劫持而引起的"。

什么是DNS?

DNS的全称叫域名解析系统,是互联网的一个基础设施。它就像一个电话本,你说你要访问哪个网站,它就负责把这个网站的域名(如www.baidu.com)翻译成一串数字告诉你。然后你的电脑就拿着这串数字去呼叫。这串数字,行话叫IP地址

今天下午的事故是,这个电话本坏了。它返回的结果是错的。不管你查询什么域名,它返回的结果都是同一串数字:"65.49.2.178"。而这个IP地址其实是法轮功的。你可以设想下,你打开手机,无论播哪个电话,结果都是法轮功的学员在接听,哈哈哈哈…… 今天下午的中国互联网就是这么搞笑。

错误的细节

为了搞清楚到底是怎么回事,有必要把事情的经过从头捋一遍。

当我打开浏览器,输入www.baidu.com,按下回车之后,正常流程应该是这样:

  1. 浏览器把www.baidu.com这个字符串发给北京联通的DNS服务器,问它这个到底该对应哪个IP
  2. 北京联通DNS服务器也不知道哇,于是它就去问root-servers.net:"www.baidu.com的IP是多少?"。root-servers.net我们称为根域名服务器,在全球有13组,每组很多台,它们是整个互联网的域名系统的老大,中央常委!root-servers.net说:"你去问我下属,gtld-servers.net。"
  3. 于是北京联通DNS服务器去问gtld-servers.net:"www.baidu.com的IP是多少?",gtld-servers.net说:"你去问dns.baidu.com,这是百度的域名服务器,它负责管这个"。
  4. 于是北京联通DNS服务器去问dns.baidu.com:"www.baidu.com的IP是多少?" dns.baidu.com说:"是119.75.218.77。"
  5. 于是北京联通告诉我:"是119.75.218.77"。

那今天下午实际上是怎样呢?

  1. 浏览器把www.baidu.com这个字符串发给北京联通的DNS服务器,问它这个到底该对应哪个IP
  2. 北京联通DNS服务器也不知道哇,于是它就去问root-servers.net:"www.baidu.com的IP是多少?"。root-servers.net说:"是65.49.2.178"
  3. 北京联通告诉我:"是65.49.2.178"

这中间省去了很多必须有的步骤。我给你打个比方吧:你问温家宝,"那个,新余市实验二中高三6班班主任电话是多少,我找他有点事"。然后温总立刻就说了一串数字告诉你了。你信吗?

出错的原因

为什么我们得到一个虚假的结果?只有两种可能:

  1. root-servers.net服务器本身出错了,或者被黑客入侵了。

  2. 有人劫持了北京联通DNS服务器与root-servers.net之间的数据通信,并伪造了答复。

第一条可能性不大,因为root-servers.net负责指挥全世界所有的DNS服务器。它们一旦发生问题,全球的互联网都会瘫痪。所以它们的安全级别极高。并且实际上,这次疼嗷嗷叫的只有中国人。国际社会上毫无动静。

所以我就把注意力集中到了第二条。能在全国范围内,密不透风的大规模伪造DNS应答?谁有这能力? 接着我发现这种手法有点眼熟。

你知道你为什么上不去youtube吗?

  1. 浏览器把www.youtube.com这个字符串发给北京联通的DNS服务器,问它这个到底该对应哪个IP

  2. 北京联通DNS服务器也不知道哇,于是它就去问root-servers.net:"www.youtube.com的IP是多少?"。

  3. 有人劫持了北京联通DNS服务器和root-servers.net之间的通信,并伪造答复说:"是159.106.121.75"

  4. 北京联通告诉我:"是159.106.121.75"

  5. 然后我电脑去连接159.106.121.75,发现根本连不上,因为这数字是错的。

但这中间有个破绽,应答时间。root-servers.net因为位于国外,所以一问一答要在路上走很长时间。而骗子由于就在国内,所以它答复速度要比真实服务器快很多。在我机器上测试,就是0.1秒与5秒的区别,肉眼都能分出来真假…… 最终我测试发现,从每一个细节上,这两个骗子的手法都完全一致,连应答时间都一致。

这次全国性的断网事件,毫无疑问是某墙导致的。

65.49.2.178隶属于法轮功

我们可以公开查到,65.49.2.178属于美国HE公司。根据HE公司的记录,它把65.49.2.1-65.49.2.255这些IP租给了一家叫做Sophidea, Inc.的公司。再查一下这些IP下的具体域名,赫然发现,有一个叫ultrasurf.us的网站,就是著名的翻墙软件,"无界浏览器"。法轮功开发的。


















IPPTRA
65.49.2.9   ultrasurf.usultrasurfing.comwujieliulan.com
65.49.2.10   blogwujie.comwujieblog.com
65.49.2.13   cbzs.infojqzx.info
65.49.2.28   feitian-california.org
65.49.2.29   symail.orgsynewsletter.com
65.49.2.41   epochdaily.com
65.49.2.101   bet888win.comclgtchat.comcrystalprofit.neteachother.biz
eva-funds.biz,freeantiddos.comkaplan-properties.com
lizafund.comprofit-finance.com,proxy1.idealhosting.org
proxy2.idealhosting.orgrekario.comtexinkarbotu.com,
torrenubosa.com
65.49.2.112   ns1.freeantiddos.com
65.49.2.114   ns2.freeantiddos.com
65.49.2.153   dns.chinese1.org
65.49.2.208   fgmtv.org
65.49.2.216   fgmtv.nethotdownload.org
65.49.2.247   pudumail.comshenyunmail.orgsycircle.com
65.49.2.253   weiboleak.com
|

(上表来源: http://bgp.he.net/net/65.49.2.0/24/#_dns

同时,traceroute发现,在达到65.49.2.178之前会先经过64.62.153.62,这台机器的逆向域名解析显示它属于dynamic-internet-technology-inc,也就是开发自由门的那家公司。

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥