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,供另一台机器同步。
CentOS 6下配置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