CN103797774A - 一种网络地址转换设备及方法 - Google Patents
一种网络地址转换设备及方法 Download PDFInfo
- Publication number
- CN103797774A CN103797774A CN201380002273.3A CN201380002273A CN103797774A CN 103797774 A CN103797774 A CN 103797774A CN 201380002273 A CN201380002273 A CN 201380002273A CN 103797774 A CN103797774 A CN 103797774A
- Authority
- CN
- China
- Prior art keywords
- cpu
- message
- port resource
- network address
- port
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2514—Translation of Internet protocol [IP] addresses between local and global IP addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2517—Translation of Internet protocol [IP] addresses using port numbers
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
本发明提供了一种网络地址转换的设备及方法,用以解决控制板成为端口资源分配瓶颈以及端口资源利用率低的问题。网络地址转换设备包括控制板、业务板和接口板。业务板包括多个CPU,网络地址转换设备的端口资源分配给业务板的多个CPU进行管理和分配。接口板用于将用户驻地设备发送的第一报文转发给业务板的第一CPU;所述业务板的第一CPU根据NAT策略确定第二CPU负责管理第一报文进行网络地址转换所需的端口资源块,从所述第二CPU获得N个端口资源,从获得的N个端口资源中使用第一端口资源对所述第一报文进行网络地址转换;将网络地址转换后的第一报文发送给接口板;所述接口板将进行网络地址转换后的第一报文发送到外部网络中。端口资源分别由业务板的CPU管理,解决了控制板成为端口资源分配的瓶颈的问题;多个CPU参与了网络地址转换的过程,充分发挥了分布式***的优势,并且提高了端口资源的利用率。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种网络地址转换(Network AddressTranslation,NAT)的设备及方法。
背景技术
因特网(internet)使用的IPv4(Internet Protocol version 4,互联网协议版本4)有32位(4字节)地址,最多可以允许2的32次方数量的电脑联到互联网中。随着互联网的迅速发展,对IP地址的需求愈来愈大,IPv4地址将被分配殆尽这个问题已无法回避。在这种需求下,推出了下一版本的互联网协议,即IPv6(Internet Protocol version6,互联网协议版本6)。IPv6采用128位地址长度,几乎可以不受限制地提供IP地址,并且在安全性、网络管理、移动性以及服务质量等方面有明显的改进,是下一代互联网络协议采用的核心标准。
然而,由于使用IPv4的网络(下文简称IPv4网络)已发展的非常成熟,IPv4网络非常庞大,以至于不得不需要一段很长的时间逐步从IPv4网络向IPv6网络(使用IPv6的网络)过渡。在IPv4网络向IPv6网络漫长的过渡期间,NAT(Network Address Translation,网络地址转换)技术仍将得到广泛使用。NAT技术属于接入广域网(WAN,)技术,是一种将私有(private)地址转化为公网(public)IP地址的转换技术,被广泛应用于各种因特网(internet)的接入方式中。
与普通家用或企业级的NAT不同,对于运营商(Carrier)来讲,其面对的客户更多,因此对NAT的性能、可运营性和可管理性的要求高。
运营商级网络地址转换(Carrier Grade Network Address Translation,即CGNAT,简称CGN)技术是目前各运营商广泛采用的过渡方案。CGN也曾经被称为LSN(Large ScaleNAT),其实质就是NAT。由于运营商面对的客户很多,大多可以以亿为单位来计算,因此CGN设备所需要处理的网络地址转换的业务量也很大。在IPv4网络向IPv6网络漫长的过渡期间,CGN需要能够保证现有的终端或业务的正常使用,同时又能实现真正的IPv6应用,并且在性能、可运营程度以及可管理程度方面满足业务的需求。
发明内容
有鉴于此,本发明提供了一种网络地址转换的设备及方法,将网络地址转换设备所管理的端口资源分别发送给各个业务板的CPU,由业务板的CPU来负责对端口资源进行管理和分配,并且每个端口资源由一个CPU来独立管理,这样在实现网络地址转换的整个过程中,管理端口资源的业务板的CPU会为接收到报文的业务板的CPU分配端口资源,多个业务板的CPU共同参与实现网络地址转换,充分发挥了分布式***的优势,提高了端口资源的分配效率和利用率。
为了解决上述问题,第一方面,本发明实施例提供了一种实现网络地址转换的设备,所述设备包括:控制板(11)、业务板和接口板(15),所述业务板包括多个中央处理单元(central processing unit,CPU),其中所述设备的端口资源分配给所述业务板的多个CPU进行管理和分配;所述接口板(15)用于接收用户驻地设备(301)发送的第一会话的第一报文,并将所述第一报文转发给所述业务板的第一CPU;所述第一CPU用于,根据NAT策略确定第二CPU负责管理所述第一报文进行网络地址转换所需要的端口资源;从所述第二CPU获得N个端口资源;从所述N个端口资源中使用第一端口资源对所述第一报文进行网络地址转换得到转换后的报文;将所述转换后的报文发送给所述接口板(15);所述接口板(15)还用于将接收到的所述转换后的报文发送到外部网络。
结合第一方面,在第一种可能的实现方式中,所述设备还包括:控制板用于:将端口资源广播到所述业务板的多个CPU;或者将端口分配策略广播到业务板的多个CPU,其中所述端口分配策略将所述设备的端口资源分配给所述业务板的多个CPU,每个所述CPU负责管理所分配的端口资源。
结合第一方面的第二种可能的实现方式中,所述设备还包括:所述接口板(15)进一步用于:根据所述第一报文的源IP地址将所述第一报文转发给所述业务板的第一CPU。
在第三种可能的实现方式中,所述设备还包括:当所述第一CPU接收到所述第一报文所在会话的第二报文时,所述第一CPU进一步用于根据保存的会话表对所述第二报文进行处理,其中所述会话表是在所述第一报文完成网络地址转换后建立的。
在第四种可能的实现方式中,所述设备还包括:当所述第一CPU接收到所述用户驻地设备(301)发送的第二会话的第三报文时,其中所述第二会话是与所述第一会话不同的一个新会话,所述第一CPU进一步用于从所述N个端口资源中选取第二端口资源对所述第三报文进行网络地址转换。
在第五种可能的实现方式中,所述设备还包括:所述网络地址转换策略用于根据接收到的报文的特性确定对应的端口资源信息
在第六种可能的实现方式中,所述设备还包括:所述第一CPU用于接收第四报文;根据所述NAT策略确定所述第一CPU负责管理所述第四报文进行网络地址转换所需要的端口资源;从第一CPU所管理的端口资源池中为发送所述第四报文的用户驻地设备分配M个端口资源;使用M个端口资源中的第一端口资源对所述第四报文进行网络地址转换。
在第七种可能的实现方式中,所述设备还包括:所述第一CPU还用于存储所述M个端口资源的使用状态,并定期更新所述M个端口资源的使用状态。
在第八种可能的实现方式中,所述设备还包括:所述第二CPU进一步用于存储所述N个端口资源的使用状态,并将所述N个端口资源的使用状态发送给所述第一CPU;所述第一CPU进一步用于定期更新所述N个端口资源的使用状态,并将所述更新的使用状态发送给所述第二CPU。
第二方面,本发明实施例提供了一种网络地址转换方法,其中,实现所述网络地址转换方法的设备包括控制板(11)、接口板(15)和带有多个CPU的业务板,所述设备的端口资源分配给所述业务板的多个CPU进行管理和分配;所述业务板的第一CPU接收所述接口板(15)转发的用户驻地设备(301)发送的第一会话的第一报文;根据网络地址转换策略确定第二CPU管理所述第一报文进行网络地址转换所需要的端口资源;从所述第二CPU获得N个端口资源;使用所述N个端口资源中的第一端口资源对所述第一报文进行网络地址转换得到转换后的报文;将所述转换后的报文发送给所述接口板(15);所述接口板(15)将所述转换后的报文发送到外部网络。
结合第二方面,在第一种可能的实现方式中,所述网络地址转换方法还包括:所述控制板(11)将所述端口资源广播到所述业务板的多个CPU;或者所述控制板(11)将端口分配策略广播给所述业务板的多个CPU,其中所述端口分配策略用于将所述设备的端口资源分配给所述业务板的多个CPU,每个所述CPU负责管理所分配的端口资源。
结合第二方面的第二种可能的实现方式中,所述网络地址转换方法还包括,所述接口板(15)根据所述第一报文的源IP地址将所述第一报文分配给所述业务板的所述第一CPU。
结合第二方面的第三种可能的实现方式中,所述网络地址转换方法还包括,当所述第一CPU接收到属于所述第一报文所在会话的第二报文时,所述第一CPU根据保存的会话表对所述第二报文进行处理,其中所述会话表是在所述第一报文完成网络地址转换后建立的。
结合第二方面的第四种可能的实现方式中,所述网络地址转换方法还包括,当所述第一CPU接收到所述用户驻地设备(301)发送的第二会话的第三报文时,其中所述第二会话是与所述第一会话不同的一个新会话,所述第一CPU使用N个端口资源中的第二端口资源对所述第三报文进行网络地址转换。
结合第二方面的第五种可能的实现方式中,所述网络地址转换方法还包括,所述网络地址转换策略用于根据接收到的报文的特性确定对应的端口资源。
结合第二方面的第六种可能的实现方式中,所述网络地址转换方法还包括,所述第一CPU接收第四报文;根据所述网络地址转换策略确定所述第一CPU负责管理所述第四报文进行网络地址转换所需要的端口资源;从第一CPU所管理的端口资源中为发送所述第四报文的用户驻地设备分配M个端口资源;使用M个端口资源中的第一端口资源对所述第四报文进行网络地址转换。
结合第二方面的第七种可能的实现方式中,所述网络地址转换方法还包括,所述第一CPU保存所述M个端口资源的使用状态,并定期更新所述M个端口资源的使用状态。
结合第二方面的第八种可能的实现方式中,所述网络地址转换方法还包括,所述第二CPU存储所述N个端口资源的使用状态,并将所述N个端口资源的使用状态发送给所述第一CPU;所述第一CPU定期更新所述N个端口资源的使用状态,并将所述更新的使用状态发送给所述第二CPU。
本发明实施例通过把网络地址转换设备所管理的端口资源分别发送给各个业务板的CPU,由业务板的CPU来负责对端口资源的管理和分配,并且每个端口资源由一个CPU来独立管理,在实现网络地址转换的整个过程中,管理端口资源的业务板的CPU会为接收到报文的业务板的CPU分配端口资源,多个业务板的CPU共同参与实现网络地址转换。这样由业务板的CPU来对网络地址转换设备的端口资源进行管理,避免了控制板成为端口资源分配的瓶颈,充分发挥了分布式***的优势,提高了端口资源的分配效率和利用率。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍。
图1为运营商级网络地址转换业务应用的应用场景示意图;
图2为运营商级网络地址转换设备的结构示意图;
图3为已有的运营商级网络地址转换方法的流程示意图;
图4为本发明实施例中的网络地址转换的信号示意图;
图5为本发明实施例的网络地址转换的方法流程示意图。
具体实施方式
以下将参考附图详细说明本发明的各种示例性实施例、特征和方法。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有这些具体细节,本发明同样可以实施。在另外一些实例中,对于大家熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
运营商级网络地址转换(Carrier Grade Network Address Translation,即CGNAT,简称CGN)技术是目前各运营商广泛采用的IPv4-IPv6的过渡方案,其实质为网络地址转换设备。CGN解决方案有多种实现方式,例如:DS-Lite(Dual-Stack Lite,双栈精简技术),NAT444(双层NAT44技术,即双层IPv4私有地址到IPv4公有地址的地址网络地址转换技术),PNAT(Prefix Based NAT,基于主机的IPv6过渡网络地址转换技术),NAT64(IPv6与IPv4之间的网络地址转换技术)。
CGN解决方案主要应用于城域网的网络过渡,其应用场景请参见附图1。终端用户User(401)与用户驻地设备(Customer Presidial Equipment,简称CPE)(301)相连,CPE(301)作为终端用户(401)的出口网关,通过宽带远程接入服务(Broadband RemoteAccess Service,简称BRAS)(2)拨号上线后,转发报文至CGN设备(1)。CGN设备(1)为各CPE分配端口资源,并实现运营级NAT转换,并将转换后的报文发送到外部网络(5)中。
在DS-Lite解决方案中,CPE(301)会将终端用户(401)发来的报文封装在以CPE设备的IP地址(CPE-IP)为源IP的IPv4-in-IPv6隧道报文中,发给CGN设备(1)。而在NAT444解决方案中,CPE(301)会将终端用户(401)发来的报文的源IP转换为CPE-IP后,发给CGN设备。因此,在DS-Lite和NAT444解决方案中,每个CPE下所有终端用户发起的报文到达CGN设备(1)后,报文的源IP都是所属CPE的IP地址,CGN设备(1)可以通过报文源IP区分和识别不同CPE发送来的报文。其他的CGN实现方式在端口分配方案及NAT功能的实现上类似,因此,在本申请文件中主要是基于DS-Lite和NAT444解决方案进行介绍,其他解决方案类似的实现方式不再单独进行记述。
为了满足高转发性能以及解决大量NAT应用带来的用户溯源的难题,CGN提供了端口预分配(port-range)技术和增量分配(semi-dynamic)技术。端口预分配技术是指,运营商级网络地址转换设备(简称CGN设备)为各个CPE预先分配端口资源,后续CPE所连接的所有终端用户发送的报文均使用已分配的端口资源进行网络地址转换。随着新建会话的不断增加,当CPE分配到的端口资源不足时,可以通过增量分配为该CPE追加分配新的端口资源。
CGN设备(1)一般安装在在局域网或者城域网等网络接口处,CGN设备(1)可以是一个独立的设备,也可以集成在防火墙设备中,或者可以集成到路由器设备中,具体设置方式根据业务需要确定。终端用户发送的报文通过CPE发送到CGN设备,由CGN设备进行网络地址转换后发送到外部网络中,获取所需的服务或信息。
CGN设备的结构如附图2所示,包括控制板(main processing unit,简称MPU,有的也称之为主控板)(11),业务板(service processing unit,简称SPU),和接口板(lineprocessing unit,简称LPU)(15)。图2中给出的各板之间的相互位置关系仅为示例性的说明,表明相互之间的连接关系,不同厂家生产的CGN设备中各种板的个数以及具体安装位置会有不同,只能具有能实现类似功能的板即可。另外,CGN设备还包括交换网板、电源、风扇等组成部件,与现有技术类似,在此不再详述。
如果将网络地址转换功能集成到其他设备中时,如将网络地址转换功能集成到防火墙或者路由器中,控制板、业务板以及接口板等的功能可以由具备类似功能的元器件来实现。相应的,电源、风扇等部件也根据集成的其他设备的情况来设置。在此不再另行说明。在本发明实施例中,以单独的CGN设备来进行说明。
CGN设备中,控制板(11)负责对CGN设备(1)进行管理,特别是负责该CGN设备所拥有的NAT地址池以及端口资源的分配和使用。所述NAT地址池为CGN设备所管理的可用于网络地址转换的公网IP地址的集合。所述端口资源是指可用于网络地址转换的公网IP地址及对应的端口号段的集合。
业务板与控制板(11)相连,负责对报文进行处理。CGN设备中一般会有多块业务板,以满足处理大量报文的需求,多个业务板分别与控制板(11)相连,各个业务板也互相连接;业务板与控制板(11)之间的连接以及各业务板之间的连接与现有连接方式相同。每个业务板可以包括单个CPU或者包括多个CPU。对于运营商来讲,由于需要处理的报文业务量大,因此,业务板大都包含多个CPU。对报文进行网络地址转换的功能,由业务板中的CPU来实现。
接口板(15)与控制板(11)、业务板相连,连接方式与现有连接方式相同。接口板(15)将接收到的终端用户(401)发送来的报文根据预先配置的策略分流给业务板,业务板对报文进行处理,再将处理后的报文发送给接口板(15),接口板(15)再将业务板处理后的报文发送到外部网络中去。接口板接收报文和发送报文的功能可以分开由一个接口板负责接收终端用户发送来的报文,由另外一个接口板负责将业务板处理后的报文发送到公共网络中去。
附图3给出了已有的CGN设备对报文进行网络地址转换的示意图。
如附图3所示,CPE1(301)将终端用户user1(401)发送来的报文通过BRAS(2)发送给CGN设备(1);CGN设备(1)的接口板(15)接收到CPE1(301)发送来的报文后,根据预定的策略将报文转发给对应的业务板。例如根据报文的源IP将报文转发给对应的业务板,如SPU1。
业务板的CPU(例如SPU1(131)的CPU0(1311))接收到CPE1(301)发送的第一条会话的第一个报文时,向控制板(11)申请N个端口资源,并从N个端口资源中取出一个端口资源供该第一条会话的第一个报文进行网络地址转换,同时保存该第一条会话的会话状态,即会话表。当SPU1(131)的CPU0(1311)接收到的报文是该第一条会话的后续报文时,根据会话表对该第一条会话的后续报文进行转发,此技术已为本领域技术人员所熟知,在此不再详述。
以此类推,当SPU1(131)的CPU0(1311)接收到CPE1(301)发送的一个新的会话的第一条报文时,从剩余的端口资源中取出一个端口资源供该新会话的第一条报文进行端口转换,并保存相应的会话状态,即会话表。例如,当SPU1(131)的CPU0(1311)接收的是第二条会话的第一个报文时,从除了已为第一条会话所采用的端口外的剩余的N-1个端口中取出一个端口供第二条会话的第一个报文进行网络地址转换,并保存所述第二条会话的会话状态,即会话表;当SPU1(131)的CPU0(1311)接收到第二条会话的后续报文时,根据保存的第二条会话的会话表对该报文进行转发。
在该方案中,端口资源由控制板(11)统一管理,各业务板的CPU需要向控制板申请端口资源来为新建会话做网络地址转换时使用。此时,控制板(11)是各业务板的各CPU获取端口资源的唯一途径,同时也是各业务板的各CPU获取端口资源性能的瓶颈所在,无法发挥分布式***的优势。
并且,当SPU1(131)的CPU0(1311)接收到的新会话数量增多,控制板(11)分配的N个端口资源被使用完毕时,CPU0(1311)需要再次向控制板(11)申请新的端口资源,这样会引起端口资源的二次分配和管理的问题,增加了端口资源分配的复杂性。
此外,业务板的CPU还可以向控制板(11)申请N个端口资源直接分配给发送报文的CPE,当接收到其他的CPE的报文时,业务板的CPU再向控制板(11)新申请M个端口资源。或者,业务板的CPU向控制板(11)申请N个端口资源后,从这N个端口资源中划分M个端口资源给发送报文的CPE;当接收到其他的CPE的会话报文时,业务板的CPU再从剩余的N-M个端口资源中分配Q个端口资源分配给新接入的CPE。同样的,这两种端口资源的方式会面临控制板的端口资源分配的瓶颈以及端口资源二次分配和管理的问题。此处的M、N和P为一个整数,不代表具体的数量。
为了克服控制板的瓶颈和端口资源二次分配和管理的问题,还有另外一种实现方法。控制板将端口资源分块并划分给各业务板的各个CPU,这样就避免了控制板成为理端口资源分配和管理的瓶颈。各业务板的CPU接收到新建会话的报文时,直接从该CPU所划分的端口资源中获取端口并进行网络地址转换。这种方案中,各业务板的CPU只能利用所划分的NAT端口资源为CPE发送的会话分配端口资源,当CPU的剩余端口资源不足,只能等待释放出端口资源后再进行处理,无法发挥分布式***的优势,端口利用率低。
本发明提供了一种端口资源分配以及网络地址转换的设备及方法,既能解决控制板为端口资源分配的瓶颈的问题,又能解决多业务板CPU之间端口资源管理和分配冲突的问题,提高端口利用率,充分发挥分布式***的优势。
本发明实施例提供的解决方案中,将端口资源映射到各个业务板的CPU上,由业务板的CPU对端口资源进行管理,并且每个端口资源由所映射的CPU单独进行管理。这样端口资源由业务板的CPU来管理和分配,避免了控制板成为端口资源分配和管理的瓶颈的问题;而且每个端口资源由所映射的CPU单独进行管理,解决了分布式***中的端口资源管理的二次分配和管理的问题;另外,在端口资源分配以及网络地址转换的过程中,有多个CPU共同参与,这样提高了端口利用率,又充分发挥分布式***的架构和性能优势。
在本发明实施例中,CGN设备包括控制板(11)、业务板以及接口板(15),如附图2所示。交换网板、电源、风扇等部件与现有的实现方式相同(未在图中示出),在此不再详述。集成了CGN功能的防火墙或者路由器由具有相同功能的元器件参照本文中提到的解决来实现运营商级的网络地址转换,在本发明实施例中不再另行说明。
控制板(11)包括CPU(1101)和存储器(1103)。控制板(11)中的CPU(1101)用于对CGN设备及CGN的所有资源及信息进行管理,并将端口资源根据端口分配策略分配给各个业务板的CPU;存储器(1103)用于存储CGN设备所能管理的NAT地址池和端口资源,以及端口资源与分配的业务板CPU之间的对应关系。CGN设备所管理的可用于网络地址转换的公网IP地址的集合组成NAT地址池。所述端口资源是指可用于网络地址转换的各个公网IP地址及对应的端口号段的集合。
业务板包括CPU和存储器。业务板中的CPU用于处理接收到的报文,包括端口资源分配、网络地址转换等。存储器用于存储用户表和会话表。所述用户表包含有端口资源和用户驻地设备之间的对应关系等信息,所述会话表包含有会话状态等信息。用户表及会话表可以利用本领域中已有的实现方式,在本实施例中不再详述。
接口板(15)包括CPU(1503)、接收器(1501)和发送器(1505)。接收器(1501)用于接收CPE发送来的报文,并将报文发送给接口板的CPU。接口板的CPU根据一定的规则把报文分发给业务板的CPU,例如接口板的CPU根据接收到的报文的源IP地址把报文分发给业务板的CPU。发送器(1505)用于接收业务板的CPU发送过来的报文并发送到外部网络去。在运营商级网络地址转换的应用场景下,也可以根据业务量的需要,将接收报文的功能与发送报文的功能分别由两个接口板来完成。也即CGN设备可以包括两个接口板,一个接口板包括CPU和接收器,另外一个接口板包括CPU和发送器。
CGN设备拥有的用于网络地址转换的公网IP地址组成NAT地址池,保存在控制板(11)的存储器(1103)中。CGN设备的可使用的公网IP地址可以组成一个NAT地址池,也可以分成多个NAT地址池,在本发明实施例中,以一个NAT地址池为例进行说明。每个公网IP地址对应一段可用的端口号段,例如端口2049-65535,也保存在控制板(11)的存储器(1103)中,所述可用于网络地址转换的各个公网IP地址及对应的端口号段组成端口资源。控制板(11)的CPU(1101)根据端口分配策略把端口资源分别映射给各业务板的CPU,并将端口资源与业务板中的CPU的对应关系保存在存储器中。端口分配策略是一种算法,将CGN设备的端口资源分配给业务板的CPU,由业务板的CPU分别负责管理所分配的端口资源。控制板可以运行算法把端口资源映射到业务板的CPU,然后将各端口资源广播到业务板的CPU;控制板也可以将端口分配策略广播到业务板的CPU,业务板的CPU通过运行端口分配策略得到负责管理的端口资源。这样,就把对端口资源的管理和分配从控制板转移给了业务板的CPU,由业务板的CPU对分配的端口资源独立进行管理。
例如,所述CGN设备管理的NAT地址池中有N个可以用于网络地址转换的公网IP地址,每个公网IP地址都有可供使用的一段端口号。CGN设备使用固定算法将端口资源分别映射到各个业务板的CPU,然后将端口资源广播到对应的业务板的CPU。具体的端口分配策略可以根据CGN设备的各个性能参数和运营商的实际需要来设定。端口分配策略中可以包含如表一所示的几个参数。表一中的参数仅为示例,不对本方案进行限制,实际使用中,可以根据需要对参数以及参数的数值进行修改。
公网IP地址ID | 公网IP地址 | SPU编号 | CPU编号 | 端口块 | 端口分配粒度 |
… | … | … | … | … | … |
199 | 10.10.2.0 | 1 | 0 | 2049-65535 | 256 |
200 | 10.10.2.1 | 1 | 1 | 2049-65535 | 256 |
201 | 10.12.2.2 | 1 | 1 | 2049-65535 | 256 |
202 | 10.12.2.3 | 1 | 2 | 2049-33793 | 256 |
… | … | … | … | … | … |
表一端口资源分配策略所含参数
如表一所示,第一组参数表示:将第199个公网IP地址(10.10.2.0)的端口资源按照256个端口为一个块来进行划分并分配给SPU1的CPU0,即SPU1的CPU0是负责管理第199个公网IP地址对应的端口资源的CPU。第二组参数表示:将第200个公网IP地址(10.10.2.1)的端口资源按照256个端口为一个块来进行划分并分配给SPU0的CPU2,即SPU0的CPU2是负责管理第200个公网IP地址的端口资源的CPU。由于数量多,在表中无法一一列出,未列出的参数以省略号(…)表示。
这样对端口资源的管理就由控制板转移到各个业务板的CPU,避免了控制板成为端口资源分配和管理的瓶颈。同时,每个端口资源由一个CPU独立进行管理,避免了端口分配的冲突。
业务板中的CPU(第一CPU)接收的接口板分发的报文如果为一个CPE发送的第一个会话的第一条报文(第一报文),第一CPU查找NAT策略,第一CPU根据接收到的报文的特性确定需要进行网络地址转换的公网IP地址的ID号,对公网IP地址的ID号做HASH计算,得到管理需要进行网络地址转换的端口资源的CPU(第二CPU)。所述报文的特性可以为报文的ACL信息,报文的源IP、目的IP、源端口、目的端口以及协议等五元组信息,NAT类型等信息中的一种或者多种。根据报文的特性确定进行网络地址转换的IP地址的方法与现有实现方式相近似,在此不再详述。
如果所述第二CPU与所述第一CPU不是同一个CPU,即接收到报文的业务板的CPU不同于管理端口资源的业务板的CPU,则所述第一CPU将所述第一报文发送给第二CPU,即接收到报文的业务板的CPU将所述第一报文发送给管理端口资源的业务板的CPU。所述第一CPU和所述第二CPU可以位于同一个业务板,也可以位于不同的业务板。对本发明实施例中的技术方案的实现没有影响。
所述第二CPU接收到所述第一报文后,从管理的端口资源中为发送所述第一报文的CPE分配N个端口,并保存所述N个端口资源的使用状态,例如将分配的N个端口资源的使用状态以及与对应的CPE之间的关系保存到用户表中。所述第二CPU将所述第一报文、所述分配的N个端口发送给所述第一CPU。
所述第一CPU接收到所述第二CPU发送过来的第一报文、所述N个端口资源之后,从N个端口资源中选取一个端口资源对所述第一报文进行网络地址转换,并保存所述N个端口资源的使用状态,例如将所述分配的N个端口资源的使用状态以及与对应的CPE之间的关系保存到用户表中,并定时更新用户表。用户表中的其他信息与现有技术实现方式中类似,在此不再另行说明。第一CPU将完成了网络地址转换的第一报文发送给接口板,由接口板将所述完成了网络地址转换的第一报文发送到外部网络中。为了确保N个端口不会被第二CPU回收,第一CPU定时更新所述N个端口资源的使用状态并发送刷新消息给第二CPU。当该CPE的所有会话都断开后,第一CPU不再刷新所述N个端口资源的使用状态,也不再发送刷新消息给第二CPU,第二CPU上的所述N个端口资源的使用状态如果在设定的时间范围内没有收到刷新消息,则释放所述N个端口资源以供重新分配。
如果得出的负责管理所述公网IP地址的CPU(即第二CPU)与接收第一报文的CPU(即第一CPU)为同一个CPU,则所述第一CPU从管理的端口资源中为发送所述第一报文的用户驻地设备分配N个端口,并从N个端口资源中选取一个端口资源对所述第一报文进行网络地址转换,将所述分配的N个端口资源的使用状态以及与对应的CPE之间的关系保存到用户表中并更新存储的用户表。用户表中的其他信息与现有技术实现方式中类似,在此不再另行说明。第一CPU将完成了网络地址转换的第一报文发送给接口板,由接口板将所述完成了网络地址转换的第一报文发送到网络中。
当所述N个资源不够使用时,可以使用以上描述的方法再新申请M个新的端口资源用于网络地址转换,在此不再详述。
这样,一个端口资源由唯一的CPU管理,解决了现有技术中端口资源分配和管理复杂的问题。另外,多个业务板的CPU共同参与完整的网络地址转换全过程,并且当端口资源不再使用时,可以释放以供重新使用,这样可以充分发挥分布式***的优势,提高端口资源的利用率。
当业务板中的CPU(第一CPU)接收的接口板分发的报文为一个会话的后续报文时(第二报文),所述第一CPU根据存储的会话表将第二报文发送出去,此时的处理方式可参考现有方式中同一会话后续报文的处理方式,在此不再详述。
当业务板中的CPU(第一CPU)接收的接口板分发的报文为同一个CPE发送的新的会话的第一个报文时(第三报文),所述第一CPU从分配的N个端口资源中选择第二端口资源对所述第三报文进行网络地址转换。也就是说从分配的N个端口资源中,除了已经分配给第一报文的端口资源以外的其他端口资源(即N-1个端口资源)中,选择一个端口资源对第三报文进行网络地址转换。后面的处理方式与第一报文类似,在此不再另行说明。此时,第一CPU不再需要把报文转发给第二CPU,直接从已经分配的端口资源中选取未使用的端口资源进行网络地址转换,充分发挥了分布式***的优势。
由于在CGN方案中,一个CPE连接的终端用户的数量可能会很多,可能会出现分配的N个端口资源不够使用的情况,此时可以重新申请M个端口资源,申请的方法与前述的N个端口资源的方法相同。
通过本发明提供的实施例,解决了现有技术中控制板为端口资源管理和分配的瓶颈、端口资源分配和管理问题复杂、以及端口资源利用率低等等问题,充分利用了分布式***的优势,提高了端口资源的利用效率。
下面以一个具体的例子来说明CGN设备在实现网络地址转换的过程中是如何来实现高效简单的端口资源分配和管理的。
本发明实施例提供的网络地址转换的方法流程如附图4和附图5所示。
步骤1,CGN设备控制板(11)的CPU(1101)将CGN设备(1)所拥有的端口资源映射到业务板的CPU。
CGN设备所拥有的用于网络地址转换的公网IP地址组成NAT地址池,CGN设备的可使用的公网IP地址可以组成一个NAT地址池,也可以分成多个NAT地址池,在本发明实施例中,以一个NAT地址池为例进行说明。每个IP地址都对应一段端口号段用于进行网络地址转换,用于网络地址转换的公网IP地址及对应的端口号段构成了可以用于网络地址转换的端口资源。控制板(11)的CPU(1101)根据端口分配策略把端口资源映射到各个业务板的CPU,由业务板的CPU对分配到的端口资源进行管理和分配。控制板(11)可以运行端口分配算法把端口资源映射到业务板的CPU,然后将各端口资源广播到业务板的CPU;控制板(11)也可以将端口分配策略广播到业务板的CPU,业务板的CPU通过运行端口分配策略得到负责管理的端口资源。
例如,CGN设备有N个可用于网络地址转换的公网IP地址,每个公网IP地址对应的可用的端口资源为2049-65535,存储在控制板(11)的存储器(1103)中。控制板(11)MPU的CPU(1101)将端口资源映射到业务板SPU上的各个CPU。例如,CGN设备某个可用于网络地址转换的公网IP地址为10.10.2.0,其对应的端口资源为2049-65535,控制板(11)的CPU将该端口资源映射给SPU1(131)的CPU0(1311)管理,即由SPU1(131)的CPU0(1311)负责这个公网IP地址的端口资源的管理和分配。将端口资源与各业务板SPU以及各个CPU之间的映射关系保存到MPU(11)的存储器(1103)中。端口分配策略在前文已给出具体的示例,在此不同详述。
这样,每个端口资源由所映射的业务板的CPU独立管理。这样,一个端口资源只会由一个CPU进行管理,避免了端口分配冲突;并且,从网络地址转换整个过程来看,业务板的多个CPU共同参与端口资源的管理和分配,充分利用了分布式***的架构优势。
步骤2,接口板(15)接收到CPE发送来的报文后,发送给业务板的CPU。
接口板(15)根据报文的源IP地址将接收到的报文分流至对应业务板的CPU。因此具有相同源IP地址的所有报文都会分流到同一业务板的同一个CPU上。在DS-Lite和NAT444解决方案中,报文的源IP地址即是CPE的IP地址,即CPE-IP,所以同一个CPE连接的所有终端用户发出的报文都会被分流至同一个业务板的同一个CPU处理。CPE对接收到的终端用户发出的报文的处理前文已提及,在此不再另行说明。根据报文的源IP地址分配到业务板的CPU已为本领域技术人员所熟知,在此不再详述。
如附图4所示,接口板LPU(15)上的接收器(1501)接收到CPE1发送来的报文,发送给接口板(15)的CPU(1503)。接口板(15)的CPU(1503)根据报文的源IP地址,将报文分流给SPU1(131)的CPU0(1311)。后续CPE1发来新的报文或者新的会话时,由于报文的源IP地址即为CPE1的IP地址,所以这些报文仍然会被分流给SPU1(131)上的CPU0(1311)。如果接口板LPU(15)的接收器(1501)接收到的是CPE2发送来的报文,则发送给接口板的CPU后,接口板的CPU根据该报文的源IP地址,将报文分流给SPU1(131)上的CPU1(1313)。为了清楚的显示出一个完整的过程,CPE2发送的报文,未在附图5中示出。由于CPE2发送来的报文的源IP地址为所述CPE2的IP地址,因此,CPE2发送的新的报文或者新的会话也会被分流到SPU1(131)上的CPU1(1313)。也就是说,同一个CPE下的所有终端发出的报文会被分流给同一个业务板的同一个CPU处理。
步骤3,业务板的CPU对接收到的报文进行处理。
为了描述方便,将接收到接口板分流的报文的CPU称之为第一CPU。如果第一CPU接收到的报文是CPE发送的第一个会话的第一条报文(第一报文),第一CPU查找NAT策略,根据第一报文的特性,获得需要进行网络地址转换的公网IP地址的ID号,对所述公网IP地址的ID号进行哈希计算,得到负责管理需要进行网络地址转换的端口资源的CPU(第二CPU)。所述报文的特性可以包含所述报文的ACL信息,报文的源IP、目的IP、源端口、目的端口以及协议等五元组信息,以及NAT类型等信息中的一种或者多种。根据报文的特性确定进行网络地址转换的IP地址的方法与现有实现方式相近似,在此不再详述。所述第一CPU和所述第二CPU可以位于同一个业务板,也可以位于不同的业务板。
所述NAT策略可以预先写入并保存到控制板(11)的存储器(1103)中,当第一CPU接收到第一报文后,向控制板(11)的存储器(1103)读取NAT策略获得需要进行网络地址转换的公网IP地址的ID号,对所述公网IP地址的ID号进行哈希计算,得出端口资源对应的CPU号。所述NAT策略也可以预先写入并保存到各业务板的存储器中,当第一CPU接收到第一报文后,向所在的业务板的存储器读取NAT策略获得需要进行网络地址转换的公网IP地址的ID号,对所述公网IP地址的ID号进行哈希计算,得出端口资源对应的CPU号。
如果计算出的第二CPU与所述第一CPU是同一个CPU,则转至步骤4继续处理。如果计算出的第二CPU与所述第一CPU不是同一个CPU,则转至步骤5继续处理。
如附图4所示,业务板SPU1(131)的CPU0(1311)模块(即第一CPU)接收到接口板LPU(15)发送的CPE1的报文时,如果接收到的报文是CPE1发送的第一个会话的第一条报文,业务板SPU1(131)的CPU0(1311)根据报文的ACL信息得到进行网络地址转换的公网IP地址的ID号为199,对所述IP地址的ID进行哈希计算,得到管理该端口资源的CPU为SPU0(135)的CPU2(1353)(即第二CPU)。此时第二CPU与第一CPU不是同一个CPU,则转至步骤5继续处理。
步骤4,如果第二CPU与所述第一CPU是同一个CPU,则所述第一CPU为发送所述第一报文的用户驻地设备分配N个端口资源,继续执行步骤8。
如果管理端口资源的业务板的CPU(第二CPU)就是接收报文的业务板的CPU(第一CPU),所述第一CPU为发送所述第一报文的用户驻地设备分配N个端口资源。另外,所述第一CPU还保存所述N个端口资源的使用状态,例如以用户表的形式记录分配的N个端口资源的使用状态以及与对应的CPE之间的对应关系,该用户表存储在第一CPU所在的业务板的存储器中。
步骤5,如果计算出的第二CPU与所述第一CPU不是同一个CPU,则第一CPU将所述第一报文转发给所述第二CPU。
如果管理端口资源的业务板的CPU(第二CPU)与接收报文的业务板的CPU(第一CPU)不是同一个CPU,则接收报文的业务板的CPU把接收到的报文转发给管理端口资源的业务板的CPU。在本实例中,SPU1(131)的CPU0(1311)将接收到的CPE1发送的所述第一报文转发给SPU0(135)的CPU2(1353)。
步骤6,所述第二CPU给该发送所述第一报文的CPE分配N个端口资源。
在本实例中,SPU0(135)的CPU2(1353)接收到的第一报文后,给发送该第一报文的CPE1分配N个端口资源。
步骤7,所述第二CPU将分配的所述N个端口资源以及所述第一报文发送给所述第一CPU。
在本实施例中,SPU0(135)的CPU2(1353)将N个端口资源以及第一报文发送给SPU1(131)的CPU0(1311)。
步骤8,第一CPU从分配的N个端口资源中选取一个端口资源对所述第一报文进行网络地址转换。
所述第一CPU从接收到的第二CPU分配的N个端口资源中,选取一个端口资源对所述第一报文进行网络地址转换。另外,所述第一CPU保存所述N个端口资源的使用状态,以及保存所述第一报文所在会话的会话状态,剩余的N-1个端口供该CPE后续其它新建会话的报文进行NAT转换时使用。
如图4所示,SPU1(131)的CPU0(1311)从SPU0(135)的CPU2(1353)分配的N个端口资源中选取一个端口资源对CPE1发送的第一个会话的第一条报文进行NAT转换。所述第一CPU保存所述N个端口资源的使用状态,并定时进行更新。
步骤9,第一CPU将进行网络地址转换后的第一报文,通过接口板发送到外部网络。
SPU1(131)的CPU0(1311)模块将进行网络地址转换后的第一报文,通过接口板(15)发送到外部网络。
如图4中所示的方法,控制板将端口资源的管理和分配转移给业务板的CPU来管理和分配,且某个端口资源由唯一的一个CPU管理,避免了控制板成为端口资源分配的瓶颈,以及端口资源分配和管理复杂的问题。另外,对报文进行网络地址转换的整个过程中,由业务板的多个CPU来共同参与,这样既能解决分布式***端口资源的管理和分配冲突的问题,又可以提高端口利用率,让尽可能多的CPU参与地址池管理,充分发挥出分布式架构的优势。
另外,为了充分利用分布式***的优势,提高端口资源的利用率,在上述步骤4中,所述第一CPU为所述发送第一报文的CPE分配N个端口资源后,保存所述N个端口资源的使用状态,例如以用户表的形式记录N个端口资源的使用状态以及与对应的CPE的对应关系,并定时更新所述用户表。当在预定的时间范围内,所述N个端口资源的使用状态不再有新的更新时,所述第一CPU释放所述N个端口资源,用于再次分配。类似的,在上述步骤6中,所述第二CPU为所述发送第一报文的CPE分配N个端口后,第二CPU保存所述N个端口资源的使用状态,例如以用户表的形式记录分配的N个端口资源的使用状态以及与对应的CPE之间的对应关系,并将用户表发送给所述第一CPU。同时,所述第一CPU在接收到所述第二CPU发送的第一报文和为所述发送第一报文的CPE分配的N个端口之后,也保存所述N个端口资源的使用状态,例如以用户表的形式保存所述N个端口资源的使用状态以及与所述发送第一报文的CPE之间的对应关系,定时更新用户表;并定时发送刷新消息给第二CPU,避免所述N个端口被回收重新分配。当在预定的时间范围内,第二CPU保存的N个端口资源的使用状态没有新的更新时,所述第二CPU释放所述N个端口资源,用于再次分配。
这样,可以充分发挥分布式***的优点,各个CPU之间的端口资源可以互相使用;同时不再使用的端口资源可以回收后重新分配,提高了端口资源的利用率。
如果所述第一CPU接收到的报文是所述用户驻地设备发送的第一个会话的后续报文时,则所述第一CPU根据保存的会话表将后续报文发送到网络中。根据会话表发送报文为本领域技术人员所熟知的技术,并且不是本发明重点所述,在此不再详述。
如果所述第一CPU接收到的报文是所述用户驻地设备发送的一个新建会话的第一个报文,则第一CPU从分配的N-1个端口资源中取出一个端口资源对新建会话的第一个报文进行网络地址转换,并将网络地址转换后的新建会话的第一个报文通过接口板发送到外部网络。也就是说从分配的N个端口资源中,除了已经分配给第一报文的端口资源以外的其他端口资源(即N-1个端口资源)中,选择一个端口资源对第三报文进行网络地址转换。这样,第一CPU接收到所述用户驻地设备发送的新建会话的第一个报文时,不需要再把接收到的新建会话的第一个报文转发给第二CPU,这样节省了业务板CPU的流量消耗,减轻了业务板CPU的负担,并加快了报文处理的时间。第一CPU从分配的N-1个端口资源中取出一个端口资源对新建会话的第一个报文进行网络地址转换后,更新存储的用户表和会话表,并发送刷新消息给第二CPU所在业务板的存储器刷新所存储的用户表。
在本实施中,当SPU1(131)的CPU0(1311)模块接收到的报文是CPE1发送的一个新建会话的第一个报文时,SPU1(131)的CPU0(1311)从SPU0(135)的CPU2(1353)分配的N-1个端口资源中取出一个端口资源对新建会话的第一个报文进行网络地址转换,并将网络地址转换后的新建会话的第一个报文通过接口板发送出去。即除了已经分配给CPE1发送的第一个会话的第一个报文的端口资源之外的其他的端口资源中,SPU1(131)的CPU0(1311)从剩下的N-1端口资源中选取一个端口资源对新建会话的第一个报文进行网络地址转换。SPU1(131)的CPU0(1311)将新的会话状态保存到SPU1的存储器中,并发送刷新消息给SPU0的存储器刷新所存储的用户表。
本发明通过将NAT端口资源分配到不同业务板的CPU,由这些CPU负责管理和分配端口资源,避免了控制板成为端口资源的瓶颈,也避免了端口管理的冲突问题,充分发挥了分布式***的优势,提高了端口资源的利用率。
如果第一CPU接收到所述用户驻地设备E发送的新的新建会话的第一条报文时,第二CPU为该CPE分配的N个端口资源已经全部被使用,没有剩余的端口资源可以使用了。可以参照当第一CPU接收到CPE发送的第一个会话的第一条报文时的处理方式。当接收到报文的业务板的CPU(第一CPU)与管理端口资源的业务板的CPU(第二CPU)不是同一个CPU时,第一CPU该新的新建会话的第一条报文转发给第二CPU。第二CPU为该发送该报文的用户驻地设备再分配M个端口资源,并更新所在业务板的存储器中存储的用户表,即更新其中记录的CPE与分配的端口资源之间的对应关系。第二CPU将新分配的M个端口资源和所述新的新建会话的第一条报文发送给第一CPU,第一CPU从接收到的M个端口资源中选取一个端口资源对所述新的新建会话的第一条报文做网络地址转换,将网络地址转换后的报文通过接口板发送到外部网络。另外,第一CPU会更新存储的会话状态,并定时发送刷新新消息给第二CPU更新第二CPU所在业务板的存储器的存储的用户表,以保证对应端口块资源不会被第二CPU回收。当所述接收到报文的业务板的CPU(第一CPU)与管理端口资源的业务板的CPU(第二CPU)是同一个CPU时,第一CPU为发送该报文的用户驻地设备再分配M个端口资源,更新业务板的存储器中存储的用户表,再从分配的M个端口资源中选择一个端口资源对所述新的新建会话的第一条报文做网络地址转换,将网络地址转换后的报文通过接口板发送到外部网络。另外,第一CPU会更新存储的会话状态和用户表。根据上述方面,实现了端口资源的增量分配。
本发明通过把对端口资源的管理和分配由控制板转移给业务板的CPU,并且某个端口资源由一个CPU独立管理,避免了控制板成为端口资源的管理和分配的瓶颈,也简化了端口资源管理和分配的复杂度。并且在实现网络地址转换的过程中,有多个业务板的CPU参与整个过程,并且端口资源是动态分配的,这样就充分发挥了分布式***的优势。并且提高了端口资源的利用率。
本发明技术方案中提示的端口资源的管理和分配方法也可以适用于普通的网络地址转换设备。只要是将端口资源的管理和分配的控制权由控制板转移到业务板,即为本发明的技术方案所涵盖。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (18)
1.一种实现网络地址转换(network address translation,NAT)的设备,所述设备包括控制板(11),业务板和接口板(15),其特征在于:
所述业务板包括多个中央处理单元(central processing unit,CPU),其中所述设备的端口资源分配给所述业务板的多个CPU进行管理和分配;
所述接口板(15)用于接收用户驻地设备(301)发送的第一会话的第一报文,并将所述第一报文转发给所述业务板的第一CPU;
所述第一CPU用于,
根据NAT策略确定第二CPU负责管理所述第一报文进行网络地址转换所需要的端口资源;
从所述第二CPU获得N个端口资源;
从所述N个端口资源中使用第一端口资源对所述第一报文进行网络地址转换得到转换后的报文;
将所述转换后的报文发送给所述接口板(15);
所述接口板(15)还用于将接收到的所述转换后的报文发送到外部网络。
2.如权利要求1所述的设备,其特征在于,所述控制板(11)用于:
将端口资源广播到所述业务板的多个CPU;或者
将端口分配策略广播到业务板的多个CPU,其中所述端口分配策略将所述设备的端口资源分配给所述业务板的多个CPU,每个所述CPU负责管理所分配的端口资源。
3.如权利要求1所述的设备,其特征在于,所述接口板(15)进一步用于:
根据所述第一报文的源IP地址将所述第一报文转发给所述业务板的第一CPU。
4.如权利要求1所述的设备,其特征在于,当所述第一CPU接收到所述第一报文所在会话的第二报文时,所述第一CPU进一步用于根据保存的会话表对所述第二报文进行处理,其中所述会话表在所述第一报文完成网络地址转换后建立。
5.如权利要求1所述的设备,其特征在于,当所述第一CPU接收到所述用户驻地设备(301)发送的第二会话的第三报文时,其中所述第二会话是与所述第一会话不同的一个新会话,所述第一CPU进一步用于从所述N个端口资源中选取第二端口资源对所述第三报文进行网络地址转换。
6.如权利要求1至5任一所述的设备,其特征在于,所述NAT策略用于根据接收到的报文的特性确定对应的端口资源信息。
7.如权利要求1所述的设备,其特征在于,所述第一CPU进一步用于,
接收第四报文;
根据所述NAT策略确定所述第一CPU负责管理所述第四报文进行网络地址转换所需要的端口资源;
从第一CPU所管理的端口资源池中为发送所述第四报文的用户驻地设备分配M个端口资源;
使用M个端口资源中的第一端口资源对所述第四报文进行网络地址转换。
8.如权利要求7所述的设备,其特征在于,所述第一CPU还用于存储所述M个端口资源的使用状态,并定期更新所述M个端口资源的使用状态。
9.如权利要求1所述的设备,其特征在于,所述第二CPU进一步用于存储所述N个端口资源的使用状态,并将所述N个端口资源的使用状态发送给所述第一CPU;
所述第一CPU进一步用于定期更新所述N个端口资源的使用状态,并将所述更新的使用状态发送给所述第二CPU。
10.一种网络地址转换(network address translation,NAT)方法,其中实现所述网络地址转换方法的设备包括控制板(11)、接口板(15)和带有多个CPU的业务板,其特征在于:所述设备的端口资源分配给所述业务板的多个CPU进行管理和分配;
所述业务板的第一CPU接收所述接口板(15)转发的用户驻地设备(301)发送的第一会话的第一报文;
根据网络地址转换策略确定第二CPU管理所述第一报文进行网络地址转换所需要的端口资源;
从所述第二CPU获得N个端口资源;
使用所述N个端口资源中的第一端口资源对所述第一报文进行网络地址转换得到转换后的报文;
将所述转换后的报文发送给所述接口板(15);
所述接口板(15)将所述转换后的报文发送到外部网络(5)。
11.如权利要求10所述的方法,其特征在于,进一步包括:
所述控制板(11)将所述端口资源广播到所述业务板的多个CPU;或者
所述控制板(11)将端口分配策略广播给所述业务板的多个CPU,其中所述端口分配策略用于将所述设备的端口资源分配给所述业务板的多个CPU,每个所述CPU负责管理所分配的端口资源。
12.如权利要求10所述的方法,其特征在于,所述接口板(15)根据所述第一报文的源IP地址将所述第一报文分配给所述业务板的所述第一CPU。
13.如权利要求10所述的方法,其特征在于,该方法进一步包括:当所述第一CPU接收到属于所述第一报文所在会话的第二报文时,所述第一CPU根据保存的会话表对所述第二报文进行处理,其中所述会话表是在所述第一报文完成网络地址转换后建立的。
14.如权利要求10所述的方法,其特征在于,该方法进一步包括:当所述第一CPU接收到所述用户驻地设备(301)发送的第二会话的第三报文时,其中所述第二会话是与所述第一会话不同的一个新会话,所述第一CPU使用N个端口资源中的第二端口资源对所述第三报文进行网络地址转换。
15.如权利要求10-14任一所述的方法,其特征在于,所述网络地址转换策略用于根据接收到的报文的特性确定对应的端口资源。
16.如权利要求10所述的方法,其特征在于,该方法进一步包括:
所述第一CPU接收第四报文;
根据所述网络地址转换策略确定所述第一CPU负责管理所述第四报文进行网络地址转换所需要的端口资源;
从第一CPU所管理的端口资源中为发送所述第四报文的用户驻地设备分配M个端口资源;
使用M个端口资源中的第一端口资源对所述第四报文进行网络地址转换。
17.如权利要求16所述的方法,其特征在于,所述第一CPU保存所述M个端口资源的使用状态,并定期更新所述M个端口资源的使用状态。
18.如权利要求10所述的方法,其特征在于,所述第二CPU存储所述N个端口资源的使用状态,并将所述N个端口资源的使用状态发送给所述第一CPU;
所述第一CPU定期更新所述N个端口资源的使用状态,并将所述更新的使用状态发送给所述第二CPU。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/086560 WO2015066840A1 (zh) | 2013-11-05 | 2013-11-05 | 一种网络地址转换设备及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103797774A true CN103797774A (zh) | 2014-05-14 |
CN103797774B CN103797774B (zh) | 2017-07-21 |
Family
ID=50671631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380002273.3A Active CN103797774B (zh) | 2013-11-05 | 2013-11-05 | 一种网络地址转换设备及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103797774B (zh) |
WO (1) | WO2015066840A1 (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104270396A (zh) * | 2014-10-24 | 2015-01-07 | 南京贝伦思网络科技有限公司 | 阻断设备多板卡acl规则的高速并发加载实现方法 |
CN104270394A (zh) * | 2014-10-24 | 2015-01-07 | 南京贝伦思网络科技有限公司 | 阻断设备的acl规则高速加载实现方法 |
CN104601738A (zh) * | 2014-12-09 | 2015-05-06 | 国家计算机网络与信息安全管理中心 | 一种分布式网络地址转换*** |
CN105939400A (zh) * | 2015-12-24 | 2016-09-14 | 杭州迪普科技有限公司 | 一种PPPoE地址分配方法及装置 |
CN106131244A (zh) * | 2016-08-29 | 2016-11-16 | 北京神州绿盟信息安全科技股份有限公司 | 一种报文传送方法及装置 |
WO2016183926A1 (zh) * | 2015-05-18 | 2016-11-24 | 中兴通讯股份有限公司 | 一种运营商级网络地址转换的方法及装置 |
WO2016192686A1 (zh) * | 2015-06-04 | 2016-12-08 | 杭州华三通信技术有限公司 | 数据报文转发 |
CN106326189A (zh) * | 2015-07-02 | 2017-01-11 | 杭州海康威视数字技术股份有限公司 | 处理器的控制方法和装置 |
CN106571944A (zh) * | 2015-10-10 | 2017-04-19 | 中兴通讯股份有限公司 | 用户侧设备、服务器、端口资源管理方法及*** |
CN103825976B (zh) * | 2014-03-04 | 2017-05-10 | 新华三技术有限公司 | 分布式***架构中的nat处理方法及装置 |
CN106878117A (zh) * | 2016-12-15 | 2017-06-20 | 新华三技术有限公司 | 一种数据处理方法及装置 |
CN107547508A (zh) * | 2017-06-29 | 2018-01-05 | 新华三信息安全技术有限公司 | 一种报文发送、接收方法、装置及网络设备 |
WO2018161632A1 (zh) * | 2017-03-09 | 2018-09-13 | 华为技术有限公司 | 分布式设备的容量更新方法及装置 |
WO2018166308A1 (zh) * | 2017-03-13 | 2018-09-20 | 中兴通讯股份有限公司 | 一种分布式nat双机热备份流量切换***和方法 |
CN108924272A (zh) * | 2018-06-26 | 2018-11-30 | 新华三信息安全技术有限公司 | 一种端口资源分配方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131048A (zh) * | 2019-12-31 | 2020-05-08 | 杭州迪普科技股份有限公司 | 网络流量转发方法、装置、电子设备及机器可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060185010A1 (en) * | 2000-03-03 | 2006-08-17 | Symantec Corporation | Network address translation gateway for local area networks using local IP addresses and non-translatable port addresses |
CN102739820A (zh) * | 2012-06-28 | 2012-10-17 | 杭州华三通信技术有限公司 | 报文的网络地址转换处理方法和网络设备 |
CN102821036A (zh) * | 2012-04-20 | 2012-12-12 | 杭州华三通信技术有限公司 | 一种实现报文转发的方法及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150502A (zh) * | 2007-10-22 | 2008-03-26 | 中兴通讯股份有限公司 | 一种nat-pt设备及其负荷分担方法 |
CN103152269B (zh) * | 2013-02-26 | 2016-03-02 | 杭州华三通信技术有限公司 | 一种基于nat的报文转发方法和设备 |
-
2013
- 2013-11-05 CN CN201380002273.3A patent/CN103797774B/zh active Active
- 2013-11-05 WO PCT/CN2013/086560 patent/WO2015066840A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060185010A1 (en) * | 2000-03-03 | 2006-08-17 | Symantec Corporation | Network address translation gateway for local area networks using local IP addresses and non-translatable port addresses |
CN102821036A (zh) * | 2012-04-20 | 2012-12-12 | 杭州华三通信技术有限公司 | 一种实现报文转发的方法及设备 |
CN102739820A (zh) * | 2012-06-28 | 2012-10-17 | 杭州华三通信技术有限公司 | 报文的网络地址转换处理方法和网络设备 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103825976B (zh) * | 2014-03-04 | 2017-05-10 | 新华三技术有限公司 | 分布式***架构中的nat处理方法及装置 |
CN104270394A (zh) * | 2014-10-24 | 2015-01-07 | 南京贝伦思网络科技有限公司 | 阻断设备的acl规则高速加载实现方法 |
CN104270396A (zh) * | 2014-10-24 | 2015-01-07 | 南京贝伦思网络科技有限公司 | 阻断设备多板卡acl规则的高速并发加载实现方法 |
CN104270394B (zh) * | 2014-10-24 | 2017-06-23 | 南京贝伦思网络科技股份有限公司 | 阻断设备的acl规则高速加载实现方法 |
CN104270396B (zh) * | 2014-10-24 | 2017-06-16 | 南京贝伦思网络科技股份有限公司 | 阻断设备多板卡acl规则的高速并发加载实现方法 |
CN104601738B (zh) * | 2014-12-09 | 2018-04-10 | 国家计算机网络与信息安全管理中心 | 一种分布式网络地址转换*** |
CN104601738A (zh) * | 2014-12-09 | 2015-05-06 | 国家计算机网络与信息安全管理中心 | 一种分布式网络地址转换*** |
CN106302841A (zh) * | 2015-05-18 | 2017-01-04 | 中兴通讯股份有限公司 | 一种运营商级网络地址转换的方法及装置 |
WO2016183926A1 (zh) * | 2015-05-18 | 2016-11-24 | 中兴通讯股份有限公司 | 一种运营商级网络地址转换的方法及装置 |
WO2016192686A1 (zh) * | 2015-06-04 | 2016-12-08 | 杭州华三通信技术有限公司 | 数据报文转发 |
US10333845B2 (en) | 2015-06-04 | 2019-06-25 | New H3C Technologies Co., Ltd | Forwarding data packets |
CN106326189A (zh) * | 2015-07-02 | 2017-01-11 | 杭州海康威视数字技术股份有限公司 | 处理器的控制方法和装置 |
CN106326189B (zh) * | 2015-07-02 | 2019-08-23 | 杭州海康威视数字技术股份有限公司 | 处理器的控制方法和装置 |
CN106571944A (zh) * | 2015-10-10 | 2017-04-19 | 中兴通讯股份有限公司 | 用户侧设备、服务器、端口资源管理方法及*** |
CN105939400A (zh) * | 2015-12-24 | 2016-09-14 | 杭州迪普科技有限公司 | 一种PPPoE地址分配方法及装置 |
CN105939400B (zh) * | 2015-12-24 | 2019-06-07 | 杭州迪普科技股份有限公司 | 一种PPPoE地址分配方法及装置 |
CN106131244A (zh) * | 2016-08-29 | 2016-11-16 | 北京神州绿盟信息安全科技股份有限公司 | 一种报文传送方法及装置 |
CN106878117A (zh) * | 2016-12-15 | 2017-06-20 | 新华三技术有限公司 | 一种数据处理方法及装置 |
WO2018161632A1 (zh) * | 2017-03-09 | 2018-09-13 | 华为技术有限公司 | 分布式设备的容量更新方法及装置 |
WO2018166308A1 (zh) * | 2017-03-13 | 2018-09-20 | 中兴通讯股份有限公司 | 一种分布式nat双机热备份流量切换***和方法 |
CN107547508A (zh) * | 2017-06-29 | 2018-01-05 | 新华三信息安全技术有限公司 | 一种报文发送、接收方法、装置及网络设备 |
CN107547508B (zh) * | 2017-06-29 | 2021-07-30 | 新华三信息安全技术有限公司 | 一种报文发送、接收方法、装置及网络设备 |
CN108924272A (zh) * | 2018-06-26 | 2018-11-30 | 新华三信息安全技术有限公司 | 一种端口资源分配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2015066840A1 (zh) | 2015-05-14 |
CN103797774B (zh) | 2017-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103797774A (zh) | 一种网络地址转换设备及方法 | |
CN110301104B (zh) | 一种光线路终端olt设备虚拟方法及相关设备 | |
CN100502413C (zh) | Dhcp中继为dhcp客户端请求ip地址的方法 | |
CN108924268B (zh) | 一种容器云服务***及pod创建方法、装置 | |
CN102387222B (zh) | 地址分配方法、装置及*** | |
WO2018019299A1 (zh) | 一种虚拟宽带接入方法、控制器和*** | |
CN112965824A (zh) | 报文的转发方法及装置、存储介质、电子设备 | |
US20150222480A1 (en) | Automatically generated virtual network elements for virtualized packet networks | |
CN101018159A (zh) | 多网关环境下负载均衡的方法及dhcp服务器 | |
WO2014114097A1 (zh) | 一种负载分担方法及装置 | |
CN109121026B (zh) | 一种基于逻辑端口实现volt的方法及*** | |
CN102594660A (zh) | 一种虚拟接***换方法、装置及*** | |
CN104954155B (zh) | 具有多个业务板的网络设备以及多业务板分担方法 | |
CN106576120A (zh) | 互联网协议地址分配方法及路由器 | |
CN114338397A (zh) | 云平台网络配置方法、装置、服务器、存储介质及*** | |
WO2018161795A1 (zh) | 一种路由优先级配置方法、设备以及控制器 | |
CN104301229A (zh) | 数据包转发方法、路由表生成方法及装置 | |
US9900804B2 (en) | Method and device for processing to share network resources, and method, device and system for sharing network resources | |
WO2015154458A1 (zh) | 一种节点逻辑id的分配装置、方法及通信*** | |
CN104104749A (zh) | 一种隧道ip地址的分配方法及装置 | |
CN104486453A (zh) | 一种老化时间的调整方法及装置 | |
CN107547247B (zh) | 智能弹性架构中的三层管理网ip地址分配方法和装置 | |
CN101808037A (zh) | 交换网中流量管理的方法和装置 | |
CN105357332B (zh) | 一种网络地址转换方法及装置 | |
CN104506668A (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 | ||
GR01 | Patent grant |