DNS正解:主机名查找IP。DNS反解:IP地址查询主机名。

所需软件包

bind-9.3.6-4.P1.el5.i386.rpm

bind-chroot-9.3.6-4.P1.el5.i386.rpm

bind-utils-9.3.6-4.P1.el5.i386.rpm

caching-nameserver-9.3.6-4.P1.el5.i386.rpm       

linux架构:master、salve、cache-only三大服务器。Cache-only转发master/slave的DNS请求。

搭建master DNS服务器

# hostname master

#vi /etc/sysconfig/network

HOSTNAME=master

# cp /usr/share/doc/bind-9.3.6/sample/etc/named.conf /etc/named.conf

# cat /etc/named.conf

Options {    directory "/var/named";                 

    dump-file "data/cache_dump.db";                   #设置dns缓存数据的指定文件

         statistics-file "data/named_stats.txt";        #dns统计数据写入的文件

     pid-file "/var/run/named/named.pid";             #记录named的pid文件可以在启动关闭named时提供正确的pid

             allow-query{ any ;};                             #是否允许客户端查询,可以设置any、none、ip网段

     allow-transfer { 192.168.23.136;};                 #是否允许DNS递归查询

         zone "." IN { type hint;

          file "named.ca"; };

zone "test.com" IN { type master;

             file "test.com.zone"; };

            zone "23.168.192.in-addr.arpa" {    type master;

                        file "23.168.192.in-addr.local"; };

定义/var/named/chroot/etc/named.rfc1912.zones保持和/etc/named.conf域名定义部分一致即可

   #dig -t NS .>/var/named/chroot/var/named/named.ca    #查找根服务器的NS记录并重定向

#echo "nameserver 127.0.0.1">>/etc/resolv.conf        #设置本机为DNS服务器

创建test.com.zone正向解析文件

$TTL 86400   #当外部DNS对此DNS进行查询,记录会放置在对方DNS服务器几秒。如果DNS稳定,此值应设置大一些,以免DNS忙碌,如果DNS不稳定,此值应设置小一些,以免变动无法被查询到。

@ IN SOA localhost root (    #@代表zone,

42 ; serial (d. adams)     #序号

3H ; refresh          #服务器更新时间;

15M ; retry           #更新失败后,重复更新时间;

1W ; expiry           #重复更新多久宣告失败,不在进行更新。

1D ) ; minimum         #等同于TIL。

IN NS test.com.

IN MX 10 mail.test.com.

www IN A 192.168.23.134

mail IN A 192.168.23.135

创建test.com.zone反解文件

# cat 23.168.192.in-addr.local

$TTL 86400

@ IN SOA localhost. root.localhost. (

1997022700 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

     IN NS test.com.

134 IN PTR www.test.com.

135 IN PTR mail.test.com.

100 IN PTR www.test.net.

101 IN PTR mail.test.net.

#named后查看日志信息。如看到下述报错信息:

couldn't open pid file '/var/run/named/named.pid': Permission denied

修改文件属主权限

# ls -ald /var/named/chroot/var/run/named

drwxrwx--- 2 named named 4096 Mar 14 2003 /var/named/chroot/var/run/named

/etc/named.conf:30: couldn't add command channel 127.0.0.1#953: address in use

表示该953端口正在占用而导致报错,因为named服务已经启动,killall named,在重启named即可。

配置rndc:# rndc-confgen >/etc/rndc.conf

             # cat -n /etc/rndc.conf

# ll /etc/rndc.conf        #修改rndc.conf为640 root.named

-rw-r----- 1 root named 475 Oct 12 14:45 /etc/rndc.conf

#tail +13 /etc/rndc.conf>>/etc/named.conf 去掉相关的注释#

# rndc status            #使用rndc测试服务状态

使用rndc reload无需重启named服务重新加载配置文件。

# rndc reload    #使用rndc重新加载该配置文件

server reload successful

使用ping、nslookup进行测试。

搭建slave DNS服务器

修改master中/etc/named.conf配置文件

# cat /etc/named.conf

…………………………………………

zone "test.com" IN {

type slave;

file "test.com.zone";

allow-update { none ;};

                allow-transfer { 192.168.23.136 ;}; };    #添加slave 主机IP地址,允许该主机进行DNS传送

zone "23.168.192.in-addr.arpa" IN {

type slave;

file "23.168.192.in-addr.local";

allow-update { none ;};

                allow-transfer { 192.168.23.136 ;}; };

        ………………………………………………………

Slave主机的/etc/named.conf与master的/etc/named.conf一致即可,将type master改成slave即可。

修改权限

    # ls -ald /var/named/chroot/var/run/named

drwxrwx--- 2 named named 4096 Mar 14 2003 /var/named/chroot/var/run/named    #至少是750

修改named.rfc1912.zones及正反解析文件,与master一致即可。

启动named,之后如果需要更新数据库,只需要修改解析文件,并重启named,slave便会自动更新dns配置文件。

客户端设置

修改/etc/resolv.conf中的nameserver ip指向该dns服务器。

# cat /etc/nsswitch.conf

    hosts: dns files        #即dns查询优先