[说明]
若设置域名解析服务器,已知该文件服务器上文件named-boot的内容如下:
启动DNS服务的命令是什么
参考答案:/etc/init.d/named start。
解析:在这里,我们简单介绍在Linux下建立DNS服务器的完整过程。下面假定我们需要建一台企业网的DNS主服务器,应用条件如下:
(1)一个C类网段地址(本例中假定是192.22.33)。
(2)企业域名为CSAI.cn(主域名服务器地址192.22.33.20,主机名为linux.CSAI.cn)。
(3)企业网通过路由器与Internet连接。
DNS服务器的主体是域名服务器进程named,named启动后向DNS客户机提供域名解析服务,把域名转换成IP地址。named启动时需要读取一个初始化文件,默认情况下是/etc/hamed.boot,该文件是named的基本配置文件。我们先建立这个文件,其内容如下:
其中以“;”开头的行是注释行,其他各行含义如下。
(1)diretory/var/named:指定named从/var/named目录下读取DNS数据文件。用户可自行指定并创建这个目录,指定后所有的DNS数据文件都存放在此目录下。
(2)Drimary CSAI.cn db.CSAI:指定named作为CSAI.cn域的主域名服务器,db.CSAI文件中包含所有*.CSAI.cn形式的域名转换数据。
(3)Drimary 0.0.127.1N-ADDR.ARPA db.127.0.0:指定named作为127.0.0网段地址转换主服务器,db.127.0.0文件中包含了127.0.0.*形式的地址到域名的转换数据(127.0.0网段地址是局域网接口的内部loopback地址)。
(4)Drimary 33.22.192.IN-ADDR.ARPA db.192.22.33:指定named作为192.22.33网段地址转换主服务器,db.192.22.33文件中包含了所有192.22.33.*形式的地址到域名的转换数据。
(5)cache.db.cache:指定named从db.cache文件中获得Internet的顶层“根”服务器地址。要注意(3)、(4)两行中的网段地址是倒写的。另外,各个文件名也是可以自行决定的。
接下来,要按/etc/named.boot中的定义,建立各个DNS数据文件。
(1)建立正向域名转换数据文件db.CSAI。根据/etc/named.boot的定义,我们在/var/named目录下建立db.CSAI,其中应该包括所有在CSAI.cn域内的主机节点。但在机器数量较多时,为了调试方便,建议一开始只把几台节点的数据放入文件,待named正常工作后再把其他节点的数据补充进去。下面是db.CSAI的例子。
其中,第一行是SOA记录,定义了域名数据的基本信息,依次是DNS服务器名、DNS管理员邮件地址,括号内的第一个数字是文件版本号,每次本文件内容修改后,必须更改此号。其余数字与DNS服务器直接的数据交换有关,在这里我们不需要改动。括号后面有一条Ns记录和一条MX记录,定义了域名服务器本身的域名和sername@CSAI.cn形式邮件地址所对应的邮件服务器名称。
在此以下是各种域名/地址转换数据,其中A记录是DNS域名到IP地址的记录,是必须有的。以hp712.CSAI.cn为例,在A记录中域CSAI.cn被省略,只写成hp712,named在处理时会根据named.boot中的定义自动加上CSAI.cn,而其对应IP地址为192.22.33.160。
另一种记录是MX记录。MX是邮件地址转换记录,本例中定义了将USemame@mail.CSAI.cn的邮件地址转换成usemame@support.CSAI.cn或usemame@support2.CSAI.cn,即实际上真正的邮件服务器是support.CSAI.cn和support2.CSAI.cn,其中support.CSAI.cn的优先数为10,support2.CSAI.cn的优先数为20,所以通常邮件首先被发往优先数小的主机support.CSAI.cn。
还有一些是为方便提供的CNAME记录。CNAME定义了一些主机的别名,比如将hp712.CSAI.cn作为公司的WWW和FTP服务器,所以我们提供了www.CSAI.cn和ftp.CSAI.cn作为hp712.CSAI.cn的别名,用户只需要根据习惯就可以访问公司的WWW、FTP服务器了。如果将来换用别的主机做WWW和FTP服务器,只需要修改CNAME记录就可,对用户没有影响。
注意:MX和CNAME记录最后的带域名的主机名后必须带一个“.”。
(2)建立反向DNS数据文件db.127.0.0和db.192.22.33。反向DNS数据文件用来提供根据IP地址查询相应DNS主机名,每个网段分别有一个数据文件。对于内部网段127.0.0通常只有一个地址,即127.0.0.1 loopback地址,db.127.0.0内容如下。
而外部网段的数据文件db.192.22.33中包含所有主机IP地址到DNS主机名的转换数据。db.192.22.33内容如下:
反向DNS数据文件中的主要部分是PTR记录,PTR记录中的IP地址都只有主机号,named会根据named.boot的定义自动加上前面的网络号,注意后面的主机名要附加一个“.”。
(3)获得db.cache文件。在Linux系统中,通常在/var/named下已经提供了一个named.ca,该文件中包含了Internet的顶层域名服务器,但这个文件通常会发生变化,所以建议最好从Internic下载最新的版本。该文件可通过匿名FTP从ftp.rs.internic.net下载,在domain目录下,文件名为named.root。注意该文件下载后要复制到named的工作目录并重命名成named.boot中指定的文件名,这里为db.cache。
为了使用和测试named,要把Linux设置在使用DNS状态。方法是在/etc目录下创建resolv.conf文件。例如,/etc/resolv.conf内容为如下:
然后,就可以测试named了。Linux和其他UNIX系统均提供了nslookup工具,在命令行状态下输入nslookup,就进入交换式nslookup环境,如果named正常启动,nslookup会显示当前DNS服务器的地址和域名,否则表示named没能正常启动。
通常有一台DNS主服务器,网络即可正常工作。但根据Internic对域名的管理规范,一个独立的域名必须至少有两台DNS服务器,即一台DNS主服务器(Primary Server)和一台后备DNS服务器(Secondary Server),这主要是为DNS服务的可靠性考虑,能使Internet的性能更为可靠。继续前面的例子,现在要加入一台运行Linux的机器nspc.CSAI.cn,IP地址为192.22.33.60。
(1)主服务器上的修改。首先确认DNS主服务器工作正常,然后在主服务器上的正向DNS数据文件db.CSAI中,加入nspc.CSAI.cn的有关记录,并增加一个NS记录,使主服务器上的db.CSAI成为下列内容:
然后对主服务器上的各个反向DNS数据文件做类似的修改,增加有关后备服务器的NS记录,然后重新启动named。
可见,其实在主DNS服务器上的改动主要是增加了一条NS记录,其余的改动和增加一个普通节点一样。如果用现有的节点做后备DNS服务器,则增加NS记录是唯一必需的步骤。
(2)后备DNS服务器(secondary server)的配置。需要在后备DNS服务器上创建的配置文件只有named.boot和db.cache,格式与主服务器相似。named.boot内容如下:
其中,第三行secondary定义,使得named从192.22.33.20,即主服务器上获得各种DNS数据,并存在本地的各个数据文件中。本地的数据文件由named从主DNS服务器的named下载后生成,通常与主服务器上的数据文件完全一样。如果后备服务器与主服务器失去连接而不能下载DNS数据,后备服务器可利用本地的数据文件工作。
Linux下架设DNS服务器通常是用’Bind程序来实现的,启动服务方式有如下两种: