尽管Linux在桌面计算机的世界中还没有取得引人注目的进展,但作为网络服务器它已经很有名气了。由于其出色的可靠性,我们可以放心地在Linux上运行当今Internet时代所必需的各种重要服务程序。Linux最普遍的一些用途主要用作Web服务、邮件服务以及DNS服务。下面我将说明怎样在Red Hat Linux 7.3上使用BIND建立一个DNS服务器。
一、 BIND服务器的安装
要想安装BIND,可在安装Linux 7.3时选择安装DNS Name Server,系统就会自动安装好BIND9.2.0版。如果您已经完成了Linux 7.3的安装,却没有装DNS Name Server,那也没关系,您可以到BIND的主页http://www.isc.org上下载BIND的源码包,当前最新版本是BIND9.2.2版;然后用root用户登录Linux,新建一个目录,把所有的压缩包拷贝到新建的目录下,然后依次解开软件的压缩包;进入这个新创建的目录,执行configure命令,在脚本程序完成所有配置工作后,运行make命令,接着运行make install命令完成安装过程。
二、 BIND服务器的配置
BIND服务器可被配置成几种不同的运行方式:纯缓存域名服务器、主域名服务器、辅域名服务器。纯缓存域名服务器通过向其它域名服务器查询,将查询结果存入缓存。主域名服务器是判定域名的最终来源。主域名服务器同时也是传送到辅助域名服务器的区传送(zone transfer)的源头。辅助域名服务器接收所有来自主域名服务器的区信息。BIND中几乎所有的配置项都是通过/etc/named.conf文件完成的。这个文件以纯文本的形式存放各服务器信息和区信息。下面是我的BIND服务器的配置。
options {
directory“/var/named”;
};
zone“.”IN {
type hint;
file“named.ca”;
};
zone“my.domain.com”IN {
type master;
file“my.domain.com”;
};
zone“0.0.127.in-addr.arpa”IN {
type master;
file“named.local”;
};
zone“230.69.211.in-addr.arpa”IN {
type master;
file“211.69.230”;
};
“directory”这一行指定named从“/var/named”目录下读取DNS数据文件,这个目录用户可自行指定并创建,指定后所有的DNS数据文件都存放在此目录下。第一个区登记项用来通知BIND在何处定位根服务器的信息。文件中的zone “my.domain.com”段是声明这是用于“my.domain.com”域的主域名服务器,该域的数据从“/var/named/my.domain.com”文件中读取。文件中的zone “230.69.211.in-addr.arpa”段是指向映射IP地址“211.69.230.*”到主机名的文件,该域的数据从“/var/named/211.69.230”文件中读取。
“/var/named/my.domain.com”的内容:
@ IN SOA ns.my.domain.com. root.ns.my.domain.com. (
2002080302 ; serial
3600 ; refresh
900 ; retry
1209600 ; expire
43200 ; default_ttl
)
@ IN MX 5 mail.my.domain.com.
@ IN NS ns.my.domain.com.
ns IN A 211.69.230.1
www IN A 211.69.230.1
mail IN A 211.69.230.1
1 IN PTR ns.my.domain.com.
“/var/named/named.local”的内容:
@ IN SOA localhost. root.localhost. (
1997022700 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS localhost.
1 IN PTR localhost.
“/var/named/211.69.230”的内容:
@ IN SOA ns.my.domain.com. root.ns.my.domain.com. (
2002080310 ; serial
3600 ; refresh
900 ; retry
1209600 ; expire
43200 ; default_ttl
)
SOA是Start of Authority的缩写,所有区文件都要以它打头。顺序号(serial)使服务器能够记录所进行过的各次更新,守护进程最近一次启动后,只要数字出现了增长,它就会重新把信息读入到数据库中去。接下来的四行以秒为单位处理刷新和超时周期等。接着列出的是域名,这样BIND就会知道是谁控制整个域。 接着列出的是MX记录,它使服务器知道当有邮件信息请求mail.my.domain.com时应当发出什么信息。在本例中,mail.my.domain.com的优先级是5,您可以列出多个MX记录作为邮件服务器的备份,数字越小优先级越高,要注意的是还有一个相应的A记录给出了mail. my.domain.com的IP地址,这是必不可少的,这样DNS服务器就可以知道怎样根据域直接把邮件请求发往何处。一个A记录仅仅是把IP地址赋给一个子域项,如WWW、Mail、FTP或者NS,这些都必须用上面的格式录入,而且必须与一个IP地址相关联。比如说,当某个用户请求www.my.domain.com时,它将会被指向该域所在的Web服务器的IP地址211.69.230.1。
三、 启动BIND服务器
BIND服务器的各个配置文件都配置好以后,就可以让BIND服务器运行起来,用于启动DNS服务的程序是named,这个脚本程序应该是在安装时放进正确的目录中的。您可以通过执行rndc reload命令来运行这个程序。可用ps aux命令检查一下named是否已经运行,这个命令会列出当前所有进程的清单。如果您想让named服务在系统启动时自动运行,只需要在提示符下运行setup找到named服务,并且将这个服务设置为系统启动时初始启动named服务即可。
四、 BIND服务器的维护
BIND服务器的配置是非常繁琐的,管理员要维护好一个域名服务器非常困难。BIND软件组提供了大量的管理工具来减轻管理员的负担。如dig命令用来获得正确的named.ca文件;rndc指令用来管理域名服务器的操作,如rndc reload用来装入新的数据库;nslookup用来查询域名信息。
域名服务器的维护关键在于数据库文件的正确性,管理员要不断地更新维护,这不是一次配置工作所能完成的。系统管理员为了域名服务器正确、高效地运行,需要日复一日地努力工作
作者:刘利强