DNS服务器集群

DNS服务器集群解决方案林天山中国电信福建公司泉州分公司 泉州   362000    建设DNS集群的必要性    建    建设DNS集群的必要性泉州电信城域网现有3台DN S服务器,其中DN S

DNS服务器集群解决方案林天山

中国电信福建公司泉州分公司 泉州   362000    建设DNS集群的必要性    建    建设DNS集群的必要性泉州电信城域网现有3台DN S服务器,其中DN S1和DN S2作为本地授权解析服务器,同时也开放了递归查询,DNS3作为Cache服务器,仅提供递归查询。泉州拨号PPPoE用户的DNS服务设置由局方指定,主用服务器使用省DNS服务器“fj-DNS.fz.fj.cn”,备用服务器为泉州本地服务器中的DNS2和DNS3,当主用服务器1 s内没有响应,查询将转向泉州本地服务器。网吧等专线用户大多数主用服务器还是DNS1。早期为使3台DN S负载均衡,通过人工配置进行区域划分,用户域名查询流量被分担到3台DN S上。由于历史原因,DN S1的知名度远高于其他几台,因此导致DNS1的CPU利用率持续上升,因此将其上的晋江和石狮的拨号用户流量转移到DN S2和DN S3,并且更换了D N S2和DN S3的服务器。由于机器性能的限制,3台服务器的CPU忙时利用率均超过85,2009年春节前后甚至超过了95。图1是2009年春节期间3台服务器CP U负载情况,灰色为低于85的部分。从图1可以看出,虽然3台DN S服务器的CPU负载已经基本均衡,但在业务忙时,仍然难以满足业务需要,需要及时进行扩容。对服务器的扩容可以通过购买更强的服务器实现,但随着业务继续发务器实现,但随着业务继续发展,无限制地购买更高性能的服务器造成的浪买更高性能的服务器造成的浪费可想而知。同时,对于固定IP地址用户,我时,对于固定IP地址用户,我们很难像对拨号IP地址用户那样动态调整DNS IP地址,即使是拨号用户,一旦服务器故障,由于没户,一旦服务器故障,由于没有热备份保护,绝大部分宽带业务将会中断。理想的应用模式应当是:理想的应用模式应当是:对外公布一个IP地址,内部通过多个服DNS IP地址,内部通过多个服务器建立集群,只需要随着业务发展增加集群只需要随着业务发展增加集群内服务器数量。保留2台服务器作为非集群备份(兼做本地授权服务器)。一个良好的集群系统应当具有以下特点。⑴可靠性:避免单点故障,不管是网络还是服务器硬件故障均不中断业务。⑵完整性:当某一台DNS进程发生故障,可以自动从集群中退出。⑶可扩展性:可以通过逐步增加服务器来满足业务发展的需要,避免一次购买大容量设备造成的巨大成本压力。目前福建电信集中DNS服务器即采用了集群方式,各地市均将主用DNS指向省DNS,本地DNS作为备用。从全省的角度看,需要建立两个异地DNS集群才能确保DNS的安全。单集群方式可能带来的隐患是:由于各地市DNS性能和安全性不足,当省DNS出现故障时,本地DNS流量将迅速增加以致不堪重负。因此从确www. ttm . com.cn 83

,

保本地宽带业务的角度,有必要在泉州建立一个新的DNS集群系统。

O S P F进程,将DN S服务器模拟成双接口路由器,将服务进程的监听端口设置在Lo o p b a c k地址上,通过OS P F 等值路由(Equal Cost Multi-Path,E C M P)实现流量均衡。当网络中断或服务器硬件故障、操作系统死机时,OSPF将快速收敛。当服务器进程出现故障时,可以通过监控进程关闭Loopback接口,利用OSPF LSA迅速切换服务器。这种方案原理比4层交换机要简单很多,因此可靠性相对较高。采用这种方式最好是无状态的连接,因为如果是基于状态的连接,很可能导致连接的先后两个包发给集群内不同的服务器。对于DN S这样的应用,查询非常简单,通过UDP一问一答就可以完成,因而可以采用此方案。如果必须使用状态连接,如DN S的区传送,则必须确保一个连接的所有后续包都发给同一台服务器。思科路由器可以通过CEF实现基于流分发的需求,Juniper也可以实现类似的功能。

这个方案显然适用于授权DNS服务器,也就是没有递归查询的情况。如果需要递归查询的时候可能还存在问题。对一般应用来讲,大多数都是递归查询,如果DN S发出的递归查询

无法保证返回结果到同一台服务器,那么这个方案就只能应用于本地授权解析服务器。

