Linux-DNS主从服务

        DNS,域名解释。所谓域名解释可以理解为人的***号码与姓名的关系。网站也有对应的IP和域名,访问IP和域名都可以达到目的,但谁会去记IP?就像谁会记得你的***号码一样。DNS就是将这两者互相解释,因此分为正向和反向。

        以红冒企业版RHEL5为例,并以著名DNS服务器软件BIND为例。搭建主域名服务器和从域名服务器。这里所谓的主从,是从服务器同步主服务器,可以作为DNS服务器热备,只是数据源于主服务器。

安装BIND软件,可以到其官方网站下载,https://www.isc.org。主要包括bindbind-utilsbind-libsbindchrootcaching-nameserver

    mount /dev/cdrom /media/cdrom

     rpm -Uvh /media/cdrom/Server/bind-9.3.3-7.el5.i386.rpm 

    rpm -Uvh /media/cdrom/Server/caching-nameserver-*

    rpm -Uvh /media/cdrom/Server/bind-chroot-*

        安装完成后,会自动增加一个named到系统服务。配置文件主要为主配置文件和区域配置文件,搞定两者则可以了!!

        首先,确定本机IP,主机映射,默认DNS地址等。例如IP地址为192.168.78.129,主机名为dns.test.com。修改/etc/hosts文件,将DNS地址映射写入:

    vim /etc/hosts

    ....//

    192.168.78.129 dns.test.comdns

    192.168.78.130dns2.test.comdns2

修改/etc/resolv.conf文件,提高解析速度。

    vim /etc/resolv.conf

    nameserver192.168.78.129

    nameserver192.168.78.130

        主配置文件常位于/etc/目录下,刚才安装了bind-chroot后,则主配置文件默认位于/var/named/chroot/etc/目录下,而且需要手动创建,但可以复制配置文件。

    cd /var/named/chroot/etc/

    cp -p named.caching-nameserver.conf named.conf

-p是为了保留权限。

    vim /var/named/chroot/etc/named.conf

通常除了directory项保留外,其余都可以删除。

options {

        listen-on port 53 { 127.0.0.1; };        //监听地址和端口

        listen-on-v6 port 53 { ::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;        

        query-source-v6 port 53;

        allow-query     { localhost; };            //允许使用本DNS服务到的网段,可以是多个,例如allow-query     {192.168.1.0/24192.168.2.0/24};

};

logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};

view localhost_resolver {

        match-clients      { localhost; };

        match-destinations { localhost; };

        recursion yes;

        include "/etc/named.rfc1912.zones";

};

//修改成如下

options {

        directory       "/var/named";

};

zone "test.com" IN {            //正向“test.com”区域

        type master ;                //类型为主区域

        file "test.com.zone";            //区域数据文件为test.com.zone

        allow-transfer {192.168.78.130;};        //允许下载到从服务器地址

};

zone "78.168.192.in-addr.arpa" IN {        //反向”192.168.78.0/24“区域

        type master;

        file "192.168.78.arpa";                    //区域数据文件为78.168.192.arpa

allow-transfer {192.168.78.130;};

};

保存退出。

通过命令可以查看语法有没有错误。

    named-checkconf -z /var/named/chroot/etc/named.conf

区域配置文件,通常位于/var/named/目录下,又因为安装了bind-chroot软件包,默认目录为/var/named/chroot/var/named/目录下。

复制一份区域配置文件作修改,并且文件名修改为主配置文件所设置的区域名。

    cp -p /var/named/chroot/var/named/localhost.zone /var/named/chroot/var/named/test.com.zone

    vim /var/named/chroot/var/named/test.com.zone

 

$TTL    86400//有效解析记录的生存周期

@               IN SOA  @       root(            //SOA标记,域名,管理邮箱

            2015010801                 //更新序列号,10位以内的整数

            3H                              //刷新时间,重新下载地址数据的间隔时间

            15M             //重试延时,下载失败后的重试间隔

            1W              //失效时间,超过该时间仍无法下载则放弃

            1D )             //无效解析记录的生存周期

IN NS           @            //NS域名服务器

IN A            127.0.0.1        //记录正向解析条目

IN MX         127.0.0.1        //邮件交换

将其修改为如下:

$TTL    86400

@           IN SOA  test.com.      admin.test.com. (

              2015010801

              3H

              15M

              1W

              1D 

)

 

@               IN NS           dns.test.com.

                IN MX   10      mail.test.com.

dns             IN A            192.168.78.129

mail            IN A            192.168.78.1

www             IN A            192.168.78.2

*               IN A            192.168.78.129

切记格式,每个域名后面须加.  否则出错。

修改反向区域配置文件,一样是复制并修改。

    cp -p /var/named/chroot/var/named/localhost.zone /var/named/chroot/var/named/192.168.78.arpa

    vim /var/named/chroot/var/named/192.168.78.arpa 

修改成如下:

$TTL    86400

@               IN SOA  test.com.       admin.test.com. (

                                        2015010801

       3H                                                                              

15M

                                        1W

                                        1D )

                IN NS           dns.test.com.

129             IN PTR          dns.test.com.

2               IN PTR          www.test.com.

1               IN PTR          mail.test.com.

保存退出。

重启服务

    service named restart

在客户端的DNS地址设置为服务器IP 192.168.78.129

cmd命令行里测试输入nslookup;在linux中也可以输入该命令测试。

    C:\Documents and Settings\Administrator>nslookup

如果出现如下提示

Default Server:  UnKnown不知道服务器的。则说明是反向解析配置出现问题,不能进行解析。这时需要检查反向解析配置文件,格式,地址,名称等。

在里面输入要解析的地址或IP

从服务器,IP地址为192.168.78.130,主机名为dns2.test.com,主机映射文件/etc/hostsDNS解析文件/etc/resolv.conf与主服务器一样配置即可。

修改named.conf时,和主服务器有以下区别:

options {

        directory       "/var/named";

};

zone "test.com" IN {//正向“test.com”区域

        type slave;    //类型为从服务器

        masters { 192.168.78.129; };//指定主服务器IP

        file “slaves/test.com.zone";//下载的区域文件存放到slaves目录

};

zone "78.168.192.in-addr.arpa" IN {//反向”192.168.78.0/24“区域

        type slave;    //类型为从服务器

masters { 192.168.78.129; };//指定主服务器IP

        file "slaves/192.168.78.arpa";//下载的区域文件存放到slaves目录

};

确保named用户对存放目录有写入权限,才可以成功下载。

    ls -ld /var/named/chroot/var/named/slaves/

    drwxrwx--- 2 named named 4096 2015-01-08 /var/named/chroot/var/named/slaves/

如果属宿主,权限有误,则修改。

在客户端上,从服务器和主服务器都没有什么区别,都可以解析得到。

将客户机的DNS地址换为192.168.78.130,测试亦可以成功解析!!