分布式系统架构中的nat处理方法及装置制造方法

文档序号:7798124阅读:292来源:国知局
分布式系统架构中的nat处理方法及装置制造方法
【专利摘要】本申请公开了一种分布式系统架构中的NAT处理方法及装置,其中,该方法中包括:接口板上的硬件可编程逻辑器件在接收到需要进行NAT的报文之后,从分流表中查找该报文对应的NAT类型、NAT地址映射表的索引和业务板索引;若查找到的业务板索引的值为空,则在查找到的NAT类型中包括的NAT方向是正向NAT时,从查找到的NAT地址映射表的索引所指示的NAT地址映射表中,为该报文获取NAT后的IP地址;并按照预定算法对该报文的相关信息进行运算,根据得到的运算值,从分布式映射表中查找到对应的业务板索引;将该报文、获取的NAT后的IP地址、以及查找到的NAT类型,发送给查找到的业务板索引所指示的业务板,以便该业务板上的硬件可编程逻辑器件对该报文进行地址转换。
【专利说明】分布式系统架构中的NAT处理方法及装置
【技术领域】
[0001]本申请涉及网络通信【技术领域】,特别涉及一种分布式系统架构中的NAT处理方法
及装置。
【背景技术】
[0002]NATCNetwork Address Translation,网络地址转换)是将 IP(Internet Protocol,因特网协议)数据报文的头部中的IP地址(源IP地址或目的IP地址)转换为另一个IP地址的过程。NAT的实现方式主要有一对一的NAT和多对一的NAT。一对一的NAT是指转换前的IP地址和转换后的IP地址——对应。而多对一的NAT是指多个不同的IP地址可以转换为同一 IP地址。
[0003]如图1所示,在内网和外网之间设置有NAT设备,内网中有主机A和主机B,两者的IP地址分别是192.168.1.2,192.168.1.3。主机A访问外网中的服务器时,会分别发出源地址为192.168.1.2的报文1,主机B访问该服务器时,会发出源地址为192.168.1.3的报文2。NAT设备接收到报文I和报文2时,会按照预定ACL规则,对报文I和报文2中的源IP地址进行NAT,都转换为了 IP地址20.1.1.1,并且改变了源端口。
[0004]为了提高性能和可靠性等,用于实现NAT的网络设备,例如,路由器、防火墙等,可以采用如图2所示的分布式系统架构,在这种分布式系统架构中包括:控制板、至少一个接口板和多个业务板。此时,在如图2所示的分布式系统架构中时,需要采用分布式处理方式实现NAT,即,多个业务板各自独立地并行进行NAT处理。但是,在现有技术实现NAT分布式处理时,是通过软件来实现的,软件的处理速度会受到软件代码、以及CPU (中央处理器)软件的处理性能等的限制,因此,软件的处理速度较慢,使得现有的NAT分布式处理性能较差。

【发明内容】

