rndc介绍:
rndc是BIND安装包提供的一种控制域名服务运行的工具,可以实现在不重启BIND的情况下对zone及解析记录等配置进行更新。
软件包安装:
首先要安装BIND软件包才可以使用rndc工具,rndc和BIND可以不在同一台服务器上部署。
[root@localhost ~]# yum install -y bind
rndc配置部分:
生成rndc的通信密钥及配置文件,/dev/urandom是Linux下用来生成随机数的一个文件,这里使用-r选项调用它是为了生成通信密钥。
[root@localhost ~]# rndc-confgen -r /dev/urandom > /etc/rndc.conf
编辑刚刚生成的配置文件。
[root@localhost ~]# vim /etc/rndc.conf
转到第9行,其定义了要管理的BIND服务器的地址,按照需求对其进行修改,本实验中我的BIND服务器的地址是192.169.1.101.
default-server 192.168.1.101;
BIND配置部分:
使用vim打开rndc的配置文件,转到第十四行,此行直到末尾都是要加入到/etc/named.conf文件中的,加入后可以按照自己的需求进行修改,比如说第21行的inet选项是用来定义监听本服务器的哪些接口的(当然是监听和rndc相连的接口啦),如果想监听所有接口则将其改为0.0.0.0。第22行是定义此BIND服务器允许接受哪些rndc的管理,将127.0.0.1改成运行rndc的设备的IP地址就行。最后别忘了把注释去掉,否则配置文件是不生效的。
14 # Use with the following in named.conf, adjusting the allow list as needed: 15 # key "rndc-key" { 16 # algorithm hmac-md5; 17 # secret "YAkaS9u8kADIcBMslszUaw=="; 18 # }; 19 # 20 # controls { 21 # inet 127.0.0.1 port 953 22 # allow { 127.0.0.1; } keys { "rndc-key"; }; 23 # }; 24 # End of named.conf
以下是我的/etc/named.conf文件的完整配置(第40行到末尾是新增的配置),仅供参考,切勿复制。
运行BIND的服务器的IP:192.168.1.101
运行rndc的服务器的IP:192.168.1.100
1 // 2 // named.conf 3 // 4 // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS 5 // server as a caching only nameserver (as a localhost DNS resolver only). 6 // 7 // See /usr/share/doc/bind*/sample/ for example named configuration files. 8 // 9 10 options { 11 listen-on port 53 { any; }; 12 listen-on-v6 port 53 { ::1; }; 13 directory "/var/named"; 14 dump-file "/var/named/data/cache_dump.db"; 15 statistics-file "/var/named/data/named_stats.txt"; 16 memstatistics-file "/var/named/data/named_mem_stats.txt"; 17 allow-query { any; }; 18 recursion yes; 19 20 dnssec-enable yes; 21 dnssec-validation yes; 22 dnssec-lookaside auto; 23 24 /* Path to ISC DLV key */ 25 bindkeys-file "/etc/named.iscdlv.key"; 26 27 managed-keys-directory "/var/named/dynamic"; 28 }; 29 30 logging { 31 channel default_debug { 32 file "data/named.run"; 33 severity dynamic; 34 }; 35 }; 36 37 include "/etc/named.rfc1912.zones"; 38 include "/etc/named.root.key"; 39 40 # Use with the following in named.conf, adjusting the allow list as needed: 41 key "rndc-key" { 42 algorithm hmac-md5; 43 secret "YAkaS9u8kADIcBMslszUaw=="; 44 }; 45 # 46 controls { 47 inet 192.168.1.101 port 953 48 allow { 192.168.1.100; } keys { "rndc-key"; }; 49 }; 50 # End of named.conf
保存后重启named服务器
[root@localhost ~]# server named restart
使用rndc连接BIND并进行管理
在使用rndc连接BIND前一定要确保两台Linux服务器的时间同步,否则会报错(我做实验的时候卡在这个坑里整整一天)
可以手工修改系统时间也可以与NTP服务器同步,若你的实验用机器无法链接外网,又不想手工配置时间,则可以参考下面这篇文章,将其中一台机器配置为NTP,供另一台机器同步。
启动rndc并连接BIND。
[root@localhost ~]# rndc status WARNING: key file (/etc/rndc.key) exists, but using default configuration file (/etc/rndc.conf) version: 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 CPUs found: 1 worker threads: 1 number of zones: 19 debug level: 0 xfers running: 0 xfers deferred: 0 soa queries in progress: 0 query logging is OFF recursive clients: 0/0/1000 tcp clients: 0/100 server is up and running
可以看到,上面的输出信息中包含了一条警告,这个其实没什么影响的,如果你有强迫症可以使用下面这条命令开启动rndc,这样就不会看到那条警告了。
[root@localhost ~]# rndc -c /etc/rndc.conf status
rndc常用管理命令:
status #显示bind服务器的工作状态 reload #重新加载配置文件和区域文件 reload zone_name #重新加载指定区域 reconfig #重读配置文件并加载新增的区域 querylog #关闭或开启查询日志 dumpdb #将高速缓存转储到转储文件 (named_dump.db) freeze #暂停更新所有动态zone freeze zone [class [view]]#暂停更新一个动态zone flush [view] #刷新服务器的所有高速缓存 flushname name #为某一视图刷新服务器的高速缓存 stats #将服务器统计信息写入统计文件中 stop #将暂挂更新保存到主文件并停止服务器 halt #停止服务器,但不保存暂挂更新 trace #打开debug, debug有级别的概念,每执行一次提升一次级别 trace LEVEL #指定 debug 的级别, trace 0 表示关闭debug notrace #将调试级别设置为 0 restart #重新启动服务器(尚未实现) addzone zone [class [view]] { zone-options } #增加一个zone delzone zone [class [view]] #删除一个zone tsig-delete keyname [view]#删除一个TSIG key tsig-list #查询当前有效的TSIG列表 validation newstate [view]#开启/关闭dnssec