關於DNS迭代遞迴及區域複製

2021-09-21 16:07:30 字數 4668 閱讀 8157

:「關於dns查詢,比如.com區域下面有md.com和 md1.com 和md2.com三個域,md.com下面有3主機a ,b, c! md1.com下面有主機e,f,g! a查詢乙個網域名稱

www.csdn.net

a快取沒有,就去查它的

dns伺服器

(這個dns伺服器是a,b,c之外的機器來擔任還是其中之一擔任!) 

關鍵在於dns伺服器也沒有這條記錄,快取也沒有,這時候dns 伺服器會查詢誰??是根伺服器還是.com的dns伺服器! (這個查詢誰是不是可以設定???) ,如果查詢根我就糊塗了,.com 沒起什麼作用嘛! 即使得到結果了,這時 e主機也查詢 

www.csdn.net

也是同樣,自己沒有快取,dns伺服器也沒有!就直接查根伺服器了!!

再假設md1.com區域下面又建立了sale域!   sale.md1.com下面有主機h,i,j.這時主機h 也查詢

www.csdn.net

,相同情況,那不是說,最初的主機a的查詢,白查了!對於其他的查尋一點幫助也沒有!!!???!!   請高手指點 我知道我肯定忽略了什麼???!!!!」

回答:嗯……我就嘗試用fqdn來說明這個解析的過程,這個模型不用太複雜,我就以md.com下的a計算機發起

www.csdn.net

的dns請求來描述。首先確定a 的fqdn,應該是 a.md.com. 注意最後面有個點,這就是 dns root node。

當使用者在計算機a上請求查詢 

www.csdn.net

,那麼系統 按照如下順序執行名稱解析

local cache--hosts file--dns server--nbt--lmhosts--wins

具體到dns的查詢,預設狀態下,dns client會根據當前fqdn中的dns suffix來進行逐層抽取。

大家都知道 dns保留有樹狀架構,那麼一次查詢的順序為:

a.md.com. -> md.com. -> .com. ->.

每到達乙個dns node,dns client就會嘗試詢問當前dns zone的dns server,是否知道

www.csdn.net

這台主機在**,如果回答是否定的,那麼繼續進行抽取,直至最上層的dns root node,也就是那個點,這些root通常是internet dns server,目前有13臺。這個查詢模式就叫迭代查詢。

但這裡要提到一點,通常在ms的平台上,抽取動作將會保留最後兩個標籤,in this case,就是.com.

此時系統就會判斷當前dns forest中是否存在乙個內部的dns root node,這就是在dnsmgmt.msc中新建乙個dns zone的時候,系統自動產生的根節點。

如果存在此根節點,那麼dns請求到達此節點,系統即認為已經到達根權威伺服器,所有的dns請求到此終結,如果當前節點上沒有

www.csdn.net

這個主機的dns紀錄,那麼整個查詢的結果就是否定的。

通常企業部署中,我們都是刪除了這個根節點,而設定**,forward到isp dns,這樣當請求

www.csdn.net

的紀錄時,root dns server就會將這個請求**到isp dns server,得到結果後,再將dns紀錄返回給dns client。

如果企業內部 root dns server處於企業dns架構的頂點,其下還有樹狀的dns架構,比如md.com.,比如sales.md.com. 那麼每個dns zone都至少需要有一台dns server以負責維護當前dns zone,此dns server成為當前區域的dns權威伺服器。

那麼當a.md.com.發起的請求到達md.com.中dns server時,該dns server將會接受這個請求,然後查詢自己所維護的zone,如果沒有

www.csdn.net

的紀錄,就將這個結果**到其上層dns server .com.,如果仍舊沒有結果,一次向上轉送,直至獲得結果(即便這個結果可能是沒有找到),然後將結果依次返回回來,直至md.com.,然後md.com.將結果返回給a.md.com.

這個過程就是遞迴查詢。

在實際的網路環境中,dns查詢總是伴隨著這兩個查詢模式。那麼我們回頭來看看您的問題:

1、 關鍵在於dns伺服器也沒有這條記錄,快取也沒有,這時候dns 伺服器會查詢誰??

〉〉向當前dns server的上層dns server發起查詢,至於它如何知道哪台server是它的上級。根據dns suffix抽取。比如sales.md.com. 抽取最前面的dns zone name sales,那麼就知道它的上級是md.com.了

2、如果查詢根我就糊塗了,.com 沒起什麼作用嘛! 

〉〉所有的dns查詢都是按照dns樹狀架構逐層向上的,來自md.com.的查詢自然要經過.com.

當然具體到win2k3中,您設定了forward or stub zone or其他快捷方式查詢,那麼到達md.com.可能根據您的設定被直接跳轉到其他dns server。

3、最初的主機a的查詢,白查了!對於其他的查尋一點幫助也沒有!!!???!!  

〉〉所有的查詢結果都會被當前區域的dns server快取下來,當您在dnsmgmt.msc中開啟高階察看的時候,您就能看到之前的dns query result cache。

比如a.md.com.查詢

www.csdn.net

,在root dns node獲得了結果,那麼負責根域的dnsserver就會將

www.csdn.net

的dns紀錄快取下來,以便於其他dns client的查詢,進而提高查詢效能。

這樣當來自 e.md1.com.的請求到達 root dns node時,負責根域的dnsserver就直接從cache中返回

www.csdn.net

