CN106060183A - 一种地址分配方法及装置 - Google Patents

一种地址分配方法及装置 Download PDF

Info

Publication number
CN106060183A
CN106060183A CN201610289998.0A CN201610289998A CN106060183A CN 106060183 A CN106060183 A CN 106060183A CN 201610289998 A CN201610289998 A CN 201610289998A CN 106060183 A CN106060183 A CN 106060183A
Authority
CN
China
Prior art keywords
address
nat device
utilization rate
request
nat
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610289998.0A
Other languages
English (en)
Other versions
CN106060183B (zh
Inventor
张建周
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201610289998.0A priority Critical patent/CN106060183B/zh
Publication of CN106060183A publication Critical patent/CN106060183A/zh
Application granted granted Critical
Publication of CN106060183B publication Critical patent/CN106060183B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5061Pools of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明提供一种地址分配方法及装置,该方法包括:第一NAT设备获取自身的第一地址使用率;判断第一地址使用率是否达到预设的第一使用率上限阈值;当第一地址使用率达到第一使用率上限阈值时,确定请求地址;泛洪地址请求报文,地址请求报文携带请求地址;接收第二NAT设备发送的地址响应报文,地址响应报文携带第二NAT设备确定的可分配地址,第二NAT设备为与第一NAT设备共用同一公共地址池的第三NAT设备中拥有请求地址的第三NAT设备。本发明通过共用同一NAT地址池的多个NAT设备之间的信息交互,实现地址的动态分配,提高了NAT资源的利用率。

Description

一种地址分配方法及装置
技术领域
本发明涉及网络通信技术领域,尤其涉及一种地址分配方法及装置。
背景技术
目前,NAT(Network Address Translation,网络地址转换)设备的地址池仍主要采用手动方式配置,且一旦配置后地址池大小不变。
在实际使用过程中,NAT设备的地址池使用率不断变化,采用固定大小的地址池会导致地址池的利用率不高,NAT资源得不到充分利用。
发明内容
本发明的目的在于提供一种地址分配方法及装置,用以实现共用同一公共地址池的多个NAT设备之间的地址动态分配,提高NAT资源的利用率。
为实现上述发明目的,本发明提供了技术方案:
本发明提供一种地址分配方法,应用于第一NAT设备上,该方法包括:
获取自身的第一地址使用率,所述地址使用率为NAT设备当前已使用地址数量占其自身总地址数量的百分比;
判断所述第一地址使用率是否达到预设的第一使用率上限阈值;
当所述第一地址使用率达到所述第一使用率上限阈值时,确定请求地址;
泛洪地址请求报文,所述地址请求报文携带所述请求地址;
接收第二NAT设备发送的地址响应报文,所述地址响应报文携带所述第二NAT设备确定的可分配地址,所述第二NAT设备为与所述第一NAT设备共用同一公共地址池的第三NAT设备中拥有所述请求地址的第三NAT 设备。
本发明还提供一种地址分配方法,应用于第二NAT设备上,该方法包括:
接收第一NAT设备发送的地址请求报文,所述地址请求报文携带所述第一NAT设备确定的请求地址;
判断所述请求地址是否属于本NAT设备;
当所述请求地址属于本NAT设备时,确定所述请求地址是否被使用;
当所述请求地址未被使用时,将所述请求地址作为可分配地址添加到地址响应报文中;
泛洪所述地址响应报文,以使所述第一NAT设备应用所述可分配地址。
本发明还提供一种地址分配装置,应用于第一NAT设备上,该装置包括:
获取单元,用于获取自身的第一地址使用率,所述地址使用率为NAT设备当前已使用地址数量占其自身总地址数量的百分比;
判断单元,用于判断所述第一地址使用率是否达到预设的第一使用率上限阈值;
确定单元,用于当所述第一地址使用率达到所述第一使用率上限阈值时,确定请求地址;
泛洪单元,用于泛洪地址请求报文,所述地址请求报文携带所述请求地址;
接收单元,用于接收第二NAT设备发送的地址响应报文,所述地址响应报文携带所述第二NAT设备确定的可分配地址,所述第二NAT设备为与所述第一NAT设备共用同一公共地址池的第三NAT设备中拥有所述请求地址的第三NAT设备。
本发明还提供一种地址分配装置,应用于第二NAT设备上,该装置包括:
接收单元,用于接收第一NAT设备发送的地址请求报文,所述地址请求报文携带所述第一NAT设备确定的请求地址;
判断单元,用于判断所述请求地址是否属于本NAT设备;
确定单元,用于当所述请求地址属于本NAT设备时,确定所述请求地址是否被使用;
添加单元,用于当所述请求地址未被使用时,将所述请求地址作为可分配地址添加到地址响应报文中;
泛洪单元,用于泛洪所述地址响应报文,以使所述第一NAT设备应用所述可分配地址。
由以上描述可以看出,本发明由地址资源相对紧张的第一NAT设备确定请求地址,并通过地址请求报文泛洪出去,接收到该地址请求报文的NAT设备根据该请求地址确认自身为被请求的第二NAT设备时,确定该请求地址是否被使用。当确定请求地址未被使用时,将该请求地址作为可分配地址,通过地址响应报文泛洪出去,以使第一NAT设备接收并应用该可分配地址。可见,本发明通过共用同一NAT地址池的多个NAT设备之间的信息交互,实现地址的动态分配,提高了NAT资源的利用率。
附图说明
图1是本发明实施例示出的一种地址分配方法流程图;
图2是本发明实施例示出的另一种地址分配方法流程图;
图3是本发明实施例示出的NAT TLV示意图;
图4是本发明实施例示出的NAT设备的结构示意图;
图5是本发明实施例示出的一种地址分配装置的结构示意图;
图6是本发明实施例示出的另一种地址分配装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所 有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本发明实施例提出一种地址分配方法,该方法由地址资源相对紧张的第一NAT设备确定请求地址,并通过地址请求报文泛洪出去,接收到该地址请求报文的NAT设备根据该请求地址确认自身为被请求的第二NAT设备时,确定该请求地址是否被使用。当确定请求地址未被使用时,将该请求地址作为可分配地址,通过地址响应报文泛洪出去,以使第一NAT设备接收并应用该可分配地址,实现NAT设备之间的动态地址分配。
参见图1,为本发明地址分配方法的一个实施例流程图,该实施例从第一NAT设备侧对地址分配过程进行描述。
步骤101,获取自身的第一地址使用率,所述地址使用率为NAT设备当前已使用地址数量占其自身总地址数量的百分比。
本发明实施例适用于共用同一公共地址池的多个NAT设备之间的地址分配,每一个NAT设备可从该公共地址池中分得一部分地址,并在运行过程中监控地址的使用情况。
本步骤中,第一NAT设备可根据当前已使用地址数量以及自身总地址数量 得到当前的地址使用率,以下将第一NAT设备的地址使用率简称为第一地址使用率。
步骤102,判断所述第一地址使用率是否达到预设的第一使用率上限阈值。
本发明实施例配置第一NAT设备的使用率上限阈值(简称第一使用率上限阈值),用以衡量第一NAT设备的地址使用情况是否达到一个较高比例,即第一NAT设备的地址资源是否紧张。
步骤103,当所述第一地址使用率达到所述第一使用率上限阈值时,确定请求地址。
当第一地址使用率达到第一使用率上限阈值时,说明第一NAT设备的地址资源相对紧张,此时,第一NAT设备可自行确定需要请求的地址,即确定请求哪一个地址段,来缓解自身的资源压力。
步骤104,泛洪地址请求报文,所述地址请求报文携带所述请求地址。
第一NAT设备通过步骤103确定请求地址后,通过泛洪的方式发送携带请求地址的地址请求报文,以使其它NAT设备可接收到该地址请求报文。
步骤105,接收第二NAT设备发送的地址响应报文,所述地址响应报文携带所述第二NAT设备确定的可分配地址,所述第二NAT设备为与所述第一NAT设备共用同一公共地址池的第三NAT设备中拥有所述请求地址的第三NAT设备。
本发明实施例,将与第一NAT设备共用同一公共地址池的其它NAT设备简称为第三NAT设备。第三NAT设备接收到地址请求报文后,会判断地址请求报文中携带的请求地址是否为自己所拥有的地址,如果是自己所拥有的地址,则进一步确定该地址是否可以分配给第一NAT设备。
本发明实施例将拥有该请求地址的第三NAT设备简称为第二NAT设备。第二NAT设备在确定第一NAT设备请求的地址可分配给第一NAT设备时,将请求地址作为可分配地址携带在地址响应报文中发送出去。
第一NAT设备接收到该地址响应报文后,根据地址响应报文中携带的可分配地址,确定是自己请求的地址,说明此次地址请求成功,可以应用该地址。
本发明通过不断执行步骤101~步骤105,使第一NAT设备的第一地址使用 率不断下降,最终在第一地址使用率低于第一使用率上限阈值时,即地址资源不再紧张时,停止地址请求。
在上述描述中,第一NAT设备确定请求地址的过程可以为:
第一NAT设备获取第三NAT设备的地址使用率(简称第二地址使用率)。具体获取方式不限,例如,可由第三NAT设备根据自身地址使用情况计算第二地址使用率,然后泛洪携带第二地址使用率的报文,以便通告其它NAT设备(包括第一NAT设备),或者,由第三NAT设备向其它NAT设备泛洪携带自己所拥有地址和已使用地址的报文,再由第一NAT设备根据接收到的上述地址信息计算,得到第三NAT设备的第二地址使用率。
第一NAT设备根据获取的第二地址使用率确定第二NAT设备。
在一种实施方式中,第一NAT设备判断获取的第二地址使用率是否低于预设的第三NAT设备的使用率下限阈值,简称第二使用率下限阈值;当第二地址使用率低于第二使用率下限阈值时,说明第三NAT设备的资源使用率过低,地址资源未得到充分利用,因此,将当前第三NAT设备作为第二NAT设备,即向地址资源使用率相对较低的NAT设备请求地址,实现地址资源的合理分配。
在另一种实施方式中,第一NAT设备可对获取到的所有第三NAT设备的第二地址使用率进行排序;将第二地址使用率最低的第三NAT设备作为第二NAT设备,即向地址使用率最低的NAT设备请求地址,以使地址资源得到更优的分配。
需要补充说明的是,在第二种实施方式中,第一NAT设备可在获取到使用率最低的第二地址使用率后,判断该使用率最低的第二地址使用率是否达到预设的当前第三NAT设备的使用率上限阈值(简称第二使用率上限阈值)。当该第三NAT设备的第二地址使用率低于该第三NAT设备的第二使用率上限阈值时,说明该第三NAT设备的地址使用情况正常,可以作为第二NAT设备为第一NAT设备提供一部分地址;反之,说明该使用率最低的第三NAT设备的地址空间也很紧张,无法向第一NAT设备提供地址,即当前共用同一公共地址池的所有NAT设备的地址资源均已得到充分利用。
在确定第二NAT设备后,获取第二NAT设备当前未被使用的地址,从未被使用的地址中选择地址作为请求地址。
此外,当第一NAT设备检测到第三NAT设备下线(例如,根据拓扑结构变化感知第三NAT设备下线)时,将该第三NAT设备的地址标记为待分配地址(本发明实施例中,第一NAT设备可通过信息交互获取第三NAT设备的地址分配情况,所以,可以在本地标记地址状态)。
当第一NAT设备的第一地址使用率达到第一使用率上限阈值时,可进一步判断是否存在待分配地址,当存在待分配地址时,优先使用待分配地址,即从待分配地址中获取地址并应用;当不存在待分配地址时,再向其它NAT设备请求地址,从而降低对已上线的NAT设备的影响。
此外,为了避免故障重启导致地址分配不稳定,本发明实施例预设了延迟时长阈值,统计第三NAT设备的下线时长。当第三NAT设备的下线时长达到延迟时长阈值时,再将第三NAT设备的地址标记为待分配地址,从而增加地址分配的稳定性。
当第一NAT设备确定自身为新上线NAT设备且未分配地址时,获取当前已上线第三NAT设备的地址分配系数,该地址分配系数可由管理员综合考虑上线速率以及用户所需地址情况等因素预先设置,代表NAT设备初始可从公共地址池中获得的地址份额。第一NAT设备根据自身的地址分配系数以及收集到的所有第三NAT设备的地址分配系数,确定自身应分配到的地址数量,然后根据该地址数量确定向每一个第三NAT设备请求的地址。
例如,假设当前已上线NAT设备为NAT1和NAT2,对应地址分配系数分别为40和60,公共地址池的总地址数量为300。当前NAT1分配到的地址数量为120,NAT2分配到的地址数量为180,即公共地址池中的地址已全部分配给NAT1和NAT2。新上线NAT设备为NAT3,NAT3的地址分配系数为50,则NAT3计算自身应分配的初始地址数量为300*50/(40+60+50)=100。
NAT3根据得到的初始地址数量计算分别向NAT1和NAT2请求的地址数量。向NAT1请求的地址数量为100*40/(40+60)=40,同理,向NAT2请求的地址 数量为60。在确定请求的地址数量后,NAT3可根据NAT1和NAT2当前的地址使用情况(已使用地址信息、所拥有的地址信息)确定具体的请求地址。
从上述描述可以看出,新加入的NAT设备可实现自动地址分配,无需太多的人工干预。
此外,系统运行之前,同样可根据各NAT设备的地址分配系数实现对多个NAT设备的初始地址分配。例如,假设管理员配置NAT1、NAT2以及NAT3的地址分配系数为20、30、50,NAT1~NAT3配置在同一公共地址池下,假设,公共地址池的地址总数量为100,地址范围为200.1.1.1~200.1.1.100,则NAT1的初始分配的地址数量为100*20/(20+30+50)=20,同理,NAT2的初始分配的地址数量为30,NAT3的初始分配的地址数量为50。则NAT1分配的地址范围可以为200.1.1.1~200.1.1.20,NAT2分配的地址范围可以为200.1.1.21~200.1.1.50,NAT3分配的地址范围可以为200.1.1.51~200.1.1.100。
在上述举例中,仅以IP地址分配为例,但本发明并不局限于IP地址分配,同样适用于IP地址加端口的NAT模式,例如,公共地址池范围为200.1.1.51:0~200.1.1.100:65535(IP地址:端口),则该公共地址池的总地址数量为100*65536=6553600,后续计算相同,不再赘述。
参见图2,为本发明地址分配方法的另一个实施例流程图,该实施例从第二NAT设备侧对地址分配过程进行描述。
步骤201,接收第一NAT设备发送的地址请求报文,所述地址请求报文携带所述第一NAT设备确定的请求地址。
如前所述,第一NAT设备泛洪发送地址请求报文,因此,当前第二NAT设备可接收到该地址请求报文。
步骤202,判断所述请求地址是否属于本NAT设备。
步骤203,当所述请求地址属于本NAT设备时,确定所述请求地址是否被使用。
当第一NAT设备请求的地址落入本NAT设备的地址范围内时,第二NAT设备需要确定请求的地址是否可以分配给第一NAT设备;当第一NAT设备请求 的地址未落入本NAT设备的地址范围内时,丢弃接收的地址请求报文。
步骤204,当所述请求地址未被使用时,将所述请求地址作为可分配地址添加到地址响应报文中。
步骤205,泛洪所述地址响应报文,以使所述第一NAT设备应用所述可分配地址。
第二NAT设备同样通过泛洪的方式将携带可分配地址的地址响应报文发送出去。第一NAT设备接收地址响应报文后,确定报文中携带的可分配地址是自己请求的地址,则确认请求成功,应用该地址。
当确定请求地址已被使用时,第二NAT设备泛洪地址状态报文,该地址状态报文中携带当前第二NAT设备已使用地址信息,以使第一NAT设备在接收到地址状态报文后,更新本地记录的地址信息,根据更新后的地址信息重新确定请求地址。
此外,第二NAT设备可在确认请求地址属于本NAT设备时,判断一下自身的地址资源是否紧张。在确定自身的第二地址使用率低于第二使用率上限阈值时,即自身地址资源充裕时,再判断请求地址是否被使用,根据判断结果向第一NAT设备提供可分配的地址。且分配后不能使自身地址资源处于紧张状态,即分配后的第二地址使用率不能超过第二使用率上限阈值,做到有度分配,不影响自身的运行。
以下将以IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)路由协议为例,介绍多个NAT设备之间的地址分配过程。
本发明实施例对IS-IS路由协议进行扩展,新增用于描述NAT信息的TLV(Type-Length-Value,类型-长度-值),简称NAT TLV,并定义了两个Sub TLV(NAT TLV的子TLV):Configuration Sub TLV(配置子TLV)和Address Sub TLV(地址子TLV)。
参见图3,为本发明示出的一种NAT TLV示例,以下对NAT TLV中的字段进行介绍。
NAT TLV
Type:类型,标识为NAT TLV;
Length:长度,标识NAT TLV的长度;
Sub TLV:指定Sub TLV类型,标识为Configuration Sub TLV或Address Sub TLV。
Configuration Sub TLV
Type:类型,标识为Configuration Sub TLV;
Length:长度,标识Configuration Sub TLV的长度;
System ID:系统ID,标识为NAT设备ID;
Ratio:NAT设备的地址分配系数;
Ports:为客户端分配的端口块大小;
Upper Limit:NAT设备的使用率上限阈值;
Lower Limit:NAT设备的使用率下限阈值;
Pool Start IP:公共地址池的起始IP地址;
Pool End IP:公共地址池的结尾IP地址。
Address Sub TLV
Type:类型,标识为Address Sub TLV;
Length:长度,标识Address Sub TLV的长度;
System ID:系统ID,标识为NAT设备ID;
Flag:命令类型,例如,Flag=1表示向其它NAT设备请求地址;Flag=2表示为其它NAT设备分配地址;Flag=3表示向其它NAT设备通告自己拥有的地址;Flag=4表示向其它NAT设备通告自己已使用的地址;
Start IP:标识起始IP;
Start Port:标识起始端口;
End IP:标识结尾IP;
End Port:标识结尾端口。
例如,Flag=4,Start IP为200.1.1.1,Start Port为0,End IP为200.1.1.10,EndPort为255,则表示当前NAT设备向其它NAT设备通告自已已使用的地址 为200.1.1.1:0~200.1.1.10:255。
每一个NAT设备可将自己的地址资源信息添加到NAT TLV中,并通过泛洪LSP(LinkState Packet,链路状态报文)报文携带NAT TLV,通告给其它NAT设备,也就是说,每一个NAT设备都可以获取到所有NAT设备的地址资源信息。
假设,管理员为3个NAT设备(NAT1、NAT2以及NAT3)进行初始配置,具体参见表1~表3。
表1
表2
表3
每一个NAT设备均可通过泛洪LSP报文向其它NAT设备通告自己的配置信息,同时,也可以获取到其它NAT设备的配置信息,然后,按照相同的计算方法计算自己应分配的初始地址段,同时也可以知道其它NAT设备的初始地址分配情况。
由表1~表3可知,NAT1~NAT3配置在同一公共地址池(200.1.1.1~200.1.1.250)下,地址总数量为250个(本发明实施例简化处理,不考虑基于端口的NAT转换)。NAT1~NAT3对应的地址分配系数Ratio分别为20、30、50。因此,NAT1初始分配的地址数量为250*20/(20+30+50)=50个,同理,NAT2初始分配的地址数量为75个,NAT3初始分配的地址数量为125个。假设,NAT1的System ID为1,NAT2的System ID为2,NAT3的System ID为3,按照SystemID从小到大分配地址,则NAT1分配的地址为200.1.1.1~200.1.1.50,NAT2分配的地址为200.1.1.51~200.1.1.125,NAT3分配的地址为200.1.1.126~200.1.1.250。NAT1~NAT3分别将自己分配到的地址应用到上行接口上。
在NAT设备运行过程中,NAT设备不断统计自身的地址使用率,假设当前NAT1的地址使用率为85%,已超过预设的使用率上限阈值80%,则NAT1需向NAT2和/或NAT3请求地址。
在一种实施方式中,NAT1获取NAT2的地址使用率,假设为18%,低于NAT2的使用率下限阈值25%,说明NAT2的地址资源很充足,获取NAT2当前未使用的地址,从未使用地址中选择一段地址,将该选择的地址段的起始地址和结尾地址添加到Address Sub TLV中的Start IP和End IP中,同时,设置Flag=1,泛洪携带该Address Sub TLV的LSP报文,即向NAT2请求Start IP到End IP之间的地址段。
在另一种实施方式中,NAT1获取NAT2和NAT3的地址使用率,假设分别为40%和30%,选择地址使用率最低的NAT3请求地址。在确定具体请求的地址段之前,还要判断NAT3的地址使用率30%是否超过NAT3的使用率上限阈值75%,未超过,则NAT3的地址使用率正常,可向NAT3请求地址。获取NAT3当前未使用的地址,从未使用地址中选择一段地址,将该选择的地址段的起始地址和结尾地址添加到Address Sub TLV的Start IP和End IP中,同时,设置Flag=1,泛洪携带该Address Sub TLV的LSP报文,即向NAT3请求Start IP到EndIP之间的地址段。
以NAT2作为被请求设备为例。由于NAT1泛洪发送携带Address Sub TLV的LSP报文,因此,NAT2和NAT3均会接收到该LSP报文。NAT2接收到报文后,根据Flag=1以及StartIP和End IP中标识的地址段,确认该LSP报文为地址请求报文,且请求的地址(假设StartIP=200.1.1.116、End IP=200.1.1.125)落入本设备的地址范围(200.1.1.51~200.1.1.125)。NAT2确认当前自身的地址使用率18%低于NAT2的使用率上限阈值85%,地址资源充裕,具备向NAT1提供地址的能力。继续判断NAT1请求的地址(200.1.1.116~200.1.1.125)是否被使用,当该地址段未被使用时,将200.1.1.116和200.1.1.125分别添加到Address Sub TLV的Start IP和End IP中,设置Flag=2,泛洪携带该Address Sub TLV的LSP报文。NAT1接收到该报文后,根据Flag=2确认接收的报文为地址响应报文,且该报文中的可分配地址Start IP(200.1.1.116)~End IP(200.1.1.125)与自己请求的地址相同,因此,将地址200.1.1.116~200.1.1.125应用到NAT1的上行接口上。
如果NAT2在确认请求地址(200.1.1.116~200.1.1.125)是否被使用时,确认结果为被使用,说明NAT1和NAT2上记录的地址信息不同步,则NAT2可设置Flag=3,同时在Address Sub TLV的Start IP和End IP中添加当前NAT2已使用的地址,泛洪给NAT1和NAT3。NAT1和NAT3根据Flag=3,确认当前报文为地址状态报文,更新本地记录的地址信息。由于请求的地址被使用,因此,NAT2不会向NAT1回应地址响应报文,NAT1可在等待一段时间后,重新确定请求地址,向NAT2和NAT3泛洪携带新确定的请求地址的地址请求报文,以完成地址请求。
假设,运行过程中NAT3下线,并已维持一段时间,则NAT1和NAT2分别在本地记录中将NAT3的地址(200.1.1.126~200.1.1.250)标记为待分配地址。如果此时NAT1的地址资源再次紧张,可优先从待分配地址中获取地址应用到NAT1的上行接口上。
假设,当前NAT1~NAT3均在线,NAT1分配的地址为200.1.1.1~200.1.1.50,NAT2分配的地址为200.1.1.51~200.1.1.125,NAT3分配的地址为 200.1.1.126~200.1.1.250。NAT4为新上线设备,管理员初始配置如表4所示。
表4
NAT4与NAT1~NAT3公用同一公共地址池,则NAT4计算自身应分配地址数量为250*25/(20+30+50+25)=50,继续计算向每一个NAT设备请求的地址数量,向NAT1请求的地址数量为50*20/(20+30+50)=10,向NAT2请求的地址数量为50*30/(20+30+50)=15,向NAT3请求的地址数量为50*50/(20+30+50)=25。
在确定请求的地址数量后,NAT4可分别获取NAT1~NAT3的地址使用率,确认NAT1~NAT3的地址资源是否紧张(地址使用率是否大于使用率上限阈值)。在确认地址使用情况正常的情况下,确定请求的地址范围。由于要保证NAT1~NAT3向NAT4分配地址后不影响自身的地址需求,因此,NAT4最终请求的地址数量可能小于或等于计算的应请求地址数量。NAT4通过泛洪地址请求报文(Flag=1)携带请求地址,NAT1~NAT3根据自身的地址使用情况确认是否发送携带可分配地址的地址响应报文(Flag=2)。该过程仅为NAT4上线时的初始分配过程,后续NAT4可根据自身的地址使用率确定是否向其它NAT设备请求地址。
与前述地址分配方法的实施例相对应,本发明还提供了地址分配装置的实施例。
本发明地址分配装置的实施例可以应用在NAT设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器运行存储器中对应的计算机程序指令形成的。从硬件层面而言,如图4所示,为本发明地址分配装 置所在设备的一种硬件结构图,除了图4所示的处理器以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图5,为本发明一个实施例中的地址分配装置的结构示意图。该地址分配装置包括获取单元501、判断单元502、确定单元503、泛洪单元504以及接收单元505,其中:
获取单元501,用于获取自身的第一地址使用率,所述地址使用率为NAT设备当前已使用地址数量占其自身总地址数量的百分比;
判断单元502,用于判断所述第一地址使用率是否达到预设的第一使用率上限阈值;
确定单元503,用于当所述第一地址使用率达到所述第一使用率上限阈值时,确定请求地址;
泛洪单元504,用于泛洪地址请求报文,所述地址请求报文携带所述请求地址;
接收单元505,用于接收第二NAT设备发送的地址响应报文,所述地址响应报文携带所述第二NAT设备确定的可分配地址,所述第二NAT设备为与所述第一NAT设备共用同一公共地址池的第三NAT设备中拥有所述请求地址的第三NAT设备。
进一步地,所述确定单元503,包括:
使用率获取模块,用于获取第三NAT设备的第二地址使用率;
设备确定模块,用于根据所述第二地址使用率确定所述第二NAT设备;
地址获取模块,用于获取所述第二NAT设备当前未被使用的地址;
地址选择模块,用于从所述未被使用的地址中选择地址作为请求地址。
进一步地,所述设备确定模块,包括:
使用率判断子模块,用于判断所述第二地址使用率是否低于第三NAT设备的第二使用率下限阈值;
设备确定子模块,用于当所述第二地址使用率低于所述第二使用率下限阈 值时,将当前第三NAT设备作为第二NAT设备。
进一步地,所述设备确定模块,包括:
使用率排序子模块,用于对第二地址使用率排序;
设备确定子模块,用于将第二地址使用率最低的第三NAT设备作为第二NAT设备。
进一步地,
所述设备确定子模块,具体用于判断使用率最低的第二地址使用率是否达到第三NAT设备的第二使用率上限阈值;当所述使用率最低的第二地址使用率低于所述第二使用率上限阈值时,将所述第二地址使用率最低的第三NAT设备作为第二NAT设备。
进一步地,所述装置还包括:
标记单元,用于当检测到第三NAT设备下线时,将该第三NAT设备的地址标记为待分配地址;
分配单元,用于在所述确定单元503确定请求地址之前,判断是否存在待分配地址;当存在待分配地址时,从所述待分配地址中获取地址。
进一步地,
所述标记单元,具体用于获取预设的延迟时长阈值;统计所述第三NAT设备的下线时长;当所述第三NAT设备的下线时长达到所述延迟时长阈值时,将所述第三NAT设备的地址标记为待分配地址。
进一步地,
所述确定单元503,还用于在确定自身为新上线NAT设备且未分配地址时,获取当前已上线第三NAT设备的地址分配系数;根据自身的地址分配系数以及第三NAT设备的地址分配系数,确定自身应分配到的地址数量;根据所述地址数量确定向每一个第三NAT设备请求的地址。
请参考图6,为本发明另一个实施例中的地址分配装置的结构示意图。该地址分配装置包括接收单元601、判断单元602、确定单元603、添加单元604以及泛洪单元605,其中:
接收单元601,用于接收第一NAT设备发送的地址请求报文,所述地址请求报文携带所述第一NAT设备确定的请求地址;
判断单元602,用于判断所述请求地址是否属于本NAT设备;
确定单元603,用于当所述请求地址属于本NAT设备时,确定所述请求地址是否被使用;
添加单元604,用于当所述请求地址未被使用时,将所述请求地址作为可分配地址添加到地址响应报文中;
泛洪单元605,用于泛洪所述地址响应报文,以使所述第一NAT设备应用所述可分配地址。
进一步地,
所述泛洪单元605,还用于当所述请求地址已被使用时,泛洪地址状态报文,所述地址状态报文中携带本NAT设备当前已使用地址信息,以使所述第一NAT设备在接收到所述地址状态报文后,根据所述第二NAT设备的已使用地址信息重新确定请求地址。
进一步地,
所述判断单元602,还用于在所述确定单元确定所述请求地址是否被使用之前,获取自身的第二地址使用率,所述地址使用率为NAT设备当前已使用地址数量占其自身总地址数量的百分比;判断所述第二地址使用率是否低于预设的第二使用率上限阈值;当所述第二地址使用率低于所述第二使用率上限阈值时,确定所述请求地址是否被使用。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或 者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (22)

1.一种地址分配方法,应用于第一网络地址转换NAT设备上,其特征在于,该方法包括:
获取自身的第一地址使用率,所述地址使用率为NAT设备当前已使用地址数量占其自身总地址数量的百分比;
判断所述第一地址使用率是否达到预设的第一使用率上限阈值;
当所述第一地址使用率达到所述第一使用率上限阈值时,确定请求地址;
泛洪地址请求报文,所述地址请求报文携带所述请求地址;
接收第二NAT设备发送的地址响应报文,所述地址响应报文携带所述第二NAT设备确定的可分配地址,所述第二NAT设备为与所述第一NAT设备共用同一公共地址池的第三NAT设备中拥有所述请求地址的第三NAT设备。
2.如权利要求1所述的方法,其特征在于,所述确定请求地址,包括:
获取第三NAT设备的第二地址使用率;
根据所述第二地址使用率确定所述第二NAT设备;
获取所述第二NAT设备当前未被使用的地址;
从所述未被使用的地址中选择地址作为请求地址。
3.如权利要求2所述的方法,其特征在于,所述根据所述第二地址使用率确定所述第二NAT设备,包括:
判断所述第二地址使用率是否低于第三NAT设备的第二使用率下限阈值;
当所述第二地址使用率低于所述第二使用率下限阈值时,将当前第三NAT设备作为第二NAT设备。
4.如权利要求2所述的方法,其特征在于,所述根据所述第二地址使用率确定所述第二NAT设备,包括:
对第二地址使用率排序;
将第二地址使用率最低的第三NAT设备作为第二NAT设备。
5.如权利要求4所述的方法,其特征在于,所述将第二地址使用率最低的第三NAT设备作为第二NAT设备,包括:
判断使用率最低的第二地址使用率是否达到第三NAT设备的第二使用率上限阈值;
当所述使用率最低的第二地址使用率低于所述第二使用率上限阈值时,将所述第二地址使用率最低的第三NAT设备作为第二NAT设备。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到第三NAT设备下线时,将该第三NAT设备的地址标记为待分配地址;
所述确定请求地址之前,还包括:
判断是否存在待分配地址;
当存在待分配地址时,从所述待分配地址中获取地址。
7.如权利要求6所述的方法,其特征在于,所述将该第三NAT设备的地址标记为待分配地址,包括:
获取预设的延迟时长阈值;
统计所述第三NAT设备的下线时长;
当所述第三NAT设备的下线时长达到所述延迟时长阈值时,将所述第三NAT设备的地址标记为待分配地址。
8.如权利要求1所述的方法,其特征在于,所述方法还包括:
在确定自身为新上线NAT设备且未分配地址时,获取当前已上线第三NAT设备的地址分配系数;
根据自身的地址分配系数以及第三NAT设备的地址分配系数,确定自身应分配到的地址数量;
根据所述地址数量确定向每一个第三NAT设备请求的地址。
9.一种地址分配方法,应用于第二网络地址转换NAT设备上,其特征在于,该方法包括:
接收第一NAT设备发送的地址请求报文,所述地址请求报文携带所述第一NAT设备确定的请求地址;
判断所述请求地址是否属于本NAT设备;
当所述请求地址属于本NAT设备时,确定所述请求地址是否被使用;
当所述请求地址未被使用时,将所述请求地址作为可分配地址添加到地址响应报文中;
泛洪所述地址响应报文,以使所述第一NAT设备应用所述可分配地址。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
当所述请求地址已被使用时,泛洪地址状态报文,所述地址状态报文中携带本NAT设备当前已使用地址信息,以使所述第一NAT设备在接收到所述地址状态报文后,根据所述第二NAT设备的已使用地址信息重新确定请求地址。
11.如权利要求9或10所述的方法,其特征在于,所述确定所述请求地址是否被使用之前,还包括:
获取自身的第二地址使用率,所述地址使用率为NAT设备当前已使用地址数量占其自身总地址数量的百分比;
判断所述第二地址使用率是否低于预设的第二使用率上限阈值;
当所述第二地址使用率低于所述第二使用率上限阈值时,确定所述请求地址是否被使用。
12.一种地址分配装置,应用于第一网络地址转换NAT设备上,其特征在于,该装置包括:
获取单元,用于获取自身的第一地址使用率,所述地址使用率为NAT设备当前已使用地址数量占其自身总地址数量的百分比;
判断单元,用于判断所述第一地址使用率是否达到预设的第一使用率上限阈值;
确定单元,用于当所述第一地址使用率达到所述第一使用率上限阈值时,确定请求地址;
泛洪单元,用于泛洪地址请求报文,所述地址请求报文携带所述请求地址;
接收单元,用于接收第二NAT设备发送的地址响应报文,所述地址响应报文携带所述第二NAT设备确定的可分配地址,所述第二NAT设备为与所述第一NAT设备共用同一公共地址池的第三NAT设备中拥有所述请求地址的第三NAT设备。
13.如权利要求12所述的装置,其特征在于,所述确定单元,包括:
使用率获取模块,用于获取第三NAT设备的第二地址使用率;
设备确定模块,用于根据所述第二地址使用率确定所述第二NAT设备;
地址获取模块,用于获取所述第二NAT设备当前未被使用的地址;
地址选择模块,用于从所述未被使用的地址中选择地址作为请求地址。
14.如权利要求13所述的装置,其特征在于,所述设备确定模块,包括:
使用率判断子模块,用于判断所述第二地址使用率是否低于第三NAT设备的第二使用率下限阈值;
设备确定子模块,用于当所述第二地址使用率低于所述第二使用率下限阈值时,将当前第三NAT设备作为第二NAT设备。
15.如权利要求13所述的装置,其特征在于,所述设备确定模块,包括:
使用率排序子模块,用于对第二地址使用率排序;
设备确定子模块,用于将第二地址使用率最低的第三NAT设备作为第二NAT设备。
16.如权利要求15所述的装置,其特征在于:
所述设备确定子模块,具体用于判断使用率最低的第二地址使用率是否达到第三NAT设备的第二使用率上限阈值;当所述使用率最低的第二地址使用率低于所述第二使用率上限阈值时,将所述第二地址使用率最低的第三NAT设备作为第二NAT设备。
17.如权利要求12所述的装置,其特征在于,所述装置还包括:
标记单元,用于当检测到第三NAT设备下线时,将该第三NAT设备的地址标记为待分配地址;
分配单元,用于在所述确定单元确定请求地址之前,判断是否存在待分配地址;当存在待分配地址时,从所述待分配地址中获取地址。
18.如权利要求17所述的装置,其特征在于:
所述标记单元,具体用于获取预设的延迟时长阈值;统计所述第三NAT设备的下线时长;当所述第三NAT设备的下线时长达到所述延迟时长阈值时,将所述第三NAT设备的地址标记为待分配地址。
19.如权利要求12所述的装置,其特征在于:
所述确定单元,还用于在确定自身为新上线NAT设备且未分配地址时,获取当前已上线第三NAT设备的地址分配系数;根据自身的地址分配系数以及第三NAT设备的地址分配系数,确定自身应分配到的地址数量;根据所述地址数量确定向每一个第三NAT设备请求的地址。
20.一种地址分配装置,应用于第二网络地址转换NAT设备上,其特征在于,该装置包括:
接收单元,用于接收第一NAT设备发送的地址请求报文,所述地址请求报文携带所述第一NAT设备确定的请求地址;
判断单元,用于判断所述请求地址是否属于本NAT设备;
确定单元,用于当所述请求地址属于本NAT设备时,确定所述请求地址是否被使用;
添加单元,用于当所述请求地址未被使用时,将所述请求地址作为可分配地址添加到地址响应报文中;
泛洪单元,用于泛洪所述地址响应报文,以使所述第一NAT设备应用所述可分配地址。
21.如权利要求20所述的装置,其特征在于:
所述泛洪单元,还用于当所述请求地址已被使用时,泛洪地址状态报文,所述地址状态报文中携带本NAT设备当前已使用地址信息,以使所述第一NAT设备在接收到所述地址状态报文后,根据所述第二NAT设备的已使用地址信息重新确定请求地址。
22.如权利要求20或21所述的装置,其特征在于:
所述判断单元,还用于在所述确定单元确定所述请求地址是否被使用之前,获取自身的第二地址使用率,所述地址使用率为NAT设备当前已使用地址数量占其自身总地址数量的百分比;判断所述第二地址使用率是否低于预设的第二使用率上限阈值;当所述第二地址使用率低于所述第二使用率上限阈值时,确定所述请求地址是否被使用。
CN201610289998.0A 2016-05-03 2016-05-03 一种地址分配方法及装置 Active CN106060183B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610289998.0A CN106060183B (zh) 2016-05-03 2016-05-03 一种地址分配方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610289998.0A CN106060183B (zh) 2016-05-03 2016-05-03 一种地址分配方法及装置

