实例:在RHEL5系统中配置DNS服务

网络
本文详细介绍了怎样在RHEL5系统中配置DNS服务。

首先,应该检查自己是否已经安装了bind。

[root@killgoogle ~]# rpm -qa bind*
  • 1.
bind-9.3.3-10.el5
  • 1.
bind-libbind-devel-9.3.3-10.el5
  • 1.
bind-sdb-9.3.3-10.el5
  • 1.
bind-devel-9.3.3-10.el5
  • 1.
caching-nameserver       
  • 1.
postgresql-libs-8.1.11-1.el5_1.1.i386.rpm                
  • 1.
bind-chroot-9.3.3-10.el5  
  • 1.

如果出现下现报错信息:

Locating /var/named/chroot//etc/named.conf failed: [失败] 
  • 1.

则将/usr/share/doc/bind-9.3.3/sample/etc/named.conf范本文件复制为/etc/named.conf

使用了chroot后,虚拟根目录为/var/named/chroot,则namd.conf实际位置为/var/named/chroot/etc,而工作目录/var/named实际路径为/var/named/chroot/var/named.

个人比较推荐yum安装,不会发生如上所述的bind报错,整个安装过程也很轻松

root@killgoogle ~]# yum install bind*
  • 1.
[root@killgoogle ~]# yum install caching-nameserver
  • 1.

安装过后BIND服务就已经完成三分之一了,剩下的三分之二就是配置BIND服务。好,开始!我是想配置一个DNS可以解析我的域名:www.test.com和ftp.test.com。假设我的IP是:192.168.1.12        

[root@killgoogle ~]# cd /var/named/chroot/etc/
  • 1.
[root@killgoogle etc]# ls
  • 1.
localtime                              
  • 1.
named.rfc1912.zones
  • 1.
named.caching-nameserver.conf          
  • 1.
named.rfc1912.zones.rpmsave
  • 1.
rndc.key         
  • 1.

这里我们可以看到在/var/named/chroot/etc/下的几个主要的配置文件。但是我们还是不要动这些文件的好,可以先复制它们并对它们进行修改。在进行复制的时候应该加上参数-P,这样在复制的时候把文件的属性不会改变。

[root@killgoogle etc]# cp -p named.caching-nameserver.conf named.conf
  • 1.

现在就可以用named.conf文件进行配置了。

[root@killgoogle etc]# vi named.conf   //红色为改动部分
  • 1.
options {    listen-on port 53 { any; };    
  • 1.
listen-on-v6 port 53 { ::1; };    
  • 1.
directory     
  • 1.
"/var/named";    
  • 1.
dump-file     
  • 1.
"/var/named/data/cache_dump.db";        
  • 1.
statistics-file "/var/named/data/named_stats.txt";        
  • 1.
memstatistics-file "/var/named/data/named_mem_stats.txt";    
  • 1.
query-source    
  • 1.
port 53;        
  • 1.
query-source-v6 port 53;    
  • 1.
allow-query     
  • 1.
{ any; };
  • 1.
};
  • 1.
logging {        
  • 1.
channel default_debug {                
  • 1.
file "data/named.run";                
  • 1.
severity dynamic;        
  • 1.
};
  • 1.
};
  • 1.
view localhost_resolver {    
  • 1.
match-clients         
  • 1.
{ any; };    
  • 1.
match-destinations { any; };    
  • 1.
recursion yes;    
  • 1.
include "/etc/named.rfc1912.zones";
  • 1.
};
  • 1.
[root@killgoogle etc]# vi named.rfc1912.zones
  • 1.

下面是我的文件内容

zone "." IN {    
  • 1.
type hint;    
  • 1.
file "named.ca";
  • 1.
};
  • 1.
zone "localdomain" IN {    
  • 1.
type master;    
  • 1.
file "localdomain.zone";    
  • 1.
allow-update { none; };
  • 1.
};
  • 1.
