DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号为53。
1.网络环境图示
2.分别在两台服务器ns1和ns2上通过YUM安装Bind软件包
[root@ns1 ~]# yum install bind
[root@ns2 ~]# yum install bind
3.配置ns1的正反向区域配置文件# 编辑named主区域配置文件,注释不需要配置
# 在/etc/named.rfc1912.zones文件中添加区域配置信息
[root@ns1 ~]# tail -8 /etc/named.rfc1912.zones
zone "test.com" IN {
type master;
file "test.com.zone";
};
zone "21.16.172.in-addr-arpa" IN {
type master;
file "172.16.21.zone";
};
#编辑test.com及"21.16.172.in-addr-arpa"的区域配置文件,内容如下
[root@ns1 ~]# cat /var/named/test.com.zone
$TTL 3600
@IN SOA test.com. admin.test.com. (
2014080501
3H
15M
5D
1D)
@IN NSns1.test.com.
IN MX 10mail.test.com.
ns1IN A172.16.21.1
mailIN A172.16.21.100
wwwIN A172.16.21.10
[root@ns1 ~]# cat /var/named/172.16.21.zone
$TTL 3600
@IN SOA test.com. admin.test.com. (
2014080501
3H
15M
5D
1D)
@IN NSns1.test.com.
IN MX 10 mail.test.com.
1IN PTRns1.test.com.
100IN PTRmail.test.com
10IN PTRwww.test.com
验证:
4.将ns2配置为ns1的从服务器#编辑主配置文件,将不需要选项加以注释
#编辑/etc/named.rfc1912.zones,添加如下内容
[root@ns2 named]# tail -5 /etc/named.rfc1912.zones
zone "test.com" IN {
type slave;
file "slave/test.com.zone";
masters { 172.16.21.1; };
};
#在ns1服务器上编辑/etc/named.rfc1912.zones文件,在区域test.com的配置中添加以下内容,用于支持区域传送
allow-transfer { 172.16.21.2; };
#在ns1服务器上的test.com.zone配置文件中把ns2添加为DNS服务器
@ IN NS ns2.test.com.
ns2 IN A 172.16.21.2
验证:
5.将ns配置为ns1的tech子域的服务器,并将test.com.域的请求转发到ns1服务器上#在ns1的/var/named/test.com.zone文件中添加ns的胶水记录
tech IN NS ns.tech.test.com.
ns.tech IN A 172.16.21.2
#在ns2的/etc/named.rfc1912.zones中添加tech.test.com区域,内容如下
[root@ns2 named]# tail -5 /etc/named.rfc1912.zones
zone "tech.test.com" IN {
type master;
file "tech.test.com.zone";
};
#编辑tech.test.com.zone区域配置文件
[root@ns2 named]# vim tech.test.com.zone
$TTL 3600
@ IN SOA tech.test.com. admin.tech.test.com. (
2014080501 ; serial
3H ; refresh
15M ; retry
5D ; expire
1D ) ; minimum
IN NS ns
ns IN A 172.16.21.2
www IN A 172.16.21.22
#修改tech.test.com.zone 属组为named
chgrp named tech.test.com.zone
#在实验过程当中遇到一个问题,父域的DNS总是无法解析子域中的名称,错误信息如下
#Aug 4 22:09:15 wh1 named[3294]: error (no valid DS) resolving 'ns.tech.test.com/A/IN': 172.16.21.2#53
经过各种google,百度,终于找到解决方法
#####################################
dnssec-enable no;
dnssec-validation no;
#####################################
验证:
#现在虽然使用父域的DNS可以解析到子域的服务器地址,但是子域却会去根下查找其父域的域名,由于没有在互联网上注册,所以肯定无法查找到,所以需要在子域上配置子域转发
#配置子域转发,在/etc/named.rfc1912.zones中添加如下内容
[root@ns2 named]# tail -5 /etc/named.rfc1912.zones
zone "test.com" IN {
type forward;
forward only;
forwarders { 172.16.21.1; };
};
#重启服务
验证:
6.将ns1服务器配置为视图,根据用户网络地址选择最优的服务器地址返回给客户#修改配置文件,将原有的区域配置均移动到view neiwang { }; 中,并在其中添加:
match-clients { 172.16.0.0/16; };
#并在下方再定义一个新的视图,内容如下:
view waiwang {
match-clients { any; };
zone "test.com" IN {
type master;
file "test.com.zone.waiwang";
allow-transfer { any; };
};
};
验证:
当客户端IP为172网段时,结果如下:
将客户端IP改为192.168网段,再进行解析,结果如下:
可见,视图功能已经配置成功,当我们在双线接入服务器以及当服务器面向内网及外网时,也可以减轻DNS服务器为外网解析其他域IP地址而消耗多余的资源.