rndc(Remote Name Domain Controllerr)是一个远程管理bind的工具,通过这个工具可以在本地或者远程了解当前服务器的运行状况,也可以对服务器进行关闭、重载、刷新缓存、增加删除zone等操作。  
使用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中。

一、语法

  1. # /home/slim/bind/sbin/rndc -h
  2. Usage: rndc [-b address] [-c config] [-s server] [-p port]
  3. [-k key-file ] [-y key] [-V] command
  4. command is one of the following:
  5. addzone zone [class [view]] { zone-options }
  6. Add zone to given view. Requires new-zone-file option.
  7. delzone zone [class [view]]
  8. Removes zone from given view. Requires new-zone-file option.
  9. dumpdb [-all|-cache|-zones] [view ...]
  10. Dump cache(s) to the dump file (named_dump.db).
  11. flush         Flushes all of the server's caches.
  12. flush [view]  Flushes the server's cache for a view.
  13. flushname name [view]
  14. Flush the given name from the server's cache(s)
  15. flushtree name [view]
  16. Flush all names under the given name from the server's cache(s)
  17. freeze        Suspend updates to all dynamic zones.
  18. freeze zone [class [view]]
  19. Suspend updates to a dynamic zone.
  20. halt          Stop the server without saving pending updates.
  21. halt -p       Stop the server without saving pending updates reporting
  22. process id.
  23. loadkeys zone [class [view]]
  24. Update keys without signing immediately.
  25. notify zone [class [view]]
  26. Resend NOTIFY messages for the zone.
  27. notrace       Set debugging level to 0.
  28. querylog newstate
  29. Enable / disable query logging.
  30. reconfig      Reload configuration file and new zones only.
  31. recursing     Dump the queries that are currently recursing (named.recursing)
  32. refresh zone [class [view]]
  33. Schedule immediate maintenance for a zone.
  34. reload        Reload configuration file and zones.
  35. reload zone [class [view]]
  36. Reload a single zone.
  37. retransfer zone [class [view]]
  38. Retransfer a single zone without checking serial number.
  39. secroots [view ...]
  40. Write security roots to the secroots file.
  41. sign zone [class [view]]
  42. Update zone keys, and sign as needed.
  43. signing -clear all zone [class [view]]
  44. Remove the private records for all keys that have
  45. finished signing the given zone.
  46. signing -clear <keyid>/<algorithm> zone [class [view]]
  47. Remove the private record that indicating the given key
  48. has finished signing the given zone.
  49. signing -list zone [class [view]]
  50. List the private records showing the state of DNSSEC
  51. signing in the given zone.
  52. signing -nsec3param hash flags iterations salt zone [class [view]]
  53. Add NSEC3 chain to zone if already signed.
  54. Prime zone with NSEC3 chain if not yet signed.
  55. signing -nsec3param none zone [class [view]]
  56. Remove NSEC3 chains from zone.
  57. stats         Write server statistics to the statistics file.
  58. status        Display status of the server.
  59. stop          Save pending updates to master files and stop the server.
  60. stop -p       Save pending updates to master files and stop the server
  61. reporting process id.
  62. sync [-clean] Dump changes to all dynamic zones to disk, and optionally
  63. remove their journal files.
  64. sync [-clean] zone [class [view]]
  65. Dump a single zone's changes to disk, and optionally
  66. remove its journal file.
  67. thaw          Enable updates to all dynamic zones and reload them.
  68. thaw zone [class [view]]
  69. Enable updates to a frozen dynamic zone and reload it.
  70. trace         Increment debugging level by one.
  71. trace level   Change the debugging level.
  72. tsig-delete keyname [view]
  73. Delete a TKEY-negotiated TSIG key.
  74. tsig-list     List all currently active TSIG keys, including both statically
  75. configured and TKEY-negotiated keys.
  76. validation newstate [view]
  77. Enable / disable DNSSEC validation.

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

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

1.rndc的调试和日志
调试:显示程序运行中的详细信息(会产生I/O,正常情况下建议关闭)
调试级别:0,1,2,3...
提升调试级别:
  rndc trace
  rndc trace LEVEL
  rndc notrace
