RHEL5中搭建DNS
    这几天正在搭建LAMP环境,差不多快完工了,最近几天文档差不多就可以整理出来了。在搭建LAMP环境的时候DNS的支持是必须的,所以今天先把DNS的文档先整理出来了。这样在整理后面的LAMP和postfix邮件时就好理解多了,这两天感觉最有难度的就是搭建postfix邮件服务器了。不过也差不多快搞定了,好了,不MJ了,下面是在RHEL5.4中使用Bind软件搭建DNS服务器的过程,在这里我直接使用RPM包装了,因为DNS还是比较简单的,到后面LAMP及postfix就开始有难度了。
一、首先使用下列命令来查看bind软件包是否已经安装,如果安装可以直接进行配置,如果没有则进行安装:
liwei@linux# rpm -qa |grep bind
liwei@linux# mount /dev/cdrom /media
为了以后的安装包方便下面说一下简单的本地yum的配置,以后就不用使用rpm命令装软件包了!!下面修改一下yum的配置文件,然后就可以使用yum命令来安装软件包了!!
liwei@linux# vi /etc/yum.repos.d/rhel-debuginfo.repo
把配置文件中baseurl的路径和enabled的值改成如下:
baseurl=file:///media/Server
enabled=1
修改了这两处后保存退出就OK了,其中第一个选项是指定你把你的系统光盘挂载的位置。
修改好以上两处选项后就可以使用yum命令来安装软件包了,当然你也可以使用rpm命令来安装(如果你不嫌被依赖关系搞崩溃的话)。千万要记住用yum命令安装软件包之前首先得挂载光盘(mount /dev/cdrom /media)。
如果使用rpm命令安装的话需要安装四个软件包:
bind-libs-9.3.6-4.p1.el5
bind-utils-9.3.6-4.p1.el5
bind-9.3.6-4.p1.el5
bind-chroot-9.3.6-4.p1.el5
当然版本可以不同。
为了缓存DNS解析结果,还应安装caching-nameserver包,使用yum命令安装的话就是:
liwei@linux# yum -y install bind
liwei@linux# yum -y install caching-nameserver
liwei@linux# yum -y install bind-chroot
执行完以上这些命令后,bind软件包就已经被安装到了系统里,可以使用命令rpm -qa |grep bind来查看一下。其中软件包bind-chroot是为了系统的安装而装的,它可以使原本存放DNS配置文件的位置改变。如未安装这个包之前DNS的配置文件存放在/etc/named.conf下面,安装了这个包后,DNS的配置文件就改存在/var/named/chroot/etc/named.conf里了。这个包的具体作用可以到网上搜一下,这里只做简单说明。
二、DNS的配置选项
    DNS服务器程序安装到系统后,还需要对它的配置文件进行修改,添加需要在本地DNS服务器解析的域名,才能使DNS服务器进行正常工作。
在配置DNS时,需要对多个配置文件进行修改,在修改之前我们先来看一下这些配置文件各自的作用:
1./var/named/chroot/etc/name.conf:DNS服务器的主配置文件,在这个文件中可以设置通用参数,但在该文件中并不具体设置解析信息,而只是设置指向每个域名和IP地址映射信息的文件。
2./var/named/chroot/var/named/named.ca:这个文件是根域DNS服务器指向的文件,通过该文件可以指向根域DNS服务器。用户一般不要修改这个文件。此文件可以到到网上去下载,然后下载下来把名字重命名为named.ca并复制到/var/named/chroot/var/named/里。
3./var/named/chroot/var/named/localost.zone:用于将名字localhost转换为本地回送IP地址(127.0.0.1)。
4.用户配置的域名解析文件:也称为区文件,若当前DNS服务器需要解析多个域名,则需要设置多个域名解析文件。若需要反向解析,还要设置对应的反向解析文件。
三、构建缓存域名服务器:
    缓存域名服务器通常架设在企业的局域网内部,主要目的是提高域名解析的速度和节约对互联网访问的出品带宽。下面以一个实例来说明一下如何构建缓存域名服务器,基本系统网络环境如下:
