地址分配方法及装置转让专利

申请号 : CN201611149686.6

文献号 : CN106878478B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 晁岳磊章靠

申请人 : 新华三技术有限公司

摘要 :

本申请提供一种地址分配方法及装置,其中,该方法应用于DHCP服务器,该方法包括:创建N个临时租约,每一个临时租约中包含IP地址和用于指示该IP地址是否被分配的分配标识,其中,N为不小于1的正整数,该分配标识置为未被分配;在接收到DHCP客户端发来的DHCP Discover报文之后,选择一个分配标识为未被分配的临时租约,将该临时租约中的IP地址分配给该DHCP客户端,将该临时租约中的分配标识更新为已被分配;在接收到该DHCP客户端发来的DHCP Request报文之后,将该临时租约更新为有效租约。

权利要求 :

1.一种地址分配方法,其特征在于,所述方法应用于动态主机配置协议DHCP服务器,所述方法包括:创建N个临时租约,每一个临时租约中包含IP地址和用于指示该IP地址是否被分配的分配标识,其中,所述N为不小于1的正整数,所述分配标识置为未被分配;

在接收到DHCP客户端发来的DHCP发现Discover报文之后,选择一个分配标识为未被分配的临时租约,将该临时租约中的IP地址分配给所述DHCP客户端,将该临时租约中的分配标识更新为已被分配;

在接收到所述DHCP客户端发来的DHCP请求Request报文之后,将该临时租约更新为有效租约;

所述方法还包括:

监测单位时间内申请IP地址的DHCP客户端数量;

确定监测到的DHCP客户端数量所属的客户端数量范围,以及该客户端数量范围对应的临时租约数;其中,每一个客户端数量范围对应一个临时租约数,数值越大的客户端数量范围对应的临时租约数越大;

在当前N的数值与确定出的临时租约数不相同时,将N的数值更新为所述确定出的临时租约数。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若本设备中已经不存在分配标识为未被分配的临时租约,或者,本设备中剩余的分配标识为未被分配的临时租约的数量达到预定剩余租约数阈值,则再次创建临时租约。

3.根据权利要求1或2所述的方法,其特征在于,通过以下方式创建临时租约:确定未被占用的IP地址,从确定出的未被占用的IP地址中选择一个IP地址;

针对选中的IP地址,创建包含该IP地址的临时租约,并将该临时租约中的分配标识置为未被分配。

4.根据权利要求1或2所述的方法,其特征在于,在创建临时租约时,开启对应的老化定时器;

将临时租约中的分配标识更新为已被分配时,关闭对应的老化定时器;

则,所述方法还包括:在老化定时器的计时时间到达时,删除对应的临时租约。

5.一种地址分配装置,其特征在于,所述装置应用于动态主机配置协议DHCP服务器中,所述装置包括:创建单元,用于创建N个临时租约,每一个临时租约中包含IP地址和用于指示该IP地址是否被分配的分配标识,其中,所述N为不小于1的正整数,所述分配标识置为未被分配;

接收单元,用于DHCP客户端发来的DHCP发现Discover报文以及DHCP请求Request报文;

分配单元,用于在所述接收单元接收到所述DHCP客户端发来的DHCP Discover报文之后,选择一个分配标识为未被分配的临时租约,将该临时租约中的IP地址分配给所述DHCP客户端,将该临时租约中的分配标识更新为已被分配;在所述接收单元接收到所述DHCP客户端发来的DHCP Request报文之后,将该临时租约更新为有效租约;

所述装置还包括:监测单元和更新单元,其中:

监测单元,用于监测单位时间内申请IP地址的DHCP客户端数量;

更新单元,用于确定所述监测单元监测到的DHCP客户端数量所属的客户端数量范围,以及该客户端数量范围对应的临时租约数,其中,每一个客户端数量范围对应一个临时租约数,数值越大的客户端数量范围对应的临时租约数越大;在当前N的数值与确定出的临时租约数不相同时,将N的数值更新为所述确定出的临时租约数。

6.根据权利要求5所述的装置,其特征在于,

所述创建单元,还用于若本设备中已经不存在分配标识为未被分配的临时租约,或者,本设备中剩余的分配标识为未被分配的临时租约的数量达到预定剩余租约数阈值,则再次创建临时租约。

7.根据权利要求5或6所述的装置,其特征在于,所述创建单元具体用于通过以下方式创建临时租约:确定未被占用的IP地址,从确定出的未被占用的IP地址中选择一个IP地址;