打开查询日志:记录查询动作(会增加磁盘I/O)
rndc querylog

2.查看DNS Cache

在 bind 9 中,可以使用 rndc -dumpdb 命令来查看DNS Cache,要点如下
1 首先要配置好rndc.conf named.conf,保证named服务能成功开启,用netstat -an 能看到53和953端口开启了。
2 其次知道要rndc所在目录,若不用直接路径有可能提示无此命令,我安装在/home/slim/bind/sbin/rndc,用ln -s/home/slim/bind/sbin/rndc /usr/local/sbin/rndc软链接后就可以在任意目录下运行rndc -dumpdb命令,同时需要注意防火墙的设置,不打开953端口,该命令也无法运行。
3 需要设置cache文档输入目录,在named.conf里面设置dump-file "/var/named/data/cache_dump.db"即为dns cache输入文档。注意了这些设置,运行rndc -dumpdb命令后就会在/var/named/data/目录下导出DNS cache内容,用more cache_dump.db进行查看。
实例:/home/slim/bind/sbin/rndc -c /home/slim/chroot/etc/rndc.conf -s 127.0.0.1 -p 953 dumpdb

二、使用

前面我们已经尝试过reload、status等命令的使用。

  1. $ /home/slim/bind/sbin/rndc -c /home/slim/chroot/etc/rndc.conf -s 127.0.0.1 -p 953 status
  2. version: 9.9.7 (vdns3.0) <id:e87fa9ae>
  3. CPUs found: 1
  4. worker threads: 1
  5. UDP listeners per interface: 1
  6. number of zones: 101
  7. debug level: 0
  8. xfers running: 0
  9. xfers deferred: 0
  10. soa queries in progress: 0
  11. query logging is ON
  12. recursive clients: 0/0/1000
  13. tcp clients: 0/100
  14. server is up and running

下面我们说一下如何使用rndc动态添加一个zone,并在主配置文件named.conf全局配置options下添加 allow-new-zones yes;

1.创建zone文件

vi /var/named/zone/abc.com.zone

  1. $TTL      86400
  2. @            IN SOA  abc.com.  admin.abc.com. (
  3. 60                ; serial (d. adams)
  4. 3H                ; refresh
  5. 15M                ; retry
  6. 1W                ; expiry
  7. 1D )              ; minimum
  8. IN              NS     dns.abc.com.
  9. dns     IN      A      192.168.36.54
  10. www     IN      A      1.1.1.1

2.添加zone

/home/slim/bind/sbin/rndc -c /home/slim/chroot/etc/rndc.conf -s 127.0.0.1 -p 953  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;};};'

3.检查

    1. # dig @192.168.36.54 www.abc.com A
    2. ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> @192.168.36.54 www.abc.com A
    3. ; (1 server found)
    4. ;; global options: +cmd
    5. ;; Got answer:
    6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2952
    7. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
    8. ;; QUESTION SECTION:
    9. ;www.abc.com.                   IN      A
    10. ;; ANSWER SECTION:
    11. www.abc.com.            86400   IN      A       1.1.1.1
    12. ;; AUTHORITY SECTION:
    13. abc.com.                86400   IN      NS      dns.abc.com.
    14. ;; ADDITIONAL SECTION:
    15. dns.abc.com.            86400   IN      A       192.168.36.54
    16. ;; Query time: 1 msec
    17. ;; SERVER: 192.168.36.54#53(192.168.36.54)
    18. ;; WHEN: Sat Apr 18 21:12:44 2015
    19. ;; MSG SIZE  rcvd: 79