zone "localhost" IN {    
  • 1.
type master;    
  • 1.
file "localhost.zone";    
  • 1.
allow-update { none; };
  • 1.
};
  • 1.
zone "0.0.127.in-addr.arpa" IN {    
  • 1.
type master;    
  • 1.
file "named.local";    
  • 1.
allow-update { none; };
  • 1.
};
  • 1.
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {        
  • 1.
type master;    
  • 1.
file "named.ip6.local";    
  • 1.
allow-update { none; };
  • 1.
};
  • 1.
zone "255.in-addr.arpa" IN {    
  • 1.
type master;    
  • 1.
file "named.broadcast";    
  • 1.
allow-update { none; };
  • 1.
};
  • 1.
zone "0.in-addr.arpa" IN {    
  • 1.
type master;    
  • 1.
file "named.zero";    
  • 1.
allow-update { none; };
  • 1.
};
  • 1.
zone "test.com" IN {    
  • 1.
type master;    
  • 1.
file "test.com.zone";    
  • 1.
allow-update { none; };
  • 1.
};
  • 1.
zone "1.168.192.in-addr.arpa" IN {    
  • 1.
type master;   
  • 1.
file "192.168.1.zone";    
  • 1.
allow-update { none; };
  • 1.
};
  • 1.

其中可以看见有这个配置文件里又引用了两个新的文件:test.com.zone和192.168.1.zone。这两个文件可以CP过来。

[root@killgoogle var]# cd /var/named/chroot/var/named/
  • 1.
[root@killgoogle var]# cp -p localdomain.zone test.com.zone
  • 1.
[root@killgoogle var]# cp -p named.local 192.168.1.zone
  • 1.

在这之中比较重要的还是要加参数P,要不然很有可能启动不了named服务。好了,现在就可以编辑这两个文件了。

[root@killgoogle var]# vi 192.168.1.zone
  • 1.
$TTL    
  • 1.
86400
  • 1.
@       
  • 1.
IN      
  • 1.
SOA     
  • 1.
localhost. root.localhost. (                                      
  • 1.
1997022700 ; Serial                                      
  • 1.
28800      
  • 1.
; Refresh                                      
  • 1.
14400      
  • 1.
; Retry                                      
  • 1.
3600000    
  • 1.
; Expire                                      
  • 1.
86400 )    
  • 1.
; Minimum        
  • 1.
IN      NS      
  • 1.
test.com.
  • 1.
12       
  • 1.
IN      
  • 1.
PTR     
  • 1.
www.test.com.
  • 1.
12       
  • 1.
IN      
  • 1.
PTR     
  • 1.
ftp.test.com.
  • 1.

有必要说明的是最后两句前面的那个12是指的我自己IP:192.168.1.12的最后一个数

[root@killgoogle var]# vi test.com.zone
  • 1.
$TTL    
  • 1.
86400
  • 1.
@        
  • 1.
IN SOA    
  • 1.
localhost root (                    
  • 1.
42        
  • 1.
; serial (d. adams)                    
  • 1.
3H        
  • 1.
; refresh                    
  • 1.
<5M        
  • 1.
; retry                    
  • 1.
1W        
  • 1.
; expiry                    
  • 1.
1D )        
  • 1.
; minimum            
  • 1.
IN NS        
  • 1.
localhost
  • 1.
www    
  • 1.
IN A        
  • 1.
192.168.1.12
  • 1.
ftp    
  • 1.
IN A        
  • 1.
192.168.1.12
  • 1.

其中192.168.1.zone是反向解析文件,而test.com.zone是正向解析文件.下一步就是修改/etc/resolv.conf文件了.只有修改了这个文件才可以用自己的的机器进行域名解析

[root@killgoogle var]# vi /etc/resolv.conf
  • 1.

只要加上一句:nameserver 192.168.1.12就行了。

这样配置就完成了。不过现在开始配置rhel5的selinux。因为不配置这个的话就不会让别人访问你的DNS服务器。

[root@killgoogle var]# setup
  • 1.

