天天看点

《DNS与BIND(第5版)》——第7章 BIND的维护7.1 控制名称服务器

本节书摘来自异步社区《dns与bind(第5版)》一书中的第7章,第7.1节,作者: 【美】joseph davies 更多章节内容可以访问云栖社区“异步社区”公众号查看。

爱丽丝继续喘着气说:“可是,在我住的地方,

只要快快地跑一会儿,你总能跑到另外一个地方的。”

“那可真是个慢吞吞的地方!”

王后说:“你瞧,在我们这儿,得拼命地跑,才能保持在原地。

要是想到别的地方,得再快一倍才行!”

本章将讨论关于如何维护名称服务器的相关内容。包括如何控制名称服务器,如何修改区域数据文件,以及如何保持root提示文件是最新的。还将列出常见syslog错误信息并解释bind的统计数据。

本章不会涉及如何排除故障的问题。因为维护只涉及如何保持数据是最新的,以及监视名称服务器的运行情况。而排除故障就像是灭火——dns的紧急情况会像火苗一样经常出现。本书在第14章会讨论如何“灭火”。

传统上,管理员通过unix信号(signal)来控制bind名称服务器(即named)。名称服务器将收到的信号解释成采取特定行动的指令,例如重载所有已变更的primary区域。然而,可用信号的数量有限,并且信号也无法传递附加信息,例如要重载的特定区域的域名。

在bind 8.2中,isc引入了一种控制名称服务器的方法:通过一条特殊的控制通道来发送消息。这条控制通道可以是一个unix域套接字(unix domain socket),也可以是名称服务器用来监听控制消息的一个tcp端口。因为控制通道不受限于数量有限的离散信号,所以其更灵活、功能更强。isc表示,控制通道是未来发展的方向,管理员应该使用它来管理所有的名称服务器,而不是使用信号。

要通过控制通道发送消息给一个名称服务器,可以使用ndc(bind 8)或rndc(bind 9)程序。在bind 8.2之前,ndc只是一个简单的shell脚本,用来将信号(例如hup)替换成方便的参数(例如reload)。本章稍后会提到这个版本的ndc。

7.1.1 ndc与controls(bind 8)

如果不带参数执行,ndc将会通过unix域套接字来发送消息,尝试与本地主机上运行的名称服务器进行通信。这个套接字通常称为/var/run/ndc,不过有些操作系统使用不同的路径名。该套接字的所有者一般为root,并且只有其所有者才具有读写权限。bind 8.2及其后续版本的名称服务器会在启动时创建该unix域套接字。可以使用controls语句为该套接字指定另一个路径名或权限。例如,如果要将该套接字的路径改为/etc/ndc,将用户组的所有权改为named,并使该套接字的所有者和用户组都具有读写权限,可以这样做:

div style="text-align: center">

《DNS与BIND(第5版)》——第7章 BIND的维护7.1 控制名称服务器