BIND9 DNS配置详解

发布时间:2020-01-03编辑:脚本学堂
非常值得推荐给大家的一篇关于bind dns配置的文章,各方面讲解清晰透彻,正在学习bind dns配置的朋友,不可错过。

现在﹐我们暂时不要修改 named.conf 设定档﹐请退出它﹐然后转到 /var/named 目录﹐看看里面有些什么东东﹖最起码﹐您会看到如下三个档案﹕
named.ca
localhost.zone
named.local
不知道您是否有灵感了﹖没错﹕刚纔在 named.conf 里面﹐每一个 zone 所指定的 file 都出现在这里﹗先让我们看看 root zone 的档案内容吧﹕
; This file holds the inFORMation on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . "
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC registration services
; under anonymous FTP as
; file /domain/named.root
; on server FTP.RS.INTERNIC.NET
; -OR- under Gopher at RS.INTERNIC.NET
; under menu InterNIC Registration Services (NSI)
; submenu InterNIC Registration Archives
; file named.root
;
; last update: Aug 22, 1997
; related version of root zone: 1997082200
;
;
; FORMerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; FORMerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; FORMerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; FORMerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; FORMerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; FORMerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; FORMerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; FORMerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; FORMerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
;
; housed in LINX, operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; temporarily housed at ISI (IANA)
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; housed in Japan, operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File

在 /var/named 中的 RR 记录文件里面的批注符号﹐和 /etc/named.conf 的批注符号不一样哦﹕在 named.conf 中是用双斜线“ // ”﹔而在这里则使用 “ ﹔”符号。无论如何﹐您都不能用 “ # ”来做批注符号就是了。(好混乱哦~~~ 这就是计算机﹗^_^ )

在上面这个 named.ca 档案里面﹐您如果将所有的批注行拿掉﹐您会发现一共有 13 行是以‘ . ’开头的﹐那就是所谓的 root zone 了﹗然后﹐第二栏都是‘ 3600000 ’﹐这是 TTL (Time To Live) 设定﹐也就是在 cache 中保留的时间﹐以秒为单位(所以这里是 100 小时)。其后的‘ NS ’是“Name Server”的意思﹐是 DNS 记录名称之一﹐也就是负责这个记录的 name server 是哪一台主机(这里一共由 13 台主机共同负责 root zone 的 NS 服务)。

虽然我们这里用 NS 指定了 name server 的主机名称﹐但对计算机系统来说﹐这些名称必须能解释为 IP 地址才有用(呵~~ 这个正是 DNS 系统的功能)﹐所以﹐这里分别用 13 个‘ A ’记录﹐也就是 Address 的意思﹐解释 [A-M].ROOT-SERVER.NET. 这些主机各自的 IP 地址所在。

如果您了解 DNS 的查询模式﹐您会知道 DNS 服务器在查询非自己管辖的 zone 的时候﹐首先会向 root 查询下一级的 zone 在哪里﹐然后逐级查询下去。但问题是﹕当 named 刚启动的时候﹐在 cache 里面一片空白﹐它怎么知道 root zone 的 servers 在哪里呢﹖这不是一个矛盾吗﹖所以﹐就必须靠这个档案告诉 named 关于 root zone 的 servers 有哪些﹖以及在哪里﹖ --- 明白了吗﹖

因为这个文件是以静态的方式维护的﹐很难保证这个档的内容永远都正确﹐如果 root zone 的记录发生改变了怎么办(虽然这机会不大)﹖或许﹐您已经在档案的开头批注那里得知﹐您可以在任何时候透过 ftp 或 gopher 取得这个档案的最新版本。如果您还没读过那些批注﹐那就请带着字典读一下吧。如果您真的有需要更新这个 named.ca 檔﹐那可以按如下步骤进行﹕
ftp FTP.RS.INTERNIC.NET
anonymous
your_account@your.mail.server
cd domain
get named.root
bye
cp /var/named/named.ca /var/named/named.ca.bak
cat named.root > /var/named/named.ca
除了刚才的 named.ca 之外﹐第二个 zone 的记录文件是 localhost.zone ﹐从 named.conf 中您应该知道它是 zone "localhost" 的记录文件﹐它的内容如下﹕
 

