2014年1月21日全国DNS污染始末以及分析

2014年1月21日全国DNS 污染始末以及分析大概1月21日15:30的时候,Ovear 正在调试新的服务器,结果发现肿么突然上不去了。。结果ping 了以下,结果发现Ovear 的域名都指向到[6

2014年1月21日全国DNS 污染始末以及分析

大概1月21日15:30的时候,Ovear 正在调试新的服务器,结果发现肿么突然上不去了。。结果ping 了以下,结果发现Ovear 的域名都指向到[65.49.2.178]这个IP 。Ovear 第一反应就是,DNSPOD 又被黑了!

AD :

大概1月21日15:30的时候,Ovear 正在调试新的服务器,结果发现肿么突然上不去了。。结果ping 了以下,结果发现Ovear 的域名都指向到[65.49.2.178]这个IP 。Ovear 第一反应就是,DNSPOD 又被黑了! 为什么说DNSPOD 被黑了呢,其实以前DNSPOD 就出过一次类似的问题,导致所有的域名都跪了,刚好Ovear 这个域名还有测试的几个域名都是那里的,然后就到某交流群吐槽。结果管理员说他们的DNS 被污染了,Ovear 心想不会是全国DNS 都被污染了吧。结果乌鸦嘴说中了。还真的是全国劫持。

然后Ovear 就很好奇,到底是怎么回事呢~有谁能做到这样的事情~于是就有了以下的分析和科普~

以下内容为Ovear 家电脑中病毒所致,跟本人无任何关系,谢绝跨省

balablabala 说了这么久,肯定有同学问了,窝又不是学计算机的,dns 是什么,跟我有什么关系!

那么DNS 是什么呢,Ovear 就来科普下。

我们访问一般是通过域名[Domain]来访问的,咦DNS 怎么也是D 开头的,难道有关系? 说对了! 就是有关系:DNS的全称其实是[Domain Name System]翻译过来就是域名系统。

在互联网中,是只存在IP 的,IP 其实就是一串数字,相当于你家里的门牌号,大家在网络中想找到你,必须通过这个,所以IP 对于每个人来说是唯一的。但是第四代IP 都是root-servers.net],储存着各个后缀域名的[顶级域名根服务器]

[顶级域名根服务器]:每个后缀对应的DNS 服务器,存储着该[后缀]所有域名的权威DNS

[权威DNS]:这个域名所使用的DNS ,比如说我设置的DNSPOD 的服务器,权威DNS 就是DNSPOD 。在WHOIS(一个查看域名信息的东西) 中可以看到。储存着这个域名[对应着的每条信息] 如IP 等~

所以正确的解析过程应该跟下面的图一样

用户使用的DNS(边缘DNS)- (还会网上推很多级最终到) 根DNS- 顶级域名根服务器- 权威DNS)

根DNS 是什么呢? 大家想想,每个域名都有一个后缀, 比如说ovear 是[.info]后缀的。那么就有一个专门记录[.info]后缀的dns 服务器,其他后缀也一样。这个DNS 就是该域名的根DNS 。 那么递归DNS 呢? 其实递归DNS 就是一个代理人,是用来缓解[根DNS]压力的,如果大家都去问[根DNS],那[根DNS]不早就跪了。毕竟一个人(网站) 的地址不是经常变的,所以就有了TTL 这一说法,根据DNS 的规定,在一个TTL 时间呢,大家就认为你家里(域名所指向的IP) 的地址是不会变的,所以代理人[递归DNS]在这个时间内,是只会问一次[根DNS]的,如果你第二次问他,他就会直接告诉你域名所指向的IP 地址。这样就可以解决[根DNS]负载过大的问题啦。

顺便这一张图也可以很准确反映出来之前所说的~

说了这么久,口水都干了,那么DNS 到底跟这次事件有什么关系呢~

首先来看张图

瓦特! 肿么这么多域名都指向同一个IP 了,这是什么情况0 0。其实这就是典型的[DNS污染]了。

,