针对选中的IP地址,创建包含该IP地址的临时租约,并将该临时租约中的分配标识置为未被分配。

8.根据权利要求5或6所述的装置,其特征在于,所述装置还包括:删除单元,其中:所述创建单元,还用于在创建临时租约时,开启对应的老化定时器;

所述分配单元,还用于在将临时租约中的分配标识更新为已被分配时,关闭对应的老化定时器;

所述删除单元,用于在老化定时器的计时时间到达时,删除对应的临时租约。

说明书 :

地址分配方法及装置

技术领域

[0001] 本申请涉及网络通信技术领域,特别涉及一种地址分配方法及装置。

背景技术

[0002] DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)采用客户端/服务器模式,由DHCP服务器为DHCP客户端动态地分配IP(Internet Protocol,因特网协议)地址等网络配置参数。

发明内容

[0003] 有鉴于此,本申请提供一种地址分配方法及装置。
[0004] 具体地,本申请是通过如下技术方案实现的:
[0005] 一方面,提供了一种地址分配方法,该方法应用于DHCP服务器,该方法包括:
[0006] 创建N个临时租约,每一个临时租约中包含IP地址和用于指示该IP地址是否被分配的分配标识,其中,N为不小于1的正整数,分配标识置为未被分配;
[0007] 在接收到DHCP客户端发来的DHCP Discover报文之后,选择一个分配标识为未被分配的临时租约,将该临时租约中的IP地址分配给该DHCP客户端,将该临时租约中的分配标识更新为已被分配;
[0008] 在接收到该DHCP客户端发来的DHCP Request报文之后,将该临时租约更新为有效租约。
[0009] 另一方面,还提供了一种地址分配装置,该装置应用于DHCP服务器中,该装置包括:
[0010] 创建单元,用于创建N个临时租约,每一个临时租约中包含IP地址和用于指示该IP地址是否被分配的分配标识,其中,N为不小于1的正整数,分配标识置为未被分配;
[0011] 接收单元,用于DHCP客户端发来的DHCP Discover报文以及DHCP Request报文;
[0012] 分配单元,用于在接收单元接收到DHCP客户端发来的DHCP Discover报文之后,选择一个分配标识为未被分配的临时租约,将该临时租约中的IP地址分配给该DHCP客户端,将该临时租约中的分配标识更新为已被分配;在接收单元接收到该DHCP客户端发来的DHCP Request报文之后,将该临时租约更新为有效租约。
[0013] 通过本申请的以上技术方案,DHCP服务器可以预先创建N个临时租约,这N个临时租约中的分配标识为未被分配,后续有DHCP客户端要申请IP地址时,直接选择一个分配标识为未被分配的临时租约,并将该临时租约中的IP地址分配给该DHCP客户端即可。这样,DHCP服务器无需针对接收到的每一个DHCP Discover报文,均执行一次遍历已有租约的过程,节省了遍历所需时间,尤其是在短时间内接收到大量DHCP客户端发来的DHCP Discover报文的情况下,可以极大的节约DHCP服务器的CPU(中央处理单元)资源,减轻DHCP服务器的处理负担,使得DHCP客户端的请求能够得到及时的响应。

附图说明

[0014] 图1是IP地址的申请过程的流程图;
[0015] 图2是本申请一示例性实施例示出的地址分配方法的流程图;
[0016] 图3是本申请一示例性实施例示出的地址分配装置所在DHCP服务器的硬件结构示意图;
[0017] 图4是本申请一示例性实施例示出的地址分配装置的一种结构示意图;
[0018] 图5是本申请一示例性实施例示出的地址分配装置的另一种结构示意图。

具体实施方式

