核心思想:

  1. 基于客户端发出起解析请求的源IP地址判断客户端所在的地理区域决定如何返回解析结果,从而实现业务流量就近调度。
  2. DNS主配置文件/etc/named.conf 文件中定义acl匹配客户端IP
  3. 不同ACL匹配的客户端读取不同的区域数据库文件
  4. DNS视图技术将ACL与区域数据库文件映射,注意一旦启用DNS的视图技术则所有的区域必须都包含在定义的视图内。

一、网络拓扑介绍
基于DNS视图技术实现CDN分网调度_第1张图片

二、服务器配置

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

基于DNS视图技术实现CDN分网调度_第2张图片
定义对应cunet用户解析库文件 /var/named/magedu.com.zone.cucc
基于DNS视图技术实现CDN分网调度_第3张图片
定义对应ctnet用户解析库文件 /var/named/magedu.com.zone.ctcc
基于DNS视图技术实现CDN分网调度_第4张图片

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

基于DNS视图技术实现CDN分网调度_第5张图片

7.执行rndc reload重新加载区域

三、客户端测试

  1. 移动网测试

    基于DNS视图技术实现CDN分网调度_第6张图片

  2. 联通网测试

    基于DNS视图技术实现CDN分网调度_第7张图片

  3. 电信网测试

    基于DNS视图技术实现CDN分网调度_第8张图片