linux下DNS服务器配置

关于DNS服务器的配置方法在网上有很多,但毕竟具体问题具体分析,要符合自己的要求,况且网上很多文章转来转去,已经不是原来的样子,而在配置过程中,格式本身就是很重要的.

在这里,服务器主机(FC4)IP为192.168.23.1,局域网内有若干XP主机.配置要求为XP主机192.168.23.2分配 kvew.secodernet.com ,然后www.secodernet.com访问主机

首先修改/etc/named.conf配置文件,添加如下信息,特别注意格式.相关配置项的具体含义就不讲了,可参考HOWTO文档
//======================================
//   named.conf中的添加信息
//======================================
zone "secodernet.com" IN {
  type   master;
  file   "zone.test";
  allow-update { none; };
};

zone "23.168.192.in-addr.arpa" IN {
  type   master;
  file   "zone.test.rev";
  allow-update { none; };

};
//======================================

从上面的配置中我们可以看出,每个配置都有一个相应的配置文件.这里我们将在/var/named目录下创建zone.test 和 zone.test.rev两个配置文件. 内容如下
//=====================================
//         zone.test
//=====================================
$TTL   86400  
@   IN   SOA   kvew.secodernet.com. root.secodernet.com. (
          2006052000;
          3600   ;
          900   ;
          3600000   ;
          3600 )   ;
  IN   NS   kvew.secodernet.com.
;

kvew     IN   A   192.168.23.2
www   IN   A   192.168.23.1
//======================================


下面是zone.test.rev配置文件,特别注意格式
//====================================
//           zone.test.rev
//====================================
$TTL   86400
@   IN   SOA   kvew.secodernet.com. root.secodernet.com. (
          42     ; serial (d. adams)
            3H     ; refresh
            15M     ; retry
            1W     ; expiry
            1D )     ; minimum
;
  IN   NS   kvew.secodernet.com.
2   IN   PTR   kvew.secodernet.com.
1   IN   PTR   www.secodernet.com.
//=====================================

下面开启named服务进程

[root@localhost ~]# service named start
启动 named:                               [ 确定 ]

如果看到以上信息,那么就成功了,要是无法开启,那么查看/var/log/message文件,并作相应的修改

然后用nslookup来测试下

[root@localhost ~]# nslookup
> www.secodernet.com
Server:       192.168.23.1
Address:     192.168.23.1#53

Name:   www.secodernet.com
Address: 192.168.23.1
> kvew.secodernet.com
Server:       192.168.23.1
Address:     192.168.23.1#53

Name:   kvew.secodernet.com
Address: 192.168.23.2
> 192.168.23.1
Server:       192.168.23.1
Address:     192.168.23.1#53

1.23.168.192.in-addr.arpa     name = www.secodernet.com.
> 192.168.23.2
Server:       192.168.23.1
Address:     192.168.23.1#53

2.23.168.192.in-addr.arpa     name = kvew.secodernet.com.
> www.baidu.com
Server:       221.12.1.228
Address:     221.12.1.228#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 202.108.22.5
> 202.108.22.5
Server:       221.12.1.228
Address:     221.12.1.228#53

Non-authoritative answer:
5.22.108.202.in-addr.arpa     name = xd-22-5-a8.bta.net.cn.

Authoritative answers can be found from:
22.108.202.in-addr.arpa nameserver = ns3.bta.net.cn.
22.108.202.in-addr.arpa nameserver = ns.bta.net.cn.
22.108.202.in-addr.arpa nameserver = ns2.bta.net.cn.
ns.bta.net.cn   internet address = 202.96.0.133
ns3.bta.net.cn internet address = 202.106.196.115
>
一切正常了,OK,到此结束,就这么简单. :)

如果启动的时候出现错误,那么多半是配置格式出了错,比如掉了'.' 或者是IN前面的空格,一般IN前空出一个TAB, 然后IN前面的www和kvew要顶格

最后如果出现本地可以正常解析而其他机器上无法解析,那么检查下其他机器是否将首DNS服务器(这里是192.168.23.1)设置为了你的服务器主机.再不行的话,就看看自己的主机防火墙设置,是否禁止访问53端口.同样其他的服务配置的时候也要注意这个问题,比如Apache的配置,看看是否禁止了80端口,然后可运用IPtables进行相应修改.