Domain-Name-System
關於保留域的 RFC 2606 和 6761 的說明
在https://www.rfc-editor.org/rfc/rfc6761中,他們說:
相反,預設情況下,記憶體 DNS 伺服器應該為所有此類查詢生成立即否定響應
負數是 NXDOMAIN 還是 REFUSED?還是由開發商決定?在同一個 RFC 的開頭,是這樣寫的:
要使這個特殊的“保證不存在”名稱有任何用途,必須將其定義為返回 NXDOMAIN
在這裡適用嗎?我不清楚他們為什麼使用“負面反應”一詞。另外,這個 RFC 在現實世界中實現了嗎?看起來 dig 仍在查詢這些保留域的根伺服器。
和否定響應可以互換使用,因為這就是它們在RFC 2308, 2
NXDOMAIN
中的定義和在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
,你應該從任何遞歸名稱伺服器獲得一個NXDOMAIN
for ,但專用網路的**權威伺服器可能會回答本地適用的任何內容。1.1.168.192.in-addr.arpa. IN PTR
這是在 BIND 中實現的,例如
named.conf.local
:// Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918";
/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"; }; . . .
/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"; };