》缓存域名服务器主机位于局域网内,IP地址为192.168.0.1。
》局域网内的PC机将首选DNS服务器为192.168.0.1。
》缓存域名服务器本身应能够访问Internet中的其他DNS服务器。
》缓存域名服务器代为处理客户端的DNS解析请求,并缓存查询结果。
1.首先建立主配置文件named.conf:
安装好caching-nameserver软件包以后,将会提供有关配置文件的范本,我们只需要稍做改动即可完成大部分配置。在主配置范本文件named.caching-nameserver.conf中,包含了默认的缓存配置项,并通过“include“方式包含了文件named.rfc1912.zones中的基本区域设置(如根域、回环域等)。
建立缓存域名服务器的named.conf文件:
liwei@linux# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/named.conf
liwei@linux# vi /var/named/chroot/etc/named.conf
options {
       listen-on port 53 { 192.168.0.1; };
       directory    "/var/named";
       dump-file    "/var/named/data/cache_dump.db";  //设置域名缓存数据库文件位置
       statistics-file    "/var/named/data/named_stats.txt"; //设置状态统计文件位置
       memstatistics-file  "/var/named/data/named_mem_stats.txt";
       query-source  port 53;
       recursion  yes;
};
zone "." {
       type hint;
       file "named.ca";
};
有时候为了提高解析效率,也可以不向根域查询,而是将用户羰的解析请求转发给特定的DNS服务器(如北京网通的公共DNS服务器),收到返回的查询结果后再传递给客户端。只要去掉“zone"."{.....};"的设置,并在全局配置中正确设置forwarders参数就可以实现此功能了。如在named.conf文件中设置转发DNS服务器地址,将解析请求转发给202.106.0.20、202.106.148.1。
liwei@linux# vi /var/named/chroot/etc/named.conf  //向options选项中添加如下选项即可;
options {
forwarders { 202.106.0.20; 202.106.148.1; };
};
2.确认根域地址数据库文件named.ca:
根域的地址数据库直接使用范本文件即可,位于“/var/named/chroot/var/named/named.ca"。在该文件中,记录了Internet中13台根域服务器的IP地址等相关信息,
3.启动named服务
执行“service named start”命令来启动named服务。
4.验证缓存域名服务器
    在局域网的客户机中,将使用的DNS服务器地址设置为192.168.0.1(缓存域名服务器的IP地址),然后执行nslookup www.google.com命令进行解析,验证是否能够获得该域名对应的IP地址信息。
四、构建主域名服务器
    主域名服务器通常架设在Internet环境中,主要目的是为客户端提供本域内主机名与IP地址的解析。下面以一个实例来说明如何构建主域名服务器的配置。
系统网络环境如下:
》主域名服务器位于Internet中,IP地址为172.16.0.1,主机名为ns1.liwei.com;
》所负责的DNS域为"liwei.com";
》为以下服务器提供正向解析:
>网站服务器“www.liwei.com“,IP地址为“172.16.0.2”。
>邮件服务器“mail.liwei.com",IP地址为“172.16.0.2"。
>FTP服务器“ftp.liwei.com",IP地址为“172.16.0.3“。
>主域名服务器“ns1.liwei.com",IP地址为“172.16.0.1”。
>从域名服务器“ns2.liwei.com",IP地址为“172.16.0.4“。
》为上述服务器提供反向解析。
》为”liwei.com“域内的其他主机提供泛域名解析,对应的IP地址为“172.16.0.2“。
下面是构建主域名服务器的具体步骤:
一、首先是配置IP地址,可以修改”/etc/sysconfig/network-scripts/ifcfg-eth0“配置文件来配置IP地址。
二、在目录”/var/named/chroot/etc/“下面新建主域名服务器的配置文件“named.conf",然后在此文件里写入如下内容:
options {
        directory "/var/named";         //全局配置选项,指定服务所在的位置
};
zone "liwei.com" {                    //区域配置选项,指定区域配置的类型和区域配置文件名
        type master;
        file "liwei.com.zone";
};
zone "0.16.172.in-addr.arpa" {
        type master;
        file "172.16.0.zone“;
};
三、在目录"/var/named/chroot/var/named/"下新建区域配置文件“liwei.com.zone"和“172.16.0.zone“这两个区域配置文件要和上面主配置文件named.conf里的区域配置选项里的相对应。
1.新建“liwei.com.zone”区域配置文件,如里面写入如下内容:
$TTL 86400
@    IN    SOA    ns1.liwei.com.    root.liwei.com. (
                        2010070100
                        1D
                        15M
                        1W
                        2W )