[0005]本申请提供了一种分布式系统架构中的NAT处理方法及装置,旨在解决现有技术中存在的NAT处理性能较差的问题。
[0006]本申请的技术方案如下:
[0007]—方面,提供了一种分布式系统架构中的NAT处理方法,分布式系统架构中包括:接口板和至少两个业务板,该方法包括:
[0008]接口板上的硬件可编程逻辑器件在接收到需要进行NAT的报文之后,从分流表中查找该报文对应的NAT类型、NAT地址映射表的索引和业务板索引;其中,NAT类型中包括:NAT方向和需要转换的IP地址类型;
[0009]若查找到的业务板索引的值为空,则在查找到的NAT类型中包括的NAT方向是正向NAT时,接口板上的硬件可编程逻辑器件从查找到的NAT地址映射表的索引所指示的NAT地址映射表中,为该报文获取NAT后的IP地址;并按照预定算法对该报文的相关信息进行运算,根据得到的运算值,从分布式映射表中查找到对应的业务板索引;其中,分流表、NAT地址映射表和分布式映射表保存在接口板上的硬件可编程逻辑器件中;
[0010]接口板上的硬件可编程逻辑器件将该报文、获取的NAT后的IP地址、以及查找到的NAT类型,发送给查找到的业务板索引所指示的业务板,以便该业务板上的硬件可编程逻辑器件根据获取的NAT后的IP地址、以及该NAT类型对该报文进行地址转换。
[0011]另一方面,还提供了一种分布式系统架构中的NAT处理装置,分布式系统架构中包括:接口板和至少两个业务板,该装置应用于接口板上的硬件可编程逻辑器件,该装置包括:
[0012]接收模块,用于接收需要进行NAT的报文;
[0013]确定模块,用于在接收到需要进行NAT的报文之后,从分流表中查找该报文对应的NAT类型、NAT地址映射表的索引和业务板索引;其中,NAT类型中包括:NAT方向和需要转换的IP地址类型;
[0014]获取模块,用于若确定模块查找到的业务板索引的值为空,则在确定模块查找到的NAT类型中包括的NAT方向是正向NAT时,从确定模块查找到的NAT地址映射表的索引所指示的NAT地址映射表中,为该报文获取NAT后的IP地址;
[0015]运算模块,用于在获取模块获取到NAT后的IP地址之后,按照预定算法对该报文的相关信息进行运算;
[0016]查找模块,用于根据运算模块得到的运算值,从分布式映射表中查找到对应的业务板索引;
[0017]发送模块,用于若确定模块查找到的业务板索引的值为空,则在确定模块查找到的NAT类型中包括的NAT方向是正向NAT时,将接收模块接收到的报文、获取模块获取的NAT后的IP地址、以及确定模块查找到的NAT类型,发送给查找模块查找到的业务板索引所指示的业务板,以便该业务板上的硬件可编程逻辑器件根据获取的NAT后的IP地址、以及该NAT类型对该报文进行地址转换;
[0018]保存模块,用于保存分流表、NAT地址映射表和分布式映射表。
[0019]本申请的以上技术方案中,在分布式系统架构中,在接口板和业务板上设置硬件可编程逻辑器件,通过这些硬件可编程逻辑器件共同实现NAT的分布式处理,由于硬件的处理速度比软件快很多,而且,硬件要处理的任务单一,具有更高的处理性能,因此,提高了分布式系统的NAT处理能力,能够满足对NAT处理性能的更高需求。
【专利附图】

