簡單理解DNS解析流程(一)

雨九九發表於2019-04-05

 

0x0 簡單理解dns

DNS伺服器裡存著一張表

表中放著域名和IP地址,域名和IP地址以對映關係儲存,即一對一

 

瀏覽器訪問某個域名,實際上是訪問它的ip地址

所以瀏覽器需要知道域名對應的ip地址

如何知道?

向知道的人查詢,也就是向dns伺服器查詢

 

0x1 dns解析流程

 

-> 以客戶端瀏覽器訪問 www.rootkit.org 域名為例,首先,它會去檢查當前瀏覽器快取是否有對應IP,如果有,就直接響應,如果沒有,就繼續往下找

 

-> 接著,作業系統會去檢查自己的host檔案,如果從中沒找到對應關係,會再到系統dns快取中查,如果快取中有,就直接返回該域名所對應的ip

 

-> 如果快取中沒有,則會向我們事先設定好的dns伺服器 [ 一般有兩個, 主 & 備 ] 去請求,即所謂的`遞迴查詢`,dns伺服器首先會到自身解析資料庫中去查

 

-> 如果dns伺服器在自己的解析庫中也沒找到,它就會自動幫我們向根伺服器傳送詢問請求

 

-> 此時,根看到要請求的是org的字尾(.org),就會把org所在的dns伺服器告訴我們的dns

 

-> 然後,我們的dns伺服器就會去請求org所在的dns伺服器

 

-> 當請求到達org dns伺服器時,org一看域名是在rootkit這個域下的,就會把rootkit所在的dns伺服器告訴我們的dns伺服器

 

-> 再然後,我們的dns伺服器就會去請求rootkit這個域名的dns伺服器

 

-> rootkit這個域的dns伺服器一看是要訪問www就直接找到了www對應的A記錄的ip,並把它丟給我們的dns,上面逐個詢問的過程,即 `迭代查詢`

 

-> 最後,我們的dns再把最終解析到的這個ip丟給我們的客戶端,然後客戶端就直接拿著去訪問了

 

參考:

https://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650449761&idx=3&sn=9f322caabc30b71ac19833b63bda3163&chksm=83bbc285b4cc4b93bc23087a4121bd95dc5127138433fd99e281835add26d7d43be9c1abc681&mpshare=1&scene=23&srcid=0405vzdWwUbvmuklynVCmPOp#rd

相關文章