CN101262506B - 分布式架构下的网络地址转换端口资源分配方法及系统 - Google Patents

分布式架构下的网络地址转换端口资源分配方法及系统 Download PDF

Info

Publication number
CN101262506B
CN101262506B CN2008101045767A CN200810104576A CN101262506B CN 101262506 B CN101262506 B CN 101262506B CN 2008101045767 A CN2008101045767 A CN 2008101045767A CN 200810104576 A CN200810104576 A CN 200810104576A CN 101262506 B CN101262506 B CN 101262506B
Authority
CN
China
Prior art keywords
port
piece
business board
available
resource
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.)
Active
Application number
CN2008101045767A
Other languages
English (en)
Other versions
CN101262506A (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.)
Beijing Ziguang Communication Technology Group 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 CN2008101045767A priority Critical patent/CN101262506B/zh
Publication of CN101262506A publication Critical patent/CN101262506A/zh
Application granted granted Critical
Publication of CN101262506B publication Critical patent/CN101262506B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了一种分布式架构下的网络地址转换(NAT)端口资源分配方法,适用于包括主控板及一个以上业务板的分布式环境,该方法包括:在主控板上统一管理NAT端口资源,各业务板根据本板的NAT业务量向主控板请求端口资源;主控板根据业务板的请求为业务板分配空闲的端口资源,然后业务板使用分配的端口资源进行NAT转换。相应地,本发明还提供了一种分布式架构下的NAT端口资源分配系统。利用本发明提供的技术方案,能够提高NAT端口资源利用率。

Description