复制代码 代码如下:
$TTL 86400
$ORIGIN localhost.
@1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS @
1D IN A 127.0.0.1

内容很简单﹐但您是否真的了解每一行的设定意思呢﹖如果不清楚或不确定﹐那就让我们一起探讨探讨吧。

首先﹐第一行是一个 TTL 设定﹐目前是定义出这个记录文件里面的各项记录的预设 TTL 值为 86400 秒(刚好是一天)。您的记录文件或许没有这行﹐事实上没什么关系﹐您可以自己补上﹐否则﹐在启动 named 的时候会碰到一些警告﹐无伤大雅的﹔但如果您的确在意那些警告﹐那就加上这行。您要知道﹐在记录文件中宣告的所有资源记录(RR - Resource Record)﹐都一定有一个 TTL 设定﹐如果没有﹐则使用这里预设的值。

第二行是一个 ORIGIN 设定﹐说明下面的记录源出何处(这里是源出 localhost. 的记录)。请您加倍留意最后的一个小数点“ .”﹐少了它或多了它﹐记录名称完全不一样﹗在 DNS 记录中﹐我们称这样以小数点结尾的名称为“ 全域名称 ”即 FQDN ( Fully Qualified Domain Name ) 。如果缺少了这个点会怎样呢﹖就会将所属的 ORIGIN ( @ ) 附加在记录名称后面﹔而这 ORIGIN 就是上一个 $ORIGIN 宣告之后的名称﹐如果在前面找不到 $ORIGIN 宣告﹐那就以 /etc/named.conf 中定义的 zone 名称为基准。以目前的例子来说﹐如果没有这个小数点的话﹐“localhost”会变成“localhost.localhost”﹔但如果有小数点的话 “localhost.”就只能是“localhost.”。所以﹐这个小点“.”非常重要﹐在以后设定中一定要非常留神﹗﹗(这也初学者最常犯的错误之一)

然后﹐第三行﹐是一个 SOA 记录的设定﹐在这里我们看到一个特殊字符“ @ ”﹐它就是 ORIGIN 的意思﹐也就是刚纔所定义的 $ORIGIN localhost. 内容﹐您可以写成 localhost. 也可以用 @ 来代替。假如这个档前面没有定义 $ORIGIN 的话﹐那这个 @ 的值就以 named.conf 里的 zone 为准。既然这样﹐当然是使用“@”啦﹐尤其对于像我这样的懒惰鬼来说﹐巴不得少打一串字﹐同时还能避免因打字不准所造成的失误﹐何乐不为﹖

在 @ 之后﹐是 TTL 的设定﹐这里是 1D﹐也就是一天的意思﹐如果您喜欢﹐可以用 86400 (秒) 来设定﹐如果这里的 TTL 没有设定﹐则参考前面的 $TTL 值﹐如果前面没有定义 $TTL﹐那就参考其后介绍的 minium ttl 设定。

Tips﹕事实上﹐您可以为每一个 RR 记录设定其自己的 TTL ﹐只要将数字写在第二个字段﹐也就是‘IN’前面就可以了。

在 TTL 之后是一个 IN﹐定义出目前的记录类型是属于 internet class 的 (奇怪﹐目前的 DNS 还有其它 class 吗﹖)。

在 IN 之后就是这行 RR 的记录类别名称﹐这里是 SOA ﹐也就是“Start Of Authority”的意思﹐表示目前区域的授权记录开始。每一个记录文件只能有一个 SOA ﹐不得重复﹐而且必须是所负责的 zone 中第一个“记录”。

