一种DHCP客户端更新IP的方法和装置与流程

文档序号:11138876阅读:879来源:国知局
一种DHCP客户端更新IP的方法和装置与制造工艺

本申请涉及通信技术领域,特别涉及一种DHCP客户端更新IP的方法和装置。



背景技术:

网络中主机与外界通信时,需要配置本地的IP地址、网关地址、DNS服务端等网络配置参数。如果选择手工在主机上配置网络配置参数,当主机数量较大时,维护成本高,容易出错,而且不利于管理员统一维护。所以通常在网络中架设DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务端,通过DHCP协议可以实现IP地址重复利用,DHCP服务端可以为主机动态地分配IP地址等网络配置参数。

在现有技术中,在DHCP的交互过程中,DHCP服务端总是处于被动状态,只有当接收到DHCP客户端发送的DHCP Release报文或者IP地址的租约时间到期时,才会回收分配给DHCP客户端的IP地址。

此时如果DHCP地址池的配置信息(比如DHCP地址池的网段地址、网关地址、DNS服务器等信息)被修改,则通常只有等到DHCP客户端更新租约时,DHCP客户端才会请求到新的IP地址以及新的配置信息,在租约到期之前的这段时间内,由于DHCP客户端未及时更新本地的配置信息,可能会无法正常上网。



技术实现要素:

有鉴于此,本申请提供一种DHCP客户端更新IP的方法和装置,用以解决现有技术中,当DHCP地址池的配置信息被修改后,在DHCP客户端获得新的IP地址前的这段时间里,由于DHCP客户端无法获取正确的配置信息而无法正常上网的问题。

具体地,本申请是通过如下技术方案实现的:

一种DHCP客户端更新IP的方法,应用于DHCP服务端,包括:

当DHCP地址池的配置信息被修改后,向DHCP客户端发送携带预设会话ID的DHCP ACK报文;

接收所述DHCP客户端在接收到所述DHCP ACK报文后返回的DHCP Release报文,释放为所述DHCP客户端分配的IP地址;

接收到所述DHCP客户端发出的DHCP Discover报文后,向所述DHCP客户端发送DHCP Offer报文,以向所述DHCP客户端下发新的IP地址以及修改后的DHCP地址池的配置信息。

一种DHCP客户端更新IP的装置,应用于DHCP服务端,包括:

发送单元,用于当DHCP地址池的配置信息被修改后,向DHCP客户端发送携带预设会话ID的DHCP ACK报文;

释放单元,用于接收所述DHCP客户端在接收到所述DHCP ACK报文后返回的DHCP Release报文,释放为所述DHCP客户端分配的IP地址;

所述发送单元,进一步用于接收到所述DHCP客户端发出的DHCP Discover报文后,向所述DHCP客户端发送DHCP Offer报文,以向所述DHCP客户端下发新的IP地址以及修改后的DHCP地址池的配置信息。

一种DHCP客户端更新IP的方法,应用于DHCP客户端,包括:

接收到DHCP服务端在DHCP地址池的配置信息被修改后发送的DHCP ACK报文后,判断所述DHCP ACK报文携带的会话ID是否为预设会话ID;

确定所述DHCP ACK报文携带的会话ID是所述预设会话ID时,向所述DHCP服务端发送DHCP Release报文,以由所述DHCP服务端释放为本地分配的IP地址;

当发送了所述DHCP Release报文后,向所述DHCP服务端发送DHCP Discover报文,以及接收所述DHCP服务端在接收到所述DHCP Discover报文后回应的DHCP Offer报文,并基于接收到的所述DHCP Offer报文中携带的IP地址以及修改后的所述配置信息更新本地的IP地址以及本地的所述配置信息。

在所述DHCP客户端更新IP的方法中,所述向所述DHCP服务端发送DHCP Release报文之前,所述方法还包括:

读取所述DHCP ACK报文的服务端标识字段;

判断读取到的服务端标识与预先记录的所述DHCP服务端的服务端标识是否一致;

如果读取到的服务端标识与预先记录的DHCP服务端的服务端标识一致,确定所述DHCP ACK报文为所述DHCP服务端发送的DHCP ACK报文。

