rndc是BIND安装包提供的一种控制域名服务运行的工具,它可以运行在其他计算机上,通过网络与DNS服务器进行连接,然后根据管理员的指令对named进程进行远程控制,此时,管理员不需要DNS服务器的根用户权限。
使用rndc可以在不停止DNS服务器工作的情况进行数据的更新,使修改后的配置文件生效。在实际情况下,DNS服务器是非常繁忙的,任何短时间的停顿都会给用户的使用带来影响。因此,使用rndc工具可以使DNS服务器更好地为用户提供服务。
rndc与DNS服务器实行连接时,需要通过数字证书进行认证,而不是传统的用户名/密码方式。在当前版本下,rndc和named都只支持HMAC-MD5认证算法,在通信两端使用共享密钥。rndc在连接通道中发送命令时,必须使用经过服务器认可的密钥加密。为了生成双方都认可的密钥,可以使用rndc-confgen命令产生密钥和相应的配置,再把这些配置分别放入named.conf和rndc的配置文件rndc.conf中
1.执行rndc-confgen命令,得到密钥和相应的配置

  # Start of rndc.conf
  key "rndc-key" {
      algorithm hmac-md5;
      secret "Ats9ygxMNv9aVOXXwMgojQ==";
  };
  options {
      default-key "rndc-key";
      default-server 127.0.0.1;
     default-port 953;
 };
 # End of rndc.conf
 # Use with the following in named.conf, adjusting the allow list as needed:
 # key "rndc-key" {
 #   algorithm hmac-md5;
 #   secret "Ats9ygxMNv9aVOXXwMgojQ==";
 # };
 #
 # controls {
 #   inet 127.0.0.1 port 953
 #       allow { 127.0.0.1; } keys { "rndc-key"; };
 # };
 # End of named.conf
2.在/etc目录下创建rndc.conf文件,根据提示输入上述输出中不带注释的内容。

key "rndc-key" {
      algorithm hmac-md5;
      secret "Ats9ygxMNv9aVOXXwMgojQ==";
  };
  options {
      default-key "rndc-key";
      default-server 127.0.0.1;
     default-port 953;
 };
3.根据提示,把下列内容放入原有的/etc/named.conf文件后面。

key "rndc-key" {
    algorithm hmac-md5;
    secret "Ats9ygxMNv9aVOXXwMgojQ==";
  };
  controls {
    inet 127.0.0.1 port 953
        allow { 127.0.0.1; } keys { "rndc-key"; };
  };
4.创建/etc/rndc.key文件,将上述key部分放入该文件

key "rndc-key" {
    algorithm hmac-md5;
    secret "Ats9ygxMNv9aVOXXwMgojQ==";
  };
重启named进程后,就可以使用rndc工具对named进行控制了。

rndc常用命令:

直接输入rndc查看帮助

reload 重新装入配置文件和区域

reload zone [class [view]] 重新装入单个区域

refresh zone [class [view]] 安排区域的立即维护

reconfig 仅重新装入配置文件和新区域

stats 将服务器统计信息写入统计文件中

querylog 切换查询日志

dumpdb 将高速缓存转储到转储文件 (named_dump.db)

stop 将暂挂更新保存到主文件并停止服务器

halt 停止服务器,但不保存暂挂更新

trace 将调试级别增加一级

trace level 更改调试级别

notrace 将调试级别设置为 0

flush 刷新服务器的所有高速缓存

flush [view] 为某一视图刷新服务器的高速缓存

status 显示服务器的状态

restart 重新启动服务器(尚未实现)