紧接 SOA 后面﹐指定了这个区域的授权主机和管理者的信箱﹐这里分别是“ @ ”和“ root ”﹐也就是 localhost. 主机和 root 信箱。这里要注意的是﹕SOA 的主机名称必须能够在 DNS 系统中找到一个 A 记录 (以后会提到)﹔另外﹐我们平时使用的信箱通常是“user@host”这样的格式﹐但因为“@”在 DNS 记录中是个保留字符(刚才已经提过)﹐所以在 SOA 中就用“.”来代替了“ @ ”。目前这个信箱是 root (并没有主机地址)﹐也就是本机﹐您可以写成 “root.localhost.”但不能写成“root@localhost.”。

接下来的 SOA 设定﹐是被括在“( )”之间的 5 组数字﹐主要作为和 slave 服务器同步 DNS 数据所使用的数据﹕

Serial﹕其格式通常会是“年月日+修改次序”(但也不一定如此﹐您自己能够记得就行)。当 slave 要进行数据同步的时候﹐会比较这个号码。如果发现在这里的号码比它那边的数值“大”﹐就进行更新﹐否则忽略。不过设 serial 有一个地方您要留意﹕不能超过 10 位数字﹗

Refresh﹕这里是是告诉 slave 要隔多久要进行数据同步(是否同步要看 Serial 的比较结果)。

Retry﹕如果 slave 在进行更新失败后﹐要隔多久再进行重试。

Expire﹕这是记录逾期时间﹕当 slave 一直未能成功与 master 取得联络﹐那到这里就放弃 retry﹐同时这里的数据也将标识为过期( expired )。

Minimum﹕这是最小预设 TTL 值﹐如果您在前面没有用“$TTL”来定义﹐就会以此值为准。

以上的数字都是以秒为单位﹐但您也可以用 H(小时)﹑D(天)﹑W(星期)来做单位﹐如﹕3H 和 259200 是一样的。但要值得一提的是﹕我在 RH6.2 版本中曾测试过使用 netconf 这工具来设定 DNS ﹐发现只能使用“秒”来设定。否则 netconf 会自动的把英文字母删除掉﹐那就不是我所预期的设定值了。无论您用什么单位来设定﹐都要遵守下面的规则﹕
expire >= refresh + retry
expire >= 10 * retry

Tips﹕请注意﹕SOA 记录中这对 “ ( ) ”符号之第一个 “ (”括号一定要和 SOA 写在同一行﹐而不能用 Enter 断行到下一行去(有时候您在书本的范例中看到这个符号排在下一行去了﹐那是因为版面的关系而已)﹐而且其左边最好有一个空格键或 tab 建。而最后一个 “ )”括号也不能写在批注符号 “ ﹔”的右边。

设定 DNS 的 RR 记录文件﹐其格式要求非常严格﹐我们丝毫不能掉以轻心。比方说﹕如果句子不是以空格键﹑Tab 键﹑ 或批注符号 ( ; )开头﹐也不在 SOA 的 “ ( ) ”之内﹐ 则表示要定义一个“新记录项 (Entry) ”﹔如果句子是以空格键或 tab 键开始的话﹐其设定被视为上一个“记录项”的内容。所以﹐如果您要为“同一个记录项”定义多个记录设定﹐而不想重复打字﹐您倒可以偷懒﹕在接着它的后面几行用空白或 Tab 来缩排就可以了。所以﹐最后这两行还是关于 localhost. 的设定﹐因为上一个“数据项”为 “ @ ”﹐也就是 localhost. 。当然﹐您如不喜欢﹐这两行句子也可以这样写﹕
 

复制代码 代码如下:
;; 修改前﹕
1D IN NS @
1D IN A 127.0.0.1
;; 修改后﹕
@1D IN NS @
@1D IN A 127.0.0.1
;; 或﹕
localhost.1D IN NS localhost.
localhost.1D IN A 127.0.0.1

