如果我针对主机名运行 dig,我会得到相应的 cname,但是我会收到 NXDOMAIN 错误(不存在的域)。
如果我对我得到的 cname 运行 dig,我可以成功地将它解析为 IP 地址。它是可复制的。
在我现在所在的系统上总是这样,在其他系统上有时能用有时不能用,在其他系统上似乎一直能用。
如果我使用我指定的名称服务器(例如谷歌的公共名称服务器)运行,我可以成功解析主机名。
我只会责怪本地系统,但似乎我遇到的问题不止一个。
第二个域 (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
,而不是由 Amazon 引起的。据我了解,服务器通常会返回 CNAME 记录指向的 A 记录,作为节省带宽的答案的一部分(否则,这很可能是您的下一个问题)。但是,我认为他们不必这样做,而且我很确定一些特别迂腐的 DNS 服务器(我正在看着你,未打补丁的tinydns)不会在答案中包含 A 记录。
(编辑:正如 kworr 所指出的,如果 A 名称不在辖区内,那么您还依赖于服务器愿意为您执行递归查询的意愿)
如果你正确挖掘 CNAME,它就会出现。
直接从
dig
手册页:因此,您可以通过几种不同的方式查询它,但如果您希望获得结果,则始终需要指定类型:
dig @ns-1765.awsdns-28.co.uk alpha.nue.scorpion.example.net cname
结果: