BIND 8 ndc 和 BIND 9 rndc 名称服务器控制工具不向后兼容。rndc 不能与 BIND 8 名称服务器对话,ndc 不能与 BIND 9 名称服务器对话。功能、选项、缺省操作模式以及配置文件要求都已更改。 因此,在 BIND 9 服务器中使用 ndc 会导致功能丧失或操作不安全。有关更多信息,请参见 rndc(1M) 手册页。
BIND 8 中的 ndc 与 BIND 9 中的 rndc 之间最显著的差别在于 rndc 需要自己的配置文件 rndc.conf。此文件可由 rndc-confgen 命令生成。rndc.conf 文件可以指定将由哪个服务器进行控制及该服务器应使用算法。
options { default-server localhost; default-key "rndc-key"; }; key "rndc-key" { algorithm hmac-md5; secret "qPWZ3Ndl81aBRY9AmJhVtU=="; }; |
controls { inet * allow { any; } keys { "rndc-key"; }; }; key "rndc-key" { algorithm hmac-md5; secret "qPWZ3Ndl81aBRY9AmJhVtU=="; }; |
ndc 和 rndc 实用程序都使用控制通道来向名称服务器发送信息以及从该服务器中检索信息。但是,这两个实用程序之间存在差别。
在 BIND 8 中,ndc 可以使用 AF_UNIX 域套接字(UNIX 控制通道)或 TCP/IP 套接字(inet 控制通道)。缺省情况下,ndc 不需要 /etc/named.conf 中提供的任何支持,因为 BIND 8 服务器使用 UNIX 域套接字,且路径 (/var/run/ndc.d/ndc) 已编译到 in.named 中。
但对于 BIND 9,rndc 只使用经过验证的 TCP/IP inet 控制通道,因而不与 BIND 8 向后兼容。在 BIND 9 服务器中,不存在对控制通道的 UNIX 域套接字支持。
使用 rndc 时,需要指定用于与名称服务器通信的 'key' 子句。BIND 9 服务器和 rndc 客户机必须共享同一密钥(在 /etc/named.conf 和 /etc/rndc.conf 中定义)。 在 BIND 9 中使用 BIND 8 控制项将产生错误消息。
从 ndc 到 rndc 实现,一些命令选项已更改。其中包括 -c 选项,该选项在 BIND 9 中具有不同的语法。因此,要在 BIND 9 中指定控制通道,请使用 rndc -s <server> -p <port>。
以下列表介绍 rndc 命令。
重新装入配置文件和区域
重新装入单个区域
安排区域的立即维护
仅重新装入配置文件和新区域
将服务器统计信息写入统计文件中
切换查询日志
将高速缓存转储到转储文件 (named_dump.db)
将暂挂更新保存到主文件并停止服务器
停止服务器,但不保存暂挂更新
将调试级别增加一级
更改调试级别
将调试级别设置为 0
刷新服务器的所有高速缓存
为某一视图刷新服务器的高速缓存
显示服务器的状态
重新启动服务器(尚未实现)