如何为拥有自己的名称服务器的域名配置 BIND?

如何为拥有自己的名称服务器的域名配置 BIND?

我正在使用 BIND 9.10.3_P2 为 speedydrive.net 域设置 DNS 记录。该域本身在父服务器上有粘合记录,有 2 个 NS 服务器的 IP 地址。

一切看起来都很好,除了当我检查 DNS 是否正常时,我得到以下结果:

检查DNS:http://www.intodns.com/speedydrive.net

声称NS记录不匹配、SOA缺失等。到底是域名配置有问题,还是intodns检查工具的问题,报告了一些废话?如何检查(使用 Linux 命令行)域的 DNS 是否配置正确?

我以完全相同的方式配置了一个个人域(仅在不同的服务器 IP 地址上使用不同的绑定版本 9.10.1_P1),并且该域在 intodns 上根本没有报告任何错误。任何地方也没有防火墙。所以我很困惑。谢谢

答案1

该问题是由于使用大写的 DNS 名称之间的差异以及由于区分大小写问题而导致的 BIND 更改和(现在)有缺陷的脚本/命令之间的交互造成的。

这个网址check_dig 区分大小写,和这个一起 check_dig:预期答案现在不区分大小写应该可以解决应用程序/脚本级别的类似问题。

这是在 BIND 9.9.5 中引发上述行为的更改记录的地方:不区分大小写的响应压缩可能会导致混合大小写数据和不合格客户端的问题

答案2

可以使用 Linux 命令行工具whoisdig.

whois提供来自您的域名注册商的信息,最重要的是您的权威名称服务器:

 $ whois speedydrive.net
 ... lots of registration info ...
 Name Server: ns1.speedydrive.net
 Name Server: ns2.speedydrive.net
 DNSSEC: unsigned

dig是一个很好的直接查询 DNS 服务器的底层工具。虽然它的使用有很多细节,但基本用途是dig -t <type> <query> @<server name or IP>

$ dig -t ns speedydrive.net @ns1.speedydrive.net
...
;; ANSWER SECTION:
SPEEDYDRIVE.NET.        3600    IN      NS      NS2.SPEEDYDRIVE.NET.
SPEEDYDRIVE.NET.        3600    IN      NS      NS1.SPEEDYDRIVE.NET.
$ dig -t ns speedydrive.net @ns2.speedydrive.net
...
;; ANSWER SECTION:
SPEEDYDRIVE.NET.        3600    IN      NS      NS1.SPEEDYDRIVE.NET.
SPEEDYDRIVE.NET.        3600    IN      NS      NS2.SPEEDYDRIVE.NET.

所以这些对我来说看起来很有效。我什至尝试查询返回的(不同的)IP a.gtld-servers.net,他们还报告了 NS 记录。所以我没有看到任何与该报告中的注释一致的内容:

警告:您的一个或多个域名服务器未返回您的任何 NS 记录。

相关内容