Ip地址的分配方法及装置的制作方法

文档序号:7997698阅读:204来源:国知局
专利名称:Ip地址的分配方法及装置的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种IP地址的分配方法及装置。
背景技术
动态主机配置协议(Dynamic Host Configure Protocol,简称为DHCP),实现为主机分配网络协议(Internet Protocol,简称为IP)地址及其他网络参数,是一种动态配置协议。DHCP协议采用客户主机-服务器(CLIENT-SERVER)机制,整个配置过程自动实现, 所有配置信息在DHCP服务器(DHCP Server)集中控制。通过配置IP地址使用租期,可以达到IP地址复用效果。由于默认情况下,路由器不会将收到的广播包从一个子网发送到另一个子网。而当DHCP服务器和客户主机不在同一个子网时,充当客户主机默认网关的路由器必须将广播包发送到DHCP服务器所在的子网,这一功能就称为DHCP中继(DHCP Relay)。DHCP Relay 实现了 DHCP客户主机(DHCP CLIENT)和DHCP服务器(DHCP Server)之间的透明交互。目前,DHCP中继网络一般采用如图1所示的拓扑方案。DHCP客户主机经过若干二层透传网络实现与DHCP Relay的二层互通,DHCP Relay和DHCP krver实现三层路由可达,DHCP报文经过DHCP Relay时需要重新报文封装。在DHCP Relay的网络中,每当一个 DHCP客户主机上线一次,DHCP Relay就会和DHCP krver完成一次DHCP过程。图2是根据相关技术的客户主机DHCP报文交互的流程图,如图2所示,一个DHCP 客户主机需要通过两次交换完成网络参数的获得,通过一次交互完成续租过程,通过一次传递完成释放过程。当存在大量DHCP客户主机上线时,DHCP Relay和DHCP krver之间的报文数量将非常可观,占用大量带宽,增加不必要的网络流量,并且给网络带来不安全因素,同时对DHCP Server的报文处理能力也是一个很大的挑战。

