Linux基础服务 ·

RNDC命令管理DNS服务器

rndc 是 BIND version 9 以后所提供的功能,他可以让你很轻松的管理你自己的 DNS 服务器! 包括可以检查已经存在 DNS 缓存当中的资料、重新更新某个 zone 而不需要重新启动整个 DNS , 以及检查 DNS 的状态与统计资料等等,它会开启使用  port 953。

不过,由于 rndc 可以很深入的管理 DNS 服务器,所以当然要进行一些管控! 管控的方式是经过 rndc 的设定来建立一支密钥 (rndc key),并将这支密钥相关的信息写入 named.conf 配置文件当中,重新启动 DNS 后, DNS 服务就能够藉由 rndc 这个指令来管理了! 事实上,新版的 distributions 通常已经主动的建立好 rndc key 了。

不过,如果你还是在日志文件当中发现一些错误,例如:

couldn't add command channel 127.0.0.1#953: not found

那就表示你 DNS 的 rndc key 没有设定好啦!需要先建立一把 rndc key ,然后加到 named.conf 当中去!可以使用 bind 提供的指令来进行这样的工作!

先建立 rndc key 的相关数据!

上面命令执行完给的说明已经很详细了,让我们将结果复制到 /etc/rndc.conf 和 /etc/named.conf 中并根据需要修改。

我们先修改 rndc.key 文件。

然后建立 rndc.conf 文件。

然后修改 named.conf 文件。

重启 named ,并查看启动日志确认。

建立了rndc key 并且启动 DNS ,同时你的系统也已经有 port 953 之后,我们就可以在本机执行 rndc 这个指令了。

rndc COMMAND

COMMAND:
reload: 重载主配置文件和区域解析库文件。
reload zonename: 重载区域解析库文件。
retransfer zonename: 手动启动区域传送, 而不管序列号是否增加。
notify zonename: 重新对区域传送发通知。
reconfig: 重载主配置文件。
querylog: 开启或关闭查询日志文件/var/log/message。
trace: 递增debug一个级别。
trace LEVEL: 指定使用的级别。
notrace: 将调试级别设置为 0。
flush:清空DNS服务器的所有缓存记录。


范例一:将目前 DNS 服务器的状态显示出来。

范例二:将目前系统的 DNS 统计数据记录下来。

范例三:将目前高速缓存当中的数据记录下来。

如果你在执行 rndc 指令时老是出现如下错误:

这表示你的 /etc/rndc.key 与 /etc/rndc.conf 内密钥的编码不同所致。 请你自行以上述的 rndc-confgen 的方式自行处理你的 rndc key ,并重新启动 named 即可! 用这东西管理,你就不需要每次都重新启动 named 了!

参与评论