DNS服务
一.搭建DNS服务器
1.    安装BIND软件(是应用最广泛的DNS服务程序)
(可以直接下载dhcp服务器的rpm包,或者挂载Red Hat 5的光盘,安装其中的dhcp软件包)
bind-9.3.3-7.el5.i386.rpm
bind-chroot-9.3.3-7.el5.i386.rpm
bind-devel-9.3.3-7.el5.i386.rpm
bind-libbind-devel-9.3.3-7.el5.i386.rpm
bind-libs-9.3.3-7.el5.i386.rpm
bind-sdb-9.3.3-7.el5.i386.rpm
bind-utils-9.3.3-7.el5.i386.rpm
caching-nameserver -9.3.3-7.el5.i386.rpm
以上是与bind域名服务相关的所有软件包:
Ø      bind,提供域名服务的主要程序和相关文件
Ø      bind-utils,提供了对DNS服务器的测试工具(如nslookupdig等)
Ø      bind-chroot,为bind提供一个伪装的根目录以增强安全性(以“/var/named/chroot/”目录作为bind的根目录)
Ø      caching-nameserver,为配置bind作为缓存服务器提供必要的默认配置文件。
rpm –ivh bind-*
rpm –ivh caching-nameserver-9.3.3-7.el5.i386.rpm
2.修改bind的配置文件(位于/var/named/chroot/etc/下)
修改named.caching-nameserver.conf
listen-on port 53 { 127.0.0.1; };
allow-query     { localhost; };
match-clients      { localhost; };
match-destinations { localhost; };
修改后如下(简言之该4any
listen-on port 53 { any; };
allow-query     { any; };
match-clients      { any; };
match-destinations { any; };
修改/var/named/chroot/etc/named.rfc1912.zones,原来有的我们一般保留,在后面添加我们需要提供解析的区域(zone
例:添加了一个正向区域和一个反向区域(都是主要区域)
zone "haha.com" {
        type master;
        file "haha.com";
};
 
zone "100.16.172.in-addr.arpa" {
        type master;
        file "100.16.172.fx";
};
3.区域数据库配置文件(位于/var/named/chroot/var/named/
可以根据模板named.local来创建
cp named.local haha.com
cp named.local 100.16.172.fx
vi haha.com(删除默认的最后一行,添加如下记录)
www     IN      A       172.16.100.5
vi 100.16.172.fx(删除默认的最后一行,添加如下记录)
5       IN      A       www.haha.com.
(这里的5DNS服务器IP地址的最后一位)
4.修改权限(与DNS服务有关的文件必须是named组的,而且权限要求很高,不容易更改,因此我们将组的权限通过如下命令就简单自动设置好了)
bind-chroot-admin -s
5.启动named服务
service named restart
6.测试解析——nslookup(我们也可以在客户端设置DNS服务的IP地址后,也可以进行同样的测试解析)
[root@localhost ~]# nslookup
> www.haha.com
Server:         127.0.0.1
Address:        127.0.0.1#53
 
Name:   www.haha.com
Address: 172.16.100.5
> 172.16.100.5
Server:         127.0.0.1
Address:        127.0.0.1#53
 
5.100.16.172.in-addr.arpa       name = www.haha.com.
> 
二.构建主辅域名服务器
1.构建主域名服务器(跟上面完全相同)
2.构建辅域名服务器(除开修改主配置文件/var/named/chroot/etc/named.caching-nameserver.conf不同外,其它步骤都相同)
options {
        directory "/var/named";
};
zone "haha.com" {
        type slave;
        masters {172.16.100.5;};
        file "slaves/haha.com";
};
zone "100.16.172.in-addr.arpa" {
        type slave;
        masters {172.16.100.5;};
        file "slaves/100.16.172.fx";
};
启动named服务(如果配置无误,named将会自动从主域名服务器中下载区域数据库文件,并保存到“slaves”子目录中,可以查看slaves目录中是否有区域数据库文件,也可以通过日志/var/log/messages查看)
service named start
3.验证辅域名服务器(在客户端DNS服务器写辅域名服务器的IP地址,然后使用nslookup看能否解析)
总结:
配置文件修改好后,我们可以先进行检查,如果没有语法错误,不会给出任何提示;反之,就会给出相应的提示。
检查主配置文件
named-checkconf
/var/named/chroot/etc/named.caching-namerver.conf
命令named-checkconf加上“-z”选项还可以尝试加载主配置文件中对应的区域数据库文件,并检查是否存在问题
检查区域数据库文件(如果没有错误,将提示“OK”)
cd /var/named/chroot/var/named/
named-checkzone haha.com haha.com
区域数据库文件的配置的几种特殊应用
Ø      基于DNS解析的负载均衡(同一个域名对应多台服务器,可以通过区域数据库文件实现简单的轮流解析,减轻每台服务器的负担,我只需要添加相应的多条A记录即可)
如下
web     IN      A       192.168.1.1
web     IN      A       192.168.1.2
web     IN      A       192.168.1.3
Ø      泛域名解析(使用任何主机名都可以)
*       IN      A       172.16.100.5
Ø      子域授权(将某个子域内各域名的解析工作交给另外一台服务器来完成,并且数据自己维护)
例:在IP172.16.100.5DNS服务器的DNS区域“.haha.com”的数据库文件中设置子域授权,将“.mail.haha.com”子域授权给IP地址为172.16.100.10DNS服务器
mail    IN      A       172.16.100.10
        IN      NS      www.mail.haha.com.
www.mail.haha.com. IN  A  172.16.100.10