第四章:名称服务器操作

第四章:名称服务器操作4.1. 与名称服务器守护程序一起使用的工具4.1.1. 诊断工具4.1.2. 管理工具4.2. 信号4.3. 插件4.4. 配置插件4.5. 开发插件

4.1. 与名称服务器守护程序一起使用的工具

本节介绍系统管理员可用于控制和调试名称服务器守护进程的几个不可或缺的诊断、管理和监视工具。

4.1.1. 诊断工具

dighostnslookup 程序都是用于手动查询名称服务器的命令行工具。它们在风格和输出格式上有所不同。

4.1.2. 管理工具

管理工具在服务器管理中起着不可或缺的作用。

并且它具有与rndc_key相同的密钥块。 运行 rndc-confgen 程序可以方便地创建 rndc.conf 文件,并显示添加到 named.conf 所需的相应 controls 语句。或者,可以运行 rndc-confgen -a 来设置 rndc.key 文件,而根本不修改 named.conf

4.2. 信号

某些Unix信号会导致名称服务器采取特定操作,如下表所述。这些信号可以使用 kill 命令发送。

SIGHUP使服务器读取named.conf并重新加载数据库。
SIGTERM使服务器清理并退出。
SIGINT使服务器清理并退出。

4.3. 插件

插件是一种使用动态可加载库扩展 named 功能的机制。通过使用插件,对于大多数用户来说,核心服务器功能可以保持简单;实现可选功能的更复杂的代码只需要由需要这些功能的用户安装。

插件接口正在开发中,预计会随着更多插件的添加而不断发展。目前只支持“query plugins” (查询插件);这些修改了名称服务器查询逻辑。未来可能会添加其他插件类型。

BIND中目前唯一包含的插件是 filter-aaaa.so ,它取代了之前作为 named 的一部分本机存在的 filter-aaaa 功能。此功能的代码已从 named 中删除,不能再使用标准 named.conf语法进行配置,但 filter-aaaa.so 插件中的链接提供了相同的功能。

4.4. 配置插件

插件是使用named.conf中的plugin语句配置的:

在这个例子中, filelibrary.so 是插件库。 query 表示这是一个查询插件。

可以指定多个 plugin 语句,以加载不同的插件或同一插件的多个实例。

parameters 以不透明字符串的形式传递给插件的初始化例程。配置语法因模块而异。

4.5. 开发插件

每个插件实现四个功能:

named 源代码中的不同位置,有插件可以注册自己的“挂钩点”(hook points)。当 named 运行时达到挂钩点时,会检查是否有插件在那里注册;如果是这样,则调用相关的“钩子操作”(hook action)(插件库中的一个函数)。钩子操作可以检查运行时状态并进行更改:例如,修改要发送回客户端的答案或强制中止查询。更多详细信息可以在 lib/ns/include/ns/hook.h 文件中找到。