邓成俊,刘 颖
(1.重庆电力高等专科学校,重庆 400053;2. 重庆市轨道交通(集团)有限公司,重庆 400010)
域名解析系统作为互联网中一个重要的核心基础设施,其主要作用是基于域名自动查询对应IP地址,继而封装数据包并实现查找任务[1]。绝大部分基于网络的应用服务皆需要该系统的支持才可以实现正常的运转,比如常见的E-mail服务、办事大厅服务、教务系统及其他的Web应用服务。传统模式之下的域名解析系统主要是靠分层与迭代查询,一层一层地将域名解析工作完成,并借助各种服务器实现将域名映射到IP地址的功能。当用户对某域名提出解析请求之时,首先可通过本地的域名服务器对自身缓存中的用户所需映射项目进行查询,若查询到有符合用户的项目就直接给予用户反馈,若未查询到符合项目的映射信息,则用本地的域名服务器来代替用户接着向根服务器发送查询请求,如此反复循环,直到获得用户所需的IP为止,同时可向用户反馈该信息[2]。在以往网络规模比较小的时候,传统的域名解析系统运作方式充分发挥了作用,基本满足用户查询的需求,但在网络环境复杂多变的今天,该模式的许多问题逐渐被暴露出来,如容错性差、管理复杂以及DNS查询与更新延迟等问题。这些问题导致传统的域名解析系统不能满足现在用户查询的需求。因此,为有效提升现有系统在运行上的效率及可靠性,本文将基于云的存储特点、内容发布等特征,提出新的可满足当代需求的DNS系统,并借助增量部署的方式实现系统扩容,无缝对接现有系统。
因当前Web应用服务网页页面常常同时和多个业务系统进行嵌入式对接,所以当对一个Web应用网页服务进行访问解析时,就需要从多个域名系统中获得多份数据。DNS查询的延迟直接关系着访问Web应用服务网页的打开时间,因此DNS记录的缓存对于域名解析系统查询速度的提高有所帮助;但域名解析系统在解析未缓存域名时,需要通过递归的方式进行查询及访问各级的服务器。除此之外,域名解析的请求会因为服务器的不可达而造成部分数据分组丢失;参考各方面收集的资料来看,传统DNS域名解析查询的过程未响应的概率达到5%左右。
传统的域名解析系统常采用TTL机制来更新DNS记录,DNS更新的延迟主要是由DNS记录之中的TTL字段导致的。TTL值的大小会影响DNS记录缓存时间,但设置一个适当的TTL值并非易事,TTL值过小不利于DNS查询时间缩短;TTL值过大则对于DNS记录的更新与服务搬迁产生不利。
解析一个域名采用的域名服务器可能仅有一个,若有网络攻击或者故障发生,其就会受到影响而不能正常地提供服务。虽然有些域名解析具有3个及以上服务器,但服务器多为相同自治域内域名,且多属于相同网段,这导致域名解析的服务在DoS攻击与网络故障上应变力较低。
节点的分布广泛属于云技术主要特征之一,因此可有效利用这一特征,将云技术之中各节点的服务器结合在一起,并通过内容储存和发布机制逐步完成域名解析信息项目相关的操作,通过推送的方式可以快速整理以及输送DNS信息,继而有效提高域名解析系统工作的效率。
基于云技术架构域名解析系统的模型如图1所示,其不仅包含传统域名解析服务器,还包括云节点的服务器,通过两个公网的IP地址,使得两个服务器之间实现无缝衔接,并具备良好兼容性。DNS的解析流程:DNS记录可通过云技术推送方式来发布,即借助云内容管理方面的服务器,把DNS相关信息发布至各云节点的服务器上,以此提高更新和同步域名系统信息项目的速度,使得服务的覆盖区域可以大大超过传统的该类系统。对于云节点服务器,其在域名解析过程之中所充当的是权威域名服务器的角色,可以和域名的所有者直接进行交互,继而可以有效保障域名信息的可靠性和准确性。经更新过的域名信息会第一时间向各节点的服务器发布,如此便使得域名的同步延时问题得到有效解决。
图1 基于云技术域名解析系统模型
对于DNS信息管理和更新方面,域名的所有者主要负责及时发布域名变化,之后的维护工作主要由云系统负责,可在客户端的软件上对DNS 记录进行管理。为了防止恶意攻击,就需要确保只有域名的所有者才能对相关信息进行修改,唯有经过域名的所有者认证之后,更新的相关信息记录才会及时同步至各节点的服务器上。如此,A类的DNS记录将会维持在云节点的服务器上[3],且不需要对NS类的DNS记录进行相应配置,这样一来,就可以大大降低由域名解析中出现的错误配置带来的不良影响。在DNS记录发布方面,主要通过云的发布机制以推送方式将DNS记录发布出去,经过认证与授权之后,云系统上的内容管理器就会将具有权威性的DNS记录发布至各节点的服务器上。由于权威DNS记录不会受到TTL机制限制,就可不采用TTL字段。对于DNS记录更新方面,通常来说,域名中的DNS记录是相对稳定的,多保持数月或更长的时间不变。只有在内容的服务器进行相关资源重新分配或者服务搬迁之时,DNS记录才随之进行更新,而这种事件发生的频率比较低,域名信息一般会稳定存在数月。就本方案而言,在进行更新的操作之时,内容管理方面的服务器就会发布新的DNS记录,各节点的服务器接收到新信息之后,就会采取该信息覆盖原始冗余信息的措施。
基于云技术的域名解析系统服务部署须有域名的所有者参与支持与配合,其借助云内容发布的机制将DNS记录发送分布至各节点的服务器上,如此可提高域名解析系统运行的效率,但由于现有的域名解析系统太过庞大,直接将旧设备替换掉,就需要花费高额成本[4]。因此,从节约成本的角度来看,最好的方法就是将新系统与旧系统良好衔接起来。本文采取的是增量部署服务模型(如图2所示),其在兼容DNS系统上具有良好表现,可达成增量部署。在部署的过程中,无论用户所归属的服务器是何种,也无论域名的所有者是如何对DNS信息进行发布的,都不会影响到模型系统中的运行。与此同时,因为域名的所有者可以直接对信息进行发布以及对于普通用户的修改权限加以限制,所以该系统在安全性能上面就可以得到有效保障。
图2 增量部署服务模型
对于现行的DNS系统所存在的问题,利用本设计的基于云技术架构的域名解析系统后得到了一定的解决。查询延迟方面的问题得到有效改善。本文所提出的模型通过节点的服务器直接对域名解析的请求予以响应,不需要再对其他的服务器进行访问就可以直接响应。而更新延迟的问题主要是由TTL机制造成的,本文设计是将权威DNS记录直接发布至节点的服务器,如此便可不被TTL机制限制,这一问题也就得到了解决。DoS攻击与网络故障上的应变能力也有所提高。当某节点的服务器遭受DoS攻击或网络故障时,本文所设计的模型,就会借助IPAnycast路由将域名解析的请求定向到另外正常运行节点的服务器上,域名解析由此可顺利完成。管理上的复杂性也降低了,域名的所有者可直接将服务器外包给云维护。DNS 滥用方面也得到了限制。通过返回权威DNS记录[5],可以有效避免DNS记录被伪造、缓存被污染等问题,就能有效防止恶意攻击。此外,本文设计的模型中,DNS的更新记录都会将由云内容管理方面的服务器直接发布至各节点的服务器。
综上所述,本文针对域名解析系统目前所具有的问题,提出了基于云技术的域名解析系统,将云节点的服务器看作传统域名解析系统之中的权威域名服务器,且在该基础上对系统模型进行设计。在此系统模型之下,传统的DNS递归查询方式得以改变,直接通过节点服务器就可以对用户域名解析的请求给予相应回应,如此便可大大提高DNS查询的效率。