在所述DHCP客户端更新IP的方法中,所述方法还包括:

如果所述DHCP ACK报文携带的会话ID不是所述预设会话ID,则丢弃所述DHCP ACK报文。

在所述DHCP客户端更新IP的方法中,所述方法还包括:

如果读取到的服务端标识与预先记录的所述DHCP服务端的服务端标识不一致,则丢弃所述DHCP ACK报文。

一种DHCP客户端更新IP的装置,应用于DHCP客户端,包括:

判断单元,用于接收到DHCP服务端在DHCP地址池的配置信息被修改后发送的DHCP ACK报文后,判断所述DHCP ACK报文携带的会话ID是否为预设会话ID;

第二发送单元,用于确定所述DHCP ACK报文携带的会话ID是所述预设会话ID时,向所述DHCP服务端发送DHCP Release报文,以由所述DHCP服务端释放为本地分配的IP地址;

更新单元,用于当发送了所述DHCP Release报文后,向所述DHCP服务端发送DHCP Discover报文,以及接收所述DHCP服务端在接收到所述DHCP Discover报文后回应的DHCP Offer报文,并基于接收到的所述DHCP Offer报文中携带的IP地址以及修改后的所述配置信息更新本地的IP地址以及本地的所述配置信息。

在所述DHCP客户端更新IP的装置中,所述判断单元,进一步用于:

读取所述DHCP ACK报文的服务端标识字段;

判断读取到的服务端标识与预先记录的所述DHCP服务端的服务端标识是否一致;

如果读取到的服务端标识与预先记录的DHCP服务端的服务端标识一致,确定所述DHCP ACK报文为所述DHCP服务端发送的DHCP ACK报文。

在所述DHCP客户端更新IP的装置中,所述装置还包括:

第一丢弃单元,用于如果所述DHCP ACK报文携带的会话ID不是所述预设会话ID,则丢弃所述DHCP ACK报文。

在所述DHCP客户端更新IP的装置中,所述装置还包括:

第二丢弃单元,用于如果读取到的服务端标识与预先记录的所述DHCP服务端的服务端标识不一致,则丢弃所述DHCP ACK报文。

在本申请实施例中,当DHCP地址池的配置信息被修改后,DHCP服务端会主动向DHCP客户端发送携带预设会话ID的DHCP ACK报文;DHCP客户端接收到携带预设会话ID的DHCP ACK报文后,向所述DHCP服务端发送DHCP Release报文,以由所述DHCP服务端释放所述DHCP客户端当前的IP,并发送DHCP Discover报文至所述DHCP服务端,请求新的IP地址。所述DHCP服务端接收到DHCP Discover报文后,向所述DHCP客户端发送DHCP Offer报文,使得DHCP客户端获得新IP和新的配置信息。

由于在本申请中,在DHCP地址池的配置信息被修改后,DHCP服务端可以立即向DHCP客户端发送携带预设会话ID的DHCP ACK报文,以触发DHCP客户端主动返回DHCP Release报文和DHCP Discover报文,来释放已经分配的IP地址和申请新的IP地址。因此,DHCP服务端可以将修改后的DHCP地址池的配置信息及时下发给DHCP客户端,从而可以避免由于DHCP客户端需要等待IP租约时间到期后,DHCP服务端才能将修改后的DHCP地址池的配置信息下发给DHCP客户端,而造成DHCP客户端在租约时间到期之前无法正常上网的问题。

附图说明

图1是本申请示出的一种DHCP客户端更新IP的方法的流程图;

图2是本申请示出的另一种DHCP客户端更新IP的方法的流程图;

图3是本申请示出的一种DHCP客户端更新IP的方法的交互图;

图4是本申请示出的一种DHCP客户端更新IP的装置的逻辑框图;

图5是本申请示出的一种DHCP客户端更新IP的装置的硬件结构图;

图6是本申请示出的另一种DHCP客户端更新IP的装置的逻辑框图;

图7是本申请示出的另一种DHCP客户端更新IP的装置的硬件结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。

在现有技术中,在DHCP交互过程中,DHCP总是处于被动状态,当DHCP地址池的配置信息被修改后,通常只有等到DHCP客户端更新租约时,DHCP客户端才会发送报文至DHCP服务端,以请求新的IP地址。在租约到期前,由于DHCP客户端没有更新本地的配置信息,可能会无法正常上网。

