本方案主要包括以下几个方面:
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配置,执行分频道动态加载即可。