Publications (2)

Publication Number Publication Date
CN106060183A true CN106060183A (zh) 2016-10-26
CN106060183B CN106060183B (zh) 2019-05-07

Family

ID=57177681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610289998.0A Active CN106060183B (zh) 2016-05-03 2016-05-03 一种地址分配方法及装置

Country Status (1)

Country Link
CN (1) CN106060183B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989483A (zh) * 2018-08-01 2018-12-11 新华三技术有限公司 一种网络地址的配置方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080117900A1 (en) * 2006-11-21 2008-05-22 Zhiming Wang Method and apparatus for distributing data packets by using multi-network address translation
CN101247421A (zh) * 2008-03-28 2008-08-20 杭州华三通信技术有限公司 分布式架构下nat地址池的自适应分配方法和系统
US20080259934A1 (en) * 2000-09-13 2008-10-23 Fortinet, Inc. Distributed virtual system to support managed, network-based services
CN102413196A (zh) * 2010-09-26 2012-04-11 中华电信股份有限公司 网络地址分配与管理方法及其系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080259934A1 (en) * 2000-09-13 2008-10-23 Fortinet, Inc. Distributed virtual system to support managed, network-based services
US20080117900A1 (en) * 2006-11-21 2008-05-22 Zhiming Wang Method and apparatus for distributing data packets by using multi-network address translation
CN101247421A (zh) * 2008-03-28 2008-08-20 杭州华三通信技术有限公司 分布式架构下nat地址池的自适应分配方法和系统
CN102413196A (zh) * 2010-09-26 2012-04-11 中华电信股份有限公司 网络地址分配与管理方法及其系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989483A (zh) * 2018-08-01 2018-12-11 新华三技术有限公司 一种网络地址的配置方法及装置

