具有 A 記錄和 NS 記錄的子域是否有效?
假設我擁有
example.com
.然後我在to上創建一個
A
記錄。test.example.com``1.1.1.1
然後我在to上創建一個
NS
記錄。test.example.com``ns1.anotherdnshost.com
在另一個 DNS 主機上,我將
A
根 (test.example.com
) 的記錄添加到2.2.2.2
.客戶端查詢時,會返回
test.example.com
哪條記錄?A
哪個會是更“主導”的A
記錄?這樣的設置有效嗎?
這是無效的,不。它可能會返回 1.1.1.1,因為它將由第一個解析的伺服器返回,但“正確”值應該是 SOA 記錄註冊為主伺服器的任何名稱伺服器。但是,返回的內容可能取決於執行的名稱伺服器軟體的版本。見下文,它只會將其轉發到下一個名稱伺服器,並且永遠不會顯示 1.1.1.1。
現在在您的區域中列出其他 NS 記錄是正確的,但其他 NS 應該是具有相同區域的名稱伺服器。但是,您可以將子域指向備用名稱伺服器。
因此,您的註冊商的 example.com 使用來自註冊商名稱伺服器(膠水)的 1.2.3.4 和 2.3.4.5 IP 指向 ns1.example.com 和 ns2.example.com。
然後,您將擁有一個 SOA 選擇 ns1 或 ns2 作為主要區域的區域,然後您將擁有兩個指向 ns1.example.com 和 ns2.example.com 的 NS 記錄以及該域的 A 記錄(以及 mx、txt , cname 等)。
NS1 和 NS2.example.com 都應該具有相同的區域,並且它們應該自動相互複製。
現在它是有效的,將 test.example.com 指向 ns1.somethingelse.com 和 ns2.somethingelse.com 但在 ns1 和 ns2.example.com 的名稱伺服器上沒有 test.example.com 的記錄,除了 ns1 和ns2.example.com 應該自動發送 ns1 和 ns2.somethingelse.com 的 IP,如果它有膠水的話。(如果 TLD 不同,即 .com 和 .org,則不會)
我希望一切都說得通,如果有任何令人困惑的地方,我可以澄清更多。
這是對發生的情況的測試:
在 shadowrpg.net 的名稱伺服器上:
$ttl 38400 @ IN SOA shell2.reganw.com. root.shell2.reganw.com. ( 1298345653 10800 3600 604800 38400 ) @ IN NS shell2.reganw.com. test.shadowrpg.net. IN A 127.0.0.1 test.shadowrpg.net. IN NS saber.reganw.com.
在 test.shadowrpg.net 的名稱伺服器(軍刀)上:
$ttl 38400 @ IN SOA saber.reganw.com. root.shell2.reganw.com. ( 1298345653 10800 3600 604800 38400 ) @ IN NS saber.reganw.com. test.shadowrpg.net. IN A 127.0.0.2 test.shadowrpg.net. IN NS saber.reganw.com.
第一個結果是未配置 saber 以顯示推薦。
[regan@gamma ~]$ dig +trace test.shadowrpg.net ; <<>> DiG 9.7.3-P1-RedHat-9.7.3-2.P1.fc13 <<>> +trace test.shadowrpg.net ;; global options: +cmd . 518400 IN NS G.ROOT-SERVERS.NET. . 518400 IN NS C.ROOT-SERVERS.NET. (snip) ;; Received 512 bytes from 127.0.0.1#53(127.0.0.1) in 2 ms net. 172800 IN NS a.gtld-servers.net. net. 172800 IN NS m.gtld-servers.net. (snip) ;; Received 493 bytes from 199.7.83.42#53(199.7.83.42) in 55 ms shadowrpg.net. 172800 IN NS ns1.reganw.com. shadowrpg.net. 172800 IN NS ns2.reganw.com. shadowrpg.net. 172800 IN NS ns3.reganw.com. ;; Received 232 bytes from 192.35.51.30#53(192.35.51.30) in 54 ms test.shadowrpg.net. 38400 IN NS saber.reganw.com. ;; Received 110 bytes from 209.161.6.3#53(209.161.6.3) in 2123 ms test.shadowrpg.net. 38400 IN NS saber.reganw.com. ;; BAD (HORIZONTAL) REFERRAL ;; Received 110 bytes from 173.45.238.245#53(173.45.238.245) in 81 ms test.shadowrpg.net. 38400 IN NS saber.reganw.com. ;; BAD (HORIZONTAL) REFERRAL ;; Received 110 bytes from 173.45.238.245#53(173.45.238.245) in 82 ms test.shadowrpg.net. 38400 IN NS saber.reganw.com. ;; BAD (HORIZONTAL) REFERRAL ;; Received 110 bytes from 173.45.238.245#53(173.45.238.245) in 112 ms
並配置了軍刀:
^C[regan@gamma ~]$ dig +trace test.shadowrpg.net ; <<>> DiG 9.7.3-P1-RedHat-9.7.3-2.P1.fc13 <<>> +trace test.shadowrpg.net ;; global options: +cmd . 518400 IN NS L.ROOT-SERVERS.NET. . 518400 IN NS J.ROOT-SERVERS.NET. (snip) ;; Received 512 bytes from 127.0.0.1#53(127.0.0.1) in 2 ms net. 172800 IN NS m.gtld-servers.net. net. 172800 IN NS a.gtld-servers.net. (snip) ;; Received 493 bytes from 198.41.0.4#53(198.41.0.4) in 129 ms shadowrpg.net. 172800 IN NS ns1.reganw.com. shadowrpg.net. 172800 IN NS ns2.reganw.com. shadowrpg.net. 172800 IN NS ns3.reganw.com. ;; Received 232 bytes from 192.12.94.30#53(192.12.94.30) in 165 ms test.shadowrpg.net. 38400 IN NS saber.reganw.com. ;; Received 110 bytes from 209.161.6.3#53(209.161.6.3) in 38 ms test.shadowrpg.net. 38400 IN A 127.0.0.2 test.shadowrpg.net. 38400 IN NS saber.reganw.com. ;; Received 126 bytes from 173.45.238.245#53(173.45.238.245) in 80 ms [regan@gamma ~]$
因此,一旦您添加了 NS 記錄,它就會引用它,並且它會忽略對自身的任何查詢。現在,如果您為名稱伺服器添加一條 A 記錄,它將與 NS 記錄一起作為膠水傳遞(因此解析器不必再查找新名稱伺服器的 IP)。