软件包安装
bind            DNS主程序安装包
bind-libs      库
bind-utils     搜索主机名称的相关命令
bindchroot    最小权限范围设定

安装bind
#yum -y install bind

/etc/init.d/named启动脚本
第一部分:配置本地DNS缓存服务器
1、主配置文件设置:/etc/named.conf
#vim /etc/named.conf
options {
     directory “/var/named";
};
zone "." IN {             #定义根域配置文件
    type hint;
     file "named.root";
};
zone "localhost" IN {      #定义本机区域正向解析文件
    type master;
    file "localhost.zone;
};
zone "0.0.127.in-addr.arpa" { #定义本机区域反解文件
    type master;
    file "named.local"
};
2、配置name.root
 #dig -t NS . @a.root-servers.net > /var/named.root(通过根服务器找所有13个根域服务器)

3、配置本地正向解析文件/var/named/localhost.zone
#vim /var/named/localhost.zone
$TTL 86400
@    IN    SOA    localhost.      admin.localhost. (
                2011060301
               1H
                10M
                7D
                1D )
@   IN     NS       localhost.
localhost.  IN A 127.0.0.1
4、配置本地反向解析文件/var/named/named.local
# vim /var/named/named.local
$TTL 86400
@   IN     SOA      localhost.    admin.localhost.(
                2011060301
               1H
               10M
                 7D
                1D )
@    IN     NS         localhost.
1      IN     PTR       localhost.

注:一个进程运行以一个用户身份运行,bind以named用户运行,所以上述建立的文件要更改属主属组
命令:
#chown :named /etc/named.conf
#chown :named /var/named/* -R
启动服务可以验证缓存服务器是否生效
验证配置文件语法错误:
#service named configtest  
启动命令:
#service named start
在验证上述缓存DNS能否使用时,要更改本机DNS服务器指向
vim /etc/resolv.conf
nameserver 192.168.0.34 (这里设置为你的主机IP地址)
上述4步只是建立一个本地缓存DNS,他不能解析本地主机,只负责将本地请求发送给根域解析外部主机IP,
查找命令:
#dig -x 127.0.0.1        查找127.0.0.1的主机名   
#dig -t A localhost.     查找localhost.的IP
#dig -t A www.baidu.com  查询baidu的IP
上述命令是查找某一个资源记录所对应的结果

 


远程工具rndc的使用
rndc进程与named进程通信需要一组密钥
生成rndc需要使用的密钥,
命令:
#rndc-confgen > /etc/rndc.conf  (rndc.conf是rndc的配置文件)
将rndc.conf倒数第二到倒数第10行去掉#后追加到named.conf中
命令:
#tail /etc/rndc.conf | head -9 | sed ‘s/^*//g' >> /etc/named.conf

rndc的基本命令:
#rndc flush 清空NDS服务器缓存
#rndc status  查看DNS服务器状态
#rndc stop    停止DNS服务
#rndc reload  重新读取配置文件


第二部分:将缓存服务器扩展为主服务器
假设申请到域名a.com域名,需要建立一个DNS服务器来解析此域内的所有主机IP以及反解
假设域内的主机及IP如下:

 

通过bind实现DNS服务_DNS

1、编辑主配置文件/etc/named.conf
增加本地域的正向解析区域文件,在原文中增加2个zone
编辑格式:
zone "a.com" IN {
 type master;
 file "a.com.zone";
 allow-transfer { none; };       #不允许区域传送
};
zone "0.168.192.in-addr.arpa" IN {
 type master;
 file "192.168.0.zone"
 allow-transfer { none; };
2、建立a.com.zone文件
#vim /var/named/a.com.zone
$TTL 86400
$ORIGIN a.com.
@ IN SOA a.com. root.a.com. (
   2011060301
   1H
   10M
   7D
   1D )
  IN NS ns.a.com.
  IN MX   10 mail.a.com.    #10是邮件服务器的优先级
ns.a.com. IN A 192.168.0.34
mail.a.com. IN A 192.168.0.34
www  IN A 192.168.0.254 
www  IN A 192.168.0.1
bbs  IN CNAME www
ftp  IN A 192.168.0.254
保存退出
#chown :named a.com.zone   更改属主属组
#rndc reload                重新载入配置文件
#dig -t CNAME bbs.a.com     查找bbs.a.com的正式名称

3、建立反解文件/var/named/192.168.0.zone
$TTL 86400
@ IN SOA a.com. root.a.com. (
   2011060301
   1H
   10M
   7D
   1D )
  IN NS ns.a.com.
34  IN PTR ns.a.com.
34  IN PTR mail.a.com.
1  IN PTR www.a.com.
254  IN PTR www.a.com.
254  IN PTR ftp.a.com.
254  IN PTR fw.a.com.
保存退出
更改权限命令:
#chown :named 192.168.0.zone
重新读取配置文件
#rndc reload
测试
#dig -x 192.168.0.1

上述完成了一个简单的DNS配置