即使中間子域不存在,如何檢查深層子域是否存在?

即使中間子域不存在,如何檢查深層子域是否存在?

假設test.example.com不存在並NXDOMAIN在運行時給出dig,但我知道subdomain.test.example.com存在並NOERROR在執行相同操作時給出,有沒有辦法檢查深層子域是否存在,即使中間子域可能不一定存在。具體來說,我在探測或查詢時尋找提示subdomain.test.example.com是否存在深層子網域?

答案1

假設 test.example.com 不存在,並在執行 dig 時給予 NXDOMAIN,但我知道 subdomain.test.example.com 存在

根據 DNS 規範,這是不可能的。或者換句話說:這意味著該區域的權威名稱伺服器已損壞。

RFC 8020:NXDOMAIN:下面真的什麼都沒有

當迭代快取 DNS 解析器收到 NXDOMAIN 回應時,它應該將其儲存在其快取中,然後該節點或低於該節點的所有名稱和資源記錄集(RRset)應該被視為不可存取。對此類名稱的後續查詢應該會引發 NXDOMAIN 回應。

答案2

我同意派崔克的觀點,但想更清楚地說明實際的期望是什麼:

如果在 處有記錄subdomain.test.example.com但在 處沒有記錄test.example.com,這並不意味著test.example.com“不存在”,這種空類型節點的術語是空非終結符(有時是耳鼻喉科)。

當您查詢某個空非終結符的名稱時,正確的回應類型是不是 NXDOMAIN(這意味著“沒有這樣的名稱”)而是NODATA(這意味著“沒有所請求類型的記錄”,在 ENT 情況下,無論您要求哪種類型)。

為了清楚起見,NODATA回應類型為: 回應代碼NOERRORSOAAUTHORITY部分中。

表示有可以存在進一步的子網域是您得到的回應不是NXDOMAIN。如果您也確定該名稱沒有記錄(即,它是一個空的非終結符),則必須有某個子網域(向下一層或多層)實際上存在某些內容。

問題暗示和派崔克涵蓋的另一個方面是,某些名稱伺服器實作有缺陷,NXDOMAIN即使在這不是適當回應的情況下也會發送。
這種類型的實現缺陷會導致提供不一致的數據,其中應該全部是樹結構的數據實際上被分成了不連接的部分。對於任何依賴先前觀察到的NXDOMAIN回應實際上有意義且無法在 DNSSEC 中表示的解析器來說,這種行為尤其失敗。

相關內容