Nameserver

linux上的dig命令返回不同的結果

  • January 31, 2015

dig對特定域執行命令,返回以前的名稱伺服器詳細資訊。例如;

domain.com.     41068   IN  NS  ns1.nameserver1.com.

現在,如果我執行命令dig +nssearch host.example.com,然後執行命令“dig domain.com”,我會得到不同的結果。

domain.com.     41068   IN  NS  chad.ns.cloudflare.com.
  • 這是為什麼?
  • dig domain.com如果我多次執行 dig 命令,它會返回以前的名稱伺服器詳細資訊。這是為什麼?

編輯

名稱伺服器詳細資訊已更改,但是在同一時間視窗中執行命令會產生不同的結果。

記憶體

您的系統用作解析器的名稱伺服器 ( /etc/resolv.conf) 應該記憶體 DNS 響應。

通過使用+nssearch開關,您可以繞過解析器中的記憶體記錄(在名稱伺服器行話中也稱為遞歸名稱伺服器)並直接查詢權威 DNS 伺服器,您將獲得不來自記憶體的記錄。

正如手冊中所說:

**+[no]recurse**在查詢中切換 RD(需要遞歸)位的設置。該位預設設置,這意味著 dig 通常發送遞歸查詢。使用 +nssearch 或 +trace 查詢選項時會自動禁用遞歸。

**+[no]nssearch**設置此選項後,dig 嘗試為包含正在查找的名稱的區域查找權威名稱伺服器,並顯示每個名稱伺服器具有的區域的 SOA 記錄。

另一個複雜因素可能是您的解析器不是單個伺服器,而是遞歸 DNS 伺服器集群,每個伺服器都有不同的記憶體和/或新記錄。

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