分布式架构下的网络地址转换端口资源分配方法及系统
技术领域
本发明涉及网络通信技术,尤其涉及分布式架构下的网络地址转换(NAT,Network Address Translation)端口资源分配方法及系统。
背景技术
NAT是一种将因特网协议(IP,Internet Protocol)数据报报头中的IP地址转换为另一个IP地址的技术,主要用于实现私有网络访问公共网络的功能。NAT的一种变形是网络地址端口转换(NAPT,Network Address PortTranslation),NAPT允许将多个私网地址映射到同一个公网地址的不同端口上,实现多个私网终端共享同一公网地址,这样有助于缓解公网地址资源紧缺的问题。图1示出了NAPT应用示意图,不同私网终端192.168.1.2和192.168.1.3发出的两个报文经过路由器时,它们的源私网IP地址都被转换成了路由器出接口的公网IP地址20.1.1.1,并通过使用不同的端口来区分;当发往私网终端的反向报文到达时,路由器再进行反向地址转换,使反向报文正确到达私网终端。
目前,NAT技术已在路由器、防火墙等安全设备上得到了广泛应用。由于安全设备在进行攻击检测和主动防御时要消耗大量的CPU资源,而采用集中式处理架构的安全设备又很难突破其在性能上的瓶颈,无法满足用户对高性能高带宽的需求,因此采用分布式架构的安全设备就应运而生。图2示出了采用分布式架构的安全设备结构示意图,包括主控板、接口和多个业务板,且业务板与接口分离,其中,各业务板用于完成业务分布式处理,接口负责完成业务的分发及发送,主控板用于对各业务板和接口进行全局控制。
在图2所示的分布式架构下,如果各个业务板共用NAT地址池,使用相同的IP地址进行NAT转换,则很容易产生资源分配冲突的问题。比如,在图2中,假设各个业务板都共用某个接口的IP地址20.1.1.1进行NAT转换,则当来自不同私网终端192.168.1.2和192.168.1.3的两个报文分别被传送到不同的业务板上处理时,这两个报文的源私网地址都将被转换成公网地址20.1.1.1,并且很可能都被映射到同一端口如1025上,从而造成端口资源分配冲突,也就是说,一个公网地址和端口(20.1.1.1:1025)分别对应(192.168.1.2:21)和(192.168.1.3:80)这两个不同的私网地址和端口。在这种情况下,当目的地址和端口为(20.1.1.1:1025)的反向报文到达安全设备后,安全设备将无法确定应该将该报文发往192.168.1.2还是192.168.1.3,从而引起通信混乱,导致这两个连接都无法正常工作。
为了解决上述端口资源分配冲突的问题,通常所采取的手段是:对端口资源进行静态划分,为各个业务板分别配置不同的端口使用范围,如将业务板1的端口范围配置成(1025~30000),将业务板2的端口范围配置成(30001~65535),各业务板分别从自身的端口范围中选取端口进行NAT转换,以避免端口资源分配冲突。
上述静态配置端口资源的方案虽然能够解决端口资源分配冲突的问题,但是,由于接口板流量分发的不均匀,很可能导致某个业务板上因业务流较多已使用完分配的端口资源,而另一个业务板上因业务流较少还剩大量端口资源未被使用。在这种情况下,当新的业务流到达端口资源已使用完毕的业务板时,就会因端口分配失败而造成报文处理失败,并最终导致报文被丢弃,然而实际上此时其它业务板上仍有大量的端口资源可供使用。可见,采用静态配置端口资源的方式,容易造成整机在远未达到最大规格的情况下,就已经不能正常处理业务了,从而造成端口资源的浪费。另外,由于各业务板上的端口资源是静态配置的,因此当其中某个业务板发生故障或者不在位的情况下,该业务板上的端口资源并不能够被其它业务板所使用,这样也会造成端口资源的浪费。
发明内容
有鉴于此,本发明的目的在于提供一种分布式架构下的NAT端口资源分配方法及系统,提高NAT端口资源利用率。
为达到上述目的,本发明提供的技术方案如下:
一种分布式架构下的NAT端口资源分配方法,适用于包括主控板及一个以上业务板的分布式环境,该方法包括:
在主控板上统一管理NAT端口资源,各业务板根据本板的NAT业务量向主控板请求端口资源;主控板根据业务板的请求为业务板分配空闲的端口资源,然后业务板使用分配的端口资源进行NAT转换,其中,
所述端口资源在主控板上以端口块形式组织,所述主控板根据业务板的请求为业务板分配空闲端口资源包括:主控板根据业务板的请求为业务板分配空闲的端口块,并通过板间通信将分配的端口块信息通知业务板;所述业务板通过指针数组记录本板所有已申请到的端口块,并设置指向下一个可用端口块的指针,以及针对各申请到的端口块,分别设置用于记录本端口块中各端口使用状态的端口数组及用于表示本端口块中下一个可用端口在本端口块中相对位置的可用位置参数;所述业务板使用分配的端口资源进行NAT转换包括:业务板通过所述指向下一个可用端口块的指针获取当前可用的端口块,根据该端口块对应的可用位置参数确定可用的端口,然后使用该端口进行NAT转换,并将端口数组中该端口的状态设置为已使用,且判断当前端口块中的所有端口是否都已被使用,如果是,则将当前端口块对应的可用位置参数设置为无效,并从指针数组中找到下一个可用的端口块,更新所述指向下一个可用端口块的指针指向该找到的端口块,同时可用端口块个数减1;否则,将当前端口块对应的可用位置参数调整为下一个可用端口的位置。
该方法进一步包括:业务板将释放的端口块信息发送给主控板,主控板收到后将相应端口块释放到空闲状态。
所述主控板将所有空闲端口决串起来形成空闲端口块链表,所述为业务板分配空闲的端口块包括:主控板从空闲端口块链表中获取空闲的端口块分配给业务板,并将已分配的端口块从空闲端口块链表中删除;所述将相应端口块释放到空闲状态包括:主控板将相应端口块插入到空闲端口块链表中。
该方法进一步包括:设置申请阈值和释放阈值,业务板统计本板的可用端口块个数,当可用端口块个数小于申请阈值时,业务板向主控板请求端口资源;当可用端口块个数大于释放阈值时,业务板向主控板释放端口资源。
该方法进一步包括:业务板将未使用的端口状态设置为空闲,并通过该端口的端口号找到其所属端口块,在该端口决对应的可用位置参数无效时,将该可用位置参数调整为本次释放的端口位置;如果该端口块的所有端口都已释放,则可用端口块个数加1;如果本次释放之前该业务板上的端口已使用完毕,则调整所述指向下一个可用端口块的指针指向本次释放的端口所属的端口块。
一种分布式架构下的NAT端口资源分配系统,适用于包括主控板及一个以上业务板的分布式环境,所述主控板包括端口资源管理单元,所述业务板包括端口资源申请单元和NAT业务处理单元,其中,
端口资源管理单元,用于管理NAT端口资源,并接收业务板发来的端口资源请求,根据业务板的请求为业务板分配空闲的端口资源,将分配的端口资源信息通知业务板;
端口资源申请单元,根据自身所在业务板的NAT业务量向主控板发送端口资源请求,接收主控板返回的端口资源信息并保存;
NAT业务处理单元,从端口资源申请单元中获取可用端口进行NAT转换,
其中,所述端口资源管理单元以端口块形式组织端口资源,根据业务板的请求为业务板分配空闲的端口块,并通过板间通信将分配的端口块信息通知业务板;
所述端口资源申请单元通过指针数组记录本板所有已申请到的端口块,并设置指向下一个可用端口块的指针,以及针对各申请到的端口块,分别设置用于记录本端口块中各端口使用状态的端口数组及用于表示本端口块中下一个可用端口在本端口块中相对位置的可用位置参数;
所述NAT业务处理单元通过所述指向下一个可用端口块的指针获取当前可用的端口块,根据该端口块对应的可用位置参数确定可用的端口,然后使用该端口进行NAT转换,并将端口数组中该端口的状态设置为已使用,且判断当前端口块中的所有端口是否都已被使用,如果是,则将当前端口块对应的可用位置参数设置为无效,并从指针数组中找到下一个可用的端口块,更新所述指向下一个可用端口块的指针指向该找到的端口块,同时可用端口块个数减1;否则,将当前端口块对应的可用位置参数调整为下一个可用端口的位置。
所述端口资源申请单元进一步将业务板释放的端口块信息发送给主控板;主控板的端口资源管理单元收到后将相应端口块释放到空闲状态。
所述端口资源管理单元将所有空闲端口决串起来形成空闲端口块链表,从空闲端口块链表中获取空闲的端口块分配给业务板,将已分配的端口块从空闲端口块链表中删除,并将业务板释放的端口块插入到空闲端口块链表中。
所述端口资源申请单元进一步统计本板的可用端口块个数,当可用端口块个数小于设置的申请阈值时,向主控板请求端口资源;当可用端口块个数大于设置的释放阈值时,向主控板释放端口资源。
所述NAT业务处理单元进一步将未使用的端口状态设置为空闲,并通过该端口的端口号找到其所属端口块,在该端口块对应的可用位置参数无效时,将该可用位置参数调整为本次释放的端口位置;如果该端口块的所有端口都已释放,则可用端口块个数加1;如果本次释放之前该业务板上的端口已使用完毕,则调整所述指向下一个可用端口块的指针指向本次释放的端口所属的端口块。
由此可见,本发明中各个业务板上的端口资源不是静态配置的,而是主控板根据各板的NAT业务量需求动态分配的,这样就不会产生某个业务板上端口资源已经耗尽而另一业务板上还剩大量端口资源未使用的情况,从而实现了端口资源的合理分配,减少了端口资源浪费,提高了端口资源利用率。同时,由于主控板为业务板分配的是空闲的端口资源,因此也不会造成端口资源分配冲突的问题。
附图说明
图1为现有技术中的NAPT应用示意图;
图2为现有技术中采用分布式架构的安全设备结构示意图;
图3为本发明实施例中主控板上的端口块组织方式示意图;
图4为本发明实施例中主控板上的端口块分配/释放流程图;
图5为本发明实施例中业务板上的端口块组织方式示意图;
图6为本发明实施例中业务板上的端口分配流程图;
图7为本发明实施例中业务板上的端口释放流程图;
图8为本发明实施例中的NAT端口资源分配系统结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,下面参照附图并举实施例,对本发明作进一步详细说明。
本发明的基本思想是:在主控板上统一管理NAT端口资源,各个业务板根据本板的NAT业务量向主控板请求端口资源,主控板根据业务板的请求为业务板分配空闲的端口资源。也就是说,各个业务板上的端口资源不是静态配置的,而是主控板根据各板的NAT业务量需求动态分配的,这样就不会产生某个业务板上端口资源已经耗尽而另一业务板上还剩大量端口资源未使用的情况,从而实现了端口资源的合理分配,减少了端口资源浪费,提高了端口资源利用率。同时,由于主控板为业务板分配的是空闲的端口资源,因此也不会造成端口资源分配冲突的问题。
在具体实现时,可以将所有端口资源划分成若干个端口块(每个端口块中包含若干个端口),由主控板对所有端口块进行统一管理。当业务板因业务需要向主控板发出端口资源请求时,主控板为提出请求的业务板分配空闲的端口块,之后业务板使用主控板分配的端口块中所包含的端口进行NAT转换;当业务板不再使用分配的端口块时,业务板发送端口块释放请求给主控板,主控板收到后释放相应的端口块到空闲状态。
其中,端口块的大小可根据实际需求进行设置。比如,当可用端口范围是63K(1025~65535)时,可以将全部端口资源划分成63块,每块包含1024个端口。并且,每个端口块对应一个端口块索引ulBlockIndex,用来唯一标识一个端口块。通过端口块索引可以计算出对应端口块的端口范围,如当所述63个端口块的ulBlockIndex依次为1、2、...、63时,各端口块的端口范围即为(((1024×ulBlockIndex)+1)~1024×(ulBlockIndex+1))。主控板把某个端口块分配给业务板后,业务板就可以根据该端口块索引计算可使用的端口范围。
对于分成的各端口块,主控板可采取图3所示链表的方式进行组织(当然也可以采取其它组织方式,这里仅以链表为例进行说明),将所有未被使用的端口块串起来形成一个空闲端口块链表。图4示出了主控板基于空闲端口块链表进行端口块分配/释放的流程图,包括以下步骤:
步骤401:主控板接收业务板发来的消息,并判断该消息类型,如果是端口块申请消息,则执行步骤402;如果是端口块释放消息,则执行步骤404。
步骤402:主控板访问空闲端口块链表,判断空闲端口块链表是否为空,如果为空,则通知业务板端口资源耗尽,没有可用的端口资源,结束本流程;如果不为空,则执行步骤403。
步骤403:主控板从空闲端口块链表中取出空闲端口块分配给业务板,通过板间通信将分配的端口块信息(如端口块索引)告知业务板,同时将已分配的端口块从空闲端口块链表中删除,然后结束本流程。
步骤404~405:主控板从收到的端口块释放消息中取出释放的端口块信息,并将该端口块插入到空闲端口块链表中。
以上对主控板上的端口资源管理方式作了详细阐述,下面对业务板上的端口维护情况进行详细说明。
图5示出了一种业务板上的端口块组织方式示意图,其中,指针数组ppstPortBlock用于记录本业务板上所有已申请到的端口块,指针数组的大小与端口块个数一致,当可用端口范围(1025~65535)被划分成63块,每块包含1024个端口时,指针数组的大小就为63。初始情况下,ppstPortBlock上的所有指针都为空;当收到从主控板分配来的索引为ulBlockIndex的端口块时,指针ppstPortBlock[ulBlockIndex]指向分配到的端口块。另外,图5中的nextavailIndex指向下一个可用的端口块,availblknum记录本业务板上可用的端口块个数。
针对可用的端口块个数,可以设置两个阈值:申请阈值和释放阈值,业务板根据本板记录的availblknum及设置的申请或释放阈值决定是否向主控板申请或释放端口块资源。具体而言即:当本板availblknum小于设置的申请阈值时,业务板向主控板申请新的端口块资源;当本板availblknum大于设置的释放阈值时,业务板向主控板发送端口块释放请求,主动将部分可用的端口块资源退还给主控板。
针对各个已分配的端口块,业务板可采取位图方式来维护各端口块中的端口使用情况。如图5所示,数组ulPort[32]用于记录端口块中1024个端口的使用状态,其中包含32个元素,每个元素长度为32比特(bit),每个bit分别代表本端口块中的一个端口。如果某个端口对应的bit为1,则表示该端口已被使用;如果为0,则表示该端口未被使用,处于空闲状态。ulNextPortWord表示下一个可用端口在本端口块中的相对位置,其中,ulNextPortWord/32为该端口在数组ulPort[32]中的元素位置,ulNextPortWord%32为该端口在数组元素中的bit位置。
图6示出了业务板基于图5所示的端口块组织方式而进行的端口分配流程图,包括以下步骤:
步骤601:业务板收到需进行NAT转换的业务流后,查看nextavailIndex是否有效,如果有效,则执行步骤602;否则,表示本板上没有可用的端口资源,结束本流程。
步骤602:通过nextavailIndex找到下一个可用的端口块。
步骤603:查看该可用端口块的ulNextPortWord是否有效,如果有效,则执行步骤604;否则,表示该端口块中的端口已使用完毕,结束本流程。
步骤604:通过ulNextPortWord找到可用的端口,并将该端口在数组中对应的bit置为1,表示该端口已被使用。
其中,可用端口的端口号为(nextavailIndex×1024+ulNextPortWord)。该端口在数组ulPort[32]中对应的bit位置通过以下步骤获得:首先计算ulNextPortWord/32找到该端口在数组ulPort[32]中的元素位置,然后再计算ulNextPortWord%32找到该端口在数组元素中的bit位置。
步骤605:判断该端口块中的所有端口是否都已被使用,即判断该端口块对应的ulPort[32]数组中的所有bit是否都为1,如果是,则表示该端口块中的端口已被使用完毕,执行步骤606;否则,表示该端口块中还有可用端口,执行步骤607。
步骤606:将该端口块的ulNextPortWord设置为无效(如全F),表示该端口块中的端口已使用完毕;并且,从指针数组ppstPortBlock中找到下一个可用的端口块,更新nextavailIndex指向该找到的可用端口块,同时更新将availblknum,将availblknum减1。如果更新后的availblknum小于设置的申请阈值,业务板就向主控板申请新的端口块。
步骤607:将该端口块的ulNextPortWord调整为该端口块中下一个可用端口的位置,即下一个bit为0的位置。
图7示出了业务板基于图5所示的端口块组织方式而进行的端口释放流程图,包括以下步骤:
步骤701:  当业务板不再使用某端口时,通过该端口的端口号PortNumber找到该端口所属的端口块,所属端口块索引等于(PortNumber/1024)。
步骤702:计算((PortNumber%1024)/32)找到该端口在其所属端口块所对应的数组ulPort[32]中的元素位置,再计算((PortNumber%1024)%32)找到该端口在数组元素中的bit位置。
步骤703:判断找到的bit位是否为0,若是,则表示该bit位对应的端口已经释放,结束本流程;否则,执行步骤704。
步骤704:将找到的bit位设置为0。
步骤705:查看该端口块的ulNextPortWord是否有效,若无效,则执行步骤706;若有效,则执行步骤707。
步骤706:将该端口块的ulNextPortWord调整为本次释放的端口位置,然后执行步骤707。
步骤707:判断该端口块的所有端口是否都已释放,若是,则执行步骤708;否则,执行步骤709。
步骤708:将可用端口块个数availblknum加1,然后执行步骤709。
如果更新后的availblknum大于设置的释放阈值,业务板则向主控板发送端口块释放消息,请求释放该端口块。
步骤709:判断释放此端口之前该业务板上的端口是否已经使用完毕,如果已使用完毕即nextavailIndex为无效值,则执行步骤710,将nextavailIndex指向当前端口块;否则,结束本流程。
上述实施例通过分级管理的思想实现了端口资源的管理,即主控板负责端口块的分配和释放,业务板负责具体端口的分配和释放,主控板与业务板之间只进行端口块信息的交互,而无需针对各具体端口进行繁琐交互,这样可以减少主控板与业务板之间的交互信息量。
相应地,针对包括主控板及一个以上业务板的分布式环境,本发明还提供了一种分布式架构下的NAT端口资源分配系统。图8示出了该系统的示例性结构示意图,如图8所示,主控板包括端口资源管理单元,业务板包括端口资源申请单元和NAT业务处理单元。其中,端口资源管理单元,用于管理NAT端口资源,并接收业务板发来的端口资源请求,根据业务板的请求为业务板分配空闲的端口资源,将分配的端口资源信息通知业务板;端口资源申请单元,根据自身所在业务板的NAT业务量向主控板发送端口资源请求,接收主控板返回的端口资源信息并保存;NAT业务处理单元,从端口资源申请单元中获取可用端口进行NAT转换。
较佳地,端口资源管理单元可以以端口块形式组织端口资源,根据业务板的请求为业务板分配空闲的端口块,并通过板间通信将分配的端口块信息通知业务板。
具体实现时,端口资源管理单元可以将所有空闲端口块串起来形成空闲端口块链表,从空闲端口块链表中获取空闲的端口块分配给业务板,将已分配的端口块从空闲端口块链表中删除,并将业务板释放的端口块插入到空闲端口块链表中。
其中,业务板上的端口资源申请单元还进一步用于将业务板释放的端口块信息发送给主控板;主控板的端口资源管理单元收到后将相应端口块释放到空闲状态。
较佳地,端口资源申请单元还可进一步设置申请阈值和释放阈值,并统计本板的可用端口块个数,当可用端口块个数小于设置的申请阈值时,向主控板请求端口资源;当可用端口块个数大于设置的释放阈值时,向主控板释放端口资源。
具体实现时,端口资源申请单元可以通过指针数组记录本板所有已申请到的端口块,并设置指向下一个可用端口块的指针,以及针对各申请到的端口块,分别设置用于记录本端口块中各端口使用状态的端口数组及用于表示本端口块中下一个可用端口在本端口块中相对位置的可用位置参数。
在收到NAT业务流后,NAT业务处理单元可以通过所述指向下一个可用端口块的指针获取当前可用的端口块,并根据该端口块对应的可用位置参数确定可用的端口,然后使用该端口进行NAT转换,并将端口数组中该端口的状态设置为已使用,且判断当前端口块中的所有端口是否都已被使用,如果是,则将当前端口块对应的可用位置参数设置为无效,并从指针数组中找到下一个可用的端口块,更新所述指向下一个可用端口块的指针指向该找到的端口块,同时可用端口块个数减1;否则,将当前端口块对应的可用位置参数调整为下一个可用端口的位置。
当某端口不再被使用时,NAT业务处理单元进一步将未使用的端口状态设置为空闲,并通过该端口的端口号找到其所属端口块,在该端口块对应的可用位置参数无效时,将该可用位置参数调整为本次释放的端口位置;如果该端口块的所有端口都已释放,则可用端口块个数加1;如果本次释放之前该业务板上的端口已使用完毕,则调整所述指向下一个可用端口块的指针指向本次释放的端口所属的端口块。
以上所述对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种分布式架构下的网络地址转换NAT端口资源分配方法,适用于包括主控板及一个以上业务板的分布式环境,其特征在于,该方法包括:
在主控板上统一管理NAT端口资源,各业务板根据本板的NAT业务量向主控板请求端口资源;主控板根据业务板的请求为业务板分配空闲的端口资源,然后业务板使用分配的端口资源进行NAT转换,其中,
所述端口资源在主控板上以端口块形式组织,所述主控板根据业务板的请求为业务板分配空闲端口资源包括:主控板根据业务板的请求为业务板分配空闲的端口块,并通过板间通信将分配的端口块信息通知业务板;所述业务板通过指针数组记录本板所有已申请到的端口块,并设置指向下一个可用端口块的指针,以及针对各申请到的端口块,分别设置用于记录本端口块中各端口使用状态的端口数组及用于表示本端口块中下一个可用端口在本端口块中相对位置的可用位置参数;所述业务板使用分配的端口资源进行NAT转换包括:业务板通过所述指向下一个可用端口块的指针获取当前可用的端口块,根据该端口块对应的可用位置参数确定可用的端口,然后使用该端口进行NAT转换,并将端口数组中该端口的状态设置为已使用,且判断当前端口块中的所有端口是否都已被使用,如果是,则将当前端口块对应的可用位置参数设置为无效,并从指针数组中找到下一个可用的端口块,更新所述指向下一个可用端口块的指针指向该找到的端口块,同时可用端口块个数减1;否则,将当前端口块对应的可用位置参数调整为下一个可用端口的位置。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括:业务板将释放的端口块信息发送给主控板,主控板收到后将相应端口块释放到空闲状态。
3.根据权利要求2所述的方法,其特征在于,所述主控板将所有空闲端口块串起来形成空闲端口块链表,所述为业务板分配空闲的端口块包括:主控板从空闲端口块链表中获取空闲的端口块分配给业务板,并将已分配的端口块从空闲端口块链表中删除;所述将相应端口块释放到空闲状态包括:主控板将相应端口块插入到空闲端口块链表中。
4.根据权利要求1至3任一项所述的方法,其特征在于,该方法进一步包括:设置申请阈值和释放阈值,业务板统计本板的可用端口块个数,当可用端口块个数小于申请阈值时,业务板向主控板请求端口资源;当可用端口块个数大于释放阈值时,业务板向主控板释放端口资源。
5.根据权利要求4所述的方法,其特征在于,该方法进一步包括:
业务板将未使用的端口状态设置为空闲,并通过该端口的端口号找到其所属端口块,在该端口块对应的可用位置参数无效时,将该可用位置参数调整为本次释放的端口位置;如果该端口块的所有端口都已释放,则可用端口块个数加1;如果本次释放之前该业务板上的端口已使用完毕,则调整所述指向下一个可用端口块的指针指向本次释放的端口所属的端口块。
6.一种分布式架构下的NAT端口资源分配系统,适用于包括主控板及一个以上业务板的分布式环境,其特征在于,所述主控板包括端口资源管理单元,所述业务板包括端口资源申请单元和NAT业务处理单元,其中,
端口资源管理单元,用于管理NAT端口资源,并接收业务板发来的端口资源请求,根据业务板的请求为业务板分配空闲的端口资源,将分配的端口资源信息通知业务板;
端口资源申请单元,根据自身所在业务板的NAT业务量向主控板发送端口资源请求,接收主控板返回的端口资源信息并保存;
NAT业务处理单元,从端口资源申请单元中获取可用端口进行NAT转换,
其中,所述端口资源管理单元以端口块形式组织端口资源,根据业务板的请求为业务板分配空闲的端口块,并通过板间通信将分配的端口块信息通知业务板;
所述端口资源申请单元通过指针数组记录本板所有已申请到的端口块,并设置指向下一个可用端口块的指针,以及针对各申请到的端口块,分别设置用于记录本端口块中各端口使用状态的端口数组及用于表示本端口块中下一个可用端口在本端口块中相对位置的可用位置参数;
所述NAT业务处理单元通过所述指向下一个可用端口块的指针获取当前可用的端口块,根据该端口块对应的可用位置参数确定可用的端口,然后使用该端口进行NAT转换,并将端口数组中该端口的状态设置为已使用,且判断当前端口块中的所有端口是否都已被使用,如果是,则将当前端口块对应的可用位置参数设置为无效,并从指针数组中找到下一个可用的端口块,更新所述指向下一个可用端口块的指针指向该找到的端口块,同时可用端口块个数减1;否则,将当前端口块对应的可用位置参数调整为下一个可用端口的位置。
7.根据权利要求6所述的系统,其特征在于,所述端口资源申请单元进一步将业务板释放的端口块信息发送给主控板;主控板的端口资源管理单元收到后将相应端口块释放到空闲状态。
8.根据权利要求7所述的系统,其特征在于,所述端口资源管理单元将所有空闲端口块串起来形成空闲端口块链表,从空闲端口块链表中获取空闲的端口块分配给业务板,将已分配的端口块从空闲端口块链表中删除,并将业务板释放的端口块插入到空闲端口块链表中。
9.根据权利要求6至8任一项所述的系统,其特征在于,所述端口资源申请单元进一步统计本板的可用端口块个数,当可用端口块个数小于设置的申请阈值时,向主控板请求端口资源;当可用端口块个数大于设置的释放阈值时,向主控板释放端口资源。
10.根据权利要求9所述的系统,其特征在于,所述NAT业务处理单元进一步将未使用的端口状态设置为空闲,并通过该端口的端口号找到其所属端口块,在该端口块对应的可用位置参数无效时,将该可用位置参数调整为本次释放的端口位置;如果该端口块的所有端口都已释放,则可用端口块个数加1;如果本次释放之前该业务板上的端口已使用完毕,则调整所述指向下一个可用端口块的指针指向本次释放的端口所属的端口块。
CN2008101045767A 2008-04-21 2008-04-21 分布式架构下的网络地址转换端口资源分配方法及系统 Active CN101262506B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101045767A CN101262506B (zh) 2008-04-21 2008-04-21 分布式架构下的网络地址转换端口资源分配方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101045767A CN101262506B (zh) 2008-04-21 2008-04-21 分布式架构下的网络地址转换端口资源分配方法及系统

