有点背景 – 我正在构build一个工具,除了做一些事情还允许用户pipe理Azure DNS。 在我的应用程序中有一个function,用户可以导出DNS设置来创build区域文件。 使用互联网上的各种资源(例如https://en.wikipedia.org/wiki/Zone_file#File_format和https://tools.ietf.org/html/rfc1035 ),我可以创build一个区域文件。
我所苦苦挣扎的是如何validation,如果我创build的区域文件是正确的或不基于RFC 1035 。 有没有validation区域文件的编程方式? 或者可能是一些PowerShell脚本或我可以用来validation文件的系统/第三方工具。
作为一个方面说明,我使用GoDaddy的Web界面导入区域文件,它工作得很好。
我要借用NSD文档中非常适用的一段话:
https://www.nlnetlabs.nl/projects/nsd/documentation.html
DNS(RFC 1035)区域文件的语法
前面:为DNS区域文件写一个干净的词法分析器/文法是不可能的。 起初看起来很容易做出这样一个野兽,但是当你开始实施它时,细节使得它变得混乱。
如果权威名称服务器的作者这样认为,那么试图自己实现一个不到商业产品的东西可能是愚蠢的事情。 如果这是你为自己的公司使用build立的东西,我build议使用一个区域validation工具,与stream行的名称服务器软件一起提供。 一个例子就是BIND的named-checkzone ,但是我不打算在这些工具之间进行特性烘焙,因为产品推荐问题不在话下。 你需要在这里做你自己的研究。