可以考虑两个解决办法:一是测试CE F是否可以保留递归查询的流状态;二是通过参数指定D N S 递归查询,通过服务器的集群内部IP地址发出,这样由于集群内部IP地址的惟一性,就可以确保查询结果的正确返回。其他如Telnet、SNMP等通信由于需要确定访问某一台服务器,因此也必须通过集群内部IP地址访问。

    建设DNS集群的方案

2.1  4层交换机方案

集群解决方案有很多种,一般采用4层交换机或专门的集群软件实现通用系统的集群,目前大多数省级DN S 集群系统采用了这个方案。

如图2所示,为实现集群,采用了2台4层交换机。这是业界普遍采用的方案,主要优点是方案成熟,可以实现灵活的均衡策略。缺点是设备投资较大,且设备的可靠性对系统影响很大。对于DN S这种应用来说,4层交换机的很多特性实际并不是很重要,可以考虑更加廉价、简单、可靠的方案。

   方案比较

对比上述两种方案,4层交换机方案优点是方案成熟,但投资较大,从实际运行情况看,稳定性似乎还不尽如人意;OSPF等值路由方案主要优点是投资小,原理简单可靠,可扩展性好,便于实现无缝升级,但缺乏在现网大规模的应用经验。

考虑到目前已经确定由省公司集中建设全省DN S服务器,各地均将首选域名服务器指向省DN S,各地市D N S服务器仅作为备用服务器和授权服务器使用。泉州电信本地DN S扩容选择OSPF等值路由方案,这既避免了

2.2 OSPF等值路由方案

考虑到成本因素,笔者建议采用OSPF等值路由实现DNS集群的解决方案,组网架构如图3所示。

该方案基本思路是,在服务器上设置Loopback地址为服务器对外公开地址,物理网卡IP地址设置成集群内部IP地址,使用开源软件Zebra来启用

84 Tele co m munica Tions Technology / 2010·1

,

www. ttm . com.cn 85

,

没有升级,主机OS P F路由软件没有使用原版Ze b r a,而是采用了其Fo r k 版本——Quagga(Version 0.98.6)。方案中Loopback地址在Freebsd中可用Clonable Interface实现,Linux中可以用Dummy接口实现。

配置成Stub Area,路由表只有4行,加载OSPF路由进程对PC服务器的系统性能影响是很小的。

不够均衡,由于测试用户较少,少量用户如网吧发出的DN S请求可能远大于其他人,但当投入现网应用时,因为用户数量较大,从统计意义上看,用户就可以均衡地分布到各DNS上。

OSPF收敛时间可能比较长,由于D N S服务器只有一个物理接口,当该接口链路中断时,OSPF路由收敛时间为30~40 s,而DNS服务进程挂死导致的监控程序Shutdown Dummy接口则可以在1 s内收敛。解决的办法有两个:一是修改OSPF Hello和Dead Interval,从而降低收敛时间;二是启用服务器另外一个物理网卡,使链路中断信息能够迅速发布出去。

⑵DNS服务器配置

D N S 服务器配置基本不需要改变,只需打开对两个接口的DN S请求监控即可:

listen-on {

59.56.221.246; # service address, bound to lo1

66.66.66.82; # unicast address, for service checking

};

⑴OSPF配置

为避免过多的路由信息进入Zebra OSPF服务器,我们新建了一个OSPF Area,并配置成Stub Area,由骨干路由器下发一条缺省路由即可。另外需要注意的是OSPF Router-ID,由于缺省Router-ID是选择较小的IP地址,如果3台测试服务器均使用虚拟接口IP地址59.56.221.246作为Router-ID,将可能导致路由振荡。

主机OSPF配置如下:router OSPF

OSPF router-id 66.66.66.82 network 59.56.221.246/32 area 0.0.0.5

n e t w o r k 66.66.66.82/29 a r e a 0.0.0.5

area 0.0.0.5 stub!

OSPF正常建立后,可以看到由于

⑶测试结果

通过将现网中的3个小节点用户的D N S服务器指向59.56.221.246,测试D N S集群使用情况,功能完全正常,负载也可以分担到3台测试服务器上。从测试情况看,Juniper M320路由器采用流方式分发路由,也就是对某个IP 地址,后续包都会发往同一个DN S服务器,经测试,TC P连接也可以正常建立。

⑸测试总结

通过测试表明,采用OSPF ECMP 方式可以有效实现DN S业务集群,同时由于基于流的转发方式,未来基于T C P的连接也可以考虑用这种方式实现集群。

根据测试情况,我们开始在现网部署DN S集群系统,集群包括4台PC 服务器,安装RedHat Linux 5企业版和

⑷现网应用之前需要考虑的问题

基于流分发负载的方式导致负载

86 Tele co m munica Tions Technology / 2010·1

,

Quagga(Version 0.98.6)。

