DNS 發出迭代請求

DNS 發出迭代請求

我想問是否可以在Windows或Linux上配置客戶端以進行迭代查詢而不是遞歸查詢。

我只找到有關在 DNS 伺服器上關閉遞歸的文章。

謝謝

答案1

我不知道迭代 DNS 查詢可能是什麼。

傳送到 DNS 伺服器的查詢可以設定「遞歸請求」標誌。在人類語言中,這就像說「[事物]的地址是什麼,如果你不知道,請幫我查一下」。伺服器可能會否認這一點,並且只返回相當於“我不知道,也沒有問”的內容,或者它可能會回复“我四處詢問,這是[這個]”或“我四處詢問,並且是”告訴它是[這個]”,或“我知道這個,它是[這個],而且我實際上是該地址的權威。

非遞歸查詢只是「[thing] 的地址是什麼,但如果你不知道,就直接說出來」。伺服器可能已經知道先前遞歸查詢的答案並返回它,也可能不會返回,但無論哪種方式,它都不會依次查詢任何內容。

假設伺服器(我們稱之為 S)接受遞歸請求,它將採用名稱(例如“www.example.com”)並從它擁有資訊的最右側元件開始。

這可能根本沒有什麼,在這種情況下,S 將查詢發送到根伺服器,它已經快取了一個列表,或者以硬編碼或預先配置的列表的形式給出了該列表。其中一台根伺服器將收到「www.example.com,請求遞迴」的請求;根伺服器不會遞歸,但它們會傳回它們所知道的下一個最好的東西:「.com」的名稱伺服器及其位址。
嘗試跑步dig www.google.com @c.root-servers.net

然後 S 向其中一個詢問「www.example.com,請求遞迴」。他們也不會遞歸,而是返回下一個最好的東西:“example.com”的名稱伺服器及其地址(再次跳過他們獲取地址的位置 - 查找“粘合記錄”)。
嘗試跑步dig www.google.com @k.gtld-servers.net

然後 S 向其中一個詢問「www.example.com,請求遞迴」。他們不需要遞歸,因為他們知道答案,所以他們會將其與「權威答案」標誌一起發回。
嘗試運行dig www.google.com @ns3.google.com(注意“aa”標誌;這裡是回覆標誌列表)。

然後,S 將最終答案發送回客戶端,不帶“aa”標誌,因為 S 不具有權威性,即它必須詢問。

在某些方面,「遞歸」查詢由 S 「迭代」處理。以供其他本地程式重複使用。這基本上意味著您將在本機上運行一個遞歸的、僅快取的(因為它對任何東西都不具有權威性)名稱伺服器。

那麼...您能澄清一下您的問題嗎?你認為你想做什麼?

答案2

當您向伺服器發送 DNS 請求時,您可以調整到迭代模式。在此請求中,它將忽略 DNS 伺服器的設定。

例如,您可以在 dig 或 nslookup 下嘗試

dig +norecurse netpas.co

如果DNS伺服器快取了該記錄,您將獲得A記錄。或者,您下一步需要嘗試哪個 DNS 伺服器的建議。

相關內容