使用 DNS 协议“Pinging”

使用 DNS 协议“Pinging”

除了发出查找请求之外,是否有公认的“良好实践”来检查与 DNS 服务器的网络连接是否正常运行,以及服务器的响应是否最低?以 Nagios 的代码为例,我注意到它似乎面向“这个名称是否解析?”而不是“服务器还好吗?”。

我尝试过空查询,但它似乎被忽略了。我尝试过请求服务器状态,虽然有些响应(通常是“未实现”),但另一些则忽略该请求。我更喜欢比依赖 ping 更好的东西,因为我见过很多忽略 ping 的服务器系统,并且因为搞乱功能等会带来额外的麻烦。

目前,我怀疑唯一一致可靠的解决方案是查找类似 google.com 的内容,假设服务器将缓存此内容,从而花费最少的精力来响应:因为我需要每隔几分钟执行此操作,所以我不需要想让它的主人不高兴。

答案1

RFC 6303列出了许多 DNS 区域,基本上每个 DNS 服务器都应该能够响应,基本上是为了阻止这些查询不必要地传播到 DNS 层次结构的根(如果这些区域不用于任何本地目的)。

其中最古老且最著名的是环回网络的反向区域,特别是 IPv4 地址 127.0.0.1(即 FQDN 1.0.0.127.in-addr.arpa.)的 PTR 记录。基本上每个 DNS 服务器应该无需查询任何其他 DNS 服务器即可提供该功能。

因此,虽然dig -x 127.0.0.1 @dns-server-address从技术上讲是对特定记录的查询,但它实际上适用于“服务器是否正常?”测试,因为这是一个记录每一个DNS 服务器应该能够以最小的努力进行解析,并且无需联系任何其他 DNS 服务器。

对名称的查询localhost.实际上应该同样好,只需注意,您应该在末尾显式包含句号,以表明您正在查询的名称已经完全限定,以防止您正在使用的工具可能添加您的本地域名后缀可能会导致结果出现偏差。

相关内容