一种动态地址配置下网络连接保活的方法和装置
技术领域
本发明涉及网络设备的网络连接组网配置领域,尤其涉及一种动态地址配置下网络连接保活的方法和装置。
背景技术
在当今网络设备组网配置中,动态主机配置协议(Dynamic HostConfiguration Protocol,DHCP)是应用的非常广泛的一种部署方式,多用于企业内部的公司网络组网、学校内部的教育网络组网等。它属于应用层,基于引导协议(BOOTstrap Protocol,BOOTP)。BOOTP和反向地址转换协议(Reverse Address Resolution Protocol,RARP)类似,用于相对静态的环境,其中每个主机都有一个永久的网络连接。管理人员创建一个BOOTP配置文件来定义每个主机的BOOTP参数。但在主机经常移动和实际主机数目超过了可获得的主机IP地址时,这种只提供从主机标识到主机参数的静态映射方式不再适用,为此制订了DHCP,它加入了自动分配可再利用的地址和附加的配置选项的能力。DHCP从两个方式上扩充了BOOTP:第一,DHCP可使主机用一个消息获取它所需要的所有配置信息,即传送配置信息的协议;第二,DHCP允许主机快速、动态地获取IP地址,即动态分配IP地址的机制。
DHCP建立在client-server(客户端-服务器)模型上,其中指定的DHCPserver分配网络地址并向动态配置的主机传送配置参数。只有当系统管理员明确地配置主机作为DHCP服务器时,主机才能作为服务器来工作。
DHCP支持三种类型的地址分配:自动分配方式中DHCP给主机指定一个永久的IP地址;动态分配方式中DHCP给主机指定一个有时间限制的IP地址,当时间到达或主机明确表示放弃这个地址时,这个地址便可以再次被其他的主机使用;手工分配方式中主机的IP地址是由网络管理员指定的,DHCP只是把指定的IP地址告诉主机。在这三种方式中,只有动态分配的方式可以对已经分配给主机但如果此时该主机已经不再使用的IP地址重新加以利用。这样,在给一台临时接入网络的主机分配地址或者在一组不需要永久IP地址的主机中共享一组有限的IP地址时,动态分配显得特别有用。如果一台新主机要永久地接入一个网络,而网络的IP地址非常有限,为了在将来这台主机被淘汰时能回收IP地址,这种情况下动态分配也是一个很好的选择。
在DHCP的动态分配方式中,DHCP server会将网络配置参数全部告知client(PC机、modem以及任何通过DHCP协议接入网络的设备),同时告知其使用的时间期限,即租约。如果client要使用DHCP协议获取IP地址、接入网络,必须与DHCP server进行一系列的接入报文交换,且处于六个状态之一,如图1所示,过程如下:
1、当client第一次启动时,首先进入INITIALIZE(初始化)状态,为了开始获取一个IP地址,它会与本地网络上所有的DHCP server联系,为此,client会在其子网内广播一个DHCP DISCOVER(DHCP发现)报文,此报文中包含关于网络地址和租约选项的值,如果client和DHCP server不在一个子网内,则BOOTP中继代理会把这个报文转发给DHCP server。client发送完DHCP DISCOVER广播报文之后,转入到SELECT(选择)状态。
2、本地网络上所有的DHCP server收到DHCP DISCOVER广播报文之后,如果其能够响应该client,则广播一个包含可提供的网络地址和其他配置信息的DHCP OFFER(DHCP提供)报文,因此,client可能会收到零个或多个DHCP OFFER响应报文。
3、处于SELECT状态中的client在收到一个或多个DHCP server的DHCPOFFER响应报文后,必须根据一定的条件从中选出一个(如第一个到达的响应),并向选定的DHCP server发送DHCP REQUEST(DHCP请求)报文以与其协商租用,在这个请求报文中必须包含一个服务器标识以指明被选中的服务器,然后client进入到REQUEST(请求)状态。如果client在定时器超时之前一直没有收到DHCP OFFER报文,则重发DHCP DISCOVER广播报文。
4、DHCP server在收到DHCP REQUEST报文后,如果可以满足请求报文中的请求,为确认已接受请求并开始租用,则会发回一个DHCP ACK(DHCP确认)报文作为响应,如果不能满足请求则发回一个DHCP NAK(DHCP非确认)报文作为响应。DHCP server在DHCP OFFER报文中提供给某client的地址不能提供给另外一个client,但如果DHCP server没有收到该client的DHCP REQUEST报文则可以把在DHCP OFFER报文中提供给该client的地址提供给另外的client。
5、client在收到包含配置参数的DHCPACK报文后,对报文中提供的配置参数进行检查,同时进行配置,之后就转移到BOUND(已绑定)状态,此时client可以开始使用此地址,如果发现报文中有错误则发送一个DHCPDECLINE(DHCP拒绝)报文并转入INITIALIZE状态以重新开始整个过程。如果client收到DHCP NAK报文则同样转入INITIALIZE状态,重新开始整个过程。
6、处于BOUND状态的client如果在某一时刻不再需要分配给它的IP地址,DHCP协议允许其终止租用,而不必等待租约到期。这对于DHCP server可以提供的IP地址比连到网络的主机数少的情况尤其有意义,如果client不再需要IP地址时及时终止租用,DHCP server就可以及时回收此地址并将其分配给其他client,从而大大提高网络资源的利用率。为了提早终止租用,client可以通过向DHCP server发送一个DHCP RELEASE(DHCP释放)报文来释放地址,发送释放报文后,client必须停止该地址的使用,不能再使用此地址发送其他数据报。根据图1所示,发出DHCP RELEASE报文的主机离开BOUND状态,并且在使用IP地址前必须从INITIALIZE状态重新开始网络接入流程。
当一个DHCP client获取到地址时,它就转移到BOUND状态。进入BOUND状态以后,client设置三个定时器:控制租用更新、重新绑定和到期。一个DHCP server给client分配地址时,可为定时器指定确定的值;如果server未指定定时器值,client就使用默认值。第一个定时器的默认值通常是总租约的一半。当第一个定时器到期时,client必须尝试更新租约。为请求更新,client发送一个DHCP REQUEST报文到获得租用处的server,转移到更新状态并等待响应。DHCP REQUEST报文包含此client正在使用的IP地址,并请求server延长对此地址的租用。server可以用两种方式之一响应client的更新请求:指示client停止使用该地址或同意client继续使用该地址。如果server同意就发送DHCP ACK报文,在DHCP ACK报文中也可以含有client定时器的新数值。如果server不同意继续使用,则发送一个DHCP NAK报文,使client立即停止该地址的使用。client收到DHCP ACK报文则返回到BOUND状态并继续使用地址,如果收到DHCP NAK报文就立即停止使用地址并返回到INITIALIZE状态。
第二个定时器在client进入BOUND状态后开始设置,默认值为总租约的87.5%,client发送请求报文后保持在更新状态并等待server的响应,如果在第二个定时器到期时还没有收到server的响应,则client从更新状态转移到重新绑定状态,在转移时,client假定原来的server不可用,并开始广播DHCP REQUEST报文到本地网络上的任意server。可为client提供服务的任意server可能响应肯定(即延长租用),或否定(即拒绝继续使用地址)。如果client收到一个肯定响应,它就返回到BOUND状态并重置两个定时器。如果client收到否定响应,它就转移到INITIALIZE状态,并且停止使用IP地址,在继续使用IP地址前必须重新获取一个新地址。
如果client在重新绑定状态广播请求报文后,在第三个定时器到期时还没有从任何一个server收到响应,则client必须停止使用IP地址,返回到INITIALIZE状态,并重新开始申请一个新地址。
在DHCP协议中,由于client所有的网络配置均是由DHCP server下发的,因而只要DHCP server没有出现故障且网络部署也没有改变时,则client是不会主动更改其网络配置的,这就带来了一些问题,考虑下面的两种组网场景:
如果DHCP server同时也是分配给client使用的网关服务器,那么一旦此服务器发生故障,必然导致经其配置的client不能上网,并且一直持续到client进入重绑定状态时,然后client便会认为原来的服务器不可用,进而重新发送DHCP DISCOVER报文以开始新一轮的网络接入流程,此时若网络上还有其他的DHCP server可用,则client可以获取到新的网络配置并正常接入网络。在这种场景下,最糟糕的情况发生在client刚刚获取到网络配置,DHCP server就出现故障,此时client若不重启,则必须等待八分之七个租约,而在现实组网中,租约一般都为24小时,则对于用户来说将几乎一整天都不能上网。
如果DHCP server与分配给client使用的网关服务器分离,那么一旦网关服务器发生故障,情况要更加糟糕:由于DHCP server对于与其配套的网关服务器是否处于正常工作状态并不知情,因而一旦网关服务器发生故障后,DHCP server不会自行调整配置,那么所有经此DHCP server配置的client均不能上网,并且对于client来说,没有任何方法可以自我修复(这一点与场景1不同),即便网络上还有其他可用的DHCP server与网关服务器。
发明内容
本发明所要解决的技术问题是:克服现有技术中存在的当网关设备出现故障时,client无法进行自动监测和修复的问题和缺陷,提供一种能在DHCP部署环境下,网络连接保活方法和装置。
为了解决上述问题,本发明提供了一种DHCP动态地址配置下网络连接保活方法,包括:
客户端通过动态主机配置协议接入网络后,监测当前网络的连接;当监测到网络连接故障时,释放当前使用的网络配置,重新通过动态主机配置协议进行网络接入。
进一步的,上述方法还可具有以下特点,所述监测当前网络的连接包括:周期性监测当前网络的连接。
进一步的,上述方法还可具有以下特点,所述方法还包括:所述客户端还维护一黑名单,在所述客户端通过动态主机配置协议进行网络接入时,拒绝接受所述黑名单上的动态主机配置协议服务器提供的服务。
进一步的,上述方法还可具有以下特点,所述方法还包括:所述客户端监测到网络连接故障时,将当前关联的动态主机配置协议服务器加入所述黑名单。
进一步的,上述方法还可具有以下特点,所述方法还包括,当所述黑名单上的动态主机配置协议服务器满足预设的老化条件时,将所述动态主机配置协议服务器从所述黑名单中删除。
本发明还提供一种DHCP动态地址配置下网络连接保活装置,包括:
动态主机配置协议模块,用于通过动态主机配置协议进行网络接入;
网络连接监测模块,用于在接入网络后,监测当前网络的连接;
网络配置调整模块,用于当网络连接监测模块监测到网络连接故障时,释放当前使用的网络配置,指示动态主机配置协议模块重新通过动态主机配置协议进行网络接入。
进一步的,上述装置还可具有以下特点,所述网络连接监测模块是用于周期性监测当前网络的连接。
进一步的,上述装置还可具有以下特点,所述装置还包括黑名单管理模块,用于维护一黑名单;
所述动态主机配置协议模块还用于:在通过动态主机配置协议进行网络接入时,拒绝接受所述黑名单上的动态主机配置协议服务器提供的服务。
进一步的,上述装置还可具有以下特点,所述黑名单管理模块还用于:在所述网络连接监测模块监测到网络连接故障时,将当前关联的动态主机配置协议服务器加入所述黑名单。
进一步的,上述装置还可具有以下特点,所述黑名单管理模块还用于:当所述黑名单上的动态主机配置协议服务器满足预设的老化条件时,将该动态主机配置协议服务器从所述黑名单中删除。
采用本发明所述方法和装置,与现有技术相比,主要增加了网络连接监测模块和网络配置调整模块,从而使得client能对当前网络环境的实时状况作出反应与调整,提高了网络配置的健壮性以及对于连接故障的自我修复能力,从而节省了网络管理员人为查找故障并解决的精力以及用户等待网络连接人为修复的时间。
附图说明
图1是DHCP client使用DHCP协议获取IP地址从而接入网络时的状态迁移图;
图2是带有会话保活机制的DHCP client在现实应用中的组网图;
图3是本发明DHCP动态地址配置下网络连接保活装置;
图4是带有会话保活机制的DHCP client的工作流程图。
具体实施方式
本发明采用以下技术方案:
如图2,3所示:
在服务器端,进行DHCP协议模块的实现与网络部署;
在客户端包括:
DHCP协议模块,用于实现DHCP环境下客户端接入网络的功能;通过动态主机配置协议进行网络接入;
网络连接监测模块,用于在接入网络后,监测当前网络的连接;
网络配置调整模块,用于当网络连接监测模块监测到网络连接故障时,进行网络配置调整的策略,包括:释放当前使用的网络配置,指示DHCP协议模块重新通过动态主机配置协议进行网络接入。
其中,所述网络连接监测模块是用于周期性监测当前网络的连接。
所述装置还包括黑名单管理模块,用于维护一黑名单,以及,在所述网络连接监测模块监测到网络连接故障时,将当前关联的动态主机配置协议服务器加入所述黑名单。
所述动态主机配置协议模块还用于:在通过动态主机配置协议进行网络接入时,拒绝接受所述黑名单上的动态主机配置协议服务器提供的服务。
所述黑名单管理模块还用于:当所述黑名单上的动态主机配置协议服务器满足预设的老化条件时,将该动态主机配置协议服务器从所述黑名单中删除。
其中服务器端的DHCP协议模块表示需要部署有配置了DHCP协议的服务器,以在网络上提供DHCP服务,同时需要部署多台DHCP server及其配套的网关设备以提供冗余备份机制,因为对于只有一套服务设备的网络环境来说,如果服务设备发生故障,则client毫无任何办法进行网络配置自我调整与网络连接修复。客户端的DHCP协议模块是指在用户端实现DHCP客户端功能,以与DHCP server对接。网络连接监测模块即负责当client通过DHCP协议获取到网络配置信息并成功接入网络后,对与所分配网关服务器的连接状态进行监控,若发现连接出现故障,则通知网络配置调整模块对当前的网络配置进行调整,以达到修复网络连接、再次能够上网的目的。
本发明提供一种DHCP动态地址配置下网络连接保活方法,包括:
客户端通过动态主机配置协议接入网络后,监测当前网络的连接;当监测到网络连接故障时,释放当前使用的网络配置,重新通过动态主机配置协议进行网络接入。
其中,周期性监测当前网络的连接。
其中,所述方法还包括:所述客户端还维护一黑名单,在所述客户端通过动态主机配置协议进行网络接入时,拒绝接受所述黑名单上的动态主机配置协议服务器提供的服务;
其中,所述方法还包括,所述客户端监测到网络连接故障时,将当前关联的动态主机配置协议服务器加入所述黑名单。
其中,所述方法还包括,当所述黑名单上的动态主机配置协议服务器满足预设的老化条件时,将所述动态主机配置协议服务器从所述黑名单中删除。
本发明所述的DHCP部署环境下网络连接保活方法包括以下步骤:
步骤A.在本地网络部署两套及以上的网络服务设备,这里的网络服务设备指的是DHCP server及与之配套的网关服务器;
步骤B.DHCP client通过DHCP协议进行网络接入尝试;
步骤C.若DHCP client成功获取到网络配置参数并接入网络,则启动网络连接监测模块以监控与所分配的网关服务器的连接状态,若网络接入尝试失败,则返回步骤B;
步骤D.若网络连接监测模块发现与所分配的网关服务器的连接正常,则执行步骤E,否则执行步骤F;
步骤E.进行client端DHCP协议的正常维护,并在一定时间后再次启动网络连接监测模块进行网络连接监控,返回步骤D;
步骤F.认为当前的网关服务器不可用,则网络配置调整模块发送DHCPRELEASE报文给当前关联的DHCP Server,释放当前所使用的网络配置,并将此DHCP server加入黑名单以便在以后的网络接入尝试中不会再次接受其提供的服务,重新转入步骤B。
下面结合附图对技术方案的实施作进一步的详细描述。
如图4所示,带有保活机制的DHCP客户端的具体实现方式如下:
步骤1:首先,DHCP客户端启动时创建一个黑名单列表,用以对故障的DHCP服务器进行记录,然后开始发送DHCP DISCOVER报文;
其中,设置老化条件,当黑名单列表中的DHCP服务器满足老化条件时,将该DHCP服务器从黑名单列表中删除;
本实施例中,老化条件具体可为:为每个黑名单条目对应的DHCP服务器均设置一个定时器,将定时器时间到达的DHCP服务器从黑名单列表中删除。也可根据需要设置其他老化条件,本发明对此不作限定。
步骤2:收到DHCP OFFER报文后,查找回应此报文的DHCP server是否在黑名单中,同时更新黑名单列表,即对黑名单列表进行遍历,并检查其定时器是否已超时,若超时,则删除此黑名单条目,若没有超时,则检查其是否是当前回应DHCP OFFER报文的DHCP server;然后处理下一条黑名单条目直至遍历完成;
步骤3:根据黑名单查找操作返回的结果,若此DHCP server在黑名单中,则对于之前收到的DHCP OFFER报文不予理睬,并开始处理其他DHCPserver回应的DHCP OFFER报文,如果长时间没有再收到其他的DHCPOFFER回应报文,则再次重新发送DHCP DISCOVER报文并等待网络上的DHCP server的响应,若此DHCP server不在黑名单中,则向此DHCP server发送DHCP REQUEST报文以请求网络参数配置;
步骤4:在收到服务器的DHCPACK报文,获取了网络配置参数后,DHCPclient启动一个进程(连接状况监测进程),向分配的网关服务器定期发送ICMP(Internet控制报文协议)Echo(ping)request报文,若连续一定次数收不到网关服务器的ICMP Echo(ping)reply报文的话,则认为此网关服务器发生故障,向获得租用处的DHCP server发送DHCP RELEASE报文以释放当前网络配置,同时将此DHCP server加入黑名单中,并对黑名单中的其余条目进行老化更新,也可以不在此时进行老化更新,在接收到DHCP OFFER时进行老化更新,此时该连接状况监测进程任务完成并退出,DHCP client返回到初始化状态,重新发送DHCP DISCOVER报文。
对黑名单列表进行更新的方式也可以在定时器定时时间到达时自动将对应的DHCP服务器从黑名单列表中删除。或者采取定时更新的方式。本发明对此不作限定。
采用本发明所述方法和装置,与现有技术相比,主要增加了网络连接监测模块和网络配置调整模块,从而使得client能对当前网络环境的实时状况作出反应与调整,提高了网络配置的健壮性以及对于连接故障的自我修复能力,从而节省了网络管理员人为查找故障并解决的精力以及用户等待网络连接人为修复的时间。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。