一种 CDN 动态加速回源白名单选路及降低源站探测量的方法
本文分享自天翼云开发者社区《一种CDN动态加速回源白名单选路及降低源站探测量的方法》.作者:蒋辉
本方案主要包括以下几个方面:
1)本发明提出了一种减少跨运营商探测源站及回源的方法,技术方案流程图见附图 1,具体实现步骤如下:
a)加载 ip 库文件到共享内存哈希表;
b)软件管理平台下发允许对源站发起探测的运营商规则配置文件,文件名为:cross_isp_detect_rule.conf,内容如下所示:
CN_dianxin: CN_dianxin,CN_liantong #仅允许运营商属性为电信/联通的 CDN 节点对运营商属性为电信的源站发起探测 CN_liantong: CN_liantong #仅允许运营商属性为联通的 CDN 节点对运营商属性为联通的源站发起探测 CN_yidong: all #忽略 CDN 节点的运营商属性,即允许所有 CDN 节点对运营商属性为移动的源站发起探测 CN_tietong: CN_tietong #仅允许运营商属性为铁通的 CDN 节点对运营商属性为铁通的源站发起探测 haiwai: haiwai #仅允许地理区域为海外(即国家简写为非 CN)的 CDN 节点对地理位置为海外的源站发起探测
c)软件启动时,会进行 cross_isp_detect_rule.conf 配置文件的解析,建立源站运营商属性与允许探测源站的 CDN 节点运营商属性的映射表 CrossISPDetectRuleMap;
d) 软件启动后,如果想更改或删除 cross_isp_detect_rule.conf 配置文件内容,可执行命令脚本./exec_cross_isp_detect_rule.sh add(更新/添加) | del(删除),此时脚本会通过 http 请求的方式通知进程重新加载更新/删除 cross_isp_detect_rule.conf 文件,从而更新/删除 CrossISPDetectRuleMap 映射表;
e)软件在发起探测前,获取 CDN 节点主机与源站 ip,通过共享内存 AB 区热更新机制从共享内存哈希表中查询 CDN 节点主机与源站的运营商及地理区域信息;
f)以源站 ip 的运营商属性为 key 从映射表 CrossISPDetectRuleMap 中查找允许探测该源站的 CDN 节点运营商属性,判断其是否与 CDN 节点主机运营商属性存在交集或者 CrossISPDetectRuleMap 中对应的 value 为 all。若是,才触发对源站的探测;否则,不触发对源站的探测。
2)此外,本发明针对政企客户源站存在白名单限制的场景,提出来一种回源白名单选路方法,技术方案流程图见附图 2,具体实现步骤如下:
a)软件配置平台下发回源白名单方案配置列表配置 back_origin_white_list,可配置包含多个回源白名单方案,例如:针对源站在华北地区规划一个华北回源白名单列表,针对源站在华东地区规划一个华东回源白名单列表,针对源站在华南地区规划一个华南回源白名单列表。并且对不同的回源白名单方案进行不同的命名。配置格式为:回源白名单方案名称:回源白名单节点 vip 列表,内容如下所示:
back_origin_white_list: NorthChinaWhiteList: "1.1.1.1,2.2.2.2,3.3.3.3" EastChinaWhiteList: "4.4.4.4,5.5.5.5,6.6.6.6,7.7.7.7" SouthChinaWhiteList: "8.8.8.8,9.9.9.9"
上述格式中:NorthChinaWhiteList 表示回源白名单方案,1.1.1.1,2.2.2.2,3.3.3.3 为 NorthChinaWhiteList 回源白名单方案的回源白名单节点 vip 列表,多个 vip 以逗号分隔。
b)全局配置加载时,建立回源白名单方案与回源白名单节点 vip 列表之间的映射关系到映射表 BackOriginWhiteListMap 中;
c)支持不同客户分频道选择不同的回源白名单方案配置,如:分频道配置下发定制化的回源白名单方案配置 back_origin_white_list_name: NorthChinaWhiteList,表示分频道配置的回源白名单方案为 NorthChinaWhiteList;
d)根据分频道配置的回源白名单方案,在映射表 BackOriginWhiteListMap 中获取对应的回源白名单节点 vip 列表,根据主机角色来触发不同的探测逻辑关系,具体内容如下:
若本机角色为边缘,则边缘探测一层区域父及回源白名单节点 vip 列表,判断本机节点 vip 是否在回源白名单节点 vip 列表中,若是,则说明其属于回源白名单列表里的节点,此时触发对源站的探测;否则,不触发源站的探测。
如果本机角色为一层父,探测其他一层父、二层父及回源白名单节点 vip 列表,判断本机节点 vip 是否在回源白名单节点 vip 列表中,若是,则说明其属于回源白名单列表里的节点,此时触发对源站的探测;否则,不触发源站的探测。
如果本机角色为二层父,探测其他二层父、一层父及回源白名单节点 vip 列表,判断本机节点 vip 是否在回源白名单节点 vip 列表中,若是,则说明其属于回源白名单列表里的节点,此时触发对源站的探测;否则,不触发源站的探测。
e)若想调整回源白名单节点 vip 列表,只需更新软件全局 back_origin_white_list 配置,执行 reload 热更新即可;若想调整客户定制化的回源白名单方案,只需更改分频道 back_origin_white_list_name 配置,执行分频道动态加载即可。
评论