网络诊断工具

DNS 健康检测

完整的委派与 DNS 诊断报告

什么是 DNS 健康检测?

DNS 健康检测会从头到尾检查一个域名是如何委派和配置的,而不仅仅是某一种记录类型。它先向父级(TLD)服务器询问它们为你的域名发布了什么,再直接询问你自己的域名服务器,然后将两者进行比对。父级与你的服务器之间的不一致——缺失的 glue、互相矛盾的 NS 列表、不同步的 SOA 序列号、lame 服务器或开放递归的域名服务器——正是那些导致 DNS 缓慢、时好时坏或悄无声息地失效的问题。IPeek 会运行每一项检查,并用通俗的语言告诉你每一项为什么重要以及如何修复。

父级委派、glue 与找到你域名的解析链

对你域名的每一次查询都从父级区域开始——也就是 TLD 注册局(例如 .es 或 .com)——它保存着将解析器指向你域名服务器的 NS 记录。如果这些域名服务器位于你自己的域名之内,父级还必须以 "glue" 的形式发布它们的 IP 地址,否则解析器就会陷入先有鸡还是先有蛋的循环。一个健康的委派是父级与你自己的服务器在同一组 NS 上保持一致,并在需要的地方提供 glue。当两者不一致时,部分解析器会沿用过时的信息,于是你的更改对一些用户生效,对另一些用户却不生效。

域名服务器健康:冗余、权威性与递归

RFC 2182 建议在不同网络上部署多台域名服务器,这样单点故障就永远不会让你的域名下线。每一台都必须对你的区域作出权威应答——做不到这一点的 "lame"(无授权)服务器是一个隐蔽的可靠性漏洞。你的权威服务器还应当拒绝为陌生人提供递归:一台开放递归的域名服务器可能被滥用于缓存投毒和 DDoS 放大攻击。IPeek 会直接查询你的每一台域名服务器,确认它们能够响应、作出权威应答、彼此一致、支持 TCP 并保持递归关闭。

SOA、MX 与根域名的合理性检查

SOA 记录承载着你区域的序列号和定时数值;每一台域名服务器都必须报告相同的序列号,否则你的区域就处于不同步状态,更改也会不均匀地传播。序列号应遵循 YYYYMMDDnn 约定,refresh/retry/expire/minimum 定时器应落在 RFC 推荐的范围之内。在邮件这一侧,MX 记录必须是能解析到公网地址的主机名(绝不能是裸 IP 或 CNAME)。最后,根域名(你的裸域名)应当发布一条地址记录而不是 CNAME,因为 RFC 1912 禁止 CNAME 与其他记录并存。

常见问题

这和普通的 DNS 查询有什么区别?

普通的 DNS 查询向你展示的是通过递归解析器看到的记录。健康检测则更进一步:它直接查询父级 TLD 服务器以及你自己的每一台域名服务器,然后将它们进行比对。这让它能够捕获普通查询所掩盖的委派问题——缺失的 glue、父子之间的 NS 不一致、lame 或互相矛盾的域名服务器,以及不同步的 SOA 序列号。

什么是 glue,缺失 glue 记录为什么很重要?

Glue 是某台域名服务器的 IP 地址,由父级区域与 NS 记录一并发布。当你的域名服务器位于它们所服务的同一域名之内时(例如 ns1.example.com 服务 example.com),glue 是必需的,否则解析器在解析任何东西之前都得先解析这台域名服务器。这种情况下缺失 glue 会导致解析中断;如果你的域名服务器位于另一个域名上,glue 则是可选的,只能省去一次额外查询。

我的域名服务器为什么不应该允许递归?

权威域名服务器应当只为它们托管的区域作答。一台为任何人提供递归的域名服务器(即"开放解析器")可能被滥用于 DNS 放大式 DDoS 攻击,也更容易遭受缓存投毒。如果健康检测标记出开放递归,请在权威服务器上禁用递归,或把权威角色与递归角色分离到不同的主机上。

如果我的域名服务器在 SOA 序列号上不一致,意味着什么?

SOA 序列号是你区域的版本号。当你的域名服务器报告不同的序列号时,至少有一台在提供过时的数据——通常是某台未能从主服务器传输到最新区域的从服务器。结果就是解析器恰好命中哪台服务器,答案就随之不一致。请检查区域传输(AXFR/IXFR)、主服务器的 NOTIFY 设置以及 SOA 的 refresh 定时器。

只有一条 MX 记录或两台域名服务器是问题吗?

两者都不算错误,但都是单点故障。只有一条 MX 时,如果那台服务器宕机足够久,邮件就可能丢失;一条备用 MX 能增加韧性。两台域名服务器按 RFC 2182 是可以接受的,但在不同网络上部署三台或更多会更安全。健康检测会把这些标记为警告而非失败——它们值得改进,但并非紧急情况。

相关工具

Deutsch | English | Español | Français | Italiano | Português | Русский | Українська | 日本語 | 简体中文 | 한국어