在大部分的 DNS 查閱中,用戶端通常會執行正向查閱,這是根據另一部計算機 DNS 名稱作為儲存在位址 (A) RR 中的搜尋。 這種類型的查詢預期IP位址是回應回應的資源數據。
DNS 也提供反向查閱程式,讓客戶端能夠在名稱查詢期間使用已知的 IP 位址,並根據其位址查閱電腦名稱。 反向查閱採用問題的形式,例如「你能告訴我使用IP位址192.168.1.20的電腦 DNS 名稱嗎?
反向查詢的運作方式
DNS 標準中定義了稱為 in-addr.arpa
網域的特殊網域。 此網域會保留於因特網 DNS 命名空間中,以提供實際且可靠的方式來執行反向查詢。 若要建立反向命名空間,定義域中的 in-addr.arpa
子域是使用IP位址點十進位表示法中數位的反向順序來形成。
從左至右讀取IP位址時,相較於 DNS 名稱,它們會以相反的方式解譯。 每個八位組值的網域反向順序是必要的。 從左至右讀取IP位址時,它會從網路地址開始,並以主機位址結尾。
因此,在構建 in-addr.arpa
網域樹狀結構時,必須將 IP 位址的八位元組順序反轉。 DNS in-addr.arpa
樹狀結構的IP位址可以委派給公司,因為它們在因特網定義的位址類別中指派了特定或有限的一組IP位址。
最後,內建的 addr.arpa 網域樹狀結構需要定義另一個 RR 類型,即指標 (PTR) RR。 此 RR 是用來在反向對應區域中建立對應,該對應通常會對應至其正向對應區域中主機之 DNS 計算機名稱的主機 (A) 名為 RR 的主機。
in-addr.arpa 網域適用於以因特網通訊協定第 4 版(IPv4) 尋址為基礎的所有 TCP/IP 網路。 [新增區域精靈] 在建立新的反向查詢區域時,會自動假定您使用的是此網域。
如果您要為因特網通訊協定第 6 版 (IPv6) 網路設定反向對應區域,您可以使用 [新增區域精靈] 來指定確切的名稱。 這可讓您在 DNS 控制台中建立反向對應區域,以用來支援 IPv6 網路。 IPv6 區域使用不同的特殊網域名稱,也就是 ip6.arpa
網域。
如需 IPv6 和 DNS 的相關資訊,包括如何建立和使用 ip6.arpa
網域名稱的範例(如 RFC 1886 中所述),請參閱 DNS 參考資訊。
備註
透過反向查詢識別主機的 PTR R R 和反向對應區域設定,絕對是 DNS 標準實作的選擇性部分。 您不一定需要使用反向查找區域,但對於某些網路應用程式而言,它們可能會被用來進行安全性檢查。
範例:IPv4 反向查詢
下圖顯示 DNS 用戶端 (host-b) 所起始的反向查詢範例,以根據其 IP 位址 192.168.1.20 來瞭解另一個主機的名稱(host-a)。
如下圖所示的反向查詢程式會在下列步驟中發生:
用戶端
host-b
會查詢 DNS 伺服器是否有對應至 192.168.1.20host-a
之 IP 位址的指標 (PTR) RR。因為查詢是針對 PTR 記錄,因此解析程式會反轉位址,並將網域附加
in-addr.arpa
至反向地址的結尾。 此查詢會形成在反向查找區域中搜尋的完整網域名稱(20.1.168.192.in-addr.arpa.
)。在找到記錄後,
20.1.168.192.in-addr.arpa
的授權 DNS 伺服器可以回應 PTR 記錄資訊。 此回應包含的host-a
DNS 功能變數名稱,完成反向對應。如果查詢的反向名稱無法從 DNS 伺服器接聽,則一般 DNS 解析(遞歸或反覆專案)可用來找出具有反向對應區域授權且包含查詢名稱的 DNS 伺服器。 從這個意義上說,反向查閱中使用的名稱解析程式與正向查閱的名稱解析程式相同。