DNS的分离解析
实验背景
在Internet环境中,考虑到不同地区(华北、华南、港澳台、海外……)、不同ISP服务商(移动、电信、联通、教育网……)的访问速度差异,许多大型站点(新浪、网易、腾讯、搜狐……)会分别部署多台镜像服务器,不同地区或不同ISP接入的用户会自动连接到离他们最近的镜像服务器。
针对类似这样的需求,对于这些站点的权威DNS服务器来说,如何根据客户机的来源不同而引导其访问正确的镜像服务器呢?这个就需要用到Slit DNS(分离解析)了,有时候也成为智能解析。
1.为区域tarena.com配置分离解析,针对www.tarena.com的A记录做分离测试。
2.当客户机来自192.168.4.0/24或127.0.0.0/8时,将www.tarena.com解析为192.168.4.100。
3.当客户机来自其他网络时,将www.tarena.com解析为1.2.3.4。
实验环境:
VMware Workstartion RHEL5.9
实验方案:
使用2台RHEL 5虚拟机,为了简化实验网络结构,提供分离解析的DNS服务器配置有2个IP地址(192.168.4.5和172.16.16.5),以便不同网段的客户机可直接访问。两台RHEL 5虚拟机及Windows真机都可作为DNS客户机执行测试.
实验实现:
1.认识Split分离解析的实现方式
1)基本配置用法
针对同一个区域(tarena.com),可以在多个视图内分别定义,使用的区域地址数据文件相互独立,从而实现解析结果的分化 ——
2)将来源地址分组,定义为不同的ACL
针对大批量的地址段(单个IP、网段地址),可定义为访问控制列表,每个地址均以分号表示结束。例如“192.168.4.120;172.16.16.0/24;“,若使用”any;“可匹配任意地址。
定义访问控制列表需用到acl配置,相应的acl应该用到的地方之前先定义:
比如acl "YIDONG" { ip地址段1;ip地址段2;... 网段1;网段2;...};
2.配置分离解析的DNS服务器
1)确认服务器可接受不同客户机地址的DNS查询
为简化实验步骤,本例中直接为DNS服务器配置2个IP地址。基于物理网卡eth0和虚拟接口eth0:0,IP地址分别为192.168.4.5/24和172.16.16.5/24。
确认DNS服务器已配置的IP地址信息:
# ifconfig | grep "inet addr"
inet addr:192.168.4.5 Bcast:192.168.4.255 Mask:255.255.255.0
inet addr:172.16.16.5 Bcast:172.16.16.255 Mask:255.255.255.0
inet addr:127.0.0.1 Mask:255.0.0.0
这样的话,就可以为这三个网段的客户机提供DNS查询服务了,方便下面的DNS分离解析测试。
2)建立主配置文件named.conf
根据实验要求,定义2个视图。其中,一个视图名为“mylan“,对应来源地址为192.168.4.0/24或127.0.0.0/24的客户机;另外一个视图名为”other“,对应来源地址为其他任何地址的客户机:
#vim /var/named/chroot/etc/named.conf
options{
directory "/var/named";
};
acl "mylan"{
192.168.4.0/24;127.0.0.0/8;
};
view "mylan"
match-client { mylan; };
zone "tarena.com" IN{
type master ;
file "tarena.com.zone.lan"
};
view "other" {
match-client { any;};
type master;
file "tarena.com.zone.other";
};
};
3)为不同视图分别建立区域地址数据文件
建立mylan视图的地址数据文件(tarena.com.zone.lan):
$TTL 86400
@ IN SOA tarena.com. admin.tarena.com.
( 2013101701
3H
15M
1W
1D
)
@ IN NS svr5.tarena.com.
svr5 IN A 192.168.4.5
svr6 IN A 192.168.4.6
www IN A 192.168.4.100
//注意与其他视图中的差异 * IN A 192.168.4.100
建立mylan视图的地址数据文件(tarena.com.zone.other):
# vim /var/named/chroot/var/named/tarena.com.zone.lan
$TTL 86400
@ IN SOA tarena.com. admin.tarena.com. (
2013101701
3H
15M
1W
1D
)
@ IN NS svr5.tarena.com.
svr5 IN A 192.168.4.5
svr6 IN A 192.168.4.6
www IN A 1.2.3.4 //注意与其他视图中的差异 * IN A 1.2.3.4
4)重启named服务,确认服务状态
重启named服务程序:
#service named restart
使用netstat检查监听状态,确认所涉及到的三个地址的监听都可用:
3.测试分离解析的效果
)从本机测试DNS解析
指定127.0.0.1作为DNS服务器,这样相当于来自127.0.0.0/8网段。则查询www.tarena.com时,适用于mylan视图,结果是192.168.4.100:
[root@svr5 ~]# nslookup www.tarena.com 127.0.0.1
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: www.tarena.com
Address: 192.168.4.100
指定192.168.4.5作为DNS服务器,这样相当于来自192.168.4.0/24网段。则查询www.tarena.com时,同样适用于mylan视图,结果仍然是192.168.4.100
[root@svr5 ~]# nslookup www.tarena.com 192.168.4.5
Server: 192.168.4.5
Address: 192.168.4.5#53
Name: www.tarena.com
Address: 192.168.4.100
指定172.16.16.5作为DNS服务器,这样相当于来自其他地址(在any之前无任何视图可匹配)。则查询www.tarena.com时,适用于other视图,结果变成1.2.3.4:
[root@svr5 ~]# nslookup www.tarena.com 172.16.16.5
Server: 172.16.16.5
Address: 172.16.16.5#53
Name: www.tarena.com
Address: 1.2.3.4
从Windows 7真机测试DNS解析
Windows 7真机的IP地址是192.168.4.110,显然适用于mylan视图,当以192.168.4.5作为DNS服务器时,查询www.tarena.com的结果是192.168.4.100,
#nslookup www.tarena.com 192.168.4.5
名称:www.tarna.com
Address :192.168.4.100
实验总结:
注意:启用view视图设置后,不允许在view以外的地方再定义zone区段。
当客户机地址匹配“来源地址1”时,根据“视图1”中zone配置指定的地址数据文件提取查询结果;当客户机地址匹配“来源地址2”时,根据“视图2”中zone配置指定的地址数据文件提取查询结果;…… 以此类推,最后可准备一个来源地址为“any”的默认视图,匹配任意客户机地址。
本文转自Jx战壕 51CTO博客,原文链接:http://blog.51cto.com/xujpxm/1370851,如需转载请自行联系原作者