6.3. 运行 named

named(发音为 name-dee)在大多数 Unix 机器上提供 DNS 服务。它最初是为 BSD 开发的服务器程序,旨在为客户端以及可能的其他名称服务器提供名称服务。BIND 版本 4 存在已久,并出现在大多数 Linux 发行版中。新版本版本 8 已在大多数 Linux 发行版中引入,与以前的版本相比有了很大的变化。[1] 它具有许多新功能,例如支持 DNS 动态更新、DNS 更改通知、大大提高的性能以及新的配置文件语法。有关详细信息,请查看源代码发行版中包含的文档。

本节需要对 DNS 的工作方式有一定的了解。如果以下讨论对您来说完全是希腊语,您可能需要重读 6.2 节。”

named 通常在系统启动时启动,并一直运行到机器再次关闭。BIND 版本 8 之前的实现从名为 /etc/named.boot 的配置文件和各种将域名映射到地址的文件中获取信息。后者称为 区域文件。从版本 8 开始的 BIND 版本使用/etc/named.conf代替/etc/named.boot.

要在提示符下运行 named,请输入
# /usr/sbin/named

named 将启动并读取 named.boot 文件以及其中指定的任何区域文件。它将其进程 ID 写入/var/run/named.pid以 ASCII 码形式,必要时从主服务器下载任何区域文件,并开始侦听端口 53 上的 DNS 查询。

6.3.1. named.boot 文件

BIND 版本 8 之前的 BIND 配置文件结构非常简单。BIND 版本 8 具有非常不同的配置文件语法来处理引入的许多新功能。配置文件的名称从/etc/named.boot(在旧版本的 BIND 中)更改为/etc/named.conf(在 BIND 版本 8 中)。我们将重点介绍旧版本的配置,因为它可能是大多数发行版仍在使用的版本,但我们将提供一个等效的named.conf来演示差异,并且我们将讨论如何将旧格式转换为新格式。

