DNS協定詳解 以及利用原理
最近在進行資訊收集的時候,嘗試漏洞挖掘時。使用了DNSlog外帶方法,發現自己對DNS該協定的了解比較淺,故今日發一篇對DNS協定詳解,加深自己對DNS的了解
如有不足和缺陷,望指正
0x01 什麼是DNS?
DNS協定預設端口:TCP和UDP協定号的端口53
DNS是域名解析協定,基于TCP和UDP協定組的應用層協定。它在網絡中起着"翻譯官的角色"。
0x02 DNS協定的作用及機制
DNS協定是用來将域名解析轉換為IP位址(也可以将IP位址解析成對應的域名位址),一個公網IP對應一個域名。它作為将域名和IP位址互相映射的一個分布式資料庫,能夠使人們更友善地通路網際網路
舉個例子:
我們現在通路百度時,輸入網址"www.baidu.com" 我們就能進入"百度一下,就知道"的網頁

但是浏覽器是不能直接識别域名的,域名的存在是為了使用者友善記憶而誕生的。
比如說我們通路www.baidu.com 時,本機會先向本地DNS服務查詢發起遞歸查詢,本地DNS伺服器會向根DNS伺服器,頂級域名 DNS 伺服器;域名 DNS伺服器發起疊代查詢。
從不同DNS伺服器查詢的結果即為"www.baidu.com" 的IP位址,第一次查詢後,該IP位址會儲存在本地DNS伺服器的緩存中,便于下一次的通路。
那麼有了這麼一串IP位址,我們的電腦才能讀懂我們要通路的網站,要去的地方。
0x03 DNS協定查詢内容分類:
■ 正向解析:
通過已知域名,通路本地DNS伺服器緩存,解析IP位址。
由上圖可見我們ping "www.baidu.com" 的網址時,傳回了一個36.152.44.96的IP位址,這就是DNS協定的功勞。
當我們通路百度首頁時,用戶端會向本地伺服器發送查詢域名的請求,本地伺服器則會通過通路緩存表或疊代查詢根、域名DNS伺服器。去查詢該域名的解析記錄,并一層層傳回查詢結果至用戶端。
觀察這裡的IP位址,百度的IP可以是很多個,但是真實IP隻有一個。我們又可以衍生出另一個知識點:"CDN(内容分發網絡)",這裡我提個引子,放在下一章節來描述
■ 反向解析:
由上述正向解析可知,反向解析即為通過已知IP位址,通路本地DNS伺服器緩存,解析域名。
此緻,敬禮!