Publications (2)

Publication Number Publication Date
CN101262506A CN101262506A (zh) 2008-09-10
CN101262506B true CN101262506B (zh) 2012-05-23

Family

ID=39962706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101045767A Active CN101262506B (zh) 2008-04-21 2008-04-21 分布式架构下的网络地址转换端口资源分配方法及系统

Country Status (1)

Country Link
CN (1) CN101262506B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104994482A (zh) * 2015-07-15 2015-10-21 大唐移动通信设备有限公司 一种业务板故障后teid资源的回收方法及装置
CN111447300A (zh) * 2020-03-26 2020-07-24 深信服科技股份有限公司 一种目标端口确定方法、装置、设备及可读存储介质

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102377833B (zh) * 2010-08-19 2015-07-22 华为技术有限公司 一种网络地址转换的管理方法及装置
US8719449B2 (en) * 2010-11-29 2014-05-06 Telefonaktiebolaget L M Ericsson (Publ) Identification of a private device in a public network
CN102572003B (zh) * 2010-12-08 2015-01-14 中国电信股份有限公司 复用地址与端口范围的获取处理方法与系统
CN102209124B (zh) * 2011-06-08 2014-03-12 杭州华三通信技术有限公司 私网与公网通信的方法及网络地址转换设备
CN103167049B (zh) * 2011-12-13 2016-09-07 中国电信股份有限公司 按需分配的网络地址转换方法、设备和系统
CN102404236A (zh) * 2011-12-30 2012-04-04 苏州山石网络有限公司 一种分布式系统中nat端口资源的分配方法
CN102412949B (zh) * 2011-12-30 2014-09-24 山石网科通信技术有限公司 一种分布式系统中nat端口资源支持双控制板的方法
CN102685272B (zh) * 2012-05-30 2015-03-11 华为技术有限公司 一种分配公网地址的方法及装置
CN103731373B (zh) * 2012-10-15 2018-04-27 中兴通讯股份有限公司 带宽资源的调整方法、装置及系统
CN104104592B (zh) * 2013-04-12 2017-09-12 华为技术有限公司 报文处理方法、装置及系统
CN104144226B (zh) * 2013-05-10 2017-09-15 中国电信股份有限公司 端口分配方法和网络地址转换装置
CN104426794B (zh) * 2013-08-23 2018-06-26 华为技术有限公司 一种报文转发方法及装置
CN103560979B (zh) * 2013-11-21 2017-03-29 中国联合网络通信集团有限公司 一种资源分配方法和设备
CN104780055B (zh) * 2014-01-10 2018-03-06 华为技术有限公司 一种数据流的处理方法及装置
CN106571944A (zh) * 2015-10-10 2017-04-19 中兴通讯股份有限公司 用户侧设备、服务器、端口资源管理方法及系统
CN107454200B (zh) * 2016-06-01 2022-03-18 中兴通讯股份有限公司 一种分布式架构下地址资源分配方法、装置和主控板
CN106131244A (zh) * 2016-08-29 2016-11-16 北京神州绿盟信息安全科技股份有限公司 一种报文传送方法及装置
CN106506724B (zh) * 2016-11-23 2020-10-30 新华三技术有限公司 一种分配端口块的方法及装置
CN106534400B (zh) * 2016-11-25 2019-09-17 新华三技术有限公司 网络地址转换方法及装置
CN107566549B (zh) * 2017-09-30 2021-06-18 东软集团股份有限公司 一种网络地址转换映射表的处理方法、装置及设备
CN108924272B (zh) * 2018-06-26 2021-09-17 新华三信息安全技术有限公司 一种端口资源分配方法及装置
CN109120732B (zh) * 2018-07-18 2022-03-11 北京天融信网络安全技术有限公司 分布式nat系统中的业务板热插方法、系统及存储介质
CN112559185B (zh) * 2020-12-18 2021-12-17 迈普通信技术股份有限公司 芯片资源分配方法、装置、网络设备及计算机存储介质
CN114138464B (zh) * 2021-11-10 2023-10-31 浪潮卓数大数据产业发展有限公司 基于容器的端口分配方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006056099A1 (fr) * 2004-11-23 2006-06-01 Zte Corporation Procede et systeme permettant de garantir individuellement la qualite de service dans un reseau
CN1946225A (zh) * 2006-01-04 2007-04-11 华为技术有限公司 一种全分布式资源管理方法和系统
WO2007041899A1 (fr) * 2005-10-10 2007-04-19 Zte Corporation Système et procédé de gestion de la ressource distribuée adaptable dynamique

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006056099A1 (fr) * 2004-11-23 2006-06-01 Zte Corporation Procede et systeme permettant de garantir individuellement la qualite de service dans un reseau
WO2007041899A1 (fr) * 2005-10-10 2007-04-19 Zte Corporation Système et procédé de gestion de la ressource distribuée adaptable dynamique
CN1946225A (zh) * 2006-01-04 2007-04-11 华为技术有限公司 一种全分布式资源管理方法和系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104994482A (zh) * 2015-07-15 2015-10-21 大唐移动通信设备有限公司 一种业务板故障后teid资源的回收方法及装置
CN104994482B (zh) * 2015-07-15 2018-06-26 大唐移动通信设备有限公司 一种业务板故障后teid资源的回收方法及装置
CN111447300A (zh) * 2020-03-26 2020-07-24 深信服科技股份有限公司 一种目标端口确定方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN101262506A (zh) 2008-09-10

