搭建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

需求描述:本域中的客户端能对域名进行正常的正、反解

实验拓扑:

DNS--以bind方式实现_DNS

一、修改配置文件

配置文件需要手工拷贝样例文件后进行修改,在/var/named/chroot/etc/目录下:

cp   -p   named.caching-nameserver.conf    named.conf

需要加上参数-p来将其样例文件的属性完全拷贝

修改后的named.conf文件:

DNS--以bind方式实现_授权_02

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区域:

DNS--以bind方式实现_linux_03

三、在/var/named/chroot/var/named目录下新建一个abc区域的正向解析文件abc.com.zone,同样可以拷贝一个样例文件加以修改

cp  -p  localhost.zone  abc.com.zone

DNS--以bind方式实现_授权_04

/var/named/chroot/var/named/slaves目录下新建一个abc区域的反向解析文件named.192.168.2.0,同样可以拷贝一个样例文件加以修改

cp -p named.local  192.168.2.0.local

DNS--以bind方式实现_数据同步_05

开启DNS服务service named start,若DNS服务已经开启,可以使用rndc reload指令来重新加载DNS被修改的部分

四、测试:

DNS--以bind方式实现_bind_06

语法检测工具

[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服务器之间能够实现区域文件的同步

实验拓扑:

DNS--以bind方式实现_授权_07

实验步骤:

*master的配置与实验一中的相同,这里不再赘述

配置slave DNS服务器

一、修改配置文件named.conf

/var/named/chroot/etc/下的named.conf文件中修改参数,详见实验一中修改named.conf文件的步骤

二、在区域声明文件named.rfc1912.zones中声明abc区域:

DNS--以bind方式实现_授权_08

三、启动DNS服务

service named start

四、测试

DNS--以bind方式实现_linux_09

DNS--以bind方式实现_linux_10

 

 

 

 

实验三:DNS授权

实验环境:两台DNSServer操作系统为Redhat Enterprise Linux AS v5.4

                    Client操作系统为WindowsXP

需求描述:某公司总部在北京,下属两个分部,分别位于北京和上海,而北京分部与总部地理上相距较近,现在要实现总部与北京分部共用一台IP地址为192.168.2.10DNS服务器,上海分部独立使用一台IP地址为192.168.2.20DNS服务器

实验拓扑:

DNS--以bind方式实现_linux_11

一、在/var/named/chroot/etc/下的named.conf文件中修改参数,详见实验一中修改named.conf文件的步骤

二、在总部的DNS服务器上,在/var/named/chroot/etc中的区域声明文件named.rfc1912.zones中,声明abc区域和bj.abc区域

DNS--以bind方式实现_bind_12

三、/var/named/chroot/var/named目录下增加正向区域解析文件abc.com.zonebj.abc.com.zone和反向解析区域文件named.192.168.2.0

DNS--以bind方式实现_linux_13

DNS--以bind方式实现_bind_14

DNS--以bind方式实现_DNS_15

先来测试一下负责总部和北京分部的这台DNS主机是否工作正常

DNS--以bind方式实现_DNS_16

四、向子域的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

DNS--以bind方式实现_DNS_17

七、/var/named/chroot/var/named目录下增加正向区域解析文件sh.abc.com.zone反向解析区域文件named.192.168.2.0

DNS--以bind方式实现_DNS_18

DNS--以bind方式实现_DNS_19

这是父域中DNS服务器的反向区域声明文件,下面这一步只是想要在sh.abc.com这个子域之外访问这个域内的www主机,也可以在里面指明上海子域内的DNS服务器的地址,这里有点模仿代理的意思

DNS--以bind方式实现_bind_20

八、测试

DNS--以bind方式实现_DNS_21

DNS--以bind方式实现_bind_22

此时父域和北京子域可以解析上海子域的主机名但是上海子域并不能正常解析父域和北京子域中的主机名,这是由于实验环境下不能去访问根域“.”,有两种方法可以解决这个问题,一是在根域的声明文件中增加一条记录指向父域,二是设置转发器将不能解析的域名扔给父域中的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--以bind方式实现_数据同步_23

 

实验步骤:

一、在DNS服务器上修改配置文件named.conf

在文件的开头加上acl lan { 192.168.2.0/24; };访问控制列表来限制内网访问用户

DNS--以bind方式实现_linux_24

二、在区域声明文件named.rfc1912.zones中声明abc区域(略)

三、/var/named/chroot/var/named目录下增加正向区域解析文件abc.com.zoneabc.com.zone1

DNS--以bind方式实现_数据同步_25

DNS--以bind方式实现_授权_26

四、在防火墙上设置DNAT

vim   /etc/sysctl.conf

net.ipv4.ip_forward = 1    开启系统的数据转发功能

sysctl   –p

 

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

五、测试

DNS--以bind方式实现_数据同步_27

DNS--以bind方式实现_DNS_28