基于DNS视图技术实现CDN分网调度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于DNS视图技术实现CDN分网调度相关的知识,希望对你有一定的参考价值。
核心思想:
- 基于客户端发出起解析请求的源IP地址判断客户端所在的地理区域决定如何返回解析结果,从而实现业务流量就近调度。
- DNS主配置文件/etc/named.conf 文件中定义acl匹配客户端IP
- 不同ACL匹配的客户端读取不同的区域数据库文件
- 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重新加载区域
三、客户端测试
- 移动网测试
- 联通网测试
- 电信网测试
以上是关于基于DNS视图技术实现CDN分网调度的主要内容,如果未能解决你的问题,请参考以下文章