dns的优化

更新时间:2024-07-06 19:56:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算机网络技术论文

—— 域名系统的性能优化

主编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域的父域。www.example.com及SMTP.sam2.example.com是完整的域

名,可以用来表明该主机提供何种服务、所属部门、公司、所属行业等。原则上对于的层数没有限制,不过每个标识符(像example、sam1、com)长度不超过63个字节,完整的DNS名称不超过255个字节。

要在父域下建立子域必须得到父域的授权。

二、DNS体系结构及分布式部署 (一)DNS采用客户机/服务器体系结构

Resolver:位于用户计算机上的域名解析器,又称DNS客户机; Name Server:名称服务器,为DNS客户机提供域名解析服务。

Master Files:名称服务器上的文本文件,称为区域数据库,它以资源记录(RR)的形式存储了与域名相关的数据。重要的RR有:

1、SOA RR:授权的开始资源记录。该RR指明了区域的源名称,如.example.com,并指明了作为区域信息主要来源的服务器的名称。还指明了区域的其它一些属性,比如资源记录缓存时间。它是创建区域时第一个记录。也是区域的最根本的一条记录。

2、NS RR:名称服务器资源记录。它定义了能够对该区域中的域名查询做出权威回答的名称服务器。

3、A RR:地址资源记录,定义了域名对应的IP地址。

4、其它一些资源记录,如:CNAME RR、MX RR、PTR RR等。注意这些记录及A RR是

应用型记录,即该记录中的数据直接用于回答DNS客户机查询。而SOA RR、NS RR定义了区域的根本属性。 (二)域名空间的分布式部署

名称服务器以其所存储的区域数据库为DNS客户机提供域名解析服务。很显然,Internet上整个域名空间的余名数据库不可能以整体的形式存放在一台名称服务器上,而是分布地存放在隶属于不同组织、部门的名称服务器上。这样为名称空间的维护、更新和提供域名解析服务提供了现实的途径。例如:.com域和.example.com域是父子关系,但负责创建和维护.com域的名称服务器(简称.com名称服务器),只负责.sohu、.example、.sina这些子域名称的注册服务,而不过问在.example 域下创建任何子域(例如(.sam1、.sam2、.sam3)和主机名(www)的活动,即www、.sam这些主机和子域的资源记录并不保存在.com名称服务器,而是保存在.example名称服务器上,甚而.sam子域的资源记录也独立地保存在.sam名称服务器上。父域和子域的资源记录独立地保存在各自的服务器上,那么父子关系又如何体现呢?.example域要注册到.com域下,必须得到.com域的授权。授权以粘合记录的形式保存在.com域名服务器上,粘合记录格式如下:

.example.com NS dns.example.com;(注:这是.example 名称服务器的域名) dns.example.com A 192.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配成Cache only DNS,只为用户做递归查询,即实现DNS的解析器功能。将原DNSl的p地址当作虚拟地址配置到这3台DNS服务器上,并在路由设备上配置静态路由,将DNS虚IP地址分别指到3台DNS上。这样。当用户使用原DNSl口地址做域名解析时.会被路由设备均匀地分配到3台DNS上,而用户并不知道具体是哪一台DNS为他提供域名解析服务。该方案可行.将其他DNS逐台修改IP地址和配置,改造完后,被广大用户熟知的DNS IP地址均有多台服务器支撑。系统稳定性和处理能力将大大提高,同时可以随时根据用户的发展情况.方便地对系统进行扩容,提高了升级和扩展能力。

图1 原来负载均衡方案

图2 DNS优化

(五) 分布部署

本次DNS优化采纳国际上先进的IPv4 aIlvcast新概念,在网络中分布部署DNS服务器,使用户熟知的DNS IP地址不仅限于一台或一组DNS服务器,而是在网络中分布署容量几乎无穷的DNS服务器。根据用户解析量分布情况,方便地将DNS服务器增加到任何一台路由器上,实现DNS服务的本地化。 (六)启用PC服务器

DNS负载均衡的实现.降低了对DNS服务器的硬件要求,改变了必须使用价格昂贵的服务器来做DNS服务器的现状,可以使用价格低廉且性能较好的PC机来做DNS服务器。 (七)异地备份、容灾

由于DNS服务器是在网络中分布部署的。利用IPv4 anycast概念,可以将DNS IP地址部

署到任一组DNS服务器上,可以方便地实现DNS服务的异地备份和容灾。 四、近况

随着InterNet在全球的发展,特别是国内互联网的快速发展和普及、用户规模、在线时长以及应用复杂性不断发展和演化,互联网已经成为广大网民生活的一部分,域名解析作为互联网基础的后台支撑服务扮演了更加复杂和更加重要的角色。 用户的发展、应用服务的复杂多样使得运营商需要全面考虑其域名系统的整体安全,而现在运营商域名系统所面临的主要安全问题有:网络结构设计、系统平台复杂、大规模的DOS&DDOS攻击、缓存中毒、域名解析软件维护、类似暴风的客户端安全缺陷、客户域名设置缺陷引发的故障投诉等。下面就从拓扑安全、系统平台安全、解析软件安全、安全维护手段几个方面做个介绍。 一)、合理安全的网络拓扑结构是保证域名系统整体安全和高可用性的基础

