2014年1月21日全国DNS故障始末以及分析

标签: 推荐阅读 | 发表时间:2014-01-22 01:21 | 作者:P迪
出处:http://www.alibuybuy.com

=w=大概今天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都是http://XXX.XXX.XXX.XXX这样的,多难记啊,谁会没事记住IP呢,更何况以后天那么长的IPV6,要记住不是得要人命!

这时候一个聪明的科学家出来,我们给IP加一个别名,大家通过别名不就可以不记住这个IP,也可以知道这个IP了!于是就有了域名[Domain]这个东西.

当你访问Ovear’s Blog的时候

电脑的DNS解析系统就会自动问DNS服务器:尼知道Ovear’s Blog对应的IP地址是神马么?

DNS:窝帮你查查,奥,找到了,IP是[122.10.94.169].
Ovear的电脑:谢啦,再见
DNS:恩

对应现实就是,问知道张三的人:尼知道张三家在哪里么? 回答 在南山区 balabalabla。

当然这样解释还是不怎么恰当的,因为一个DNS服务器是不可能知道所有域名的地址的,因为这需要耗费极大地代价,所以这时候就出现了递归DNS和根DNS。

(由于篇幅原因,Ovear就简单的说一下,其实还是有问题的。Ovear以后再写一篇文章详细阐述下DNS的工作原理,或者看[Domain Name System] QAQ)

(补充:QAQ这里Ovear说的有点过简单了,其实根DNS(ROOT DNS)指的是全球一共13台的根DNS,负责记录各后缀所对应的TOPLEVEL Domain Server[顶级域名根服务器],然后接下来的就是[权威DNS服务器],就是这个域名用的DNS服务器(可以在whois中看到)

总结一下:

[根服务器]:全球一共13个A-M[.http://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]负载过大的问题啦。

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

说了这么久,口水都干了,那么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.0/24)

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

那么某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,啧啧

如果没有人员来手动干预,这次的事件还是要持续蛮久的~。

哎呀先不说了,Ovear去开门收个快递~,双十二买的好东西终于到了,咕嘿嘿期待了很久呢~回来继续说O(∩_∩)O~~

[via  Ovear]


© 推荐 for 互联网的那点事. | 猛击下载: iPhone客户端 猛击下载: Android客户端

相关 [dns 分析] 推荐:

2014年1月21日全国DNS故障始末以及分析

- - 互联网的那点事
=w=大概今天15:30的时候,Ovear正在调试新的服务器,结果发现肿么突然上不去了. 结果ping了以下,结果吓尿了,Ovear的域名都指向到[65.49.2.178]这个IP. Ovear第一反应就是,尼玛DNSPOD又被黑了.  为什么说DNSPOD被黑了呢,其实以前DNSPOD就出过一次类似的问题=.

备用的dns

- - 互联网 - ITeye博客
下载软件 百度找出来了 居然被解析到了本地. cr173 被指向到了 127.0.0.1. 找遍了hosts 和路由器 最后才发现是万恶的联通. 阿里dns 速度和质量都不错. 百度dns 评测说较慢 备胎. 114DNS安全版 (114.114.114.119, 114.114.115.119).

Public DNS Tool-DNS切换工具

- - 无名小卒
Public DNS Tool v9.1下载: dbank| kuaipan| 官方. 无名小卒(Digital Fingerprint: b98c67913fef00419d415179421ab42f) Related Posts. Webluker-免费CDN、DNS解析和网站监控服务.

DNS解析过程及DNS TTL值

- - IT技术博客大学习
标签:   DNS   TTL.    经常说DNS劫持,也常常说域名解析不正确. 在阅读《HTTP权威指南》缓存一章时,提到缓存文档过期采用“生存时间技术”与DNS类似. 所以抽空学习了解了一下DNS的解析过程,以及DNS TTL值的概念. 根域名服务器(root-servers.org)是互联网域名解析系统(DNS)中最高级别的域名服务器,全球仅有13台根服务器.

新网DNS故障

- - 月光微博客
  新网的DNS服务今天出现长时间故障,包括新网自身在内的大量域名都无法解析,导致网站无法打开,例如使用新网服务的jiathis等网站域名都无法解析.   做为一个域名服务商,DNS发生如此长时间的故障,并且导致客户的域名无法解析,实在太不应该了.   建议新网的客户对新网进行集体诉讼,或者干脆把域名转走算了.

DNS服务-详解

- - 操作系统 - ITeye博客
DNS(Domain Name System)域名系统,在TCP/IP网络中有非常重要的地位,能够提供域名与IP地址的解析服务. <1> 客户机提交域名解析请求,并将该请求发送给本地的域名服务器. <2> 当本地的域名服务器收到请求后,就先查询本地的缓存. 如果有查询的DNS信息记录,则直接返回查询的结果.

域名遭遇DNS污染

- - 望月的博客
费劲九牛二虎之力,终于将在 万网注册的wangyueblog.com这个域名转移到godaddy,然而舒心的日子没有几天,麻烦又来了,由于日益严重的 DNS污染,域名常常出现解析错误,真是屋漏偏逢连夜雨,不过,blogging还得继续,所以还是得想办法,在这里将想法和办法分享,仅供参考. 某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址.

Pingdom DNS Health 檢查網域名稱 DNS 設定健康狀況

- - 免費資源網路社群
為什麼要檢查網站的 DNS 呢. 因為正確的 DNS 設定能讓網站運作更正常,DNS Health 協助找出錯誤的設定值,以及確認網域名稱有正確的設定. 網站名稱: Pingdom DNS Health. 網站鏈結: http://dnscheck.pingdom.com/. 進入 Pingdom DNS Health 測試工具後,輸入要檢測的網域名稱,例如 " freegroup.org" ,然後按下 Test Now 開始檢測.

Google DNS每天请求700亿次,成最大DNS服务商

- - 脚本爱好者
  为了提高整体网页打开速度,Google 在 2009 年 12 月份推出自己的 DNS 服务,今天 Google 对外 宣布他们已经是世界上最大的 DNS 服务商,每天处理 700 亿次请求,这个数字还在增加.   DNS 就像是互联网的电话本一样,如果你每天要查找无数的电话号码,你可能希望这个电话本可以让你既快有安全的查询,并且它还不要出错.

公共DNS服务器更换工具Public DNS Server Tool

- - 软矿
不知道大家有没有偶尔会遇到过QQ能上但网络却死活上不去或者打开速度慢得非常不正常的情况,出现这种情况的其中一个可能因素就是你所用的服务商DNS出现了障碍. 这种情况下,你可以尝试通过更换可用的DNS服务器来碰下运气. 但手动更改DNS似乎有点麻烦,且一时半刻你也找不到可用的DNS服务器,此时 Public DNS Server Tool将会为你解决这个麻烦.