Similar Documents

Publication Publication Date Title
CN101262506B (zh) 分布式架构下的网络地址转换端口资源分配方法及系统
CN101572670B (zh) 一种基于流表的数据包处理方法、装置和网络系统
JP5163910B2 (ja) アドレス変換装置及びアドレス変換方法
CN102821036A (zh) 一种实现报文转发的方法及设备
CN102685272B (zh) 一种分配公网地址的方法及装置
CN101150502A (zh) 一种nat-pt设备及其负荷分担方法
CN103797774A (zh) 一种网络地址转换设备及方法
CN102215158A (zh) 实现vrrp流量传输的方法和路由设备
KR101320962B1 (ko) 네트워크 어드레스 변환을 위한 관리 방법 및 관리 장치
JP2005151509A (ja) Vlanサーバ
CN102882992B (zh) 一种运营级网络地址转换设备释放端口的方法
CN101018159A (zh) 多网关环境下负载均衡的方法及dhcp服务器
US7305489B2 (en) Method and apparatus for aggregate network address routes
US10063478B2 (en) Switching device and control method of switching device
CN102594660A (zh) 一种虚拟接口交换方法、装置及系统
CN106506724B (zh) 一种分配端口块的方法及装置
CN103595638B (zh) 一种mac地址学习方法及装置
CN113225196B (zh) 服务等级配置方法以及装置
JP2011508556A (ja) ネットワーク内の改善されたリソース割当て計画
CN1946061B (zh) 一种快速处理报文的方法及装置
CN1264317C (zh) 弹性分组环网的多环互连传输方法
WO2017059742A1 (zh) 用户侧设备、服务器、端口资源管理方法及系统
CN103780712B (zh) 一种地址转换设备分配端口的方法和地址转换设备
CN114884899A (zh) 一种多模态核心网转发和调度方法及装置
CN101018193A (zh) 负载分流的方法和系统及分配备份组虚ip地址的装置

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
CP03 Change of name, title or address

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

Patentee after: NEW H3C TECHNOLOGIES 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: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230821

Address after: 24th Floor, Block B, Zhizhen Building, No. 7 Zhichun Road, Haidian District, Beijing, 100088

Patentee after: Beijing Ziguang Communication Technology Group Co.,Ltd.

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

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.