Domain-Name-System

為什麼我可以解析這個主機名而不是這個主機名的 cname?

  • December 14, 2013

如果我對主機名執行 dig,我會得到相應的 cname,但是會收到 NXDOMAIN 錯誤(不存在的域)。

如果我對我得到的 cname 執行 dig,我可以成功地將其解析為 IP 地址。它是可複制的。

在我目前使用的系統上總是如此,在其他系統上它有時可以工作,有時不能,而在其他系統上它似乎一直都在工作。

如果我使用我指定的名稱伺服器(例如 google 的公共名稱伺服器)執行,我可以成功解析主機名。

我只會責怪本地系統,但似乎我沒有唯一的問題。

第二個域(example.net)託管在 amazon route 53 名稱伺服器上。多年來已證明功能齊全且可靠的另一台 dns 伺服器上的第一個。

我曾經將另一個域也切換到亞馬遜 dns,一切似乎都可以正常工作,各種 dns 健康檢查測試報告也很好,但是我收到了很多 dns 解析不起作用的支持票。

亞馬遜只是“壞”還是我做錯了什麼?

我沒有在本地系統上以任何方式篡改域(在記憶體或製作自定義 dns 視圖或其他任何情況下……)

joe@joe:~$ dig scorpion.example.com

; <<>> DiG 9.8.1-P1 <<>> scorpion.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 10222
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;scorpion.example.com.      IN  A

;; ANSWER SECTION:
scorpion.example.com.   180 IN  CNAME   alpha.nue.scorpion.example.net.

;; Query time: 28 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Jun 18 10:28:39 2012
;; MSG SIZE  rcvd: 84

joe@joe:~$ dig alpha.nue.scorpion.example.net

; <<>> DiG 9.8.1-P1 <<>> alpha.nue.scorpion.example.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25381
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;alpha.nue.scorpion.example.net. IN A

;; ANSWER SECTION:
alpha.nue.scorpion.example.net. 300 IN A    192.0.2.130

;; Query time: 48 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Jun 18 10:28:47 2012
;; MSG SIZE  rcvd: 66

joe@joe:~$ 

您在第一次請求時獲得了 NXDOMAIN,因為您要求的是 A(正如您在問題部分中看到的那樣)並且伺服器僅使用 CNAME 響應。因此,您看到的問題是由 的 DNS 伺服器引起的example.com,而不是由亞馬遜引起的。

據我了解,伺服器通常會返回 CNAME 記錄指向的 A 記錄,作為節省頻寬的答案的一部分(否則,這很可能是您的下一個問題)。但是,我不認為他們必須這樣做,而且我很確定一些特別迂腐的 DNS 伺服器(我在看,未打更新檔的tinydns不會在答案中包含 A 記錄。

(編輯:正如 kworr 所指出的,如果 A 名稱不在管轄範圍內,那麼您還依賴於伺服器願意為您執行遞歸查詢)

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