动态地址分配方法和设备的制作方法

文档序号:7852352阅读:158来源:国知局
专利名称:动态地址分配方法和设备的制作方法
技术领域
本发明涉及通信技术领域,特别涉及一种动态地址分配方法和设备。
背景技术
当前主流企业及部分家庭用户获取IP地址均是通过动态主机配置协议(DynamicHost Configuration Protocol,DHCP)实现的。DHCP采用C/S通信模式,对网络中的客户端进行网络地址及配置信息的分配。DHCP的一个显著特点是DHCP客户端可以通过DHCP报文交互的方式从DHCP服务器中获得需要的网络配置信息。DHCP的另一个特点是为IP地址指定了一个有限的租约,租约到期后DHCP服务器将收回该IP地址,使得网络中的地址能够被最大限度的利用,而客户端也可以向服务器提出延长租约的请求,因此,网络中的地址能够被不断地复用。
参见图1,图I是现有技术中DHCP报文交互过程的示意图,包括以下步骤步骤101、客户端发送DHCP-DISCOVER (DHCP发现)报文查找可用DHCP服务器;步骤102、DHCP服务器返回DHCP-OFFER (DHCP授权)报文;步骤103、DHCP根据接收到的DHCP-0FFER报文确定可用的DCHP服务器,并选择其中一台DHCP服务器,向该DHCP服务器发送DHCP-REQUEST (DHCP请求)报文以申请地址;步骤104、接收到DHCP-REQUEST报文的DHCP服务器正式将IP地址分配给DHCP客户端,返回DHCP-ACK报文并在本地建立对应的租约信息。参见图2,图2是现有技术第一种典型的DHCP组网示意图,包括DHCP客户端、DHCP中继设备(Relay)和DHCP服务器;其中,DHCP服务器用于为DHCP客户端分配IP地址及网络配置参数以及管理租约表。DHCP Relay用于转发DHCP客户端和DHCP服务器交互之间的DHCP报文。参见图3,图3是现有技术第二种典型的DHCP组网示意图,包括DHCP客户端,DHCP探测设备(Snooping)和DHCP服务器。其中,DHCP服务器用于为DHCP客户端分配IP地址及网络配置参数以及管理租约表。DHCPSnooping在二层网络中使用,用于记录DHCP客户端信息、设置信任端口防止冒牌DHCP服务器、为来自DHCP客户端的报文添加0ption82选项、以及为来自DHCP服务器的报文脱去0ption82选项。由于DHCP Server需要管理大量租约表并频繁分配、释放地址,负载较大,而且,由于内存有限,会限制地址分配的数量,当达到租约表的管理上限后无法对DHCP客户端进行地址分配,而此时地址池可能还有大量地址空闲;另外,DHCP Relay/Snooping主要用于记录DHCP客户端信息和透传DHCP报文,利用率较低。