例如,假设DHCP服务端的IP地址为192.168.2.254/24,该DHCP服务端对应的DHCP地址池网段是192.168.2.0/24,配置的默认网关是192.168.2.254。

当上述DHCP客户端通过DHCP协议由上述DHCP服务端分配了IP地址(分配的IP地址为192.168.2.5/24)以后,上述DHCP客户端的默认网关就设置为了192.168.2.254。

如果上述DHCP服务端被管理员修改DHCP地址池的配置信息,此时,该DHCP服务端对应的DHCP地址池网段是192.168.3.0/24,配置的默认网关是192.168.3.254,上述DHCP服务端的IP地址变为192.168.3.254/24。而上述DHCP客户端的IP地址仍为192.168.2.5/24,在这种情况下,上述DHCP客户端无法与上述DHCP服务端进行单播通信,无法正常连接到公网。

可见,在现有技术中,只有等租约时间到期后,上述DHCP客户端的IP地址失效,才会发送DHCP Discover报文至DHCP服务端,以由DHCP服务端返回DHCP Offer报文,重新给上述DHCP客户端下发IP地址以及上述DHCP地址池的配置信息。上述DHCP客户端在获得新的IP地址和上述配置信息后,才能正常上网。其中,上述租约时间指的是在DHCP动态分配机制下,DHCP服务端回收分配给DHCP客户端的IP地址的时间,收回的IP地址可以重新分配给其它DHCP客户端使用。

由此可见,在上述DHCP服务端对应的上述DHCP地址池的配置信息被修改,到上述DHCP客户端的租约时间到期以前,上述DHCP客户端是无法正常上网的。

为解决上述问题,本申请实施例的技术方案,在上述DHCP服务端对应的上述DHCP地址池的配置信息被修改时,上述DHCP服务端可以主动向上述DHCP客户端发送携带特殊的会话ID的DHCP ACK报文,以触发上述DHCP客户端主动上报DHCP Release报文,从而可以及时的将修改后的DHCP地址池的配置信息下发给DHCP客户端。其中,特殊的会话ID可以记录在DHCP ACK报文的Xid字段中。

参见图1,为本申请示出的一种DHCP客户端更新IP的方法的流程图,该方法的执行主体是DHCP服务端;所述方法包括以下步骤:

步骤101:当DHCP地址池的配置信息被修改后,向DHCP客户端发送携带预设会话ID的DHCP ACK报文。

步骤102:接收所述DHCP客户端在接收到所述DHCP ACK报文后返回的DHCP Release报文,释放为所述DHCP客户端分配的IP地址。

步骤103:接收到所述DHCP客户端发出的DHCP Discover报文后,向所述DHCP客户端发送DHCP Offer报文,以向所述DHCP客户端下发新的IP地址以及修改后的DHCP地址池的配置信息。

与上述应用于DHCP服务端的DHCP客户端更新IP的方法的流程图对应,参见图2,为本申请示出的另一种DHCP客户端更新IP的方法的流程图,该方法的执行主体是DHCP客户端;所述方法包括以下步骤:

步骤201:接收到DHCP服务端在DHCP地址池的配置信息被修改后发送的DHCP ACK报文后,判断所述DHCP ACK报文携带的会话ID是否为预设会话ID。

步骤202:确定所述DHCP ACK报文携带的会话ID是所述预设会话ID时,向所述DHCP服务端发送DHCP Release报文,以由所述DHCP服务端释放为本地分配的IP地址。

步骤203:当发送了所述DHCP Release报文后,向所述DHCP服务端发送DHCP Discover报文,以及接收所述DHCP服务端在接收到所述DHCP Discover报文后回应的DHCP Offer报文,并基于接收到的所述DHCP Offer报文中携带的IP地址以及修改后的所述配置信息更新本地的IP地址以及本地的所述配置信息。

为更清晰地说明DHCP服务端与DHCP客户端之间的交互过程,参见图3,图3为本申请示出的一种DHCP客户端更新IP的方法的交互图。

