计算机网络技术论文——域名系统的性能优化主编1:郭鹏(学号1107300311)副编2:刘江昆(学号1107300304)副编3:韦志敏(学号1107300312)专业年级:网络工程2011级1班开课学期:第5学期指导教师:梁正友1|、序1.1摘要DNS是Internet及Internet上的一项基础服务,它为网络应用程序提供域名解析及服务(资源)定位服务。在理解DNS工作原理基础上,优化DNS,可以缩短DNS查询响应时间,减少不必要的网络流量,同时对于各种分布式服务的部署都有一定的借鉴意义。2、主要内容一、域名空间在tcp/ip网络中,IP地址唯一合法地标识每一台主机,然而IP地址是纯数字的,不便于人们记忆,因此IEFT(Internet工程任务组)在RFC1034,RFC1035中定义了DNS服务,该服务允许Internet用户通过域名(易于记忆的字符串)访问主机。在Internet上所有主机域名的集合构成了域名空间。如图所示:域根对域名空间拥有控制权,在它之下建立了九个通用顶级域和数百个国家顶级域。根域常用“.”表示,然而可以省略。.example.com域是.com域的子域;同样.example.com是.sam1.example.com域的父域。是完整的域名,可以用来表明该主机提供何种服务、所属部门、公司、所属行业等。原则上对于的层数没有限制,不过每个标识符(像example、sam1、com)长度不超过63个字节,完整的DNS名称不超过255个字节。要在父域下建立子域必须得到父域的授权。二、DNS体系结构及分布式部署(一)DNS采用客户机/服务器体系结构Resolver:位于用户计算机上的域名解析器,又称DNS客户机;NameServer:名称服务器,为DNS客户机提供域名解析服务。MasterFiles:名称服务器上的文本文件,称为区域数据库,它以资源记录(RR)的形式存储了与域名相关的数据。重要的RR有:1、SOARR:授权的开始资源记录。该RR指明了区域的源名称,如.example.com,并指明了作为区域信息主要来源的服务器的名称。还指明了区域的其它一些属性,比如资源记录缓存时间。它是创建区域时第一个记录。也是区域的最根本的一条记录。2、NSRR:名称服务器资源记录。它定义了能够对该区域中的域名查询做出权威回答的名称服务器。3、ARR:地址资源记录,定义了域名对应的IP地址。4、其它一些资源记录,如:CNAMERR、MXRR、PTRRR等。注意这些记录及ARR是应用型记录,即该记录中的数据直接用于回答DNS客户机查询。而SOARR、NSRR定义了区域的根本属性。(二)域名空间的分布式部署名称服务器以其所存储的区域数据库为DNS客户机提供域名解析服务。很显然,Internet上整个域名空间的余名数据库不可能以整体的形式存放在一台名称服务器上,而是分布地存放在隶属于不同组织、部门的名称服务器上。这样为名称空间的维护、更新和提供域名解析服务提供了现实的途径。例如:.com域和.example.com域是父子关系,但负责创建和维护.com域的名称服务器(简称.com名称服务器),只负责.sohu、.example、.sina这些子域名称的注册服务,而不过问在.example域下创建任何子域(例如(.sam1、.sam2、.sam3)和主机名名()的活动,即、.sam这些主机和子域的资源记录并不保存在.com名称服务器,而是保存在.example名称服务器上,甚而.sam子域的资源记录也独立地保存在.sam名称服务器上。父域和子域的资源记录独立地保存在各自的服务器上,那么父子关系又如何体现呢?.example域要注册到.com域下,必须得到.com域的授权。授权以粘合记录的形式保存在.com域名服务器上,粘合记录格式如下:.example.comNSdns.example.com;(注:这是.example名称服务器的域名)dns.example.comA192.168.0.10;(注:.example名称服务器IP地址)可以想象,.com域也需得到域根的授权,这也是以粘合记录的形式保存在域根服务器上的。正是由于粘合记录的存在,从原则上说,只要知道域根服务器的IP地址,从查询域根服务器开始,可以查询到任何域名的权威名称服务器,从而得到该域名的权威回答。这就是域名空间的分布式部署。三、优化DNS通过优化DNS部署,可以缩短DNS查询响应时间,减少不必要的网络流量。可以从以下几方面优化DNS部署:(一)使用辅助区域Internet域名空间是一个分层次的逻辑结构,父域和子域之间是包含与被包含关系,然而,父域和子域下的资源记录,在物理上可以有两种形式存在:1、共存于一台名称服务器上,这样所有记录位于一区域中;2、父域和子域下的资源记录分别存在于两台或以上的名称服务器上,每一台名称服务器上的资源记录物理上是一个独立部分,各形成一个区域。所谓使用辅助区域,就是在额外设立的DNS服务器上建立区域的副本。这样,在一个大型网络中,将若干台名称服务器分布在不同的地区网络中,使得用户可以就地访问,从而加快了查询速度,减少了网间流量,提高了可用性和容错。要建立辅助区域,必须实施区域复制,有两种方式:a、完全区域复制主DNS服务器SOA资源记录中知名的服务器将区域数据的完整副本发送到辅助DNS服务器。在初次建立辅助区域时必须使用该方式。b、增量区域复制主DNS服务器仅将区域数据的变动部分发送到辅助DNS服务器,这件受啊了网间数据流量,对网络性能影响最小。区域复制的时机可这样确定:(1)主DNS服务器在区域数据被修改后像辅助DNS发出更改通知;或(2)辅助DNS定期查询主DNS是否有数据被修改。(二)使用缓存专用服务器根据域名归属地不同.DNS服务分为本地域服务与Cache服务,这两种服务的工作原理差异较大,由同一台DNS服务器混合提供服务时难以精确定制服务策略和提高服务质量。在DNS优化中,将本地域服务与Cache服务相分离,并分别为两套DNS系统设计准确的服务和安全策略。缓存专用服务器是仅执行查询、缓存应答和返回结果的DNS服务器。它并不创建和维护任何域,它所包含的资源记录限于解析查询时已缓存的内容。在慢速的广域链路中,在靠近用户侧,安装一台缓存专用DNS服务器可能会很理想。这是因为一旦建立了缓存,广域链路通信量便会减少。另外,缓存专用服务器不执行区域传输,这种传输可能导致广域网环境中的网络通信量增大。要注意当该服务器吃次启动时,它并没有缓存任何信息。(三)使用转发器转发器也是标准的DNS服务器,它为地区网络中一组DNS服务器接收到的,但不能根据器本地区域应答的任何查询提供递归的搜索。地区网络在此图中,DNS4是转发器,DNS1,DNS2,DNS3配置为启用转发器支持。配置使用转发器的DNS服务器DNS1,2,3,本质上作为器转发器的DNS客户机。加入地区网络至Internet的链接是慢速的,DNS1、DNS2、DNS3接受不同用户的请求(该请求是对同一名称的查询),南无都将该查询转发到了该转发器,而转发器只需进行一次远程查询,就可以应答三台DNS服务器的三次查询,从而减少了通过慢速链接的通信量。(四)负载均衡为了扩展DNS服务器能力,按原来方法需要增加四层交换机,如图1所示,通过四层交换机,将用户的DNS请求包分发到多台DNS上,实现负载分担。根据DNS工作特点,可以提出一种设想:利用路由设备负载均衡能力来实现DNS负载分担。以图为例,具体连接情况如图2所示。DNSl更改IP地址,仅做权威DNS服务器,只完成DNS的名字服务器功能,不提供递归查询功能。DNS2、DNS3和DNS4配成CacheonlyDNS,只为用户做递归查询,即实现DNS的解析器功能。将原DNSl的p地址当作虚拟地址配置到这3台DNS服务器上,并在路由设备上配置静态路由,将DNS虚IP地址分别指到3台DNS上。这样。当用户使用原DNSl口地址做域名解析时.会被路由设备均匀地分配到3台DNS上,而用户并不知道具体是哪一台DNS为他提供域名解析服务。该方案可行.将其他DNS逐台修改IP地址和配置,改造完后,被广大用户熟知的DNSIP地址均有多台服务器支撑。系统稳定性和处理能力将大大提高,同时可以随时根据用户的发展情况.方便地对系统进行扩容,提高了升级和扩展能力。图1原来负载均衡方案图2DNS优化(五)分布部署本次DNS优化采纳国际上先进的IPv4aIlvcast新概念,在网络中分布部署DNS服务器,使用户熟知的DNSIP地址不仅限于一台或一组DNS服务器,而是在网络中分布署容量几乎无穷的DNS服务器。根据用户解析量分布情况,方便地将DNS服务器增加到任何一台路由器上,实现DNS服务的本地化。(六)启用PC服务器DNS负载均衡的实现.降低了对DNS服务器的硬件要求,改变了必须使用价格昂贵的服务器来做DNS服务器的现状,可以使用价格低廉且性能较好的PC机来做DNS服务器。(七)异地备份、容灾由于DNS服务器是在网络中分布部署的。利用IPv4anycast概念,可以将DNSIP地址部署到任一组DNS服务器上,可以方便地实现DNS服务的异地备份和容灾。四、近况随着InterNet在全球的发展,特别是国内互联网的快速发展和普及、用户规模、在线时长以及应用复杂性不断发展和演化,互联网已经成为广大网民生活的一部分,域名解析作为互联网基础的后台支撑服务扮演了更加复杂和更加重要的角色。用户的发展、应用服务的复杂多样使得运营商需要全面考虑其域名系统的整体安全,而现在运营商域名系统所面临的主要安全问题有:网络结构设计、系统平台复杂、大规模的DOS&DDOS攻击、缓存中毒、域名解析软件维护、类似暴风的客户端安全缺陷、客户域名设置缺陷引发的故障投诉等。下面就从拓扑安全、系统平台安全、解析软件安全、安全维护手段几个方面做个介绍。一)、合理安全的网络拓扑结构是保证域名系统整体安全和高可用性的基础运营商DNS系统经历了单机、双机、采用四层交换技术的负载均衡集群,到现在基于anycast负载均衡集群与分布式混合的架构,是从实际应用出发不断探索发展的结果。在互联网初步发展时,基于单、双机DNS系统见证了国内互联网发展的起步;随着网络用户的发展,特别是ADSL等高速接入技术和各种基于网络的业务应用快速发展,域名解析服务作为用户上网应用的第一步,经受了越来越大的服务压力,采用四层交换技术构架集群的DNS系统成为各大运营商最初解决方案;最近几年互联网以更快地速度发展,各类应用如雨后春笋般涌现,网民规模和在线应用的复杂性,以及域名服务本身的安全构架和服务特点,使得许多地方的四层交换技术出现了性能瓶颈;尤其是在遭到病毒冲击和恶意攻击时,首先导致四层交换机堵塞,正常用户的请求无法通过四层交换机建立新的session到达后面的DNS服务器,以致DNS服务中断产生域名服务故障;如何应对大规模用户产生的高达10万QPS,甚至更高的并发查询量;如何应对因为病毒爆发、客户端插件缺陷、恶意的DOS&DDOS攻击等并发超过百万级的攻击数据量;如何构建开放、高效的DNS系统,可按需灵活扩展支持百万,甚至千万级域名系统;下面我们将讨论采用路由交换技术实现DNS系统部署的方案,Anycast任播应用在DNS服务中,将用户使用的DNSIP地址通过路由宣告的方式,从所有的DNS服务器向其直连的三层交换机或路由器广播;如果该DNSIP在运营商内部多个节点广播,又可实现用户的就近访问,提高了用户的上网体验和运营商的服务质量;在节点内某台服务器故障时,可以通过定制的健康检查机制自动停止广播路由,以实现负载由内部的其它服务器接管;在某个节点故障时,即可通过骨干路由策略自动将该节点的用户请求转到临近节点或核心节点实现冗余。采用该技术构建的DNS系统可以通过灵活扩展节点和服务器的方式,非常方便的将DNS系统负载能力提高到支持千万级用户规模。下面是经典DN