运营商部署ECS关键技术研究与实践

作者:宗序梅;刘怀彦;巫俊峰;黄钟;王济晟;施益峰;唐凯; 刊名:江苏通信 上传者:严博骞

【摘要】运营商通常以省为单位部署DNS,代理用户请求向权威DNS发起查询并获取结果,这个原因导致了DNS调度精度只能局限到省,不能精细到市。RFC 7871提出的EDNS Client Subnet(简称ECS)携带用户地址技术提供了解决契机,本文介绍了ECS技术原理,探讨了ECS部署难点,总结出适合于运营商在现网实际部署的实施模型。

全文阅读

0引言DNS是互联网世界的资源导航系统,ICP(Internet ContentProvider、内容提供商)内容资源、CDN(Content DeliveryNetwork,内容分发网络)网络加速都依赖于DNS的正确调度才能将用户流量引导到最合适的资源节点。运营商通常以省为单位部署DNS,代理用户请求向权威DNS发起查询并获取结果,这个原因导致了现网DNS的调度精度只能局限到省。随着CDN网络加速市场的激烈竞争和高密度视频业务的蓬勃发展,以省为单位的DNS调度颗粒度已难以适应互联网业务精细化运营管理要求。如何能让DNS具有一次性调度到地市精度的能力,让互联网内容更加贴近用户,是对运营商内容资源调度能力的巨大挑战。1 DNS先天不足难于精细调度域名解析系统从职能上看,可分为权威服务节点和递归服务节点。权威服务节点一般由ICP或CDN服务提供商负责维护,权威服务器拥有某个区的域名信息,并为该区提供域名解析的服务,通常面向的不是终端用户。递归服务节点则相反,它不针对某个区提供域名解析服务,而是直接面向终端用户,为终端用户提供递归的域名解析服务。一般由网络运营商、互联网服务提供商ISP架设,服务于自己的用户,有时被称为Local DNS(简称LDNS)。递归服务节点内部又分为缓存查询模块和递归解析模块,鉴于提高性能和安全考虑,LDNS的缓存服务器与递归服务器通常分开设置。当用户向LDNS发起域名查询请求时,首先由DNS缓存服务器接收用户的查询请求,如果存在缓存记录,则直接返回用户查询结果;如果不存在缓存记录,交由DNS递归服务器处理;DNS递归服务器向外界的根DNS发起迭代查询,依次循环直到从权威服务器获取解析结果并返回给DNS缓存服务器。权威服务器是根据收到的DNS查询请求中的来源地址来识别用户网络拓扑位置,实际上权威服务器收到的DNS查询请求中的来源地址并不是原始用户的地址,而是用户使用的LDNS的递归服务器地址。由于运营商LDNS通常以省或区域为单位集中部署,导致DNS调度精度最多只能区分到省,不能进一步精确到市。互联网业务的复杂化和多样化不会因DNS的先天不足而停滞,为了满足精细调度的需求,现网只能通过HTTP302重定向的二次调度来补充实现,但HTTP重定向存在种种问题:增加了调度次数和用户时延;HTTP重定向服务器自身容易成为性能瓶颈;最严重的缺陷是只支持基于HTTP的协议,而无法调度其它应用层协议。2 ECS助力DNS实现精细调度2.1 ECS的技术原理为了完善DNS功能,RFC2671中提出了一种扩展DNS机制Extension Mechanisms for DNS(EDNS0),它扩展了原有DNS协议的数据包长度和字段内容,EDNS0协议支持在RR中使用TYPE=41的RDDATA存放网络信息。在此基础上,谷歌等公司提出了DNS扩展协议EDNSClient Subnet(简称ECS),可在DNS报文的扩展报头中增加一种新的选项,用来携带发起DNS请求的原始用户的地址,这个DNS选项内容可以被中间递归服务器接力传递到权威服 务器,权威服务器由此获得原始用户的地址,进而根据用户地址准确识别该用户的网络拓扑位置。图1展示了EDNS ClientSubnet的报文格式。图1 EDNS Client Subnet报文格式图2016年5月公布的RFC7871描述了ECS的技术原理,定义了如下主要术语客户端(Client):末端解析器、转发解析器或者递归解析器之一。递归解析器或者转发解析器的客户端。末端解析器(Stub Resolver):在客户端

参考文献

引证文献

问答

我要提问