核心思想: 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重新加载区域

三、客户端测试

  1. 移动网测试

  1. 联通网测试

  1. 电信网测试