我遇到了一个问题,一些 DNS 提供商无法从我们的权威 DNS 服务器获取数据。使用 dnschecker.org 等网站,我看到大约 30% 的节点报告 SERVFAIL,而不仅仅是遥远的国际节点。AT&T(美国)一直报告失败。其余 70%(OpenDNS、Google 等)返回了预期的记录。
防火墙上一切正常……没有列入黑名单的 IP 或过滤。BIND 运行正常,并正在处理查询。ISP 级别没有任何异常。
最终的原因是我们在注册商处设置的名称服务器是别名。
IE
nameserver at registrar = ns1.domain.net
ns1.domain.net IN CNAME ns1.domain.com
ns1.domain.com IN A 1.1.1.1
将它们切换到 A 记录即可解决问题(即将 ns1.domain.net 更改为 IN A 1.1.1.1)。
我的问题是... 该级别的 CNAME 是否违反了规范,但大多数 DNS 服务器并不关心,或者这只是“问题”服务器的一些奇怪的错误?
我只是想了解根本问题。我可能再也不会看到这种情况了,并且会避免使用 CNAME。是的,我知道我可以将注册商指向 ns1.domain.com,这可能是更有效的方法。但这是一个遗留域,编辑 DNS 记录比修改注册商(并等待传播时间)更容易。