Linux

為什麼 dig 不顯示權限部分以及如何使其顯示保存 DNS 查詢答案的權威名稱伺服器?

  • December 27, 2021

我最近開始學習 DNS,在 Linux 中使用 dig 命令時卡住了。更確切地說,我希望看到權威名稱伺服器(它們的名稱或 IP 地址)保存我的 DNS 查詢的答案,但我不知道如何。您可能已經知道,dig 的命令輸出有 5 個部分:HEADER、QUERY、ANSWER、AUTHORITY 和 ADDITIONAL。最後 3 個包括在對 dig 發送的 DNS 請求的回復中找到的資源記錄。我感興趣的是 AUTHORITY 部分,它通常應該顯示 NS(名稱伺服器)類型的資源記錄,這些記錄提供有關權威名稱伺服器的資訊,從中檢索初始查詢的答案。權威伺服器當然不同於可以提高效率的記憶體伺服器。

現在,我的問題是,每次我呼叫 dig 時,答案都不包含任何 AUTHORITY 記錄。我可能不知道正確的選項或其他一些我不知道的問題。沒有得到任何權威答案的原因可能是什麼?為了得到答案應該做些什麼?我會放一張終端的圖像,但我還沒有 10 聲望,但問題仍然存在。

更確切地說,我希望看到權威名稱伺服器(它們的名稱或 IP 地址)保存我的 DNS 查詢的答案,但我不知道如何。

這完全取決於您查詢的名稱伺服器。如果您沒有使用@標誌指定任何內容,它會使用本地遞歸來為您提供最終答案。這個答案可能是由遞歸名稱伺服器在得出答案之前查詢許多不同的權威名稱伺服器計算得出的,因此在這種情況下沒有“一個”權威名稱伺服器。

如果您可以使用它進行探勘,+trace它將表現得像一個遞歸名稱伺服器,並將向您展示解析的每一步,每個權威名稱伺服器都被查詢及其答案。

我感興趣的是 AUTHORITY 部分,它通常應該顯示 NS(名稱伺服器)類型的資源記錄,這些記錄提供有關權威名稱伺服器的資訊,從中檢索初始查詢的答案。

它比這更複雜。這取決於您要查詢的名稱伺服器以及您執行的查詢。

讓我們serverfault.com作為範例(記住預設dig執行A記錄類型查詢),並比較遞歸名稱伺服器、名稱權威、父節點權威。

詢問遞歸名稱伺服器

$ dig serverfault.com  @9.9.9.9 +noall +auth +nottlunits
$

正如預期的那樣,AUTHORITY 部分中沒有數據。遞歸名稱伺服器對數據不具有權威性,因此它只會為您提供您請求的答案。

詢問區域權威名稱伺服器

$ dig serverfault.com NS +short
ns-cloud-c1.googledomains.com.
ns-cloud-c2.googledomains.com.
ns-1135.awsdns-13.org.
ns-860.awsdns-43.net.
$ dig serverfault.com @ns-cloud-c1.googledomains.com. +noall +auth +nottlunits
$

也沒有 AUTHORITY 因為你只是不需要它,它是一種優化。請注意,如果您查詢 AWSDNS 名稱伺服器,您將獲得一個 AUTHORITY 部分,但它沒有用。

詢問父級權威域名伺服器

$ dig com. NS +short
b.gtld-servers.net.
k.gtld-servers.net.
d.gtld-servers.net.
i.gtld-servers.net.
j.gtld-servers.net.
f.gtld-servers.net.
h.gtld-servers.net.
c.gtld-servers.net.
e.gtld-servers.net.
g.gtld-servers.net.
m.gtld-servers.net.
a.gtld-servers.net.
l.gtld-servers.net.
$ dig serverfault.com @g.gtld-servers.net. +noall +auth +nottlunits
serverfault.com.    172800 IN NS ns-860.awsdns-43.net.
serverfault.com.    172800 IN NS ns-1135.awsdns-13.org.
serverfault.com.    172800 IN NS ns-cloud-c1.googledomains.com.
serverfault.com.    172800 IN NS ns-cloud-c2.googledomains.com.

在這裡,您將始終(無論您查詢上述哪個名稱伺服器)都會獲得 AUTHORITY 部分(實際上沒有 ANSWER 部分),因為這些名稱伺服器沒有您的查詢的答案,因為它們對名稱沒有權威但他們知道存在一個委託,因此他們在 AUTHORITY 中將您應該查詢的名稱伺服器列表返回給您。

這是所有正常的 DNS 委派工作流程。

PS:

我會放一個終端的圖像,但我還沒有 10 聲望

不,無論如何都不要放圖像。終端是文本行。在任何問題中複製並粘貼相關的 AS TEXT。絕對不要附上截圖,這在各個方面都很糟糕。

引用自:https://serverfault.com/questions/1088257