- 一个C类网段地址(本例中假定是192.22.33)
- 企业域名为 my.com,并已注册 (主域名服务器地址 192.22.33.20,主机名为 linux.my.com)
- 企业网通过路由器与Internet连接
- 多个网段
- 封闭的内部网
- 只能访问局部公共网的情况(如169网、上海热线等)
named 启动时需要读取一个初始化文件,缺省情况下是 /etc/named.boot,所以/etc/named.boot 是 named 的基本配置文件。
虽然启动 named 可直接执行 named,在Linux上我们可以使用一个控制 named 的工具 ndc。ndc 可以用于启动、中止、重启动、刷新DNS数据、输出DNS数据等多种调试功能,我在这里推荐大家用这个工具来帮助 DNS 服务器的调试。
有关 ndc 的详细用法,请参看 Linux 有关文档。
; ; boot file for name server ; directory /var/named primary my.com db.my primary 0.0.127.IN-ADDR.ARPA db.127.0.0 primary 33.22.192.IN-ADDR.ARPA db.192.22.33 cache . db.cache |
- diretory /var/named
指定 named 从 /var/named 目录下读取 DNS 数据文件。这个目录用户可自行指定并创建,指定后所有的DNS 数据文件都存放在此目录下。 - primary my.com db.my
指定 named 作为 my.com 域的主域名服务器,db.my 文件中包含所有 *.my.com 形式的域名转换数据。 - primary 0.0.127.IN-ADDR.ARPA db.127.0.0 指定 named 作为127.0.0网段地址转换主服务器,db.127.0.0 文件中包含了 127.0.0.* 形式的地址到域名的转换数据。(127.0.0网段地址是局域网接口的内部 loopback 地址)
- primary 33.22.192.IN-ADDR.ARPA db.192.22.33 指定 named 作为 192.22.33 网段地址转换主服务器,db.192.22.33 文件中包含了所有 192.22.33.* 形式的地址到域名的转换数据。
- cache . db.cache
@ IN SOA linux.my.com. root.linux.my.com. ( 199511301 ; serial, todays date + todays serial # 28800 ; refresh, seconds 7200 ; retry, seconds 3600000 ; expire, seconds 86400 ) ; minimum, seconds NS linux.my.com. MX 10 support.my.com. localhost A 127.0.0.1 linux A 192.22.33.20 support2 A 192.22.33.102 hp712 A 192.22.33.160 support A 192.22.33.100 mail MX 10 support.my.com. MX 20 support2.my.com. www CNAME hp712.my.com. ftp CNAME hp712.my.com. ns CNAME linux.my.com. |
括号后面有一条NS记录和一条MX记录,定义了域名服务器本身的域名和username@my.com 形式邮件地址所对应的邮件服务器名字。
在此以下是各种域名/地址转换数据,其中A记录是DNS域名到IP地址的记录,是必须有的,以hp712.my.com为例,在A记录中域 my.com 被省略,只写成 hp712,named 在处理时会根据 named.boot 中的定义自动加上 my.com,而其对应IP地址为 192.22.33.160。
另一种记录是 MX 记录。MX 是邮件地址转换记录,本例中定义了将 username@mail.my.com 的邮件地址转换成username@support.my.com 或username@support2.my.com,即实际上真正的邮件服务器是support.my.com和 support2.my.com,其中support.my.com的优先数为10,support2.my.com的优先数为20,所以通常邮件首先被发往优先数小的主机 support.my.com。
还有一些是为方便提供的CNAME记录。CNAME定义了一些主机的别名,比如我们将hp712.my.com作为公司的www和ftp服务器,所以我们提供了www.my.com和ftp.my.com作为hp712.my.com的别名,用户只需要根据习惯就可以访问公司的www、ftp服务器了,如果将来我们换用别的主机作www和ftp服务器,只需要修改CNAME记录就可,对用户没有影响。
注意:MX 和 CNAME 记录最后的带域名的主机名后必须带一个“.”
对于内部网段 127.0.0 通常只有一个地址,即 127.0.0.1 loopback 地址,db.127.0.0 内容如下:
@ IN SOA linux.my.com root.linux.my.com. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS linux.my.com. 1 IN PTR localhost. 而外部网段的数据文件 db.192.22.33 中包含所有主机 IP 地址到 DNS 主机名的转换数据。db.192.22.33 内容如下: @ IN SOA linux.my.com. root.pc590.my.com. ( 199609206 ; Serial 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS linux.my.com. ; ; All hosts ; 20 PTR linux.my.com. 102 PTR support2.my.com. 100 PTR support.my.com. 160 PTR hp712.my.com. |
ndc start |
search my.com nameserver 192.22.33.20 |
Linux和其他Unix系统均提供了nslookup工具,在命令行状态下输入:
nslookup |
{[csc:pagelist]}
- 检查正向DNS解析在nslookup提示符下输入带域名的主机名,如 hp712.my.com,nslookup 应能显示该主机名对应的 IP地址,如果只输入hp712,nslookup 会根据/etc/resolv.conf 的定义,自动添加my.com域名并回答对应的IP地址。
- 检查反向 DNS 解析在 nslookup 提示符下输入某个IP地址,如192.22.33.20,nslookup应能回答该IP地址所对应的主机名。
- 检查 MX 邮件地址记录在 nslookup 提示符下输入:
set q=mx
set q=cname |
ndc reload |
Windows 95的配置则是在网卡的TCP/IP配置中,选择使用DNS(enable),然后在配置窗口中分别填入各项参数。以本文的例子,如果运行 Windows95 的主机被命名为 pc01.my.com,则在主机名(Host)一栏中填 pc01,在域名(Domain)一栏中填my.com,然后把域名服务器(DNS Server)加入搜索列表中。
Windows NT 节点的配置大致相同。
; ; boot file for name server ; directory /var/named primary my.com db.my primary 0.0.127.IN-ADDR.ARPA db.127.0.0 primary 33.22.192.IN-ADDR.ARPA db.192.22.33 primary 37.22.192.IN-ADDR.ARPA db.192.22.37 cache . db.cache |
(2)如果企业网是封闭的如果企业网络不与外界Internet直接互连,DNS 服务器就不必关心本企业域以外的域名,所以配置 named 的时候可以不理会 db.cache,我们可以将 /etc/named.boot 中的cache行去除。
(3)如果你联入的公共网不能访问Internet如果你的内部网接入的公共网只能访问有限的范围,如免费的169网、上海热线等,那么你的 DNS 服务器就不能通过 Internet 的顶层服务器(root server)进行地址解析,所以你必须用你直接能访问到的 DNS 服务器来替代。具体办法是用forwarders选项来指定上级DNS服务器,以本文为例,named.boot 的内容为:
; ; boot file for secondary name server ; directory /var/named secondary my.com 192.22.33.20 db.my secondary 0.0.127.IN-ADDR.ARPA 192.22.33.20 db.127.0.0 secondary 33.22.192.IN-ADDR.ARPA 192.22.33.20 db.192.22.33 cache . db.cache |
通过 forwarders 和 options forward-only 参数的指定,你的企业 DNS 服务器就工作在 forward-only 模式下,所有本地不能解决的名字都被传送到 ISP 的 DNS 服务器上去解析。
现在仍以前面的例子,现在要加入一台运行 Linux 的机器 nspc.my.com,IP 地址为 192.22.33.60。
(1)主服务器上的修改首先确认DNS主服务器工作正常,然后,在主服务器上的正向DNS数据文件db.my中,加入 nspc.my.com 的有关记录,并增加一个NS记录,使主服务器上的 db.my 成为下列内容:
@ IN SOA linux.my.com. root.linux.my.com. ( 199511301 ; serial, todays date + todays serial # 28800 ; refresh, seconds 7200 ; retry, seconds 3600000 ; expire, seconds 86400 ) ; minimum, seconds NS linux.my.com. NS nspc.my.com. ; 必须增加的记录 MX 10 support.my.com. localhost A 127.0.0.1 linux A 192.22.33.20 support2 A 192.22.33.102 hp712 A 192.22.33.160 support A 192.22.33.100 nspc A 192.22.33.60 ; 增加的记录 mail MX 10 support.my.com. MX 20 support2.my.com. www CNAME hp712.my.com. ftp CNAME hp712.my.com. ns2 CNAME nspc.my.com. ; 增加的记录 ns CNAME linux.my.com. |
可见,其实在主 DNS 服务器上的改动主要是增加了一条 NS 记录,其余的改动和增加一台普通节点一样,如果是用现有的节点做后备 DNS 服务器,则增加 NS 记录是唯一必须的步骤。
(2)后备DNS服务器(secondary server)的配置需要在后备DNS服务器上创建的配置文件只有named.boot和db.cache,格式与主服务器相似,named.boot内容为:
; ; boot file for secondary name server ; directory /var/named secondary my.com 192.22.33.20 db.my secondary 0.0.127.IN-ADDR.ARPA 192.22.33.20 db.127.0.0 secondary 33.22.192.IN-ADDR.ARPA 192.22.33.20 db.192.22.33 cache . db.cache |
通常,后备 DNS 服务器可以建立在企业网内,也可利用外部的 DNS 服务器充当,如让 ISP 的服务器作为企业的后备 DNS 服务器,这样可以提高 DNS 服务的可靠性。注意,同一台 DNS 服务器可以同时成为多个 DNS 域的服务器,而且可以既作某些域的主服务器,同时又是另一些域的后备服务器。
(3)DNS 客户机端的改动
对于内部网上的 Unix 主机,应该在/etc/resolv.conf中增加一行nameserver说明,使得系统能够搜索后备DNS服务器,以本文的例子,/etc/resolv.conf 的内容为:
search my.com nameserver 192.22.33.20 nameserver 192.22.33.60 |
对于 Windows95 和 NT,则是在 DNS 服务器的列表中把后备 DNS 服务器添加进去即可,添加的顺序同样可以决定访问各 DNS 服务器的优先级。