Chinaunix首页 | 论坛 | 博客
  • 博客访问: 165581
  • 博文数量: 48
  • 博客积分: 2245
  • 博客等级: 大尉
  • 技术积分: 535
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-05 16:03
文章分类

全部博文(48)

文章存档

2014年(5)

2013年(4)

2012年(7)

2011年(2)

2010年(30)

我的朋友

分类: LINUX

2010-04-16 19:56:04

Linux下主、辅助DNS服务器以及子域的配置

 

 

一、主DNS的配置

 

1、首先安装DNS服务器所需的软件包

# mount /dev/cdrom /media/cdrom/

# cd /media/cdrom/Server

# rpm -ivh bind-libs-9.3.6-4.P1.el5.i386.rpm

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

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

 

2、配置IP地址及DNS服务器

# vim /etc/sysconfig/network-scripts/ipcfg-eth0

 

……

BOOTPROTO=none

IPADDR=192.168.0.186     (可根据自己的实际情况配置)

NETMASK=255.255.255.0

……

 

# vim /etc/resolv.conf

 

nameserver 192.168.0.186

 

# service network restart

 

2、建立并配置named配置文件

# vim /etc/named.conf

 

options {

        listen-on port 53 { 127.0.0.1; 192.168.0.186; };

        directory       "/var/named";  

 

};

 

zone "localhost" IN {

        type master;

        file "localhost.zone";

};

 

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

        type master;

        file "localhost.name";

};

 

zone "." IN {

        type hint;

        file "named.ca";

};

 

3、新建localhost.zone localhost.name named.ca

 

# cd /var/named

# vim localhost.zone

 

$TTL    86400

@       IN      SOA     localhost.      root.localhost. (

                                        2010022801

                                        1H

                                        5M

                                        7D

                                        1D )

                    IN      NS      localhost.

localhost.      IN      A       127.0.0.1

 

# vim localhost.name

 

$TTL    86400

@               IN SOA  localhost.       root.localhost. (

                                        2010022801

                                        1H

                                        5M

                                        7D

                                        1D )         

 

                IN NS           localhost.

1               IN PTR          localhost.

 

# vim named.ca

 

; <<>> DiG 9.5.0b2 <<>> +bufsize=1200 +norec NS . @a.root-servers.net

;; global options:  printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7033

;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 20

 

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;.                              IN      NS

 

;; ANSWER SECTION:

.                       518400  IN      NS      D.ROOT-SERVERS.NET.

.                       518400  IN      NS      E.ROOT-SERVERS.NET.

.                       518400  IN      NS      F.ROOT-SERVERS.NET.

.                       518400  IN      NS      G.ROOT-SERVERS.NET.

.                       518400  IN      NS      H.ROOT-SERVERS.NET.

.                       518400  IN      NS      I.ROOT-SERVERS.NET.

.                       518400  IN      NS      J.ROOT-SERVERS.NET.

.                       518400  IN      NS      K.ROOT-SERVERS.NET.

.                       518400  IN      NS      L.ROOT-SERVERS.NET.

.                       518400  IN      NS      M.ROOT-SERVERS.NET.

.                       518400  IN      NS      A.ROOT-SERVERS.NET.

.                       518400  IN      NS      B.ROOT-SERVERS.NET.

.                       518400  IN      NS      C.ROOT-SERVERS.NET.

 

;; ADDITIONAL SECTION:

A.ROOT-SERVERS.NET.     3600000 IN      A       198.41.0.4

A.ROOT-SERVERS.NET.     3600000 IN      AAAA    2001:503:ba3e::2:30

B.ROOT-SERVERS.NET.     3600000 IN      A       192.228.79.201

C.ROOT-SERVERS.NET.     3600000 IN      A       192.33.4.12

D.ROOT-SERVERS.NET.     3600000 IN      A       128.8.10.90

E.ROOT-SERVERS.NET.     3600000 IN      A       192.203.230.10

F.ROOT-SERVERS.NET.     3600000 IN      A       192.5.5.241

F.ROOT-SERVERS.NET.     3600000 IN      AAAA    2001:500:2f::f

G.ROOT-SERVERS.NET.     3600000 IN      A       192.112.36.4

H.ROOT-SERVERS.NET.     3600000 IN      A       128.63.2.53

H.ROOT-SERVERS.NET.     3600000 IN      AAAA    2001:500:1::803f:235

I.ROOT-SERVERS.NET.     3600000 IN      A       192.36.148.17

J.ROOT-SERVERS.NET.     3600000 IN      A       192.58.128.30

J.ROOT-SERVERS.NET.     3600000 IN      AAAA    2001:503:c27::2:30

K.ROOT-SERVERS.NET.     3600000 IN      A       193.0.14.129

K.ROOT-SERVERS.NET.     3600000 IN      AAAA    2001:7fd::1

L.ROOT-SERVERS.NET.     3600000 IN      A       199.7.83.42

M.ROOT-SERVERS.NET.     3600000 IN      A       202.12.27.33

M.ROOT-SERVERS.NET.     3600000 IN      AAAA    2001:dc3::35

 

;; Query time: 110 msec

;; SERVER: 198.41.0.4#53(198.41.0.4)

;; WHEN: Tue Feb 26 15:05:57 2008

;; MSG SIZE  rcvd: 615

 

以上记录是常规模式下,必须加上的。下面测试记录是否可用

 

4、启动服务,测试记录

在启动服务前,首先要保证以上所建立的文件的属组必须为named,否则named服务无法读取。