【附图说明】
[0020]图1是实现NAT的网络示意图;
[0021]图2是分布式系统架构的结构示意图;
[0022]图3是本申请一实施例的分布式系统架构中的NAT处理方法的流程图;
[0023]图4是本申请一实施例的根据运算值获取对应的业务板索引的方法的流程图;
[0024]图5是本申请另一实施例的分布式系统架构中的NAT处理方法的具体处理流程图;
[0025]图6是本申请又一实施例的分布式系统架构中的NAT处理装置的结构示意图。【具体实施方式】[0026]为了解决现有技术中存在的NAT处理性能较差的问题,本申请以下实施例中提供了一种分布式系统架构中的NAT处理方法,以及一种可以应用该方法的装置。
[0027]本申请以下实施例的方法及装置,可以应用于如图2所示的分布式系统架构中。其中,每一个接口板和每一个业务板中均设置有硬件可编程逻辑器件,用于共同实现NAT处理。在实际实施过程中,硬件可编程逻辑器件例如可以是FPGA (Field ProgrammableGate Array,现场可编程门阵列)、CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)、ASIC (Application Specific Integrated Circuit,专用集成电路)芯片等,本申请对此不做限定。
[0028]本申请一具体实施例中,分布式系统架构中的NAT处理方法由接口板上的硬件可编程逻辑器件来执行。如图3所示,该方法中包括以下步骤:
[0029]步骤S102,接口板上的硬件可编程逻辑器件在接收到需要进行NAT的报文之后,从分流表中查找该报文对应的NAT类型、NAT地址映射表的索引和业务板索引;其中,NAT类型中包括:NAT方向和需要转换的IP地址类型;之后执行步骤S104 ;
[0030]接口板上的端口接收到报文后,将该报文发送给接口板上的硬件可编程逻辑器件,之后该硬件可编程逻辑器件会执行步骤S102。接口板上的硬件可编程逻辑器件上预先保存有如表1-1所示的分流表,该分流表根据用户配置的NAT规则进行创建,预先创建该分流表的过程如下:预先在接口板上的硬件可编程逻辑器件中创建如表1-1所示的分流表,其中,该分流表的每一个表项中包含有:转换前的IP地址、包括正向NAT和需要转换的IP地址类型的NAT类型、转换后的IP地址所在的NAT地址映射表的索引、与业务板索引之间的对应关系,该业务板索引的值为空。
[0031]这样,在步骤S102中,接口板上的硬件可编程逻辑器件会根据该报文的源IP地址或目的IP地址,从分流表中查找到对应的NAT类型、NAT地址映射表的索引和业务板索引。
[0032]其中,NAT类型中包括:NAT方向和需要转换的IP地址类型,NAT方向是正向NAT或反向NAT,需要转换的IP地址类型是源IP地址或目的IP地址。关于正向NAT和反向NAT的定义是:首次匹配NAT规则时执行的NAT为正向NAT,执行正向NAT的报文为正向报文;正向报文的回应报文是反向报文,反向报文执行的NAT为反向MT。
[0033]可见,在初始创建的分流表中会记录有每一个正向报文的转换前的源或目的IP地址、该正向报文需要执行的NAT的NAT类型:正向NAT和需要转换的IP地址类型、NAT地址映射表的索弓1、以及业务板索弓I,该NAT地址映射表的索弓I是该正向报文的转换后的源或目的IP地址所在的NAT地址映射表的索引。
[0034]表1-1
[0035]
【权利要求】
1.一种分布式系统架构中的网络地址转换NAT处理方法,所述分布式系统架构中包括:接口板和至少两个业务板,其特征在于,所述方法包括: 接口板上的硬件可编程逻辑器件在接收到需要进行NAT的报文之后,从分流表中查找该报文对应的NAT类型、NAT地址映射表的索引和业务板索引;其中,NAT类型中包括:NAT方向和需要转换的IP地址类型; 若查找到的业务板索引的值为空,则在查找到的NAT类型中包括的NAT方向是正向NAT时,接口板上的硬件可编程逻辑器件从查找到的NAT地址映射表的索引所指示的NAT地址映射表中,为该报文获取NAT后的因特网协议IP地址;并按照预定算法对该报文的相关信息进行运算,根据得到的运算值,从分布式映射表中查找到对应的业务板索引;其中,所述分流表、所述NAT地址映射表和所述分布式映射表保存在所述接口板上的硬件可编程逻辑器件中; 接口板上的硬件可编程逻辑器件将该报文、获取的NAT后的IP地址、以及查找到的NAT类型,发送给查找到的业务板索引所指示的业务板,以便该业务板上的硬件可编程逻辑器件根据所述获取的NAT后的IP地址、以及该NAT类型对该报文进行地址转换。
2.根据权利要求1所述的方法,其特征在于,所述NAT地址映射表中包括:地址指针和N个IP地址,所述地址指针用于指示当前要选择的IP地址的索引,N为正整数;则,从查找到的NAT地址映射表的索引所指示的NAT地址映射表中,为该报文获取NAT后的IP地址的方法包括: 从该NAT地址映射表中,获取地址指针的当前值η ; 根据该当前值η,从该NAT地址映射表中查找到对应的IP地址,作为为该报文获取的NAT后的IP地址;` 将地址指针的当前值η更新为(η+1)%Ν,其中,η = 1,2,...,N,%为取模运算符。
3.根据权利要求1所述的方法,其特征在于,在查找该报文对应的NAT类型、NAT地址映射表的索引和业务板索引之后,还包括: 若查找到的业务板索引的值为空,则在查找到的NAT类型中包括的NAT方向是反向NAT时,接口板上的硬件可编程逻辑器件按照所述预定算法对该报文的相关信息进行运算,根据得到的运算值,从所述分布式映射表中查找到对应的业务板索引; 接口板上的硬件可编程逻辑器件将该报文发送给查找到的业务板索引所指示的业务板,以便该业务板上的硬件可编程逻辑器件对该报文进行地址转换。
4.根据权利要求3所述的方法,其特征在于,所述按照预定算法对该报文的相关信息进行运算的方法包括: 在查找到的NAT类型中包括的NAT方向是正向NAT,且该NAT类型中包括的需要转换的IP地址类型是源IP地址时,根据所述预定算法对该报文的第一相关信息进行运算; 在查找到的NAT类型中包括的NAT方向是反向NAT,且该NAT类型中包括的需要转换的IP地址类型是目的IP地址时,根据所述预定算法对该报文的第二相关信息进行运算; 其中,当第一相关信息中包括:获取的NAT后的IP地址,该报文的目的IP地址和目的端口标识时,第二相关信息中包括:该报文的目的IP地址、源IP地址、源端口标识; 当第一相关信息中包括:获取的NAT后的IP地址,该报文的目的IP地址、目的端口标识和协议号时,第二相关信息中包括:该报文的目的IP地址、源IP地址、源端口标识和协议号。
5.根据权利要求3所述的方法,其特征在于,所述按照预定算法对该报文的相关信息进行运算的方法包括: 在查找到的NAT类型中包括的NAT方向是正向NAT,且该NAT类型中包括的需要转换的IP地址类型是目的IP地址时,根据所述预定算法对该报文的第三相关信息进行运算; 在查找到的NAT类型中包括的NAT方向是反向NAT,且该NAT类型中包括的需要转换的IP地址类型是源IP地址时,根据所述预定算法对该报文的第四相关信息进行运算; 其中,当第三相关信息中包括:获取的NAT后的IP地址,该报文的源IP地址、源端口标识时,第四相关信息中包括:该报文的源IP地址、目的IP地址、目的端口标识; 当第三相关信息中包括:获取的NAT后的IP地址,该报文的源IP地址、源端口标识和协议号时,第四相关信息中包括:该报文的源IP地址、目的IP地址、目的端口标识和协议号。
6.根据权利要求3、4或5所述的方法,其特征在于,所述根据得到的运算值,从分布式映射表中查找到对应的业务板索引的方法包括: 从所述分布式映射表中查找到与该运算值对应的表项,其中,所述分布式映射表的每一个表项中包括:业务板索引; 判断查找到的表项中包括的业务板索引的值是否为空; 若不为空,则获取所述查找到的表项中的业务板索引的值; 若为空,则获取本地保存的选择变量m,将所述查找到的表项中的业务板索引的值设置为(m+l)%M,获取该业务板索引的值(m+l)%M,将该选择变量m更新为m+1 ;其中,M为业务板总数,m = 1,2,...,%为取模运算符。
7.根据权利要求3所述的方法,其特征在于,在从分布式映射表中查找到对应的业务板索引之后,还包括:将所述分流表中与该报文对应的为空的业务板索引,更新为从所述分布式映射表中查找到的业务板索引的值; 在查找该报文对应的NAT类型、NAT地址映射表的索引和业务板索引之后,还包括:若查找到的业务板索引的值不为空,则接口板上的硬件可编程逻辑器件将该报文发送给查找到的业务板索引所指示的业务板,以便该业务板上的硬件可编程逻辑器件对该报文进行地址转换。
8.根据权利要求7所述的方法,其特征在于,所述根据所述获取的NAT后的IP地址、以及该NAT类型对该报文进行地址转换的方法包括:当该NAT类型中包括的需要转换的IP地址类型是源IP地址时,将该报文的源IP地址转换为所述获取的NAT后的IP地址,将转换前的五元组信息与转换后的五元组信息之间的对应关系记录到NAT地址转换表中;当该NAT类型中包括的需要转换的IP地址类型是目的IP地址时,将该报文的目的IP地址转换为所述获取的NAT后的IP地址,将转换前的五元组信息与转换后的五元组信息之间的对应关系记录到NAT地址转换表中; 所述对该报文进行地址转换的方法包括:根据该报文的五元组信息从所述NAT地址转换表中查找到对应的五元组信息,将该报文的五元组信息转换为查找到的五元组信息。
9.根据权利要求1所述的方法,其特征在于,在接收到需要进行NAT的报文之前,还包括:预先在所述接口板上的硬 件可编程逻辑器件中创建所述分流表,其中,所述分流表的每一个表项中包含有:转换前的IP地址、包括正向NAT和需要转换的IP地址类型的NAT类型、转换后的IP地址所在的NAT地址映射表的索引、与业务板索引之间的对应关系,该业务板索引的值为空; 在为该报文获取到NAT后的IP地址之后,还包括:在所述分流表中添加一表项,添加的表项中包含有:所述获取的NAT后的IP地址、包括反向NAT和需要转换的IP地址类型的NAT类型、NAT地址映射表的索引、与业务板索引之间的对应关系;其中,当所述查找到的NAT类型中包括的需要转换的IP地址类型是源IP地址时,所述添加的表项中的需要转换的IP地址类型是目的IP地址,当所述查找到的NAT类型中包括的需要转换的IP地址类型是目的IP地址时,所述添加的表项中的需要转换的IP地址类型是源IP地址;所述添加的表项中的NAT地址映射表的索引和业务板索引的值为空。
10.一种分布式系统架构中的网络地址转换NAT处理装置,所述分布式系统架构中包括:接口板和至少两个业务板,其特征在于,所述装置应用于接口板上的硬件可编程逻辑器件,所述装置包括: 接收模块,用于接收需要进行NAT的报文; 确定模块,用于在所述接收模块接收到需要进行NAT的报文之后,从分流表中查找该报文对应的NAT类型、NAT地址映射表的索引和业务板索引;其中,NAT类型中包括:NAT方向和需要转换的IP地址类型; 获取模块,用于若所述确定模块查找到的业务板索引的值为空,则在所述确定模块查找到的NAT 类型中包括的NAT方向是正向NAT时,从所述确定模块查找到的NAT地址映射表的索引所指示的NAT地址映射表中,为该报文获取NAT后的因特网协议IP地址; 运算模块,用于在所述获取模块获取到NAT后的IP地址之后,按照预定算法对该报文的相关信息进行运算; 查找模块,用于根据所述运算模块得到的运算值,从分布式映射表中查找到对应的业务板索引; 发送模块,用于若所述确定模块查找到的业务板索引的值为空,则在所述确定模块查找到的NAT类型中包括的NAT方向是正向NAT时,将所述接收模块接收到的报文、所述获取模块获取的NAT后的IP地址、以及所述确定模块查找到的NAT类型,发送给所述查找模块查找到的业务板索引所指示的业务板,以便该业务板上的硬件可编程逻辑器件根据所述获取的NAT后的IP地址、以及该NAT类型对该报文进行地址转换; 保存模块,用于保存所述分流表、所述NAT地址映射表和所述分布式映射表。
11.根据权利要求10所述的装置,其特征在于,NAT地址映射表中包括:地址指针和N个IP地址,所述地址指针用于指示当前要选择的IP地址的索引,N为正整数;则,所述获取丰吴块中包括: 地址指针获取单元,用于从所述确定模块确定出的索引所指示的NAT地址映射表中,获取地址指针的当前值η; IP地址查找单元,用于根据所述地址指针获取单元获取到的当前值η,从该NAT地址映射表中查找到对应的IP地址,作为为该报文获取的NAT后的IP地址; 指针更新单元,用于将该NAT地址映射表中的地址指针的当前值η更新为(η+1)%Ν,其中,η = 1,2,...,N,%为取模运算符。
12.根据权利要求10所述的装置,其特征在于, 所述运算模块,还用于若所述确定模块查找到的业务板索引的值为空,则在所述确定模块查找到的NAT类型中包括的NAT方向是反向NAT时,按照所述预定算法对该报文的相关信息进行运算; 所述发送模块,还用于若所述确定模块查找到的业务板索引的值为空,则在所述确定模块查找到的NAT类型中包括的NAT方向是反向NAT时,将所述接收模块接收到的报文发送给所述查找模块查找到的业务板索引所指示的业务板,以便该业务板上的硬件可编程逻辑器件对该报文进行地址转换。
13.根据权利要求12所述的装置,其特征在于,所述运算模块中包括: 第一运算单元,用于当所述确定模块查找到的NAT类型中包括的NAT方向是正向NAT,且该NAT类型中包括的需要转换的IP地址类型是源IP地址时,根据所述预定算法对该报文的第一相关信息进行运算; 第二运算单元,用于当所述确定模块查找到的NAT类型中包括的NAT方向是反向NAT,且该NAT类型中包括的需要转换的IP地址类型是目的IP地址时,根据所述预定算法对该报文的第二相关信息进行运算; 其中,当第一相关信息中包括:获取的NAT后的IP地址,该报文的目的IP地址和目的端口标识时,第二相关信息中包括:该报文的目的IP地址、源IP地址、源端口标识; 当第一相关信息中包括:获取的NAT后的IP地址,该报文的目的IP地址、目的端口标识和协议号时,第二相关信息中包括:该报文的目的IP地址、源IP地址、源端口标识和协议号。
14.根据权利要求12所述的装置,其特征在于,所述运算模块中包括: 第三运算单元,用于当所述确定模块查找到的NAT类型中包括的NAT方向是正向NAT,且该NAT类型中包括的需要转换的IP地址类型是目的IP地址时,根据所述预定算法对该报文的第三相关信息进行运算; 第四运算单元,用于当所述确定模块查找到的NAT类型中包括的NAT方向是反向NAT,且该NAT类型中包括的需要转换的IP地址类型是源IP地址时,根据所述预定算法对该报文的第四相关信息进行运算; 其中,当第三相关信息中包括:获取的NAT后的IP地址,该报文的源IP地址、源端口标识时,第四相关信息中包括:该报文的源IP地址、目的IP地址、目的端口标识; 当第三相关信息中包括:获取的NAT后的IP地址,该报文的源IP地址、源端口标识和协议号时,第四相关信息中包括:该报文的源IP地址、目的IP地址、目的端口标识和协议号。
15.根据权利要求12、13或14所述的装置,其特征在于,所述查找模块中包括: 表项查找单元,用于从所述分布式映射表中查找到与该运算值对应的表项,其中,所述分布式映射表的每一个表项中包括:业务板索引; 判断单元,用于判断所述表项查找单元查找到的表项中包括的业务板索引的值是否为空; 索引值获取单元,用于若所述判断单元的判断结果是不为空,则获取所述表项查找单元查找到的表项中的业务板索引的 值;还用于若所述判断单元的判断结果是为空,则获取本地保存的选择变量m,将所述表项查找单元查找到的表项中的业务板索引的值设置为(m+1) %M,获取该业务板索引的值(m+1) %M,将该选择变量m更新为m+1 ;其中,M为业务板总数,m= 1,2,...,%为取模运算符。
16.根据权利要求12所述的方法,其特征在于,还包括:分流表更新模块,其中:所述分流表更新模块,用于在所述查找模块从分布式映射表中查找到对应的业务板索引之后,将所述分流表中与该报文对应的为空的业务板索引,更新为从所述分布式映射表中查找到的业务板索引的值; 所述发送模块,还用于若所述确定模块查找到的业务板索引的值不为空,则将所述接收模块接收到的报文发送给所述确定模块查找到的业务板索引所指示的业务板,以便该业务板上的硬件可编程逻辑器件对该报文进行地址转换。
【文档编号】H04L29/08GK103825976SQ201410076425
【公开日】2014年5月28日 申请日期:2014年3月4日 优先权日:2014年3月4日
【发明者】岳炳词 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1