在这里我们列出一些真实的区域文件
用户建议我包含一个真实可用的域名例子,以及教程中的例子。
我经 LAND-5 的 David Bullock 许可使用了这个例子。这些文件是 1996 年 9 月 24 日当时的最新版本,然后我对其进行了编辑,以符合 BIND 8 的限制并使用扩展。因此,你在这里看到的与你现在查询 LAND-5 的域名服务器所找到的略有不同。
在这里我们找到了两个需要的反向区域的主区域节:127.0.0 网络,以及 LAND-5 的 206.6.177
子网,以及 land-5 的正向区域 land-5.com
的主线。还要注意,他没有像我在本 HOWTO 中那样将文件塞进一个名为 pz
的目录,而是将它们放在一个名为 zone
的目录中。
// Boot file for LAND-5 name server options { directory "/var/named"; }; controls { inet 127.0.0.1 allow { localhost; } keys { rndc_key; }; }; key "rndc_key" { algorithm hmac-md5; secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K"; }; zone "." { type hint; file "root.hints"; }; zone "0.0.127.in-addr.arpa" { type master; file "zone/127.0.0"; }; zone "land-5.com" { type master; file "zone/land-5.com"; }; zone "177.6.206.in-addr.arpa" { type master; file "zone/206.6.177"; };
如果你将此内容放入你的 named.conf 文件中进行实验,请在两个 land-5
区域的区域节中放入 ``notify no;
'',以避免意外发生。
请记住,此文件是动态的,此处列出的文件是旧的。你最好使用较新的文件,如前面所述。
; <<>> DiG 8.1 <<>> @A.ROOT-SERVERS.NET. ; (1 server found) ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10 ;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13 ;; QUERY SECTION: ;; ., type = NS, class = IN ;; ANSWER SECTION: . 6D IN NS G.ROOT-SERVERS.NET. . 6D IN NS J.ROOT-SERVERS.NET. . 6D IN NS K.ROOT-SERVERS.NET. . 6D IN NS L.ROOT-SERVERS.NET. . 6D IN NS M.ROOT-SERVERS.NET. . 6D IN NS A.ROOT-SERVERS.NET. . 6D IN NS H.ROOT-SERVERS.NET. . 6D IN NS B.ROOT-SERVERS.NET. . 6D IN NS C.ROOT-SERVERS.NET. . 6D IN NS D.ROOT-SERVERS.NET. . 6D IN NS E.ROOT-SERVERS.NET. . 6D IN NS I.ROOT-SERVERS.NET. . 6D IN NS F.ROOT-SERVERS.NET. ;; ADDITIONAL SECTION: G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4 J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10 K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129 L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12 M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33 A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4 H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53 B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107 C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12 D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90 E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10 I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17 F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241 ;; Total query time: 215 msec ;; FROM: roke.uio.no to SERVER: A.ROOT-SERVERS.NET. 198.41.0.4 ;; WHEN: Sun Feb 15 01:22:51 1998 ;; MSG SIZE sent: 17 rcvd: 436
只是基本内容,强制性的 SOA 记录,以及将 127.0.0.1 映射到 localhost
的记录。两者都是必需的。此文件中不应包含更多内容。除非你的域名服务器或主机管理员地址更改,否则可能永远不需要更新它。
$TTL 3D @ IN SOA land-5.com. root.land-5.com. ( 199609203 ; Serial 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS land-5.com. 1 PTR localhost.
如果你查看一个随机的 BIND 安装,你可能会发现 $TTL
行缺失,就像这里一样。以前没有使用它,只有 BIND 的 8.2 版本才开始警告它的缺失。BIND 9 要求 $TTL
。
在这里我们看到了强制性的 SOA 记录,以及需要的 NS 记录。我们可以看到他在 ns2.psi.net
有一个辅助域名服务器。这是应该的,始终应该有一个异地辅助服务器作为备份。我们还可以看到他有一个名为 land-5
的主主机,它负责许多不同的 Internet 服务,并且他使用 CNAME 完成了这一点(另一种选择是使用 A 记录)。
正如你从 SOA 记录中看到的,区域文件起源于 land-5.com
,联系人是 root@land-5.com
。hostmaster
是另一个常用的联系人地址。序列号是通常的 yyyymmdd 格式,并附加了今天的序列号;这可能是 1996 年 9 月 20 日区域文件的第六个版本。请记住,序列号必须单调递增,这里今天的序列号只有一位数字,因此在 9 次编辑后,他必须等到明天才能再次编辑该文件。考虑使用两位数字。
$TTL 3D @ IN SOA land-5.com. root.land-5.com. ( 199609206 ; serial, todays date + todays serial # 8H ; refresh, seconds 2H ; retry, seconds 4W ; expire, seconds 1D ) ; minimum, seconds NS land-5.com. NS ns2.psi.net. MX 10 land-5.com. ; Primary Mail Exchanger TXT "LAND-5 Corporation" localhost A 127.0.0.1 router A 206.6.177.1 land-5.com. A 206.6.177.2 ns A 206.6.177.3 www A 207.159.141.192 ftp CNAME land-5.com. mail CNAME land-5.com. news CNAME land-5.com. funn A 206.6.177.2 ; ; Workstations ; ws-177200 A 206.6.177.200 MX 10 land-5.com. ; Primary Mail Host ws-177201 A 206.6.177.201 MX 10 land-5.com. ; Primary Mail Host ws-177202 A 206.6.177.202 MX 10 land-5.com. ; Primary Mail Host ws-177203 A 206.6.177.203 MX 10 land-5.com. ; Primary Mail Host ws-177204 A 206.6.177.204 MX 10 land-5.com. ; Primary Mail Host ws-177205 A 206.6.177.205 MX 10 land-5.com. ; Primary Mail Host ; {Many repetitive definitions deleted - SNIP} ws-177250 A 206.6.177.250 MX 10 land-5.com. ; Primary Mail Host ws-177251 A 206.6.177.251 MX 10 land-5.com. ; Primary Mail Host ws-177252 A 206.6.177.252 MX 10 land-5.com. ; Primary Mail Host ws-177253 A 206.6.177.253 MX 10 land-5.com. ; Primary Mail Host ws-177254 A 206.6.177.254 MX 10 land-5.com. ; Primary Mail Host
如果你检查 land-5 的域名服务器,你会发现主机名的格式为 ws_
number。从后期的 BIND 4 版本开始,named 开始强制执行对主机名中可以使用的字符的限制。这在 BIND 8 中完全不起作用,为了在本 HOWTO 中使用,我用 '-' (破折号) 替换了 '_' (下划线)。但是,如前所述,BIND 9 不再强制执行此限制。
另一个需要注意的是,工作站没有单独的名称,而是使用前缀后跟 IP 地址的最后两位数字。使用这样的约定可以大大简化维护,但可能有点没有人情味,并且实际上可能成为你的客户不满的来源。
我们还看到 funn.land-5.com
是 land-5.com
的别名,但使用的是 A 记录,而不是 CNAME 记录。
我将在下面评论这个文件
$TTL 3D @ IN SOA land-5.com. root.land-5.com. ( 199609206 ; Serial 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS land-5.com. NS ns2.psi.net. ; ; Servers ; 1 PTR router.land-5.com. 2 PTR land-5.com. 2 PTR funn.land-5.com. ; ; Workstations ; 200 PTR ws-177200.land-5.com. 201 PTR ws-177201.land-5.com. 202 PTR ws-177202.land-5.com. 203 PTR ws-177203.land-5.com. 204 PTR ws-177204.land-5.com. 205 PTR ws-177205.land-5.com. ; {Many repetitive definitions deleted - SNIP} 250 PTR ws-177250.land-5.com. 251 PTR ws-177251.land-5.com. 252 PTR ws-177252.land-5.com. 253 PTR ws-177253.land-5.com. 254 PTR ws-177254.land-5.com.
反向区域是设置中最容易引起麻烦的部分。它用于在你拥有机器的 IP 地址时查找主机名。示例:你是一个 FTP 服务器,接受来自 FTP 客户端的连接。由于你是一个挪威 FTP 服务器,你希望接受更多来自挪威和其他斯堪的纳维亚国家的客户端连接,并减少来自世界其他地区的连接。当你收到来自客户端的连接时,C 库能够告诉你连接机器的 IP 地址,因为客户端的 IP 地址包含在网络上传输的所有数据包中。现在你可以调用一个名为 gethostbyaddr 的函数,该函数根据 IP 地址查找主机名。Gethostbyaddr 将询问 DNS 服务器,然后 DNS 服务器将遍历 DNS 查找机器。假设客户端连接来自 ws-177200.land-5.com。C 库提供给 FTP 服务器的 IP 地址是 206.6.177.200。为了找出该机器的名称,我们需要找到 200.177.6.206.in-addr.arpa
。DNS 服务器将首先找到 arpa.
服务器,然后找到 in-addr.arpa.
服务器,沿着反向路径穿过 206,然后是 6,最后在 LAND-5 找到 177.6.206.in-addr.arpa
区域的服务器。从中它最终将得到答案,对于 200.177.6.206.in-addr.arpa
,我们有一个 ``PTR ws-177200.land-5.com
'' 记录,这意味着与 206.6.177.200
关联的名称是 ws-177200.land-5.com
。
FTP 服务器优先处理来自斯堪的纳维亚国家的连接,即 *.no
、*.se
、*.dk
,名称 ws-177200.land-5.com
显然与其中任何一个都不匹配,服务器会将连接放入带宽较小且允许客户端较少的连接类中。如果通过 in-addr.arpa
区域没有 206.2.177.200
的反向映射,服务器将无法找到名称,并且必须将 206.2.177.200
与 *.no
、*.se
和 *.dk
进行比较,这些都不匹配,它甚至可能因为缺乏分类而拒绝连接。
有些人会告诉你,反向查找映射仅对服务器重要,或者根本不重要。事实并非如此:许多 ftp、新闻、IRC 甚至一些 http (WWW) 服务器不会接受来自无法找到其名称的机器的连接。因此,机器的反向映射实际上是强制性的。