对外服务的是虚拟I P 地址,各服务器网卡的物理I P 地址为11.22.33.245~251。4台服务器部署在东海和普明两个核心机房。从网络上看,4台服务器和两台核心路由器在一个VLAN广播域内,OSPF域内两台核心路由器分别作为DR和BD R。各物理IP地址与核心路由器建立OSPF邻接关系,由于集群内各服务器到核心路由器均为等值路由,因此可以实现等值路由转发,从而实现DN S的负载分担。4台服务器和相关的网络设备均采用动态冗余备份方式进行保护,并且物理上分属两个异地机房,系统可靠性有了质的提升。图4为2008年9月12-20日集群内各服务器DNS请求数量分布情况。

从图4可以看到各服务器间流量实现了有效的均衡。从CPU负载看,即使高峰期间每秒8 000次以上的查询量,各服务器CPU峰值也在7左右,足以满足未来很长一段时间的需要。

在日常维护中,单台服务器故障可以自动退出集群,维护人员可以不必介入,即使出现意外情况没有退出集群,也可以很容易地通过关闭交换机端口实现强制退出。传统方式则必

须修复服务器或将故障DN S服务器IP 地址转移到别的服务器上。

系统的监控可以通过城域网网管nslookup方式对物理IP地址和虚拟IP地址进行定时检测。同时通过性能采集程序每5 min采集相关流量、CPU等信息,通过图形系统进行展示。

采用集群服务器后,泉州电信对DNS服务器进行了重新规划。原有3台服务器中,DNS3退网,DNS1、DNS2保留作为授权服务器,不再提供除本地域名和反向域名解析外的其他解析服务,所有用户域名解析请求均由集群DNS完成。

采用集群方式不仅带来性能和可靠性的提升,还大大提高了安全性。

⑴集群服务器只承担Cache-Only Server角色,无需对泉州电信以外的用户提供服务,因此可以在出口路由器上拒绝所有来自泉州以外的对集群服务器的域名访问请求,这大大提高了抗攻击能力。原有DN S服务器同时承担递归和非递归查询服务,相关策略难以实施。

⑵集群服务器采用了虚拟IP地址(公开)和物理IP地址(内部使用)的模式,对用户可见的是虚拟I P 地址,实际递归查询的是物理IP地址,

这可以避免DN S S p o o f i n g攻击的发生。对于⑴所述问题,由于所有对泉州以外的交互均由物理IP地址发起,因此对于虚拟IP地址的所有访问均可拒绝。

结合⑴、⑵情况,现有系统可能的风险只剩下本地用户攻击和来自泉州外部的针对物理IP地址的源端口为53的UD P包攻击,总体风险大大降低。

   结束语

目前泉州电信已经将所有宽带用户的DN S配置规范到了省DN S和本地集群系统上,经过一年多的运行,表明集群系统完全可以达到电信级的可靠性。从性能上看,新PC 服务器性能将比原有DN S所用Su n服务器有很大提高;从投资看,购买PC服务器比Sun工作站也便宜很多,扩展也更容易。由于采用了OS P F等值路由进行负载均衡,还节省了4层交换机的投资。在大量节省建设资金的情况下,将满足较长一段时间的D N S 查询需要,有效提高了系统的稳定性和安全性。

如对本文内容有任何观点或评论,请发E-mail至editor@ttm.com.cn。

全球最长最快的铁路在中国通车

武广铁路客运专线于 2009 年 12 月 26 日正式通车后,乘坐火车来往于两地之间的乘客可以节省7 h的旅行时间。这是迄今为止全球最长的350 km/h的高速铁路,并使用了CTCS L3列控系统。诺基亚西门子通信提供的先进数字铁路通信GSM-R系统为乘客享受快速安全的旅行体验提供了强力保障。 

武广线沿线地形复杂,桥梁隧道多,技术标准高,施工难度大。诺基亚西门子通信提供了完整的GSM-R解决方案,在不到1年的时间内,顺利建成了满足CTCS L3要求的高速铁路隧道GSM-R覆盖系统,确保了隧道内外GSM-R端到端的整体网络质量,有力保障了列控业务的平滑、顺畅。

惠普帮助企业优化云应用成本

惠普近日推出HP Cloud Assure的多项重要增强功能,以帮助企业更好地管控云应用中的变动成本问题。

云计算凭借其弹性特征吸引了众多用户,因为计算资源可以按照需求扩展或缩减。企业若发现应用程序性能下降,可以通过购买更多的云计算资源解决问题,但是企业这样做却不一定能获得性能的提升,反而可能会产生不可预计的成本。

HP Cloud Assure成本控制和HP Elastic Test现已上市。HP Cloud Assure由3种不同的成本控制解决方案组成,并通过HP软件即服务方式提供给客户。

www. ttm . com.cn 87

标签: