BIND 名称服务器本身的所有设置都被储存在文件 /etc/named.conf 中。但是,将要处理的域的区域数据(由主机名、IP 地址等组成)储存在 /var/lib/named 目录下单独的文件中。稍后将介绍其详细信息。
/etc/named.conf 大致分为两部分。一部分是存放常规设置的 options 部分,另一部分由各个域的 zone 项组成。而 logging 部分和 acl(访问控制列表)项是可选的。注释行以 # 符号或 // 开头。例 33.2 “基本的 /etc/named.conf”显示了一个最小的 /etc/named.conf。
例 33.2. 基本的 /etc/named.conf
options {
directory "/var/lib/named";
forwarders { 10.0.0.1; };
notify no;
};
zone "localhost" in {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "127.0.0.zone";
};
zone "." in {
type hint;
file "root.hint";
};filename";
指定目录,BIND 可以在该目录中找到包含区域数据的文件。通常,此目录是 /var/lib/named。
ip-address; };
指定在无法直接解析 DNS 请求的情况下应将其转发到的名称服务器(大多数情况下是提供商的名称服务器)。用 IP 地址(例如 10.0.0.1)替换 ip-address。
在尝试通过根名称服务器解析 DNS 请求前,对 DNS 请求进行转发。可以写入 forward only(而不是 forward first)转发所有请求并且不将任何请求发送到根名称服务器。这可以用于防火墙配置。
ip-address; };
指示 BIND 通过哪些网络接口和哪个端口来接受客户机查询。不需要显式指定 port 53,因为 53 是默认端口。输入 127.0.0.1 允许接收来自 Localhost 的请求。如果完全省略此项,则在默认情况下使用所有接口。
指示 BIND 应通过哪个端口侦听 IPv6 客户机请求。唯一可以替代 any 的是 none。就 IPv6 而言,服务器只接受通配符地址。
如果防火墙阻止外发的 DNS 请求,则需要此项。此项指示 BIND 从端口 53 向外部发送请求,而不使用端口号大于 1024 的任何端口。
指示 BIND 将哪个端口用于 IPv6 查询。
net; };
定义客户机可以自此发送 DNS 请求的网络。用地址信息(例如 192.168.1/24)替换 net。末尾的 /24 是网络掩码的缩写表示,本例中,网络掩码是 255.255.255.0。
控制哪些主机可以请求区域传送。在本例中,用 ! *. 如果没有此项,则可以从没有限制的任何位置请求区域传送。
如果缺少此项,则 BIND 每小时在 /var/log/messages 中生成几行统计信息。将其设置为 0 可以完全禁止生成此类统计信息,也可以设置时间间隔(以分钟为单位)。
此选项定义 BIND 间隔多长时间清除其缓存。每次出现此选项都会在 /var/log/messages 中触发一项。时间是以分钟为单位指定的。默认值为 60 分钟。
BIND 定期在网络接口中搜索新接口或不存在的接口。如果将该值设置为 0,则不执行搜索,BIND 只侦听启动时检测到的接口。否则,采用分钟定义时间间隔。默认值是 60 分钟。
指定 no 将阻止其他名称服务器在区域数据被更改或名称服务器被重启动时得到通知。
例 33.4. my-domain.de 的区域项
zone "my-domain.de" in {
type master;
file "my-domain.zone";
notify no;
};
在 zone 后,指定要管理的域名 my-domain.de,后跟 in 和用花括号括起来的相关选项块,如 例 33.4 “my-domain.de 的区域项” 所示。要定义从属区域,请将 type 切换为 slave 并将管理此区域的名称服务器指定为 master(它可能是另一个主区域的从属区域),如 例 33.5 “other-domain.de 的区域项” 所示。
例 33.5. other-domain.de 的区域项
zone "other-domain.de" in {
type slave;
file "slave/other-domain.zone";
masters { 10.0.0.1; };
};区域选项:
通过指定 master,指示 BIND 由本地名称服务器对区域进行处理。这假定已用正确的格式创建了区域文件。
从另一个名称服务器传送此区域。必须将它与 masters 一起使用。
区域 .(hint 类型)用于设置根名称服务器。此区域定义可以保留原样。
my-domain.zone 或 file “slave/other-domain.zone”;
此项指定域的区域数据所在的文件。从属区域不需要此文件,因为此数据是从另一个名称服务器中获取的。要区分主文件和从属文件,请对从属文件使用目录 slave。
server-ip-address; };只有从属区域需要此项。它指定应从哪个名称服务器传送区域文件。
此选项控制外部写访问,这将允许客户机创建 DNS 项 - 出于安全原因,通常不希望出现这种情况。没有此项,就不允许进行区域更新。上述项可以实现相同的结果,因为 ! * 有效地禁止了此类操作。