这两行的意思是说﹕负责 localhost. 这个记录的 name server ( NS ) 是 localhost. 这台机器﹔而 localhost. 的 IP Address ( A ) 是 127.0.0.1 。DNS 里面的 A 记录应该是最常见的记录类型之一﹐如果在 IPv6 版本中﹐地址记录名称则改为 AAAA 。

Tips﹕关于更多的记录名称﹐请参阅“学习网络”中的“DNS 协议”。

最后﹐让我们检查剩下的 named.local 档案吧。如果您还没忘记 /etc/named.conf 的内容的话﹐应知道这个档案是 zone "0.0.127.in-addr.arpa" 的‘反解’记录文件﹐它的内容也很简单﹕
 

复制代码 代码如下:
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.

前面的部份应该不用多解释了(如果您还不清楚﹐那就必须重读前面的文章)。最后一行我们看到一个“ PTR ”记录﹐它是“Pointer”的意思。 PTR 通常用于反记录当中﹐将 IP 指向主机名称(刚好和 A 记录相反)。您或许还不是很清楚这个句子为什么是这样设定的吧﹖或许您会这样问﹕您不是说 PTR 是从 IP 反查询主机名称的吗﹖为什么这里是 1 而不是 127.0.0.1 ?

哦﹐如果您有这样的问题﹐那证明您对 DNS 的查询模式还不是了解得很透彻﹐不过也不用紧张﹐在后面的实作例子中﹐您将获得更进一步的感性认识。这里﹐我暂时简单解释上面这行就是了﹕
我们知道 127.0.0.1 所对应的主机名称就是 localhost ﹐因为这里是反向查询﹐所以 IP 顺序是掉过来写的﹐于是这个反查询 IP 就是﹕“ 1.0.0.127.in-addr.arpa. ”﹐由于我们这里的 ORIGIN ( @ ) 是“ 0.0.127.in-addr.arpa." ”﹐因为在记录文件中﹐如果名称不带小数点﹐则被补上 $ORIGIN 或 zone 的名称﹐所以这个 “ 1 ”就成了 1.0.0.127.in-addr.arpa. ”。同样道理﹐后面的“ localhost. ”如果漏了最后的小点的话﹐则会成为“ localhost.0.0.127.in-addr.arpa. ”﹐这显然是不对的。假如您喜欢﹐可以将这行句子修改成为下面的样子﹕
 

复制代码 代码如下:
﹔﹔修改前﹕
1 IN PTR localhost.
﹔﹔修改后﹕
1.0.0.127.in-addr.arpa. IN PTR localhost.

嗯~~ DNS 的设定看起来真的蛮伤脑筋的﹐或许您到这里已经被搞得乱七八糟了。假如真的如此﹐我建议您先休息一下﹐然后回来重读上面的内容﹐直到您能理解之后﹐才继续下面的。否则﹐越往后﹐您的问题越像滚雪球那样越来越大﹐这更浪费时间啦~~~ Okay? Take it easy ...

前面所看到的设定﹐事实上已经足够让您的 DNS 主机跑起来了﹗因为它能够透过 root 查询其它 DNS 的缘故﹐您无须在再加设任何设定﹐您就可以利用这台主机为大家提供 Internet 的 DNS 查询服务。只是﹐这样的 DNS 主机﹐我们称之为 cache only name server 而已。如果您了解 DNS 的查询流程﹐您应该知道 DNS 的 cache 作用和它的效益。所以﹐就算您不打算设定自己的 domain name 服务 ﹐我也建议您至少可以将 cache only NS 跑起来。

设定 NAMED
当您对 /etc/named.conf 档案和 /var/named 目录的设定有初步了解之后﹐下面﹐让我们用一个实际例子来看看如何设定自己的 domain name 服务吧。我个人的习惯是先将网域和主机的数据整理出来﹐并列成一个表格﹕
Domain 名称 IP 地址
rh71.siyongc.domain 192.168.100.23
acer.siyongc.domain 192.168.100.20
mdk.siyongc.domain 192.168.100.24
emilie.siyongc.domain 192.168.100.11
rh71.dmz.domain 10.0.1.131
lp64.dmz.domain 10.0.1.130

