![检测 BIND 区域文件中的 CNAME 链](https://linux22.com/image/590054/%E6%A3%80%E6%B5%8B%20BIND%20%E5%8C%BA%E5%9F%9F%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%20CNAME%20%E9%93%BE.png)
是否有任何工具可以自动检测(并可选择纠正)BIND 区域文件中的 CNAME 链?
我正在尝试清理一个相当大的区域文件(15,000 多个资源记录),因此我正在寻找可以执行静态分析的工具来检测常见问题并帮助我走向最佳实践。
答案1
我还没有看到任何可以做到这一点的东西。看起来你只需要编写一个 Perl(或 Python 等)脚本就可以了。
最简单的方法是遍历所有行并创建 A 记录的哈希表。然后遍历文件并针对每个 CNAME 记录对 A 记录进行哈希查找。如果未找到,则将该行标记为不是有效的 CNAME 条目。
这应该非常简单。
答案2
我发现了一个商业程序叫做DNS 专家来自“Men & Mice”的这款产品可以使用许多预定义规则来彻底分析 DNS 区域,以符合标准并实现最佳实践。其中一条诊断规则允许它检测 CNAME 链。
但是,它只能扫描启用了 AXFR 的实时服务器。似乎没有任何方法可以扫描已复制到本地硬盘的区域文件。它自 2006 年以来就没有更新过,但 DNS 也没有改变。:-)