公开/公告号CN1889572A
专利类型发明专利
公开/公告日2007-01-03
原文格式PDF
申请/专利权人 杭州华为三康技术有限公司;
申请/专利号CN200610099123.0
申请日2006-07-27
分类号H04L29/06(20060101);H04L29/12(20060101);H04L12/56(20060101);
代理机构11018 北京德琦知识产权代理有限公司;
代理人宋志强;麻海明
地址 310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路东华为3com公司
入库时间 2023-12-17 18:04:04
法律状态公告日
法律状态信息
法律状态
2017-05-17
专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L29/06 变更前: 变更后: 申请日:20060727
专利权人的姓名或者名称、地址的变更
2010-06-09
授权
授权
2007-02-28
实质审查的生效
实质审查的生效
2007-01-03
公开
公开
技术领域
本发明涉及动态主机配置协议技术领域,具体涉及因特网协议地址分配方法以及动态主机配置协议中继。
背景技术
随着网络规模的扩大和网络复杂度的提高,网络配置越来越复杂,经常出现计算机位置变化导致因特网协议(IP)地址重分配的情况和计算机数量超过可分配的IP地址的情况,动态主机配置协议(DHCP)就是为满足这些需求而发展起来的。DHCP采用客户端/服务器(Client/Server)方式工作,DHCP客户端向DHCP服务器动态地请求配置信息,DHCP服务器根据策略返回相应的配置信息如:IP地址等。
目前,局域网内的DHCP客户端可以通过DHCP中继与其它子网的DHCP服务器通信,以取得合法的IP地址,从而实现跨网段的IP地址分配。图1为应用DHCP进行跨网段IP地址分配的流程图,如图1所示,其具体步骤如下:
步骤101:DHCP客户端向DHCP中继发送DHCP发现(DISCOVER)报文,以向DHCP服务器申请IP地址。
步骤102:DHCP中继收到该DHCP发现报文后,判断该报文携带的网关IP地址(giaddr)是否为0,若是,执行步骤104;否则,执行步骤103。
DHCP发现报文会经过一个或一个以上的DHCP中继的转发才能到达DHCP服务器,DHCP发现报文在从DHCP客户端发出时,该报文携带的网关IP地址为0,DHCP中继通过判断该报文携带的网关IP地址是否为0,可以得知自身是否为第一个接收到该报文的DHCP中继。
步骤103:DHCP中继直接将该DHCP发现报文转发给DHCP服务器,转至步骤105。
步骤104:DHCP中继以接收该DHCP发现报文的自身接口的主IP地址作为该报文当前携带的网关IP地址,然后将该DHCH发现报文转发给DHCP服务器。
DHCP中继的每个接口通常都对应一个以上的IP地址,且其中一个IP地址为主IP地址。
步骤105:DHCP服务器收到该DHCP发现报文后,判断自身地址池内是否有与该报文携带的网关IP地址同属一个网段的IP地址,若是,执行步骤106;否则,本流程结束。
步骤106:DHCP服务器将自身地址池内与DHCP发现报文携带的网关IP地址同属一个网段的一个IP地址携带在DHCP提供(OFFER)报文中通过DHCP中继发送给DHCP客户端。
DHCP服务器判定自身地址池内没有与DHCP发现报文携带的网关IP地址同属一个网段的IP地址,则不会向DHCP客户端返回DHCP提供报文,DHCP客户端在预定时长内未收到DHCP服务器返回的DHCP提供报文,会向DHCP服务器重新发送DHCP发现报文。
步骤107:DHCP客户端收到该DHCP提供报文后,将该报文携带的IP地址携带在DHCP请求(REQUEST)报文中通过DHCP中继发送给DHCP服务器。
步骤108:DHCP服务器收到该DHCP请求报文后,通过DHCP中继向DHCP客户端返回DHCP确认(ACK)报文,IP地址分配过程结束。
从上述流程可以看出:对于同一DHCP客户端来说,该DHCP客户端每次发送的DHCP发现报文所经过的DHCP中继是相同的,因此每次发送的DHCP发现报文携带的网关IP地址是相同的,若DHCP服务器在第一次收到DHCP发现报文时,在自身地址池内没有查找到与该网关IP地址同属一个网段的IP地址,则本次DHCP客户端将无法申请到IP地址;且,即使DHCP客户端再次发起DHCP发现报文,由于该报文携带的网关IP地址仍然没有改变,所以,除非有其它DHCP客户端刚刚释放了一个与该网关IP地址同属一个网段的IP地址,否则,DHCP客户端仍然无法申请到IP地址。
发明内容
有鉴于此,本发明提供一种IP地址分配方法,以提高DHCP客户端申请IP地址成功的概率;
同时,本发明提供一种DHCP中继,以实现同一DHCP客户端所对应的网关IP地址的更改,从而提高DHCP客户端申请IP地址成功的概率。
为达到上述目的,本发明的技术方案是这样实现的:
一种IP地址分配方法,其特征在于,该方法包括:
A、DHCP中继收到DHCP客户端发来的DHCP发现报文,在自身查找与该DHCP客户端标识绑定的IP地址,根据预先设定的条件将查找到的IP地址或者接收该报文的接口的其它IP地址作为当前网关IP地址,转至步骤B;
B、DHCP中继将携带当前网关IP地址的DHCP发现报文发送给DHCP服务器,DHCP服务器根据所述网关IP地址为DHCP客户端分配IP地址。
步骤A所述根据预先设定的条件将查找到的IP地址或者接收该报文的接口的其它IP地址作为当前网关IP地址包括:DHCP中继判断查找到的IP地址与该DHCP客户端标识的连续绑定次数是否大于预定次数,若是,将该查找到的IP地址作为当前网关IP地址;否则,在接收该DHCP发现报文的接口的其它IP地址中选择一个IP地址作为当前网关IP地址。
所述步骤B之后进一步包括:DHCP客户端向DHCP中继发送DHCP请求报文,DHCP中继收到该报文后,在自身查找与该报文携带的DHCP客户端标识绑定的IP地址,将该IP地址作为当前网关IP地址携带DHCP请求报文中发送给DHCP服务器;DHCP服务器收到该DHCP请求报文后,判断该报文携带的网关IP地址与自身为DHCP客户端分配的IP地址是否属于同一网段,若是,向DHCP客户端返回DHCP确认报文;否则,向DHCP客户端返回DHCP否定报文。
步骤A所述DHCP中继在自身查找与该DHCP客户端绑定的IP地址之后,判断查找到的IP地址与该DHCP客户端标识的连续绑定次数是否小于预定次数之前,进一步包括:
DHCP中继判断是否查找到与该DHCP客户端绑定的IP地址,若是,判断查找到的IP地址与该DHCP客户端标识的连续绑定次数是否小于预定次数;否则,在接收该DHCP发现报文的接口的IP地址中选择一个作为与该DHCP客户端标识绑定的IP地址,并将该IP地址作为当前网关IP地址,转至步骤B。
所述步骤A之前进一步包括:DHCP中继在自身的每个接口为每个客户端设置一个默认IP地址,
所述DHCP中继在接收该DHCP发现报文的接口的IP地址中选择一个作为与该DHCP客户端标识绑定的IP地址为:选择所述为该DHCP客户端设置的默认IP地址作为与该DHCP客户端标识绑定的IP地址。
所述DHCP中继在自身的每个接口为每个DHCP客户端设置一个默认IP地址为:DHCP在每个接口上,将该接口的主IP地址设为所有DHCP客户端的默认IP地址。
所述DHCP中继在自身的每个接口为每个DHCP客户端设置一个默认IP地址包括:DHCP根据DHCP客户端标识在自身的每个接口为每个DHCP客户端设置一个默认IP地址。
所述客户端标识为:客户端的MAC地址,或为:客户端的MAC地址对应的厂商标识。
所述步骤A之前进一步包括:DHCP中继为每个接口的所有IP地址设定一个绑定顺序;
步骤A所述DHCP中继在接收该报文的接口的其它IP地址中选择一个IP地址作为网关IP地址为:根据所述设定的绑定顺序在所述接口的其它IP地址中选择一个IP地址作为网关IP地址。
一种DHCP中继,包括:报文收发模块和绑定IP地址查询模块,其中:
报文收发模块,用于将DHCP客户端发来的DHCP发现报文转发给绑定IP地址查询模块;将绑定IP地址查询模块发来的DHCP发现报文转发给DHCP服务器;
绑定IP地址查询模块,用于在收到报文收发模块发来的DHCP发现报文后,在自身查找与该报文携带的DHCP客户端标识绑定的IP地址,根据预先设定的条件将查找到的IP地址或接收该报文的接口的其它IP地址作为当前网关IP地址携带在DHCP发现报文中发送给报文收发模块。
所述报文收发模块进一步用于,将DHCP客户端发来的DHCP请求报文报文转发给绑定IP地址查询模块,并将绑定IP地址查询模块发来的DHCP请求报文转发给DHCP服务器;
且,绑定IP地址查询模块进一步用于,在收到报文收发模块发来的DHCP请求报文后,在自身查找与该报文携带的DHCP客户端标识绑定的IP地址,若查找到,将该IP地址作为当前网关IP地址携带在DHCP请求报文中发送给报文收发模块,若未查找到,在接收该DHCP请求报文的接口的IP地址中选择一个与该报文携带的DHCP服务器为DHCP客户端分配的IP地址同属一个网段的IP地址作为当前网关IP地址携带在DHCP请求报文中发送给报文收发模块。
所述绑定IP地址查询模块进一步用于,在收到报文收发模块发来的DHCP发现报文后,在自身未查找到与该报文携带的DHCP客户端标识绑定的IP地址,则在接收该报文的自身接口的所有IP地址中选择一个IP地址作为当前网关IP地址携带在该报文中发送给报文收发模块。
与现有技术相比,本发明通过DHCP中继在收到DHCP客户端连续发来的DHCP发现报文后,对每次发送的DHCP发现报文设置不同的网关IP地址,从而提高了DHCP服务器在自身查找到与该网关IP地址同属一个网段的IP地址的概率,即:提高了DHCP客户端申请IP地址成功的概率,且本发明不需改变原有网络地址规划,在不需增加IP地址的情况下,方便地扩大了局域网的地址范围,适应了目前为快速增加的网络用户分配IP地址需求。
附图说明
图1为现有的应用DHCP进行跨网段IP地址分配的流程图;
图2为本发明实施例提供的应用DHCP进行跨网段IP地址分配的流程图;
图3为本发明实施例提供的DHCP中继的结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图2是本发明实施例提供的应用DHCP进行跨网段IP地址分配的流程图,如图2所示,其具体步骤如下:
步骤201:DHCP客户端向DHCP中继发送DHCP发现(DISCOVER)报文,以申请IP地址
步骤202:DHCP中继收到DHCP发现报文后,判断该报文携带的网关IP地址(giaddr)是否为0,若是,执行步骤204;否则,执行步骤203。
步骤203:DHCP中继直接将该DHCP发现报文转发给DHCP服务器,转至步骤210。
步骤204:DHCP中继根据该报文携带的DHCP客户端标识,在自身查找与该DHCP客户端标识绑定的IP地址。
DHCP客户端标识可以是DHCP客户端的媒体接入控制(MAC)地址等。
步骤205:DHCP中继判断是否查找到与DHCP客户端标识绑定的IP地址,若是,执行步骤206;否则,执行步骤209。
步骤206:DHCP中继判断该IP地址与该DHCP客户端标识的连续绑定次数是否小于预设次数,若是,执行步骤208;否则,执行步骤207。
DHCP客户端通过DHCP发现报文申请IP地址,DHCP服务器通过DHCP提供报文向DHCP客户端分配IP地址,若DHCP客户端在预定时长内未收到DHCP提供报文,则会继续发送DHCP发现报文。DHCP中继每收到一次DHCP发现报文,就会在自身查找一次与DHCP客户端标识绑定的IP地址。
步骤207:DHCP中继在接收该DHCP发现报文的接口的其它IP地址中选择一个IP地址,将与DHCP客户端标识绑定的IP地址切换到该选择的IP地址上,并记录DHCP客户端标识与该切换后的IP地址的连续绑定次数为1,将该IP地址作为网关IP地址携带在DHCP发现报文中发送给DHCP服务器,转至步骤210
DHCP中继可预先设定DHCP客户端标识与自身接口的一个以上IP地址的绑定顺序,此后根据该绑定顺序切换与DHCP客户端标识绑定的IP地址。
步骤208:DHCP中继将该IP地址作为网关IP地址携带在DHCP发现报文中发送给DHCP服务器,转至步骤210。
步骤209:DHCP中继在接收该DHCP发现报文的接口的IP地址中选择一个IP地址,将该IP地址作为网关IP地址携带在DHCP发现报文中发送给DHCP服务器,并建立该DHCP发现报文携带的DHCP客户端标识与该IP地址的绑定关系,记录该IP地址与DHCP客户端标识的连续绑定次数为1。
DHCP服务器可将每个接口的主IP地址作为与DHCP客户端绑定的默认IP地址;或者,为了能够实现负载分担,DHCP服务器可预先构造一个以DHCP客户端MAC地址或DHCP客户端MAC地址所属厂商标识为关键字的哈希(hash)算法,根据该算法计算得到IP地址网段,在每个接口上,为每个DHCP客户端选择一个在所述计算得到的IP地址网段内的IP地址作为与该DHCP客户端标识绑定的默认IP地址。
步骤210:DHCP服务器收到该DHCP发现报文后,判断自身地址池内是否有与该报文携带的网关IP地址同属一个网段的IP地址,若是,执行步骤211;否则,本流程结束。
步骤211:DHCP服务器将自身地址池内与DHCP发现报文同属一个网段的一个IP地址携带在DHCP提供(OFFER)报文中发送给DHCP客户端。
步骤212:DHCP客户端收到该DHCP提供报文后,将该报文携带的IP地址携带在DHCP请求(REQUEST)报文中发送给DHCP中继。
步骤213:DHCP中继收到DHCP请求报文后,在自身保存的DHCP客户端标识与IP地址的绑定关系中,查找到与该DHCP请求报文携带的DHCP客户端标识绑定的IP地址,将该IP地址作为网关IP地址携带在DHCP请求报文中发送给DHCP服务器。
这里,若DHCP中继在自身保存的DHCP客户端标识与IP地址的绑定关系中,未查找到与该DHCP请求报文携带的DHCP客户端标识绑定的IP地址,则在接收该DHCP请求报文的接口的所有IP地址中,查找与该报文携带的DHCP客户端从DHCP服务器申请到的IP地址同属一个网段的IP地址,若查找到,则将该查找到的IP地址作为网关IP地址携带在DHCP请求报文中;若未查找到,则将接收该DHCP请求报文的接口的主IP地址作为网关IP地址携带在DHCP请求报文中。
步骤214:DHCP服务器收到DHCP请求报文后,判断该DHCP请求报文携带的网关IP地址与自身为DHCP客户端分配的IP地址是否属于同一网段,若是,向DHCP客户端返回DHCP确认(ACK)报文;否则,向DHCP客户端返回DHCP否定(NAK)报文。
步骤213同样适用于DHCP请求报文用于续租IP地址的情况。另外,若DHCP中继收到DHCP客户端发来的所携带的网关IP地址为0的DHCP拒绝(DELINE)报文或DHCP通知(INFORM)报文或DHCP释放(RELEASE)报文,则也可采用步骤213得到所述报文携带的当前网关IP地址。
图3是本发明实施例提供的DHCP中继的结构示意图,如图3所示,其主要包括:报文收发模块31和绑定IP地址查询模块32,其中:
报文收发模块31:用于接收DHCP客户端发来的DHCP发现报文,在检测到该报文携带的网关IP地址为0时,将该报文转发给绑定IP地址查询模块32,并在收到绑定IP地址查询模块发来的DHCP发现报文后,将该DHCP发现报文转发给DHCP服务器。
进一步地,报文收发模块31用于接收DHCP客户端发来的DHCP请求报文,在检测到该报文携带的网关IP地址为0时,将该报文转发给绑定IP地址查询模块32,并将绑定IP地址查询模块32发来的DHCP请求报文转发给DHCP服务器。
绑定IP地址查询模块32:用于在收到报文收发模块31发来的DHCP发现报文后,在自身查找与该报文携带的DHCP客户端标识绑定的IP地址,若查找到,判断该IP地址与该DHCP客户端标识的连续绑定次数是否小于预定次数,若小于,将该IP地址作为当前网关IP地址携带在DHCP发现报文中发送给报文收发模块31,并将该IP地址与该DHCP客户端标识的连续绑定次数加1,若不小于,在接收该DHCP发现报文的接口的其它IP地址中选择一个IP地址作为当前网关IP地址携带在DHCP发现报文中发送给报文收发模块31,并记录该选择的IP地址与该DHCP客户端标识的连续绑定次数为1;若未查找到,则在接收该DHCP发现报文的接口的所有IP地址中选择一个IP地址作为当前网关IP地址携带在DHCP发现报文中发送给报文收发模块31,并记录该选择的IP地址与该DHCP客户端标识的连续绑定次数为1。
进一步地,绑定IP地址查询模块32用于,在收到报文收发模块31发来的DHCP请求报文后,在自身查找与该报文携带的DHCP客户端标识绑定的IP地址,若查找到,将该IP地址作为当前网关IP地址携带在DHCP请求报文中发送给报文收发模块31;若未查找到,则根据该报文携带的DHCP客户端从DHCP服务器申请到的IP地址,在接收该DHCP请求报文的接口的所有IP地址中查找与所述申请到的IP地址同属一个网段的IP地址,若查找到,则将该查找到的IP地址作为当前网关IP地址携带在DHCP请求报文中发送给报文收发模块31,否则,将接收该DHCP请求报文的接口的主IP地址作为当前网关IP地址携带在DHCP请求报文中发送给报文收发模块31。
本发明中,DHCP服务器的地址池内,应该在DHCP中继的每个接口所对应的每个IP地址所属的网段内都分配对应的IP地址,以避免携带某个网关IP地址的DHCP发现报文对应的DHCP客户端总是申请不到IP地址的情况。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: IP地址的分配方法,动态主机配置协议服务器和IP地址的中继方法
机译: 方法,系统和动态主机配置协议服务器,避免因特网协议地址冲突的客户端
机译: 动态主机配置协议服务器和IP地址分配方法