分布式架构下nat地址池的自适应分配方法和系统的利记博彩app

文档序号:7689798阅读:314来源:国知局
专利名称:分布式架构下nat地址池的自适应分配方法和系统的利记博彩app
技术领域
本发明涉及通信网技术,尤其涉及一种分布式架构下NAT地址池的自 适应分配方法和系统。
背景技术
NAT (Network Address Translation,网络地址转换)技术是一种把内网 私有IP地址翻译成公网IP地址的技术,被用来缓解目前IP空间枯竭的问题。NAT技术通常被应用在路由器、防火墙、ISDN路由器或者单独的NAT 设备中,主要包括以下三种类型静态NAT (StaticNAT)、动态地址NAT (PooledNAT)禾B NAPT (Port—Level NAT,网络地址端口转换)。随着网络的发展和对设备功能性要求的提高,集中式的设备往往难以满 足实际的需求,因此分布式处理架构应运而生。以防火墙等安全设备为例, 由于安全设备在进行攻击检测及主动防御时需要消耗大量的CPU资源,单 纯采用集中方式处理的安全设备很难突破其在性能和带宽上的瓶颈,因此引 入_了图1所示的分布式处理架构业务处理单元(业务板)和接口单元(接 口板)分离,在各个业务板上完成业务的分布式处理,以及通过接口板进行 发送处理;其中,主控板用于进行业务板和接口板的业务配置和管理。可以看出,在分布式处理架构中,由于报文流需要在不同的业务板上进 行NAT处理,那么在各个业务板共用NAT地址池资源的情况下,就会存在 五元组冲突的可能性。如图2所示,私有源IP地址为192.168丄1、源端口为 21的报文流(1)和私有源IP地址为192.168丄2、源端口为21的报文流(2) 分别从接口板上的接口 l被发送到业务板l、 2进行NAT处理,处理后的公 网源IP为lOO丄l.l,源端口为1025,则两条数据流会产生五元组冲突,其 结果是NAT处理后两条数据流合并为一条数据流,这样返回的反向报文就 没有办法被转换成原本地两条数据流,即反向报文无法送回原来的设备,从 而,导致网络业务无法得到正常处理,同时可能带来网络安全方面的问题。因此,在分布式处理架构中,需要有效的进行地址池资源管理,以避免 业务板处理过程中的五元组冲突。现有的地址池资源管理所采用的,是按照业务板进行地址池资源静态划 分的方式,主要包括以下两种(1) 对于地址池资源按照IP地址进行划分,即各个业务板使用不同的 公网IP地址;具体的,是在业务板启动后,根据地址池资源和整机业务板数量,划分 得到属于本业务板的地址使用范围。例如在2个业务板的情况下,对于地址池A(100丄l.l 100.1丄10),业务板1使用的地址范围为100.1丄1 100.1丄5, 业务板2使用的地址范围为100丄1.6-100丄1.10;在业务板处理报文流时, 业务板从自己所使用的地址池中选取地址作为源地址,端口选择可以是任意 可用值。请结合图3A,显示了按照IP地址划分地址池资源时报文流的处理情况, 其中,报文流(1)在业务板进行NAT处理后源IP变为lOO丄l.l,而报文流(2) 上业务板进行NAT处理后源IP变为100丄1.6;可以看出,即使不同业务板 所分配的端口相同,也不会出现五元组冲突的问题。(2) 对于地址池资源按照端口范围进行划分,即各个业务板使用的公 网IP地址范围相同,但是端口范围不同;具体的,是在业务板启动后获得静态的端口范围参数。例如在2个业务 板的情况下,如果用户可使用的端口范围是1025-65535,则业务板1使用的 端口范围为1025-00,业务板2使用的端口范围为01-65535;在业务板处理 报文流时,业务板从自己所使用的端口范围中分配端口。请结合图3B,显示了按照端口范围划分地址池资源时报文流的处理情 况,其中,报文流(l)在业务板进行NAT处理后源端口变为1025,而报文流 (2)上业务板进行NAT处理后源端口变为30001;可以看出,即使不同业务 板所分配的IP地址相同,也不会出现五元组冲突的问题。虽然上述技术方案能够通过静态配置完全避免资源分配冲突的问题,且 实现简单方便;但是,仍然存在以下问题 (1)适用范围存在限制;例如,由于地址池是静态划分的,因此无法解决动态NAT,如Easy IP情况下五元组冲突的问题;再例如,对于地址池范围小于业务板数量情况不适用;举例来说,如果地址池资源为100丄1.1 00丄1.5,而业务板个数为6,则必然有一个业务板 不能获得地址池资源的分配。(2) 处理能力存在限制;由于接口板的报文流并不是均匀分发给各个业务板的,因此可能存在一 个业务板上地址池资源已经耗尽,而其余业务板的地址池资源并远未到达上 限的情况。例如,如果业务板1由于报文流比较多而使用完所分配的端口资源(1025 一OO),则其对于新接收的报文流进行处理时,就会由于分配端口失败而导 致处理失败,进而导致报文被丢弃;同时,业务板2上由于报文流比较少, 端口资源还有很多未被使用。显然,地址池的静态配置往往导致整机远未达到最大规格的情况下,已 经难以正常处理业务的情况。(3) 灵活性差;由于地址池资源是静态划分的,即使在某些业务板故障或者不在位的情 况下,其地址池资源也不能由其他业务板,造成地址池资源的闲置和浪费。综上所述,目前分布式处理架构下NAT资源的分配方案存在诸多不足, 现有技术尚无妥善的解决方案。发明内容本发明的实施例旨在提供分布式架构下NAT地址池的自适应分配方案, 以有效提高NAT资源的利用率。为实现上述目的,本发明的实施例提供了一种分布式架构下NAT地址 池的自适应分配方法,适用于由主控板、 一个以上业务板和接口板构成的分 布式处理架构;在主控板中统一管理NAT资源项,包括闲置的NAT资源项 和已分配给各业务板的NAT资源项,该NAT资源项由成对的公网IP和端 口构成;以及,执行以下步骤Sl、该主控板根据各业务板的请求,执行闲置的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地址池通过以下步骤实现 自适应分配51、 主控板根据各业务板的请求,执行闲置的NAT资源项到相应的 业务板的一次分配;即报文流量较高的业务板能够从主控板获得较多的 NAT资源。具体的,在主控板分组保存闲置的NAT资源项和分配给各业务板的 资源项的情况下,本步骤可以通过以下方式实现将NAT资源项从闲置 的NAT资源组中转移到相应的业务板资源组中,并通过板间通信通知该 业务板。同时,为了提高效率,主控板所进行的一次分配一般为同时分配多 个NAT资源项。52、 业务板执行该主控板分配的NAT资源项到所处理的报文流的二次分配,也就是针对每一个报文流,分配一个NAT资源项。具体的,本步骤S2包括521、 将本板当前可分配的NAT资源项二次分配给报文流,并为二 次分配的NAT资源项设置已分配标志;522、 对报文流释放的NAT资源项,取消该NAT资源项的已分配标 志,使其重新成为本板当前可分配的资源项。通过上述步骤S1 S2可以看出,本技术方案可以通过NAT资源项的 全局管理有效的避免五元组冲突,还可以在分布式环境下实现根据各个 业务板NAT业务量来适应性分配NAT资源,从而提高NAT资源的利用 率。较佳的,步骤S1还包括主控板将各业务板释放的NAT资源项重新设 置为闲置的NAT资源项。本步骤的作用在于适应业务板流量的变化,动态调整业务板上的NAT 资源,从而实现NAT资源的最大利用,克服现有技术中地址池资源分配存 在的资源占用问题和使用不均匀的问题。具体的,在主控板分组保存闲置的NAT资源项和分配给各业务板的资 源项的情况下,本步骤可以通过以下方式实现将该NAT资源项从相应的 业务板资源组中转移到闲置的NAT资源组中。为了实现主控板和业务板之间NAT资源项的有效转移,请参见图5,可 以执行以下步骤501、 业务板识别本板当前可分配的NAT资源项;502、 当可分配的NAT资源项数量小于预设的第一阈值时,业务板 向主控板请求获取一定数量的NAT资源项,并执行步骤S1,使主控板根 据各业务板的请求,执行闲置的NAT资源项到相应的业务板的一次分配;503、 当可分配的NAT资源项数量大于预设的第二阈值时,业务板向主 控板释放一定数量的NAT资源项,并执行步骤S1,使主控板将各业务板释 放的NAT资源项重新设置为闲置的NAT资源项。其中,第一阈值和第二阈值可以由管理员根据实际需要进行设置,且上 述步骤可以周期性执行。通过上述较佳实施例可以看出,当业务板NAT资源不足时,主控板能够将NAT资源项分配给业务板;当业务板NAT资源项出现过剩,可 以将NAT资源返回给主控板,供主控板调配。因此,本技术方案不但可 以有效的避免五元组冲突,还可以在分布式环境下实现根据各个业务板 NAT业务量动态调整各个业务板上NAT资源分配情况,达到最大化的 NAT资源利用率的目标。更佳的,为了实现高效快速的资源分配,本发明实施例采用资源块的方 式对NAT资源进行管理,即NAT地址池按连续的资源块进行组织,每个资 源块为一些连续的资源组成。如图6所示,显示了以资源块方式组织时,NAT地址池组织逻辑的一个 具体示例。该地址池范围是(訓丄1.1 100丄U0),可用端口范围一共是63K (即 1025到65535),则以按照公网IP地址顺序排列,且每一公网IP地址下按 照端口顺序排列的方式,可以获得10X63K的连续的NAT资源项。对连续的NAT资源项加以分块,可以考虑按照每块1024个资源来进行 组织,形成NAT资源i央,在本实施例中,每个NAT资源块由"IP+端口范围" 标识;其中,具体大小可以根据具体情况加以调整。每个NAT资源块由NAT资源块索引来标识,NAT资源池中资源块的 NAT资源块索引从0开始顺序进行编号,从而可以通过NAT资源块索引计 算出它所标识的资源范围。以图6所示情况为例,NAT资源块的IP地址= NAT资源块索弓1/63 +NAT地址池起始地址;NAT资源块的端口范围是(NAT 资源块索引X63X1024, (NAT资源块索引X63 + 1) X1024 ))。显然,主控板对于NAT资源项的统一管理,事实上是对NAT资源块的 统一管理。作为一个具体的实施例,步骤Sl中可以以链表的形式分组管理 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资源项的二次分配和释放过程如图IOA和图IOB所示。图10A显示了业务板上NAT资源项分配过程的流程图,包括以下步骤:5211、 通过所述第一函数(nextavai旧lk)获取当前所分配的NAT 资源块;5212、 找到NAT资源块后,通过该NAT资源块中的第三函数 (ulNextPortWord)获取当前可分配的NAT资源项;5213、 将该NAT资源项分配给报文流,并为其设置已分配标志; 具体的,可通过以下方法设置已分配标志通过ulNextPortWord/32找到其在资源数组ulPort[32]中的位置,通 过ulNextPortWord^32找到其在数组元素的bit位置,将此bit位置为1。5214、 在该NAT资源块中査找是否存在下一可分配的NAT资源项, 是则,执行步骤S215,否则,执行步骤S216;5215、 将第三函数(ulNextPortWord)指向所述下一可分配的NAT 资源项;这里的策略是尽量保证后面的资源块都是空白的,即后续资源 块中的NAT资源项都没有被分配,以便于主控块做回收处理;5216、 将第三函数(ulNextPortWord)指向无效值,标识该NAT资 源块已分配并将第二函数(availblknum)执行减1处理,此外,如果 availblknum小于第一阙值,则向主控板申请新的NAT资源块,不再赘述;具体的,可通过以下方法标识该NAT资源块已分配置 ulNextPortWord为全F,表示本块已经分配完。5217、 在指针数组(ppstNatBlock)中从头查找可分配的NAT资源块 并将第一函数(nextavai旧lk)指向它,将该NAT资源块的第三函数(ulNextPortWord )指向其一 NAT资源项。图IOB显示了业务板上NAT资源释放过程的流程图,包括以下步骤5221、 对于报文流释放的NAT资源项,根据其公网IP和端口号计 算相应的NAT资源块索引标识,以识别其所在的NAT资源块;其中, NAT资源块索引=(IPl-地址池首地址)X63 + Portl/1024。资源块中 的偏移位置=Portl°/。1024;5222、 为该NAT资源块中的相应NAT资源取消已分配标志; 具体的,可采用以下操作对NAT资源块中偏移位置对应的bit置0,完成资源释放处理。5223、 识别NAT资源块的第三函数(ulNextPortWord)是否指向无 效值,是则执行步骤S224,否则执行步骤S225;5224、 说明释放前该NAT资源块中没有可分配的NAT资源,则将 第三函数(ulNextPortWord)指向该NAT资源项,并执行步骤S225;5225、 识别第一函数(nextavai旧lk)是否指向无效值,是则执行步 骤S226,否则执行步骤S227;5226、 说明释放前该业务板中没有可分配的NAT资源块,则将第一 函数(nextavai旧lk)指向该NAT资源块;5227、 识别NAT资源块中是否所有的NAT资源项都己释放完毕;5228、 如果是,取消所述NAT资源块的已分配标识并将第二函数 (availblknum)执行加1处理;此外,如果availblknum大于第二阈值,则向主控板释放相应的NAT资源块,不再赘述。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成,所述的程序可以存储于一计算机可读 取存储介质中,该程序在执行时,在主控板中统一管理NAT资源项,包括 闲置的NAT资源项和已分配给各业务板的NAT资源项,所述NAT资源项 由成对的公网IP和端口构成;以及,执行如下步骤51、 所述主控板根据各业务板的请求,执行闲置的NAT资源项到相 应的业务板的一次分配;52、 所述业务板执行所述主控板分配的NAT资源项到所处理的报文流 的二次分配。所述的存储介质包括ROM/RAM (ReadonlyMemory/Random-Access Memory,只读存储器/随机访问内存)、磁碟或者光盘等。相应的,本发明实施例还提供了分布式架构下NAT地址池的自适应分 配系统100,适用于由主控板、 一个以上业务板和接口板构成的分布式处理 架构,当然,该分布式处理架构中主控板和接口板可以合设。请参考图11,包括NAT地址池lOl,设置在主控板上,用于保存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资源块数目作为与第一/第二阈值比较的依据。虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是 说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而 不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细 节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利 要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。2权利要求
1.一种分布式架构下NAT地址池的自适应分配方法,适用于由主控板、一个以上业务板和接口板构成的分布式处理架构;其特征在于,在主控板中统一管理NAT资源项,包括闲置的NAT资源项和已分配给各业务板的NAT资源项,所述NAT资源项由成对的公网IP和端口构成;以及,执行以下步骤S1、所述主控板根据各业务板的请求,执行闲置的NAT资源项到相应的业务板的一次分配;S2、所述业务板执行所述主控板分配的NAT资源项到所处理的报文流的二次分配。
2. 根据权利要求1所述的分布式架构下NAT地址池的自适应分配方 法,其特征在于,所述步骤Sl还包括所述主控板将各业务板释放的 NAT资源项重新设置为闲置的NAT资源项。
3. 根据权利要求2所述的分布式架构下NAT地址池的自适应分配方 法,其特征在于,所述主控板分组保存闲置的NAT资源项和分配给各业 务板的资源项;所述步骤Sl中主控板执行闲置的NAT资源项到相应业务板的一次 分配的步骤包括将所述NAT资源项从闲置的NAT资源组中转移到相 应的业务板资源组中,并通过板间通信通知所述业务板;所述步骤Sl中主控板将各业务板释放的NAT资源项重新设置为闲 置的NAT资源项的步骤包括将所述NAT资源项从相应的业务板资源 组中转移到闲置的NAT资源组中。
4. 根据权利要求3所述的分布式架构下NAT地址池的自适应分配方 法,其特征在于,以链表的形式分组保存NAT资源项。
5. 根据权利要求2所述的分布式架构下NAT地址池的自适应分配方 法,其特征在于,所述步骤S2包括 521、 将本板当前可分配的NAT资源项二次分配给报文流,并为所 述二次分配的NAT资源项设置已分配标志; 522、 对报文流释放的NAT资源项,取消所述NAT资源项的已分配标志,使其重新成为本板当前可分配的资源项。
6. 根据权利要求2所述的分布式架构下NAT地址池的自适应分配方法,其特征在于,还包括以下步骤501、 业务板识别本板当前可分配的NAT资源项;502、 当可分配的NAT资源项数量小于预设的第一阈值时,所述业 务板向主控板请求获取一定数量的NAT资源项,并执行步骤SI;503、 当可分配的NAT资源项数量大于预设的第二阈值时,所述业 务板向主控板释放一定数量的NAT资源项,并执行步骤Sl。
7. 根据权利要求1-6任一所述的分布式架构下NAT地址池的自适应 分配方法,其特征在于,所述统一管理的NAT资源项以NAT资源块的形式组织;其中,所 述NAT资源块通过以下步骤获得以按照公网IP地址顺序排列,且每一公网IP地址下按照端口顺序排 列的方式,设置连续的NAT资源项;对所述连续的NAT资源项加以分块,每个NAT资源块以顺序编号 的NAT资源块索引标识。
8. 根据权利要求7所述的分布式架构下NAT地址池的自适应分配方 法,其特征在于,所述步骤SI包括主控板根据各业务板的请求,将闲置的NAT资 源块分配给相应的业务板,以及,将各业务板释放的NAT资源块重新设 置为闲置的NAT资源块;所述步骤S2包括业务板对报文流进行NAT资源块中的NAT资源 项的分配;其中,各业务板通过指针数组记录本板上所有的NAT资源块, 通过第一函数指向本板当前所分配的NAT资源块,通过第二函数记录本 板当前可分配的NAT资源块数目,以及,通过为NAT资源块设置的第 三函数指向所述NAT资源块中当前可分配的NAT资源项。
9. 根据权利要求8所述的分布式架构下NAT地址池的自适应分配方 法,其特征在于,所述步骤S21包括 、 通过所述第一函数获取所述当前所分配的NAT资源块; 、 通过所述第三函数获取当前可分配的NAT资源项;5213、 将所述NAT资源项分配给报文流,并为所述NAT资源项设 置已分配标志;5214、 在所述NAT资源块中查找是否存在下一可分配的NAT资源 项,是则,执行步骤S215,否则,执行步骤S216;5215、 将所述第三函数指向所述下一可分配的NAT资源项;5216、 将所述第三函数指向无效值,标识所述NAT资源块已分配并 将所述第二函数执行减1处理;5217、 在所述指针数组中查找可分配的NAT资源块并将所述第一函 数指向所述NAT资源块,将所述NAT资源块的第三函数指向所述NAT 资源块中的一NAT资源项;所述步骤S22包括5221、 对于报文流释放的NAT资源项,根据其公网IP和端口号计 算相应的NAT资源块索引标识,以识别其所在的NAT资源块;5222、 为所述NAT资源块中的相应NAT资源项取消已分配标志;5223、 识别所述NAT资源块的第三函数是否指向无效值,是则执行 步骤S224,否则执行步骤S225;5224、 将所述第三函数指向所述NAT资源项,并执行步骤S225;5225、 识别第一函数是否指向无效值,是则执行步骤S226,否则执 行步骤S227;5226、 将所述第一函数指向所述NAT资源块;5227、 识别所述NAT资源块中是否所有的NAT资源都已释放完毕;5228、 如果是,取消所述NAT资源块的已分配标识并将第二函数执 行加1处理。
10. 根据权利要求9所述的分布式架构下NAT地址池的自适应分配 方法,其特征在于,所述步骤S2中,业务板按照位图的形式记录NAT 资源块中的NAT资源项,通过将相应的bit位置1为所述NAT资源项设 置已分配标志,通过将相应的bit位置0为所述NAT资源项取消已分配标志o
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. 根据权利要求11-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位置O标志所述NAT资源项未分配。
全文摘要
本发明公开了一种分布式架构下NAT地址池的自适应分配方法和系统,适用于由主控板、一个以上业务板和接口板构成的分布式处理架构。该方法包括在主控板中统一管理由成对的公网IP和端口构成的NAT资源项,包括闲置的NAT资源项和已分配给各业务板的NAT资源项;主控板根据各业务板的请求,执行闲置的NAT资源项到相应的业务板的一次分配;业务板执行主控板分配的NAT资源项到所处理的报文流的二次分配。在较佳的实施例中,NAT资源项以资源块的形式分级管理主控板进行NAT资源块的分配,业务板进行NAT资源项的分配。通过本发明,实现NAT资源的充分利用,避免NAT转换后五元组的冲突,以及,具有较佳的灵活性和适应性。
文档编号H04L29/12GK101247421SQ20081008427
公开日2008年8月20日 申请日期2008年3月28日 优先权日2008年3月28日
发明者常向青, 张雪锋, 邹旭东 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1