DNS BIND之rndc介绍及使用的更多相关文章

  1. 第7章 DNS & bind从基础到深入

    本文目录: 7.1 DNS必懂基础 7.1.1 域的分类 7.1.2 主机名.域名.FQDN 7.1.3 域的分层授权 7.1.4 DNS解析流程 7.2 DNS术语 7.2.1 递归查询和迭代查询 ...

  2. DNS(bind)服务器安装和配置

    一.前言 DNS 域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.DNS使用TCP ...

  3. 为linux dns (bind named)服务器配置 单独的笔记

    注意: 当在把 named.ca文件下载好13个根dns服务器的 全球记录后, 就不再需要别的 dns服务器来辅助获得了. 只要把所有 本地服务器 不能解析的请求, 都发送到 . 点根去就行了, 所以 ...

  4. DNS服务器:主要介绍DNS的服务原理以及安装及其主从配置

    DNS服务器:主要介绍DNS的服务原理以及安装及其主从配置 一.DNS简介 1.DNS    DNS是域名系统(Domain Name System)的简称,它是一个将域名和IP相互映射的分布式数据库 ...

  5. DNS BIND之dnssec安全介绍

    Domain Name System Security Extensions (DNSSEC)DNS安全扩展,是由IETF提供的一系列DNS安全认证的机制(可参考RFC2535).它提供了一种来源鉴定 ...

  6. DNS bind使用

    概念介绍 DNS的分类 主DNS:配置管理,不提供服务,只用来编辑配置信息,给从DNS提供同步数据 从DNS:从主DNS上同步数据信息,对外提供服务 缓存DNS:在主DNS和从DNS之间,用来递归解析 ...

  7. DNS服务基础原理介绍

    FQDN 全称域名 localhost(主机名或者是别名).localdomain(域名)    FQDN=主机名.域名 根域               . 顶级域名       .com   .n ...

  8. dns bind配置教程

    实验环境 三台centos7虚拟机,一台ip为192.168.52.130,一台为192.168.52.131,最后一台为192.168.52.132 安装bind 使用yum -y insall b ...

  9. DNS BIND配置 配置基本缓存服务器 DNS正向解析 DNS反向解析

    一. 缓存服务器配置 1.DNS:BIND    Berkeley Internet Name Domain    版本bind97: RPM服务器端包的名字  安装bind-libs    bind ...

随机推荐

  1. 解决brew报错:Another active Homebrew update process is already in progress

    在mac终端下执行:brew install glew结果报错: Error: Another active Homebrew update process is already in progres ...

  2. Gym 100712L Alternating Strings II(单调队列)

    题目链接 Alternating Strings II 题意是指给出一个长度为n的01串,和一个整数k,要求将这个01串划分为很多子串(切很多刀),使得每个子串长度不超过k,且每个字串不是01交替出现 ...

  3. Hive之 hive-1.2.1 + hadoop 2.7.4 集群安装

    一. 相关概念 Hive Metastore有三种配置方式,分别是: Embedded Metastore Database (Derby) 内嵌模式Local Metastore Server 本地 ...

  4. Mybatis 插件实现动态设置参数

    原文地址:Mybatis 插件实现动态设置参数 博客地址:http://www.extlight.com 一.背景 笔者在搭建架构时,通常会利用泛型对 dao 层 和 service 层公共的代码(增 ...

  5. XSS获取cookie并利用

    获取cookie利用代码cookie.asp <html> <title>xx</title> <body> <%testfile = Serve ...

  6. Repeater更具条件为每行数据背景填充颜色

    后台代码 protected void RptPosterManager_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.I ...

  7. Linux操作系统-基本命令(二)

    Linux操作系统基本命令 文件操作类命令 – ln命令 另外一种链接方式称为符号链接(软链接),是指一个文件指向另外一个文件的文件名.软链接类似于Windows系统中的快捷方式.软链接由ln -s命 ...

  8. 常见报表的JS代码

    1.合并单元格 这个表格在报表里面算是比较典型的 1.里面的表格的列标题现在是写死的,其实这些可以通过配置进行 2.至于如果表头要进行合并(这种需求比较少,也比较容易实现) 3.至于统计:最好在后台按 ...

  9. win10开启开发人员模式

    工具: win10 方法如下: 1.在Windows10系统桌面,点击开始菜单,然后在弹出窗口中选择“设置”菜单项 2.在打开的设置窗口中,选择“更新和安全”图标,并点击打开更新和安全窗口 3.在打开 ...

  10. mysql-5.6.20主从同步错误之Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND

    mysql-5.6.20主从同步错误之Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND 方法一:  1.Error_code: 1032; ha ...