named.boot 文件通常很小,除了指向包含区域信息的主文件和指向其他名称服务器的指针之外,几乎不包含其他内容。引导文件中的注释以 (#) 或 (;) 字符开头,并延伸到下一个换行符。在我们更详细地讨论named.boot的格式之前,我们将查看 示例 6-8 中给出的 vlager 的示例文件。

示例 6-8。 vlager 的 named.boot 文件

;
; /etc/named.boot file for vlager.vbrew.com
;
directory     /var/named
;
;             domain                   file
;-----------------
cache         .                        named.ca
primary       vbrew.com                named.hosts
primary       0.0.127.in-addr.arpa     named.local
primary       16.172.in-addr.arpa      named.rev

让我们单独查看每个语句。directory 关键字告诉 named,此文件中稍后引用的所有文件名(例如区域文件)都位于/var/named目录中。这可以节省一些打字。

此示例中显示的 primary 关键字将信息加载到 named 中。此信息取自指定为主文件参数的最后一个参数的主文件。这些文件代表 DNS 资源记录,我们将在接下来查看。

在此示例中,我们将 named 配置为三个域的主名称服务器,如三个 primary 语句所示。这些语句中的第一个语句指示 named 充当 vbrew.com 的主服务器,并从文件named.hosts.

中获取区域数据。cache 关键字非常特殊,几乎所有运行名称服务器的机器都应存在。cache 关键字指示 named 启用其缓存并从指定的缓存文件(named.ca在我们的示例中)加载 根名称服务器提示。我们将在以下列表中回到名称服务器提示。

以下是您可以在named.boot

directory

中使用的最重要选项的列表。此选项指定区域文件所在的目录。其他选项中的文件名可以相对于此目录给出。可以通过重复使用 directory 来指定多个目录。Linux 文件系统标准建议这应该是/var/named.

primary

此选项接受域名和文件名作为参数,声明本地服务器是指定域的权威服务器。作为主服务器,named 从给定的主文件加载区域信息。

每个用于网络 127.0.0.0(即本地环回网络)反向映射的引导文件中,至少会有一个 primary 条目。

secondary

此语句接受域名、地址列表和文件名作为参数。它声明本地服务器是指定域的辅助主服务器。

辅助服务器也保存域的权威数据,但它不是从文件中收集数据;而是尝试从主服务器下载数据。因此,必须在地址列表中将至少一个主服务器的 IP 地址提供给 named。本地服务器依次联系它们中的每一个,直到成功传输区域数据库,然后将其存储在作为第三个参数给出的备份文件中。如果所有主服务器都没有响应,则改为从备份文件中检索区域数据。

然后,named 会尝试定期刷新区域数据。此过程将在稍后结合 SOA 资源记录类型进行解释。

cache

此选项接受域名和文件名作为参数。此文件包含根服务器提示,这是一个指向根名称服务器的记录列表。仅识别 NS 和 A 记录。域名应为根域名,即一个简单的句点 (.)。

此信息对于 named 绝对至关重要;如果引导文件中未出现 cache 语句,则 named 将根本不会开发本地缓存。如果下一个查询的服务器不在本地网络上,则这种情况/缺乏开发将严重降低性能并增加网络负载。此外,named 将无法访问任何根名称服务器,因此除了它作为权威服务器的地址之外,无法解析任何地址。此规则的例外情况涉及转发服务器(请参阅下面的 forwarders 选项)。

forwarders

此语句接受以空格分隔的地址列表作为参数。此列表中的 IP 地址指定 named 在无法从其本地缓存解析查询时可以查询的名称服务器列表。将按顺序尝试它们,直到其中一个响应查询。通常,您将使用网络提供商的名称服务器或另一个著名的服务器作为转发器。

slave

此语句使名称服务器成为从属服务器。它永远不会自己执行递归查询,而只会将它们转发到 forwarders 语句中指定的服务器。

这里我们将不介绍两个选项:sortlistdomain。这些数据库文件中也可以使用另外两个指令:$INCLUDE$ORIGIN。由于它们很少需要,我们也不会在此处介绍它们。

6.3.2. BIND 8 host.conf 文件

BIND 版本 8 引入了一系列新功能,随之而来的是新的配置文件语法。named.boot及其简单的单行语句,被named.conf文件取代,其语法类似于 gated,类似于 C 源代码语法。

新语法更复杂,但幸运的是,提供了一个工具来自动将旧语法转换为新语法。在 BIND 8 源代码包中,提供了一个名为 named-bootconf.plperl 程序,它将读取您现有的named.boot文件从stdin并将它转换为等效的named.conf格式在stdout上。要使用它,您必须安装 perl 解释器。

您应该像这样使用该脚本
# cd /etc
# named-bootconf.pl <named.boot >named.conf
然后脚本生成一个named.conf,其外观类似于 示例 6-9 中所示的内容。我们清除了脚本包含的一些有用的注释,以帮助显示旧语法和新语法之间几乎直接的关系。

示例 6-9。 vlager 的 BIND 8 等效 named.conf 文件

// 
// /etc/named.boot file for vlager.vbrew.com                                     
options {
	directory "/var/named";
};

zone "." {
	type hint;
	file "named.ca";
};

zone "vbrew.com" {
	type master;
	file "named.hosts";
};

zone "0.0.127.in-addr.arpa" {
	type master;
	file "named.local";
};

zone "16.172.in-addr.arpa" {
	type master;
	file "named.rev";
};

如果您仔细观察,您将看到named.boot中的每个单行语句都已转换为

文件中用 { } 字符括起来的类似 C 的语句。named.conf文件。

注释,在named.boot文件中由分号 (;) 指示,现在由两个正斜杠 ( // ) 指示。

directory 语句已转换为带有 directory 子句的 options 段落。

cacheprimary 语句已转换为 zone 段落,其 type 子句分别为 hintmaster

区域文件无需进行任何修改;它们的语法保持不变。

新的配置语法允许许多我们在此处未涵盖的新选项。如果您想了解有关新选项的信息,最好的信息来源是 BIND 版本 8 源代码包随附的文档。

6.3.3. DNS 数据库文件

named 包含在一起的主文件(如 named.hosts)始终与一个域关联,该域称为原点。这是使用 cacheprimary 选项指定的域名。在主文件中,您可以使用相对于此域的域名和主机名。如果配置文件中给出的名称以单个点结尾,则认为它是绝对名称,否则认为它是相对于原点的名称。原点本身可以使用 (@) 来引用。

主文件中包含的数据分为资源记录 (RR)。RR 是可以通过 DNS 获得的最小信息单元。每个资源记录都有一个类型。例如,A 记录将主机名映射到 IP 地址,而 CNAME 记录将主机的别名与其官方主机名关联。要查看示例,请查看 示例 6-11,其中显示了 Virtual Brewery 的 named.hosts 主文件。

主文件中的资源记录表示形式共享一种通用格式
[domain] [ttl] [class] type rdata

字段由空格或制表符分隔。如果第一个换行符之前出现左大括号,并且最后一个字段后跟右大括号,则条目可以跨越多行。分号和换行符之间的任何内容都将被忽略。格式术语的描述如下

域名

此术语是条目适用的域名。如果未给出域名,则假定 RR 适用于先前 RR 的域。

ttl

为了强制解析器在一定时间后丢弃信息,每个 RR 都关联一个生存时间 (ttl )。ttl 字段指定信息从服务器检索后有效的秒数。它是一个最多八位数字的十进制数。

如果未给出 ttl 值,则字段值默认为minimum先前 SOA 记录的字段值。

class

这是一个地址类,例如 IP 地址的 IN 或 Hesiod 类中对象的 HS。对于 TCP/IP 网络,您必须指定 IN。

如果未给出 class 字段,则假定为先前 RR 的类。

type

这描述了 RR 的类型。最常见的类型是 A、SOA、PTR 和 NS。以下各节描述了各种类型的 RR。

rdata

这保存与 RR 关联的数据。此字段的格式取决于 RR 的类型。在以下讨论中,将分别针对每个 RR 进行描述。

以下是要在 DNS 主文件中使用的 RR 的部分列表。还有一些我们不会解释的 RR;它们是实验性的,通常用处不大。

SOA

此 RR 描述了一个授权区域(SOA 表示“授权起始”)。它表示 SOA RR 之后的记录包含域的权威信息。每个由 primary 语句包含的主文件都必须包含此区域的 SOA 记录。资源数据包含以下字段

origin

此字段是此域的主名称服务器的规范主机名。它通常以绝对名称给出。

contact

此字段是负责维护域的人员的电子邮件地址,其中 "@" 符号替换为点。例如,如果 Virtual Brewery 的负责人是 janet,则此字段将包含 janet.vbrew.com

serial

此字段是区域文件的版本号,表示为单个十进制数。每当区域文件中的数据发生更改时,都应增加此数字。常见的约定是使用反映上次更新日期的数字,并在其后附加版本号,以涵盖单日发生多次更新的情况,例如,2000012600 是 2000 年 1 月 26 日发生的更新 00。

辅助名称服务器使用序列号来识别区域信息更改。为了保持最新,辅助服务器以一定的时间间隔请求主服务器的 SOA 记录,并将序列号与缓存的 SOA 记录的序列号进行比较。如果编号已更改,则辅助服务器将从主服务器传输整个区域数据库。

refresh

此字段指定辅助服务器应等待多长时间(以秒为单位)来检查主服务器的 SOA 记录。同样,这是一个最多八位数字的十进制数。

通常,网络拓扑不会经常更改,因此对于较大的网络,此数字应指定大约一天的间隔,对于较小的网络,甚至更长。

retry

此数字确定辅助服务器在请求或区域刷新失败时应重试联系主服务器的间隔。它不能太低,否则服务器或网络问题的暂时性故障可能会导致辅助服务器浪费网络资源。一小时或半小时可能是一个不错的选择。

expire

此字段指定辅助服务器在无法联系主服务器后最终应丢弃所有区域数据的时间(以秒为单位)。您通常应将此字段设置为至少一周(604,800 秒),但将其增加到一个月或更长时间也是合理的。

minimum

此字段是未显式包含 ttl 值的资源记录的默认ttl 值。ttl 值指定其他名称服务器可以将 RR 保留在其缓存中的最长时间。此时间仅适用于正常查找,与辅助服务器应尝试更新区域信息的时间无关。

如果您的网络拓扑不经常更改,则一周甚至更长时间可能是一个不错的选择。如果单个 RR 更改更频繁,您仍然可以为它们单独分配较小的 ttl。如果您的网络经常更改,您可能需要将minimum设置为一天(86,400 秒)。

A

此记录将 IP 地址与主机名关联。资源数据字段包含点分十进制表示法的地址。

对于每个主机名,只能有一个 A 记录。此 A 记录中使用的主机名被认为是官方或规范主机名。所有其他主机名都是别名,必须使用 CNAME 记录映射到规范主机名。如果我们的主机的规范名称是 vlager,我们将有一个 A 记录,该记录将该主机名与其 IP 地址关联。由于我们可能还希望另一个名称与该地址关联,例如 news,我们将创建一个 CNAME 记录,该记录将此备用名称与规范名称关联。我们将很快讨论有关 CNAME 记录的更多信息。

NS

NS 记录用于指定区域的主服务器及其所有辅助服务器。NS 记录指向给定区域的主名称服务器,资源数据字段包含名称服务器的主机名。

您将在两种情况下遇到 NS 记录:第一种情况是当您将权限委派给下级区域时;第二种情况是在下级区域的主区域数据库中。父区域和委派区域中指定的服务器集应匹配。

NS 记录指定区域的主名称服务器和辅助名称服务器的名称。这些名称必须解析为地址,以便可以使用它们。有时,服务器属于它们所服务的域,这会导致“先有鸡还是先有蛋”的问题;在名称服务器可访问之前,我们无法解析地址,但在解析其地址之前,我们无法访问名称服务器。为了解决这个难题,我们可以直接在父区域的名称服务器中配置特殊的 A 记录。A 记录允许父域的名称服务器解析委派区域名称服务器的 IP 地址。这些记录通常称为粘合记录,因为它们提供了将委派区域绑定到其父区域的“粘合剂”。

CNAME

此记录将别名与主机的规范主机名关联。它提供了一个备用名称,用户可以通过该名称来引用其规范名称作为参数提供的主机。规范主机名是主文件为其提供 A 记录的主机名;别名只是通过 CNAME 记录链接到该名称,但不拥有任何其他记录。

PTR

此记录类型用于将 in-addr.arpa 域中的名称与主机名关联。它用于将 IP 地址反向映射到主机名。给定的主机名必须是规范主机名。

MX

此 RR 公告域的邮件交换器。邮件交换器在 17.4.1 节中讨论。”MX 记录的语法是
[domain] [ttl] [class] MX preference host

host命名域名的邮件交换器。每个邮件交换器都有一个整数preference与其关联。想要将邮件传递到域名的邮件传输代理会尝试所有为此域拥有 MX 记录的主机,直到成功为止。首先尝试优先级值最低的主机,然后按优先级值递增的顺序尝试其他主机。

HINFO

此记录提供有关系统硬件和软件的信息。其语法是
[domain] [ttl] [class] HINFO hardware software

hardware字段标识此主机使用的硬件。使用特殊约定来指定此项。“机器名称”的有效列表在分配号码 RFC (RFC-1700) 中给出。如果字段包含任何空格,则必须将其括在双引号中。software字段命名系统使用的操作系统软件。同样,应选择分配号码 RFC 中的有效名称。

描述基于 Intel 的 Linux 机器的HINFO记录应如下所示
tao	 36500  IN  HINFO  IBM-PC  LINUX2.2
HINFO在基于 Motorola 68000 的机器上运行 Linux 的记录可能如下所示
cevad 36500 IN  HINFO  ATARI-104ST LINUX2.0
jedd  36500 IN  HINFO  AMIGA-3000  LINUX2.0

6.3.4. 仅缓存的 named 配置

有一种特殊的named配置,我们将在解释如何构建完整的名称服务器配置之前讨论它。它被称为仅缓存配置。它实际上不服务于域,而是充当主机上生成的所有 DNS 查询的中继。此方案的优点是它可以构建缓存,因此只有对特定主机的第一个查询才会实际发送到 Internet 上的名称服务器。任何重复的请求都将直接从本地名称服务器的缓存中回答。这似乎还不太有用,但是当您拨号连接到 Internet 时,它将变得有用,如 第 7 章第 8 章 中所述。

Anamed.boot仅缓存服务器的
; named.boot file for caching-only server
directory                            /var/named
primary       0.0.127.in-addr.arpa   named.local ; localhost network
cache         .                      named.ca    ; root servers

文件如下所示named.boot除了此named.ca文件之外,您还必须使用有效的根名称服务器列表设置

文件。您可以复制并使用 示例 6-10 用于此目的。仅缓存服务器配置不需要其他文件。

6.3.5. 编写主文件

named.ca示例 6-10示例 6-11示例 6-12示例 6-13 给出了位于 vlager 的啤酒厂名称服务器的示例文件。由于所讨论的网络(单个 LAN)的性质,该示例非常简单明了。

示例 6-10 中显示的缓存文件显示了根名称服务器的示例提示记录。典型的缓存文件通常描述大约十几个名称服务器。您可以使用下一节中描述的 nslookup 工具获取根域的当前名称服务器列表。[2]

;
; /var/named/named.ca          Cache file for the brewery.
;                We're not on the Internet, so we don't need
;                any root servers. To activate these
;                records, remove the semicolons.
;
;.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
;A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
;.                        3600000      NS    B.ROOT-SERVERS.NET.
;B.ROOT-SERVERS.NET.      3600000      A     128.9.0.107
;.                        3600000      NS    C.ROOT-SERVERS.NET.
;C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
;.                        3600000      NS    D.ROOT-SERVERS.NET.
;D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
;.                        3600000      NS    E.ROOT-SERVERS.NET.
;E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
;.                        3600000      NS    F.ROOT-SERVERS.NET.
;F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
;.                        3600000      NS    G.ROOT-SERVERS.NET.
;G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
;.                        3600000      NS    H.ROOT-SERVERS.NET.
;H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
;.                        3600000      NS    I.ROOT-SERVERS.NET.
;I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
;.                        3600000      NS    J.ROOT-SERVERS.NET.
;J.ROOT-SERVERS.NET.      3600000      A     198.41.0.10
;.                        3600000      NS    K.ROOT-SERVERS.NET.
;K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129 
;.                        3600000      NS    L.ROOT-SERVERS.NET.
;L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12
;.                        3600000      NS    M.ROOT-SERVERS.NET.
;M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
;

示例 6-10。 named.ca 文件

;
; /var/named/named.hosts       Local hosts at the brewery
;                               Origin is vbrew.com
;
@                IN  SOA   vlager.vbrew.com. janet.vbrew.com. (
                           2000012601 ; serial
                           86400      ; refresh: once per day
                           3600       ; retry:   one hour
                           3600000    ; expire:  42 days
                           604800     ; minimum: 1 week
                           )
                 IN  NS    vlager.vbrew.com.
;
; local mail is distributed on vlager
                 IN  MX    10 vlager
;
; loopback address
localhost.       IN  A     127.0.0.1
;
; Virtual Brewery Ethernet
vlager           IN  A     172.16.1.1
vlager-if1       IN  CNAME vlager
; vlager is also news server
news             IN  CNAME vlager
vstout           IN  A     172.16.1.2
vale             IN  A     172.16.1.3
;
; Virtual Winery Ethernet
vlager-if2       IN  A     172.16.2.1
vbardolino       IN  A     172.16.2.2
vchianti         IN  A     172.16.2.3
vbeaujolais      IN  A     172.16.2.4
;
; Virtual Spirits (subsidiary) Ethernet
vbourbon         IN  A     172.16.3.1
vbourbon-if1     IN  CNAME vbourbon

示例 6-11。 named.hosts 文件

;
; /var/named/named.local       Reverse mapping of 127.0.0
;                              Origin is 0.0.127.in-addr.arpa.
;
@             IN  SOA   vlager.vbrew.com. joe.vbrew.com. (
                        1          ; serial
                        360000     ; refresh: 100 hrs
                        3600       ; retry:   one hour
                        3600000    ; expire:  42 days
                        360000     ; minimum: 100 hrs
                        )
              IN  NS    vlager.vbrew.com.
1             IN  PTR   localhost.

示例 6-12。 named.local 文件

;
; /var/named/named.rev         Reverse mapping of our IP addresses
;                               Origin is 16.172.in-addr.arpa.
;
@             IN  SOA   vlager.vbrew.com. joe.vbrew.com. (
                          16         ; serial
                          86400      ; refresh: once per day
                          3600       ; retry:   one hour
                          3600000    ; expire:  42 days
                          604800     ; minimum: 1 week
                          )
              IN  NS    vlager.vbrew.com.
; brewery
1.1           IN  PTR   vlager.vbrew.com.
2.1           IN  PTR   vstout.vbrew.com.
3.1           IN  PTR   vale.vbrew.com.
; winery
1.2           IN  PTR   vlager-if2.vbrew.com.
2.2           IN  PTR   vbardolino.vbrew.com.
3.2           IN  PTR   vchianti.vbrew.com.
4.2           IN  PTR   vbeaujolais.vbrew.com.

示例 6-13。 named.rev 文件

6.3.6. 验证名称服务器设置
$ nslookup
hostname

nslookup 是一个用于检查名称服务器设置运行情况的强大工具。它可以交互式地与提示符一起使用,也可以作为具有即时输出的单个命令使用。在后一种情况下,您只需将其作为nslookup 查询

中指定的名称服务器resolv.confдляhostname

。(如果此文件命名了多个服务器,则 nslookup 随机选择一个。)

但是,交互模式更加令人兴奋。除了查找单个主机外,您还可以查询任何类型的 DNS 记录并传输域的整个区域信息。

当不带参数调用时,nslookup 会显示它使用的名称服务器并进入交互模式。在 > 提示符下,您可以键入要查询的任何域名。默认情况下,它会询问 A 类记录,即包含与域名相关的 IP 地址的记录。

> set type=type

您可以通过发出type来查找记录类型,其中

是前面描述的资源记录名称之一,或 ANY。
$ nslookup
Default Server:  tao.linux.org.au
Address:  203.41.101.121

> metalab.unc.edu
Server:  tao.linux.org.au
Address:  203.41.101.121

Name:    metalab.unc.edu
Address:  152.2.254.81

>

您可能有以下 nslookup 会话

输出首先显示正在查询的 DNS 服务器,然后显示查询结果。如果您尝试查询没有关联 IP 地址的名称,但在 DNS 数据库中找到了其他记录,则 nslookup 返回错误消息 “未找到 A 类型记录
> unc.edu
Server:  tao.linux.org.au
Address:  203.41.101.121

*** No address (A) records available for unc.edu
> set type=SOA
> unc.edu
Server:  tao.linux.org.au
Address:  203.41.101.121

unc.edu
        origin = ns.unc.edu
        mail addr = host-reg.ns.unc.edu
        serial = 1998111011
        refresh = 14400 (4H)
        retry   = 3600 (1H)
        expire  = 1209600 (2W)
        minimum ttl = 86400 (1D)
unc.edu name server = ns2.unc.edu
unc.edu name server = ncnoc.ncren.net
unc.edu name server = ns.unc.edu
ns2.unc.edu     internet address = 152.2.253.100
ncnoc.ncren.net internet address = 192.101.21.1
ncnoc.ncren.net internet address = 128.109.193.1
ns.unc.edu      internet address = 152.2.21.1

。”但是,您可以通过发出 set type 命令使其查询 A 类型以外的记录。要获取 unc.edu 的 SOA 记录,您将发出
> set type=MX
> unc.edu
Server:  tao.linux.org.au
Address:  203.41.101.121

unc.edu preference = 0, mail exchanger = conga.oit.unc.edu
unc.edu preference = 10, mail exchanger = imsety.oit.unc.edu
unc.edu name server = ns.unc.edu
unc.edu name server = ns2.unc.edu
unc.edu name server = ncnoc.ncren.net
conga.oit.unc.edu       internet address = 152.2.22.21
imsety.oit.unc.edu      internet address = 152.2.21.99
ns.unc.edu      internet address = 152.2.21.1
ns2.unc.edu     internet address = 152.2.253.100
ncnoc.ncren.net internet address = 192.101.21.1
ncnoc.ncren.net internet address = 128.109.193.1

以类似的方式,您可以查询 MX 记录

使用 ANY 类型返回与给定名称关联的所有资源记录。
> set type=NS
> .
Server:  tao.linux.org.au
Address:  203.41.101.121

Non-authoritative answer:
(root)  name server = A.ROOT-SERVERS.NET
(root)  name server = H.ROOT-SERVERS.NET
(root)  name server = B.ROOT-SERVERS.NET
(root)  name server = C.ROOT-SERVERS.NET
(root)  name server = D.ROOT-SERVERS.NET
(root)  name server = E.ROOT-SERVERS.NET
(root)  name server = I.ROOT-SERVERS.NET
(root)  name server = F.ROOT-SERVERS.NET
(root)  name server = G.ROOT-SERVERS.NET
(root)  name server = J.ROOT-SERVERS.NET
(root)  name server = K.ROOT-SERVERS.NET
(root)  name server = L.ROOT-SERVERS.NET
(root)  name server = M.ROOT-SERVERS.NET

Authoritative answers can be found from:
A.ROOT-SERVERS.NET      internet address = 198.41.0.4
H.ROOT-SERVERS.NET      internet address = 128.63.2.53
B.ROOT-SERVERS.NET      internet address = 128.9.0.107
C.ROOT-SERVERS.NET      internet address = 192.33.4.12
D.ROOT-SERVERS.NET      internet address = 128.8.10.90
E.ROOT-SERVERS.NET      internet address = 192.203.230.10
I.ROOT-SERVERS.NET      internet address = 192.36.148.17
F.ROOT-SERVERS.NET      internet address = 192.5.5.241
G.ROOT-SERVERS.NET      internet address = 192.112.36.4
J.ROOT-SERVERS.NET      internet address = 198.41.0.10
K.ROOT-SERVERS.NET      internet address = 193.0.14.129
L.ROOT-SERVERS.NET      internet address = 198.32.64.12
M.ROOT-SERVERS.NET      internet address = 202.12.27.33

nslookup 的实际应用除了调试外,还可以获取根名称服务器的当前列表。您可以通过查询与根域关联的所有 NS 记录来获取此列表

要查看可用命令的完整集,请在 nslookup 中使用 help 命令。

6.3.7. 其他有用的工具

有一些工具可以帮助您完成作为 BIND 管理员的任务。我们将在此处简要介绍其中两个。有关如何使用它们的更多信息,请参阅这些工具随附的文档。hostcvt 通过将您的/etc/hosts

文件转换为 named 的主文件,从而帮助您进行初始 BIND 配置。它生成正向 (A) 和反向映射 (PTR) 条目,并处理别名。当然,它不会为您完成所有工作,因为您可能仍然希望调整 SOA 记录中的超时值,例如,或添加 MX 记录。尽管如此,它可能有助于您节省一些阿司匹林。hostcvt 是 BIND 源代码的一部分,但也可以在一些 Linux FTP 服务器上作为独立软件包找到。

设置名称服务器后,您可能需要测试您的配置。一些使这项工作变得更加简单的优秀工具:第一个称为 dnswalk,它是一个基于 Perl 的软件包。第二个称为 nslint。它们都会遍历您的 DNS 数据库,寻找常见错误,并验证它们找到的信息是否一致。另外两个有用的工具是 hostdig,它们是通用的 DNS 数据库查询工具。您可以使用这些工具手动检查和诊断 DNS 数据库条目。

这些工具很可能以预打包形式提供。dnswalknslint 的源代码可从 http://www.visi.com/~barr/dnswalk/ftp://ftp.ee.lbl.gov/nslint.tar.Z 获得。hostdig 源代码可以在 ftp://ftp.nikhef.nl/pub/network/ftp://ftp.is.co.za/networking/ip/dns/dig/ 找到。

[1]

注释

[2]

BIND 4.9 由 Paul Vixie 开发,paul@vix.com,但 BIND 现在由 Internet Software Consortium 维护,bind-bugs@isc.org