所需的区域文件有两种类型。一种类型是将 IP 地址指派给主机名,另一种类型则正相反:为 IP 地址提供主机名。
![]() | 在区域文件中使用点 |
|---|---|
此 | |
首先研究以下区域文件 world.zone,该区域文件负责域 world.cosmos,如 例 33.6 “文件 /var/lib/named/world.zone” 所示。
例 33.6. 文件 /var/lib/named/world.zone
$TTL 2D
world.cosmos. IN SOA gateway root.world.cosmos. (
2003072441 ; serial
1D ; refresh
2H ; retry
1W ; expiry
2D ) ; minimum
IN NS gateway
IN MX 10 sun
gateway IN A 192.168.0.1
IN A 192.168.1.1
sun IN A 192.168.0.2
moon IN A 192.168.0.3
earth IN A 192.168.1.2
mars IN A 192.168.1.3
www IN CNAME moon
$TTL 定义默认存活时间,它适用于此文件中的所有项。在本例中,项在两天 (2 D) 内有效。
这是 SOA(Start Of Authority,起始授权机构)控制记录开始的位置:
在第一个位置,要管理的域的名称是 world.cosmos。这个域名以 . 结尾,否则可能会再次追加区域。或者,可以在这里输入 @,在这种情况下,可以从 /etc/named.conf 中的相应项中抽取区域。
IN SOA 之后是用作此区域主服务器的名称服务器的名称。此名称从 gateway 扩展为 gateway.world.cosmos,因为它没有以 . 结尾。
随后是负责此名称服务器的用户的电子邮件地址。因为 @ 符号已经有特殊含义,所以在这里改为输入 .。对于 root@world.cosmos,此项必须是 root.world.cosmos.. 此 . 必须包含在末尾,以防止添加区域。
( 和 ) 之间包含的所有行组成 SOA 记录。
serial number 可以是任一数字,每次更改此文件时此数字都会增加。需要将这些更改通知给辅助名称服务器(从属服务器)。为此,日期和运行数字常采用 10 位数字格式,书写方式为 YYYYMMDDNN,这已成为惯用格式。
refresh rate 指定二级名称服务器校验区域 serial number 的时间间隔。在本例中,此时间间隔为一天。
retry rate 指定二级名称服务器在出现错误时尝试再次联系主服务器的时间间隔。这里的时间间隔是两小时。
expiration time 指定二级名称服务器在无法重新联系上主服务器时将在多长时间后丢弃缓存的数据。这里为一周。
SOA 记录中的最后一项指定 negative caching TTL - 缓存来自其他服务器的未解析 DNS 查询结果的时间。
IN NS 指定负责此域的名称服务器。gateway 扩展为 gateway.world.cosmos,因为它没有以 . 结尾。可以有多个与此行类似的行 - 一行用于主名称服务器,其他各行分别用于每个二级名称服务器。如果 /etc/named.conf 中未将 notify 设置为 no,则会将区域数据的更改通知给这里列出的所有名称服务器。
MX 记录指定接受、处理和转发域 world.cosmos 的电子邮件的邮件服务器。在本例中,邮件服务器是主机 sun.world.cosmos。主机名称前面的数字是优先顺序值。如果有多个 MX 项,则首先采用具有最小值的邮件服务器,如果向此服务器递送邮件失败,则尝试采用具有稍大一些值的邮件服务器。
这些都是实际的地址记录,在这里将一个或多个 IP 地址指派到主机名。名称在此处列出,不带 . 结尾,因为它们不包含自己的域,所以会将 world.cosmos 添加到所有名称。因为主机 gateway 有两个网卡,所以为其指派两个 IP 地址。只要主机地址是传统地址 (IPv4),就将使用 AAAA 标记该记录。如果地址是 IPv6 地址,则使用 AAAA 0 标记此项。IPv6 地址以前的标记只是 AAAA,现在该标记已过时。
![]() | IPv6 语法 |
|---|---|
IPv6 记录与 IPv4 语法稍有不同。由于可能进行碎片整理,所以需要在寻址前提供有关缺失位的信息。即使要使用没有分段的地址,也应该提供此信息。对于使用该语法的 IPv4 记录 pluto IN AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0 pluto IN AAAA 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0 需要以 IPv6 格式添加有关缺失位的信息。由于上述示例是完整的(未缺失任何位),所以此记录的 IPv6 格式如下: pluto IN AAAA 0 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0 pluto IN AAAA 0 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0 请勿使用具有 IPv6 映射的 IPv4 地址。 | |
别名 www 可用于确定 mond(CNAME 是指规范名称) 的地址。
伪域 in-addr.arpa 用于 IP 地址到主机名的反向查找。它被追加到采用反向表示法的地址的网络部分。因此,将 192.168.1 解析成 1.168.192.in-addr.arpa。参见 例 33.7 “反向查找”。
例 33.7. 反向查找
$TTL 2D
1.168.192.in-addr.arpa. IN SOA gateway.world.cosmos. root.world.cosmos. (
2003072441 ; serial
1D ; refresh
2H ; retry
1W ; expiry
2D ) ; minimum
IN NS gateway.world.cosmos.
1 IN PTR gateway.world.cosmos.
2 IN PTR earth.world.cosmos.
3 IN PTR mars.world.cosmos.
$TTL 定义应用于此处所有项的标准 TTL。
此配置文件应激活网络 192.168.1.0 的反向查找。由于区域名为 1.168.192.in-addr.arpa,因此不应将此区域添加到主机名中。因此,所有主机名都以完整格式输入 - 带有域并以 . 结尾。其余的项对应于上一个 world.cosmos 示例介绍的那些内容。
请参见上一个关于 world.cosmos 的示例。
此行也是指定负责此区域的名称服务器。但这次采用完整形式输入名称,带有域且末尾带有 .。
这些都是提示各自主机上 IP 地址的指针记录。只在行的开头输入 IP 地址的最后一部分,在末尾不加 .。将区域追加到这个地址(不带 .in-addr.arpa)将产生采用反向顺序的完整 IP 地址。