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