[0019] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0020] 在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0021] 应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0022] 如图1所示,IP地址的申请过程包括以下步骤:
[0023] 步骤S101,DHCP客户端广播发送DHCP Discover(发现)报文,以便查找网络中可用的DHCP服务器;
[0024] 步骤S102,DHCP服务器接收到DHCP Discover报文后,为DHCP客户端分配IP地址,并向DHCP客户端回应携带有该IP地址的DHCP Offer(提供)报文;
[0025] 步骤S103,DHCP客户端接收到DHCP Offer报文后,广播发送DHCP Request(请求)报文;
[0026] 步骤S104,DHCP服务器接收到DHCP Request报文后,向DHCP客户端回应DHCP ACK(确认)报文。
[0027] 在步骤S102中,DHCP服务器接收到DHCP客户端发来的DHCP Discover报文后,会遍历本设备中的已有租约,一方面,判断之前是否已经为该DHCP客户端分配过IP地址,另一方面,通过遍历已有租约来确定哪些是未被占用的IP地址,以便在判断出之前没有为该DHCP客户端分配过IP地址时,选择一个未被占用的IP地址分配给该DHCP客户端。
[0028] DHCP服务器针对每一个DHCP Discover报文均执行一次上述遍历过程,这样,如果在短时间内接收到大量DHCP客户端发来的DHCP Discover报文,则会极大增加DHCP服务器的处理负担,有可能造成DHCP客户端的请求得不到响应。
[0029] 为了解决DHCP服务器针对每一个DHCP Discover报文均执行一次遍历过程,增加了DHCP服务器的处理负担,有可能造成DHCP客户端的请求得不到响应的问题,本申请以下实施例中提供了一种地址分配方法,以及一种可以应用该方法的地址分配装置。
[0030] 在本申请实施例的方法中,DHCP服务器需要执行如图2所示的步骤:
[0031] 步骤S201,创建N个临时租约,其中,N为不小于1的正整数;
[0032] 在步骤S201中创建的临时租约中包含:IP地址和用于指示该IP地址是否被分配的分配标识,其中,该分配标识的初始值为未被分配。通常情况下,临时租约中可以包含客户端ID,因此,上述分配标识可以由客户端ID来表示,此时,步骤S201中创建的临时租约中的客户端ID为空,用以指示该临时租约中的IP地址未被分配,显然,上述分配标识也可以不使用客户端ID来表示,而通过其它信息来表示,本申请实施例对此不做限定。
[0033] 另外,该临时租约中还可以包含租约到期时间(Lease expiration)和用于指示该租约的类型为临时租约的类型标识。
[0034] 步骤S202,在接收到DHCP客户端发来的DHCP Discover报文之后,选择一个分配标识为未被分配的临时租约,将该临时租约中的IP地址分配给该DHCP客户端,将该临时租约中的分配标识更新为已被分配;
[0035] 当分配标识由客户端ID来表示时,将该临时租约中的分配标识更新为已被分配的方式可以是:将该临时租约中的客户端ID置为该DHCP客户端的ID,其中,该DHCP客户端的ID具体可以为MAC(媒体访问控制)地址。
[0036] 另外,在步骤S202中DHCP服务器还会向该DHCP客户端回应携带该IP地址的DHCP Offer报文。
[0037] 步骤S203,在接收到该DHCP客户端发来的DHCP Request报文之后,将该临时租约更新为有效租约。
[0038] 另外,在步骤S203中DHCP服务器还会向该DHCP客户端回应DHCP ACK报文。
[0039] 在上述实施例的方法中,DHCP服务器可以预先创建N个临时租约,这N个临时租约中的分配标识为未被分配,后续有DHCP客户端要申请IP地址时,直接选择一个分配标识为未被分配的临时租约,并将该临时租约中的IP地址分配给该DHCP客户端即可。这样,DHCP服务器无需针对接收到的每一个DHCP Discover报文,均执行一次遍历已有租约的过程,节省了遍历所需时间,尤其是在短时间内接收到大量DHCP客户端发来的DHCP Discover报文的情况下,可以极大的节约DHCP服务器的CPU资源,减轻DHCP服务器的处理负担,使得DHCP客户端的请求能够得到及时的响应。
[0040] 例如,当分配标识由客户端ID来表示时,在步骤S201中创建的N个临时租约如表1-1所示:
[0041] 表1-1
[0042]
[0043] 在表1-1中,Auto(O)用于指示该租约的类型为动态租约中的临时租约。
[0044] 在步骤S202中DHCP服务器从表1-1中选择第2行所示的临时租约,将该临时租约中包含的IP地址IP11分配给DHCP客户端,将该临时租约中包含的客户端ID置为该DHCP客户端的MAC地址,向该DHCP客户端回应携带IP11的DHCP Offer报文。假设,该DHCP客户端的MAC地址为MAC21,则在将该临时租约中包含的客户端ID置为MAC21后,表1-1更新为如表1-2所示:
[0045] 表1-2
[0046]
[0047] 后续,在步骤S203中DHCP服务器在接收到该DHCP客户端发来的DHCP Request报文之后,将表1-2第2行所示的临时租约更新为有效租约,此时,表1-2更新为如表1-3所示。
[0048] 表1-3
[0049]
[0050] 在表1-3中,Auto(C)用于指示该租约为动态租约中的有效租约。
[0051] 在实际实施过程中,可以由DHCP Discover报文来触发DHCP服务器执行上述的步骤S201,也就是说,DHCP服务器在接收到DHCP客户端发来的DHCP Discover报文后,除了要为该DHCP客户端分配IP地址以外,还会执行步骤S201来创建N个临时租约。这样做的目的是为了确保在有DHCP客户端需要申请IP地址时,再预先创建N个临时租约;在另一种实施方式中,也可以在没有客户端申请IP地址时就预先创建N个临时租约,本申请对创建临时租约的时机不做限定。
[0052] 具体的,DHCP服务器在接收到DHCP客户端发来的DHCP Discover报文之后,会遍历本地保存的已有租约,其中,已有租约中包括:静态租约和动态租约,动态租约中包括:有效租约、临时租约、过期租约。在遍历已有租约时,可以采用先遍历静态租约后遍历动态租约的方式进行,遍历已有租约的目的有2个方面:一方面是,判断之前是否已经为该DHCP客户端分配过IP地址,另一方面是,通过遍历已有租约,确定哪些IP地址是未被占用的IP地址。
[0053] 若判断出之前已经为该DHCP客户端分配过IP地址,则直接将该IP地址分配给该DHCP客户端即可,并且执行步骤S201。
[0054] 若判断出之前没有为该DHCP客户端分配过IP地址,则为该DHCP客户端创建一个临时租约,并且执行步骤S201。假设,该DHCP客户端的MAC地址为MAC22,则为该DHCP客户端创建的临时租约如表2所示。后续,在接收到该DHCP客户端发来的DHCP Request报文后,将如表2所示的临时租约中的类型Auto(O)更新为Auto(C)。
[0055] 表2
[0056] IP地址 客户端ID 租约到期时间(Lease expiration) 类型IP10 MAC22 Oct 7 18:19:06 2016 Auto(O)
[0057] 其中,在执行步骤S201时,由于通过遍历已有租约已经确定出了未被占用的IP地址,因此,可以从确定出的未被占用的IP地址中选择N个IP地址,针对这N个IP地址中的每一个IP地址,创建包含该IP地址的临时租约,并将该临时租约中的分配标识置为未被占用,从而得到了N个分配标识为未被分配的临时租约。
[0058] 后续,随着步骤S201中创建的临时租约不断的被分配出去而变更为了有效租约,分配标识为未被分配的临时租约逐渐减少,为了避免出现临时租约不够用的情况,在发现本设备中已经不存在分配标识为未被分配的临时租约时,或者,在发现本设备中剩余的分配标识为未被分配的临时租约的数量达到预定剩余租约数阈值时,DHCP服务器会再次创建分配标识为未被分配的临时租约。
[0059] 其中,上述预定剩余租约数阈值可以根据实际情况进行设定,例如,可以设定为10%*N或5%*N等,本申请对此不做限定。
[0060] 此外,本申请实施例的方法为步骤S201中创建的临时租约提供了一种老化机制,可以回收多余的IP地址,此时,在步骤S201中,在创建临时租约时,开启对应的老化定时器,后续,将临时租约中的分配标识更新为已被分配时,会关闭对应的老化定时器,那么,当老化定时器的计时时间到达时,就需要删除对应的临时租约,即,将该临时租约老化掉,从而回收该临时租约中的IP地址。
[0061] 本申请实施例的方法中,DHCP服务器还可以实时或周期性监测单位时间内申请IP地址的DHCP客户端数量,具体的,通过单位时间内接收到的DHCP Discover报文的数量来确定单位时间内申请IP地址的DHCP客户端数量。这样,DHCP服务器可以根据监测值(即监测到的单位时间内申请IP地址的DHCP客户端数量)来确定是否执行如图2所示的方法,以及在确定执行时,可以根据监测值来动态调整N的数值。
[0062] 具体的,预先设定一个客户端数量阈值,判断当前的监测值是否超过了该客户端数量阈值,若判断结果为超过,则执行本申请实施例的方法,否则,不会执行本申请实施例的方法。这样,在确认当前有大量DHCP客户端需要申请IP地址时,可以执行本申请实施例的方法。
[0063] 另外,为了实现根据监测值来动态调整N的数值,可以预先设定两个以上客户端数量范围,每一个客户端数量范围对应一个临时租约数,数值越大的客户端数量范围对应的临时租约数越大。
[0064] 这样,在判断出当前的监测值超过了该客户端数量阈值时,确定当前的监测值所属的客户端数量范围,并确定该客户端数量范围对应的临时租约数,将N的初始值设置为确定出的临时租约数。显然,也可以采用手动静态配置的方式预先配置N的初始值。
[0065] 后续,在获取到当前的监测值之后,确定该监测值所属的客户端数量范围,并确定该客户端数量范围对应的临时租约数,然后,判断当前N的数值与确定出的临时租约数是否相同,若不相同,则将N的数值更新为确定出的临时租约数。从而,可以使得N的数值能够适应业务量的变化。
[0066] 例如,上述客户端数量阈值可以设定为100,设定的客户端数量范围可以有3个,分别为:(100,200]、(200,500]、(500,+∞),对应的临时租约数分别为150、300、600。开始时,监测到单位时间内申请IP地址的DHCP客户端数量为160,在判断出160大于客户端数量阈值100时,确定需要执行本申请实施例的方法,并且,确定160所属的客户端数量范围为(100,
200],进一步确定客户端数量范围(100,200]对应的临时租约数为150,此时,将N的初始值设置为150。
[0067] 后续,监测到单位时间内申请IP地址的DHCP客户端数量增加为280,确定280所属的客户端数量范围为(200,500],并进一步确定客户端数量范围(200,500]对应的临时租约数为300,此时,由于当前N的数值150与300不相同,则会将N的数值更新为300。
[0068] 与前述地址分配方法的实施例相对应,本申请还提供了地址分配装置的实施例。
[0069] 本申请地址分配装置60的实施例可以应用在DHCP服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在DHCP服务器的处理器10将非易失性存储器50中对应的计算机程序指令读取到内存40中运行形成的。从硬件层面而言,如图3所示,为本申请地址分配装置所在DHCP服务器的一种硬件结构图,除了图3所示的处理器10、内部总线20、网络接口30、内存40、以及非易失性存储器50之外,实施例中装置所在的DHCP服务器通常根据该DHCP服务器的实际功能,还可以包括其他硬件,对此不再赘述。
[0070] 请参考图4,本申请实施例的地址分配装置60中包括:创建单元601、接收单元602和分配单元603,其中:
[0071] 创建单元601,用于创建N个临时租约,每一个临时租约中包含IP地址和用于指示该IP地址是否被分配的分配标识,其中,所述N为不小于1的正整数,该分配标识置为未被分配;
[0072] 接收单元602,用于DHCP客户端发来的DHCP Discover报文以及DHCP Request报文;
[0073] 分配单元603,用于在接收单元601接收到DHCP客户端发来的DHCP Discover报文之后,选择一个分配标识为未被分配的临时租约,将该临时租约中的IP地址分配给该DHCP客户端,将该临时租约中的分配标识更新为已被分配;在接收单元601接收到该DHCP客户端发来的DHCP Request报文之后,将该临时租约更新为有效租约。
[0074] 其中,创建单元601,还用于若本设备中已经不存在分配标识为未被分配的临时租约,或者,本设备中剩余的分配标识为未被分配的临时租约的数量达到预定剩余租约数阈值,则再次创建临时租约。
[0075] 其中,创建单元601具体用于通过以下方式创建临时租约:
[0076] 确定未被占用的IP地址,从确定出的未被占用的IP地址中选择一个IP地址;
[0077] 针对选中的IP地址,创建包含该IP地址的临时租约,并将该临时租约中的分配标识置为未被分配。
[0078] 如图5所示,上述地址分配装置60中还包括:监测单元604和更新单元605,其中:
[0079] 监测单元604,用于监测单位时间内申请IP地址的DHCP客户端数量;
[0080] 更新单元605,用于确定监测单元604监测到的DHCP客户端数量所属的客户端数量范围,以及该客户端数量范围对应的临时租约数,其中,每一个客户端数量范围对应一个临时租约数,数值越大的客户端数量范围对应的临时租约数越大;在当前N的数值与确定出的临时租约数不相同时,将N的数值更新为确定出的临时租约数。
[0081] 如图5所示,上述地址分配装置60中还包括:删除单元606,其中:
[0082] 创建单元601,还用于在创建临时租约时,开启对应的老化定时器;
[0083] 分配单元603,还用于在将临时租约中的分配标识更新为已被分配时,关闭对应的老化定时器;
[0084] 删除单元606,用于在老化定时器的计时时间到达时,删除对应的临时租约。
[0085] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0086] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0087] 以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。