@    IN    NS    ns1.liwei.com.
@    IN    MX    10    mail.liwei.com.
www    IN    A    172.16.0.2
mail    IN    A    172.16.0.2
ftp    IN    A    172.16.0.3
ns1    IN    A    172.16.0.1
ns2    IN    A    172.16.0.4
2.新建"172.16.0.zone"文件,可以直接cp:
liwei@linux# cp liwei.com.zone 172.16.0.zone
然后修改172.16.0.zone文件,修改成如下内容:
$TTL 86400
@    IN    SOA    ns1.liwei.com.    root.liwei.com. (
                        2010070100
                        1D
                        15M
                        1W
                        2W )
@    IN    NS    ns1.liwei.com.
@    IN    MX    10    mail.liwei.com.
2    IN    PTR    www.liwei.com.
2    IN    PTR    mail.liwei.com.
3    IN    PTR    ftp.liwei.com.
1    IN    PTR    ns1.liwei.com.
4    IN    PTR    ns2.liwei.com.
四、修改一下"/etc/resolv.conf"文件,添加一条记录:
nameserver 172.16.0.1
五、测试
做完以上四步后现在就可以解析了,在终端下输入:nslookup,然后输入你想解析的名称就可以进行测试了,如:www.liwei.com 、ftp.liwei.com等!!如果测试失败,就要根据出现的问题提示来进一步排错了!!也可以在Windows XP上把首选DNS指向此主机,然后输入nslookup来解析。
上面讲了如何构建主域名服务器,下面来介绍一下如何构建从域名服务器:
一、首先确定从域名服务器的IP地址,及主机名,在此就以IP地址为172.16.0.4 、主机名ns2.liwei.com的主机为从域名服务器。
二、修改主域名服务器的配置主件named.conf,在配置文件中添加如下条目:
    allow-transfer { 172.16.0.4; };   //注意:在正向解析和反向解析中都应该添加这一条
三、在从域名服务器上创建“liwei.com“域的named.conf配置文件,将zone的类型设置为“slave",并使用“master {};"语句指定主域名服务器的IP地址,具体内容如下:
liwei@ns2# vi /var/named/chroot/etc/named.conf
options {
        directory "/var/named";
};
zone "liwei.com" {
        type slave;
        masters { 172.16.0.1; };
        file "slaves/liwei.com.zone";
};
zone "0.16.172.in-addr.arpa" {
        type slave;
        masters { 172.16.0.1; };
        file "slaves/172.16.0.zone";
};
四、在从域名服务器上启动named服务,然后查看目录“/var/named/chroot/var/named/slaves/“下是否有"liwei.com.zone"和"172.16.0.zone"这两个文件,如果有的话说明从域名服务器构建成功,否则就需要排错,看哪出现问题!!!如果成功可以在客户机上把首选DNS设置成从域名服务器的IP地址,然后在命令行下输入“nslookup“命令来看是否能够解析那些主机,一般是可以的,不可以的话请检查一下你的防火墙等。。。。。
    好了,DNS就介绍到这里了,下一节开始介绍LAMP和postfix邮件服务器的搭建!!!