反向DNS
在計算機網絡中,反向DNS查找或反向DNS解析(rDNS)是查詢域名系統(DNS)來確定IP位址關聯的域名的技術——通常的「轉發」的反向DNS查找域名的IP位址。反向DNS查詢的過程使用PTR記錄。互聯網的反向DNS數據庫植根於 .arpa 頂級域名。
雖然協議 [rfc:1912 RFC1912年] (第2.1節)建議,「每一個互聯網可訪問的主機都應該有一個名字」和「每一個IP位址都應該有一個匹配 PTR 記錄」,但這並不是一個互聯網標準 強制要求,所以並不是每一個IP位址都有一個反向記錄。
歷史使用情況
現代「反向DNS查找」不應被混淆[1],「反向查詢」(IQUERY)機制在RFC 1035中寫到:
Inverse queries take the form of a single RR in the answer section of the message, with an empty question section. The owner name of the query RR and its TTL are not significant. The response carries questions in the question section which identify all names possessing the query RR which the name server knows. Since no name server knows about all of the domain name space, the response can never be assumed to be complete. Thus inverse queries are primarily useful for database management and debugging activities. Inverse queries are not an acceptable method of mapping host addresses to host names; use the
in-addr.arpa
domain instead.[2]
IQUERY消息類型總是「可選的」和「從未取得了廣泛使用」;「permanently retired」在2002年採用RFC 3425。
實現細節
IPv4 反向解析
反向解析 IPv4 地址時使用一個特殊的域名 in-addr.arpa
。在這個模式下,一個 IPv4 由點號分隔的四個十進制數字串聯,並加上一個 .in-addr.arpa
域名後綴。通過將 32 位IPv4地址拆分為四個八位字節,並將每個八位字節轉換為十進制數來獲得前四個十進制數。不過需要注意的是,在反向 DNS 解析時,IPv4 書寫的順序是和普通 IPv4 地址相反的。
比如,如果要查詢 8.8.4.4 這個IP位址的 PTR 記錄,那麼需要查詢 4.4.8.8.in-addr.arpa
,結果被指到 google-public-dns-b.google.com
這條記錄。
如果 google-public-dns-b.google.com
的 A 記錄反過來指向 8.8.4.4,那麼就可以說這是個帶正向確認的反向DNS記錄。
參考文獻
- ^ RFC 3425 — Obsoleting IQUERY. November 2002 [2017-12-28]. (原始內容存檔於2020-10-30).
- ^ RFC 1035 — Domain names - implementation and specification. November 1987 [2017-12-28]. (原始內容存檔於2011-02-12).