APP下载

基于ECS的CDN精确调度现网实践与探索

2021-04-03向九松樊士迪

现代信息科技 2021年19期

向九松 樊士迪

摘  要:域名服务是因特网最基本的网络服务之一,大部分CDN需要依赖DNS来实现内容调度,域名解析的准确程度和响应速度对整个网络服务质量而言非常重要。通过分析当前传统CDN调度存在的不足,结合谷歌等公司提出的Edns-Client-Subnet扩展协议,文章提出了基于改进版ECS的CDN调度优化方案,并就具体现网实践过程中智能分区、CNAME调度、存储优化等关键要点进行阐述。

关键词:DNS;ECS;CDN

中图分类号:TP393                  文献标识码:A文章编号:2096-4706(2021)19-0047-03

Practice and Exploration of CDN Precise Scheduling Current Network Based on ECS

XIANG Jiusong, FAN Shidi

(China Telecom Jiangsu Intelligent Cloud Network Dispatching Operation Center, Nanjing  210037, China)

Abstract: Domain name service is one of the most basic network services on the Internet. Most CDNs need to rely on DNS to realize content scheduling. The accuracy and response speed of domain name resolution are very important to the quality of service of the whole network. By analyzing the shortcomings of the current traditional CDN scheduling, combined with the Edns-Client-Subnet extension protocol proposed by Google and other companies, this paper puts forward the CDN scheduling optimization idea based on the improved version of ECS, and expounds the key points such as intelligent partition, CNAME scheduling and storage optimization in the process of network practice.

Keywords: DNS; ECS; CDN

0  引  言

域名服务是因特网最基本的网络服务之一,通过在网络中构建一个层次化的树状服务结构,建立互联网地址与域名的逻辑映射关系,供互联网应用服务使用。在互联网中几乎每个用户的每次访问都会使用到域名解析,所以域名解析的准确程度和响应速度对整个网络服务质量而言非常重要。如何利用DNS将离用户最近的内容资源精确地调度给用户是运营商和内容服务商同时急切关心的问题。

1  传统CDN调度的不足

传统CDN一般使用DNS获取查询IP,再根据该IP对用户进行地域调度。但这里获取的IP地址一般是运营商LOCAL DNS的递归服务器地址,而不是用户真实的IP地址。运营商通常以大区或省为单位部署DNS,这就导致了传统DNS的调度精度只能局限到省,无法精确到市或者再下一级网络。

为了解决DNS调度不精确的问题,很多CDN区域调度系统会再借用HTTP302重定向技术,从HTTP消息中获取用户的IP地址。但HTTP重定向不仅增加了调度次数和用户时延,重定向服务器自身也容易成为性能瓶颈,另外它只支持基于HTTP的应用,而无法调度其他应用层协议。

随着CDN的普及和推广,以省为单位的调度粒度已经无法满足优化用户感知的需求。为此谷歌等公司提出了DNS扩展协议Edns-Client-Subnet(ECS),允许DNS递归服务器傳递用户的IP地址给授权服务器,让CDN可以实现更加精确的调度。5G时代为了满足大带宽、低时延、广覆盖的要求,必须充分利用边缘云的资源提供就近服务,ECS功能成为当前实现“就近服务”为数不多的可选项。

2  ECS技术原理

传统的DNS协议中,UDP传输报文大小限制为512 Byte,超出限制的报文使用TCP传输,随着IPv6技术推广和DNSSEC技术部署,DNS数据包大于512字节变得普遍。另外报文头部中FLAGS字段已基本用完,没有多余的空间添加更多的消息。所以在RFC2671中提出了一种EDNS0 扩展机制,引入了一种新的伪资源记录OPT,使得DNS可以通过UDP承载超过512字节的报文,之所以叫作做伪资源记录是因为它不包含任何DNS数据。OPT被放在DNS通信双方DNS消息的Additional data区域中。该OPT字段禁止缓存,一个报文只允许有一个OPT,一个OPT里允许有多个Option。

目前遵循EDNS规范的协议有:ECS、DNSSEC等。2016年的RFC7871定义了ECS技术规范,当Additional records的Type为41时,则表示RDATA字段存放了代表用户IP的Edns-Client-Subnet字段。权威DNS在收到带有ECS的请求报文后,可根据原始用户地址信息实现精细资源调度。

3  ECS现网规模部署面临的挑战

标准ECS的技术原理并不复杂,但该技术仅仅考虑内容服务商方面问题,在实际操作过程中运营商仍然却会面临诸多技术问题。

3.1  与现有高速缓存+递归两层架构存在冲突

运营商LOCAL DNS一般会采用高速缓存+递归的两层系统架构,大部分热门域名会由高速缓存直接回应,冷僻域名以及TTL到期的域名才会送到递归服务器进行递归。启用ECS后,若按照ECS标准流程,所有ECS的域名请求都需要直接送至递归服务器,传统高速缓存无法实现极速应答。

3.2  递归和权威服务器开销巨大

递归服务器承担着向根、顶级域以及各级授权服务器进行递归解析的重任,假如来自不同用户地址段的同一个域名查询请求都需要进行递归查询,此时递归的资源消耗将会大幅度提升。与此同时,权威服务器接收到的查询请求也会成千上万倍的增加。

3.3  DNS安全防御难度增加

自从2009年暴风影音事件之后,针对DNS系统DDOS攻击一直就有增无减,一旦采用标准方案开启ECS功能,攻击者可以利用随机变化前缀的域名+随机IP的ECS请求向运营商DNS发起DDOS攻击,为了保障ECS功能,现有高速缓存的防护功能无法实现有效拦截,此时就会给递归服务器以及权威服务器造成严峻的考验。

3.4  DNS分区急剧膨胀