当所有的主机名称和 IP 整理出来之后﹐再看看我们这里需要设定哪些 domain ﹖ 从上面的数据中﹐我们不难发现有两个正解 zone 和两个反解 zone 需要设定﹐分别是﹕
区域名称 记录项名称
siyongc.domain emilie﹑acer﹑rh71﹑mdk
dmz.domain lp64﹑rh71
100.168.192.in-addr.arpa 11﹑20﹑23﹑24
1.0.10.in-addr.arpa 130﹑131

因为这些 IP 和 domain 都在内部网络使用﹐所以我们省却了注册这关﹐同时也不必担心授权的问题。但这些信息也只能在内部网络使用﹐无论如何是不能设定在对外的 DNS 上面的 (为什么﹖除了安全的考虑之外﹐private IP 的使用本来就有这样的规定﹐就算您真的对外散布这些 DNS 信息﹐在 IP 的路由上还是有问题﹐所以﹐内部的信息﹐只能内部使用)。

一般来说﹐我会先设定“反查询区域(revers zone)”﹐当然﹐这是个人习惯而已。所以﹐我首先在 /etc/named.conf 上面补上两个反解 zone 的设定﹕
 

复制代码 代码如下:

zone "100.168.192.in-addr.arpa" IN {// 定义反解区域名称
type master;// 定义服务器类型
file "192.168.100.rev";// 指定记录文件名称
};// 结束区域设定

zone "1.0.10.in-addr.arpa" IN {
type master;
file "10.0.1.rev";
};

注意哦﹕如果您要设定外部 DNS 的反解﹐那就先获得 ISP 的授权才能自己设定﹔否则反解部份就不用自己担心了﹐但一定要请 ISP 帮忙。
Tips﹕假如您是 hinet 的固定制 ADSL 用户﹐可以到 hinet 的网站填写表格﹐请他们帮忙设定反解﹕
http://hidomain.hinet.net/rever.html

其它 ISP 的用户﹐请自行接洽 ISP 的客服部门。无论如何﹐如果没有取得授权﹐那就不要自己设﹗

这里﹐我们再一次碰到反解区域的识别标志﹕“ .in-addr.arpa ”﹐同时﹐我们解释一下上次关于本机反解还没说明的地方﹕如果您了解 DNS 的授权和查询过程(这章一开始的时候﹐我就已要求您一定要学习的)﹐您会知道反解查询是先从 root 开始(正解也是一样)﹐然后到 arpa ﹑到 in-addr ﹑到第一组 IP ﹑到第二组 IP ﹑...... 这样查询下来的。所以﹐在设定反区域的时候﹐您一定要将您的 net ID 部份反过来写﹐例如﹕我的网络为 192.168.100.0/24﹐它的反查询区域名则是﹕“100.168.192.in-addr.arpa”﹔假如我将 netmask 改为 16 bit ﹐即变成 192.168.0.0/16﹐它的反解区域名就会变成﹕“168.192.in-addr.arpa”。如果您还搞不懂如何区分 Net ID 和 Host ID﹐请立即去看一看“学习网络”中的“IP 基础”。

同时﹐我将这些 zone 都设定为“主 DNS 服务器”(即﹕master﹐也有人称之为 primary dns )。

在每个 zone 的最后部份﹐我分别指定了它们各自的记录文件名称。它们都存放在 /var/named 这个目录下面(也就是前面 options 指定的 directory 啦)。档案的名称随您喜欢﹐不致做成混乱则可。

