20.3. 启动名称服务器 BIND

在 SUSE Linux 系统中,已预先配置了名称服务器 BIND(Berkeley Internet Name Domain,Berkeley 因特网名称域),因此可以在安装后立即启动此名称服务器而不会出现任何问题。如果您已有一个有效的因特网连接并在 /etc/resolv.conf 中输入了 127.0.0.1 作为 localhost 的名称服务器地址,那么您已经在使用名称解析功能了,而不需要知道提供商的 DNS。BIND 通过根名称服务器执行名称解析,这个过程非常慢。通常,应将提供商的 DNS 及其 IP 地址输入配置文件 /etc/named.confforwarders 下,以确保能进行有效而安全的名称解析。如果到目前为止是这种情况,则该名称服务器将作为仅用于超速缓存的纯名称服务器运行。只有在配置了该名称服务器自己的区域后,它才能成为一个正常的 DNS。/usr/share/doc/packages/bind/sample-config 的文档中包含了这种情况的一个简单示例。

[Tip]名称服务器信息的自动适应

根据因特网连接或网络连接的类型,名称服务器信息可以自动适应当前的情况。为此,请将文件 /etc/sysconfig/network/config 中的变量 MODIFY_NAMED_CONF_DYNAMICALLY 设置为 yes

但是,在相关机构指派域之前,请不要设置任何正式域。即使您有自己的域且提供商管理此域,也最好不要使用此域,因为如果使用此域,BIND 将不转发对此域的请求。例如,此域不能访问提供商的万维网服务器。

要启动名称服务器,请以 root 用户身份输入命令 rcnamed start。如果右侧出现绿色的“完成”,则说明已成功启动了名称服务器进程(该进程名为 named)。请用 hostdig 程序立即在本地系统上测试名称服务器,该测试应返回 localhost 作为默认服务器,地址为 127.0.0.1。如果未返回所需的结果,则 /etc/resolv.conf 可能包含不正确的名称服务器项或此文件根本不存在。如果是第一次测试,请输入 host 127.0.0.1,此命令应始终有效。如果收到错误讯息,请使用 rcnamed status 查看服务器是否确实在运行。如果名称服务器未启动或出现意外的行为,则通常可以在日志文件 /var/log/messages 中找到原因。

要将提供商的名称服务器或网络上正在运行的名称服务器用作转发器,请在 options 部分的 forwarders 下输入相应的一个或多个 IP 地址。例 20.1 “named.conf 中的转发选项” 中包含的地址仅用作示例。请根据您自己的设置调整这些项。

例 20.1. named.conf 中的转发选项

options { 
        directory "/var/lib/named";
        forwarders { 10.11.12.13; 10.11.12.14; };
        listen-on { 127.0.0.1; 192.168.0.99; };
        allow-query { 127/8; 192.168.0/24; };
        notify no;
        };

options 项后面是区域的项 localhost0.0.127.in-addr.arpa。“.”下的 type hint 项应始终存在。无需修改相应的文件,应照原样使用。还要确保每个项都以“;”结束,同时确保花括号位于正确的位置。在更改配置文件 /etc/named.conf 或区域文件后,通知 BIND 使用 rcnamed reload 重新读取这些文件。用 rcnamed restart 停止并重启动名称服务器也会获得相同的效果。输入 rcnamed stop 可以随时停止服务器。