詳解DNS原理 六省斷網其實和DNSPod無關

2021-06-23 02:53:17 字數 1477 閱讀 4739

最近在cb上看到多篇存在關於dns故障的文章,其中大多存在謬誤,讓人產生問題在於dnspod,而暴風影音是無辜的受害者的錯覺。這裡我覺得有必要出來說說dnspod才是無辜受害者,錯全在暴風(還有黑客)。首先說說dns是怎麼註冊的:乙個網域名稱註冊成功以後上級網域名稱的擁有者把這個網域名稱的解析授權(delegate)給使用者指定的網域名稱伺服器,此時該伺服器成為該域的權威(authoritative)伺服器,一切到該網域名稱的查詢以此伺服器提供的結果為準。(也存在不授權只設定ns記錄的情況。)

sina.com. 60 in ns ns3.sina.com.cn.

sina.com. 60 in ns ns1.sina.com.cn.

sina.com. 60 in ns ns2.sina.com.cn.

ns1.sina.com.cn. 37305 in a 202.106.184.166

ns2.sina.com.cn. 37305 in a 61.172.201.254

ns3.sina.com.cn. 37305 in a 202.108.44.55

然後我們看如何解析:

因為dns是非常基礎的服務直接關係到網路訪問的效率,所以dns是採用多級快取的方式運作的。通常乙個程式發出dns請求以後,系統會先搜尋自己的dns 快取,沒有找到則會向網路設定中的dns伺服器發出請求。對乙個電信使用者來說這個伺服器被dhcp協議自動配製成電信指定的伺服器。

從上面的過程可以看出,絕大多數的使用者頻繁訪問的網域名稱都已經在比較低階的dns快取了,一般幾小時才會向該網域名稱 的權威伺服器傳送請求。

再來看看此次斷網事件:

首先dnspod被攻擊了,其實在斷網前幾天dnspod的web伺服器(和ns1)也被攻擊過。因為流量巨大,當地電信在骨幹網上封掉了他們電信主網域名稱伺服器的ip。

3600 秒以後,快取在各地dns伺服器上的暴風的記錄過期,但此時暴風指向dnspod的ns記錄還沒有過期(一般是24小時),於是各地的dns繼續向已經被封掉ip的伺服器傳送查詢。由於網域名稱查詢使用udp協議,伺服器不會馬上意識到對方主機已經下線(也可能與電信封ip的方式也有關,沒有返回icmp 包),在超時以後才放棄查詢。但由於dns伺服器一般被配置為不快取失敗的查詢,所以下乙個dns請求來的時候它還是得去向那個封掉的ip傳送查詢。

(注意此時dnspod的ip被電信封了,後續所有的內容都和dnspod無關。)

然後我們看看暴風客戶端在幹什麼,首先它很」無辜「地向自己的伺服器請求乙個廣告或者公升級,於是需要解析伺服器的網域名稱。電信的dns伺服器收到請求以後,等待兩秒沒收到結果,只好對客戶端說sorry。可是暴風客戶端馬上開始重試重試再重試,於是全國上億的暴風使用者都向dns伺服器發出的請求。由於這些伺服器始終無法解析出網域名稱,這些請求逐漸被堆積在記憶體裡。最悲哀的是每個請求需要有乙個請求id以對應每乙個客戶端,而這個id數量是有限的,當併發請求數達到一定數量的時候記憶體或者id耗盡,伺服器拒絕服務了。

從以上可以看出,此次的元凶除了最早攻擊dnspod的黑客以外,大概就是暴風流氓式的程式設計了。

DNS劫持原理 DNS 汙染的原理

dns劫持原理 dns劫持就是dns系統被入侵或人為的修改某些記錄,如a記錄,用專業的術語來講就是通過某些手段取得某網域名稱的解析記錄控制權,進而修改此網域名稱的解析結果,導致對該網域名稱的訪問由原ip位址轉入到修改後的指定ip,其結果就是對特定的 不能訪問或訪問的是假 dns 汙染的原理 現行標準...

DNS 工作原理

我們通常使用機器的網域名稱來訪問這台機器,而不是直接使用其ip位址。那麼如何將機器的網域名稱轉換成ip位址呢?這就需要使用網域名稱查詢服務。而我學習了其中的dns網域名稱服務系統。dns是一套分布式的網域名稱服務系統。每個dns伺服器上都存放著大量的機器名和ip位址的對映,並且是動態更新。眾多網路客...

DNS工作原理

我們通常使用機器的網域名稱來訪問這台機器,而不直接使用其ip位址。在訪問的過程中,將機器的網域名稱轉換為ip位址可以使用網域名稱查詢服務,網域名稱查詢服務有很多種實現方式,比如nis dns和本地靜態檔案等。dns查詢和應答報文詳解 dns是一套分布式的網域名稱服務系統。每個dns伺服器上存放著大量...