搭建DNS环境:
安装所需的软件
rpm -ivh /mnt/cdrom/Server/bind-9.3.6-4.P1.el5.i386.rpm
rpm -ivh /mnt/cdrom/Server/bind-chroot-9.3.6-4.P1.el5.i386.rpm(增强DNS系统的安全性)
rpm -ivh /mnt/cdrom/Server/caching-nameserver-9.3.6-4.P1.el5.i386.rpm(提供DNS配置文件的样例文件)
安装完成后形成的几个重要目录
/var/named/chroot DNS的根目录
/var/named/chroot/etc 放置DNS的配置文档
/var/named/chroot/var/named 放置区域文件的目录
实验一:单一区域的DNS基本配置
实验环境:DNSServer操作系统为Redhat Enterprise Linux AS v5.4
Client操作系统为Windows XP
需求描述:本域中的客户端能对域名进行正常的正、反解
实验拓扑:
一、修改配置文件
配置文件需要手工拷贝样例文件后进行修改,在/var/named/chroot/etc/目录下:
cp -p named.caching-nameserver.conf named.conf
需要加上参数-p来将其样例文件的属性完全拷贝
修改后的named.conf文件:
listen-on port 53 { any; };
监听在这部主机系统上面的哪个网络接口。预设是监听在 localhost,即只有本机可以对 DNS 服务进行查询,这里将大括号内的数据改写成 any
directory"/var/named";
指明正反解文件所存放的位置
dump-file, statistics-file, memstatistics-file
存放与 named 这个服务有关的统计信息,如果想要输出成为文件的话,预设的文件名就如上所述。一般不怎么用
allow-query { any; };
设置允许向这个服务其提出查询请求的客户端,any代表对所有用户开放
match-clients{ any; }
match-destinations{ any; }
这两项声明所有客户端可以访问视图中的所有目标
二、在区域声明文件 named.rfc1912.zones 中声明 abc 区域:
三、在/var/named/chroot/var/named目录下新建一个abc区域的正向解析文件abc.com.zone,同样可以拷贝一个样例文件加以修改
cp -p localhost.zone abc.com.zone在/var/named/chroot/var/named/slaves目录下新建一个abc区域的反向解析文件named.192.168.2.0,同样可以拷贝一个样例文件加以修改
cp -p named.local 192.168.2.0.local开启DNS服务service named start,若DNS服务已经开启,可以使用rndc reload指令来重新加载DNS被修改的部分
四、测试:
语法检测工具
[root@server1 etc]# named-checkconf/var/named/chroot/etc/named.conf检查配置文件
[root@server1 etc]# named-checkzone abc.com/var/named/chroot/var/named/abc.com.zone检查区域文件
实验二:master/slave数据同步
实验环境:两台DNSServer操作系统为Redhat Enterprise Linux AS v5.4
Client操作系统为WindowsXP
需求描述:本域中的客户端能对域名进行正常的正、反解且两台DNS服务器之间能够实现区域文件的同步
实验拓扑:
实验步骤:
*master 的配置与实验一中的相同,这里不再赘述
配置slave DNS服务器
一、修改配置文件named.conf
在/var/named/chroot/etc/下的named.conf文件中修改参数,详见实验一中修改named.conf文件的步骤
二、在区域声明文件 named.rfc1912.zones 中声明 abc 区域:三、启动DNS服务
service named start
四、测试
实验三:DNS授权
实验环境:两台DNSServer操作系统为Redhat Enterprise Linux AS v5.4
Client操作系统为WindowsXP
需求描述:某公司总部在北京,下属两个分部,分别位于北京和上海,而北京分部与总部地理上相距较近,现在要实现总部与北京分部共用一台IP地址为192.168.2.10的DNS服务器,上海分部独立使用一台IP地址为192.168.2.20的DNS服务器
实验拓扑:
一、在/var/named/chroot/etc/下的named.conf文件中修改参数,详见实验一中修改named.conf文件的步骤
二、在总部的 DNS 服务器上,在 /var/named/chroot/etc 中的区域声明文件 named.rfc1912.zones 中,声明 abc 区域和 bj.abc 区域
三、在/var/named/chroot/var/named目录下增加正向区域解析文件abc.com.zone、bj.abc.com.zone和反向解析区域文件named.192.168.2.0
先来测试一下负责总部和北京分部的这台DNS主机是否工作正常
四、向子域的DNS服务器授权、在abc.com.zone区域声明文件中追加以下两条声明:
sh.abc.com. IN NS ns.sh.abc.com.
ns.sh.abc.com. IN A 192.168.2.20
接下来就要配置上海分部的DNS服务器了:
五、在/var/named/chroot/etc/下的named.conf文件中修改参数,详见实验一中修改named.conf文件的步骤
六、在上海子域的DNS 服务器上,在/var/named/chroot/etc中的区域声明文件named.rfc1912.zones中,声明正向解析区域sh.abc和反向解析区域named.192.168.2.0
七、在/var/named/chroot/var/named目录下增加正向区域解析文件sh.abc.com.zone反向解析区域文件named.192.168.2.0
这是父域中DNS服务器的反向区域声明文件,下面这一步只是想要在sh.abc.com这个子域之外访问这个域内的www主机,也可以在里面指明上海子域内的DNS服务器的地址,这里有点模仿代理的意思
八、测试
此时父域和北京子域可以解析上海子域的主机名但是上海子域并不能正常解析父域和北京子域中的主机名,这是由于实验环境下不能去访问根域“.”,有两种方法可以解决这个问题,一是在根域的声明文件中增加一条记录指向父域,二是设置转发器将不能解析的域名扔给父域中的DNS服务器
1、在/var/named/chroot/var/named/named.ca文件中增加
A.ROOT-SERVERS.NET.3600000 IN A 192.168.2.10
2、在/var/named/chroot/etc/named.conf文件中增加
forwarders {192.168.2.10; };
实验四:视图的使用
实验环境:DNS Server操作系统为Redhat Enterprise Linux AS v5.4
防火墙操作系统为Redhat Enterprise Linux AS v5.4
Client操作系统为WindowsXP
需求描述:要求内网192.168.2.0中的WWW主机不仅可以让本网段的内部人员使用,而且要求向外网提供访问权限
实验拓扑:
实验步骤:
一、在DNS服务器上修改配置文件named.conf
在文件的开头加上 acl lan { 192.168.2.0/24; }; 访问控制列表来限制内网访问用户二、在区域声明文件named.rfc1912.zones中声明abc区域(略)
三、在/var/named/chroot/var/named目录下增加正向区域解析文件abc.com.zone和abc.com.zone1
四、在防火墙上设置DNAT
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 开启系统的数据转发功能
sysctl �Cp
iptables -t nat -A PREROUTING -d 202.196.10.254 -p udp --dport 53 -j DNAT --to 192.168.2.10
iptables -t nat -A PREROUTING -d 202.196.10.254 -p udp --dport 80 -j DNAT --to 192.168.2.30
五、测试