Domain-Name-System

關於保留域的 RFC 2606 和 6761 的說明

  • June 19, 2020

我閱讀了https://www.rfc-editor.org/rfc/rfc2606>和<https://www.rfc-editor.org/rfc/rfc6761>,但我仍然沒有得到一些細節。為什麼<https://www.rfc-editor.org/rfc/rfc2606>沒有明確說明我們應該為保留域返回哪個響應程式碼?<https://www.rfc-editor.org/rfc/rfc6761的目的是添加更多詳細資訊嗎?

https://www.rfc-editor.org/rfc/rfc6761中,他們說:

相反,預設情況下,記憶體 DNS 伺服器應該為所有此類查詢生成立即否定響應

負數是 NXDOMAIN 還是 REFUSED?還是由開發商決定?在同一個 RFC 的開頭,是這樣寫的:

要使這個特殊的“保證不存在”名稱有任何用途,必須將其定義為返回 NXDOMAIN

在這裡適用嗎?我不清楚他們為什麼使用“負面反應”一詞。另外,這個 RFC 在現實世界中實現了嗎?看起來 dig 仍在查詢這些保留域的根伺服器。

否定響應可以互換使用,因為這就是它們RFC 2308, 2NXDOMAIN中的定義和在RFC 8020中闡明的方式;RFC 6761 正在標準化特殊用途域名,而不是 DNS 響應程式碼。

還值得一提的是,這並不適用於所有保留域,但更具體地說

  • RFC 1918私有地址in-addr.arpa.域,即RFC 6761、6.1中列出的for 、for和所有 10.in-addr.arpa.``10./8``168.192.in-addr.arpa.``192.168./16``172.16./12
  • 和 TLD test.( 6.2 )、localhost.( 6.3 ) & invalid.( 6.4 )、
  • 不是, example., &應該正常處理(example.com.6.5 。(例如)。example.net.``example.org.``example.com. IN A 93.184.216.34

另外,這個 RFC 在現實世界中實現了嗎?

如果你dig -x 192.168.1.1,你應該從任何遞歸名稱伺服器獲得一個NXDOMAINfor ,但專用網路的**權威伺服器可能會回答本地適用的任何內容。1.1.168.192.in-addr.arpa. IN PTR

這是在 BIND 中實現的,例如

  1. named.conf.local:
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
  1. /etc/bind/zones.rfc1918:
zone "10.in-addr.arpa"      { type master; file "/etc/bind/db.empty"; };
zone "16.172.in-addr.arpa"  { type master; file "/etc/bind/db.empty"; };
. . . 
  1. /etc/bind/db.empty:
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL    86400
@       IN      SOA     localhost. root.localhost. (
                             1         ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                         86400 )       ; Negative Cache TTL
;
@       IN      NS      localhost.

這保證了NXDOMAIN遞歸名稱伺服器上的回复,而不是使用來自的根伺服器

zone "." {
       type hint;
       file "/usr/share/dns/root.hints";
};

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