的結果,而不用再次查詢isp dns server(如果之前設定了forward to isp dns)

這是在 winmag 被 pumas_king 朋友問到的問題 :「首先問個問題!lan中的dns如果含有.根域是否在連上外網的時候造成衝突?(一直疑惑務必回答)

提出問題一:曾經認為

遞迴查詢:客戶機向負責dns伺服器查詢,

迭代查詢:為負責客戶機查詢的dns沒有目標資訊,將他**到其他的dns,因為主機不認識其他的dns所以這一切都是有這台dns的soa記錄、預設信任域負責!等待dns查詢完後在返回主機乙個遞迴(注意:客戶機不認識其他的dns)

說的馬虎點就是:客戶機和dns伺服器間和dns返回客戶機的查詢為遞迴查詢、而dns向其他dns查詢為迭代查詢!

提出問題二:就是關於區域複製!

我要說的是!其實簡單的說就是這樣的!輔助dna在重新整理時間到時向主dns檢視序列號!

如果發現序列號比自己的大(當然不會有小的情況)就立即複製!但是如果複製不成功(比如網路擁塞等造成的複製失敗)就在重試間隔時間到時重試!(還不成功就在等待重試時間到!)如果二十四小時都重試失敗的話、很好輔助dns將認為自己已經崩潰、已經無法工作(所以領了退休金就不做了)

當然(除了輔助dns有更新時間外,主dns也會向輔助dns發出更新通告)」

回答:"lan中的dns如果含有.根域是否在連上外網的時候造成衝突?"

連上外網,說得再清晰一些就是,內網的使用者需要連線到外部網路的某些服務,當然這個服務不一定就是web service

但無論什麼服務,都免不了dns解析,dns只負責dns name 與ip位址之間的轉換,其它任務它管不了。dns由於其樹狀層級結構,就決定了其層層向上的路由特性,在樹的頂端,就是那個點的根域,這個就是權威,它就是解析的終結,無論任何dns請求在遇到它後,「即刻回頭」無論解析結果的對錯,還是無法解析,它都將解析的結果返回給dns請求者。

在dns請求者看來,無論這個點的根域是lan還是wan上的,都一樣,「有奶的便是娘」。

所以,所謂衝突,就是如果,lan中存在乙個和wan上同名的dns zone,而lan中又存在點的根域,勢必返回的結果就是lan中的查詢結構。

那麼,在這種情況下,如果刪除點的根域呢?同樣也是lan中的查詢結果。誰在dns層級架構中,最靠近dns client,誰最先響應dns query,誰就為dns client作解析,返回的結果也就是它說了算。這個情形,如果從安全的角度來講,也就是dns替換攻擊的一種。

詳細的論述,可以參考cissp certification guide中 secure dns一節。

關於區域複製,出現以下任何情況時都會發生區域轉移: 

• 在輔助 dns 伺服器上啟動 dns 服務。  

• 重新整理時間終止。  

• 當更改儲存到主控區域檔案並有 notify list 時。 

• 在輔助 dns 伺服器上使用 dns mmc,手動啟動從主dns伺服器上的區域複製首先,輔助伺服器等待乙個由soa記錄中定義的「refresh」指定的重新整理間隔(預設為15分鐘),向主dns伺服器查詢其soa

然後,主dns伺服器以其soa記錄回應

再次,輔助dns伺服器將返回的serial no和自己的對比,如果高,就向主dns伺服器發出更新請求

最後,主dns伺服器根據輔助dns發出的請求,對比之前的更新記錄,決定發起乙個完全複製還是增量複製。如果主dns伺服器沒有響應輔助dns伺服器的請求,那麼複製dns伺服器將按照soa記錄中定義的「retry」時間間隔(預設是10分鐘)不斷重複請求。如果超過soa中定義的"expire"時間段(預設是24小時),仍然沒有得到回應,就廢棄當前區域。但這不等同輔助dns已經崩潰。

btw:dns client 發起的dns記錄更新間隔也是24小時

DNS 遞迴 迭代 原理

遞迴查詢 遞迴 客戶端只發一次請求,要求對方給出最終結果。一般客戶機和伺服器之間屬遞迴查詢,即當客戶機向dns伺服器發出請求後,若dns伺服器本身不能解析,則會向另外的dns伺服器發出查詢請求,得到結果後轉交給客戶機 迭代查詢 反覆查詢 迭代 客戶端發出一次請求,對方如果沒有授權回答,它就會返回乙個...

dns迭代查詢和遞迴查詢

遞迴查詢 返回的結果必須是 所查網域名稱和對應ip的對映關係 或者 查詢未果 迭代查詢 返回的結果可以是其他dns伺服器的ip 遞迴查詢和迭代查詢另乙個區別是每次做查詢的時候 發起查詢的 角色不同 對於遞迴查詢,一般是本地的客戶端,本地的客戶端檢視本地hosts檔案或者快取未找到後,會向本地dns伺...

DNS遞迴查詢與迭代查詢

注 一般tcp ip的應用層或者osi的會話 表示 應用層把資料稱為資料或者資訊,到了傳輸層把資料稱為報文,到了最底層就是位元流了也就是位元組流 1.網域名稱系統 2.網域名稱伺服器 1.在瀏覽器中輸入www.qq.com網域名稱,作業系統會先檢查自己本地的hosts檔案是否有這個 對映關係,如果有...