關於2013年1月21日的DNS故障分析文章

 
 
 
 
 

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

原文出處:  Ovear 的博客

=w=大概今天15:30的時候,Ovear正在調試新的服務器,結果發現腫麼忽然上不去了。。結果ping瞭如下,結果嚇尿了,Ovear的域名都指向到[65.49.2.178]這個IP。Ovear第一反應就是,尼瑪DNSPOD又被黑了! 爲何說DNSPOD被黑了呢,其實之前DNSPOD就出過一次相似的問題=。=,致使全部的域名都跪了,恰好Ovear這個域名還有測試的幾個域名都是那裏的,而後就到某交流羣吐槽。結果管理員說他們的DNS被污染了,Ovear心想不會是全國DNS都被污染了吧。結果烏鴉嘴說中了。。還真的是全國劫持。php

而後Ovear就很好奇,究竟是怎麼回事呢~有誰能作到這樣的事情~因而就有了如下的分析和科普~css

——如下內容爲Ovear家電腦中病毒所致,跟本人無任何關係,謝絕跨省——html

balablabala說了這麼久,確定有同窗問了,窩又不是學計算機的,(╯‵□′)╯︵┻━┻dns是什麼玩意,跟我有什麼關係!html5

那麼DNS是什麼呢,Ovear就來科普下┑( ̄Д  ̄)┍。java

咱們訪問通常是經過域名[Domain]來訪問的,咦DNS怎麼也是D開頭的,難道有關係?說對了!就是有關係:DNS的全稱實際上是[Domain Name System]翻譯過來就是域名系統。node

在互聯網中,是隻存在IP的,IP其實就是一串數字,至關於你家裏的門牌號,你們在網絡中想找到你,必須經過這個,因此IP對於每一個人來講是惟一的。可是第四代IP都是http://XXX.XXX.XXX.XXX這樣的,多難記啊,誰會沒事記住IP呢,更況且之後天那麼長的IPV6,要記住不是得要人命!python

這時候一個聰明的科學家出來,咱們給IP加一個別名,你們經過別名不就能夠不記住這個IP,也能夠知道這個IP了!因而就有了域名[Domain]這個東西.mysql

當你訪問Ovear’s Blog的時候jquery

電腦的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=

figure_01

 

說了這麼久,口水都幹了,那麼DNS到底跟此次事件有什麼關係呢~

首先來看張圖

QQ20140121154922

 

瓦特!腫麼這麼多域名都指向同一個IP了,這是什麼狀況0 0。其實這就是典型的[DNS污染]了。

咱們知道互聯網有兩種協議,一種是TCP,一種則是UDP了(知道泥煤啊(╯‵□′)╯︵┻━┻都說我不是學計算機的了)。

TCP和UDP的主要差異就是:能不能保證傳遞信息的可靠性。UDP是無論消息是否到達了目標,也無論經過什麼途徑的,他只管我發出去了就好,因此UDP比TCP快得多,可是可靠性沒有TCP好。

20140121180655

而DNS查詢默認就是用的是UDP,那麼就很好劫持啦。在UDP包任何傳輸的路途上,直接攔截,而後返回給接收端就好了。

嘖嘖,說道這你們也隱隱約約知道此次事件的問題了吧,範圍如此之廣的劫持,必需要在各個省市的主幹網上進行,而能處理這麼大數據,同時能控制這麼多主幹網的。。嘖嘖嘖。。。沒錯!就是***了~至於***是什麼,Ovear在這就不說了,否則可能你們都見不到Ovear了QAQ。

說道這裏,Ovear就準備手動查一下,究竟是不是所推測的***呢?因而拿到了這個圖(From XiaoXin)

d2c0c26c8b00a17a01806b3f0c7b163b_r

 

與此同時運維也在各地的服務器上開始了跟蹤查詢,發現全國各地解析時間均爲25ms左右。這時候結論就出來了。

