从属 DNS 服务器(绑定)区域文件已传输但数据不可读

从属 DNS 服务器(绑定)区域文件已传输但数据不可读

我已经使用 bind 在 Linux 上设置了一个从属 DNS 服务器。启动命名服务时,区域文件被传输到,slaves/但文件中的信息看起来像是奇怪的计算机符号(我不确定这是什么正确的术语),其中有符号和方块,如下面的代码片段。

有人知道是什么原因造成的吗?我是不是错过了一个重要的步骤?

在此处输入图片描述

答案1

这是 Bind 9.10 的默认行为(至少)。请参阅ftp://ftp.isc.org/isc/bind9/cur/9.10/doc/arm/Bv9ARM.ch06.html#zone_statement

masterfile-format
Specifies the file format of zone files (see the section called

“附加文件格式”中介绍了如何将文件转换为文本格式。默认值为 text,这是标准的文本表示形式,但从属区域除外,其默认值为 raw。

如果您需要检查从属服务器上区域文件的内容,您可以在配置文件中将此设置更改为“文本”或用于named-compilezone转储内容。

答案2

你没有做错什么。在 BIND 9.9 及更高版本中,区域type slave以原始二进制格式存储在磁盘上。假设人类只需要手动调整主服务器上区域文件的内容。您可以阅读有关各种格式的更多信息这里

如果您感兴趣的只是验证复制到辅助服务器的数据(并且比较记录中的序列号SOA还不够),您可以使用named-compilezone将文件转换回text格式:

$ file example.com.zone
example.com.zone: data
$ named-compilezone -f raw -F raw -o example.com.zone.out example.com example.com.zone
zone example.com/IN: loaded serial 2016090801
dump zone to example.com.out...done
OK
$ file example.com.zone.out
example.com.zone.out: ASCII text

我本来想详细说明如何更改区域文件格式,但 Paul 抢先了一步。我建议您不要管它,除非需要某种形式的自动化。通常,比较已加载区域的序列号就足够了。

相关内容