本发明涉及通信领域,尤其涉及一种dhcp服务器中租约信息的备份方法及系统。
背景技术:
dhcp(dynamichostconfigurationprotocol,动态主机配置协议)为互联网上主机提供地址和配置参数。随着互联网的发展,网络安全也成为一个重要的课题。dhcp服务器作为网络中重要的元素之一,其安全性和稳定性也成为一个网络健壮性的考量标准。所以,dhcp服务器的备份功能就显得尤为重要。dhcp为客户提供动态分配地址的服务,备份功能的重中之重就体现在备份用户获取到的租约信息。
申请号为201110284157.8的专利文献提供一种动态主机配置协议dhcp服务器备份方法,该方法包括:记录一个以上的其它dhcp服务器的ip地址,并将记录的其它dhcp服务器作为信任服务器;当接收到dhcp客户端发送的dhcpdiscover报文时,为该dhcp客户端分配ip地址,并将所述分配的ip地址记录为临时租约;当接收到dhcp客户端发送的dhcprequest报文时,判断自身或信任服务器是否为dhcprequest报文中的serverid对应的服务器,如果是自身,将临时租约记录为有效租约,如果是信任服务器,删除临时租约,并将该信任服务器为dhcp客户端分配的ip地址记录为有效租约;否则,删除对应的临时租约。实现两个以上dhcp服务器的备份,而且无需建立备份链路。
但是,上述专利文献只提供了热备份的租约信息备份方式,当由于网络环境等原因造成丢包等异常情况时,dhcp主服务器中的租约信息备份不完整。
技术实现要素:
本发明所要解决的技术问题是:提供一种dhcp租约信息备份方法及系统,实现在保证租约信息备份及时性的同时,提高了租约信息备份的完整性。
为了解决上述技术问题,本发明采用的技术方案为:
本发明提供一种dhcp服务器中租约信息的备份方法,包括:
s1、主用dhcp服务器为客户机分配ip地址,得到租约信息;所述租约信息包括所述ip地址及所述ip地址的有效期限;
s2、根据所述租约信息更新所述主用dhcp服务器中预设的第一数据表和备用dhcp服务器中预设的第二数据表;
s3、预设第一时间间隔根据所述第一数据表更新所述第二数据表。
本发明还提供一种dhcp服务器中租约信息的备份系统,包括:
分配模块,用于主用dhcp服务器为客户机分配ip地址,得到租约信息;所述租约信息包括所述ip地址及所述ip地址的有效期限;
第一更新模块,用于根据所述租约信息更新所述主用dhcp服务器中预设的第一数据表和备用dhcp服务器中预设的第二数据表;
第二更新模块,用于预设第一时间间隔根据所述第一数据表更新所述第二数据表。
本发明的有益效果在于:当主用dhcp服务器为客户机分配ip地址时,备用dhcp服务器实时备份与该ip地址对应的租约信息,以提高备份的及时性,使得当主用dhcp服务器宕机时,可立刻使用备用dhcp服务器替代主用dhcp服务器。在备份过程中,若由于网络环境等原因造成租约信息在传输过程中丢失等异常情况,备用dhcp服务器中的租约信息与主用dhcp服务器中的租约信息不一致,因此,定期根据主用dhcp服务器中存储租约信息的数据表更新备用dhcp服务器中存储租约信息的数据表,可提高租约信息备份的完整性。本发明结合实时备份租约信息和定期备份租约信息两种备份方式,在保证租约信息备份及时性的同时,提高了租约信息备份的完整性。
附图说明
图1为本发明提供的一种dhcp租约信息备份方法的具体实施方式的流程框图;
图2为本发明提供的一种dhcp租约信息备份系统的具体实施方式的结构框图;
标号说明:
1、分配模块;2、第一更新模块;3、第二更新模块。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:通过结合实时租约信息备份和定期租约信息备份,在保证租约信息备份及时性的同时,提高了租约信息备份的完整性。
如图1所示,本发明提供一种dhcp服务器中租约信息的备份方法,包括:
s1、主用dhcp服务器为客户机分配ip地址,得到租约信息;所述租约信息包括所述ip地址及所述ip地址的有效期限;
s2、根据所述租约信息更新所述主用dhcp服务器中预设的第一数据表和备用dhcp服务器中预设的第二数据表;
s3、预设第一时间间隔根据所述第一数据表更新所述第二数据表。
进一步地,根据所述租约信息更新备用dhcp服务器中预设的第二数据表,具体为:
存储所述租约信息至预设的队列;
预设第二时间间隔发送所述队列至所述备用dhcp服务器;所述第二时间间隔小于所述第一时间间隔;
根据所述队列中存储的租约信息更新所述第二数据表。
进一步地,根据所述租约信息更新备用dhcp服务器中预设的第二数据表,具体为:
存储所述租约信息至预设的队列;
当所述队列中的元素个数大于预设的元素个数时,发送所述队列至所述备用dhcp服务器;
根据所述队列中存储的租约信息更新所述第二数据表。
由上述描述可知,实现节约备份通道资源,使租约信息更加高效和合理的被同步到备用dhcp服务器中。
进一步地,所述s3具体为:
设置预设的更新类型为预设第一值;
根据所述第一数据表差异更新所述第二数据表;
设置所述更新类型为预设第二值;
当所述更新类型为所述第一值时,拒收所述主用dhcp服务器发送的租约信息。
由上述描述可知,在根据所述第一数据表差异更新所述第二数据表的过程中,拒收所述主用dhcp服务器发送的租约信息,以避免差异更新时由于时序紊乱造成重复添加同一租约信息至第二数据表中或将由主用dhcp服务器实时推送的租约信息遗漏。
进一步地,所述s1之前还包括:
s01、所述主用dhcp服务器与所述备用dhcp服务器建立连接,得到反馈信息;
s02、当所述反馈信息为连接成功时,
s03、依次从所述第一数据表中获取预设个数租约信息,形成租约信息集合;
s04、发送所述租约信息集合至所述备用dhcp服务器;
s05、重复步骤s03至s04,直至所述第一数据表中的所有租约信息均已发送至所述备用dhcp服务器。
由上述描述可知,当确认主用dhcp服务器和备用dhcp服务器通信连接成功时,才执行备份租约信息的操作,能够避免备用dhcp服务器无法接收到主用dhcp服务器发送的租约信息,提高租约信息备份的完整性。当主用dhcp服务器和备用dhcp服务器通信连接成功后,先批量备份租约信息以提高租约信息备份的效率。
如图2所示,本发明还一种dhcp服务器中租约信息的备份系统,包括:
分配模块1,用于主用dhcp服务器为客户机分配ip地址,得到租约信息;所述租约信息包括所述ip地址及所述ip地址的有效期限;
第一更新模块2,用于根据所述租约信息更新所述主用dhcp服务器中预设的第一数据表和备用dhcp服务器中预设的第二数据表;
第二更新模块3,用于预设第一时间间隔根据所述第一数据表更新所述第二数据表。
进一步地,所述第一更新模块包括:
第一存储单元,用于存储所述租约信息至预设的队列;
第一发送单元,用于预设第二时间间隔发送所述队列至所述备用dhcp服务器;所述第二时间间隔小于所述第一时间间隔;
第一更新单元,用于根据所述队列中存储的租约信息更新所述第二数据表。
进一步地,所述第一更新模块包括:
第二存储单元,用于存储所述租约信息至预设的队列;
第二发送单元,用于当所述队列中的元素个数大于预设的元素个数时,发送所述队列至所述备用dhcp服务器;
第二更新单元,用于根据所述队列中存储的租约信息更新所述第二数据表。
进一步地,所述第二更新模块包括:
第一设置单元,用于设置预设的更新类型为预设第一值;
第三更新单元,用于根据所述第一数据表差异更新所述第二数据表;
第二设置单元,用于设置所述更新类型为预设第二值;
拒收单元,用于当所述更新类型为所述第一值时,拒收所述主用dhcp服务器发送的租约信息。
进一步地,还包括:
连接模块,用于所述主用dhcp服务器与所述备用dhcp服务器建立连接,得到反馈信息;
第三发送单元,用于当所述反馈信息为连接成功时,依次从所述第一数据表中获取预设个数租约信息,形成租约信息集合;发送所述租约信息集合至所述备用dhcp服务器;直至所述第一数据表中的所有租约信息均已发送至所述备用dhcp服务器。
由上述描述可知,本发明提供的一种dhcp服务器中租约信息的备份系统,实现在保证租约信息备份及时性的同时,提高了租约信息备份的完整性。
本发明的实施例一为:
s1、所述主用dhcp服务器与所述备用dhcp服务器建立连接,得到反馈信息;
s2、当所述反馈信息为连接成功时,依次从所述第一数据表中获取预设个数租约信息,形成租约信息集合;发送所述租约信息集合至所述备用dhcp服务器;直至所述第一数据表中的所有租约信息均已发送至所述备用dhcp服务器;
s3、主用dhcp服务器为客户机分配ip地址,得到租约信息;所述租约信息包括所述ip地址及所述ip地址的有效期限;
s4、根据所述租约信息更新所述主用dhcp服务器中预设的第一数据表和备用dhcp服务器中预设的第二数据表;
其中,根据所述租约信息更新备用dhcp服务器中预设的第二数据表,为以下两种实施方式的其中一种,或两种的结合:
方式一:存储所述租约信息至预设的队列;预设第二时间间隔发送所述队列至所述备用dhcp服务器;所述第二时间间隔小于所述第一时间间隔;根据所述队列中存储的租约信息更新所述第二数据表。
方式二:存储所述租约信息至预设的队列;当所述队列中的元素个数大于预设的元素个数时,发送所述队列至所述备用dhcp服务器;根据所述队列中存储的租约信息更新所述第二数据表。
s5、预设第一时间间隔根据所述第一数据表更新所述第二数据表;具体为:设置预设的更新类型为预设第一值;根据所述第一数据表差异更新所述第二数据表;设置所述更新类型为预设第二值;当所述更新类型为所述第一值时,拒收所述主用dhcp服务器发送的租约信息。
本发明的实施例二为:
主备用dhcp服务器之间建立备份链路。并且主备用dhcp服务器可以是两台设备,也可以是同一台设备中的两个server。主用dhcp服务器在建立备份链路的过程中添加超时事件,以保证备份链路成功被建立起来能够正常通信后再确立是否是真正的处于就绪状态。并且备份通信连接刚建立成功的时候,有些配置下发可能导致网络阻塞,所以,超时后重新发送请求也是一种对状态是否就绪的一种保障。
当主备用dhcp服务器建立通信连接成功时,进行批量备份,具体为:将主用dhcp服务器本地的租约信息,先全部写入到同步哈希表中并开始同步。一次同步信息装填的最大租约条目设定为5条(租约信息的范围为1—10条,该发明中优选值为5),装填后发送消息给备用dhcp服务器并添加超时时间等待收取备用dhcp服务器的回包。等待收取到备用dhcp服务器的ack回包后再删除同步哈希表中的相应条目,进行下一条备份信息的装填,直至同步哈希表中的条目均被同步完成。
批量备份完成后,就进入到实时备份的阶段。当主用dhcp服务器更新一条租约信息后将更新的租约信息添加到同步哈希表中,并开始统计同步哈希表中的备份信息条目数lease_count。需要注意的是,这里提到的更新租约信息,可以是新分配一条租约,更新一条已分配的租约,也可以是回收一条租约,具体情况根据dhcp的具体数据包交互决定。
在进入实时备份阶段的同时,主用dhcp服务器会启动一个同步定时器timer_sync,同步定时器的超时时间为10秒(定时器取值范围为1秒——10分钟,该发明中优选值为10秒,既不会太频繁,也能满足租约信息的实时同步)。同步定时器每10秒查询一次同步哈希表,若此时哈希表中存在要备份的条目,则进行一次备份动作,即将哈希表中的备份信息装填到同步信息中发送给备用dhcp服务器并添加超时事件和最大重发次数,该发明中设备的最大重发次数为3次。备用dhcp服务器在超时时间内回复应答给主用dhcp服务器后,主用dhcp服务器删除同步哈希表中的备份条目。需要注意的是,等待回应的超时时间要小于同步定时器的同步时间,设定为3秒,这样做是为了避免两个定时器在超时处理上的冲突。
在使用定时器查询同步哈希表的同时,使用了最大备份数目上报的方式。即当哈希表中的备份条目lease_count增加到最大的备份条目max_backup_num_per_time(本实施例定义为5条)时,而此时同步定时器还未到期,就将哈希表中的所有备份条目(此时备份条目数目应该为max_backup_num_per_time)同步到备用dhcp服务器,同步时仍使用装填同步消息并添加超时时间和最大重发次数的方式发送备份消息,并等待备用dhcp服务器的回应。只有当备用dhcp服务器在规定的重发次数和规定超时时间内回复应答才去删除同步哈希表中的备份信息。并且,同步成功时候要重启一下定时器,因为此时同步哈希表中的数目为空,重启一下同步定时器,让定时器在更远的时间点再去同步,这样不仅提高了备份通道的使用效率,还减少了定时器访问哈希表的次数节省了cpu资源。
当主用dhcp服务器和备用dhcp服务器之间的通信连接建立成功时,主用dhcp服务器会启动一个文件备份定时器timer_file_backup,该定时器超时时间设置为0.5小时(固定时间的取值范围为10分钟—10h,优选值为0.5h,间隔不宜过久,0.5h能够满足文件备份的相对时效性)。当主用dhcp服务器的文件备份定时到期时,主用dhcp服务器将内存中的租约信息以文件的形式写入到文件系统中去。写入成功后,给备用dhcp服务器发送一个文件备份请求信息,请求信息中携带了tftp相关服务信息(如,serverip,filename,file路径等),并让备用dhcp服务器通过tftp协议来主用dhcp服务器获取租约文件。
备用dhcp服务器收到文件备份请求数据后,获取tftpserver的相关信息并启动相关服务,获取主用dhcp服务器上的租约文件。下载完成租约文件之后,备用dhcp服务器将文件中的租约信息和内存中记录的租约信息进行比较,并且以文件中的租约信息为参照修改内存中记录的租约信息。文件备份的这段时间内,备用dhcp服务器不接收主用dhcp服务器发送来的热备份租约请求,直到文件备份完成之后才开始实时备份,确保主用dhcp服务器和备用dhcp服务器之间租约信息的一致性。
综上所述,本发明提供的dhcp租约信息备份方法及系统,当主用dhcp服务器为客户机分配ip地址时,备用dhcp服务器实时备份与该ip地址对应的租约信息,以提高备份的及时性,使得当主用dhcp服务器宕机时,可立刻使用备用dhcp服务器替代主用dhcp服务器。在备份过程中,若由于网络环境等原因造成租约信息在传输过程中丢失等异常情况,备用dhcp服务器中的租约信息与主用dhcp服务器中的租约信息不一致,因此,定期根据主用dhcp服务器中存储租约信息的数据表更新备用dhcp服务器中存储租约信息的数据表,可提高租约信息备份的完整性。本发明结合实时备份租约信息和定期备份租约信息两种备份方式,在保证租约信息备份及时性的同时,提高了租约信息备份的完整性。进一步地,实现节约备份通道资源,使租约信息更加高效和合理的被同步到备用dhcp服务器中。进一步地,在根据所述第一数据表差异更新所述第二数据表的过程中,拒收所述主用dhcp服务器发送的租约信息,以避免差异更新时由于时序紊乱造成重复添加同一租约信息至第二数据表中或将由主用dhcp服务器实时推送的租约信息遗漏。进一步地,当确认主用dhcp服务器和备用dhcp服务器通信连接成功时,才执行备份租约信息的操作,能够避免备用dhcp服务器无法接收到主用dhcp服务器发送的租约信息,提高租约信息备份的完整性。当主用dhcp服务器和备用dhcp服务器通信连接成功后,先批量备份租约信息以提高租约信息备份的效率。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。