Also Published As

Publication number Publication date
CN106060183B (zh) 2019-05-07

Similar Documents

Publication Publication Date Title
CN108924268B (zh) 一种容器云服务系统及pod创建方法、装置
AU2009209365B2 (en) System and method for describing applications for manageability and efficient scale-up deployment
CN102387222B (zh) 地址分配方法、装置及系统
CN106612196B (zh) 获取资源的方法及装置
CN110086886B (zh) 动态会话保持方法及装置
CN103428025A (zh) 一种管理虚拟网络服务的方法、装置和系统
CN101159758B (zh) 一种分类关联的动态主机配置协议选项分配方法及装置
CN105429811B (zh) 网络管理系统及方法
CN109698757A (zh) 切换主备设备、恢复用户数据的方法、服务器及网络设备
EP3499850B1 (en) Address management methods and apparatuses
CN103051564A (zh) 资源动态调配的方法和装置
CN108933829A (zh) 一种负载均衡方法及装置
CN103124240A (zh) 网关配置方法、网关设备及网络系统
CN108322487A (zh) p2p网络中节点选择方法及装置与节点更新方法及装置
CN105099953A (zh) 云数据中心虚拟网络的隔离方法与装置
CN108989476A (zh) 一种地址分配方法以及装置
CN103401954B (zh) 虚拟dhcp的实现方法
CN106992906B (zh) 一种访问速率的调整方法及系统
CN106302230A (zh) 一种数据传输方法及装置
CN1330124C (zh) 虚拟化网络资源的方法和装置
CN107800814A (zh) 虚拟机部署方法及装置
CN103401799A (zh) 负载均衡的实现方法和装置
CN109831474A (zh) http长连接的保活系统、方法、服务器及可读存储介质
CN102067516A (zh) 请求组播、处理组播请求及对其进行辅助的方法和装置
CN106713164A (zh) 一种交换机端口间流量均衡系统、方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant after: Xinhua three Technology Co., Ltd.

Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant before: Huasan Communication Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant