《大学毕业论文-—智能dns和反向代理功能的设计与实现.doc》由会员分享,可在线阅读,更多相关《大学毕业论文-—智能dns和反向代理功能的设计与实现.doc(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、南华大学计算机科学与技术学院毕业设计(论文)目 录摘要iAbstractii第一章 绪论11.1研究背景现状及意义11.2 DNS介绍11.3智能DNS介绍21.3.1概要21.3.2策略解析31.3.3发展趋势31.4代理介绍31.4.1背景31.4.2代理种类41.5负载均衡介绍51.5.1负载均衡种类51.5.2相关技术61.6当前DNS瓶颈问题及国内现状71.7论文结构概述8第二章 需求分析与方案设计92.1 DNS服务器的工作原理92.1.1 DNS体系及原理92.1.2 DNS层次结构92.1.3 DNS查询算法102.2负载均衡算法112.3代理原理122.4 DNS数据包分析1
2、32.4.1响应时间132.4.2 DNS协议报文结构132.4.3数据包的传送过程162.5 DNS主辅同步172.6 Heartbeat工作机制18第三章 系统实现203.1软件安装203.2系统部署233.2.1智能DNS服务器配置233.2.2代理服务器配置263.2.3 DNS主辅服务器的搭建273.2.4主从服务器的优化303.3搭建Heartbeat323.4使用dnstop进行DNS流量监控333.5实验结果34第四章 总结与展望374.1本论文所做的工作374.2论文的不足374.3工作展望37参考文献38谢 辞40附 录41智能DNS和反向代理功能的设计与实现摘要:随着In
3、ternet的迅猛发展,网络局域划分更加鲜明,网络运营商南北分家、DNS树状结构以及跨运营商域名解析逐渐成为网络瓶颈,智能DNS和反向代理为解决这一问题首选方案。本系统主要利用BIND的视图特性,定义三个ACL来匹配不同的查询用户,将用户的访问IP分为了电信、网通和本地三个网段。设计反向代理服务器实现外网IP能够访问到内网资源的功能,利用智能DNS能够自动识别用户的域名地址来源的特性,根据客户端源IP的不同而返回服务器不同的解析IP。通过搭建DNS主从同步实现DNS负载均衡,减轻网络拥塞问题,同时为了解决IP地址伪装的问题,利用DNS的高级特性,基于密码的IP地址验证,提高安全性,同时利用dn
4、stop对DNS流量进行监控和分析。结合heartbeat负载均衡技术,解决代理服务器异常宕机的单点故障问题。本研究的根本是为了既能对跨运营商服务器的流量带宽进行智能动态分配,有效的提高外网对内网的访问速度,又能对服务器进行流量监控和异常情况分析解决,保证服务器的高效正常的运行。但是,对于DNS查询异常数据流的挖掘工作和DNS的各种攻击行为匹配特征研究考虑不够周全,需要进一步研究与改善。关键词:智能DNS;反向代理;DNS主从;HeartbeatThe Design And Implementation Of Intelligent DNS And Reverse Proxy Function
5、alityAbstract:With the rapid development of the Internet, the local area network devided more remarkable.The network operators split between north and south and the tree structure of the DNS,as well as Crossed operator DNS had gradually become network bottleneck. Intelligent DNS and reverse proxy ha
6、d become the best program to solve the problem.The system features a view of the use of BIND, define three different query ACL to match users to access the users IP into the Telecom, China Netcom and three local network segment. Designed to achieve the reverse proxy18 server to access the external n
7、etwork IP network resources to function19, the use of intelligent DNS can automatically identify the users domain address of the source characteristics, depending on the source IP address of the client and the server returns a different resolve IP. Synchronization is achieved by building a master-sl
8、ave DNS DNS load balancing, reduce network congestion problem, and in order to solve the problem of IP address masquerading, use the advanced features of DNS20, IP address based authentication passwords, increase security, while taking advantage of dnstop for DNS traffic monitoring and analysis. Com
9、bine heartbeat load balancing technology, problem solving proxy server downtime abnormal single point of failure.This study is fundamental to both the bandwidth of inter-carrier traffic server dynamically allocated intelligently21, effectively improve the external network access speed internal netwo
10、rk, but also the server traffic monitoring and anomaly analysis solution to ensure efficient server normal operation. However, abnormal DNS query data stream mining work various attacks and DNS matching feature thoughtful enough research to consider the need for further research and improvement.Keyw
11、ords: Intelligent DNS;Reverse Proxy;Master And Slave;Heartbeatii第一章 绪论1.1研究背景现状及意义DNS是Internet上的核心基础设施,是各种网络应用得以正常运行的前提和保障,其可用性直接影响着整个工Internet的安全和服务质量。但是目前还没有一个成熟的安全防护系统出现,无法对现有DNS系统进行有效的防护。DNS系统之所以受到威胁,主要是因为自身存在脆弱性1。普通的DNS服务器只负责为用户解析出IP记录,而不去判断用户从哪里来,这样会造成所有用户都只能解析到固定的IP地址上。智能DNS颠覆了这个概念。智能DNS会判断用户
12、的来路,而做出一些智能化的处理,然后把智能化判断后的IP返回给用户。反向代理服务器的主要功能是代理外部网络上的主机访问内部网络。它主要为一个或几个本地网站作缓存,以加快Web服务器的响应速度;或者代理外网的机子访问内部的服务器,以加强Web服务器的安全。所以对DNS这个互联网上的基础核心设施进行深入的研究,具有重要的理论与实践意义,可以让它更好的服务于Internet,让整个互联网平稳安全的运行。1.2 DNS介绍1、DNS名次解析泛域名解析是指将域名解析到一个IP上,在该域名就相当于一个根域名,它的前面可以添加任何子域名,都可以访问指向的web地址。比如用户的域名usc之下设置的*.usc全
13、部都解析一个IP地址。2、泛域名解析域名智能解析除了具备基本的DNS解析功能以外,它还可以自动识别用户的域名地址的来源,并把相同的域名智能解析到双线路机器的电信、网通的IP,这样就加速了你的访问速度,就近访问网站。3、域名智能解析域名智能解析除了具备基本的DNS解析功能以外,它还可以自动识别用户的域名地址的来源,并把相同的域名智能解析到双线路机器的电信、网通的IP,这样就加速了你的访问速度,就近访问网站。4、MX记录MX记录是邮件交换记录,它指向一个邮件服务器,用户发邮件时根据收信人地址后缀确定邮件服务器的位置。MX记录也叫邮件路由记录,作为路由记录,用户可以自己指定mail server,这
14、样便于操作邮箱设置。5、CNAME记录CNAME记录又称为别名记录,它可以允许你将多个域名映射到同一个IP,或者将多个IP指向多个域名,就像您解析时,可以发现,它的一个域名解析出来的IP却有多个,这样的话可以减轻DNS服务器的负担,同时增快用户的访问速度,提高网站的性能。6、TTL值TTL是IP协议包中的一个值,数据包在网络中的时间太长时告诉网络是否丢弃。他的初始值是系统默认的,在一定的时间范围,超过这个范围就会选择丢包,其中含有8位域的是包头。7、A记录A 记录(Address)顾名思义就是地址记录 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的
15、网页服务器(web server)上,同时也可以设置域名的子域名。8、URL转发URL转发就是将你访问的域名指向另一个网络地址,但是您访问的内容却不变,这也就是地址跳转。比如您访问时,通过URL转发,将您的域名跳转为,但是您访问的内容是不变的,只是域名变了,这个可以很直观的展示给用户看。1.3智能DNS介绍1.3.1概要所谓的智能DNS就是在实现了基本的DNS的功能之外,又能根据客户端的IP地址的来源,自动智能化判断客户端的IP地址,然后再返回给客户,不需要用户进行选择2。智能DNS主要就是起到一个分流的作用,减轻了DNS服务器的负担。在生活中,互联网主要运营商有:电信、移动、网通、教育网服务
16、器,不同的带宽就会有来自不同运营商的用户访问,而各ISP(因特网服务提供商)之间对数据流量都有严格的控制,造成了不同ISP网络之间的互联互通瓶颈。1.3.2策略解析智能DNS的策略解析,就是自动智能的判断访问者,根据访问者把域名智能的解析为不同的IP地址。同时它还支持就近访问机制。在这个互联网的时代,信息技术是非常发达的,现在国内外的交流也很多。很多的校园已经将他们的服务器放置在了国外,这样,国外的用户访问我的网站时,就通过国外的服务器,而国内的用户访问我的网站时通过国内的服务器,这样既提高了速度也改善了用户的体验,提升网站价值。1.3.3发展趋势智能DNS是一项新兴技术,从高性能方面看,它的
17、缓存域名服务器可以提供高可以的服务,响应大量客户的域名解析请求;从安全角度,域名服务器要符合DNS授权服务器的标准3,这个就可以灵活、快速的进行配置,提供极高的性能和可靠性;从管理角度,今后的域名服务器将会是一个综合的IP网络地址管理系统,是的IP网络的部署和管理更为简单。1.4代理介绍1.4.1背景代理(Proxy)是位于客户端与服务器之间的一种中介,它分析客户端向服务器的请求,如果请求的数据在代理缓存中已经存在,则会代替服务器进行响应4。相对服务器,代理与客户端在网络上的距离比较近,于是就可以更快地为客户端提供服务。本章介绍有关代理服务器的原理、以及Squid代理服务器的安装、运行与配置等
18、内容。代理服务的种类非常多,如果按所支持的协议来分的话,可以有HTTP代理、FTP代理、SSL代理、POP3代理、SOCKS代理等。其中,HTTP代理(也称为Web代理)的应用最为广泛。代理服务器一般构建在内部网络和Internet之间,负责转发内网计算机对Internet的访问,并对转发请求进行控制和登记。它的优势是可以起到防火墙的作用,提高客户机的安全性能,访问受限的服务器和减少流量出口。1.4.2代理种类1、传统代理即为普通的代理服务,一般以提供HTTP、ftp代理为主,需要客户端在浏览器中指定代理服务器地址和端口(默认为3128)。对于企业的局域网来说通过代理服务器同样可以接入Inte
19、rnet,但一般只能访问web网站和FTP站点。同时,通过代理的缓存机制,局域网用户访问web站点的速度可以得到显著的提高,如图1.1所示:图1.1 传统代理架构2、透明代理透明代理除了为内网机子提供外网的访问服务外,它最大的特点是不需要客户端做任何设置,但是需要出口路由器或防火墙的配合,如图1.2所示:图1.2 透明代理架构3、反向代理反向代理服务器的主要功能是代理外部网络上的主机访问内部网络。反向代理主要为一个或几个本地网站作缓存,以加快Web服务器的响应速度;或者代理外网的机子访问内部的服务器,以加强Web服务器的安全,如图1.3所示:图1.3 反向代理架构1.5负载均衡介绍1.5.1负
20、载均衡种类1、硬件负载均衡硬件负载均衡5解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备我们通常称之为负载均衡器。但是,硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵。2、软件负载均衡软件负载均衡是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡。它的优点是基于特定环境,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。软件解决方案缺点也较多,因为每台服务器上安装额外的软件运行会消耗系统不定量的资源,越是功能强大的模块,消耗得越多,所以当连接请求特别大的时候,软件本身会成为服务器工作成败的一个关键;软件可扩展性并不是很好,受到操作系统的限制;由
21、于操作系统本身的Bug,往往会引起安全问题。 3、本地负载均衡本地负载均衡能有效地解决数据流量过大、网络负荷过重的问题,并且不需花费昂贵开支购置性能卓越的服务器,充分利用现有设备,避免服务器单点故障造成数据流量的损失。其有灵活多样的均衡策略把数据流量合理地分配给服务器群内的服务器共同负担。即使是再给现有服务器扩充升级,也只是简单地增加一个新的服务器到服务群中,而不需改变现有网络结构、停止现有的服务。4、全局负载均衡全局负载均衡主要用于在一个多区域拥有自己服务器的站点,为了使全球用户只以一个IP地址或域名就能访问到离自己最近的服务器,从而获得最快的访问速度,也可用于子公司分散站点分布广的大公司通
22、过Intranet(企业内部互联网)来达到资源统一合理分配的目的。1.5.2相关技术1、集群和集群化集群通信系统6是一种用于集团调度指挥通信的移动通信系统,主要应用在专业移动通信领域。该系统具有的可用信道可为系统的全体用户共用,具有自动选择信道功能,它是共享资源、分担费用、共用信道设备及服务的多用途、高效能的无线调度通信系统。集群化是指创建一组用于相同途径的服务器:分担负载,以及在某个集群成员出现故障时,有其他成员来处理该成员的负载。由于大多数集群化的系统都通过全自动或者半自动的方式来应对集群中其他服务器的故障,这些系统能够瞬间就恢复工作,但是,这个时间不包括修复服务器所需的时间,或重新配置集
23、群来永久删除问题的服务器所需的时间。2、单边加速单边加速就是为了解决客户端访问发布的服务速度较慢时提供解决方案。它的优点是可以避免拥塞,能够快速的准确的预估出网络中可用带宽,并根据估计值确定拥塞避免窗口,从而最大限度的利用网络带宽。进行快速重传、快速恢复和慢启动,充分利用连接带宽。3、商业智能商业智能7描述了一系列的概念和方法,通过应用基于事实的支持系统来辅助商业决策的制定。商业智能技术提供使企业迅速分析数据的技术和方法,包括收集、管理和分析数据,将这些数据转化为有用的信息,然后分发到企业各处。现在最为流行的是BI系统,是为将企业中现有的数据转化为知识,帮助企业做出明智的业务经营决策的工具。4
24、、缓存缓存8是一组被保存起来以备将来使用的东西。缓存不是我们生存所必须的,但是高速的网站需要缓存。无论企业有多大,Web缓存都有助于优化性能和节省带宽。而且如果选择了正确的缓存解决方案,它可以随着企业网络的增长而扩大,而无需进行昂贵且耗时的重建。1.6当前DNS瓶颈问题及国内现状1、技术方面的问题RFC10359规定DNS协议基于UDP,最长只能是512字节,全球最多只能有13台根服务器,IP分片难以处理,DNSSEC和IPv6也难以支持等。解决的方案提出了两个,一是虽然做了ENDS0的扩展但实际应用的很少,二是鼓励基于TCP的DNS但可能会带来更大的问题。其他的问题还有缓冲区投毒,无法知道非
25、法的gTLD和ccTLD10而导致的根服务器污染,UDP的欺骗攻击,DNSSEC中的根密钥管理和更新问题等,与IPv6共存时DNS串行解析增加的新延迟,利用相似字符进行网络钓鱼等。2、实现方面的问题常用的名字服务器软件(BIND和Windows)历史上有一些可以被利用的安全漏洞,可用来做投毒、中间人攻击和DOS攻击11等,尤其是在递归解析时。另外,由于无效TLD、重复解析和源地址错误(如RFC1918)等,根服务器上7598的流量实际上是没必要的,缺少缓存、UDP缺乏循环监测机制和anycast以及超额部署DNS,都污染了DNS。另外,WEB浏览器也喜欢为应用增加一些没法解析的名字上去。3、近
26、期出现的dns事故2010年3月16日前,中国大陆有F、I这2个根域DNS镜像,但因为多次发生DNS污染而影响外国网络,威胁互联网安全和自由而被撤销路由通告。2014年1月21日下午15时左右,中国大陆DNS被污染,导致众多顶级域名被错误的解析到“65.49.2.178”。百度、新浪、淘宝等众多中国大陆网站无法访问。4、 国内现状全球共有13台根服务器,其中一台主根服务器在美国。其他12台均为辅助根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。DNS根服务器是DNS树型域名空间的“根”,负责TLD的解析,对于域名解析起着极其关键的作用。另外借由任播(Anycast)
27、技术12,部分根域名服务器在全球设有多个镜像服务器(mirror)13,因此可以抵抗针对其所进行的分布式拒绝服务攻击(DDoS)。1.7论文结构概述论文共分为四章,第一章为绪论,主要进行背景介绍和现状分析。第二章为需求分析和方案设计,主要介绍了DNS的体系结构相关原理、代理的原理和负载均衡算法等,便于其他章节引用。第三章系统实现,实现了对内对外访问的多链路自动选择,及网络负载均衡技术。第四章为结论,总结了本课题的研究成果和今后的工作展望。第二章 需求分析与方案设计2.1 DNS服务器的工作原理2.1.1 DNS体系及原理互联网中的主机是使用IP地址来标识的,但是即便是32位的IPv4地址转化为
28、十进制后也将是4 组0一2 5的数字, 而记住这一大堆数字组合对普通人来讲是件困难的事情, 所以我们给主机起一个便于记忆的名字,并借助DNS 将其解析成IP地址, 这样只需在URL栏中输人某台主机的名字,就可以访问到它了。当然DNS 也承担着将I地址解析成域名的任务, 也就是反向解析,如图2.1所示:图2.1 DNS数据库结构图2.1.2 DNS层次结构全国共有15台根服务器,这15个根域名服务器作为全球DNS层次结构的顶层,他们可以为其他方式无法解析的所有域名查找提供最终的源。域名从树底部开始并且向上工作,每个域名跟随一个句点,为域名部分定界,最后一个句点代表DNS层次结构本身的根,如图2.
29、2所示:图2.2 DNS层次结构图2.1.3 DNS查询算法1、DNS递归查询递归查询是一种DNS 服务器查询的模式,在该模式下DNS 服务器接收到客户机的请求,必须使用一个准确查询的结果回复客户机。如果DNS 服务器本地没有存储查询DNS 的信息,那么该服务器会询问其他的服务器,并将返回的查询结果提交给客户机,如图2.3所示:图2.3 DNS递归查询如要递归查询的地址,首选DNS服务器通过分析完全合格的域名,向顶层域com查询,而com的DNS服务器与服务器联系以获得更进一步的地址。这样循环查询直到获得所需要的结果,并一级级向上返回查询结果,最终完成查询工作。需要注意的是,为了让DNS服务可
30、以正确运行递归查询,需要有一些必要的信息,该信息通常是以根目录的形式来提供,借助使用根目录提示寻找根域服务器,DNS服务器可以完成递归查询。2、DNS迭代查询DNS 迭代查询就是DNS 服务器会向客户机提供其他能够解析查询请求DNS 服务器地址,当客户机发送查询的请求时,DNS 服务器并不直接回复查询的结果,而是告诉客户机另一台DNS 服务器的地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询结果为止,如图2.4所示:图2.4 DNS迭代查询如要迭代查询的地址,首先DNS服务器在本地查询不到客户端请求的信息时,就会以DNS客户端的身份向其他配置的DNS服务器继续进行查询,以便解析
31、该名称。在大多数情况下,可能会将搜索一直扩展到Internet上的根域服务器,但根域服务器并不会对该请求进行完整的应答,它只会返回服务器的IP地址,这时DNS服务就根据该信息向服务器查询,由服务器完成对域名的解析后,再将结果返回DNS服务器。2.2负载均衡算法1、轮叫调度(Round Robin)轮叫调度14(Round Robin Scheduling)算法就是以轮叫的方式依次将请求调度不同的服务器,即每次调度执行i=(i+1)modn,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。轮叫是基站为终端分配带宽的一种处理流程,这种分配可以是针对单
32、个终端或是一组终端的15。为单个终端和一组终端连接分配带宽,实际上是定义带宽请求竞争机制,这种分配不是使用一个单独的消息,而是上行链路映射消息中包含的一系列分配机制。假设有一组服务器S=S0,S1,Sn-1,一个指示变量i表示上一次选择的服务器,W(Si)表示服务器Si的权值。变量i被初始化为n-1,其中n0。j=i;doj=(j+1)modn;if(W(Sj)0)i=j;returnSi;while(j!=i);return NULL;如图2.5所示:图2.5 轮叫调度的逻辑实现图2、无须等待调度(Never Queue Scheduling)无须等待调度(Never Queue Sched
33、uling)采取双速模式: 当有空闲服务器可用时,作业将被发送到空闲服务器,而不是等待速度 较快的那一台。若没有空闲服务器可用时,作业将被发送到可用最小化预期延迟的那台 服务器。2.3代理原理Squid16是linux系统中很常用的一款开源代理服务软件,可以很好的实现HTTP、FTP以及DNS查询、SSL等应用的缓存代理,功能十分强大。客户端通过代理请求web页面时,指定的代理服务器会先检查自己的缓存,如果缓存中有客户需求的页面,则直接将缓存中的页面反馈给客户端;如果没有,则缓存服务器自己向internet中发送请求,获得所需页面后,会将页面保存在自己的缓存中并发送给客户端。2.4 DNS数据
34、包分析2.4.1响应时间响应时间(response time)是指系统对给定输入作出反应所需要的时间。在交互式的处理中,可能定义为用户最后一次击键和开始在计算机上显示结果间的时间间隔。对不同的应用程序,可能需要稍有不同的定义。一般来说,响应时间指系统响应请求并执行特定任务所花费的时间。在这里,也就是指 DNS服务器响应用户的 DNS 请求并将 DNS 解析后的结果返回给用户所花费的时间。 2.4.2 DNS协议报文结构DNS协议分成包头和数据两部分,如下图,该报文由12字节的首部和4个长度可变的字段组成,如表2.1所示:表2.1 DNS查询和响应报文的一般格式表015 1631标识标志问题数资
35、源记录数授权资源记录数额外资源记录数查询问题回答(资源记录数可变)授权(授权记录可变)额外信息(资源记录数可变)这个报文是由12字节的首部和4个长度可变的字段组成。标识字段由客户端程序设置并由服务器返回结果,一般来说该字段是一个序列号,客户程序通常用它来判断响应和查询是否匹配。标志字段占用16bit,被划分为若干个子字段,所示,描述了该DNS报文的类型,需要的服务等,如表2.2所示:表2.2 DNS报文首部的标志字段表QROpcodeAATCRDRA(ZERO)Rcode14111134RD:表示期待递归,在查询报文中填写,在响应报文中返回。该标志告诉服务器必须处理这个查询,如果被请求的服务器
36、没有对应的授权回答,该标志告诉服务它需要返回给客户端一个能解答该查询QR:一个1位的字段,1表示响应报文,O表示查询报文。OPcode:0表示标准查询,1表示反向查询,2表示服务器状态请求,3表示保留将来使用。AA:“权威回答(AuthoritativeAnswer)”,由响应服务器填写。TC:表示相应数据包可截断。的其他名字服务器列表。RA:表示可用递归,如果服务器支持递归查询,在响应中置位。除了根服务器,都应该支持递归查询。Zer0:必须为0,保留将来使用。Rcode:响应码,0表示没有差错,1表示格式错误,2表示服务器故障,3表示名字错误,4表示没有实现,名字服务器不支持查询请求的种类,
37、5表示拒绝,6一15保留将来使用。首部标志后面的四个16bit的字段说明最后四个变长字段包含的条目数。问题数:它指定问题段中的条目数。资源记录数:它指定响应段中的资源记录数。授权资源记录数:它指定权威记录段中的名字服务器资源记录数。额外资源记录数:它指定附近记录段中的资源记录数,如表2.3所示:表2.3 DNS查询报文中的问题段的格式表015 1631查询名查询类型查询类表中查询名就是要查找的名字,是一个可变长的序列,而且无需以整32bit边界结束,它的结束标志为一个“0”,因此无需填充字节。查询类通常都为lN,代表互联网地址,即常说的IP地址,当然,某些站点也支持非lP地址。这里需要说明的是
38、查询类型,每一个问题都有一个查询类型,而每一个响应(也就是资源记录,RR)也有一个类型。在下表中列举了一些常用的类型和查询类型,查询类型是类型的一个超集(suPerset)。最常用的类型是A,也就是期望获得查询主机名的IP地址;对于反向查询,期望获得一个IP地址对应的域名,则为PTR类型。类型很重要,它规定了服务器作何种动作,如表2.4所示:表2.4 DNS问题和相应的类型值和查询类型值表名字数值描述A1IP地址NS2名字服务器CNAME5别名,规范名称PTR12反向记录,指针信息HINFO13主机信息MX15邮件交换记录SOA6区域记录AXFR252对区域交换的请求ANY255对所有记录的请
39、求DNS报文最后的三个字段,即问答字段,授权字段和附加信息字段都是采用RR(ResourceRecord)格式,如表2.5所示:表2.5 DNS资源记录(RR)格式表015 1631域名类型类生存时间资源数据长度资源数据 域名字段是记录中资源数据对应的名字,它和查询问题字段中的查询域名格式一样。类型字段说明RR的类型,查询类型是一样的。类通常为lN,指Intemet数据。生存时间(TTL)通常指数据在客户端或者cache中保存的时间,一般来说资源记录通常的生存时间为2天。资源数据长度说明资源数据(RData)的数量,一个资源数据字段可能有多条资源数据,RData的格式依赖于类型字段的值,不同的
40、资源记录类型的资源数据格式是不一样的,例如对于A类型,资源数据是四字节的IP地址。这里要提到一个资源记录集(RRs)的概念,一般来说具有相同域名(Name)类型(type)、类(Class)的资源记录被称为资源记录集(也称为资源记录序列,RRset,双s)。2.4.3数据包的传送过程如图2.6所示: 图2.6 数据包传送过程1、使用UDP消息通过UDP的53端口进行传输。UDP传输的消息严格要求限制在512字节内(不包括IP和UDP头)。长报文被截断,同时置报文头的TC标志位。UDP不能用于区域传输,主要用在标准的域名查询。报文通过UDP可能会丢失,所以重传机制是需要的,请求和应答可能在网络中
41、或者服务器处理的时候被重新排序,所以解析客户端不能依赖请求的发送顺序。UDP的最优重传策略会因为网络的性能,客户的需要而不同,但是下面是推荐的:- 客户端在对一台固定的服务器重试之前,尝试一下其他的服务器。- 如果可能的话,重传的时间间隔需要建立在统计分析数据的基础上,太快的重试可能因为量太大导致服务器响应慢。建议的重试时间为2-5秒。2、使用TCP通过TCP发送的报文使用53端口,报文的前面有个字节表示后面报文的长度,长度不包括自己占用的2个字节,这个长度使得底层收取完整的报文后在交给上层处理。很多连接管理策略如下:- 服务器不能阻塞其他传输TCP数据的请求。- 服务器需要支持多连接- 服务
42、器要等客户端主动关闭连接,除非所有的数据都已经传输完了。- 如果服务器想关闭没有通讯的连接来释放资源,那么需要等待大约2分钟的时间。特别是要等SOA和AXFR(刷新操作中)在一个连接上传输完。服务器关闭连接的时候可以单方面的关闭,或者直接reset掉连接。2.5 DNS主辅同步1、DNS辅助服务器为了防止DNS服务器由于各种软硬件故障导致停止DNS服务17,建议在同一个网络中部属两台或两台以上的DNS服务器。其中一台作为主DNS服务器,其他的作为辅助DNS服务器。当主DNS服务器正常运行时,辅助DNS服务器只起备份作用。当主DNS服务器发生故障后,辅助DNS服务器立即启动承担DNS解析服务。另
43、外,辅助DNS服务器会自动从主DNS服务器中获取相应的数据,因此无需在辅助DNS服务器中添加各个主机记录。2、 DNS主辅同步原理如图2.7所示:图2.7 DNS主从同步原理1、主服务器向从服务器发送notify消息2、从服务器收到主服务器发送notify消息,向主服务器返回一个notify response消息。同时,从服务器向主服务器发送SOA query消息。3、主服务器向从服务器返回SOA response消息。4、从服务器收到SOA response消息后,比对自身的Serial值,如果发现主服务器的Serial值大于自身的Serial值,那么就发送Zone transfer req
44、uest消息。5、从服务器向主服务器发送Zone transfer request消息请求AXFR。6、主服务器返回Zone transfer response消息,主服务器执行Zone transfer。2.6 Heartbeat工作机制Heartbeat18包括心跳监测和资源管理两个部分,其中心跳监测通过网络链路和串口进行,支持冗余链路,两者之间通过互发报文告诉对方自己的当前的状态,如果指定的时间内双方没有收到对方的发送的报文,就可以表示对方失效了,这时需要启动资源接管模块来接管运行在对方主机上的资源或者服务。(1)集群成员一致性管理模块(CCM)CCM用于管理集群节点成员,同时管理成员之
45、间的关系和节点间资源的分配。Heartbeat模块负责检测主次节点的运行状态,以决定节点是否失效。ha-logd模块用于记录集群中所有模块和服务的运行信息。(2)本地资源管理器(LRM)LRM负责本地资源的启动、停止和监控,一般由LRM守护进程lrmd和节点监控进程Stonith Daemon组成。lrmd守护进程负责节点间的通信;Stonith Daemon通常是一个Fence设备,主要用于监控节点状态,当一个节点出现问题时处于正常状态的节点会通过Fence设备将其重启或关机以释放IP、磁盘等资源,始终保持资源被一个节点拥有,防止资源争用的发生。(3)集群资源管理模块(CRM)CRM用于处理
46、节点和资源之间的依赖关系,同时,管理节点对资源的使用,一般由CRM守护进程crmd、集群策略引擎和集群转移引擎3个部分组成。集群策略引擎(Cluster policy engine)具体实施这些管理和依赖;集群转移引擎(Cluster transition engine)监控CRM模块的状态,当一个节点出现故障时,负责协调另一个节点上的进程进行合理的资源接管,如图2.8所示:图2.8 heartbeat架构第三章 系统实现3.1软件安装1、linux系统安装Red Hat Enterprise Linux Server release 5.8下载地址:虚拟机下载地址: 图3.1 虚拟机安装完成截图准备安装环境,其中每台linux的服务器的安装环境都一样,如表3.1所示:表3.1 服务器硬件环境内存512M硬盘(SCSI)40G网卡2块