Nameserver
linux上的dig命令返回不同的結果
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 伺服器集群,每個伺服器都有不同的記憶體和/或新記錄。