尽管递归DNS查找成功,但是为什么域名服务器更改后DNS无法解析?


12

我最近将自己拥有的域从Cloudflare迁移到了Netlify DNS,因此必须更新我的域名服务器。当我运行绕过DNS缓存的递归DNS查找时,似乎一切都已正确设置:

$ dig howtogit.net +trace
(output truncated)
howtogit.net.       20  IN  A   159.65.199.87
;; Received 57 bytes from 198.51.44.1#53(dns1.p01.nsone.net) in 18 ms

但是,常规DNS查找失败:

$ nslookup howtogit.net                                                                               
Server:     192.168.1.1
Address:    192.168.1.1#53

** server can't find howtogit.net: SERVFAIL

我假设如果缓存有问题,Cloudflare仍会解决查询,但不会。查找8.8.8.8(Google的DNS)也失败:

$ dig @8.8.8.8 howtogit.net

; <<>> DiG 9.10.6 <<>> @8.8.8.8 howtogit.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 63809
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;howtogit.net.          IN  A

;; Query time: 43 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Sep 23 13:05:50 CEST 2018
;; MSG SIZE  rcvd: 41

由于缓存了DNS记录,因此我还尝试刷新 NS和A记录的Google DNS缓存。尽管更改已在10多个小时前发生,但我仍然得到相同的结果。

我的配置不正确吗?如何确保我的DNS可以再次正确解析?


1
在这种情况下,类似的工具dnsviz.net应该可以轻松地向您显示DNSSEC问题。实际上,您可以在此处清楚地看到问题:dnsviz.net/d/howtogit.net/W6d5WA/dnssec ,可以将其与当前的工作版本进行比较:dnsviz.net/d/howtogit.net/W6kJlg/dnssec
Patrick Mevzek

是的,我知道了。最终,我决定迁移回Cloudflare,因为Netlify DNS不支持DNSSEC。但是很高兴知道!
Pieter

DNSSEC确实很难。它提供的功能与所需的步骤之间的折衷。在相关情况下,还有一个故障排除提示:如果digSERVFAIL失败,但是重做添加的内容完全相同+cd,并且不再失败,则可能是问题与DNSSEC有关。+cd禁用DNSSEC检查,因此可能存在差异。但是SERVFAIL可能会发生很多问题,DNS中没有(目前)扩展的错误代码...
Patrick Mevzek

Answers:


24

似乎是howtogit.net他曾经签名过的区域,并且在切换名称服务器后不再签名。

但是,您将旧DS记录保留在原位,表示必须使用某些特定的密钥对区域进行签名。

删除DS记录或再次对区域签名,并DS根据需要更新记录(该DS记录通过您的注册服务商进行管理)。

如果您查看相关dig +trace输出的尾端,那么实际上很明显这是必须的(DS作为引用的一部分,但DNSKEY在权威端则没有,或者在查询其他类型时仅没有签名):

$ dig +trace +all howtogit.net DNSKEY

...

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63298
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;howtogit.net.                  IN      DNSKEY

;; AUTHORITY SECTION:
howtogit.net.           172800  IN      NS      dns1.p01.nsone.net.
howtogit.net.           172800  IN      NS      dns2.p01.nsone.net.
howtogit.net.           172800  IN      NS      dns3.p01.nsone.net.
howtogit.net.           172800  IN      NS      dns4.p01.nsone.net.
howtogit.net.           86400   IN      DS      2371 13 2 F7822E035739507BFB9ED504B65FFE7A95698E58C069EF1DE754EED0 55E6799F
howtogit.net.           86400   IN      RRSIG   DS 8 2 86400 20180927051931 20180920040931 7934 net. POLNdGPgCCeF6ClG4ro1mkUI5DpqUuuLLeR4WCly1L5GbOTgPnzg02Nx 2Sse2dYDLJLB1EQYotZkvVm8GNFS5iE8UQlmp4GA3yxTgUeifw5PX6Eh kiJSip37/CyGCTy6OMPoVeMgQjLnrxt1aAOsnO5BszeGY7gD6ee/XHMO zc4=

;; ADDITIONAL SECTION:
dns1.p01.nsone.net.     172800  IN      A       198.51.44.1
dns2.p01.nsone.net.     172800  IN      A       198.51.45.1
dns3.p01.nsone.net.     172800  IN      A       198.51.44.65
dns4.p01.nsone.net.     172800  IN      A       198.51.45.65

;; Query time: 159 msec
;; SERVER: 2001:503:231d::2:30#53(2001:503:231d::2:30)
;; WHEN: Sun Sep 23 11:35:52 UTC 2018
;; MSG SIZE  rcvd: 402

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53062
;; flags: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;howtogit.net.                  IN      DNSKEY

;; AUTHORITY SECTION:
howtogit.net.           3600    IN      SOA     dns1.p01.nsone.net. hostmaster.nsone.net. 1537613509 43200 7200 1209600 3600

;; Query time: 1 msec
;; SERVER: 198.51.45.65#53(198.51.45.65)
;; WHEN: Sun Sep 23 11:35:52 UTC 2018
;; MSG SIZE  rcvd: 103

$

1
您发现...看起来像我在迁移之前忘记禁用DNSSEC一样。我使用注册商删除了DS记录,并且8.8.8.8开始立即正确解析域。
Pieter

5
@Pieter没问题。感谢您不要混淆细节,否则将使这些类型的问题不必要地难以回答。
哈坎·林德奎斯特(HåkanLindqvist)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.