区域文件格式问题,dnsjava 解析器崩溃 - BIND 9



我正在制作一个应用程序,它使用解析器从DNS解析所有主区域,我正在使用的解析器来自dnsjava库(org.xbill.DNS.Master)。我正在解析的所有区域都已通过 rndc 添加到 BIND 9 中。我面临的问题是某些区域文件没有解析,解析器给出错误

@ is not an absolute name

下面给出了一个例子,这个区域的名称是 pensoul.my,它的文件看起来像,

@ 1800 SOA ns5.mydns.my. dnsadmin.mydns.my.  2015070201 3h 1h 1w 30m
@ 84600 NS ns5.mydns.my.
@ 84600 NS ns6.mydns.my.
@ 3600 A 202.190.174.39
www 3600 A 202.190.174.39

在解析此内容以及所有具有此格式的区域时,我收到绝对名称错误。

为了检查此区域文件的格式,我使用了命令,

named-checkzone pensoul.my *filepath*

它给出的状态为 OK,这意味着文件格式没有任何明显的问题。

我是否需要使用另一个解析器,或者有没有解决方法?

从你说的话来看,听起来解析器要么有问题,要么至少给你一个误导性的错误消息。 @表示区域文件中的当前原点。根据 RFC,当前源可以通过 $ORIGIN 指令、$INCLUDE 指令或加载区域文件的例程的参数来设置。在您的情况下,BIND 将使用文件名作为"例程加载的参数"情况。您的 Java 解析器似乎没有。这可能是因为您未能正确调用它,或者因为它有问题并且无法处理外部情况。您必须在代码和/或库文档中查找它。

相关内容

  • 没有找到相关文章

最新更新