发明内容
有鉴于此,本发明的目的在于提供一种动态地址分配方法,该方法能够降低DHCP服务器的负载。为了达到上述目的,本发明提供的技术方案为
一种动态地址分配方法,该方法包括中继设备向动态主机配置协议DHCP服务器申请IP地址,将申请得到的IP地址放入动态地址池;中继设备接收到DHCP客户端的分配IP地址的请求时,判断所述动态地址池中是否存在空闲的IP地址,当存在空闲IP地址时,基于所述动态地址池为DHCP客户端分配IP地址。
该方法进一步包括当所述动态地址池不存在空闲IP地址时,将所述DHCP客户端发送的分配IP地址的请求转发给所述DHCP服务器处理。该方法进一步包括中继设备接收到DHCP服务器发送的指示DHCP配置变化的DHCP配置通告报文时,回收分配给各DHCP客户端的IP地址,删除分配给各DHCP客户端的IP地址对应的租约信息,并重新向DHCP服务器申请IP地址。所述中继设备接收到DHCP客户端的分配IP地址的请求时,判断所述动态地址池中是否存在空闲的IP地址,当存在空闲IP地址时,基于所述动态地址池为DHCP客户端分配IP地址包括当中继设备接收到DHCP客户端的DHCP发现报文时,判断所述动态地址池中是否存在空闲IP地址,当存在空闲IP地址时,从所述动态地址池中选择一个空闲IP地址分配给所述DHCP客户端,建立该IP地址对应的临时租约信息,并模拟DHCP服务器返回携带该IP地址的DHCP授权报文;当中继设备接收到DHCP客户端的DHCP请求报文时,判断是否存在DHCP请求报文中携带的IP地址对应的临时租约信息,当存在所述IP地址对应的临时租约信息时,建立DHCP请求报文中携带的IP地址对应的租约信息,并模拟DHCP服务器返回DHCP确认报文。上述方法中,所述选择一个空闲IP地址分配给所述DHCP客户端,建立该IP地址对应的临时租约信息之后,进一步包括如果临时租约到期未接收到DHCP客户端发送的携带该IP地址的DHCP请求报文,则回收该IP地址,删除该IP地址对应的临时租约信息;所述建立DHCP请求报文中携带的IP地址对应的租约信息之后,进一步包括如果租约到期,则回收该IP地址,删除该IP地址对应的租约信息。该方法进一步包括中继设备接收到DHCP客户端的DHCP续约报文时,判断是否存在DHCP续约报文中携带的IP地址对应的租约信息,当存在对应的租约信息时,重置该IP地址对应的租约信息;当中继设备接收到DHCP客户端的DHCP释放报文时,判断是否存在DHCP释放报文中携带的IP地址对应的租约信息,当存在对应的租约信息时,回收该IP地址,并删除该IP地址对应的租约信息。上述方法中,所述中继设备为DHCP中继设备relay ;所述中继设备向DHCP服务器申请IP地址的方法为向DHCP服务器发送携带预设IP地址范围信息和中继设备地址的DHCP配置请求报文,所述中继设备地址的值为中继设备的IP地址;接收DHCP服务器返回的DHCP配置应答报文,获取DHCP配置应答报文中携带的IP地址信息,其中,所述IP地址信息为DHCP服务器对接收到的DHCP配置请求报文中携带的预设IP地址范围和DHCP服务器中该中继设备地址对应的地址池范围的交集运算结果;上述方法中,所述中继设备为DHCP探测设备snooping ;所述中继设备向DHCP服务器申请IP地址的方法为向DHCP服务器发送携带预设IP地址范围信息和中继设备地址的DHCP配置请求报文,所述中继设备地址的值为0 ;接收DHCP服务器返回的DHCP配置应答报文,获取DHCP配置应答报文中携带的IP地址信息,其中,所述IP地址信息为DHCP服务器对接收到的DHCP配置请求报文中携带的预设IP地址范围和DHCP服务器接收该DCHP配置请求报文的端口的IP地址对应的地址池范围的交集运算结果。本发明还提供了另一种动态地址分配方法,该方法包括
DHCP服务器接收到中继设备的DHCP配置请求报文;判断所述DCHP配置请求报文中携带的中继设备地址的值是否为0,当中继设备地址的值为0时,查找接收DHCP配置请求报文的端口的IP地址对应的地址池,对DHCP配置请求报文中携带的IP地址范围和接收DHCP配置请求报文的端口的IP地址对应的地址池范围进行交集运算;当中继设备地址的值不为0时,查找该中继设备地址的值对应的地址池,对DHCP配置请求报文中携带的IP地址范围和该中继设备地址对应的地址池范围进行交集运算;将交集运算结果中的每个IP地址设置为禁用IP ;将交集运算结果中的所有IP地址携带在DHCP配置应答报文中返回给中继设备。该方法进一步包括DHCP服务器检测到自身的DHCP配置变化时,恢复所有被禁止IP并向中继设备发送指示DHCP配置变化的DHCP配置通告报文,用以使中继设备回收已经分配给各DHCP客户端的IP地址并重新发送DHCP配置请求报文。本发明还提供了一种中继设备,该中继设备包括地址申请单元、地址分配单元;所述地址申请单元,用于向动态主机配置协议DHCP服务器申请IP地址,将申请得到的IP地址放入动态地址池;所述地址分配单元,用于接收到DHCP客户端的分配IP地址的请求时,判断所述动态地址池中是否存在空闲的IP地址,当存在空闲IP地址时,基于所述动态地址池为DHCP客户端分配IP地址。所述地址分配单元,进一步用于当所述动态地址池不存在空闲IP地址时,将所述DHCP客户端发送的分配IP地址的请求转发给所述DHCP服务器处理。所述地址申请单元,进一步用于接收DHCP服务器发送的指示DHCP配置变化的DHCP配置通告报文,回收分配给各DHCP客户端的IP地址,删除分配给各DHCP客户端的IP地址对应的租约信息,并重新向DHCP服务器申请IP地址。上述装置中,所述地址分配单元包括接收单元、分配单元、发送单元;所述接收单元,用于接收DHCP客户端发送的DHCP发现报文;用于接收DHCP客户端发送的DHCP请求报文;所述分配单元,用于在收发单元接收到DHCP客户端的DHCP发现报文时,判断动态地址池中存在空闲IP地址,当存在空闲IP地址时,选择一个空闲IP地址分配给所述DHCP客户端,建立该IP地址对应的临时租约信息,并通知发送单元模拟DHCP服务器返回携带该IP地址的DHCP授权报文;用于在接收单元接收到DHCP客户端的DHCP请求报文时,判断是否存在DHCP请求报文中携带的IP地址对应的临时租约信息,当存在所述IP地址对应的临时租约信息时,建立DHCP请求报文中携带的IP地址对应的租约信息,并通知发送单元模拟DHCP服务器返回DHCP确认报文。所述分配单元在选择一个空闲IP地址分配给所述DHCP客户端,建立该IP地址对应的临时租约信息之后,进一步用于如果临时租约到期接收单元未接收到DHCP客户端发送的携带该IP地址的DHCP请求报文,则回收该IP地址,删除该IP地址对应的临时租约信
息;所述分配单元在建立DHCP请求报文中携带的IP地址对应的租约信息之后,进一步用于如果租约到期,则回收该IP地址,删除该IP地址对应的租约信息。所述接收单元,进一步用于接收DHCP客户端的DHCP续约报文;用于接收DHCP客户端的DHCP释放报文;所述分配单元,进一步用于在接收单元接收到DHCP客户端的DHCP续约报文时,判断是否存在DHCP续约报文中携带的IP地址对应的租约信息,当存在对应的租约信息时,重置该IP地址对应的租约信息;用于在接收单元接收到DHCP客户端的DHCP释放报文时,判断是否存在DHCP释放报文中携带的IP地址对应的租约信息,当存在对应的租约信息时,回收该IP地址,并删除该IP地址对应的租约信息,否则,正常处理该DHCP释放报文。所述中继设备为DHCP中继设备relay ;所述地址申请单元在向DHCP服务器申请IP地址时,用于向DHCP服务器发送携带预设IP地址范围信息和中继设备地址的DHCP配置请求报文,所述中继设备地址的值为中继设备的IP地址;接收DHCP服务器返回的DHCP配置应答报文,获取DHCP配置应答报文中携带的IP地址信息,其中,所述IP地址信息为DHCP服务器对接收到的DHCP配置请求报文中携带的预设IP地址范围和DHCP服务器中该中继设备地址对应的地址池范围的交集运算结果;所述中继设备为DHCP探测设备snooping ;所述地址申请单元在向DHCP服务器申请IP地址时,用于向DHCP服务器发送携带预设IP地址范围信息和中继设备地址的DHCP配置请求报文,所述中继设备地址的值为0 ;接收DHCP服务器返回的DHCP配置应答报文,获取DHCP配置应答报文中携带的IP地址信息,其中,所述IP地址信息为DHCP服务器对接收到的DHCP配置请求报文中携带的预设IP地址范围和DHCP服务器接收该DHCP配置请求报文的端口的IP地址对应的地址池范围的交集运算结果。本发明还提供了一种DHCP服务器,该DHCP服务器包括报文接收单元、地址运算单元、地址设置单元、报文发送单元;所述报文接收单元,用于接收中继设备的DHCP配置请求报文;所述地址运算单元,用于在报文接收单元接收到中继设备的DHCP配置请求报文时,判断DHCP配置请求报文中携带的中继地址字段的值是否为0,当中继设备地址的值为0时,查找接收该DHCP配置请求报文的端口的IP地址对应的地址池,对DHCP配置请求报文中携带的IP地址范围和接收DHCP配置请求报文的端口的IP地址对应的地址池范围进行交集运算,当中继设备地址的值不为O时,查找该中继设备地址对应的地址池,对DHCP配置请求报文中携带的IP地址范围和该中继设备地址对应的地址池范围进行交集运算;所述地址设置单元,用于将地址运算单元的交集运算结果中的每个IP地址设置为禁用IP ;所述报文发送单元,用于将地址运算单元的交集运算结果中的所有IP地址携带在DHCP配置应答报文中返回给中继设备。该DHCP服务器还包括检测单元;所述检测单元,用于检测本设备的DHCP配置是否发生变化; 所述报文发送单元,进一步用于在检测单元检测到本设备的DHCP配置变化时,向中继设备发送指示DHCP配置变化的DHCP配置通告报文,用以使中继设备回收已经分配给各DHCP客户端的IP地址并重新发送DHCP配置请求报文;所述地址设置单元,用于在检测单元检测到本设备的DHCP配置变化时,恢复所有被禁止IP。由上面的技术方案可知,本发明中,中继设备向DHCP服务器申请IP地址并将申请的IP地址放入动态地址池;当接收到DHCP客户端的申请地址的请求时,如果动态地址池中存在空闲IP地址,则基于动态地址池为DHCP客户端分配IP地址。应用本发明后,中继设备可以代替DHCP服务器完成执行部分IP地址的动态分配,从而可以降低DHCP服务器的负载。