运营商DNS系统经历了单机、双机、采用四层交换技术的负载均衡集群,到现在基于anycast负载均衡集群与分布式混合的架构,是从实际应用出发不断探索发展的结果。 在互联网初步发展时,基于单、双机DNS系统见证了国内互联网发展的起步;随着网络用户的发展,特别是ADSL等高速接入技术和各种基于网络的业务应用快速发展,域名解析服务作为用户上网应用的第一步,经受了越来越大的服务压力,采用四层交换技术构架集群的DNS系统成为各大运营商最初解决方案; 最近几年互联网以更快地速度发展,各类应用如雨后春笋般涌现,网民规模和在线应用的复杂性,以及域名服务本身的安全构架和服务特点,使得许多地方的四层交换技术出现了性能瓶颈;尤其是在遭到病毒冲击和恶意攻击时,首先导致四层交换机堵塞,正常用户的请求无法通过四层交换机建立新的session到达后面的DNS服务器,以致DNS服务中断产生域名服务故障; 如何应对大规模用户产生的高达10万QPS,甚至更高的并发查询量;如何应对因为病毒爆发、客户端插件缺陷、恶意的DOS&DDOS攻击等并发超过百万级的攻击数据量;如何构建开放、高效的DNS系统,可按需灵活扩展支持百万,甚

至千万级域名系统; 下面我们将讨论采用路由交换技术实现DNS系统部署的方案,Anycast任播应用在DNS服务中,将用户使用的DNS IP地址通过路由宣告的方式,从所有的DNS服务器向其直连的三层交换机或路由器广播;如果该DNS IP在运营商内部多个节点广播,又可实现用户的就近访问,提高了用户的上网体验和运营商的服务质量;在节点内某台服务器故障时,可以通过定制的健康检查机制自动停止广播路由,以实现负载由内部的其它服务器接管;在某个节点故障时,即可通过骨干路由策略自动将该节点的用户请求转到临近节点或核心节点实现冗余。采用该技术构建的DNS系统可以通过灵活扩展节点和服务器的方式,非常方便的将DNS系统负载能力提高到支持千万级用户规模。 下面是经典DNS部署拓扑图: (一)以解决基本负载能力为目的

(二)以解决四层性能瓶颈,提高系统应对突发流量冲击和高可用性为目的

在采用anycast部署的集中架构时,在遭遇突发流量攻击时,可以避免四层交换机瓶颈,并将攻击流量根据来源在节点内部通过几台DNS的服务振荡实现攻击流量吸震,避免整个节点系统崩溃。

(三)以提高用户体验和应对大规模网络攻击为目的

