将 Bind-DLZ 数据导出到传统的 named.conf?

将 Bind-DLZ 数据导出到传统的 named.conf?

我想将基于 Bind-DLZ 的设置转换为基于 PowerDNS 的设置。为此,我想使用 PowerDNS 附带的 zone2sql 工具。遗憾的是,此工具直接跳过了我的 中定义的 DLZ 区域named.conf。我一直在寻找一个脚本,可以将 DLZ 数据库转储到传统 DNS 文件和named.conf引用它们的文件中,但一直没有找到。

有这样的工具吗?如果有,能否提供链接给我?

答案1

从 Bind-DLZ 数据库中提取 DNS 信息的最简单方法是使用AXFR查询数据库中的每个“区域”。

首先,通过使用适合您的数据库类型的客户端(例如mysql)连接到数据库并发出语句来确定数据库中存储的区域:

SELECT DISTINCT zone FROM dns_records;

其中,该dns_records表是存放您的 DNS 信息的表。

其次,确保 Bind 服务器允许来自您将执行提取的主机的传输请求。编辑named.conf并相应地调整选项块(然后重新启动 Bind):

options {
  # Allow host 192.168.1.5 to issue AXFR queries to this server
  allow-transfer { 192.168.1.5; };
};

第三,对于从 DLZ 数据库检索到的列表中的每个区域,发出以下命令:

$ dig AXFR @your-dns-server.example.com a.zone.com > a.zone.com.zonefile

其中“a.zone.com”是列表中的区域(例如“example.com”),“a.zone.com.zonefile”是将使用该区域的条目创建的文件。

最后,使用zone2sql工具将每个区域文件转换为 PowerDNS 数据库。

相关内容