专利名称:一种ip地址分配方法
技术领域:
本发明涉及网络技术领域,尤其涉及一种IP地址分配方法。
背景技术:
动态地址分配是互联网的一种地址分配方法。如目前普遍使用的DHCP协议,通过该协议,客户端可以自动从DHCP服务器获得IP地址、网关、DNS服务器等基本网络配置信息,从而实现即插即用的上网方式,避免了复杂的网络参数配置。图 1 是目前传统 DHCP (Dynamic Host Configuration Protocol,动态主机设置协议)服务器的基本工作模式。DHCP服务器在分配地址时,每次会直接从备选地址池中选取一个地址分配给客户端。在这种模式下,管理员通过配置文件静态定义“备选地址池”空间, 备选地址池中的所有地址都可以作为有效地址分配给客户端。为了扩展DHCP服务器功能,还可以通过标准OPTION选项向客户端分配特殊的地址参数,如IETF RFC2132规定的0PTI0N43可以为客户端分配预先定义好的无线网控制器地址。但是在IPv6环境下,某些应用对IPv6地址格式有特殊要求,这使得DHCP服务器必须能够按照策略对备选地址池空间进行过滤和筛选,从中选出符合要求的有效地址分配给客户端,而目前的传统DHCP服务器是不支持这种工作模式的。
发明内容
(一)要解决的技术问题本发明要解决的技术问题是如何为客户端分配特殊形式的地址。( 二 )技术方案为解决上述技术问题,本发明提供了 IP地址分配方法,包括以下步骤Si、根据动态策略从备选地址池中选择一个或一段地址作为有效地址放入有效地址池中,所述动态策略是DHCP服务器所调用的一段预先制定的对备选地址池进行筛选的
程序算法。优选地,在步骤Sl之后还包括步骤S2 调用负载均衡算法从有效地址池中选取有效地址分配给客户端。优选地,步骤Sl中,在将有效地址放入有效地址池中的同时,调用负载均衡算法从有效地址池中选取有效地址分配给客户端。优选地,当选取有效地址分配给客户端的同时,将所选的有效地址标记为已分配。优选地,当有客户端释放了地址,则将所释放的地址回收到有效地址池中,且将所回收的地址标记为未分配,后续客户端的地址请求则从有效地址池的未分配地址中选取。优选地,步骤Sl和步骤S2均由DHCP服务器来执行。优选地,所述备选地址池是通过配置文件静态定义的初始地址分配空间。优选地,所述负载均衡算法为轮询算法、随机算法或散列算法。
(三)有益效果本发明通过加入地址筛选步骤,扩展了 DHCP服务器的功能,可按照策略为客户端分配特殊格式的地址,从而满足客户端对复杂格式地址分配的需求。
图1示出了现有技术中使用DHCP协议进行地址分配的工作模式;图2示出了本发明中使用DHCP协议进行地址分配的工作模式。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。在IPv6网络环境下,某些应用对IPv6地址有特殊要求(如特殊的地址组成格式),本发明即是针对这种情况,由DHCP服务器在运行时动态调用一种“策略”,对初始地址池进行筛选,从中选出符合要求的有效地址分配给客户端,满足客户端对特殊形式地址的分配需求。首先对本发明中用到的有关术语进行说明。备选地址池由管理员通过配置文件静态定义的初始地址分配空间,其中的地址称为“备选地址”。有效地址池由备选地址池中的地址按照动态策略筛选出来的地址或地址块组成,这些按照动态策略筛选出来的地址或地址块称为“有效地址”,是能够分配给客户端的合法地址。动态策略由管理员通过程序算法定义的筛选备选地址的方法,该程序算法由 DHCP服务器在进行地址分配时动态调用。有效地址是通过调用动态策略这个程序算法得到的。DHCP服务器指支持IPv4和IPv6动态地址分配的DHCP/DHCPv6服务器。本发明中所述“地址”是指IPv4和IPv6地址。本发明中所述“地址分配”是指IPv4和IPv6地址分配。如图2所示,本发明与传统DHCP服务器不同之处是增加了 “动态策略”模块。通过动态调用该模块,DHCP服务器可以从备选地址池中按照策略选出符合要求的有效地址。 同时,该模块还可以将选出的有效地址放入有效地址池以备后续分配之需。一般情况下,为了使地址分配更加均勻平衡,传统的DHCP服务器会采用负载均衡算法(如轮询、随机或散列等算法)来选取地址,这种方法与本发明有本质不同在传统 DHCP服务器中,备选地址池中的所有地址都是有效地址,负载均衡算法只是为了使地址选择分布得更均勻;而在本发明中,备选地址池中的地址并不都是有效地址,动态策略的作用是从备选地址池中将有效地址筛选出来。在本发明中,动态策略与负载均衡算法并不冲突,DHCP服务器可同样调用负载均衡算法从有效地址池中均勻地选取有效地址分配给客户端。实施例一备选地址池2001:2000::/32
动态策略要求返回给客户端的地址中第32-39位(最左端为0位,最右端为127 位)全为1,第48-127位全为0,地址顺序为由低到高。执行过程当客户端第一次请求地址时,DHCP服务器调用动态策略,从备选地址池中选出有效地址2001:2000:FFOl 返回给客户端,同时将该地址放入有效地址池,并标记为“已分配”;当客户端第二次请求地址时,DHCP服务器调用动态策略,从备选地址池中选出有效地址2001:2000:FF02:返回给客户端,同时将该地址放入有效地址池,并标记为“已分配”;如此类推,直到将备选地址池全部筛选一遍。若此期间有客户端释放了地址,则在有效地址池中将该地址进行回收,标记为“未分配”。当又有新的客户端请求地址时,服务器检查有效地址池中是否有“未分配”地址,并参照传统DHCP服务器的分配方法进行地址分配。实施例二备选地址池2001:2000::/32动态策略将客户端MAC地址嵌入到返回地址的最右边48位,其他位全为0。执行过程当客户端00:26:c6:3a:釙36请求地址时,DHCP服务器调用动态策略,从备选地址池中选出有效地址2001:2000: :0026:c63a:5b36分配给客户端;当客户端44:2a :60:72 99: e7请求地址时,DHCP服务器调用动态策略,从备选地址池中选出有效地址2001:2000: :442a:6072:99e7分配给客户端;如此类推。实施例三备选地址池2001:2000::/32动态策略按照由低到高的顺序将10. 0. 0. 0/24网段的v4地址嵌入到自左至右第 32-63位,其他位全为0。要求每次分配返回给客户端一个v4地址对应的大小为/64的v6 地址段。执行过程当客户端第一次请求地址时,DHCP服务器调用动态策略,从备选地址池中选出 2001:2000:A0:1::/64返回给客户端,同时将该地址放入有效地址池,标记为“已分配”;当客户端第二次请求地址时,DHCP服务器调用动态策略,从备选地址池中选出 2001:2000:A0:2: :/64返回给客户端,同时将该地址放入有效地址池,标记为“已分配”;如此类推,直至将10. 0. 0. 0/24这个网段对应的V6地址段全部筛选完毕。若此期间有客户端释放了地址,则在有效地址池中将该地址进行回收,标记为“未分配”;后续客户端的地址请求将从有效地址池“未分配”地址中选取。实施例四备选地址池2001:2000::/32动态策略要求按照由低到高的顺序每次返回给客户端一块大小为/48的地址段。执行过程当客户端第一次请求地址时,DHCP服务器调用动态策略,从备选地址池中选出2001:2000:0001::/48返回给客户端,同时将该地址放入有效地址池,标记为“已分配”;当客户端第二次请求地址时,DHCP服务器调用动态策略,从备选地址池中选出 2001:2000:0002: :/48返回给客户端,同时将该地址放入有效地址池,标记为“已分配”;如此类推,直至将2001:2000: :/32这个备选地址池全部分配完毕。在以上实施例中,备选地址池全部使用了 “地址前缀/掩码长度”的表示方法, 在具体实施中还可采用其他表示方式,只要能够表示出一段地址空间即可。例如若采用 “低端地址边界,高端地址边界”表示法,则以上实施例中的备选地址池空间可以表示为 “ 20012000:,2001:2000FFFFFFFFFFFFFFFFFFFFFFFF”。在以上实施例中,有效地址的选取都没有包括低端地址边界。在实际实施中,可以定义是否包含低端或高端地址边界。例如,在实施例一和实施例四中,若包含低端地址边界,则第一次返回给客户端的地址应为2001:2000:FFOO和2001:2000:0000: :/48。在具体实现中,DHCP服务器出于优化需要,可能采用与以上实施例不完全相同的步骤例如,在实施例一和实施例三中,DHCP服务器可以在第一次分配地址时将整个备选地址池筛选完毕,将符合动态策略的所有有效地址一次性放入有效地址池,以后所有分配给客户端的地址都直接从有效地址池中选取。再例如,在实施例一和实施例三中,DHCP服务器在第一次和第二次,及后续分配地址时,不一定必须按照顺序分配,也可以按照散列、 随机等负载均衡方法进行分配。再例如,在实施例二中,为了防止具有相同MAC地址的不同客户端分配到相同的地址,可以将已经选出的有效地址放入有效地址池并做好标记。在传统DHCP服务器中,有效地址池是通过配置文件或配置参数静态定义的,其中的有效地址在服务器运行之前都已经定义好了 ;但是在本发明中,配置文件和配置参数定义的仅仅是备选地址池空间,服务器必须在运行的时候通过调用执行动态策略算法,才可筛选出有效地址。本发明中的动态策略与传统DHCP服务器中的OPTION扩展也有本质不同在传统DHCP服务器中,管理员可以通过OPTION选项向客户端分配扩展意义的地址参数,不过这些OPTION扩展参数同样是通过配置文件或配置参数预先静态定义好的,在服务器运行之前这些参数就是明确的。而本发明中的动态策略,是由程序算法定义的,必须由服务器在运行时动态调用执行才可确定最终结果。事实上,本发明中的动态策略与传统服务器中的OPTION扩展并不矛盾,在本发明中仍可以通过静态定义OPTION扩展,在服务器通过调用动态策略确定有效地址后,与预先定义好的OPTION扩展参数同时传递给客户端。以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
权利要求
1.一种IP地址分配方法,其特征在于,包括以下步骤Si、根据动态策略从备选地址池中选择一个或一段地址作为有效地址放入有效地址池中,所述动态策略是DHCP服务器所调用的一段预先制定的对备选地址池进行筛选的程序算法。
2.如权利要求1所述的方法,其特征在于,在步骤Sl之后还包括步骤S2调用负载均衡算法从有效地址池中选取有效地址分配给客户端。
3.如权利要求1所述的方法,其特征在于,步骤Sl中,在将有效地址放入有效地址池中的同时,调用负载均衡算法从有效地址池中选取有效地址分配给客户端。
4.如权利要求2或3所述的方法,其特征在于,当选取有效地址分配给客户端的同时, 将所选的有效地址标记为已分配。
5.如权利要求4所述的方法,其特征在于,当有客户端释放了地址,则将所释放的地址回收到有效地址池中,且将所回收的地址标记为未分配,后续客户端的地址请求则从有效地址池的未分配地址中选取。
6.如权利要求2所述的方法,其特征在于,步骤Sl和步骤S2均由DHCP服务器来执行。
7.如权利要求1所述的方法,其特征在于,所述备选地址池是通过配置文件静态定义的初始地址分配空间。
8.如权利要求1 3、6、7中任一项所述的方法,其特征在于,所述负载均衡算法为轮询算法、随机算法或散列算法。
全文摘要
本发明涉及网络技术领域,公开了一种IP地址分配方法,包括以下步骤S1、根据动态策略从备选地址池中选择一个或一段地址作为有效地址放入有效地址池中,所述动态策略是DHCP服务器所调用的一段预先制定的对备选地址池进行筛选的程序算法。本发明通过加入地址筛选步骤,扩展了DHCP服务器的功能,可按照策略为客户端分配特殊格式的地址,从而满足客户端对复杂格式地址分配的需求。
文档编号H04L29/12GK102291470SQ20111023670
公开日2011年12月21日 申请日期2011年8月17日 优先权日2011年8月17日
发明者李子木, 潘丽 申请人:清华大学