DNS 05-rndc介绍及使用

rndc简介

  • rndc -- Remote Name Domain Controllerr
  • 一个远程管理bind的工具。
  • 通过这个工具可以在本地或者远程了解当前服务器的运行状况。
  • 可以对服务器进行关闭、重载、刷新缓存、增加删除zone等操作。

rndc原理

  • 使用rndc可以在不停止DNS服务器工作的情况进行数据的更新,使修改后的配置文件生效。
  • 在实际情况下,DNS服务器是非常繁忙的,任何短时间的停顿都会给用户的使用带来影响。因此,使用rndc工具可以使DNS服务器更好地为用户提供服务。
  • 在使用rndc管理bind前需要使用rndc生成一对密钥文件,一半保存于rndc的配置文件中,另一半保存于bind主配置文件中。
  • rndc的配置文件为/etc/rndc.conf,在CentOS或者RHEL中,rndc的密钥保存在/etc/rndc.key文件中。
  • rndc默认监听在953号端口(TCP),其实在bind9中rndc默认就是可以使用,不需要配置密钥文件。
  • rndc与DNS服务器实行连接时,需要通过数字证书进行认证,而不是传统的用户名/密码方式。
  • 在当前版本下,rndc和named都只支持HMAC-MD5认证算法,在通信两端使用预共享密钥。 在当前版本的rndc和named中,唯一支持的认证算法是HMAC-MD5,在连接的两端使用共享密钥。
  • 它为命令请求和名字服务器的响应提供 TSIG类型的认证。所有经由通道发送的命令都必须被一个服务器所知道的 key_id 签名。
  • 为了生成双方都认可的密钥,可以使用rndc-confgen命令产生密钥和相应的配置,再把这些配置分别放入named.conf和rndc的配置文件rndc.conf中。

rndc常用命令

查看帮助

rndc -h

显示bind服务器的工作状态

rndc status

重新加载配置文件和区域文件

rndc reload

重新加载指定区域

rndc reload zone_name

重读配置文件并加载新增的区域

rndc reconfig

关闭或开启查询日志

rndc querylog

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

rndc dumpdb
  • 需要设置cache文档输入目录,在named.conf里面设置dump-file "/var/named/data/cache_dump.db"即为dns cache输入文档。
  • 注意了这些设置,运行rndc -dumpdb命令后就会在/var/named/data/目录下导出DNS cache内容,用more cache_dump.db进行查看。

暂停更新所有动态zone

rndc freeze

暂停更新一个动态zone

rndc freeze zone [class [view]]

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

rndc flush [view]

为某一视图刷新服务器的高速缓存

rndc flushname name

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

rndc stats

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

rndc stop

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

rndc halt

打开debug, debug有级别的概念,每执行一次提升一次级别

rndc trace

指定 debug 的级别, trace 0 表示关闭debug

  • 调试:显示程序运行中的详细信息(会产生I/O,正常情况下建议关闭)
  • 调试级别:0,1,2,3...
  • 提升调试级别:
rndc trace
rndc trace LEVEL

打开查询日志:记录查询动作(会增加磁盘I/O)

rndc querylog

将调试级别设置为 0

rndc notrace

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

rndc restart

增加一个zone

rndc addzone zone [class [view]] { zone-options }

删除一个zone

rndc delzone zone [class [view]]

删除一个TSIG key

rndc tsig-delete keyname [view]

询当前有效的TSIG列表

rndc tsig-list

开启/关闭dnssec

rndc validation newstate [view]

rndc远程连接

  • 命令后面可以跟"-s"和"-p"选项连接到远程DNS服务器,以便对远程DNS服务器进行管理
  • 但此时双方的密钥要一致才能正常连接。
  • 在设置rndc.conf时一定要注意key的名称和预共享密钥一定要和named.conf相同,否则rndc工具无法正常工作。
rndc -c /etc/rndc.conf -s 127.0.0.1 -p 953 status

rndc实例

1、查看DNS状态

[root@dns01 log]# 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.62.rc1.el6_9.5
CPUs found: 8
worker threads: 8
number of zones: 2
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is ON
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
[root@dns01 log]#

2、使用rndc动态添加一个zone,并在主配置文件named.conf全局配置options下添加 allow-new-zones yes;

# 创建zone文件
vi /var/named/zone/abc.com.zone

# 添加zone
rndc  addzone abc.com '{ type master; file  "zone/abc.com.zone";};'

# 可以使用如下指定view:
addzone abc.com IN view_name '{type master; file "zone/abc.com.zone";keys{key;};};'

# 检查dig @192.168.36.54 www.abc.com A
原文地址:https://www.cnblogs.com/liangjingfu/p/9480749.html