Domain-Name-System
為什麼我可以解析這個主機名而不是這個主機名的 cname?
如果我對主機名執行 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 名稱不在管轄範圍內,那麼您還依賴於伺服器願意為您執行遞歸查詢)