核心思想: 1. 基于客户端发出起解析请求的源IP地址判断客户端所在的地理区域决定如何返回解析结果,从而实现业务流量就近调度。 2. DNS主配置文件/etc/named.conf 文件中定义acl匹配客户端IP 3. 不同ACL匹配的客户端读取不同的区域数据库文件 4. DNS视图技术将ACL与区域数据库文件映射,注意一旦启用DNS的视图技术则所有的区域必须都包含在定义的视图内。
一、网络拓扑介绍
二、服务器配置
1. 定义解析请求流量分类
编辑bind主配置文件/etc/named.conf,定义acl将请求流量进行分类,如:定义三个ACL分别匹配来自联通、电信、移动三家ISP的域名解析请求。
acl cmnet { 192.168.39.0/24; 192.168.10.0/24; }; acl cunet { 192.168.38.0/24; 192.168.20.0/24 }; acl ctnet { 192.168.37.0/24; 192.168.30.0/24 }; allow-query { 192.168.39.0/24;192.168.10.0/24;192.168.20.0/24;192.168.30.0/24;};
2. 定义解析视图 DNS视图技术将ACL与区域库文件映射,include 引用区域名文件。注意一旦启用视图则所有的区域必须被包括在视图内,因此需要将/etc/named.conf文件的zone、和最后includ区域文件语句注释掉,或删除,然后定义在视图引用的文件之内。
view cmcc {
match-clients { cmnet;}; include "/etc/named.rfc1912.zones.cmcc"; }; view cucc { match-clients {cunet;}; include "/etc/named.rfc1912.zones.cucc"; }; view ctcc { match-clients {ctnet;}; include "/etc/named.rfc1912.zones.ctcc"; };
执行named-checkconf 检查配置文件是否存在语法错误
3. 创建区域文件
针对每个视图分别定义区域文件,DNS收到来自三个ISP客户的域名解析请求时,分别读取三个ISP对应区域文件,本个区域分别映射三个解析库文件,根据域名解析请求数据包的源IP地址返回各ISP的网内节点A记录资源。
定义cmnet网络的区域文件文件/etc/named.rfc1912.zones.cmcc
zone "magedu.com" IN { type master; file "magedu.com.zone.cmcc"; };
定义cunet网络的区域文件文件/etc/named.rfc1912.zones.cucc
zone "magedu.com" IN { type master; file "magedu.com.zone.cucc"; };
定义ctnet网络的区域文件文件/etc/named.rfc1912.zones.ctcc
zone "magedu.com" IN { type master; file "magedu.com.zone.ctcc"; };
4. 定义解析库文件 定义对应cmnet用户解析库文件 /var/named/magedu.com.zone.cmcc
定义对应cunet用户解析库文件 /var/named/magedu.com.zone.cucc 定义对应ctnet用户解析库文件 /var/named/magedu.com.zone.ctcc
5.检查解析库文件是否存在语法错误
chgrp named /var/named/magedu.com.zone.cmcc chgrp named /var/named/magedu.com.zone.cucc chgrp named /var/named/magedu.com.zone.ctcc
6.更改区域文件、解析库文件的属组为named
chgrp named /etc/named.rfc1912.zones.c* chgrp named /var/named/magedu.com.zone.c*
7.执行rndc reload重新加载区域
三、客户端测试
- 移动网测试
- 联通网测试
- 电信网测试