标题 | 运营商互联网DNS的改造 |
范文 | 戚帆 田普 王铮 摘要:针对运营商面临CDN业务要求精细化调度,以及被根域名服务器掣肘时延过大和停止服务的风险,结合运营商域名解析系统(DNS)现状提出解决方案。介绍并分析了RFC7871和RFC7706標准文件,提供了一种根据源IP地址精准调度的方法,以及一种基于本地根区服务、减少根区查询时间的域名解析的服务方式。分析了省级运营商建设方案,运用EDNS解决精确调度,部署根区副本来避免根域名解析被制约的问题,实现提高DNS解析效率、降低时延和优化DNS解析服务的目标。 关键词:域名解析系统;EDNS;精准调度;根区副本 中图分类号:TP393文献标志码:A文章编号:1008-1739(2020)17-62-4
0引言 DNS是一种用于TCP/IP应用程序的分布式数据库,是为了解决主机名称和IP地址对应关系而建立的互联网名称服务系统,作用是实现域名和IP地址相互映射。DNS提供了允许服务器和客户程序相互通信的协议。DNS系统包含安全防护、缓存、递归、网管、授权及数据分析等模块。 1运营商DNS现状及问题 1.1运营商DNS现状 运营商DNS由骨干节点和省级节点组成,权威服务器由总部和省级两级架构组成,负责本子域的权威域名解析,递归服务器是扁平化架构,为用户提供域名解析服务。从网络接入方式划分,运营商一般将DNS分为固网DNS和手机DNS,分别承载家客、集客、WLAN和手机用户上网的域名解析应用,每省至少2套节点,通过异地备份的方式实现互备,手机和固网独立建设,移动用户和固定接入用户互不影响,优化了DNS部署结构,提升了DNS的整体业务提供能力和系统冗余能力,是运营商区别于互联网公司,提供差异化服务的优势。 运营商省级DNS采用Anycast技术,实现冗余备份和负载分担,网络间一个节点被攻击时,其他节点不会受到影响。由于Anycast的负载均衡效应避免了单台目的主机承受所有攻击流量,在一定程度上为目的主机提高了安全性[1]。节点越多冗余备份能力越强,可有效防止DDoS攻击,有利于部署IPv6,节点升级对用户也没有影响。 1.2运营商DNS存在的问题 国内运营商一般是部署集中式DNS,随着国内CDN业务下沉到地市和县区,需要DNS精确调度不同用户域名请求,目前DNS覆盖的业务范围大于CDN调度单元的业务范围。LocalDNS去CDN授权查询的时候带着自身IP,其中调度中心对用户位置的判断依据是从DNS请求中获取LocalDNS后端递归地址,而LocalDNS以省为单位部署,所以DNS调度精度只能到省级别,无法实现地市级别的精准调度。 DNS互联网域名解析服务在很多情况下特指递归解析服务。DNS根服务器响应用户对根区文件的查询请求,是整个DNS解析请求的起点。全球共有13个根节点,全部部署在国外,国内通信运营商并不掌握根区的数据内容和运行控制能力。国内仅有9个根域名镜像节点,但并未广泛发布路由,大量解析服务需要访问境外,根域名服务器解析时延平均达到200 ms。 对于缓存服务器中不存在或已失效的域名,递归服务器需要首先向根域名服务器发起查询请求,获取下一级子域的权威服务器地址。如果由于网络攻击、断网等原因造成根域名服务器无法访问,待域名TTL到期(一般为10 min~1 h)缓存失效后,所有域名解析均无法获得结果,用户无法访问任何网站。国内众多的递归服务器对于根节点的查询有较大的时延和劫持风险。 2 EDNS与本地根区服务原理 2.1精准调度EDNS原理 RFC7871《Client Subnet in DNS Queries》描述一种EDNS0的扩展机制[2],用于在EDNS0的扩展option内容中携带如下信息:①在DNS请求报文扩展内容中携带发起请求的客户端原始网络信息;②在DNS应答报文扩展内容中携带生效的网络地址段信息,由SCOPE NETMASK指定掩码长度[3]。 EDNS所使用的edns-client-subnet特性对DNS协议进行了扩展,将递归用户的IP地址传递给权威DNS,权威DNS根据用户的IP地址而不是递归DNS的IP地址返回相应的业务资源服务器地址,使终端用户更接近被访资源,实现服务器的精准调度。 CDN应用EDNS0特性,可使CDN的调度中心GSLB通过DNS请求获取用户的真实IP地址,并基于IP地址和调度策略,将用户调度至就近的服务节点,实现精准调度。LocalDNS需支持EDNS0的edns-client-subnet特性,可识别终端用户IP地址,并在递归DNS请求消息中携带终端用户的IP地址,如图1所示。 由于全局调度子系统获取的是用户的精确IP地址,所以可直接基于用户的精确IP地址将请求调度至最近的地市级边缘节点,而无需区域调度系统的二次调度,减少调度环节。
2.2本地根区服务原理 DNS递归解析服务器到最近的DNS根服务器的往返时间比所期待的响应时间长,为防止第三方窥探发送到DNS根服务器的请求,特别是减少查询过程中耗时最长的查询不存在或错误的TLD记录的时间,IETF在2015年制定的RFC7706-《Decreasing Access Time to Root Servers by Running One on Loopback》[4]中,为递归服务提供了一种基于本地根区服务、减少根区查询时间的域名解析配置和服务方式。这样可以大大减少递归服务器往返时间,并通过在环回地址(如127.0.0.1)上运行完整根区域的副本来防止观察请求。 递归服务器上的解析软件配置根区文件下载,通过在运行递归服务器上的回环地址(如IPv4的127.0.0.1)建立DNS根查询服务,根区文件可通过区域文件传输协议AXFR在ICANN提供的服务器地址xrf.lax.dns.icann.org和xfr.cjr.dns. icann.org以及其他几个提供根区文件下载的顶级节点(b,c,f,g,k)来获取,并进行本地根区文件的更新。但都不保证这些服务永远开放,因此,建立根区节点是必要的。 使用RFC7706的方式,当递归解析服务器收到DNS解析请求时,可以省略对实际根区的查询请求,而用本地保存的根区文件查询替代原有的对实际根区的请求过程,从而节省查询时间和减轻根区查询压力。 国家会建立顶级根区节点,运营商需配合建设互联网DNS本地根区副本系统,运营商根区副本系统和国家顶级根区节点对接,运营商省级DNS系统接收相关系统指令、反馈指令执行及递归解析数据并支持强制解析,以增强运营商互联网基础设施服务能力,尤其是递归服务器对于根区的访问和查询效率,DNS根区副本网络结构如图2所示。通过TSIG加密传输方式从国家顶级节点获取根区数据,做到运营商根区数据内容自主可控。
3 EDNS与根区副本改造实施 3.1 EDNS改造 对某省级DNS进行改造,需对缓存和递归服务器进行功能升级,支持EDNS0的edns-client-subnet特性,能够将请求的终端IP地址带给支持EDNS0的CDN调度中心。 采用普通域名解析和EDNS并存。缓存:普通域名单分区缓存、EDNS域名多分区缓存,对终端用户透明。递归:普通域名正常递归或转发,EDNS域名带ECS信息递归或转发。管理:对所有域名递归及转发策略统一调度[5]。 运营商公网IP地址匮乏,通常是家庭宽带用户分配私网IP,并允许在本省范围内公私网直接互访,按ECS规范根据递归IP调度只能到省,需将私网分区映射为合法公网地址后,可让权威DNS调度保持地市精度。 根據业务模型规划调度单元将用户归类,为每个调度单元分配唯一映射地址,优化后的ECS不再携带用户原始IP,改为携带映射地址,此处映射可理解为多对一NAT。该省级运营商CDN在地市都有部署,提供热点资源,因此可以将用户地址按地址段分地市进行分区归类。建议规划EDNS调度单元为地市级别,映射地址使用不连续的地址段,以C类地址作为间隔,EDNS改造分为以下2个部分: (1)缓存服务器升级 固网DNS和手机DNS各选2台缓存服务器进行高性能缓存升级,开启EDNS解析缓存功能,根据系统定义的EDNS域名列表,对列表中的域名按照不同地市对域名结果进行缓存,对于缓存中没有的EDNS域名,会定向发送到支持EDNS功能的递归服务器,由递归服务器发起EDNS请求。因为地址映射一个地市全部的缓存解析都在同一个分区内,该分区只向权威服务器发送一次载源递归请求,虽然普通分区和EDNS缓存分区并存,但并不会因此降低缓存性能。同时提高域名解析效率、减少应答时延、减少EDNS递归和EDNS权威的资源消耗。 (2)递归服务器升级 固网DNS和手机DNS各选2台递归服务器进行EDNS功能升级,部署EDNS解析软件,接收缓存转发过来的EDNS域名的解析请求,并根据不同的源地址去授权递归出不同的解析结果,同时根据不同的地址段保存不同的递归结果。 由前端缓存根据网管标识的EDNS域名列表实施分流,EDNS域名转发到专用EDNS递归服务器,普通域名转发标准递归服务器:①普通域名递归流程没有任何变化,最大程度实现兼容;②EDNS域名使用EDNS递归服务器,优化部署。 DNS前端缓存收到用户请求后,判断其是否为EDNS域名。①如果非EDNS域名,进入公共缓存空间,依据DNS网管策略选择普通递归或普通转发;②如果是EDNS域名,则根据用户源IP对应的映射表,进入相应地市EDNS缓存分区;将用户网络信息(即映射公网IP)添加进扩展字段构造出新的EDNS请求转发给EDNS递归服务器;EDNS递归服务器根据ECS里的映射公网IP,进入相应递归分区后执行DNS网管策略,选择EDNS递归或EDNS转发。改造后的EDNS解析流程如图3所示。
经过EDNS改造的DNS系统可以有效减少缓存条目,减少递归解析的开销,并且实现了根据用户IP地址(私网地址)精确解析到地市,满足了互联网业务要求。 3.2根区副本改造 (1)部署根区副本服务器 运营商以递归解析服务节点为单位建立根区副本,每个递归解析服务节点至少应配置2台根区副本服务器作为主、备部署。总部建立国家根区顶级节点备份节点,同时作为运营商内部的顶级节点,在国际根节点和国家顶级根节点均异常时,向各省提供根副本解析服务,利用根区副本服务器解析流程如图4所示。
省级运营商部署独立的根区副本服务器,支持RFC7706的解析软件,根区副本通过顶级节点获取、更新和校验根区文件,采用标准AXFR[6]方式进行传达,传送过程用TSIG方式进行加密。 根区副本服务器与管理平台连接,接收监管指令并反馈处置结果,实现完全指向顶级节点的根区副本服务,以及同时指向顶级节点和ICANN根节点2种模式,或者根据指令关闭到国际根节点的访问。递归服务器运用使用根区副本方式或者不使用根区副本方式进行解析服务。 (2)现网递归服务器改造 改造递归服务器上的解析软件,支持RFC7706协议进行递归解析;递归服务器与域名解析管理平台通过数据接口通信,可以接收域名解析管理平台下发指令并反馈处置结果。实现指令接收反馈、域名处置、根区查询指向切换及域名递归解析信息查询等功能。 (3)现网缓存服务器改造 改造缓存服务器上的解析软件,支持RFC7706协议。缓存服务器与域名解析管理平台通过数据接口通信,可以接收域名解析管理平台下发指令并反馈处置结果,实现指令接收反馈、域名黑名单、域名白名单、域名处置及域名监测等功能。 运营商通过在省级配置搭建根区副本服务器,提供根区副本供本网内的递归服务器查询使用。省网内根区副本服务器会在本省递归解析服务器上响应的更快,在省网内传输安全性也可以得到保障,国内镜像根查询解析可以达到10 ms左右。 4结束语 针对ICP和CDN業务无法精准调度,面临国际背景下根区域名解析时延大,及可能被管制甚至切断的风险。运营商完成EDNS功能改造,可实现私网IP更加准确的解析调度,提高DNS缓存和递归精准度;完成根区副本部署后,发生递归解析需要向根域名服务器的发出查询请求时,直接由省级根区副本服务器解析处理,提高DNS根域名查新速度,减少解析时延,同时可以避免根区服务器故障或是其他外力因素导致无法获取域名解析服务的问题。 参考文献 [1]张俊权.探讨运营商DNS系统面临威胁分析及防护措施[J].甘肃科技,2015,31(20):20-24. [2] PAN L,ZHANG X, HU A,et al.Mitigating Client Subnet Leakage in DNS Queries[C]//2018 16th Annual Conference on Privacy, Security and Trust (PST). IEEE Computer Society, 16th Annual Conference on Privacy, Security and Trust,August 28-30,Belfast,Northern Ireland,2018. [3]宗序梅,刘怀彦,巫俊峰,等.运营商部署ECS关键技术研究与实践[J].江苏通信,2018,34(1):82-86. [4]延志伟,耿光刚,李洪涛,等.DNS根服务体系的发展研究[J].网络与信息安全学报,2017,3(3):1-12. [5]巫俊锋,张峰铭,黄钟.优化用户重点域名缓存的DNS调度研究[J].电信技术,2017(10):20-23. [6] HOENES A,LEWIS E.DNS Zone Transfer Protocol (AXFR), IETF RFC5936[S].NeuStar, Inc.,2010. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。