发明内容
针对相关技术中,在DHCP中继网络中,每当一个DHCP客户主机上线一次,DHCP Relay需要与DHCP Server完成一次DHCP过程,从而增加DHCP Relay和DHCP Server之间的网络流量的问题,本发明提供了一种IP地址的分配方法及装置,以至少解决上述问题。根据本发明的一个方面,提供了一种IP地址的分配方法,包括DHCP中继接收到第一动态主机配置协议DHCP发现消息后,判断是否需要从DHCP服务器获取网络协议IP地址;在判断结果为是的情况下,所述DHCP中继从所述DHCP服务器获取并存储多个IP地址; 从获取的所述多个IP地址中选择一个IP地址分配给发送所述第一 DHCP发现消息的客户主机。优选地,在所述判断结果为否的情况下,所述方法还包括从本地存储的IP地址中选择一个IP地址分配给所述客户主机。优选地,判断是否从DHCP服务器获取网络协议IP地址包括判断所述DHCP中继是否存储有未分配给客户主机的IP地址。优选地,在判断结果为是的情况下,从DHCP服务器获取多个IP地址包括向所述 DHCP服务器发送第二 DHCP发现消息;从所述DHCP服务器发送的DHCP响应消息中获取请求获取所述多个IP地址。优选地,从所述DHCP服务器发送的DHCP响应消息中获取请求获取所述多个IP地址之后,所述方法还包括向所述DHCP服务器发送携带所述多个IP地址的DHCP请求消息; 在所述多个IP地址与所述DHCP发送的IP地址一致的情况下,接收所述DHCP服务器发送的DHCP确认消息。优选地,接收所述DHCP服务器发送的DHCP确认消息之后,所述方法还包括建立客户主机信息表,其中,所述客户主机信息表用于记录客户主机与为客户主机分配的IP地址的对应关系;接收到客户主机发送的离开报文后,释放为所述客户主机分配的IP地址, 删除所述客户主机信息表中所述客户主机的信息;确定所述DHCP服务器为所述DHCP中继分配的所述多个IP地址的使用时间达到第一预设租期后,判断所述客户主机信息表中是否还存在有客户主机的信息,在判断结果为否的情况下,向所述DHCP服务器发送DHCP释放消息,释放所述多个IP地址,在判断结果为是的情况下,向所述DHCP服务器续租所述多个 IP地址。优选地,在从获取的所述多个IP地址中选择一个IP地址分配给发送所述第一 DHCP发现消息的客户主机之后,所述方法还包括在第二预设租期到达时,判断是否接收来来自所述客户主机的离开报文,如果没有,则向所述客户主机发送通知,通知所述客户主机续租从获取的所述多个IP地址中选择的所述IP地址,其中,所述第一预设租期大于所述
第二预设租期。根据本发明的另一个方面,提供了一种IP地址的分配装置,包括第一判断模块, 用于接收到第一动态主机配置协议DHCP发现消息后,判断是否需要从DHCP服务器获取网络协议IP地址;获取模块,用于在判断结果为是的情况下,从所述DHCP服务器获取并存储多个IP地址;分配模块,用于从获取的所述多个IP地址中选择一个IP地址分配给发送所述第一 DHCP发现消息的客户主机。优选地,所述分配模块还用于在所述判断结果为否的情况下,从本地存储的IP 地址中选择一个IP地址分配给所述客户主机。优选地,所述获取模块包括发送单元,用于向所述DHCP服务器发送第二 DHCP发现消息;获取单元,用于从所述DHCP服务器发送的DHCP响应消息中获取请求获取所述多个 IP地址。优选地,所述装置还包括发送模块,用于向所述DHCP服务器发送携带所述多个 IP地址的DHCP请求消息;接收模块,用于在所述多个IP地址与所述DHCP服务器发送的IP 地址一致的情况下,接收所述DHCP服务器发送的DHCP确认消息。优选地,所述装置还包括建立模块,用于接收到所述DHCP确认消息后,建立客户主机信息表,其中,所述客户主机信息表可以记录客户主机与为客户主机分配的IP地址的对应关系;释放模块,用于在接收到客户主机发送的离开报文后,释放为所述客户主机分配的IP地址,删除所述客户主机信息表中所述客户主机的信息;确定模块,用于判断DHCP中继中的IP地址使用时间达到预设租期;第二判断模块,用于判断所述客户主机信息表中是否还存在有客户主机的信息;所述发送模块,还用于在所述第二判断模块的判断结果为否的情况下,向所述DHCP服务器发送DHCP释放消息,释放本地存储的所有IP地址;续租模块,用于在所述第二判断模块的判断结果为是的情况下,向所述DHCP服务器续租所述多个 IP地址。通过本发明,DHCP Relay可以通一次报文交互,向DHCP krver申请多个IP地址, 实现IP地址及网络参数的批量申请。在客户主机上线时,DHCP Relay可以为客户主机分配从DHCP krver中获取的IP地址,而不必在每一个客户主机上线时都向DHCP krver申请IP地址,从而降低了 DHCP Relay与DHCP Server之间的网络流量。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据相关技术的DHCP中继网络的网络拓扑的示意图;图2是根据相关技术的客户主机DHCP报文交互的流程图;图3是根据本发明实施例的IP地址的分配方法的流程图;图4是根据本发明优选实施例的DHCP Relay对DHCP Discover报文处理方法的流程图;图5是根据本发明优选实施例的DHCP Server对DHCP Discover报文处理方法的流程图;图6是根据本发明优选实施例的DHCP Relay对DHCP Offer报文处理方法的流程图;图7是根据本发明优选实施例的DHCP krver对DHCP Request报文处理方法的流程图;图8是根据本发明优选实施例的DHCP Relay对DHCPACK报文处理方法的流程图;图9是根据本发明优选实施例的DHCP Relay对DHCP Release报文处理方法的流程图;图10是根据本发明实施例的IP地址的分配装置的结构框图;图11是根据本发明实施例的一种优选的IP地址的分配装置的结构框图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。针对相关技术中,在DHCP中继网络中,每当一个DHCP客户主机上线一次,DHCP Relay需要与DHCP Server完成一次DHCP过程,从而增加DHCP Relay和DHCP Server之间的网络流量的问题,本发明实施例提供了一种IP地址的分配方法及装置,在本发明实施例中,DHCP Relay可以通过一次报文交互,向DHCP Server申请多个IP地址,实现IP地址及网络参数的批量申请。在客户主机上线时,DHCP Relay可以为客户主机分配从DHCP Server 中获取的IP地址,降低了 DHCP Relay与DHCP Server之间的网络流量。根据本发明实施例,提供了一种IP地址的分配方法,可以但不限于在如图2所示的DHCP中继网络中的DHCP Relay中实现DHCP客户主机IP地址及网络参数的批量申请。图3是根据本发明实施例的IP地址的分配方法的流程图,如图3所示,该方法可以包括以下几个步骤(步骤S302-步骤S306)步骤S302,DHCP中继接收到第一动态主机配置协议(DHCP)发现消息后,判断是否需要从DHCP服务器获取网络协议IP地址。步骤S304,在判断结果为是的情况下,DHCP中继从DHCP服务器获取并存储多个IP 地址。步骤S306,从获取的多个IP地址中选择一个IP地址分配给发送第一 DHCP发现消息的客户主机。通过本发明实施例,接收到DHCP发现消息后,首先判断是否需要从DHCP服务器获取IP地址及相应网络参数,在判断结果为是的情况下,从DHCP服务器获取多个IP地址,从获取的多个IP中选取一个IP地址及相应网络参数,分配给请求分配IP地址及相应网络参数的客户主机。同时,可以保存DHCP服务器分配的多个IP地址,从而当其他客户主机请求分配IP地址及相应网络参数时,可以直接从剩余的IP地址中为客户主机分配IP地址及相应网络参数,而无需与DHCP krver进行报文交互,从而降低DHCP Relay与DHCP Server 之间的网络流量,同时降低对DHCP Server处理能力的要求。下面对上述各个步骤进行描述。目前,在DHCP中继网络中,客户主机上线时,可以通过DHCP过程获取IP地址及相应网络参数。客户主机向DHCP Relay发送DHCP发现消息(DHCP Discover报文),DHCP Relay接收到DHCP发现消息后,对接收到的DHCP发现消息进行重新封装,并向DHCP Server 发送重新封装后的DHCP发现消息,请求DHCP Server分配IP地址及相应网络参数;DHCP krver接收到重新封装的DHCP发现消息后,为客户主机分配IP地址及相应网络参数,并向 DHCP Relay发送携带分配的IP地址及相应网络参数的DHCP响应消息(DHCP OFFER) ;DHCP Relay接收到DHCP响应消息后,将DHCP Server分配的IP地址及相应网络参数发送至客户主机,从而客户主机通过分配的IP地址及相应网络参数接入网络。然而,当存在大量客户主机上线时,DHCP Relay从DHCP krver分别为每一个上线的客户主机获取IP地址及相应网络参数,从而DHCP Relay和DHCP Server之间将产生大量的报文交互,从而占用网络带宽,并且对DHCP krver的处理能力带来挑战。为了减少 DHCP Relay与DHCP Server之间的报文交互,以降低DHCP Relay与DHCP Server之间的网络流量,在本发明实施例中,DHCP Relay可以一次向DHCP Server申请多个IP地址及相应网络参数。客户主机上线时,DHCP Relay将从DHCP Server申请的多个IP地址中的一个分配给请求IP地址及相应网络参数的客户主机。在上述过程中,DHCP Relay无需与DHCP Server进行报文交互,从而降低DHCP Relay与DHCP Server之间的网络流量,降低对DHCP krver处理能力的要求。此外,在DHCP Relay和DHCP krver之间可以采用相关认证机制,提高安全性能。客户主机上线时,向DHCP Relay发送DHCP发现消息(即第一 DHCP发现消息), DHCP Relay接收到客户主机发送的DHCP发现消息后,可以判断是否需要从DHCP服务器获取IP地址及相应网络参数,在需要从DHCP krver获取IP地址及相应网络参数时,从DHCP Server获取多个IP地址及相应网络参数;在不需要从DHCP获取IP地址及相应网络参数时,从DHCP Relay中存储的IP地址中选取一个IP地址分配给客户主机。在实际应用中根据需要,可以配置DHCP Relay从DHCP krver批量申请IP地址及相应网络参数的条件,DHCP Relay根据预设条件判断是否需要从DHCP krver获取IP 地址。例如,设置在DHCP Relay剩余的IP地址数量的预设阈值,DHCP Relay接收到客户主机的DHCP发现消息后,判断DHCP Relay中剩余的IP地址的数量是否小于预设阈值,当 DHCP Relay中剩余的IP地址的数量小于预设阈值时,DHCP Relay从DHCP Server中获取多个IP地址及相应网络参数;当DHCP Relay中剩余的IP地址的数量大于预设阈值时,可以直接从DHCP Relay中剩余的IP地址中为客户主机分配IP地址及相应网络参数。或者,也可以在接收到DHCP发现消息后,判断DHCP Relay中是否存储有IP地址。 如果DHCP Relay中存储有IP地址,可以直接从DHCP Relay中存储的IP地址中选取一个 IP地址及相应网络参数,分配给请求网络参数的客户主机;如果DHCP Relay中未存储可供客户主机使用的IP地址及相应网络参数,DHCP Relay可以从DHCP Server获取多个IP地址及相应网络参数,获取到多个IP地址后,DHCP Relay从获取的多个IP地址中选取一个 IP地址及相应网络参数,分配给发送DHCP发现消息的客户主机,并且DHCP Relay可以存储获取的多个IP地址及网络参数,在其他客户主机上线时,分配给其他客户主机。进一步地,还可以设置在DHCP Relay在接收到DHCP发现消息后,判断接收到DHCP 发现消息是否为当前周期中第一次接收到DHCP发现消息,即接收到DHCP发现消息后,判断DHCP Relay是否是在每一次批量释放IP地址之后第一次接收到DHCP发现消息,当 DHCPRelay是第一次接收到DHCP发现消息,DHCP Relay从DHCP Server获取多个IP地址及相应网络参数;当DHCP Relay不是第一次接收到DHCP发现消息,可以确定DHCP Relay 已经从DHCP Server中获取到多个IP地址,DHCP Relay可以从本地存储的多个IP地址中选取一个IP地址及相应网络参数,分配给发送DHCP发现消息的客户主机。如果DHCP Relay需要从DHCP Server获取多个IP地址,DHCP Relay可以对接收到的DHCP发现消息进行重新封装,并向DHCP krver发送重新封装后的DHCP发现消息(第二 DHCP发现消息),请求DHCP Server为DHCP Relay分配多个IP地址及相应网络参数, DHCPServer根据实际情况为DHCP Relay分配IP地址,并可以将分配的IP及相应网络参数携带在DHCP响应消息中,发送至DHCP Relay ;DHCP Relay接收DHCP krver发送的DHCP 响应消息,并可以从DHCP响应消息中获取为其分配的多个IP地址及相应的网络参数。同时,DHCP Relay可以将接收到的IP地址及相应网络参数发送至DHCP Server, 例如,将IP地址及相应网络参数携带在DHCP请求消息(DHCP Request报文)中,DHCP krver对分配的IP地址信息进行验证,验证DHCP Relay接收到的IP地址信息与为其分配的IP地址信息一致后,向DHCP Relay发送DHCP确认消息(DHCP ACK报文),DHCP Relay 接收DHCP Server发送的DHCP确定消息,并存储为其分配的IP地址及相应网络参数。在实际应用中,分配IP地址的数量可以由DHCP Relay确定,也可以由DHCP krver确定。在DHCP Relay确定分配IP地址的数量时,DHCP Relay发送的DHCP发现消息中可以携带申请分配IP地址的数量;在DHCP Server确定分配IP地址的数量时,DHCP Server可以根据DHCP Relay的情况确定为其分配的IP地址的数量,例如,根据DHCP Relay 拥有的客户主机数量,和/或DHCP Relay的IP地址申请历史记录,以及DHCP Server中未分配的IP地址的余量等,确定为DHCP Relay分配IP地址的数量。
在本发明实施例的一个优选实施方式中,DHCP Relay为了管理为其分配的IP地址及相应网络参数,可以建立客户主机信息表,用来记录客户主机与为该客户主机分配的 IP地址及相应网络参数的对应关系。客户主机在离线时,可以向DHCP Relay发送离开报文,DHCP Relay接收到客户主机发送的离开报文后,释放为客户主机分配的IP地址,删除客户主机信息表中相应客户主机的信息。在其他客户主机上线时,可将IP地址在此分配给请求IP地址及相应网络参数的主机。为了提高IP地址的利用率,可以为已分配的IP地址设置租期,优选地,DHCP krver可以为IP地址段分配一个较长的租期,DHCP Relay为客户主机分配一个较短租期, 这样可以实现用户的保活,也避免了 DHCP Relay和DHCP krver之间的频繁报文交互。在 IP地址的租期达到时,客户主机可以向DHCP Relay续租IP地址及相应网络参数,在DHCP Server为IP地址段分配的较长的租期到达时,DHCP Relay也可以继续向DHCP Server续租IP地址及网络参数。在本发明实施例中,为了减少DHCP中继与DHCP服务器之间的信令交互,DHCP可以一次性释放DHCP服务器为该DHCP中继分配的多个IP地址,例如,当DHCP 中继确定DHCP服务器分配的多个IP地址(例如,一个IP地址段)的使用时间达到预设租期(即上述的较长的租期)时,判断客户主机信息表中是否还存在有客户主机的信息,在判断结果为否的情况下,向DHCP服务器发送DHCP释放消息,释放本地存储的所有IP地址,在判断结果为是的情况下,向DHCP服务器续租为其分配的多个IP地址。在本发明的一个优选实施例中,DHCP Relay可以利用DHCP报文中的Option字段, 完成DHCP Relay和DHCP krver之间IP地址及相应网络参数的批量申请。在本发明优选实施例中,可以利用DHCP协议的2个自定义Option字段,可以分别称为Option-A和Option-B。可以在DHCP Relay做客户主机数分配规划。例如,规划该 DHCP Relay下挂100个客户主机,那么当该DHCP Relay收到第一个DHCP客户主机发来的 DHCP Discover报文进行报文重新封装时,插入Option-A,Option-A中含有客户主机数规划信息申请100个IP地址及相应网络参数。如图4所示,当DHCP Relay收到DHCP Discover报文后,可以判断发送DHCP Discover报文的客户主机是否为第一个客户主机,如果是第一个客户主机,DHCP Relay在对该报文进行重新封装时,插入Option-A选项字段,该字段携带总的用户规划数。如果该客户主机不是第一个客户主机,再判断DHCP Relay申请的IP地址段是否有剩余,如果有, 则DHCP Relay执行DHCP Server的功能,直接向DHCP客户主机分配IP地址及网络参数, 如果DHCP Relay中没有剩余IP地址,则可以拒绝该客户主机接入,并且给出告警打印。如图5所示,当 DHCP Server 收到携带Option-A 的DHCP Discover 报文,判断DHCP 服务器是否识别Option-A,如果该DHCP Server能够识别Option-A,可以解析Option-A中携带的参数信息(申请IP地址及相应网络地址的数量、DHCP Relay客户主机规划数等信息)。如果DHCP krver能够满足Option-A中描述的要求,则可以一次分配100个IP地址,并可以将相关网络参数一起封装到Option-B中,插入DHCP Offer报文,发送给DHCP Relay。如果DHCP krver中剩余的IP地址不足100个,就需要特殊处理。例如,不为该 DHCP Relay分配IP地址,认为这是不正常状态,并且给出告警;或者,为每一次DHCP请求, 分配一个IP地址,并给出告警;或者根据DHCP krver中剩余的IP地址的数量确定为DHCP Relay分配的IP地址的数量。如果该DHCP Server不支持Option-A选项,那么可直接忽略Option-A选项,进行普通流程处理,也不会在应答报文中插入Option-B选项。如图6所示,当DHCP Relay收到DHCP Offer报文,判断DHCP Offer报文是否携带 Option-B选项,如果报文携带正确的Option-B选项,则建立临时用户表项,向DHCP Server 发送携带Option-A选项的DHCP Request报文,将Option-B选项中的信息复制到Option-A 选项并封装到DHCP Request报文中。如果DHCP Relay收到的DHCP Offer报文不携带 Option-B选项,则执行普通DHCP报文交互流程。如图7所示,当DHCP Server收到携带Option-A的DHCP Request报文,对比接收到的IP地址及相应网络参数与DHCP Server上建立的临时表项是否一致,如果一致,则建立本地用户信息,并发送携带Option-B的DHCP ACK报文进行确认。如果不一致则拒绝用户接入;当DHCP Request报文中不含有Option-A选项,说明是普通DHCP流程,则执行普通 DHCP报文交互。如图8所示,当DHCP Relay接收到DHCP ACK报文,判断是否携带Option-B选项, 如果携带,则DHCP Relay建立用户信息表,并向第一个客户主机发送DHCP ACK报文。如果 DHCP Offer报文没有携带Option-B选项则进行普通报文的交互过程。当网络中的客户主机再次发起DHCP过程获取IP地址及相应网络参数时,DHCP Relay可以直接推送IP地址及相关参数,充当DHCP krver的作用,而无需在DHCP Relay和DHCP krver之间进行报文交互。当已经获得IP及网络参数的客户主机进行续租时,报文只需在用户和DHCP Relay之间完成交互即可。当DHCP Relay的地址段租期到期,可以在DHCP Relay和DHCP krver之间完成一个续租流程,与上述报文交互类似,在此不做赘述。如图9所示,当DHCP Relay收到离开报文时,可以判断是否为最后一个用户。当该用户为最后一个离开的用户时,DHCP Relay可以进行以下两种方式处理1)清除本地用户信息;2)向DHCP krver发送DHCP Release消息,将所有IP地址释放。当该用户不是最后一个用户,则DHCP Relay无需和DHCP Server进行报文交互,只需在本地清除用户信息即可。在实际应用中,还可以在DHCP Relay对客户主机的MAC和IP地址进行预先绑定, 只为绑定的MAC地址分配IP地址,以提高安全性。通过本发明优选实施例,对DHCP报文交互进行优化,克服了在大型网络拓扑中, DHCP报文交互数据流量较大,给DHCP Server带来较大负担的问题,并且完全兼容现有协议标准,大幅度减少DHCP报文交互数量,并在一定程度提高安全性能。根据本发明实施例,还提供了一种IP地址的分配装置,可以位于DHCP Relay中在 DHCP网络中实现为客户主机分配IP地址及相应网络参数。图10是根据本发明实施例的IP地址的分配装置的结构框图,如图10所示,该装置可以包括第一判断模块10、获取模块20和分配模块30。其中,第一判断模块10,用于接收到第一 DHCP发现消息(即客户主机发送的DHCP发现消息)后,判断是否需要从DHCP 服务器(DHCP Server)获取IP地址;获取模块20,与第一判断模块10相耦合,用于在判断结果为是的情况下,从DHCP服务器获取并存储多个IP地址;分配模块30,与获取模块20相耦合,用于从获取的多个IP地址中选择一个IP地址分配给发送第一 DHCP发现消息的客户主机。
为了避免增加DHCP Relay与DHCP Server之间的网络流量,DHCP Relay可以一次向DHCP krver申请多个IP地址及相应网络参数。当网络中的客户主机上线时,DHCP Relay可以将从DHCP Server申请的多个IP地址中的一个分配给请求IP地址及相应网络参数的客户主机。在这个过程中,DHCP Relay无需与DHCP krver进行报文交互,从而能够有效地降低DHCP Relay与DHCP krver之间的网络流量,同时DHCP无需处理过多的DHCP 报文,从而降低对DHCP Server处理能力的要求。客户主机上线时,可以向DHCP Relay发送DHCP发现消息,DHCP Relay接收到客户主机发送的DHCP发现消息后,第一判断模块10可以判断是否从DHCP服务器获取IP地址及相应网络参数,在需要从DHCP获取IP地址及相应网络参数时,获取模块20可以从 DHCPServer获取多个IP地址及相应网络参数;如果DHCP Relay不需要从DHCP Server获取IP地址及相应网络参数,分配模块30可以从DHCP Relay本地存储的IP地址中选取一个IP地址,分配给请求IP地址及相应网络参数的客户主机。在实际应用中根据需要,可以配置DHCP Relay从DHCP krver批量申请IP地址及相应网络参数的条件,DHCP Relay根据预设条件判断是否从DHCP krver获取IP地址。 例如,设置在DHCP Relay剩余的IP地址数量的预设阈值,接收到客户主机的DHCP发现消息后,第一判断模块10可以判断DHCP Relay中剩余的IP地址的数量是否小于预设阈值, 当DHCP Relay中剩余的IP地址的数量小于预设阈值时,获取模块20可以从DHCP Server 中获取多个IP地址及相应网络参数;当DHCP Relay中剩余的IP地址的数量大于预设阈值时,分配模块30可以从DHCP Relay中剩余的IP地址中为客户主机分配一个IP地址及相应网络参数。或者,第一判断模块10也可以在接收到DHCP发现消息后,判断DHCP Relay中是否存储有IP地址。如果DHCP Relay中存储有可供客户主机使用的IP地址,分配模块30可以从DHCP Relay中存储的IP地址中选取一个IP地址及相应网络参数,分配给请求网络参数的客户主机;如果DHCP Relay中未存储IP地址,获取模块20可以从DHCP Server获取多个IP地址及相应网络参数,获取到多个IP地址后,分配模块30从获取的IP地址中选取一个IP地址及相应网络参数,分配给发送DHCP发现消息的客户主机,并且DHCP Relay可以存储获取的多个IP地址及网络参数,在其他客户主机上线时,分配给其他客户主机。进一步地,还可以设置在DHCP Relay在接收到DHCP发现消息后,第一判断模块 10判断接收到DHCP发现消息是否为第一次接收到DHCP发现消息,即接收到DHCP发现消息后判断DHCP Relay是否是第一次接收到DHCP发现消息,当DHCP Relay是第一次接收到DHCP发现消息,获取模块20可以从DHCP Server获取多个IP地址及相应网络参数;当 DHCP Relay不是第一次接收到DHCP发现消息,可以确定DHCP Relay已经从DHCP Server 中获取到多个IP地址,分配模块30可以从已获取的多个IP地址中选取一个IP地址及相应网络参数,分配给相应的客户主机。在获取模块20可以从DHCP Server获取多个IP地址的情况下,DHCP Relay可以对接收到的DHCP发现消息进行重新封装,并向DHCP Server发送重新封装后的DHCP发现消息(称为第二 DHCP发现消息),请求DHCP Server为其分配多个IP地址及相应网络参数,DHCP Server为DHCP Relay分配IP地址,将分配的IP及相应网络参数携带在DHCP响应消息中发送至DHCP Relay ;DHCP Relay接收DHCP krver发送的DHCP响应消息,从中获取为其分配的IP地址及相应的网络参数。因此,在本发明实施例的一个优选实施方式中, 为了实现上述目的,获取模块20可以包括发送单元,用于向DHCP服务器发送第二 DHCP发现消息(即重新封装后的DHCP发现消息);获取单元,用于从DHCP服务器发送的DHCP响应消息中获取请求获取多个IP地址及相应的网络参数。同时,DHCP Relay可以将接收到的IP地址发送至DHCP服务器,DHCP对分配的IP 地址信息进行验证,验证通过后,例如,接收到的IP地址信息与分配的IP地址信息一致后, 向DHCP Relay发送DHCP确认消息,DHCP Relay接收DHCP服务器发送的DHCP确定消息,并存储为其分配的IP地址及相应网络参数。因此,在本发明实施例的一个优选实施方式中, 如图11所示,上述装置还可以包括发送模块40,用于向DHCP服务器发送携带多个IP地址的DHCP请求消息;接收模块50,用于在多个IP地址与DHCP服务器发送的IP地址一致的情况下,接收DHCP服务器发送的DHCP确认消息。通过本优选实施方式,可以提高IP地址分配的可靠性,保证IP地址分配的准确性。在本发明实施例的一个优选实施方式中,DHCP Relay为了管理为其分配的IP地址及相应网络参数,可以建立客户主机信息表,因此,上述装置还可以包括建立模块,用于接收到DHCP确认消息后,建立客户主机信息表,其中,客户主机信息表可以记录客户主机与为客户主机分配的IP地址的对应关系。通过本优选实施方式,DHCP Relay可以方便的对IP地址进行管理。客户主机在离线时,可以向DHCP Relay发送离开报文,DHCP Relay接收到客户主机发送的离开报文后,释放为客户主机分配的IP地址,删除客户主机信息表中相应客户主机的信息。在其他客户主机上线时,可将IP地址在此分配给请求IP地址及相应网络参数的主机。因此,上述装置还可以包括释放模块,用于在接收到客户主机发送的离开报文后, 释放为客户主机分配的IP地址,删除客户主机信息表中对应的客户主机的信息。为了提高IP地址的利用率,可以为已分配的IP地址设置租期,优选地,DHCP krver可以为IP地址段分配一个较长的租期,DHCP Relay为客户主机分配一个较短租期, 这样可以实现用户的保活,也避免了 DHCP Relay和DHCP krver之间的频繁报文交互。在 IP地址的租期达到时,客户主机和DHCP Relay可以续租IP地址及相应网络参数。DHCP中继确定DHCP中继中的IP地址使用时间达到预设租期后,判断客户主机信息表中是否还存在有客户主机的信息,在判断结果为否的情况下,向DHCP服务器发送DHCP释放消息,释放本地存储的所有IP地址,在判断结果为是的情况下,向DHCP服务器续租为其分配的多个IP 地址。为了实现上述目的,上述装置还可以包括确定模块,用于判断DHCP中继中的IP 地址使用时间达到预设租期;第二判断模块,用于判断客户主机信息表中是否还存在有客户主机的信息;在判断结果为否的情况下,发送模块还用于向DHCP服务器发送DHCP释放消息,释放本地存储的所有IP地址;在判断结果为是的情况下,续租模块用于向DHCP服务器续租为期分配的IP地址。从以上的描述中,可以看出,本发明实施例实现了如下技术效果DHCP Relay可以通过一次报文交互,向DHCP krver申请多个IP地址,实现IP地址及网络参数的批量申请。 在客户主机上线时,DHCP Relay可以为客户主机分配从DHCP krver中获取的IP地址,降低了 DHCP Relay 与 DHCP Server 之间的网络流量。同时,DHCP Relay 与 DHCP Server 之间可以采用相关认证机制,提高安全性;还可以在DHCP Relay对客户主机的MAC和IP地址进行预先绑定,只为绑定的MAC地址分配IP地址,提高安全性。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种IP地址的分配方法,其特征在于,包括DHCP中继接收到第一动态主机配置协议DHCP发现消息后,判断是否需要从DHCP服务器获取网络协议IP地址;在判断结果为是的情况下,所述DHCP中继从所述DHCP服务器获取并存储多个IP地址;从获取的所述多个IP地址中选择一个IP地址分配给发送所述第一 DHCP发现消息的客户主机。
2.根据权利要求1所述的方法,其特征在于,在所述判断结果为否的情况下,所述方法还包括从本地存储的IP地址中选择一个IP地址分配给所述客户主机。
3.根据权利要求1所述的方法,其特征在于,判断是否从DHCP服务器获取网络协议IP 地址包括判断所述DHCP中继是否存储有未分配给客户主机的IP地址。
4.根据权利要求1所述的方法,其特征在于,在判断结果为是的情况下,从DHCP服务器获取多个IP地址包括向所述DHCP服务器发送第二 DHCP发现消息;从所述DHCP服务器发送的DHCP响应消息中获取请求获取所述多个IP地址。
5.根据权利要求4所述的方法,其特征在于,从所述DHCP服务器发送的DHCP响应消息中获取请求获取所述多个IP地址之后,所述方法还包括向所述DHCP服务器发送携带所述多个IP地址的DHCP请求消息; 在所述多个IP地址与所述DHCP服务器发送的IP地址一致的情况下,接收所述DHCP 服务器发送的DHCP确认消息。
6.根据权利要求5所述的方法,其特征在于,接收所述DHCP服务器发送的DHCP确认消息之后,所述方法还包括建立客户主机信息表,其中,所述客户主机信息表用于记录客户主机与为客户主机分配的IP地址的对应关系;接收到客户主机发送的离开报文后,释放为所述客户主机分配的IP地址,删除所述客户主机信息表中所述客户主机的信息;确定所述DHCP服务器为所述DHCP中继分配的所述多个IP地址的使用时间达到第一预设租期后,判断所述客户主机信息表中是否还存在有客户主机的信息,在判断结果为否的情况下,向所述DHCP服务器发送DHCP释放消息,释放所述多个IP地址,在判断结果为是的情况下,向所述DHCP服务器续租所述多个IP地址。
7.根据权利要求6所述的方法,其特征在于,在从获取的所述多个IP地址中选择一个 IP地址分配给发送所述第一 DHCP发现消息的客户主机之后,所述方法还包括在第二预设租期到达时,判断是否接收来来自所述客户主机的离开报文,如果没有,则向所述客户主机发送通知,通知所述客户主机续租从获取的所述多个IP地址中选择的所述IP地址,其中,所述第一预设租期大于所述第二预设租期。
8.一种IP地址的分配装置,其特征在于,包括第一判断模块,用于接收到第一动态主机配置协议DHCP发现消息后,判断是否需要从 DHCP服务器获取网络协议IP地址;获取模块,用于在判断结果为是的情况下,从所述DHCP服务器获取并存储多个IP地址;分配模块,用于从获取的所述多个IP地址中选择一个IP地址分配给发送所述第一 DHCP发现消息的客户主机。
9.根据权利要求8所述的装置,其特征在于,所述分配模块还用于在所述判断结果为否的情况下,从本地存储的IP地址中选择一个IP地址分配给所述客户主机。
10.根据权利要求8所述的装置,其特征在于,所述获取模块包括 发送单元,用于向所述DHCP服务器发送第二 DHCP发现消息;获取单元,用于从所述DHCP服务器发送的DHCP响应消息中获取请求获取所述多个IP 地址。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括发送模块,用于向所述DHCP服务器发送携带所述多个IP地址的DHCP请求消息; 接收模块,用于在所述多个IP地址与所述DHCP服务器发送的IP地址一致的情况下, 接收所述DHCP服务器发送的DHCP确认消息。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括建立模块,用于接收到所述DHCP确认消息后,建立客户主机信息表,其中,所述客户主机信息表可以记录客户主机与为客户主机分配的IP地址的对应关系;释放模块,用于在接收到客户主机发送的离开报文后,释放为所述客户主机分配的IP 地址,删除所述客户主机信息表中所述客户主机的信息;确定模块,用于判断DHCP中继中的IP地址使用时间达到预设租期; 第二判断模块,用于判断所述客户主机信息表中是否还存在有客户主机的信息; 所述发送模块,还用于在所述第二判断模块的判断结果为否的情况下,向所述DHCP服务器发送DHCP释放消息,释放本地存储的所有IP地址;续租模块,用于在所述第二判断模块的判断结果为是的情况下,向所述DHCP服务器续租所述多个IP地址。
全文摘要
本发明公开了一种IP地址的分配方法及装置。其中,该方法包括DHCP中继接收到第一动态主机配置协议DHCP发现消息后,判断是否需要从DHCP服务器获取网络协议IP地址;在判断结果为是的情况下,从DHCP服务器获取并存储多个IP地址;从获取的多个IP地址中选择一个IP地址分配给发送第一DHCP发现消息的客户主机。通过本发明,降低了DHCP网络中DHCP中继与DHCP服务器之间的网络流量,同时降低了对DHCP服务器处理能力的要求。
文档编号H04L12/56GK102413203SQ20111039324
公开日2012年4月11日 申请日期2011年12月1日 优先权日2011年12月1日
发明者张玉莹 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1