文/周曜
上海交通大学: DHCP双机热备在校园网中的应用
文/周曜
随着全球IPv4地址资源分配完毕,公网地址资源未来无法再增加,使用私网地址在校园网中应用的场景也是越来越多,越来越频繁;各个学校无线网络建设方兴未艾,无线网用户客户端越来越庞大,一般的公网地址无法满足,只能使用私网地址。而使用私网地址一般都采用DHCP+NAT的方式来为用户提供地址服务。为了保障服务的质量DHCP双机热备就成了其中必不可少的一环。
本文通过讨论Linux和Windows系统下DHCP双机热备的方法比较,结合上海交通大学无线网中应用的实际情况来讨论校园网DHCP双机热备的部署。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在RFC 2131中有详细的描述。DHCP工作流程,如图1所示。
双机热备,从广义上讲就是服务器高可用的另一种说法,英文译为High available。双机热备在数据网络中的应用非常广泛,不同操作系统在这方面的应用略有不同,热备软件作为一种服务器某种不可预知的宕机的解决方案,对于任何能够使服务器宕机的故障,热备软件都能对其进行监测、隔离并将服务切换到备份的服务器。从狭义上讲,双机热备就是在两台相同配置的服务器配置相同的服务,在同一时刻只能有一台服务器对外进行服务,当活动的服务器由于某种原因出现故障不能对外提供服务时,会自动将服务切换到备份的服务器上,不影响网络的运行。
图1 DHCP工作流程
在Linux上对DHCP进行配置用到的是ISC-DHCP,它不仅能完成基本的DHCP 功能,本身还支持DHCP的双机热备功能,不需要使用第三方软件。先安装配置DHCP,成功配置DHCP.conf和dhcp.leases配置文件后,就可以启动DHCP服务了,用service dhcpd start进行启动,用service dhcp stop进行关闭。
在Linux系统中应用DHCP双机热备用到的是RF2131机制,在这个机制中定义了3种服务器信号:服务器租用同步信号、操作状态信号和 “我回来了 ” 信号。其中,服务器租用同步信号用来在主、备服务器之间进行信息交流,在两台服务器正常运行的时候,会有连续的信息流。在两台服务器同时运行的时候,备份的服务器必须周期性地与主服务器进行通信,以确定主服务器是否正常,如果主服务器出现故障,备份服务器随时接替主服务器为客户端进行服务,这里我们用到的问候包就是操作状态信号。在备份服务器对外进行服务时,网络操作人员可以进行故障排查,故障排查后将主服务器重新搭建到网络中,主服务器会向备份的服务器发送一个“我回来了”信号,告诉备份服务器可以一起对外进行服务了。
下面是DHCP热备主服务器的配置文件:
这里用到的主DHCP服务器IP地址是192.168.30.21,备份服务器IP地址是192.168.30.22。配置文件中定义了两个网段地址。有几个重要参数需要解释一下,split:主、备服务器通过hash运算进行负载均衡,hash运算的结果在0~255之间,如果数值小于128由主服务器对外进行服务,如果大于128则备服务器对外进行服务,所以我们一般设置为128,起到的就是负载均衡的作用。
上海交通大学无线网建设了多年,目前已基本覆盖学校大部分的教学楼、办公楼和宿舍。其中上线AP达2300个,日均在线用户达1万。这个情况使地址分配服务的稳定与可靠显得非常重要。
图2 上海交通大学无线网DHCP双机热备结构
之前使用Windows Server 2008 配置DHCP服务给无线网AP以及用户客户端分配地址,在使用过程中逐步发现了问题,服务器非高可用是一个很大的问题,一旦服务器出问题(进程死,服务器断电,所连交换机出问题)使得整个学校的无线网用户拿不到地址而无法上网,影响面大,用户体验差。而现在我们利用Windows Server 2012 DHCP配置DHCP双机热备则比较好地解决了这个问题。下面是学校无线网DHCP双机热备的结构,如图2所示。
可以看到图中主辅2台DHCP分别位于不同路由器的不同网段,使用Windows Server 2012 DHCP配置成主辅热备关系的DHCP服务器。这样的结构带来的高可用性特点是:
不同网段的服务器,即使主DHCP所连路由器或者网络出问题,会自动切换到辅DHCP;而不同电源连接的服务器也提高了供电的可靠性,不会产生单点电源故障;而Windows Server 2012 DHCP提供强大的故障转移的功能使DHCP提供的服务在一个服务器donw情况下能继续为用户提供分配地址服务而不会因为租约的问题造成用户地址冲突。
DHCP双机热备使用Windows Server 2012 DHCP配置中最重要的就是配置故障转移,下面是详细的说明:
在Windows Server 2012中,DHCP服务器故障转移功能,允许两台DHCP服务器为位于相同子网或从相同作用域接收IP地址租用的DHCP客户端分配IP地址和DHCP选项,从而能够为客户端提供连续可用的DHCP服务器服务。这两台DHCP服务器会在它们之间复制租用信息,以便允许其中任何一台服务器能在另一台服务器不可用时继续为整个子网的客户端提供服务。通过在具有故障转移关系的两台服务器之间分配客户端请求,可以在负载平衡配置中配置故障转移。DHCP故障转移功能涉及到两台配置为DHCP角色服务的Server 2012服务器,并提供以下2种模式的高可用的DHCP服务:
图3 负载均衡模式
图4 热备用模式
负载均衡模式,如图3所示。负载平衡模式是DHCP故障转移的默认配置方式。在负载均衡模式下,当配置了两台DHCP服务器后,两台服务器同时为特定子网中的客户端提供IP地址和选项服务。客户端请求在两台服务器之间进行负载平衡和共享。如果一个DHCP服务器发生故障,另一个将继续租用第一台DHCP服务器的地址。
热备用模式,如图4所示。在热备用模式中,两台DHCP服务器以故障转移的关系运行。在该模式中,活动服务器负责为作用域或子网中所有客户端租用IP地址和配置信息。如果主服务器变得不可用,则辅助服务器继续为客户端提供服务。服务器在子网范围内充当主服务器或辅助服务器。
配置DHCP故障转移DHCP故障转移涉及到两台DHCP服务器之间建立关系,并只有两台DHCP服务器可以参与进来,但可以配置多个DHCP服务器之间建立关系。例如,可以配置DHCP-ONE和DHCP-TWO为DHCPTWO和DHCP-THREE的建立联系,和DHCPONE和DHCP-3建立联系。然而,一个单独的DHCP作用域,只能使用一个关系。配置DHCP故障转移需执行以下步骤:1.在两台单独的服务器(运行Serer 2012)中安装DHCP角色,要求这两台服务器是在相同的Active Directory(AD)域中。2.确保每个服务器上的DHCP角色授权的AD。3.创建第一台DHCP服务器作用范围。4.选择要配置故障转移的范围。单击菜单中的”配置故障转移“。5.在介绍DHCP故障转移配置故障转移的向导页面中,确认选择的范围,并单击“下一步”。6.添加服务器,选择要建立联系的DHCP服务器,然后单击“确定”。在Windows Server 2012中配置DHCP故障转移。7.选择负载均衡模式或热备用模式。
随着校园网私有地址与无线网地址用户不断发展壮大,DHCP服务的高可用性也越来越重要。为用户提供高质量、稳定的地址分配服务,相信未来DHCP双机热备将会越来越多地应用到校园网的场景中去。
(作者单位为上海交通大学网络信息中心)