用Linux构建企业的域名服务
|
|
|
作者:Linux基础 来源:Linux基础 加入时间:2006年06月16日 |
|
用Linux构建企业的域名服务 站点:爱心种子小博士 关键字:用Linux构建企业的域名服务
|
用Linux构建企业的域名服务 在因特网的发展过程中,有两项技术起了重大的推动作用,一项是www(World Wide Web),另一项则是域名服务系统(DNS) 。
在域名服务系统(DNS)出现之前,所有的因特网主机名都存储在一个普通文件中,而且网络上的每台机器都要保留一个副本。这种文件的局限性阻碍了网络的发展,DNS的出现打破了这种限制,他使用分布式多级数据库系统代替了普通文件的存储方式。现在,网络上的每一个组织都维护着自己的域名数据库,由系统管理员负责维护网络中的DNS。
Linux凭着其高度的可靠性、稳定性和低廉的价格,成为建立DNS服务器的优秀平台。在Linux上的DNS服务用伯克利因特网(BIND)软件实现的,BIND是最初将DNS引入了网络的软件,目前DIND被世界广泛使用,其可靠性,早被成千上万的用户所验证。
要构建企业的域名服务,首先当然是根据企业的资金、规模、发展趋势、实际物理结构以及行政结构作好规划,从而决定企业网络DNS域名的层次结构、DNS服务器的数量、种类与物理位置的放置。作好总体的规划是重要的第一步。
接下来,我们开始以Red Hat Linux为例,详细讨论利用Linux建立各种类型的DNS服务器。实际有三种:高速缓存服务器、从属服务器和主服务器。
首先要谈一谈BIND配置文件的配置语句:
(1).设置服务器工作路径
缺省情况下,/etc/name.conf语句中都设定服务器工作路径:
options {
directory /var/name;
}
此路径包含了BIND初始化文件、区域数据库文件等。
(2).zone语句
zone语句是配置文件中的最重要部分,它有以下功能
·定义名称服务器提供服务的区(Zone);
·定义为该区提供服务的名称服务器的类型;
·定义区的域信息源(域数据库来自何方);
·定义区的特殊处理选项。
例如:
zone remote.net in {
type master; //服务器类型为主服务器
file remote.net.host; //区数据库文件
check-names warn; //区的特殊处理选项
}
下面开始对每一种服务器进行介绍和配置
1.配置只高速缓存服务器
高速缓存服务器对任何区域都没有授权。它只能从它的缓
存在本地响应查询,其他的所有请求都被发送到一个授权服务器,并将这些记录暂时存放到自己的缓存里用于提供给其他客户查询。一般来说,在大型网络中,大多数DNS服务器都是这一类服务器。只高速缓存(Caching-Only)的服务器中,named.conf文件的options和zone语句在其他主从服务器配置中都可以找到。因此,只高速缓存服务器的配置是讨论服务器配置的重要环节。
基本上,只高速缓存服务器的配置非常普遍,在Red Hat Linux安装过程中会自动创建,现在我们假设要将toland设置成一个高速缓存服务器以下例子列出了Red Hat的named.conf文件:
options {
directory /var/named; //设定服务器工作路径
};
//
//只高速缓存配置
//
zone . {
type hint;
file named.ca; //指定BIND初始化文件
//
//声明回路去区
//
zone 0.0.127.in-addr.arpa {
type master;
file name.local;
};
2.从属服务器的配置
从属服务器与主服务器一样都是一个区域内的授权服务器。因
为它拥有完整的、最新的有关区域信息的所有信息的拷贝。它定期从主服务器那里下载整个区域数据库,并保存在它的本地磁盘上。从属服务器只是一个区域的备份服务器,它的目的是为了为区域的DNS查询提供网络流量平衡与容错,它无权接受客户端的DNS注册。通常,对大多数区域来说,两个,顶多三个备份服务器就已经绰绰有余了。
配置从属服务器与配置只高速缓存服务器一样简单。从属服务器named.conf文件的前三条语句同前面讲述的一样,这些语句是从属服务器配置的基础。谈到这里,大家可能会聪明的想到走捷径——将只高速缓存服务器的named.conf修改一下就OK啦——对,的确如此!!
现在我们假设poonremote(172.16.205.1)是remote.net域的主服务器,16.172.in-addr.arpa是反向域。我们要MCL配置成这些域的从属服务器,现在要在MCL的named.conf文件中添加两个zone语句,例子如下:
options {
directory /var/named; //设定服务器工作路径
};
//
//从属服务器的配置
//
zone . {
type hint;
file named.ca; //指定BIND初始化文件
//
//声明回路区
//
zone 0.0.127.in-addr.arpa {
type master;
file name.local;
};
//
//声明正向区
//
zone remote.net {
type slave; //从属服务器
file remote.net.hosts; //正向区数据库文件
masters { 172.16.205.1;} //主服务器(从该处下载数据库)
};
//
//声明反向区
//
zone 16.172.in-addr.arpa {
type slave;
file 16.172.reverse; //反向区数据库文件
masters { 172.16.205.1;} //主服务器(从该处下载数据库)
};
3.主服务器的配置
主服务器是一个区域内的授权服务器。它是区域DNS查询的权威信息来源。它从域管理员创建的本地磁盘文件中载入区域数据库。它接受客户端的DNS注册,并向从属服务器提供区域数据库的下载。在一个区域中只能有一个主服务器存在。
主服务器的named.conf文件的配置与只高速缓存服务器、从属服务器的named.conf文件十分相似。从某种意义上说,这几种服务器的区别就在于zone命令语句的不同。如果named.conf文件中没有包含某特定区域的zone命令,那么它就是只高速缓存服务器,而不是区域的权威服务器;如果zone命令语句中包含了type master子句,那么它就是区域的主服务器;如果包含了type slave子句,那么它就是区域的从属服务器。
现在我们将remotemcsee(172.16.205.1)配置成主服务器。以下是它的name.conf文件配置清单:
options {
directory /var/named;
};
//
//主服务器的配置
//
zone . {
type hint;
file named.ca;
};
zone 0.0.127.in-addr.arpa {
type master;
file named.local;
};
zone remote.net {
type master;
file remote.net.hosts; //正向区域数据库文件
allow-update { localhost }; //激活动态DNS,接受DHCP
//的动态更新此例中本机同是
// DHCP Server *
};
zone 16.172.in-addr.arpa {
type master;
file 172.16.reverse; //反向区域数据库文件
allow-update { localhost };
};
在这个配置文件中,前三个语句与其它服务器是一样的。不同的是添加了两个zone语句,以及type子句。另外,本例中用allow-update指令激活了动态DNS以接受DHCP的动态更新。其实在以前版本的BIND软件中(包括Red Hat Linux 7.2所使用的BIND)并不真正支持DHCP的动态更新,但在笔者写这篇文章的时候,真正支持DHCP的动态更新的BIND版本已经发布。无可否认,这是一个很好的解决方案,它大大减少了管理员的工作量以及管理成本。但是,这也将会带来DNS的安全问题。对于BIND指令的使用以及DNS的安全问题,将会在本人日后的文章中进行详细论述。
到此为止,各种DNS服务器的配置已基本完成。接下来可以在LINUX上启动DNS服务了。启动方法有以下几种:
1.用named命令启动
[root@remotemcse] # named
2. chkconfig命令启动
[root@remotemcse] # chkconfig –level 5 named on
3.用setup启动
System services -> named
4.用ntsysv启动
用空格键选中named,用回车确认
5.用Sysv Init启动
6.用Service Configuration启动(这是一个十分好用的工具,是Red Hat 7.2
的新增系统配置工具)
7.用linuxconf启动(linuxconf将会被Red Hat 淘汰)
从linuxconf窗口左侧的菜单中,选择Control Control Penel Control Service Activity.。窗口的右侧会显示一个服务列表
|
|
|
|
|