我们知道互联网有两种协议,一种是TCP ,一种则是UDP 了(知道泥煤啊(╯‵□ )╯︵┻━┻都说我不是学计算机的了) 。

TCP 和UDP 的主要差别就是:能不能保证传递信息的可靠性。UDP 是不管消息是否到达了目标,也不管通过什么途径的,他只管我发出去了就好,所以UDP 比TCP 快得多,但是可靠性没有TCP 好。

而DNS 查询默认就是用的是UDP ,那么就很好劫持啦。在UDP 包任何传输的路途上,直接拦截,然后返回给接收端就行了。

啧啧,说道这大家也隐隐约约知道这次事件的问题了吧,范围如此之广的劫持,必须要在各个省市的主干网上进行,而能处理这么大数据,同时能控制这么多主干网的。。啧啧啧。。。没错! 就是***了~至于***是什么,Ovear 在这就不说了,不然可能大家都见不到Ovear 了QAQ 。 说道这里,Ovear 就准备手动查一下,到底是不是所推测的***呢? 于是拿到了这个图(From XiaoXin)

与此同时运维也在各地的服务器上开始了跟踪查询,发现全国各地解析时间均为25ms 左右。这时候结论就出来了。

这样就明显了,肯定是***做的了~~于是Ovear 又好奇的查了下,这个IP 是什么来头,为什么都要指向到这里去,于是Ovear 发现了一些好玩的东西~(65.49.2.024)

从侧面点出了此次事件的始作俑者。

那么某FW 为什么要这么做呢?Ovear 在这里做一个无责任的推测,最有可能的就是:某FW 的员工本来是想屏蔽这个IP 段的,但是呢一不小心点进去了DNS 污染这个选项,然后又没写污染目标,于是就全局污染了啧啧啧~

但是有些童鞋会问了,为什么他们都说用8.8.8.8就没事了~

其实这样子说是不正确的,因为Ovear 之前用的就是8.8.8.8,上面也说了DNS 查询默认使用的UDP 查询,所以不管你用什么,照样劫持不误。其实8.8.8.8没问题是因为污染事件已经基本结束导致的,那么为什么污染结束后其他国内DNS 都不能用,而Goole 的DNS 确可以正常的使用~于是Ovear 就找到了张有趣的图片~

我先来解释下上面命令的用途吧~这个命令是用来直接向DNS 服务器查询域名的~

其中的[-vc]参数是强制使用TCP 来查询DNS 服务器,这样就可以避免UDP 污染的地图炮。 那么为什么污染结束后,DNS 还会受到污染呢? 其实原因很简单。Ovear 之前说了,[递归DNS]是需要询问[根DNS]的,而默认的询问方式是采用的UDP ,所以在国内的DNS 服务器,自然就受到污染了。而之前Ovear 也提到过TTL 这件事~

在TTL 周期内,根据协议[递归DNS]是直接吧结果缓存在自己那,是不会再去查询[根DNS]的,所以国内的DNS 就把错误的结果缓存起来了~

而Google 的DNS 服务器基本都是在国外,所以查询的时候影响并不大,但是国内挺多域名使用DNSPOD 啦,DNSLA 的DNS ,所以Google 进国内查,还是会受到一定影响的。

因此,如果要完全避免这次的影响,有两个条件

1、你的域名的DNS 必须是在国外

2、你查询的DNS 必须在国外,而且如果在污染期需要通过TCP 查询。

这样就可以避免这个问题了。

然后Ovear 又手贱查了下这次的TTL ,啧啧

,

如果没有人员来手动干预,这次的事件还是要持续蛮久的~。【编辑推荐】国内互联网根域出现重大故障 大量网站无法打开国内出现大面积DNS 服务器故障追踪报道:国内互联网根域解析异常 事件成因不单纯【责任编辑:蓝雨泪 TEL:(010)68476606】

网络技术应试辅导(三级)

本书根据教育部考试中心2004年最新发布的《全国计算机等级考试大纲》编写,针对计算机等级考试三级网络技术各方面的考点进行讲解

标签: