BIND9上的二进制区域文件


8

DNS主区域文件已传输到从设备,但我无法读取该区域文件:

> less db.example.com

"db.example.com "may be a binary file.  See it anyway?

这是在我使用以下命令后发生的:

cp -r /usr/local/sbin/* /usr/sbin/.

我安装了绑定V.9.9而不是V.9.6。我希望能够以纯文本格式读取区域文件。


6
你为什么cp -r /usr/local/sbin/* /usr/sbin/.???
Gevial

1
我会说:重新安装服务器和所有内容。快捷方式可能只是重新安装“ world”(或“ sbin”部分),然后从“ / usr / local / sbin”中删除所有添加的文件。
Ouki

该DNS文件是否真的是二进制文件(或者是否存在一些使“较少”不匹配的控制字符)?
Ouki

可能很简单,例如文件中的不可打印控制字符,或者您的从站上的区域数据可能确实以原始格式存储,因为您使用的是BIND 9.9,在这种情况下,请参见下面的答案-您如果您只想查看文件,可以使用named.compilezone从一种格式更改为另一种格式。
Michael McNally

Answers:


23

默认情况下,BIND 9.9中的从属区域数据文件为“原始”格式。 您可以使用BIND附带的named-compilezone实用程序将“原始”格式的区域文件转换为“文本”格式。

原始文字:

# convert raw zone file "example.net.raw", containing data for zone example.net,
# to text-format zone file "example.net.text"
#
#   (command)     (format options)   (output file)  (zone origin) (input file)
named-compilezone -f raw -F text -o example.net.text example.net example.net.raw

文字转为原始:

# convert text format zone file "example.net.text", containing data for zone
# example.net, to raw zone file "example.net.raw"
#
#   (command)     (format options)   (output file) (zone origin)  (input file)
named-compilezone -f text -F raw -o example.net.raw example.net example.net.text

谢谢。有2个文件。第一个文件是db-HdPKbJ2m(原始文件不是二进制文件)和db.example.com(二进制文件),我使用的命令是这样的:named-compilezone -f raw -F text -o db.example.com db-HdPKbJ2m db.example.com但是发生了此错误。dns_master_load: example.com: not at top of zone dns_master_load: not at top of zone zone db-HdPKbJ2m/IN: loading from master file db.example.com failed: not at top of zone zone db-HdPKbJ2m/IN: not loaded due to errors.
user1044942

系统上的某些内容可能以某种方式损坏了区域文件。我的建议是,如果文件读取不正确,我将在从属服务器上停止服务器,删除损坏的区域文件(或者,如果愿意,重命名它们以将其移开),然后重新启动从属服务器。它应该从主机重新传输区域内容。
Michael McNally 2013年

感谢您的启发。仅供参考,在我这边转储一个只有628个条目的11 KB区域文件要花费(!)5(!)分钟(!)。不,它既不受IO限制,也不受CPU限制。(这可能必须称为绑定魔术。)另一个有趣的问题:为什么我需要指定区域名称?该信息是否已在文件中?!(好吧,我们称其为黑暗绑定的秘密。)PS:使用该选项-i none,只需花费一秒钟的时间。
Tino

7

或者只是编辑您的named.conf并使用以下选项:

Masterfile-Format Text;

您可以在每个区域选项中相同。


有可能在全球范围内这样做吗?
naught101 '16

是的,只需将其放入named.conf.options
VBnoob
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.