设为首页 | 收藏本站欢迎来到卓越网络免费免备案CDN加速,DDoS和CC攻击防御,高防CDN管理平台!

已阅读

基于EDNS优化的CDN精准调度方案探讨

作者:cdnfine      来源:cdnfine      发布时间:2020-10-13

1  引言

随着8k/VR等大视频业务的快速发展,以及双千兆网络的大力推广,用户对视频服务质量要求越来越高,要求大码率、零卡顿、低时延等极致体验。部分互联网内容提供商也要求在本地网提供服务,实现用户访问时快速提供服务。这就要求高防CDN运营商能够将CDN节点尽量下沉至靠近用户的地方,实现低时延高质量的CDN服务。
CDN服务节点下沉之后该如何实现流量的精准调度是本文考虑的重点。中国电信目前以省为单位集中部署Local DNS,由LDNS代理用户请求进行递归查询,这导致了依赖于DNS调度的准确度只能局限到以省为单位,难以满足大视频业务低时延的服务质量要求。
本文接下来将阐述如何基于EDNS优化以及CDN调度系统(GSLB)的优化来实现CDN的精准调度。

2  CDN调度现状

现有的互联网CDN的调度方式大部分是基于传统DNS的调度,CDN业务的调度流程可归纳分为两大部分,一是DNS解析流程,二是CDN资源调度流程,具体流程如图1所示

基于EDNS优化的CDN精准调度方案探讨

图1  基于传统DNS的CDN调度流程

终端向LDNS发起DNS解析请求,LDNS根据用户请求的域名层层递归至DNS授权服务器,获取该域名的CNAME记录之后,LDNS根据CNAME之后的域名再次进行递归查询,最终获取CDN GSLB的地址并请求域名解析。
CDN GSLB根据LDNS的地址,进行查询和调度策略匹配,可定位用户属于某个省份,若该省份仅部署了一个节点,即向LDNS返回该节点IP,若该省份在多个地市均部署了CDN服务节点,则GSLB会对这些CDN节点进行轮询,随机分配一个节点,返回该节点的IP给LDNS。终端获取到最终的CDN服务节点的IP,向该节点发起服务请求。
现有的调度机制存在问题如下:
CDN GSLB对用户位置的判断依据是从DNS请求中获取Local DNS递归地址,而Local DNS以省为单位部署,所以GSLB能判断用户是属于某个省份,但无法实现地市级别的精准调度,会出现跨地市的CDN服务,网络时延大且不稳定,用户体验较差。

3  EDNS原理

为解决CDN精确调度的问题,Google等互联网公司提出了edns-client-subnet扩展协议(ECS协议),通过附加字段传递原始用户网络地址给权威DNS,从而权威DNS可根据原始用户源地址信息实现精准调度。目前IETF已发布相应的ECS协议RFC,为ECS的应用打下良好基础。
EDNS的基本原理如图2所示

图2  EDNS基本原理

EDNS是DNS的逐跳扩展,因此,EDNS应用于每—对服务器之间,即递归解析器和权威服务器之间。递归解析器向权威服务器发送携带ECS选项的查询请求,ECS选项中包含了source prefix-length,并将用户地址截取至该长度,用0补齐。权威服务器返回的DNS响应包含scope-prefix-length,递归解析器根据source prefix-length, scope-prefix-length以及最大缓存长度的关系确定存储地址的长度,并将响应标记为对该范围内的所有地址有效。
RFC定义的EDNS0存在以下问题:
按照RFC7871定义,每个应答报文只能含有一个缓存生效地址段。同一个域名每个用户地址段至少需要一个缓存条目,对于一个省级ISP,用户IPv4源地址条目数一般能够达到几千条(以C类计算),这样一个域名在缓存中的条目数量大量膨胀。
根据ECS递归算法,来自不同用户地址段的同一个域名查询请求都需要进行递归查询。这样递归查询量大幅上升,资源消耗大幅上升。

4  CDN精准调度方案

为了解决上述EDNS以及现有高防CDN调度系统存在的问题,本文提出了一种基于ENDS优化的CDN精准调度方案。具体方案实现如图3所示

图3  CDN精准调度方案

首先,LDNS升级支持ECS协议,并且支持根据业务模型规划调度单元将用户归类,为每个调度单元分配唯一映射地址,该映射地址为LDNS与CDN GSLB协商好的的地址。这样,在用户请求域名解析时,LDNS根据这个用户所在的调度单元,查询到该调度单元对应的映射地址,这时,LDNS不再携带用户原始IP,改为携带映射地址和CDN GSLB通信。
同时,LDNS支持多视频缓存,根据调度单元增设唯一对应的多分区缓存,普通域名继续使用公共分区,通过缓存分区可大幅度提升缓存命中率,减少递归流量。
虽然LDNS的递归可以同时兼容EDNS递归和普通递归,但EDNS递归比普通递归更加消耗资源,建议部署单独的EDNS递归,集中控制EDNS域名的递归或转发策略,实现递归解析分流,保障LDNS原有性能不降低。
CDN调度系统(GSLB)升级支持ECS协议,周期性探测各CDN节点状态,在收到LDNS的域名解析请求时,根据LDNS携带的ECS信息,优化调度算法,结合权重、节点服务质量、热点等综合考虑,返回最优的CDN节点IP,实现用户的精准调度。GSLB初期集中式部署,需要采集全国CDN节点的状态数据,当业务流量越来越大,免费CDN节点增多时,GSLB性能压力增大,建议采用分布式部署方式,提升GSLB性能和效率,实现用户请求的快速精准调度。
LDNS在收到CDN GSLB响应报文时,忽略掉报文里面的scope-prefix-length,根据source prefix-length存储地址的长度,并缓存对应的“映射地址段-CDN节点IP”条目。

5  试点应用

为了验证方案的可行性,项目团队部署了实验室测试环境,包含了现网DNS设备以及中国电信云公司CDN设备,主要测试厂商DNS系统和云公司的权威服务器之间的ECS功能测试,解析性能,以及安全防护能力。测试结果表明,现网主流厂商的DNS设备可以通过软件升级支持ECS功能,能够支持多视图缓存,以及ECS递归,云公司的GSLB系统可以通过升级支持ECS协议,实现将用户精准地调度至最靠近且服务质量最优的CDN节点提供服务,验证了上述章节的免费CDN精准调度方案的技术可行性。
进行了实验室测试验证之后,项目组在宁波进行了现网试点,从试运行采集到的数据来看(如图4所示),采用本方案实现精准调度后,宁波的用户会被精准调度至宁波的CDN节点,而未采用精准调度方案之前,宁波的用户会被随机调度至杭州或者温州的CDN节点提供服务。从用户体验提升较为明显,首包到达时延下降了60%,内容下载时间下降了80%以上。

基于EDNS优化的CDN精准调度方案探讨

图4  CDN精准调度前后服务质量对比

6  结束语

本文提出了基于EDNS优化的CDN精准调度方案,并进行了实验室验证和现网试点验证,通过对LDNS升级支持ECS,并优化支持多视图划分,地址映射以及分区缓存等功能,同时,对CDN调度系统优化支持智能调度,最终实现CDN的精准调度,满足大视频业务及互联网业务的服务质量要求,大大提升了用户体验,同时也为运营商对互联网业务的精细化运营奠定了基础。
 
Keywords: 免费CDN加速 免备案CDN加速 高防CDN加速