Domain-Name-System

具有 A 記錄和 NS 記錄的子域是否有效?

  • October 29, 2013

假設我擁有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)。

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