配置 RNDC(TCP 953)(Remote Name Daemon Control).note
一、配置 rndc 远程管理DNS:
1、被控端 配置(bind9 服务器):
(1)生成rndc密钥(dnssec密钥):
rndc-confgen
# 会在当前目录生成一个 rndc.key 文件

(2)调用rndc密钥,定义允许远程连接的地址:
vim named.conf
# include 引入rndc密钥,rndc密钥默认名称为“rndc-key”
# inet 定义本地rndc监听的地址(写本机地址或 127.0.0.1)[如果本机有多个网卡,可以写 inet *,这样就能够在所有网卡上监听(或定义多个 inet 字段也可以)]
## inet 可以定义多条
# port 定义本机允许rndc连接的端口(rndc监听的端口)
# allow 定义允许远程连接的IP地址
# keys 指定 rndc 密钥名称
或分开写:

或定义多条 inet:

systemctl restart bind9
·然后在本机防火墙放行 TCP 953 端口
2、控制端 配置:
(1)配置 RNDC:
不需要安装整个 bind9,只需要安装 bind9-utils
# 必须安装 bind9-utils 才会有 rndc命令(安装bind9默认安装bind9-utils):
apt install -y bind9-utils
which rndc# 先将 rndc密钥复制过来:
mkdir /etc/bind
scp root@192.168.10.1:/etc/bind/rndc.key /etc/bind/rndc.conf
# 编辑复制的密钥,新增 options:
vim /etc/bind/rndc.conf //这个文件不存在,是我们前面用 scp 创建的新增 options 字段

·测试:
# 常用命令:
rndc status //查看dns服务 整体状态
rndc reload //重载dns 配置(等于 systemctl reload bind9)
rndc reload example.com //只重载单独的区域
rndc refresh example.com //强制DNS从服务器从主服务器更新区域信息(必须在DNS从服务器上执行才有效)
rndc retransfer example.com //强制DNS从服务器丢弃当前区域信息,从主服务器重新获取区域信息(必须在DNS从服务器上执行才有效)
rndc flush //清空DNS 缓存
rndc stop //停止DNS 服务