CN101247421B - 分布式架构下nat地址池的自适应分配方法和*** - Google Patents
分布式架构下nat地址池的自适应分配方法和*** Download PDFInfo
- Publication number
- CN101247421B CN101247421B CN2008100842714A CN200810084271A CN101247421B CN 101247421 B CN101247421 B CN 101247421B CN 2008100842714 A CN2008100842714 A CN 2008100842714A CN 200810084271 A CN200810084271 A CN 200810084271A CN 101247421 B CN101247421 B CN 101247421B
- Authority
- CN
- China
- Prior art keywords
- nat
- nat resource
- items
- resource items
- business board
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种分布式架构下NAT地址池的自适应分配方法和***,适用于由主控板、一个以上业务板和接口板构成的分布式处理架构。该方法包括:在主控板中统一管理由成对的公网IP和端口构成的NAT资源项,包括闲置的NAT资源项和已分配给各业务板的NAT资源项;主控板根据各业务板的请求,执行闲置的NAT资源项到相应的业务板的一次分配;业务板执行主控板分配的NAT资源项到所处理的报文流的二次分配。在较佳的实施例中,NAT资源项以资源块的形式分级管理:主控板进行NAT资源块的分配,业务板进行NAT资源项的分配。通过本发明,实现NAT资源的充分利用,避免NAT转换后五元组的冲突,以及,具有较佳的灵活性和适应性。
Description
技术领域
本发明涉及通信网技术,尤其涉及一种分布式架构下NAT地址池的自适应分配方法和***。
背景技术
NAT(Network Address Translation,网络地址转换)技术是一种把内网私有IP地址翻译成公网IP地址的技术,被用来缓解目前IP空间枯竭的问题。
NAT技术通常被应用在路由器、防火墙、ISDN路由器或者单独的NAT设备中,主要包括以下三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)和NAPT(Port-Level NAT,网络地址端口转换)。
随着网络的发展和对设备功能性要求的提高,集中式的设备往往难以满足实际的需求,因此分布式处理架构应运而生。以防火墙等安全设备为例,由于安全设备在进行攻击检测及主动防御时需要消耗大量的CPU资源,单纯采用集中方式处理的安全设备很难突破其在性能和带宽上的瓶颈,因此引入了图1所示的分布式处理架构:业务处理单元(业务板)和接口单元(接口板)分离,在各个业务板上完成业务的分布式处理,以及通过接口板进行发送处理;其中,主控板用于进行业务板和接口板的业务配置和管理。
可以看出,在分布式处理架构中,由于报文流需要在不同的业务板上进行NAT处理,那么在各个业务板共用NAT地址池资源的情况下,就会存在五元组冲突的可能性。如图2所示,私有源IP地址为192.168.1.1、源端口为21的报文流(1)和私有源IP地址为192.168.1.2、源端口为21的报文流(2)分别从接口板上的接口1被发送到业务板1、2进行NAT处理,处理后的公网源IP为100.1.1.1,源端口为1025,则两条数据流会产生五元组冲突,其结果是NAT处理后两条数据流合并为一条数据流,这样返回的反向报文就没有办法被转换成原本地两条数据流,即反向报文无法送回原来的设备,从而,导致网络业务无法得到正常处理,同时可能带来网络安全方面的问题。
因此,在分布式处理架构中,需要有效的进行地址池资源管理,以避免业务板处理过程中的五元组冲突。
现有的地址池资源管理所采用的,是按照业务板进行地址池资源静态划分的方式,主要包括以下两种:
(1)对于地址池资源按照IP地址进行划分,即各个业务板使用不同的公网IP地址;
具体的,是在业务板启动后,根据地址池资源和整机业务板数量,划分得到属于本业务板的地址使用范围。例如在2个业务板的情况下,对于地址池A(100.1.1.1~100.1.1.10),业务板1使用的地址范围为100.1.1.1~100.1.1.5,业务板2使用的地址范围为100.1.1.6-100.1.1.10;在业务板处理报文流时,业务板从自己所使用的地址池中选取地址作为源地址,端口选择可以是任意可用值。
请结合图3A,显示了按照IP地址划分地址池资源时报文流的处理情况,其中,报文流(1)在业务板进行NAT处理后源IP变为100.1.1.1,而报文流(2)上业务板进行NAT处理后源IP变为100.1.1.6;可以看出,即使不同业务板所分配的端口相同,也不会出现五元组冲突的问题。
(2)对于地址池资源按照端口范围进行划分,即各个业务板使用的公网IP地址范围相同,但是端口范围不同;
具体的,是在业务板启动后获得静态的端口范围参数。例如在2个业务板的情况下,如果用户可使用的端口范围是1025-65535,则业务板1使用的端口范围为1025-00,业务板2使用的端口范围为01-65535;在业务板处理报文流时,业务板从自己所使用的端口范围中分配端口。
请结合图3B,显示了按照端口范围划分地址池资源时报文流的处理情况,其中,报文流(1)在业务板进行NAT处理后源端口变为1025,而报文流(2)上业务板进行NAT处理后源端口变为30001;可以看出,即使不同业务板所分配的IP地址相同,也不会出现五元组冲突的问题。
虽然上述技术方案能够通过静态配置完全避免资源分配冲突的问题,且实现简单方便;但是,仍然存在以下问题:
(1)适用范围存在限制;
例如,由于地址池是静态划分的,因此无法解决动态NAT,如Easy IP情况下五元组冲突的问题;
再例如,对于地址池范围小于业务板数量情况不适用;举例来说,如果地址池资源为100.1.1.1~00.1.1.5,而业务板个数为6,则必然有一个业务板不能获得地址池资源的分配。
(2)处理能力存在限制;
由于接口板的报文流并不是均匀分发给各个业务板的,因此可能存在一个业务板上地址池资源已经耗尽,而其余业务板的地址池资源并远未到达上限的情况。
例如,如果业务板1由于报文流比较多而使用完所分配的端口资源(1025-00),则其对于新接收的报文流进行处理时,就会由于分配端口失败而导致处理失败,进而导致报文被丢弃;同时,业务板2上由于报文流比较少,端口资源还有很多未被使用。
显然,地址池的静态配置往往导致整机远未达到最大规格的情况下,已经难以正常处理业务的情况。
(3)灵活性差;
由于地址池资源是静态划分的,即使在某些业务板故障或者不在位的情况下,其地址池资源也不能由其他业务板,造成地址池资源的闲置和浪费。
综上所述,目前分布式处理架构下NAT资源的分配方案存在诸多不足,现有技术尚无妥善的解决方案。
发明内容
本发明的实施例旨在提供分布式架构下NAT地址池的自适应分配方案,以有效提高NAT资源的利用率。
为实现上述目的,本发明的实施例提供了一种分布式架构下NAT地址池的自适应分配方法,适用于由主控板、一个以上业务板和接口板构成的分布式处理架构;在主控板中统一管理NAT资源项,包括闲置的NAT资源项和已分配给各业务板的NAT资源项,该NAT资源项由成对的公网IP和端口构成;以及,执行以下步骤:
S1、该主控板根据各业务板的请求,执行闲置的NAT资源项到相应的业务板的一次分配;
S2、该业务板执行该主控板分配的NAT资源项到所处理的报文流的二次分配。
本发明的实施例还提供了一种分布式架构下NAT地址池的自适应分配***,适用于由主控板、一个以上业务板和接口板构成的分布式处理架构;包括:
NAT地址池,设置在该主控板上,包括闲置的NAT资源项和已分配给各业务板的NAT资源项,该NAT资源项由成对的公网IP和端口构成;
NAT一次分配单元,设置在所述主控板上,与所述NAT地址池连接,用于根据各业务板的请求,执行闲置的NAT资源项到相应的业务板的一次分配;
NAT二次分配单元,设置在所述业务板上,与所述NAT一次分配单元的输出连接,用于执行所分配的NAT资源项到所处理的报文流的二次分配。
由上述技术方案可知,本发明的实施例通过根据业务板的报文量,动态调整NAT资源分配,具有以下有益效果:
1、实现NAT资源的充分利用;
2、避免NAT转换后五元组的冲突;
3、具有较佳的灵活性和适应性。
通过以下参照附图对优选实施例的说明,本发明的上述以及其它目的、特征和优点将更加明显。
附图说明
图1为现有技术中安全设备分布式处理架构示例的结构框图;
图2显示了分布式处理架构下,NAT处理所存在的问题;
图3A、3B分别显示了按照IP地址和端口范围划分地址池资源时,报文流的处理情况;
图4显示了本发明所提供的分布式架构下NAT地址池的自适应分配方法一实施例的流程图;
图5为图4所示实施例中,触发业务板请求/释放NAT资源项的实施例的流程图;
图6为图4所示方法中,NAT地址池组织逻辑的一个具体示例;
图7为图4所示方法中,主控板NAT资源块组织的一个具体示例;
图8为图4所示方法中,业务板管理NAT资源块的一个具体示例;
图9为图4所示方法中,业务板上NAT资源块位图维护的一个具体示例;
图10A、10B为图4所示方法中,业务板上NAT资源项的二次分配和释放过程的流程图;
图11显示了本发明所提供的分布式架构下NAT地址池的自适应分配***一实施例的框图;
图12显示了本发明所提供的分布式架构下NAT地址池的自适应分配***另一实施例的框图;
图13A~图13C为图11和图12所示***中,具体部件的实施例框图。
具体实施方式
下面将详细描述本发明的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。
首先必须说明的是,本发明所提供的技术方案适用于由主控板、一个以上业务板和接口板构成的分布式处理架构,主要克服现有技术中分布式处理架构下NAT地址池静态配置所存在的诸多缺陷。
在实际应用中,接口板可以与主控板合设,即将全局接口设置在主控板上,通过交换网络进行与业务板之间的报文流收/发,也就是说,主控板同时作为接口板来面向所有的业务板提供接口服务,而不再设立独立的接口板。此时,分布式处理架构从物理实现的角度,可以被表述为:由设有全局接口的主控板和一个以上业务板构成的分布式处理架构。
值得注意的是,即使全局接口设置在主控板上,其与主控板仍分别实现不同的逻辑功能,因此本发明实施例从逻辑功能的角度,仍将接口板与主控板分离描述。但本领域普通技术人员可以理解,这仅仅意味着本发明实施例所适用的分布式处理架构具有接口板功能,实现该功能的全局接口可以设置在主控板上,也可以设置在独立的接口板上。
本发明的基本思路在于,由主控板进行NAT资源的统一管理,由业务板根据所处理报文流的情况从主控板获取/释放所需的NAT资源,以实现NAT资源的充分利用,并保证NAT转换不致发生五元组冲突。
较佳的,NAT资源引入分级管理的思想,由主控板进行NAT资源块的管理,由业务板进行资源块中资源的管理,以提高资源分配的效率。
下面就结合具体实施例加以说明。
请参见图4,显示了本发明所提供的分布式架构下NAT地址池的自适应分配方法一实施例。
其中,在主控板中统一管理NAT资源项,包括闲置的NAT资源项和已分配给各业务板的NAT资源项,该NAT资源项由成对的公网IP和端口构成;
具体来说,每个NAT资源项对应唯一的”IP+端口”对,因此可以把整个NAT地址池看成由连续的NAT资源项组成。
为了便于管理,可以通过主控板分组保存闲置的NAT资源项和分配给各业务板的资源项的方式,实现在主控板中对NAT资源项的统一管理。较佳的,该分组保存可以通过链表来实现。
可以看出,无论实际如何进行分配,所有的NAT资源项都在主控板中获得统一的全局控制,因此不会发生不同业务板分配有相同NAT资源项的情况,从而避免后续业务板根据NAT资源进行NAT转换时可能存在的五元组冲突。
在上述NAT资源全局控制的基础上,NAT地址池通过以下步骤实现自适应分配:
S1、主控板根据各业务板的请求,执行闲置的NAT资源项到相应的业务板的一次分配;即报文流量较高的业务板能够从主控板获得较多的NAT资源。
具体的,在主控板分组保存闲置的NAT资源项和分配给各业务板的资源项的情况下,本步骤可以通过以下方式实现:将NAT资源项从闲置的NAT资源组中转移到相应的业务板资源组中,并通过板间通信通知该业务板。
同时,为了提高效率,主控板所进行的一次分配一般为同时分配多个NAT资源项。
S2、业务板执行该主控板分配的NAT资源项到所处理的报文流的二次分配,也就是针对每一个报文流,分配一个NAT资源项。
具体的,本步骤S2包括:
S21、将本板当前可分配的NAT资源项二次分配给报文流,并为二次分配的NAT资源项设置已分配标志;
S22、对报文流释放的NAT资源项,取消该NAT资源项的已分配标志,使其重新成为本板当前可分配的资源项。
通过上述步骤S1~S2可以看出,本技术方案可以通过NAT资源项的全局管理有效的避免五元组冲突,还可以在分布式环境下实现根据各个业务板NAT业务量来适应性分配NAT资源,从而提高NAT资源的利用率。
较佳的,步骤S1还包括:主控板将各业务板释放的NAT资源项重新设置为闲置的NAT资源项。
本步骤的作用在于适应业务板流量的变化,动态调整业务板上的NAT资源,从而实现NAT资源的最大利用,克服现有技术中地址池资源分配存在的资源占用问题和使用不均匀的问题。
具体的,在主控板分组保存闲置的NAT资源项和分配给各业务板的资源项的情况下,本步骤可以通过以下方式实现:将该NAT资源项从相应的业务板资源组中转移到闲置的NAT资源组中。
为了实现主控板和业务板之间NAT资源项的有效转移,请参见图5,可以执行以下步骤:
S01、业务板识别本板当前可分配的NAT资源项;
S02、当可分配的NAT资源项数量小于预设的第一阈值时,业务板向主控板请求获取一定数量的NAT资源项,并执行步骤S1,使主控板根据各业务板的请求,执行闲置的NAT资源项到相应的业务板的一次分配;
S03、当可分配的NAT资源项数量大于预设的第二阈值时,业务板向主控板释放一定数量的NAT资源项,并执行步骤S1,使主控板将各业务板释放的NAT资源项重新设置为闲置的NAT资源项。
其中,第一阈值和第二阈值可以由管理员根据实际需要进行设置,且上述步骤可以周期性执行。
通过上述较佳实施例可以看出,当业务板NAT资源不足时,主控板能够将NAT资源项分配给业务板;当业务板NAT资源项出现过剩,可以将NAT资源返回给主控板,供主控板调配。因此,本技术方案不但可以有效的避免五元组冲突,还可以在分布式环境下实现根据各个业务板NAT业务量动态调整各个业务板上NAT资源分配情况,达到最大化的NAT资源利用率的目标。
更佳的,为了实现高效快速的资源分配,本发明实施例采用资源块的方式对NAT资源进行管理,即NAT地址池按连续的资源块进行组织,每个资源块为一些连续的资源组成。
如图6所示,显示了以资源块方式组织时,NAT地址池组织逻辑的一个具体示例。
该地址池范围是(100.1.1.1~100.1.1.10),可用端口范围一共是63K(即1025到65535),则以按照公网IP地址顺序排列,且每一公网IP地址下按照端口顺序排列的方式,可以获得10×63K的连续的NAT资源项。
对连续的NAT资源项加以分块,可以考虑按照每块1024个资源来进行组织,形成NAT资源块,在本实施例中,每个NAT资源块由”IP+端口范围”标识;其中,具体大小可以根据具体情况加以调整。
每个NAT资源块由NAT资源块索引来标识,NAT资源池中资源块的NAT资源块索引从0开始顺序进行编号,从而可以通过NAT资源块索引计算出它所标识的资源范围。以图6所示情况为例,NAT资源块的IP地址=NAT资源块索引/63+NAT地址池起始地址;NAT资源块的端口范围是(NAT资源块索引%63×1024,(NAT资源块索引%63+1)×1024))。
显然,主控板对于NAT资源项的统一管理,事实上是对NAT资源块的统一管理。作为一个具体的实施例,步骤S1中可以以链表的形式分组管理NAT资源块,如图7所示。
需要指出,具体NAT资源块组织方式不一定必须是链表,这里只是举例描述思想。在图7所示实施例中,所有空闲可用的NAT资源块放到一个空闲资源块链表中管理;当业务板1向主控板申请NAT资源时,主控板从空闲资源块链表中获取闲置的NAT资源块,将其移到业务板1的资源块链表上同时通过板间通信通知业务板1;当业务板1向主控板释放NAT资源时,将资源块移动到空闲资源块链表上,即重新设置为闲置的NAT资源块。
通过上述构造,主控板可以方便的实现NAT资源块的一次分配和回收。同时,NAT资源块中NAT资源项的二次分配和释放,则由业务板进行。
作为一个较佳实施例,如图8所示,为业务板管理NAT资源块的示例。业务板通过指针数组记录本板上所有的NAT资源块,通过第一函数指向本板当前所分配的NAT资源块,通过第二函数记录本板当前可分配的NAT资源块数目。
其中,指针数组ppstNatBlock对应记录所述业务板上所有的NAT资源块,指针不为空对应的都是本业务板的NAT资源块;nextavailBlk为第一函数,用于在NAT资源分配时找到当前可分配用的NAT资源块;而availblknum为第二函数,表示本业务板可分配的NAT资源块的个数,这个函数用于决定是否向主控板申请NAT资源块或者释放NAT资源块。
在业务板管理NAT资源块的同时,业务板还需要对报文流进行NAT资源块中的NAT资源项的分配,其中,通过为每一NAT资源块设置的第三函数指向该NAT资源块中当前可分配的NAT资源项。
作为一个较佳的实施例,业务板可以按照位图的形式记录NAT资源块中的NAT资源项,通过将相应的bit位置1为所述NAT资源项设置已分配标志,通过将相应的bit位置0为所述NAT资源项取消已分配标志。
图9显示了一个具体的位图维护情况,业务板通过位图方式为每个NAT资源块维护1024个NAT资源项的使用情况;其中,数组ulPort[32]用于维护1024个NAT资源项的使用状态,每个bit代表本块内的一个NAT资源项(IP+端口),ulNextPortWord作为第三函数,表示下一个可分配的NAT资源项在本块中的相对位置(ulNextPortWord/32为在数组ulPort[32]中的偏移位置,ulNextPortWord%32为在数组元素的bit偏移位置)。
上述图6~图9示例了采用资源块形式组织NAT资源项的具体情况,从中可以看出,主控板和业务板之间进行资源块的交互而非单独的NAT资源项的交互,能够有效的减少业务板和主控板之间全局维护NAT资源使用所需的交互信息量。
同时可以看出,NAT业务使用的资源分两步完成,在主控板完成全局NAT资源块分配(一次分配)和回收,在业务板上完成具体NAT资源项的分配(二次分配)和释放。具体的,业务板上NAT资源项的二次分配和释放过程如图10A和图10B所示。
图10A显示了业务板上NAT资源项分配过程的流程图,包括以下步骤:
S211、通过所述第一函数(nextavailBlk)获取当前所分配的NAT资源块;
S212、找到NAT资源块后,通过该NAT资源块中的第三函数(ulNextPortWord)获取当前可分配的NAT资源项;
S213、将该NAT资源项分配给报文流,并为其设置已分配标志;
具体的,可通过以下方法设置已分配标志:
通过ulNextPortWord/32找到其在资源数组ulPort[32]中的位置,通过ulNextPortWord%32找到其在数组元素的bit位置,将此bit位置为1。
S214、在该NAT资源块中查找是否存在下一可分配的NAT资源项,是则,执行步骤S215,否则,执行步骤S216;
S215、将第三函数(ulNextPortWord)指向所述下一可分配的NAT资源项;这里的策略是尽量保证后面的资源块都是空白的,即后续资源块中的NAT资源项都没有被分配,以便于主控块做回收处理;
S216、将第三函数(ulNextPortWord)指向无效值,标识该NAT资源块已分配并将第二函数(availblknum)执行减1处理,此外,如果availblknum小于第一阙值,则向主控板申请新的NAT资源块,不再赘述;
具体的,可通过以下方法标识该NAT资源块已分配:置ulNextPortWord为全F,表示本块已经分配完。
S217、在指针数组(ppstNatBlock)中从头查找可分配的NAT资源块并将第一函数(nextavailBlk)指向它,将该NAT资源块的第三函数(ulNextPortWord)指向其一NAT资源项。
图10B显示了业务板上NAT资源释放过程的流程图,包括以下步骤:
S221、对于报文流释放的NAT资源项,根据其公网IP和端口号计算相应的NAT资源块索引标识,以识别其所在的NAT资源块;其中,NAT资源块索引=(IP1-地址池首地址)×63+Port1/1024。资源块中的偏移位置=Port1%1024;
S222、为该NAT资源块中的相应NAT资源取消已分配标志;
具体的,可采用以下操作:对NAT资源块中偏移位置对应的bit置0,完成资源释放处理。
S223、识别NAT资源块的第三函数(ulNextPortWord)是否指向无效值,是则执行步骤S224,否则执行步骤S225;
S224、说明释放前该NAT资源块中没有可分配的NAT资源,则将第三函数(ulNextPortWord)指向该NAT资源项,并执行步骤S225;
S225、识别第一函数(nextavailBlk)是否指向无效值,是则执行步骤S226,否则执行步骤S227;
S226、说明释放前该业务板中没有可分配的NAT资源块,则将第一函数(nextavailBlk)指向该NAT资源块;
S227、识别NAT资源块中是否所有的NAT资源项都已释放完毕;
S228、如果是,取消所述NAT资源块的已分配标识并将第二函数(availblknum)执行加1处理;此外,如果availblknum大于第二阈值,则向主控板释放相应的NAT资源块,不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,在主控板中统一管理NAT资源项,包括闲置的NAT资源项和已分配给各业务板的NAT资源项,所述NAT资源项由成对的公网IP和端口构成;以及,执行如下步骤:
S1、所述主控板根据各业务板的请求,执行闲置的NAT资源项到相应的业务板的一次分配;
S2、所述业务板执行所述主控板分配的NAT资源项到所处理的报文流的二次分配。
所述的存储介质包括:ROM/RAM(Read Only Memory/Random-AccessMemory,只读存储器/随机访问内存)、磁碟或者光盘等。
相应的,本发明实施例还提供了分布式架构下NAT地址池的自适应分配***100,适用于由主控板、一个以上业务板和接口板构成的分布式处理架构,当然,该分布式处理架构中主控板和接口板可以合设。
请参考图11,包括:
NAT地址池101,设置在主控板上,用于保存NAT资源项,包括闲置的NAT资源项和已分配给各业务板的NAT资源项;该NAT资源项为“IP+端口”的组合,由成对的公网IP和端口构成,即每一NAT资源项对应NAT地址池101中唯一的公网IP和端口对,而NAT地址池101由一个个连续的NAT资源项组成。
NAT一次分配单元102,设置在主控板上,与NAT地址池101连接,用于根据各业务板的请求,执行闲置的NAT资源项到相应的业务板的一次分配;由于各业务板可以根据本板实际处理的报文流情况实时发出请求,因此报文流量较高的业务板能够从主控板获得较多的NAT资源。
NAT二次分配单元103,设置在业务板上,与NAT一次分配单元的输出102连接,用于执行所分配的NAT资源项到所处理的报文流的二次分配。
可以看出,主控板进行全局NAT资源的统一控制,从而避免各个业务板上NAT处理的五元组冲突;以及,在分布式环境下实现根据各个业务板NAT业务量来适应性分配NAT资源,从而提高NAT资源的利用率。
较佳的,请结合图12,NAT一次分配单元102还与NAT二次分配单元103的输出连接,用于将各NAT二次分配单元103释放的NAT资源项重新在NAT地址池101中设置为闲置的NAT资源项,以适应业务板流量的变化,动态调整业务板上的NAT资源,从而实现NAT资源的最大利用,克服现有技术中地址池资源分配存在的资源占用问题和使用不均匀的问题,达到最大化的NAT资源利用率的目标。
作为具体的实施例,请参见图13A~13C。
图13A显示了NAT地址池101的一个具体实施例,包括:
空闲NAT资源组1011,用于保存闲置的NAT资源项;
各业务板NAT资源组1012,用于相应保存已分配给各业务板的NAT资源项;
资源转移模块1013,分别空闲NAT资源组1011、各业务板NAT资源组1012和NAT一次分配单元102连接,用于将一次分配给业务板的NAT资源项从空闲NAT资源组1011中转移到相应的业务板NAT资源组1012中,以及,将各业务板释放的资源项从相应业务板NAT资源组1012中转移到闲置的空闲NAT资源组1011中。
较佳的,为了便于NAT资源的管理和分配,减少业务板和主控板之间的管理信息交互,NAT资源项可以以NAT资源块的形式加以组织。该NAT资源块由对按照公网IP地址顺序排列,且每一公网IP地址下按照端口顺序排列的连续NAT资源项进行分块获得,且每个NAT资源块以顺序编号的NAT资源块索引标识,以便计算其标识的资源范围。具体示例请结合图6。
在NAT资源项以NAT资源块的形式加以组织的情况下,空闲NAT资源组1011和业务板NAT资源组1012都是以NAT资源块的形式对NAT资源项加以保存,资源转移模块1013也是以NAT资源块为单位,配合一次分配进行NAT资源在主控板内的转移。
为了便于NAT资源项/NAT资源块的组织,作为一个具体实现方式,该空闲资源组1011和业务板资源组1012可以为链表。
图13B显示了NAT一次分配单元102的一个具体实施例,包括:
NAT一次分配模块1021,用于根据业务板的请求,指令NAT地址池101将闲置的NAT资源项设置为已分配给业务板的NAT资源项,并通过板间通信将该NAT资源信息通知NAT二次分配单元103;
NAT资源回收模块1022,用于根据业务板的资源释放情况,指令NAT地址池103将各业务板释放的NAT资源项重新设置为闲置的NAT资源项。
在NAT资源项以NAT资源块的形式加以组织的情况下,NAT一次分配模块1021所分配的,以及NAT资源回收模块1022所回收的,都是NAT资源块。
图13C显示了NAT二次分配单元103的一个具体实施例,包括:
NAT资源模块1031,用于保存NAT一次分配单元102所分配的NAT资源项;在NAT资源项以NAT资源块的形式加以组织的情况下,其保存的是NAT资源块;
NAT二次分配模块1032,与NAT资源模块1031连接,用于将本板当前可分配的NAT资源项二次分配给报文流,并为该二次分配的NAT资源项设置已分配标志;
NAT资源释放模块1033,与NAT资源模块1031连接,用于取消报文流释放的NAT资源项的已分配标志,使其重新成为本板当前可分配的资源项。
在NAT资源项以NAT资源块的形式加以组织的情况下,NAT二次分配模块1032和NAT资源释放模块1033都是对NAT资源块内的NAT资源项执行操作。特别是,NAT资源模块1031包括:
指针数组,用于记录业务板上所有的NAT资源块;
第一函数块,用于指向当前所分配的NAT资源块;
第二函数块,用于记录当前可分配的NAT资源块数目;
同时,该指针数组的每一个NAT资源块关联有:
NAT数组,用于记录NAT资源块中的NAT资源项:
第三函数块,用于指向当前可分配的NAT资源项。
从上述实施例可以看出,在NAT资源项以NAT资源块的形式加以组织的情况下,能够实现NAT资源的分层管理,即在主控板上完成NAT资源块的分配,在业务板上完成具体NAT资源项的分配。
较佳的,为了达到高效快速的资源分配,该NAT数组可以为位图,相应的bit位置1标志所述NAT资源项已分配,相应的bit位置0标志所述NAT资源项未分配。
同时,为了有效的实现NAT资源块的分配和释放,NAT二次分配单元103还可以包括:
NAT资源控制模块1034,与NAT资源模块1031连接,用于识别本板当前可分配的NAT资源项;如果可分配的NAT资源项数量小于预设的第一阈值,向NAT一次分配单元102请求获取一定数量的NAT资源项;如果可分配的NAT资源项数量大于预设的第二阈值时,向NAT一次分配单元102释放一定数量的NAT资源项。
在NAT资源项以NAT资源块的形式加以组织的情况下,该NAT资源控制模块1034与NAT资源模块1031的第二函数块连接,以当前可分配的NAT资源块数目作为与第一/第二阈值比较的依据。
虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。
Claims (19)
1.一种分布式架构下NAT地址池的自适应分配方法,适用于由主控板、一个以上业务板和接口板构成的分布式处理架构;其特征在于,在主控板中统一管理NAT资源项,包括闲置的NAT资源项和已分配给各业务板的NAT资源项,所述NAT资源项由成对的公网IP和端口构成;以及,执行以下步骤:
S1、所述主控板根据各业务板的请求,执行闲置的NAT资源项到相应的业务板的一次分配;
S2、所述业务板执行所述主控板分配的NAT资源项到所处理的报文流的二次分配。
2.根据权利要求1所述的分布式架构下NAT地址池的自适应分配方法,其特征在于,所述步骤S1还包括:所述主控板将各业务板释放的NAT资源项重新设置为闲置的NAT资源项。
3.根据权利要求2所述的分布式架构下NAT地址池的自适应分配方法,其特征在于,所述主控板分组保存闲置的NAT资源项和分配给各业务板的资源项;
所述步骤S1中主控板执行闲置的NAT资源项到相应业务板的一次分配的步骤包括:将所述NAT资源项从闲置的NAT资源组中转移到相应的业务板资源组中,并通过板间通信通知所述业务板;
所述步骤S1中主控板将各业务板释放的NAT资源项重新设置为闲置的NAT资源项的步骤包括:将所述NAT资源项从相应的业务板资源组中转移到闲置的NAT资源组中。
4.根据权利要求3所述的分布式架构下NAT地址池的自适应分配方法,其特征在于,以链表的形式分组保存NAT资源项。
5.根据权利要求2所述的分布式架构下NAT地址池的自适应分配方法,其特征在于,所述步骤S2包括:
S21、将本板当前可分配的NAT资源项二次分配给报文流,并为所述二次分配的NAT资源项设置已分配标志;
S22、对报文流释放的NAT资源项,取消所述NAT资源项的已分配标志,使其重新成为本板当前可分配的资源项。
6.根据权利要求2所述的分布式架构下NAT地址池的自适应分配方法,其特征在于,还包括以下步骤:
S01、业务板识别本板当前可分配的NAT资源项;
S02、当可分配的NAT资源项数量小于预设的第一阈值时,所述业务板向主控板请求获取一定数量的NAT资源项,并执行步骤S1;
S03、当可分配的NAT资源项数量大于预设的第二阈值时,所述业务板向主控板释放一定数量的NAT资源项,并执行步骤S1。
7.根据权利要求1-6任一所述的分布式架构下NAT地址池的自适应分配方法,其特征在于,
所述统一管理的NAT资源项以NAT资源块的形式组织;其中,所述NAT资源块通过以下步骤获得:
以按照公网IP地址顺序排列,且每一公网IP地址下按照端口顺序排列的方式,设置连续的NAT资源项;
对所述连续的NAT资源项加以分块,每个NAT资源块以顺序编号的NAT资源块索引标识。
8.根据权利要求7所述的分布式架构下NAT地址池的自适应分配方法,其特征在于,
所述步骤S1包括:主控板根据各业务板的请求,将闲置的NAT资源块分配给相应的业务板,以及,将各业务板释放的NAT资源块重新设置为闲置的NAT资源块;
所述步骤S2包括:业务板对报文流进行NAT资源块中的NAT资源项的分配;其中,各业务板通过指针数组记录本板上所有的NAT资源块,通过第一函数指向本板当前所分配的NAT资源块,通过第二函数记录本板当前可分配的NAT资源块数目,以及,通过为NAT资源块设置的第三函数指向所述NAT资源块中当前可分配的NAT资源项。
9.根据权利要求8所述的分布式架构下NAT地址池的自适应分配方法,其特征在于,所述步骤S21包括:
S211、通过所述第一函数获取所述当前所分配的NAT资源块;
S212、通过所述第三函数获取当前可分配的NAT资源项;
S213、将所述当前可分配的NAT资源项分配给报文流,并为所述已分配给报文流的NAT资源项设置已分配标志;
S214、在所述当前所分配的NAT资源块中查找是否存在下一可分配的NAT资源项,是则,执行步骤S215,否则,执行步骤S216;
S215、将所述第三函数指向所述下一可分配的NAT资源项;
S216、将所述第三函数指向无效值,标识所述当前所分配的NAT资源块已分配并将所述第二函数执行减1处理;
S217、在所述指针数组中查找可分配的NAT资源块并将所述第一函数指向所述可分配的NAT资源块,将所述可分配的NAT资源块的第三函数指向所述可分配的NAT资源块中的一NAT资源项;
所述步骤S22包括:
S221、对于报文流释放的NAT资源项,根据其公网IP和端口号计算相应的NAT资源块索引标识,以识别其所在的NAT资源块;
S222、为所述释放的NAT资源项所在的NAT资源块中的相应NAT资源项取消已分配标志;
S223、识别所述释放的NAT资源项所在的NAT资源块的第三函数是否指向无效值,是则执行步骤S224,否则执行步骤S225;
S224、将所述第三函数指向所述NAT资源项,并执行步骤S225;
S225、识别第一函数是否指向无效值,是则执行步骤S226,否则执行步骤S227;
S226、将所述第一函数指向所述NAT资源块;
S227、识别所述释放的NAT资源项所在的NAT资源块中是否所有的NAT资源都已释放完毕;
S228、如果是,取消所述释放的NAT资源项所在的NAT资源块的已分配标识并将第二函数执行加1处理。
10.根据权利要求9所述的分布式架构下NAT地址池的自适应分配方法,其特征在于,所述步骤S2中,业务板按照位图的形式记录NAT资源块中的NAT资源项,通过将相应的bit位置1为所述NAT资源项设置已分配标志,通过将相应的bit位置0为所述NAT资源项取消已分配标志。
11.一种分布式架构下NAT地址池的自适应分配***,适用于由主控板、一个以上业务板和接口板构成的分布式处理架构;其特征在于,包括:
NAT地址池,设置在所述主控板上,用于保存NAT资源项,包括闲置的NAT资源项和已分配给各业务板的NAT资源项,所述NAT资源项由成对的公网IP和端口构成;
NAT一次分配单元,设置在所述主控板上,与所述NAT地址池连接,用于根据各业务板的请求,执行闲置的NAT资源项到相应的业务板的一次分配;
NAT二次分配单元,设置在所述业务板上,与所述NAT一次分配单元的输出连接,用于执行所分配的NAT资源项到所处理的报文流的二次分配。
12.根据权利要求11所述的分布式架构下NAT地址池的自适应分配***,其特征在于,所述NAT一次分配单元与所述NAT二次分配单元的输出连接,用于将各NAT二次分配单元释放的NAT资源项重新在NAT地址池中设置为闲置的NAT资源项。
13.根据权利要求12所述的分布式架构下NAT地址池的自适应分配***,其特征在于,所述NAT地址池包括:
空闲NAT资源组,用于保存闲置的NAT资源项;
各业务板NAT资源组,用于相应保存已分配给各业务板的NAT资源项;
资源转移模块,分别与空闲NAT资源组、各业务板NAT资源组和NAT一次分配单元连接,用于将一次分配给业务板的NAT资源项从空闲NAT资源组中转移到相应的业务板NAT资源组中,以及,将各业务板释放的NAT资源项从相应的业务板NAT资源组中转移到空闲NAT资源组中。
14.根据权利要求13所述的分布式架构下NAT地址池的自适应分配***,其特征在于,所述空闲NAT资源组和各业务板NAT资源组为链表。
15.根据权利要求12所述的分布式架构下NAT地址池的自适应分配***,其特征在于,所述NAT一次分配单元包括:
NAT一次分配模块,用于根据业务板的请求,指令所述NAT地址池将闲置的NAT资源项设置为已分配给业务板的NAT资源项,并通过板间通信将所述NAT资源信息通知所述NAT二次分配单元;
NAT资源回收模块,用于指令所述NAT地址池将各业务板释放的NAT资源项重新设置为闲置的NAT资源项。
16.根据权利要求12所述的分布式架构下NAT地址池的自适应分配***,其特征在于,所述NAT二次分配单元包括:
NAT资源模块,用于保存一次分配的NAT资源项;
NAT二次分配模块,与所述NAT资源模块连接,用于将本板当前可分配的NAT资源项二次分配给报文流,并为所述二次分配的NAT资源项设置已分配标志;
NAT资源释放模块,与所述NAT资源模块连接,用于取消报文流释放的NAT资源项的已分配标志,使其重新成为本板当前可分配的资源项。
17.根据权利要求12所述的分布式架构下NAT地址池的自适应分配***,其特征在于,所述NAT二次分配单元还包括:
NAT资源控制模块,与所述NAT资源模块连接,用于识别本板当前可分配的NAT资源项;如果可分配的NAT资源项数量小于预设的第一阈值,向所述NAT一次分配单元请求获取一定数量的NAT资源项;如果可分配的NAT资源项数量大于预设的第二阈值时,向所述NAT一次分配单元释放一定数量的NAT资源项。
18.根据权利要求17所述的分布式架构下NAT地址池的自适应分配***,其特征在于,所述NAT地址池中的NAT资源项以NAT资源块的形式组织,其中所述NAT资源块由对按照公网IP地址顺序排列,且每一公网IP地址下按照端口顺序排列的连续NAT资源项进行分块获得,且每个NAT资源块以顺序编号的NAT资源块索引标识;则
所述NAT资源模块包括:
指针数组,用于记录所述业务板上所有的NAT资源块;
第一函数块,用于指向当前所分配的NAT资源块;
第二函数块,与所述NAT资源控制模块连接,用于记录当前可分配的NAT资源块数目;
所述指针数组的每一个NAT资源块关联有:
NAT数组,用于记录NAT资源块中的NAT资源项:
第三函数块,用于指向当前可分配的NAT资源项。
19.根据权利要求18所述的分布式架构下NAT地址池的自适应分配***,其特征在于,所述NAT数组为位图,相应的bit位置1标志所述NAT资源项已分配,相应的bit位置0标志所述NAT资源项未分配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100842714A CN101247421B (zh) | 2008-03-28 | 2008-03-28 | 分布式架构下nat地址池的自适应分配方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100842714A CN101247421B (zh) | 2008-03-28 | 2008-03-28 | 分布式架构下nat地址池的自适应分配方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101247421A CN101247421A (zh) | 2008-08-20 |
CN101247421B true CN101247421B (zh) | 2011-09-07 |
Family
ID=39947619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100842714A Expired - Fee Related CN101247421B (zh) | 2008-03-28 | 2008-03-28 | 分布式架构下nat地址池的自适应分配方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101247421B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106230751A (zh) * | 2016-07-27 | 2016-12-14 | 杭州华三通信技术有限公司 | 自适应调整资源占用比例的方法和装置 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101431440B (zh) * | 2008-11-28 | 2010-10-27 | 杭州华三通信技术有限公司 | 一种流量监控方法和设备 |
CN102594933B (zh) * | 2011-12-20 | 2015-04-08 | 华为技术有限公司 | 一种公网地址分配的方法、装置及*** |
CN102404236A (zh) * | 2011-12-30 | 2012-04-04 | 苏州山石网络有限公司 | 一种分布式***中nat端口资源的分配方法 |
CN102412949B (zh) * | 2011-12-30 | 2014-09-24 | 山石网科通信技术有限公司 | 一种分布式***中nat端口资源支持双控制板的方法 |
CN102821036A (zh) * | 2012-04-20 | 2012-12-12 | 杭州华三通信技术有限公司 | 一种实现报文转发的方法及设备 |
CN104065759A (zh) * | 2013-03-22 | 2014-09-24 | 杭州迪普科技有限公司 | 一种提高nat地址池资源利用效率的方法及装置 |
CN104104592B (zh) * | 2013-04-12 | 2017-09-12 | 华为技术有限公司 | 报文处理方法、装置及*** |
CN103369045B (zh) * | 2013-07-11 | 2016-12-28 | 京信通信***(中国)有限公司 | 变频覆盖***的控制方法及装置 |
CN104426794B (zh) * | 2013-08-23 | 2018-06-26 | 华为技术有限公司 | 一种报文转发方法及装置 |
CN103685600B (zh) * | 2013-12-11 | 2016-08-17 | 河海大学 | 基于rb树和位图混合的网络地址端口转换池管理方法 |
CN104601738B (zh) * | 2014-12-09 | 2018-04-10 | 国家计算机网络与信息安全管理中心 | 一种分布式网络地址转换*** |
CN104506460B (zh) * | 2014-12-29 | 2018-01-26 | 迈普通信技术股份有限公司 | 一种实现napt端口资源分配的方法 |
CN105991460B (zh) * | 2015-03-02 | 2019-09-06 | 杭州迪普科技股份有限公司 | 流量负载转发方法、主控板、业务板及网络设备 |
CN106571944A (zh) * | 2015-10-10 | 2017-04-19 | 中兴通讯股份有限公司 | 用户侧设备、服务器、端口资源管理方法及*** |
CN106060183B (zh) * | 2016-05-03 | 2019-05-07 | 新华三技术有限公司 | 一种地址分配方法及装置 |
CN105939404B (zh) * | 2016-05-04 | 2019-02-19 | 杭州迪普科技股份有限公司 | Nat资源的获取方法及装置 |
CN107454200B (zh) * | 2016-06-01 | 2022-03-18 | 中兴通讯股份有限公司 | 一种分布式架构下地址资源分配方法、装置和主控板 |
CN107547666A (zh) * | 2016-06-24 | 2018-01-05 | 迈普通信技术股份有限公司 | 网络地址转换的实现方法及装置 |
CN108234422B (zh) | 2016-12-21 | 2020-03-06 | 新华三技术有限公司 | 资源调度方法及装置 |
CN107566549B (zh) * | 2017-09-30 | 2021-06-18 | 东软集团股份有限公司 | 一种网络地址转换映射表的处理方法、装置及设备 |
CN112600765B (zh) * | 2020-12-02 | 2022-07-29 | 杭州迪普科技股份有限公司 | 一种配置资源调度方法及装置 |
CN114039951A (zh) * | 2021-11-08 | 2022-02-11 | 北京天融信网络安全技术有限公司 | 一种动态分配地址池方法、装置及*** |
CN115086274B (zh) * | 2022-06-10 | 2023-12-22 | 北京启明星辰信息安全技术有限公司 | 一种网络流量分配方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020034281A (ko) * | 2000-10-31 | 2002-05-09 | 정규석 | 효율적인 NAT 수행을 위한 PC 윈도우 환경에서의NAT Entry 할당과 해지 알고리즘 |
CN1754374A (zh) * | 2003-03-28 | 2006-03-29 | 思科技术公司 | 带有网关负载分配的网络地址转换 |
CN1777194A (zh) * | 2005-12-16 | 2006-05-24 | 中国科学院计算技术研究所 | Pat模式下支持多会话应用层协议的网络地址转换方法 |
CN101150502A (zh) * | 2007-10-22 | 2008-03-26 | 中兴通讯股份有限公司 | 一种nat-pt设备及其负荷分担方法 |
-
2008
- 2008-03-28 CN CN2008100842714A patent/CN101247421B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020034281A (ko) * | 2000-10-31 | 2002-05-09 | 정규석 | 효율적인 NAT 수행을 위한 PC 윈도우 환경에서의NAT Entry 할당과 해지 알고리즘 |
CN1754374A (zh) * | 2003-03-28 | 2006-03-29 | 思科技术公司 | 带有网关负载分配的网络地址转换 |
CN1777194A (zh) * | 2005-12-16 | 2006-05-24 | 中国科学院计算技术研究所 | Pat模式下支持多会话应用层协议的网络地址转换方法 |
CN101150502A (zh) * | 2007-10-22 | 2008-03-26 | 中兴通讯股份有限公司 | 一种nat-pt设备及其负荷分担方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106230751A (zh) * | 2016-07-27 | 2016-12-14 | 杭州华三通信技术有限公司 | 自适应调整资源占用比例的方法和装置 |
CN106230751B (zh) * | 2016-07-27 | 2019-12-06 | 新华三技术有限公司 | 自适应调整资源占用比例的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101247421A (zh) | 2008-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101247421B (zh) | 分布式架构下nat地址池的自适应分配方法和*** | |
CN103117947B (zh) | 一种负载分担方法及装置 | |
CN102685272B (zh) | 一种分配公网地址的方法及装置 | |
CN103078965B (zh) | 虚拟机的ip地址管理方法 | |
CN102209123B (zh) | Mac地址管理方法、***、mac地址服务器及客户机 | |
CN104951353A (zh) | 一种对vnf实现加速处理的方法及装置 | |
CN105159775A (zh) | 基于负载均衡器的云计算数据中心的管理***和管理方法 | |
CN103797774A (zh) | 一种网络地址转换设备及方法 | |
CN102594660A (zh) | 一种虚拟接***换方法、装置及*** | |
CN102004673A (zh) | 多核处理器负载均衡的处理方法及*** | |
CN101167307A (zh) | 一种可动态自适应的分布式资源管理***和方法 | |
CN110569302A (zh) | 一种基于lucene的分布式集群的物理隔离的方法及装置 | |
CN111857977B (zh) | 弹性伸缩方法、装置、服务器和存储介质 | |
CN110661865A (zh) | 一种网络通信方法及网络通信架构 | |
CN110166857A (zh) | 一种光纤通道交换机动态配置的实现方法 | |
CN110519354A (zh) | 一种分布式对象存储***及其业务处理方法和存储介质 | |
CN111629059B (zh) | 一种集群通信方法、***、设备及计算机可读存储介质 | |
CN114518955A (zh) | 一种基于kubernetes的Flink云原生部署架构方法及*** | |
CN102725746A (zh) | 对分布式计算机***中内存的管理方法和装置 | |
CN105208137A (zh) | 一种互联网协议ip地址分配方法、装置、服务器和终端 | |
CN102209016A (zh) | 一种数据处理方法、装置和数据处理*** | |
CN109193653A (zh) | 一种功率分配的方法及装置 | |
CN112995349B (zh) | 地址管理方法、服务器和计算机可读存储介质 | |
CN103841200A (zh) | 一种软件许可的控制方法和装置 | |
CN103546522B (zh) | 确定存储服务器的方法及分布式存储*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110907 Termination date: 20200328 |
|
CF01 | Termination of patent right due to non-payment of annual fee |