我正在将我们办公室的 DNS 服务器迁移到具有 MySQL 后端的 powerdns。我们经常更改内部区域,因此简单的 SQL 查询或 Web Ui 比为每个 DNS 服务器编辑文本文件要好得多。
我已遵循本指南http://www.howtoforge.com/installing-powerdns-with-mysql-backend-and-poweradmin-on-debian-squeeze在干净的 Debian 7 安装上,然后使用 zone2sql 导入我们现有的绑定区域文件。但执行此操作后,在我的沙盒中我无法解析任何域名。
做了什么:
- 从 netinst 全新安装 Debian 7,无需安装额外软件包
- 按照上面提到的指南进行一些修改(无需手动设置数据库,因为它已经由包裹发布说明和来自 GitHub 的最新版本的 poweradmin 进行管理)
- 使用 zone2sql 工具导入现有绑定记录(从所有区域文件直接指向 named.conf)。一切顺利,没有任何错误或警告。然后将其输入到安装期间创建的 MySQL 数据库中。
- 发现 poweradmin 子进程在启动时崩溃,并删除了 /etc/poweradmin/pdns.d/pdns.local.bindbackend,因为据说这会阻止读取 pdns.local.gmysql 配置
之后,我尝试解析一些本地域名和一些公共域名。对于公共域名,它没有返回任何结果;对于本地域名,它返回“不允许递归”的 CNAME 记录,而对于 A 记录,它没有返回任何结果。但是,使用 bind 后,一切都正常。当我转到 poweradmin 区域列表时,我只能看到我们本地区域的记录,而看不到任何其他信息(意味着所有其他部分都完全为空),但对于本地区域,我可以看到所有记录都完好无损,如果是 CNAME,则指向正确的域名;如果是 A 记录,则指向正确的 IP 地址。
现在的问题是——我做错了什么或者我遗漏了什么?
答案1
通过安装 pdns-recursor 包并绑定 pdns 来监听外部接口(例如 192.168.1.x)并在内部接口(例如 127.0.0.1)上使用 recursor 来修复此问题。