DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号为53。


1.网络环境图示

wKiom1PiDGmBHhEXAADG_D0i-gQ559.jpg

2.分别在两台服务器ns1ns2上通过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

验证:

wKioL1PiDYbjMJ_LAADYPBeQpTk910.jpg

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

验证:

wKiom1PiDG-CGx-CAAFfbS9-xog337.jpg

5.ns配置为ns1tech子域的服务器,并将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;

#####################################

验证:

wKioL1PiDYqi23luAAEXQJ1WWwc839.jpg

#现在虽然使用父域的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; };
};
#重启服务

验证:

wKiom1PiDHLzBtSZAADhcIaBAD4574.jpg

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; };
    };
 
};

验证:

当客户端IP172网段时,结果如下:

wKioL1PiDY3xNXg3AADPotk8MY0454.jpg

将客户端IP改为192.168网段,再进行解析,结果如下:

wKiom1PiDHSAQPyGAADAgksih8o585.jpg

可见,视图功能已经配置成功,当我们在双线接入服务器以及当服务器面向内网及外网时,也可以减轻DNS服务器为外网解析其他域IP地址而消耗多余的资源.