图I是现有技术中DHCP报文交互过程的示意图;图2是现有技术第一种典型的DHCP组网示意图;图3是现有技术第二种典型的DHCP组网示意图;图4是本发明实施例动态地址分配方法的流程图;图5是本发明实施例另一种动态地址分配方法的流程图;图6是本发明实施例DHCP配置报文中UDP数据部分的格式示意图;图7是本发明实施例提供的中继设备的结构示意图;图8是本发明实施例提供的DHCP服务器的结构示意图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。本发明的主要思想是中继设备代替DHCP服务器完成部分地址分配工作。为此,先向DHCP服务器申请批量IP地址放入动态地址池;当接收到DHCP客户端的分配IP地址的请求时,判断动态地址池中是否存在空闲的IP地址,当存在空闲的IP地址时,基于动态地址池为DHCP客户端分配IP地址,当不存在空闲的IP地址时,按照现有技术的方法转发DHCP客户端的分配IP地址的请求到DHCP服务器处理。其中,DHCP客户端发送的分配IP地址的请求包括=DHCP发现报文和DHCP请求报文,下面结合图4对中继设备接收到这两种报文后的IP地址分配处理进行说明。参见图4,图4是本发明实施例动态地址分配方法的流程图,包括以下步骤步骤401、中继设备向DHCP服务器申请IP地址,将申请得到的IP地址放入动态地址池。本实施例中,预先定义了 DHCP配置请求报文和DHCP配置应答报文,其中,DHCP配置请求报文是中继设备向DHCP服务器发送的,用于向DHCP服务器申请批量IP地址;DHCP配置应答报文是DHCP服务器向中继设备发送的,用于将中继设备可以申请到的IP地址信息反馈给中继设备。因此,中继设备向DHCP服务器申请IP地址的方法为向DHCP服务器发送携带预设IP地址范围信息的DHCP配置请求报文;接收DHCP服务器返回的DHCP配置应答报文,获取DHCP配置应答报文中携带的IP地址信息,其中,DHCP配置应答报文中携带的IP地址即为中继设备从DHCP服务器申请得到的IP地址。DHCP接收到中继设备的申请IP地址的请 求后,确定可以分配给中继设备的IP地址的具体实现将在后续进行详细说明。步骤402、当中继设备接收到DHCP客户端的DHCP发现报文时,判断动态地址池中是否存在空闲IP地址,当存在空闲IP地址时,选择一个空闲IP地址分配给所述DHCP客户端,建立该IP地址对应的临时租约信息,并模拟DHCP服务器返回携带该IP地址的DHCP授权报文。在实际应用中,DHCP客户端和DHCP服务器之间需要交互DHCP发现报文、DHCP授权报文、DHCP请求报文和DHCP确认报文完成地址分配。本步骤中,中继设备接收到DHCP客户端的DHCP发现报文后,先判断动态地址池中是否存在空闲IP地址(也即尚未分给给其他DHCP客户端的IP地址),如果存在,则由中继设备为DHCP客户端分配IP地址,并模拟DHCP服务器返回DHCP授权报文,DHCP授权报文中携带临时分配给DHCP客户端的IP地址,如果不存在,则由DHCP服务器为DHCP客户端分配IP地址,也即按照现有技术的方法正常处理DHCP客户端发送的DHCP发现报文,包括转发DHCP发现报文到DHCP服务器,如果接收到DHCP服务器在接收到DHCP发现报文后返回的DHCP授权报文,则转发DHCP授权报文至DHCP客户端。这里,临时租约的租期较短,如果在分配给DHCP客户端的IP地址对应的临时租约到期时,如果未能接收到DHCP客户端的DHCP请求报文,则需要回收该IP地址,并删除该IP地址对应的临时租约信息。步骤403、中继设备接收到DHCP客户端的DHCP请求报文时,判断是否存在DHCP请求报文中携带的IP地址对应的临时租约信息,当存在存在所述IP地址对应的临时租约信息时,建立将DHCP请求报文中携带的IP地址对应的租约信息,并模拟DHCP服务器返回DHCP确认报文。本步骤中,中继设备接收到DHCP客户端的DHCP请求报文时,如果存在DHCP请求报文中携带的IP地址对应的临时租约信息,则说明该IP地址是由中继设备分配给DHCP客户端的,中继设备可以将该IP地址正式分配给DHCP客户端,建立该IP地址对应的正式的租约信息(将该IP地址对应的临时租约的租期修改为正式租约的租期即可),同时还需要模拟DHCP服务器返回DHCP确认报文;如果DHCP请求报文中携带的IP地址不是中继设备的动态地址池中的IP地址,则说明该IP地址是由DHCP服务器按照现有技术的方法分配给DHCP客户端的,因此,中继设备需要正常处理该DHCP请求报文,也即转发该DHCP请求报文至DHCP服务器,如果接收到DHCP服务器在接收到DHCP请求报文后返回的DHCP确认报文或DHCP nak (DHCP否决)报文时,则转发DHCP确认报文或DHCP否决报文至DHCP客户端。本步骤中,在判断是否存在DHCP请求报文中携带的IP地址对应的临时租约信息时,还可以进一步判断DHCP请求报文中的服务器标识(identifier)字段的值,根据该字段的值确定DHCP请求报文是否是发送给自己的。本实施例中,中继设备可以使DHCP Relay,也可以是DHCP Snooping。当中继设备为DHCP Relay时,DHCP Relay接收到DHCP客户端的DHCP发现报文后,模拟DHCP服务器向DHCP客户端发送的DHCP授权报文中携带DHCP Relay的IP地址,而DHCP客户端在接着发送的DHCP请求报文中,会将DHCP Relay的IP地址作为DHCP请求报文中服务器标识字段的值。这样,当DHCP relay接收到DHCP客户端的DHCP请求报文时,如果DHCP请求报文中携带的服务器标识字段的值是自身的IP地址,则可以确定DHCP请求 报文是发给自己的。当中继设备为DHCP snooping时,由于DHCP snooping应用于二层网络,不具备IP地址,为了标识DHCP Snooping, DHCP服务器在回应DHCP Snooping的申请IP地址的请求时,可以在回应报文中携带接收DHCP snooping的申请IP地址的请求的端口的IP地址,以下将该IP地址简称为服务器IP地址。DHCPsnooping接收到DHCP客户端的DHCP发现报文时,可以将该服务器IP地址作为自身的IP地址携带在DHCP授权报文中,而DHCP客户端在接着发送DHCP请求报文中,可以将该服务器IP地址作为DHCP请求报文中服务器标识字段的值。这样,当DHCP Snooping接收到DHCP客户端的DHCP请求报文时,如果DHCP请求报文中携带的服务器标识字段的值是该服务器IP地址,则可以确定DHCP请求报文是发给自己的。图4所示本发明实施例中,当中继设备选择一个空闲IP地址分配给DHCP客户端时,如果因为设备故障或网络故障等原因导致DHCP客户端未能及时发送DHCP请求报文,导致中继设备未能再及时接收到DHCP客户端的DHCP请求报文,则需要及时对该IP地址进行回收。为此,中继设备建立分配给DHCP客户端的IP地址对应的临时租约信息,并模拟DHCP服务器返回携带临时分配给DHCP客户端的IP地址的DHCP授权报文之后,进一步包括如果临时租约到期未接收到DHCP客户端发送的携带该IP地址的DHCP请求报文,则回收该IP地址,并删除该IP地址对应的临时租约信息。IP地址被回收后,重新作为动态地址池中的空闲IP地址,可以继续被分配给其它DHCP客户端。另外,中继设备为DHCP客户端正式分配IP地址后,建立该IP地址对应的租约信息之后,如果租约到期,则也需要及时回收该IP地址,删除该IP地址对应的租约信息。图4所示本发明实施例中,中继设备接收到DHCP客户端发送的DHCP请求报文,并建立DHCP请求报文携带的IP地址对应的租约信息,实现将IP地址正式分配给DHCP客户端后,还需要能够支持DHCP客户端对分配到的IP地址的续约需求。当中继设备接收到DHCP客户端的DHCP续约报文时,需要先判断DHCP续约报文中携带的IP地址是否存在对应的租约信息,如果是,则说明该IP地址是由中继设备分配给DHCP客户端的,中继设备可以重置该IP地址对应的租约信息,从而由中继设备实现DHCP客户端的IP地址续约需求,如果否,则说明该IP地址是由DHCP服务器分配给DHCP客户端的,因此,可以按照现有技术的方法正常处理该DHCP续约报文也即转发该DHCP续约报文至DHCP服务器,从而由DHCP服务器实现根据DHCP客户端的需求延长该IP地址的租期。另外,中继设备为DHCP客户端正式分配IP地址后,还需要能够支持DHCP客户端对分配到的IP地址的释放需求。当中继设备接收到DHCP客户端的DHCP release (DHCP释放)报文时,需要先判断DHCP释放报文中携带的IP地址是否存在对应的租约信息,如果是,则说明该IP地址是由中继设备分配给DHCP客户端的,中继设备可以回收该IP地址,并删除该IP地址对应的租约信息,由中继设备实现DHCP客户端的IP地址释放需求,如果否,则说明该IP地址是由DHCP服务器分配给DHCP客户端的,因此,可以按照现有技术的方法正常处理该DHCP释放报文也即转发该DHCP释放报文至DHCP服务器,由DHCP服务器实现DHCP客户端的IP地址释放需求。在实际应用中,当DHCP服务器的DHCP配置发生变化时,中继设备需要重新向DHCP 服务器申请IP地址,以免造成DHCP配置信息不一致。为此,图4所示本发明实施例中,还预先定义了 DHCP配置通告报文,由DHCP服务器向中继设备发送,用于通知中继设备DHCP服务器的DHCP配置发送变化。中继设备接收到DHCP服务器发送的指示DHCP配置变化的DHCP配置通告报文时,需要回收分配给各DHCP客户端的IP地址,删除分配给各DHCP客户端的IP地址对应的租约信息,并重新向DHCP服务器申请IP地址。图4所示本发明实施例中,所述DHCP配置请求报文携带有预设IP地址范围信息和中继设备地址。其中,预设IP地址范围信息包括最大地址掩码长度和最小地址掩码长度,表明中继设备申请的IP地址范围,例如,当最大地址掩码长度为32,最小地址掩码长度为24时,说明中继设备能够申请255个IP地址(其中包括广播地址等无法分配的地址在内)。中继设备地址的值随中继设备的不同而不同,当中继设备为DHCP Relay时,中继设备地址的值为该中继设备的IP地址,相应的,DHCP服务器接收到中继设备的DHCP配置请求报文后,为中继设备分配申请的IP地址的方法也不相同,下面分别进行说明当中继设备为DHCP Relay时,中继设备发送的DHCP配置请求报文中的中继设备地址的值为该中继设备的IP地址。DHCP服务器接收到中继设备的DHCP配置请求报文时,会查找DHCP配置请求报文中携带的中继设备地址的值对应的地址池,对DHCP配置请求报文中携带的预设IP地址范围和中继设备地址字段的值对应的地址池范围进行交集运算,得到的交集运算结果中的IP地址即为中继设备可以申请得到的IP地址,可以将交集运算结果中的所有IP地址携带在DHCP配置应答报文中返回给中继设备。当中继设备为DHCP Snooping时,由于DHCP Snooping应用于二层网络,中继设备发送的DHCP配置请求报文中的中继设备地址的值为O。DHCP服务器接收到中继设备的DHCP配置请求报文时,会查找接收DHCP配置请求报文的端口的IP地址对应的地址池,对DHCP配置请求报文中携带的预设IP地址范围和接收该DHCP配置请求报文的端口的IP地址对应的地址池范围进行交集运算,得到的交集运算结果中的IP地址即为中继设备可以申请得到的IP地址,可以将交集运算结果中的所有IP地址携带在DHCP配置应答报文中返回给中继设备。需要说明的是,DHCP服务器将所述交集运算结果中的IP地址携带在DHCP配置应答报文中返回给DHCP中继设备时,还需要将所述交集运算结果中的IP地址得到的各IP地址设置为禁用IP (forbidden IP),从而这些IP地址不会再被分配给其它中继设备。DHCP服务器中该中继设备对应的地址池范围包括该地址池中当前未被设置为禁用IP的所有IP地址,不包括该地址池中当前已经被设置为禁用IP的IP地址。本发明还提供了一种动态地址分配方法,应用于DHCP服务器,下面结合图5进行说明。图5是本发明实施例另一种动态地址分配方法的流程图,包括以下步骤步骤501、DHCP服务器接收到中继设备的DHCP配置请求报文;步骤502、判断DCHP配置请求报文中携带的中继设备地址的值是否为0,当中继设备地址的值为0时,查找接收DHCP配置请求报文的端口的IP地址对应的地址池,对DHCP配置请求报文中携带的IP地址范围和接收DHCP配置请求报文的端口的IP地址对应的地 址池范围进行交集运算,当中继设备地址的值不为0时,查找该中继设备地址的值对应的地址池,对DHCP配置请求报文中携带的IP地址范围和该中继设备地址对应的地址池范围进行交集运算;步骤503、将交集运算结果中的每个IP地址设置为禁用IP ;步骤504、将交集运算结果中的所有IP地址携带在DHCP配置应答报文中返回给中继设备。图5所示本发明实施例还进一步包括DHCP服务器检测到自身的DHCP配置变化时,恢复所有被禁用IP并向中继设备发送指示DHCP配置变化的DHCP配置通告报文,用以使中继设备回收已经分配给各DHCP客户端的IP地址并重新发送DHCP配置请求报文。在上述图4、图5所示本发明实施例中,DHCP配置报文(包括DHCP配置请求报文、DHCP配置应答报文、DHCP配置通告报文)可以采用UDP封装,并作为单播报文传输,UDP数据部分的格式具体可以如图6所示,包括操作码(op-code)字段、中继设备地址(relay-addr)字段、CLV (code、length、value)字段。其中,op-code字段用于标识报文的类型,例如,该字段的值为0x01时,表示是DHCP配置请求报文,该字段的值为0x02时,表示是DHCP配置应答报文,该字段的值为0x03时,表示是DHCP配置通告报文;relay-addr字段表示中继设备地址;CLV字段则用于封装DHCP相关选项,例如,在DHCP配置请求报文中,该字段可以封装预设IP地址范围信息,;在DHCP配置应答报文中,该字段可以封装IP地址信息、IP地址掩码、以及相应的DHCP选项等信息,在DHCP配置通告报文中,该字段可以为空。以上对本发明实施例动态地址分配方法进行了详细说明,本发明还提供了一种中继设备和一种DHCP服务器,下面结果图7、图8进行说明。图7是本发明实施例提供的中继设备的结构示意图,该中继设备包括地址申请单元710、地址分配单元720 ;其中,地址申请单元710,用于向动态主机配置协议DHCP服务器申请IP地址,将申请得到的IP地址放入动态地址池;地址分配单元720,用于接收到DHCP客户端的分配IP地址的请求时,判断所述动态地址池中是否存在空闲的IP地址,当存在空闲IP地址时,基于所述动态地址池为DHCP客户端分配IP地址。所述地址分配单元720,进一步用于当所述动态地址池不存在空闲IP地址时,将所述DHCP客户端发送的分配IP地址的请求转发给所述DHCP服务器处理。所述地址申请单元710,进一步用于接收DHCP服务器发送的指示DHCP配置变化的DHCP配置通告报文,回收分配给各DHCP客户端的IP地址,删除分配给各DHCP客户端的IP地址对应的租约信息,并重新向DHCP服务器申请IP地址。在上述装置中,所述地址分配单元720包括接收单元721、分配单元722、发送单元 723 ;所述接收单元721,用于接收DHCP客户端发送的DHCP发现报文;用于接收DHCP客户端发送的DHCP请求报文;所述分配单元,用于在收发单元接收到DHCP客户端的DHCP发现报文时,判断动态地址池中存在空闲IP地址,当存在空闲IP地址时,选择一个空闲IP地址分配给所述DHCP客户端,建立该IP地址对应的临时租约信息,并通知发送单元723模拟DHCP服务器返回携带该IP地址的DHCP授权报文;用于在接收单元721接收到DHCP客户端的DHCP请求报文时,判断是否存在DHCP请求报文中携带的IP地址对应的临时租约信息,当存在所述IP地址对应的临时租约信息时,建立DHCP请求报文中携带的IP地址对应的租约信息,并通知发送单元723模拟DHCP服务器返回DHCP确认报文。所述分配单元722在选择一个空闲IP地址分配给所述DHCP客户端,建立该IP地址对应的临时租约信息之后,进一步用于如果临时租约到期接收单元721未接收到DHCP客户端发送的携带该IP地址的DHCP请求报文,则回收该IP地址,删除该IP地址对应的临时租约信息;所述分配单元722在建立DHCP请求报文中携带的IP地址对应的租约信息之后,进一步用于如果租约到期,则回收该IP地址,删除该IP地址对应的租约信息。所述接收单元721,进一步用于接收DHCP客户端的DHCP续约报文;用于接收DHCP客户端的DHCP释放报文;所述分配单元722,进一步用于在接收单元721接收到DHCP客户端的DHCP续约报文时,判断是否存在DHCP续约报文中携带的IP地址对应的租约信息,当存在对应的租约信息时,重置该IP地址对应的租约信息;用于在接收单元721接收到DHCP客户端的DHCP释放报文时,判断是否存在DHCP释放报文中携带的IP地址对应的租约信息,当存在对应的租约信息时,回收该IP地址,并删除该IP地址对应的租约信息,否则,正常处理该DHCP释放报文。在上述装置中,所述中继设备为DHCP中继设备relay ;所述地址申请单元710在向DHCP服务器申请IP地址时,用于向DHCP服务器发送携带预设IP地址范围信息和中继设备地址的DHCP配置请求报文,所述中继设备地址的值为中继设备的IP地址;接收DHCP服务器返回的DHCP配置应答报文,获取DHCP配置应答报文中携带的IP地址信息,其中,所述IP地址信息为DHCP服务器对接收到的DHCP配置请求报文中携带的预设IP地址范围和DHCP服务器中该中继设备地址对应的地址池范围的交 集运算结果;在上述装置中,所述中继设备为DHCP探测设备snooping ;所述地址申请单元710在向DHCP服务器申请IP地址时,用于向DHCP服务器发送携带预设IP地址范围信息和中继设备地址的DHCP配置请求报文,所述中继设备地址的值为o ;接收DHCP服务器返回的DHCP配置应答报文,获取DHCP配置应答报文中携带的IP地址信息,其中,所述IP地址信息为DHCP服务器对接收到的DHCP配置请求报文中携带的预设IP地址范围和DHCP服务器接收该DHCP配置请求报文的端口的IP地址对应的地址池范围的交集运算结果。图8是本发明实施例提供的DHCP服务器的结构示意图,该DHCP服务器包括报文接收单元801、地址运算单元802、地址设置单元803、报文发送单元803 ;其中,报文接收单元801,用于接收中继设备的DHCP配置请求报文;地址运算单元802,用于在报文接收单元701接收到中继设备的DHCP配置请求报文时,判断DHCP配置请求报文中携带的中继地址字段的值是否为0,当中继设备地址的值为0时,查找接收该DHCP配置请求报文的端口的IP地址对应的地址池,对DHCP配置请求 报文中携带的IP地址范围和接收DHCP配置请求报文的端口的IP地址对应的地址池范围进行交集运算,当中继设备地址的值不为0时,查找该中继设备地址对应的地址池,对DHCP配置请求报文中携带的IP地址范围和该中继设备地址对应的地址池范围进行交集运算;地址设置单元803,用于将地址运算单元的交集运算结果中的每个IP地址设置为禁用IP ;报文发送单元803,用于将地址运算单元802的交集运算结果中的所有IP地址携带在DHCP配置应答报文中返回给中继设备。该DHCP服务器还包括检测单元805 ;所述所述检测单元805,用于检测本设备的DHCP配置是否发生变化;所述报文发送单元804,进一步用于在检测单元805检测到本设备的DHCP配置变化时,向中继设备发送指示DHCP配置变化的DHCP配置通告报文,用以使中继设备回收已经分配给各DHCP客户端的IP地址并重新发送DHCP配置请求报文;所述地址设置单元803,用于在检测单元805检测到本设备的DHCP配置变化时,恢复所有被禁止IP。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.ー种动态地址分配方法,其特征在于,该方法包括 中继设备向动态主机配置协议DHCP服务器申请IP地址,将申请得到的IP地址放入动态地址池; 中继设备接收到DHCP客户端的分配IP地址的请求时,判断所述动态地址池中是否存在空闲的IP地址,当存在空闲IP地址时,基于所述动态地址池为DHCP客户端分配IP地址。
2.根据权利要求I所述的动态地址分配方法,其特征在于,该方法进ー步包括 当所述动态地址池不存在空闲IP地址时,将所述DHCP客户端发送的分配IP地址的请求转发给所述DHCP服务器处理。
3.根据权利要求I所述的动态地址分配方法,其特征在于,该方法进ー步包括 中继设备接收到DHCP服务器发送的指示DHCP配置变化的DHCP配置通告报文吋,回收分配给各DHCP客户端的IP地址,删除分配给各DHCP客户端的IP地址对应的租约信息,并重新向DHCP服务器申请IP地址。
4.根据权利要求I所述的动态地址分配方法,其特征在于,所述中继设备接收到DHCP客户端的分配IP地址的请求时,判断所述动态地址池中是否存在空闲的IP地址,当存在空闲IP地址时,基于所述动态地址池为DHCP客户端分配IP地址包括 当中继设备接收到DHCP客户端的DHCP发现报文时,判断所述动态地址池中是否存在空闲IP地址,当存在空闲IP地址时,从所述动态地址池中选择ー个空闲IP地址分配给所述DHCP客户端,建立该IP地址对应的临时租约信息,并模拟DHCP服务器返回携带该IP地址的DHCP授权报文; 当中继设备接收到DHCP客户端的DHCP请求报文时,判断是否存在DHCP请求报文中携带的IP地址对应的临时租约信息,当存在所述IP地址对应的临时租约信息吋,建立DHCP请求报文中携帯的IP地址对应的租约信息,并模拟DHCP服务器返回DHCP确认报文。
5.根据权利要求4所述的动态地址分配方法,其特征在干, 所述选择一个空闲IP地址分配给所述DHCP客户端,建立该IP地址对应的临时租约信息之后,进ー步包括如果临时租约到期未接收到DHCP客户端发送的携带该IP地址的DHCP请求报文,则回收该IP地址,删除该IP地址对应的临时租约信息; 所述建立DHCP请求报文中携帯的IP地址对应的租约信息之后,进ー步包括如果租约到期,则回收该IP地址,删除该IP地址对应的租约信息。
6.根据权利要求4所述的动态地址分配方法,其特征在于,该方法进ー步包括 中继设备接收到DHCP客户端的DHCP续约报文时,判断是否存在DHCP续约报文中携帯的IP地址对应的租约信息,当存在对应的租约信息吋,重置该IP地址对应的租约信息; 当中继设备接收到DHCP客户端的DHCP释放报文时,判断是否存在DHCP释放报文中携带的IP地址对应的租约信息,当存在对应的租约信息吋,回收该IP地址,并删除该IP地址对应的租约信息。
7.根据权利要求I或3所述的动态地址分配方法,其特征在干, 所述中继设备为DHCP中继设备relay ; 所述中继设备向DHCP服务器申请IP地址的方法为向DHCP服务器发送携帯预设IP地址范围信息和中继设备地址的DHCP配置请求报文,所述中继设备地址的值为中继设备的IP地址;接收DHCP服务器返回的DHCP配置应答报文,获取DHCP配置应答报文中携带的IP地址信息,其中,所述IP地址信息为DHCP服务器对接收到的DHCP配置请求报文中携帯的预设IP地址范围和DHCP服务器中该中继设备地址对应的地址池范围的交集运算結果。
8.根据权利要求I或3所述的动态地址分配方法,其特征在干, 所述中继设备为DHCP探测设备snooping ; 所述中继设备向DHCP服务器申请IP地址的方法为向DHCP服务器发送携帯预设IP地址范围信息和中继设备地址的DHCP配置请求报文,所述中继设备地址的值为O ;接收DHCP服务器返回的DHCP配置应答报文,获取DHCP配置应答报文中携帯的IP地址信息,其中,所述IP地址信息为DHCP服务器对接收到的DHCP配置请求报文中携带的预设IP地址范围和DHCP服务器接收该DCHP配置请求报文的端ロ的IP地址对应的地址池范围的交集运算结果O
9.一种动态地址分配方法,其特征在于,该方法包括 DHCP服务器接收到中继设备的DHCP配置请求报文; 判断所述DCHP配置请求报文中携帯的中继设备地址的值是否为0,当中继设备地址的值为O时,查找接收DHCP配置请求报文的端ロ的IP地址对应的地址池,对DHCP配置请求报文中携带的IP地址范围和接收DHCP配置请求报文的端ロ的IP地址对应的地址池范围进行交集运算;当中继设备地址的值不为O吋,查找该中继设备地址的值对应的地址池,对DHCP配置请求报文中携帯的IP地址范围和该中继设备地址对应的地址池范围进行交集运算; 将交集运算结果中的每个IP地址设置为禁用IP ; 将交集运算结果中的所有IP地址携带在DHCP配置应答报文中返回给中继设备。
10.根据权利要求9所述的动态地址分配方法,其特征在于,该方法进ー步包括 DHCP服务器检测到自身的DHCP配置变化吋,恢复所有被禁止IP并向中继设备发送指示DHCP配置变化的DHCP配置通告报文,用以使中继设备回收已经分配给各DHCP客户端的IP地址并重新发送DHCP配置请求报文。
11.ー种中继设备,其特征在于,该中继设备包括地址申请単元、地址分配単元; 所述地址申请单元,用于向动态主机配置协议DHCP服务器申请IP地址,将申请得到的IP地址放入动态地址池; 所述地址分配単元,用于接收到DHCP客户端的分配IP地址的请求时,判断所述动态地址池中是否存在空闲的IP地址,当存在空闲IP地址时,基于所述动态地址池为DHCP客户端分配IP地址。
12.根据权利要求11所述的中继设备,其特征在干, 所述地址分配単元,进ー步用于当所述动态地址池不存在空闲IP地址时,将所述DHCP客户端发送的分配IP地址的请求转发给所述DHCP服务器处理。
13.根据权利要求11所述的中继设备,其特征在干, 所述地址申请单元,进ー步用于接收DHCP服务器发送的指示DHCP配置变化的DHCP配置通告报文,回收分配给各DHCP客户端的IP地址,删除分配给各DHCP客户端的IP地址对应的租约信息,并重新向DHCP服务器申请IP地址。
14.根据权利要求11所述的中继设备,其特征在于,所述地址分配単元包括接收单元、分配単元、发送单元;所述接收单元,用于接收DHCP客户端发送的DHCP发现报文;用于接收DHCP客户端发送的DHCP请求报文; 所述分配単元,用于在收发单元接收到DHCP客户端的DHCP发现报文时,判断动态地址池中存在空闲IP地址,当存在空闲IP地址时,选择一个空闲IP地址分配给所述DHCP客户端,建立该IP地址对应的临时租约信息,并通知发送单元模拟DHCP服务器返回携带该IP地址的DHCP授权报文;用于在接收单元接收到DHCP客户端的DHCP请求报文时,判断是否存在DHCP请求报文中携带的IP地址对应的临时租约信息,当存在所述IP地址对应的临时租约信息时,建立DHCP请求报文中携帯的IP地址对应的租约信息,并通知发送单元模拟DHCP服务器返回DHCP确认报文。
15.根据权利要求14所述的中继设备,其特征在干, 所述分配单元在选择ー个空闲IP地址分配给所述DHCP客户端,建立该IP地址对应的临时租约信息之后,进ー步用于如果临时租约到期接收单元未接收到DHCP客户端发送的携带该IP地址的DHCP请求报文,则回收该IP地址,删除该IP地址对应的临时租约信息; 所述分配単元在建立DHCP请求报文中携帯的IP地址对应的租约信息之后,进ー步用于如果租约到期,则回收该IP地址,删除该IP地址对应的租约信息。
16.根据权利要求14所述的中继设备,其特征在干, 所述接收单元,进ー步用于接收DHCP客户端的DHCP续约报文;用于接收DHCP客户端的DHCP释放报文; 所述分配単元,进ー步用于在接收单元接收到DHCP客户端的DHCP续约报文时,判断是否存在DHCP续约报文中携帯的IP地址对应的租约信息,当存在对应的租约信息吋,重置该IP地址对应的租约信息;用于在接收单元接收到DHCP客户端的DHCP释放报文时,判断是否存在DHCP释放报文中携帯的IP地址对应的租约信息,当存在对应的租约信息吋,回收该IP地址,并删除该IP地址对应的租约信息,否则,正常处理该DHCP释放报文。
17.根据权利要求11或13所述的中继设备,其特征在干, 所述中继设备为DHCP中继设备relay ; 所述地址申请单元在向DHCP服务器申请IP地址时,用于向DHCP服务器发送携带预设IP地址范围信息和中继设备地址的DHCP配置请求报文,所述中继设备地址的值为中继设备的IP地址;接收DHCP服务器返回的DHCP配置应答报文,获取DHCP配置应答报文中携带的IP地址信息,其中,所述IP地址信息为DHCP服务器对接收到的DHCP配置请求报文中携帯的预设IP地址范围和DHCP服务器中该中继设备地址对应的地址池范围的交集运算结果O
18.根据权利要求11或13所述的中继设备,其特征在干, 所述中继设备为DHCP探测设备snooping ; 所述地址申请单元在向DHCP服务器申请IP地址时,用于向DHCP服务器发送携带预设IP地址范围信息和中继设备地址的DHCP配置请求报文,所述中继设备地址的值为O ;接收DHCP服务器返回的DHCP配置应答报文,获取DHCP配置应答报文中携带的IP地址信息,其中,所述IP地址信息为DHCP服务器对接收到的DHCP配置请求报文中携帯的预设IP地址范围和DHCP服务器接收该DHCP配置请求报文的端ロ的IP地址对应的地址池范围的交集运算結果。
19.ー种DHCP服务器,其特征在干,该DHCP服务器包括报文接收单元、地址运算单元、地址设置単元、报文发送単元; 所述报文接收单元,用于接收中继设备的DHCP配置请求报文; 所述地址运算单元,用于在报文接收单元接收到中继设备的DHCP配置请求报文时,判断DHCP配置请求报文中携帯的中继地址字段的值是否为O,当中继设备地址的值为O吋,查找接收该DHCP配置请求报文的端ロ的IP地址对应的地址池,对DHCP配置请求报文中携带的IP地址范围和接收DHCP配置请求报文的端ロ的IP地址对应的地址池范围进行交集运算,当中继设备地址的值不为O吋,查找该中继设备地址对应的地址池,对DHCP配置请求报文中携帯的IP地址范围和该中继设备地址对应的地址池范围进行交集运算; 所述地址设置单元,用于将地址运算単元的交集运算结果中的每个IP地址设置为禁用IP; 所述报文发送单元,用于将地址运算単元的交集运算结果中的所有IP地址携带在DHCP配置应答报文中返回给中继设备。
20.根据权利要求19所述的DHCP服务器,其特征在干,该DHCP服务器还包括检测单元; 所述检测単元,用于检测本设备的DHCP配置是否发生变化; 所述报文发送单元,进ー步用于在检测单元检测到本设备的DHCP配置变化时,向中继设备发送指示DHCP配置变化的DHCP配置通告报文,用以使中继设备回收已经分配给各DHCP客户端的IP地址并重新发送DHCP配置请求报文; 所述地址设置单元,用于在检测单元检测到本设备的DHCP配置变化时,恢复所有被禁止IP。
全文摘要
本发明提供了一种动态地址分配方法和设备,该方法中,中继设备向DHCP服务器申请IP地址并将申请的IP地址放入动态地址池;当接收到DHCP客户端的分配IP地址的请求时,如果动态地址池中存在空闲IP地址,则基于动态地址池为DHCP客户端分配IP地址。本发明能够降低DHCP服务器的负载。
文档编号H04L29/12GK102685270SQ20121017160
公开日2012年9月19日 申请日期2012年5月25日 优先权日2012年5月25日
发明者王伟, 王志晟 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1