背景技术
DHCP采用客户端/服务器通信模式,由DHCP客户端向DHCP服务器提出配置申请,DHCP服务器返回为DHCP客户端分配的因特网协议(IP)地址等相应的配置信息,以实现IP地址等信息的动态配置,具体可参见图1所示的动态获取IP地址方法的工作流程图。如图1所示,该流程包括:
步骤101:DHCP客户端将DHCP发现(DISCOVER)报文以广播方式发送给DHCP服务器。
步骤102:DHCP服务器接收到DHCP DISCOVER报文后,根据IP地址分配的优先次序选择一个IP地址,并将选择出的IP地址通过DHCP提供(OFFER)报文发送给客户端。
步骤103:DHCP客户端在接收到DHCP OFFER报文后,以广播的方式向DHCP服务器发送DHCP请求(REQUEST)报文,该DHCP REQUEST报文中包含DHCP服务器为DHCP客户端选择出的IP地址。
需要说明的是,在本步骤中,当有多台DHCP服务器向DHCP客户端发送DHCP OFFER报文、即DHCP客户端收到多个DHCP OFFER报文时,DHCP客户端选择其中一个服务器发送的DHCP OFFER报文。
步骤104:被DHCP客户端选择了DHCP OFFER报文的DHCP服务器接收到DHCP REQUEST报文后,如果确认将步骤102中选择出的IP地址分配给该DHCP客户端,则向DHCP客户端返回DHCP肯定应答(ACK)报文;否则,向DHCP客户端返回DHCP否定应答(NACK)报文。
需要说明的是,当DHCP客户端收到DHCP ACK报文时,就会使用DHCP服务器为该DHCP客户端选择的IP地址;否则,该DHCP客户端需要返回执行步骤101,以重新获取IP地址。
还需说明的是,DHCP客户端获取到IP地址后,DHCP服务器需要为每一个DHCP客户端所申请到的IP地址记录时间租约,当租约时间到期以后,由DHCP客户端通过发送DHCP续约报文向DHCP服务器进行续约,如果续约成功,DHCP客户端可以继续使用该IP地址;如果续约失败或者租约到期时DHCP客户端没有进行续约,DHCP服务器删除对应的租约,并允许将该IP地址分配给其他DHCP客户端。
步骤105:DHCP客户端对IP地址使用结束以后,以单播方式向DHCP服务器发送DHCP释放(RELEASE)报文,以便DHCP服务器回收该资源供其他DHCP客户端使用。
至此,即完成了现有动态获取IP地址方法的整个工作流程,该流程主要应用于如图2所示的组网示意图,即包含一台DFCP服务器和两台以上的DHCP客户端的组网中。
然而,当网络中的这台DHCP服务器故障时,整个网络都要承受因故障而导致网络业务中断的风险,为此,目前主要采用了如图3所示的双机热备结构。如图3所示,在DHCP服务器A和DHCP服务器B之间建立备份链路,通过建立的备份链路备份对端DHCP服务器上的业务,由此,当一台DHCP服务器故障时,业务数据也能够从对端DHCP服务器上通过,从而在很大程度上避免了网络业务的中断。
通过上述分析可以看出,采用双机热备能够避免由于DHCP服务器故障带来的网络业务的中断,然而,一方面,采用双机热备时需要建立备份链路,而备份链路又依赖于***热备技术,对于不具备热备技术的网络是不适用的;另一方面,双机热备只能在两个DHCP服务器之间进行备份,对于多于两个的DHCP服务器的网络也是不适用的。
发明内容
有鉴于此,本发明提供了一种DHCP服务器备份方法,能够实现两个以上DHCP服务器的备份,而且无需建立备份链路。
本发明还提供了一种DHCP服务器,能够实现两个以上DHCP服务器的备份,而且无需建立备份链路。
为了达到上述目的,本发明提出的技术方案为:
一种动态主机配置协议DHCP服务器备份方法,该方法包括:
记录一个以上的其它DHCP服务器的因特网协议IP地址,并将记录的其它DHCP服务器作为信任服务器;
当接收到DHCP客户端发送的DHCP发现DISCOVER报文时,为该DHCP客户端分配IP地址,并将所述分配的IP地址记录为临时租约;
当接收到DHCP客户端发送的DHCP请求REQUEST报文时,判断自身或信任服务器是否为DHCP REQUEST报文中的服务器身份标识Server ID对应的服务器,如果是自身,将临时租约记录为有效租约,如果是信任服务器,删除临时租约,并将该信任服务器为DHCP客户端分配的IP地址记录为有效租约;否则,删除对应的临时租约。
该方法进一步包括:
当接收到DHCP客户端发送的DHCP检测DECLINE报文时,判断自身是否为DHCP DECLINE报文中的Server ID对应的服务器,如果是,删除对应的有效租约,并将删除的有效租约中的IP地址记录为冲突IP地址;否则,删除对应的有效租约;
该方法进一步包括:
当接收到DHCP客户端发送的DHCP释放RELEASE报文时,判断自身是否为DHCP RELEASE报文中的Server ID对应的服务器,如果是,删除对应的有效租约,将该报文发送给信任服务器;否则,删除对应的有效租约。
该方法进一步包括:
当接收到DHCP客户端发送的DHCP续约报文时,判断自身是否为DHCP续约报文中的Server ID对应的服务器,如果是,更新对应的有效租约,同时将该报文发送给信任服务器;否则,更新对应的有效租约。
当有新的信任服务器加入时,该方法进一步包括:
接收该信任服务器发送的租约批量同步请求,将所述租约批量同步给该信任服务器。
所述租约批量同步请求和所述租约批量同步都通过DHCP报文发送。
一种动态主机配置协议DHCP服务器,该DHCP服务器包括:备份记录单元、临时租约记录单元和临时租约处理单元,其中,
所述备份记录单元,用于记录一个以上的其它DHCP服务器的因特网协议IP地址,并将记录的其它DHCP服务器作为信任服务器;
所述临时租约记录单元,用于当接收到DHCP客户端发送的DHCP发现DISCOVER报文时,为该DHCP客户端分配IP地址,并将所述分配的IP地址记录为临时租约;
所述临时租约处理单元,用于当接收到DHCP客户端发送的DHCP请求REQUEST报文时,判断备份记录单元中的自身或信任服务器是否为DHCPREQUEST报文中的服务器身份标识Server ID对应的服务器,如果是自身,将所述临时租约记录单元记录的临时租约记录为有效租约,如果是信任服务器,删除所述临时租约记录单元记录的临时租约,并将该信任服务器为DHCP客户端分配的IP地址记录为有效租约;否则,删除所述临时租约记录单元记录的临时租约。
该DHCP服务器还包括第一有效租约删除单元,用于当接收到DHCP客户端发送的DHCP检测DECLINE报文时,判断所述备份记录单元中的自身是否为DHCP DECLINE报文中的Server ID对应的服务器,如果是,删除所述临时租约处理单元对应的有效租约,并将删除的有效租约中的IP地址记录为冲突IP地址;否则,删除所述临时租约处理单元对应的有效租约。
该DHCP服务器还包括第二有效租约删除单元,用于当接收到DHCP客户端发送的DHCP释放RELEASE报文时,判断所述备份记录单元中的自身是否为DHCP RELEASE报文中的Server ID对应的服务器,如果是,删除所述临时租约处理单元对应的有效租约,将该报文发送给备份服务器;否则,删除所述临时租约处理单元对应的有效租约。
该DHCP服务器还包括有效租约更新单元,用于当接收到DHCP客户端发送的DHCP续约报文时,判断所述备份记录单元中的自身是否为DHCP续约报文中的Server ID对应的服务器,如果是,更新所述临时租约处理单元对应的有效租约,同时将该报文发送给备份服务器;否则,更新所述临时租约处理单元对应的有效租约。
该DHCP服务器还包括租约批量同步单元,用于当有新的信任服务器加入时,接收该信任服务器发送的租约批量同步请求,将所述租约批量同步给该信任服务器。
综上所述,本发明所采用的DHCP服务器备份方法和DHCP服务器,是通过事先在一个服务器中记录了IP地址的一个以上的其它DHCP服务器为信任服务器,当服务器接收到DHCP DISCOVER报文时,为该DHCP客户端分配IP地址,并将所述分配的IP地址记录为临时租约,并在接收到DHCPREQUEST报文时,能够根据该报文中的Server ID与事先指定的服务器的ID确定出是将临时租约记录为有效租约还是删除该临时租约。由于本发明在一个服务器中指定了一个以上的信任服务器,且能够根据服务器的ID与DHCP报文中的Server ID的关系对租约进行正确的处理,因此,当其中一个服务器发生异常时,其它信任服务器由于记录该异常服务器分配的租约,也就能够继续为客户端服务,并且不会给客户端分配冲突的IP地址,从而不仅实现了两个以上DHCP服务器的备份,而且无需在服务器间建立备份链路。
具体实施方式
为了解决本发明提出的技术问题,本发明所述方案的具体实现包括:
记录一个以上的其它DHCP服务器的IP地址,并将记录的其它DHCP服务器作为信任服务器;当接收到DHCP客户端发送的DHCP DISCOVER报文时,为该DHCP客户端分配IP地址,并将所述分配的IP地址记录为临时租约;当接收到DHCP客户端发送的DHCP REQUEST报文时,判断自身或信任服务器是否为DHCP REQUEST报文中的Server ID对应的服务器,如果是自身,将临时租约记录为有效租约,如果是信任服务器,删除临时租约,并将该信任服务器为DHCP客户端分配的IP地址记录为有效租约;否则,删除对应的临时租约。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
图4为本发明所采用的DHCP服务器备份方法的工作流程图。如图4所示,该流程包括:
步骤401:记录一个以上的其它DHCP服务器的因特网协议IP地址,并将记录的其它DHCP服务器作为信任服务器。
需要说明的是,在本实施例中,需要网络中的一个DHCP服务器将一个以上的其它DHCP服务器指定为信任服务器,且这种操作在服务器间是相互的,假设DHCP服务器A指定了DHCP服务器B、C、D为信任服务器,则DHCP服务器B也指定了DHCP服务器A、C、D为信任服务器,DHCP服务器C也指定了DHCP服务器A、B、D为信任服务器,DHCP服务器D也指定了DHCP服务器A、B、C为信任服务器。
步骤402:DHCP客户端以广播方式向DHCP服务器发送DHCPDISCOVER报文,以寻找DHCP服务器。
步骤403:DHCP服务器收到DHCP DISCOVER报文后,通过DHCPOFFER报文将为客户端分配的IP地址发送给客户端后,将为该客户端分配的IP地址记录为临时租约。
在本步骤中,所述临时租约包括客户端的MAC地址和为该客户端分配的IP地址。
在为客户端记录了临时租约后,当后续接收到DHCP客户端发送的DHCP报文时,即可根据DHCP报文中的ID对应的DHCP服务器,确定出将临时租约记录为有效租约或删除临时租约,具体可参见步骤404-413,以下分别介绍:
步骤404:DHCP客户端收到DHCP OFFER报文后,以广播的方式向DHCP服务器发送DHCP REQUEST报文。
步骤405:接收到DHCP REQUEST报文的DHCP服务器有三种处理方式:当自身为DHCP REQUEST报文中的Server ID对应的服务器时,将临时租约记录为有效租约;当自身中的某个信任服务器为DHCP REQUEST报文中的Server ID对应的服务器时,删除临时租约,并将该信任服务器为客户端分配的IP地址(也即对应DHCP REQUEST报文中的Request IP)记录为有效租约;否则,删除报文对应的临时租约。
由于在一个服务器中记录了信任服务器的租约,因此,当其中一个服务器发生异常的时候,其它信任服务器可以根据记录的异常服务器的租约,继续为客户端服务,并且不会分配冲突的IP地址。
步骤406:DHCP REQUEST报文中的ID对应的DHCP服务器向DHCP客户端发送DHCP ACK报文。
步骤407:收到DHCP ACK报文后,DHCP客户端向其它DHCP客户端发送地址解析协议(ARP)报文,以解析有效租约中的IP地址是否可用。
步骤408:当收到ARP报文的回馈后,向DHCP服务器发送DHCP检测(DECLINE)报文。
需要说明的是,如果DHCP客户端收到ARP报文的回馈,说明该有效租约中的IP地址已被其它DHCP客户端使用。
步骤409:接收到DHCP DECLINE报文时:当自身为DHCP DECLINE报文中的Server ID对应的服务器时,删除报文对应的有效租约,并将删除的有效租约中的IP地址记录为冲突IP地址;当自身中的某个信任服务器为DHCP DECLINE报文中的Server ID对应的服务器时,删除报文对应的有效租约;否则,DHCP服务器不做任何处理。
需要说明的是,当DHCP服务器收到DHCP DECLINE报文,说明为DHCP客户端分配的IP地址已经被占用(与为其他DHCP客户端分配的IP地址有冲突),因此,需要重新为DHCP客户端分配IP地址。
步骤410:当DHCP客户端不再使用有效租约中的IP地址时,向DHCP服务器发送DHCP释放(RELEASE)报文。
步骤411:接收到DHCP RELEASE报文时:当自身为DHCP RELEASE报文中的Server ID对应的服务器时,删除报文对应的有效租约,同时将该报文发送给备份服务器;当自身中的某个信任服务器为DHCP RELEASE报文中的Server ID对应的服务器时,删除报文对应的有效租约。
由于DHCP RELEASE报文为单播报文,因此,当DHCP服务器自身为DHCP RELEASE报文中的Server ID对应的服务器时,删除报文对应的有效租约的同时,还需将该报文转发给自身的信任服务器。
步骤412:当DHCP客户端还继续使用有效租约中的IP地址时,向DHCP服务器发送DHCP续约报文。
步骤413:接收到DHCP续约报文时:当自身为DHCP续约报文中的Server ID对应的服务器时,更新报文对应的有效租约,同时将该报文发送给备份服务器;当自身中的某个信任服务器为DHCP续约报文中的Server ID对应的服务器时,更新报文对应的有效租约。
同步骤411中的DHCP RELEASE报文一样,DHCP续约报文也为单播报文,因此,当DHCP服务器自身为DHCP RELEASE报文中的Server ID对应的服务器时,也需将该报文转发给备份服务器。
至此,即完成了本发明DHCP服务器备份方法的整个工作流程。
需要说明的是,在本实施例中,当有DHCP服务器重启或有新的DHCP服务器加入信任服务器时,还需要将所有信任服务器的租约进行同步,即由重启服务器或新加入的服务器向其中一个服务器请求租约,具体可以为:
1)通过增加新的DHCP报文、如DHCP请求批量租约(BINDREQUEST)报文,向服务器请求租约;2)在现有的报文中增加新的选项,以用于向DHCP服务器请求租约。实际中,还可采用其他方式来使租约同步到重启的服务器或新加入的信任服务器中,具体以实际实现为准。
还需说明的是,在实际实现时,真正的租约同步是通过TFTP或者FTP同步的,具体为:DHCP服务器将租约记录在一个本地文件中,当收到租约同步请求时,将自身的IP地址和文件名称(包括所在路径)通过DHCP应答反馈给DHCP服务器中的请求服务器;请求服务器根据这些信息发起TFTP或者FTP请求获取租约文件,获取成功后解析文件中记录的租约并记录在本地。
基于上述方法,图5给出了本发明所采用的DHCP服务器的结构。如图5所示,该DHCP服务器包括备份记录单元51、临时租约记录单元52和临时租约处理单元53,其中,
所述备份记录单元51,用于记录一个以上的其它DHCP服务器的IP地址,并将记录的其它DHCP服务器作为信任服务器。
所述临时租约记录单元52,用于当接收到DHCP客户端发送的DHCP发现DISCOVER报文时,为该DHCP客户端分配IP地址,并将所述分配的IP地址记录为临时租约。
所述临时租约处理单元53,用于当接收到DHCP客户端发送的DHCP请求REQUEST报文时,判断备份记录单元51中的自身或信任服务器是否为DHCP REQUEST报文中的Server ID对应的服务器,如果是自身,将所述临时租约记录单元52记录的临时租约记录为有效租约,如果是信任服务器,删除所述临时租约记录单元52记录的临时租约,并将该信任服务器为DHCP客户端分配的IP地址记录为有效租约;否则,删除所述临时租约记录单元52记录的临时租约。
进一步地,该备份服务器还包括第一有效租约删除单元54,用于当接收到DHCP客户端发送的DHCP DECLINE报文时,判断所述备份记录单元51中的自身是否为DHCP DECLINE报文中的Server ID对应的服务器,如果是,删除所述临时租约处理单元53对应的有效租约,并将删除的有效租约中的IP地址记录为冲突IP地址;否则,删除所述临时租约处理单元53对应的有效租约。
该备份服务器还包括第二有效租约删除单元55,用于当接收到DHCP客户端发送的DHCP RELEASE报文时,判断所述备份记录单元51中的自身是否为DHCP RELEASE报文中的Server ID对应的服务器,如果是,删除所述临时租约处理单元53对应的有效租约,将该报文发送给备份服务器;否则,删除所述临时租约处理单元53对应的有效租约。
该备份服务器还包括有效租约更新单元56,用于当接收到DHCP客户端发送的DHCP续约报文时,判断所述备份记录单元51中的自身是否为DHCP续约报文中的Server ID对应的服务器,如果是,更新所述临时租约处理单元53对应的有效租约,同时将该报文发送给备份服务器;否则,更新所述临时租约处理单元53对应的有效租约。
该备份服务器还包括租约批量同步单元57,用于当有新的信任服务器加入时,接收该信任服务器发送的租约批量同步请求,将所述租约批量同步给该信任服务器。
其中,所述租约批量同步请求和所述租约批量同步都通过DHCP报文发送。
至此,即得到了本发明所采用的DHCP服务器。图5所述DHCP服务器的具体工作流程可参见图4,这里不再赘述。
以下举例说明本发明一个DHCP服务器发生异常时DHCP服务器备份的过程:假设网络中有服务器a和服务器b,都可以分配地址1~10:
当没有备份机制时,服务器a分配了地址1~3,4~10记录为未分配的地址,服务器b分配了地址7~10,地址1~6记录为未分配地址,此时,如果服务器a异常,只有服务器b能工作,那么可能出现两种错误:1、地址1~3的客户端续约时会失败,客户端需要重新申请地址;2、服务器b可能会将地址1~3尝试分配,分配会失败。
当采用本发明的多机备份时,服务器a和b都会记录地址1~3和7~10是已经分配租约,因而,也就避免了上述两个问题的出现,成功实现了备份。
总之,本发明所采用的DHCP服务器备份方法和DHCP服务器,是通过事先在一个服务器中记录了IP地址的一个以上的其它DHCP服务器为信任服务器,当服务器接收到DHCP DISCOVER报文时,为该DHCP客户端分配IP地址,并将所述分配的IP地址记录为临时租约,并在接收到DHCPREQUEST报文时,能够根据该报文中的Server ID与事先指定的服务器的ID确定出是将临时租约记录为有效租约还是删除该临时租约。由于本发明在一个服务器中指定了一个以上的信任服务器,且能够根据服务器的ID与DHCP报文中的Server ID的关系对租约进行正确的处理,因此,当其中一个服务器发生异常时,其它信任服务器由于记录该异常服务器分配的租约,也就能够继续为客户端服务,并且不会给客户端分配冲突的IP地址,从而不仅实现了两个以上DHCP服务器的备份,而且无需在服务器间建立备份链路。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。