這樣就明顯了,確定是***作的了~~因而Ovear又好奇的查了下,這個IP是什麼來頭,爲何都要指向到這裏去,因而Ovear發現了一些好玩的東西~(65.49.2.0/24)

20140121181511

 

從側面點出了這次事件的始做俑者。

那麼某FW爲何要這麼作呢?Ovear在這裏作一個無責任的推測,最有可能的就是:某FW的員工原本是想屏蔽這個IP段的,可是呢一不當心點進去了DNS污染這個選項,而後又沒寫污染目標,因而就全局污染了嘖嘖嘖~

可是有些童鞋會問了(╯‵□′)╯︵┻━┻爲何他們都說用8.8.8.8就沒事了~

其實這樣子說是不正確的,由於Ovear以前用的就是8.8.8.8,上面也說了DNS查詢默認使用的UDP查詢,因此無論你用什麼,照樣劫持不誤。其實8.8.8.8沒問題是由於污染事件已經基本結束致使的,那麼爲何污染結束後其餘國內DNS都不能用,而Goole的DNS確能夠正常的使用~因而Ovear就找到了張有趣的圖片~

20140121154959

 

我先來解釋下上面命令的用途吧~這個命令是用來直接向DNS服務器查詢域名的~

其中的[-vc]參數是強制使用TCP來查詢DNS服務器,這樣就能夠避免UDP污染的地圖炮。

那麼爲何污染結束後,DNS還會受到污染呢?其實緣由很簡單。Ovear以前說了,[遞歸DNS]是須要詢問[根DNS]的,而默認的詢問方式是採用的UDP,因此在國內的DNS服務器,天然就受到污染了。而以前Ovear也提到過TTL這件事~

在TTL週期內,根據協議[遞歸DNS]是直接吧結果緩存在本身那,是不會再去查詢[根DNS]的,因此國內的DNS就把錯誤的結果緩存起來了~

而Google的DNS服務器基本都是在國外,因此查詢的時候影響並不大,可是國內挺多域名使用DNSPOD啦,DNSLA的DNS,因此Google進國內查,仍是會受到必定影響的。

所以,若是要徹底避免此次的影響,有兩個條件

一、你的域名的DNS必須是在國外
二、你查詢的DNS必須在國外,並且若是在污染期須要經過TCP查詢。

這樣就能夠避免這個問題了。

而後Ovear又手賤查了下此次的TTL,嘖嘖

20140121183245

 

若是沒有人員來手動干預,此次的事件仍是要持續蠻久的~。

哎呀先不說了,Ovear去開門收個快遞~,雙十二買的好東西終於到了,咕嘿嘿期待了好久呢~回來繼續說O(∩_∩)O~~

34


發表評論

 

 
 
 
 

(*) 表示必填項

 

提交評論

 

 

關於伯樂在線博客

在這個信息爆炸的時代,人們已然被大量、快速而且簡短的信息所包圍。然而,咱們相信:過多「快餐」式的閱讀只會使人「虛胖」,缺少實質的內涵。伯樂在線博客團隊正試圖以咱們微薄的力量,把優秀的原創/譯文分享給讀者,爲「快餐」添加一些「養分」元素。

伯樂在線-博客( blog.JobBole.com )專一於分享職業相關的博客文章、業界資訊和職業相關的優秀工具和資源。博文類別包括:程序員、設計、營銷、互聯網、IT技術、自由職業、創業、運營、管理、翻譯和人力資源等等。期待您經過RSS訂閱微博關注咱們。若是您也願意分享一份本身的原創/譯文,能夠從這裏開始

聯繫咱們

網站合做和廣告投放

聯繫郵箱:Webmaster (at) JobBole.com
QQ: 630772296 (加好友請註明來意)

網站使用問題

請直接在這裏發帖詢問或者反饋

歡迎關注並訂閱伯樂在線博客

  • 關注咱們的新浪微博

     

    關注咱們的騰訊微博

    RSS訂閱

     

    郵件訂閱



掃描關注極客範,微信號:iGeekFan

 
跳到底部
返回頂部
相關文章
相關標籤/搜索