RHEL5.4下使用bind配置DNS服务器

RHEL5.4下使用bind配置DNS服务器详细步骤:

1、安装bind服务器软件及相关组件
查看系统中是否安装bind域名服务相关的几个软件包:
rpm -qa | grep bind
##############################################################################
bind-utils-9.3.6-4.P1.el5 提供DNS服务器的测试工具程序(nslookup、dig等)
bind-chroot-9.3.6-4.P1.el5 实现bind根目录的监牢机制,增强安全性
bind-libs-9.3.6-4.P1.el5 bind软件程序所需要的lib库文件
bind-9.3.6-4.P1.el5   提供了域名服务的主要程序和相关文件
##############################################################################
caching-nameserver-9.3.6-4.P1.el5.i386.rpm 配置bind作为缓存域名服务器提供的必要的默认配置文件
(这个包默认情况下多数系统没有安装,需要手动安装)
mount /dev/cdrom /media/
rpm -ivh /media/Server/caching-nameserver-9.3.6-4.P1.el5.i386.rpm

2、查看安装的目录和文件
   rpm -ql bind
   rpm -ql bind-chroot
   rpm -ql bind-utils
   rpm -ql caching-nameserver

/usr/sbin/named    域名服务器的守护进程
/var/run/named/named.pid DNS的PID文件
/etc/sysconfig/named
/etc/rc.d/init.d/named
/etc/logrotate.d/named    这3个脚本用于管理域名服务器守护进程
/usr/bin/dig
/usr/bin/host
/usr/bin/nslookup   这3个程序用于对DNS服务器进行测试
/var/named/chroot   安装了bind-chroot软件包后,bind根目录真实位置
/var/named/chroot/etc   DNS服务器的配置文件存放目录
/var/named/chroot/var   DNS服务器的区域数据文件存放目录
/usr/sbin/named-bootconf 域名服务器的启动配置脚本
/usr/sbin/named-checkconf 域名服务器的主配置文件语法检验程序
/usr/sbin/named-checkzone 域名服务器的区域配置文件检验程序
/usr/sbin/dns-keygen   DNS加密密钥生成程序
/usr/sbin/dnssec-keygen   DNSSEC
/usr/sbin/dnssec-signzone 加密密钥生成程序
/usr/sbin/rndc    域名服务器的控制程序,可以使用rndc.conf文件加载相关配置
/usr/sbin/lwresd   轻量级的解析服务器,可以作为缓冲域名服务器
/usr/share/doc/bind-9.3.6/sample/etc/named.conf   手工建立named.conf配置文件的模板文件

3、默认情况下主配置文件named.conf不存在,通过模板文件生成主配置文件
cp -p /usr/share/doc/bind-9.3.6/sample/etc/named.conf /var/named/chroot/etc/named.conf
不过由于这里的模板文件配置参数较多,我们大部分基本不用,所以建议直接编辑这个文件如下:(供参考)
options
{
        listen-on port 53 { 192.168.1.102; };
        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";
        allow-query { 192.168.1.0/24; };
        recursion yes;

};

################################分割线 构建缓存域名服务器###########################
(缓存域名服务器的验证需要连接Internet环境)
(1) 构建缓存域名服务器,修改named.conf
方法一:定义根
vi /var/named/chroot/etc/named.conf
options
{
        listen-on port 53 { 192.168.1.102; };
        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";
        allow-query { 192.168.1.0/24; };
        recursion yes;
};
zone "." IN {
        type hint;
        file "named.ca";
};

方法二:定义转发器
vi /var/named/chroot/etc/named.conf
options
{
        listen-on port 53 { 192.168.1.102; };
        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";
        allow-query { 192.168.1.0/24; };
        recursion yes;
        forwarders { 218.30.19.50; 61.134.1.5; };
};
在现实应用中,建议采用方法二,为了提高解析效率,可以不向根域查询,而是将客户端的解析请求转发给特定的DNS服务器,收到返回的查询结果后再传递给客户端。

(3) 创建正向和反向区域文件
通过参考localhost域的正反向区域文件创建区域文件
cd /var/named/chroot/var/named
cp -p localdomain.zone benet.zx
cp -p named.local benet.fx

(4) 重新启动named服务
service named restart
(5) 配置客户端测试
nslookup