其实,不但是以上建立的那些文件,named服务所要用到的所有文件和目录的属组都应该为named

# chown :named /etc/named.conf /var/named/{localhost.zone,localhost.name,name.ca}

 

# service named start

# nslookup

>localhost (正向测试)

>127.0.0.1 (反向测试)

>exit

 

如果出现意外的情况,请参照/var/log/messages日志,处理相关情况。

# tail /var/log/messages

 

5、新建自己的域tian.com,并添加该域的正向和反向记录

# vim /etc/named.conf

在后面增加以下记录:

 

zone "tian.com" IN {

        type master;

        file "tian.com.zone";

};

 

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

        type master;

        file "tian.com.name";

};  (请务必注意格式和“;”的位置)

 

6、新建tian.com所需文件

# vim /var/named/tian.com.zone

 

$TTL    86400

$ORIGIN tian.com.

@       IN      SOA     ns.tian.com.    root.tian.com. (

                                        2010022801 ;序列号

                                        1H         ;刷新时间

                                        10M        ;重试时间

                                        7D          ;过期时间

                                        1D )        ;否定记录生存时间

                IN      NS      ns.tian.com.

      ns      IN      A       192.168.0.186

  www     IN      A       192.168.0.187

      ftp     IN      CNAME  

    @       IN      MX  10  mail.tian.com.

     mail    IN      A       192.168.0.188

 

# vim /var/named/tian.com.name

 

$TTL    86400

@       IN      SOA     ns.tian.com.    root.tian.com. (

                                        2010022801

                                        1H

                                        10M

                                        7D

                                        1D )

           IN      NS      ns.tian.com.

186     IN      PTR     ns.tian.com.

187     IN      PTR    

187     IN      PTR     ftp.tian.com.

 

# chown /var/named/{tian.com.zone,tian.com.name}

 

7、重新启动服务,并测试新记录

 

# service named restart

# nslookup

>

>ftp.tian.com.

>192.168.0.186

>192.168.0.187

 

二、辅助DNS的配置

      

1、配置IP地址及DNS服务器

# vim /etc/sysconfig/network-scripts/ipcfg-eth0

 

……

BOOTPROTO=none

IPADDR=192.168.0.187     (可根据自己的实际情况配置)

NETMASK=255.255.255.0

……

 

# vim /etc/resolv.conf

 

nameserver 192.168.0.187

 

# service network restart

 

       2、编写辅助DNS服务器的配置文件,把主DNS的配置文件named.conf中的master改为slave,本地和根域的解析的例外,然后加上forwarders选项。例如:

             

               zone “tian.com” IN {

                     type slave;

                     file “slaves/tian.com.zone”;

                     forwarders { 192.168.0.186; };

               };

        zone “1.168.192.in-addr.arpa” IN {

               type slave;

               file “slaves/192.168.0.zone”;

               forwarders {  192.168.0.186; };

        };

3、启动DNS服务

        # service named start

 

 

三、子域DNS服务器的配置

 

        1、配置子域服务器的基础网络环境

# vim /etc/sysconfig/network-scripts/ipcfg-eth0

 

……

BOOTPROTO=none

IPADDR=192.168.0.188     (可根据自己的实际情况配置)

NETMASK=255.255.255.0

……

 

# vim /etc/resolv.conf

 

nameserver 192.168.0.188

 

# service network restart    

        2、按照主DNS的配置方式配置子域

               # vim /etc/named.conf

               options {

                      directory “/var/named”;

                      listen-on port 53 { 127.0.0.1; 192.168.0.188; };

               };

 

               zone “sub.tian.com” IN {

                      type master;

                      file “sub.tian.com.zone”;

               };     (反向解析就不在写了)

        3、建立区域数据文件

               # vim /var/named/sub.tian.com.zone

               $TTL    86400

                      $ORIGIN sub.tian.com.

                      @       IN      SOA     ns.tian.com.    root.tian.com. (

                                        2010022801 ;序列号

                                        1H         ;刷新时间

                                        10M        ;重试时间

                                        7D          ;过期时间

                                        1D )        ;否定记录生存时间

                                    IN      NS      ns.sub.tian.com.

                      ns           IN          A                  ns.sub.tian.com.

                      www      IN          A                 

 

        4、测试子域服务器的运行状态

               # nslookup

               >

        5、修改主DNS的区域文件

               # vim /etc/named.conf

               增加以下记录:

               sub IN NS    ns.sub.tian.com

               ns.sub     IN   NS  192.168.0.188

               # service named restart

        6、在主DNS上测试子域的解析

               # nslookup

              >

        注:默认情况下在父域上可以解析子域的名称,但在子域上无法直接解析父域的名称,若要实现在子域上解析父域的名称,需在子域的配置文件中添加以下记录:

               zone “tian.com” IN {

                      type forward;

                      forwarders { 192.168.0.186; };

               };

总结:

   1、配置的时候一定要细心,尤其是各个配置文件,一个空格或者一个标点符号错误,就会导致无法启动。

   2、再次强调,named所需的所有文件或者目录的属组必须为named

   3、有种简单的配置方法,安装caching-nameserver-9.3.6-4.P1.el5.i386.rpm可生产配置文件的模板,修改即可。但是为了提高自己真实的水平,强烈建议各位朋友能自己写出来,不要去修改模板。

 

 

以上内容如有问题请发邮件到:linuxjason@w.cn,我会在第一时间回复。如需转载,请注明出处。

 

阅读(2395) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~