在早期ECS应用实践中,经常采用普通分区的方式解决递归无法生效的问题,每一个分区仅指定一个源地址,替代真实的源地址。但5G时代边缘云可能会下沉到区县甚至乡镇,数量可能到达数千个节点,如果继续采用传统ECS技术,DNS缓存系统中分区条目和缓存条目会急剧膨胀,极大降低DNS处理性能,完全无法满足实际的业务需求。

3.5  内容服务商精确识别地址信息难

开启ECS功能的权威服务器需要根据源IP给出精确的资源调度,前期条件是CDN掌握精确的地址库信息。但运营商的地址资源经常会在同一个地市内进行调整,移动网地址池还可能是在全省范围内调配。对于内容服务商而言,很难获得运营商的精确地址信息,这个就给智能调度带来了困难。

4  江苏电信的现网部署实践

4.1  智能分区技术

为确保高速缓存能正常发挥作用,运营商需要根据业务模型对用户进行片区划分,比如按市、县、区等,也可以根据业务需要增设更加精细的分区,比如为某个学校校区单台BRAS单设一个分区。再将高速缓存分公共缓存分区和若干ECS分区,每一个ECS分区代表一个区域的用户。运营商和内容服务商需要加强合作,优化后的ECS不再携带用户原始IP,每一个ECS分区进行递归时使用同一个约定好的IP为源发起ECS递归,这样可以确保同一个ECS分区可以缓存同一个递归解析结果。

以图1为例,DNS前端缓存收到用戶请求后,依据DNS网管里的域名标记判断其是否为ECS域名,如果是非ECS域名,进入公共缓存空间,如果是ECS域名,则根据用户源IP对应的映射表,进入相应ECS缓存分区;当ECS域名请求没有命中相应ECS分区的缓存时,ECS分区会以约定的映射地址为源发起ECS递归,ECS递归服务器请求报文构造ECS报文并发起ECS递归。

4.2  运用域名字典优化缓存

一个CDN的DNS响应消息通常会包括CNAME、NS、A、AAAA、RR等信息,如果全部解码存储,同一个域名需要存储多份记录,在存在成百上千ECS分区的情况下势必会严重浪费内存空间。所以需要引入新域名字典技术化解因EDNS分区急剧膨胀给高速缓存带来的压力。

域名字典使用哈希表方式存储,每个域名字典不仅包括一个公共属性记录和索引,同时还存储若干分区属性,表示该域名字典被多少ECS分区所引用,具体实现方法如图2所示。

4.3  基于CNAME的调度机制

运营商与内容服务商合作时经常会遇到内容方权威服务器不支持ECS的情况,此时可以通过基于ECS特性的CNAME调度机制来帮助内容方实现内容调度。比如某内容网站需要利用运营商的CDN为网站部分内容进行加速,其域名为edns.abcd.com,该客户权威服务器只需添加一个CNAME记录,将该域名CNAME到edns.abcd.com.cdn.10000.cn,后续用户查询该域名时会自动跳转到CNAME后的域名,电信LOCAL DNS识别该域名为ECS域名,就会启动ECS解析流程。

4.4  移动网络区县化改造

在运营商移动网络中,用户地址往往会由移动核心网统一分配,这个就给ECS精确调度带来了实际困难。运营商如果需要在管道运营过程中掌握话语权,就需要考虑和内容服务商加强合作,进行移动网实现区县化改造,根据不同基站范围划分不同的地址段,并将地址信息反馈给CDN,CDN再利用ECS技术根据地址段实现精确的内容运营,双方实现共赢。

4.5  安全机制

为防止不法分子利用ECS对运营商DNS发起功能,高速缓存仅仅对网管指定ECS域名实施ECS调度,非网管指定域名一律按普通域名进行解析。

江苏电信DNS还设置了业务兜底策略,若EDNS权威因遭受攻击和故障响应连续超时,ECS分区自动切换至正常的递归流程,若某个ECS分区异常且连续超时,公共缓存将主动接管用户请求,优先确保业务安全。

4.6  ECS与HTTP302的对比测试情况

使用本地CDN进行测试,在ECS与DNS+HTTP302两种场景下分别做了10次URL下载测试,从表1可以看出,ECS场景下调度平均时延减少了19 ms,HTTP响应首包平均时延减少20 ms。

5  结  论

本文分析了标准ECS协议在运营商现网部署存在的问题,提出了基于智能分区、域名字典、CNAME调度等技术的ECS优化方案,并在运营商网络中进行了业务实践和探索。该方案除了可以提升运营商宽带及移动用户上网感知外,还可以让运营商利用自身边缘云以及DNS资源和内容服务商展开合作,强化运营商在管道运营中的话语权,对运营商而言具有普遍适用性和较强的推广价值。

参考文献:

[1] 黄润怀,海锦霞,梁洁.基于EDNS优化的CDN精准调度方案探讨 [J].广东通信技术,2020,40(9):54-56.

[2] 章思宇,封寒松,黄保青.上海交通大学高校基于ECS优化DNS权威解析 [J].中国教育网络,2019(4):52-53.

[3] 宗序梅,刘怀彦,巫俊峰,等.运营商部署ECS关键技术研究与实践 [J].江苏通信,2018,34(1):82-86.

[4] 张启峰.多出口校园网域名解析探讨 [J].通信技术,2010,43(8):7-8+11.

[5] 邢牧怡.DNS安全系统设计与研究[J].电脑编程技巧与维护,2009(6):98-99.

作者简介:向九松(1976—),男,汉族,江苏扬州人,高级工程师,本科,研究方向:IP承载网、DNS;樊士迪(1996—),女,汉族,江苏连云港人,硕士研究生,研究方向:IP承载网、DNS。