在本申请实施例中,当DHCP服务端对应的DHCP地址池的配置信息被修改以后,DHCP服务端可以主动发送携带预设会话ID的DHCP ACK报文至DHCP客户端,以触发DHCP客户端来主动更新IP地址。其中,预设会话ID可以写入上述DHCP ACK报文的Xid字段中。

在本申请实施例中,上述DHCP客户端接收到DHCP ACK报文后,可以读取上述DHCP ACK报文的Xid字段,将读取到的会话ID与本地保存的预设会话ID比较。

一方面,如果读取到的会话ID与本地保存的预设会话ID不同,则可以丢弃上述DHCP ACK报文。

另一方面,如果读取到的会话ID与本地保存的预设会话ID相同,则进一步判断上述DHCP ACK报文是否来自向本地分配IP地址的上述DHCP服务端。上述DHCP客户端可以读取上述DHCP ACK报文的服务端标识字段,获得服务端标识;其中,上述服务端标识字段可以是option54,上述服务端标识可以是DHCP服务端的IP地址。

上述DHCP客户端将读取到的服务端标识与预先记录的上述DHCP服务端的服务端标识进行比较,判断是否一致。

一方面,如果读取到的服务端标识与预先记录的上述DHCP服务端的服务端标识不同,则上述DHCP ACK报文并非来自上述DHCP服务端,此时,可以将上述DHCP ACK报文丢弃。

另一方面,如果读取到的服务端标识与预先记录的上述DHCP服务端的服务端标识相同,则确定上述DHCP ACK报文是上述服务端在DHCP地址池的配置信息被修改后发送的携带预设会话ID的DHCP ACK报文。

在本申请实施例中,上述DHCP客户端在确定上述DHCP ACK报文是上述服务端发送的携带预设会话ID的DHCP ACK报文后,可以向上述DHCP服务端发送DHCP Release报文。上述DHCP服务端接收到上述DHCP Release报文后,可以释放为上述DHCP客户端分配的IP地址。

在发送了DHCP Release报文后,上述DHCP客户端可以向上述DHCP服务端发送DHCP Discover报文,以申请新的IP地址。

在本申请实施例中,上述DHCP服务端接收到上述DHCP客户端发送的DHCP Discover报文后,返回DHCP Offer报文,以向上述DHCP客户端下发新的IP地址和修改后的DHCP地址池的配置信息。其中,DHCP地址池的配置信息包括DHCP地址池网段、默认网关和域名服务器地址等。

上述DHCP客户端基于接收到的上述DHCP Offer报文中携带的IP地址和修改后的DHCP地址池的配置信息,更新本地的IP地址和本地的配置信息。

以下通过一个具体的实例来详述本申请的技术方案。

假设DHCP服务端的IP地址为192.168.2.254/24,该DHCP服务端对应的DHCP地址池网段是192.168.2.0/24,DHCP地址池配置的默认网关是192.168.2.254。

当上述DHCP客户端通过DHCP协议由上述DHCP服务端分配了IP地址(分配的IP地址为192.168.2.5/24)以后,上述DHCP客户端的默认网关就设置为了192.168.2.254。

如果上述DHCP服务端被管理员修改对应的DHCP地址池的配置信息,此时,上述DHCP地址池网段是192.168.3.0/24,配置的默认网关是192.168.3.254,上述DHCP服务端的IP地址变为192.168.3.254/24。而上述DHCP客户端的IP地址仍为192.168.2.5/24。

在这种情况下,上述DHCP服务端发送携带预设会话ID的DHCP ACK报文至上述DHCP客户端。上述DHCP客户端在确定接收到上述DHCP服务端发送的上述DHCP ACK报文后,返回DHCP Release报文,并在返回DHCP Release报文后,发送DHCP Discover报文至上述DHCP服务端。

上述DHCP服务端在接收到上述DHCP Release报文后,回收分配给上述DHCP客户端的IP地址192.168.2.5/24;接收到上述DHCP Discover报文后,发送DHCP Offer报文至上述DHCP客户端,以向上述DHCP客户端下发新的IP地址和修改后的DHCP地址池的配置信息。