完成上面的设定之后﹐我们就可以到 /var/named 目录去建立相应的记录档案了。说实在﹐在 named.conf 里面如何定义文件名称没一定的标准﹐只要您能正确指定哪个记录文件给哪个 zone 使用﹐而且文件名称能够一致就行。首先﹐根据第一个 zone 的 file 设定﹐我要建立一个 /var/named/192.168.100.rev 档案﹐其内容如下﹕
 

复制代码 代码如下:
$TTL 86400
@ IN SOA rh71.siyongc.domain. root.rh71.siyongc.domain. (
2001111601 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
@ IN NS rh71.siyongc.domain.
@ IN NS lp64.dmz.domain.
11 IN PTR emilie.siyongc.domain.
20 IN PTR acer.siyongc.domain.
23 IN PTR rh71.siyongc.domain.
24 IN PTR mdk.siyongc.domain.

而另外一个反解设定档是 /var/named/10.0.1.rev ﹐我们依样画葫芦就行了﹕
 

复制代码 代码如下:
$TTL 86400
@ IN SOA rh71.siyongc.domain. root.rh71.siyongc.domain. (
2001111601 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
@ IN NS rh71.siyongc.domain.
@ IN NS lp64.dmz.domain.
130 IN PTR lp64.dmz.domain.
131 IN PTR rh71.dmz.domain.

就这样﹐反解 DNS 就设定完成了﹗是否很简单呢﹖如果您回答“ Yes ”的话﹐那就让我们继续正解区域的设定吧。同样的﹐先在 /etc/named.conf 里面加上两个 zone﹕
 

复制代码 代码如下:

zone "siyongc.domain" IN {
type master;
file "siyongc.domain";
};

zone "dmz.domain" IN {
type master;
file "dmz.domain";
};

完成后﹐再建立 /var/named/siyongc.domain 这个档案﹕
 

复制代码 代码如下:

$TTL 86400
$ORIGIN siyongc.domain.
@ IN SOA rh71.siyongc.domain. root.rh71.siyongc.domain. (
2001111601 28800 14400 3600000 86400 )
IN NS rh71.siyongc.domain.
IN NS lp64.dmz.domain.
IN MX 10 rh71.siyongc.domain.
IN MX 20 lp64.dmz.domain.
;; -- default address
@ IN A 192.168.100.23
;; -- linux servers --
rh71 IN A 192.168.100.23
IN MX 0 rh71.siyongc.domain.
IN MX 10 lp64.dmz.domain.
IN HINFO "Petium II 266""redhat 7.1"
IN TXT "The internet gateway."

mdk IN A 192.168.100.24
IN MX 0 mdk.siyongc.domain.
IN MX 10 rh71.siyongc.domain.
IN HINFO "Petium II 266 dell""Mandrak 8.0"

;; -- Windows desktops --
acer IN A 192.168.100.20
IN MX 0 mdk.siyongc.domain.
IN HINFO "Petium III 800 acer""Windows ME"
emilie IN A 192.168.100.11
IN MX 0 mdk.siyongc.domain.
IN HINFO "Petium II 300""Windows 98"
;; -- cnames --
gw IN CNAME rh71
www IN CNAME rh71
ftp IN CNAME rh71
mail IN CNAME rh71
 

这里﹐我们在正解记录文件里面看到几个新的记录类别﹐或许需要进一步讲解一下的﹕

因为我这个区域的记录分别由两台主机负责﹐所以我这里指定了两个 NS 记录。这里﹐如果您确定上一个 ORIGIN 是正确的话﹐那也可以偷懒﹕正如我上面解释过﹐如果名称后面不是以“.”结尾的话﹐它所属的 ORIGIN ( @ ) 就会自动的加在该记录名称后面﹔所以﹐您可以只写“ rh71 ”而不带小数点结尾﹐就会变成“rh71.siyongc.domain.”了﹐这个名称实际就是我所要的。不过﹐我建议您在设定 NS 的时候还是尽量使用 FQDN 为好。