配置DNS服务器

Anonymous
天津光电通信技术有限公司技术中心
张子波
---- 在一个基于TCP/IP协议的网络系统中,网络中的主机是通过一个32位的IP地址来进行寻址的。当一个网络拥有大量机器时,记住这些机器的IP地址是相当困难的。因此,为了简单起见,人们通常通过主机的名字来访问网络上的其它机器。这样就需要在寻址时把主机的名字解析成与它相对应的IP地址。目前解决这个问题主要有三种方法。
---- 一种解决方法是在网络上的每台机器上都维护一个hosts文件,该文件包含了一个网络上所有主机名到IP地址的映射表。当网络上增加、移走主机或重新分配IP地址时,就要修改每台机器上的hosts文件。显然,当网络上拥有大量机器时,这种方法是非常繁琐的。另一种解决方法是使用NIS(网络信息服务)在网络上共享一个hosts文件。但这种方法只适用于中小规模的Linux/UNIX网络,如果网络中含有windows机器,它就无能为力了。最后一种解决方法就是使用DNS(域名系统)。DNS作为一种新的名字解析机制,克服了上述两种方法的不足。本文将以RedHat Linux 6.0(kernel 2.2.5)为网络操作系统平台,介绍DNS的工作原理和配置方法。
---- 一、 DNS的工作原理
---- [编按:略]
---- 二、 DNS的配置
---- 假设我们有一个C类网络202.9.201,企业域名为toec.com。该网络上的域名服务器为ns.toec.com,它的IP地址为202.9.201.111。网络上有两台工作站workstation1.toec.com和workstation2.toec.com。它们的IP地址分别为202.9.201.1和202.9.201.2。在配置DNS之前,首先要确保网络畅通,可用ping或telnet等命令进行测试。然后用root帐号登录。
---- (一)、配置/etc/resolv.conf文件。在文件中加入下面两行:
search toec.com
nameserver 202.9.201.111
---- 其中search选项给出了一些可能的域名(各域名之间用空格分开)及搜索域名时的顺序。例如,要解析域名www.toec.com的IP地址,域名服务器会根据search选项的内容,首先解析www.toec.com.toec.com,如果解析失败再解析www.toec.com。nameserver选项则指定了域名服务器的IP地址。
---- (二)、配置/etc/nsswitch.conf文件。在文件中加入下面一行:
hosts: files dns
---- 该文件规定了在进行域名解析时,先在本地的/etc/hosts文件中查询。如果未找到,再通过/etc/resolv.conf文件中指定的域名服务器查询。
---- (三)、配置/etc/named.conf文件。该文件是守护进程named的配置文件,其内容如下所示:
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "127.0.0";
};
zone "toec.com" {
type master;
file "toec.com";
};
zone "201.9.202.in-addr.arpa" {
type master;
file "202.9.201";
};
---- 现将文件中各行的含义介绍如下:
1~3行:directory选项定义了所有区域文件都位于/var/named目录下,下面zone中设置的文件名都是基于它的相对路径。
4~7行:告诉服务器守护进程named从/var/named/named.ca文件中读取有关根域名服务器的地址。如果域名服务器只工作在一个没有与Internet连接的局域网上,则该区域可不设。
8~11行:指定named作为127.0.0网段逆向查询(通过IP地址查询与之对应的主机名)的主域名服务器,并从/var/named/127.0.0文件中读取数据。
12~15行:指定named作为toec.com域的主域名服务器,并从/var/named/toec.com文件中读取数据。
16~19行:指定named作为202.9.201网段逆向查询的主域名服务器,并从/var/named/202.9.201文件中读取数据。
---- (四)、建立DNS数据库
---- 1、建立/var/named/named.ca文件,它包含了根服务器的IP地址。由于该文件是一个不断更新的文件,建议读者从Internet上下载一个最新的版本,而不要使用Linux系统提供的named.ca文件。其内容如下所示:
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
2、建立/var/named/toec.com文件。文件内容如下所示:
@ IN SOA ns.toec.com. root.ns.toec.com. (
1998081901 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
NS ns.toec.com.
MX 10 ns.toec.com.
localhost A 127.0.0.1
ns A 202.9.201.111
workstation1 A 202.9.201.1
workstation2 A 202.9.201.2
mail CNAME ns.toec.com.
---- 现将文件中各行的含义介绍如下:
---- (1)、第1行是一条SOA(Start Of Authority)记录。定义了toec.com域的主域名服务器的正式主机名字和负责维护此域的人的e-mail地址。其中地址中的“@”要由“.”代替。
---- (2)、第2行设置了该文件的版本号。二级域名服务器通过此版本号来判断主域名服务器的数据是否已更新。
---- (3)、第3行设置了二级服务器对主服务器进行两次SOA记录检查的时间间隔。
---- (4)、第4行设置了当二级服务器访问主服务器或数据更新失败后,间隔多长时间重试。
---- (5)、第5行设置二级服务器在没有和主服务器联系的情况下,经过多长时间放弃所有区域数据。
---- (6)、第6行设置二级服务器经过多长时间以后放弃RR(资源记录)。
---- (7)、第7行是一个NS记录。指定toec.com域的主域名服务器为ns.toec.com。
---- (8)、第8行是一个MX记录。为toec.com域指定一个邮件交换器,即上面SOA记录中root@ns.toec.com邮件地址所对应的邮件服务器名字。
---- (9)、第9~12行是几条A记录。定义了DNS域名到IP地址的映射,其中主机名部分可将toec.com省略。named在解析时会根据named.conf文件的相关设置,自动添加省略的部分。
---- (10)、第13行是一个CNAME记录,定义了主机的别名。例如,将ns.toec.com作为公司的邮件服务器,就可将mail.toec.com设为ns.toec.com的别名。这样,用户就可以根据习惯来访问公司的邮件服务器了。
---- 3、建立/var/named/202.9.201文件。该文件是网段202.9.201的逆向查询文件,内容如下所示:
@ IN SOA ns.toec.com. root.ns.toec.com. (
1998081901 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.toec.com.
111 PTR ns.toec.com.
1 PTR workstation1.toec.com.
2 PTR workstation2.toec.com.
---- (1)、文件中1~7行与toec.com文件完全一样。
---- (2)、8~10行是几条PTR记录,定义了IP地址到DNS域名的映射。其中主机名部分必须为正式名称。
---- 4、建立/var/named/127.0.0文件。该文件是内部网络127.0.0的逆向查询文件,只有一个127.0.0.1loopback地址。内容如下所示:
@ IN SOA ns.toec.com. root.ns.toec.com. (
1998081901 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.toec.com.
1 IN PTR localhost.
---- (五)、启动named守护进程
---- # /usr/sbin/named
---- 三、检验DNS服务器的设置
---- 在Linux中提供了一个检查DNS服务器配置的工具:nslookup。在命令行状态下输入nslookup,就可进入nslookup的交互式环境。如果named配置正确,则会显示当前域名服务器的名称和地址。结果如下所示:
Default Server: ns.toec.com
Address: 202.9.201.111
---- (一)、检查正向DNS解析。在提示符“>”下输入主机名workstation1或workstation1.toec.com。nslookup应能显示主机名对应的IP地址,结果如下所示:
> workstation1
Server: ns.toec.com
Address: 202.9.201.111
Name: workstation1.toec.com
Address: 202.9.201.1
---- (二)、检查逆向DNS解析。在提示符下输入workstation1.toec.com的IP地址。nslookup应能显示IP地址对应的主机名,结果如下所示:
> 202.9.201.1
Server: ns.toec.com
Address: 202.9.201.111
Name: workstation1.toec.com
Address: 202.9.201.1
---- (三)、检查MX邮件地址记录。输入域名toec.com,nslookup应能显示对应的邮件服务器地址,结果如下所示:
> set q=mx
> toec.com
Server: ns.toec.com
Address: 202.9.201.111
toec.com preference = 10, mail exchanger = ns.toec.com
toec.com nameserver = ns.toec.com
ns.toec.com internet address = 202.9.201.111
---- (四)、检查CNAME别名记录。在提示符下输入ns.toec.com的别名mial.toec.com。nslookup应能显示正式的主机名,结果如下所示:
> set q=cname
> mail.toec.com
Server: ns.toec.com
Address: 202.9.201.111
mail.toec.com canonical name = ns.toec.com
toec.com nameserver = ns.toec.com
ns.toec.com internet address = 202.9.201.111
---- 四、更新DNS数据库
---- (一)、如果网络上增加了一台新的主机,则需要在/var/named/toec.com文件中追加一条A记录,在/var/named/202.9.201文件中追加一条相应的PTR记录,然后修改两个文件的版本号(Serial)。
---- (二)、利用控制named的工具ndc重新启动守护进程named,使已更新的DNS数据库生效。
---- # /usr/sbin/ndc restart
---- 通过上面的设置和测试,域名服务器就可以正常工作了。这里需要说明的是,根据INTERNIC对域名的管理规范,在一个独立的域名上,至少要有两台DNS服务器。即一台主服务器和一台二级服务器,以提高域名解析的可靠性。其实,在网络中只要建立一台主DNS服务器,DNS即可工作。因此,本文没有介绍二级服务器的配置方法,有兴趣的读者可以参考有关资料。
※编辑: modico (modico) 于 2000-06-03 21:50:52 在 [202.117.82.2] 编辑本文
HHHHHH
好贴。

[img]