上述DHCP客户端接收到上述DHCP服务端发送的上述DHCP Offer报文后,将本地的IP地址更新为192.168.3.5/24,默认网关更新为192.168.3.254。上述DHCP客户端在更新IP地址和配置信息后,可以正常上网。

综上所述,在本申请实施例中,当DHCP服务端对应的DHCP地址池的配置信息被修改以后,DHCP服务端可以马上向DHCP客户端发送携带预设会话ID的DHCP ACK报文,以触发DHCP客户端主动返回DHCP Release报文和DHCP Discover报文,来释放已经分配的IP地址并申请新的IP地址。因此,DHCP服务端可以及时将修改后的DHCP地址池的配置信息下发至DHCP客户端,从而避免了现有技术中DHCP客户端需等到IP租约时间到期后才能获得DHCP服务端下发的新的IP地址和DHCP地址池的配置信息,而造成DHCP客户端在租约时间到期以前无法正常上网的问题。

与本申请DHCP客户端更新IP的方法的实施例相对应,本申请还提供了用于执行上述方法实施例的装置的实施例。

参见图4,为本申请示出的一种DHCP客户端更新IP的装置的逻辑框图,该装置应用于DHCP服务端:

如图4所示,该基于DHCP客户端更新IP的装置40包括:

发送单元410,用于当DHCP地址池的配置信息被修改后,向DHCP客户端发送携带预设会话ID的DHCP ACK报文。

释放单元420,用于接收所述DHCP客户端在接收到所述DHCP ACK报文后返回的DHCP Release报文,释放为所述DHCP客户端分配的IP地址。

所述发送单元410,进一步用于接收到所述DHCP客户端发出的DHCP Discover报文后,向所述DHCP客户端发送DHCP Offer报文,以向所述DHCP客户端下发新的IP地址以及修改后的DHCP地址池的配置信息。

本申请DHCP客户端更新IP的装置的实施例可以应用在DHCP服务端上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在DHCP服务端的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请DHCP客户端更新IP的装置所在DHCP服务端的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的DHCP服务端通常根据该DHCP客户端更新IP的装置的实际功能,还可以包括其他硬件,对此不再赘述。

参见图6,为本申请示出的一种DHCP客户端更新IP的装置的逻辑框图,该装置应用于DHCP客户端:

如图6所示,该基于DHCP客户端更新IP的装置60包括:

判断单元610,用于接收到DHCP服务端在DHCP地址池的配置信息被修改后发送的DHCP ACK报文后,判断所述DHCP ACK报文携带的会话ID是否为预设会话ID。

第二发送单元620,用于确定所述DHCP ACK报文携带的会话ID是所述预设会话ID时,向所述DHCP服务端发送DHCP Release报文,以由所述DHCP服务端释放为本地分配的IP地址。

更新单元630,用于当发送了所述DHCP Release报文后,向所述DHCP服务端发送DHCP Discover报文,以及接收所述DHCP服务端在接收到所述DHCP Discover报文后回应的DHCP Offer报文,并基于接收到的所述DHCP Offer报文中携带的IP地址以及修改后的所述配置信息更新本地的IP地址以及本地的所述配置信息。

在本例中,所述判断单元610,进一步用于:

读取所述DHCP ACK报文的服务端标识字段。

判断读取到的服务端标识与预先记录的所述DHCP服务端的服务端标识是否一致。

如果读取到的服务端标识与预先记录的DHCP服务端的服务端标识一致,确定所述DHCP ACK报文为所述DHCP服务端发送的DHCP ACK报文。

在本例中,所述装置还包括:

第一丢弃单元640,用于如果所述DHCP ACK报文携带的会话ID不是所述预设会话ID,则丢弃所述DHCP ACK报文。

在本例中,所述装置还包括:

第二丢弃单元650,用于如果读取到的服务端标识与预先记录的所述DHCP服务端的服务端标识不一致,则丢弃所述DHCP ACK报文。

本申请DHCP客户端更新IP的装置的实施例可以应用在DHCP客户端上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在DHCP客户端的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本申请DHCP客户端更新IP的装置所在DHCP客户端的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的DHCP客户端通常根据该DHCP客户端更新IP的装置的实际功能,还可以包括其他硬件,对此不再赘述。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1