弹出一个对话框。我们要进行的是防火墙配置,所以选择第六个选项:防火墙配置。选择“定制”再在弹出的对话框的允许进入的最后一栏即:其它端口里输入:53:tcp 53:udp

好了。这样就完成了所有过程。实验中可关闭Selinux,开启服务service named start.

以上即是配置主域名服务器过程,如果是从域名呢 ?这个配置过程也是一样的,只需要改动named.rfc1912.zones文件即可,以下是变动部分.

zone "test.com" IN {    
  • 1.
type slave;    
  • 1.
file "slaves/test.com.zone";    
  • 1.
masters { 192.168.1.12; };
  • 1.
};
  • 1.
zone "1.168.192.in-addr.arpa" IN {    
  • 1.
type slave;    
  • 1.
file "slaves/192.168.1.zone";    
  • 1.
masters { 192.168.1.12; };
  • 1.
};
  • 1.
[root@killgoogle ~]# nslookup
  • 1.
> www.killgoogle.com
  • 1.
Server:         
  • 1.
192.168.1.12
  • 1.
Address:        
  • 1.
192.168.1.12#53
  • 1.
Name:   
  • 1.
www.test.com
  • 1.
Address: 192.168.1.12
  • 1.

◆需要注意的是:

1、rndc reload一个非常有用的命令,能在不关闭服务的情况下,即时更新bind;另nslookup交互环境中,可以用命令server 192.168.1.102指定此DNS服务器为提供服务的DNS服务器,因为笔者的机子上面有3个服务器.

2、Non-authoritative answer项,它表示非授权的回答,说明来自其他DNS服务器或缓存

3、泛域名: 比如用户的域名是abc.com,那么我们将主机名设置为"*",IP解析到比如:218.104.78.100,大家都知道*是通配符,他表明abc.com之前的所有子域名都将解析到218.104.78.100,这就意味着例如输入bbs.abc.com或者123.abc.com或者123.234.abc.com都将解析到218.104.78.100,这里需要说明的是,在我们系统里面如果单独设置一个子域名解析,比如将主机名设置为mail,单独解析到218.104.78.79,那么该解析记录优先。泛域名在实际使用中作用是非常广泛的,比如实现无限二级域名功能,提供免费的url转发,在IDC部门实现自动分配免费网址,在大型企业中实现网址分类管理等等,都发挥了巨大的作用。

4、在实际工作中,可把自己的DNS服务器设置成forarding DNS,而将公网开放的DNS作为forwarder DNS.

5、源码安装bind9.6-P1也刚刚安装成功,并且配置了主从服务器及rndc控制,感觉难度比yum包安装要大,不过语法熟悉也没什么,多花些时间而矣。

责任编辑:许凤丽 来源: 百度博客
相关推荐

2009-09-03 15:08:14

RHEL5DNS服务配置红帽

2009-10-10 14:03:44

RHEL5 DNS配置

2009-09-03 15:19:06

RHEL5下DNS服务器红帽

2009-09-03 14:52:59

RHEL5配置局域网红帽

2010-08-04 09:52:48

RHEL5 nfs

2011-03-22 15:47:59

Linux系统安全

2009-10-09 16:40:45

RHEL5安装

2009-09-03 13:50:31

AudacityRHEL5源码编译

2009-10-12 10:37:24

RHEL5 NFS服务

2010-05-17 15:53:25

Subversion服

2009-10-10 14:54:38

RHEL 5搭建DNS

2011-03-22 15:53:32

Linux系统安全

2011-03-22 15:47:39

Linux系统安全

2011-03-22 15:47:43

Linux系统安全

2011-03-22 15:47:46

2009-09-03 14:55:41

RHEL5gdmX window

2009-10-12 10:17:37

RHEL5配置NFS

2009-01-14 17:46:01

RHELBindDNS

2009-10-12 10:52:47

RHEL5安全性

2009-12-07 16:15:08

RHEL5 mysql
点赞
收藏

51CTO技术栈公众号