采用anycast分布式部署时,部署DNS系统的节点内部用户实现就近访问,提高了用户体验和运营商的网络服务质量;在局部发生病毒爆发和攻击时,可以在节点内吸震方式避免攻击影响其他节点;在节点设备或服务故障时,可以自动路由到核心节点或临近节点实现服务;在遭遇大规模攻击时,可通过根据来源节点内部振荡和节点间振荡控制攻击流量在局限的节点内;如:F.ROOT在全球的部署,来自某个国家或地区的流量完全被隔离在该地区,而不会波及全球的根域名系统。提高了域名系统的稳定性、可用性和抗攻击性。

二)、安全、稳定、高性能的系统平台以及系统安全策略管理是域名服务稳定的保障 (一)操作系统

目前国内大部分运营商采用的域名解析软件为ISC维护的开源BIND软件,该软件支持广泛的Unix系统和Windows Server;长期的应用和维护过程中发现在Sun的Solaris系统可以更加稳定的支持域名解析服务;而AIX、HPUnix和Linux系统在支持大用户量访问时经常会出现内存溢出的等问题;在处理能力上Linux表现更强,但因存在进程不稳定的现象,在运营商DNS系统中应用并不广泛; 操作系统安全也是DNS服务安全的基础,一般需要考虑如下内容:定期升级系统Patch、关闭所有无关服务端口、限制登录、口令维护等,也可增加第三方的安全控制系统和入侵监控防护等。 (二)硬件平台

域名服务对CPU的计算要求比较高,在实际应用中选择基于Intel、AMD的PC架构服务器可以获得较好的性价比。

三)、安全、可维护优化、适应国内运营商本地化应用的域名解析软件是域名服务的基础

在域名解析软件选择上,考虑使用使用更为广泛的BIND,在全球域名解析系统占有率达80%以上,在国内可能达到90%以上;广泛的用户基础和开源的特点,使得运营商在使用时,可以随时分享世界各地针对BIND发现的各种问题,并可以获得较快的补丁和升级服务;同时因为开源的原因,我们有机会发现其问题的根源,并可以通过自行修改的方式获得解决。 支持运营商业务的灵活性和复杂性上,也是许多拆分注册和递归的解析软件不能胜任的。 在ISC发布新的BIND版本是,及时进行稳定和性能的测试,并选择适合的版本做升级。 四)、完善、及时的监控维护以及分析手段是保证最终域名服务稳定运行的必备条件 (一)服务、性能监控

建立监控、统计分析等手段,实时了解DNS系统的负载情况、响应状态、解析成功率、cache命中率等各项域名服务指标;服务器CPU、Mem、Disk以及网卡流入、流出等信息;统

计分析负载规律趋势,为DNS系统进一步完善提供数据基础; (二)异常访问监控与防护

建立异常访问或攻击的监测手段和自动防护等措施,在发生网络异常时,系统能具备自我防护和自我恢复的能力;并记录异常行为数据,为进一步分析攻击特点,制定更准确的应急方案提供依据。 (三)告警手段

根据预定规则,监测域名服务的重要指标,在达到预警阀值时,能及时告警到管理员或支持厂家,在服务最终崩溃前得到及时有效的处理,避免域名解析故障。 (四)用户行为分析

建立基于用户来源和访问内容的规律分析机制,可以为业务发展方向提供数据基础;在网络发生异常时,能够及时发现问题的根源;如:5.19暴风事件,通过类似系统,可以立即发现暴风的域名出现问题,并通过监控分析,确认暴风当时的软件设计机制缺陷等。

总结:

DNS是Internet及Internet上的一项基础服务,它为网络应用程序提供域名解析及服务(资源)定位服务。在理解DNS工作原理基础上,优化DNS,可以缩短DNS查询响应时间,减少不必要的网络流量,同时对于各种分布式服务的部署都有一定的借鉴意义。 参考文献

【1】 谢希仁 《计算机网络(第五版)》电子工业出版社 【2】 RFC1034 RFC1035 第一页

本文来源:https://www.bwwdw.com/article/f4m.html

Top