报文处理方法及装置制造方法

文档序号:7779612阅读:161来源:国知局
报文处理方法及装置制造方法
【专利摘要】本发明提供一种报文处理方法及装置,应用于包括多个处理器核的多核路由系统,每个处理器核通过流平台转发报文,该方法包括:第一处理器核通过流平台的输入业务建立数据报文的正向流;通过网络地址转换业务在公网地址池中确定预分配给数据报文的公网地址、公网端口,确定流平台上保存的流表中不存在数据报文的反向流;对流平台上保存的流表进行加锁,建立数据报文的反向伪流,并将反向伪流保存至流表中,对流表进行解锁,以使多核系统中除第一处理器核外的其它处理器核无法分配公网地址和公网端口;通过流平台的输出业务建立数据报文的反向流,反向伪流在反向流建立后老化。
【专利说明】报文处理方法及装置
【技术领域】
[0001 ] 本发明实施例涉及通信技术,尤其涉及一种报文处理方法及装置。
【背景技术】
[0002]网络地址转换(Network Address Translation,简称NAT)技术是将IP数据包头中的IP地址转换为另一个IP地址的过程。
[0003]在现有技术中,NAT技术包括互联网协议版本(Internet Protocol version,简称:IPv) 4/IPv4的转换和IPv6/IPv4的转换,主要应用于单核路由系统。其中,IPv4/IPv4的转换过程,是将IPv4数据报文的源IPv4地址翻译成公网IPv4地址。IPv6/IPv4的转换过程中,将IPv6数据报文的源地址翻译成公网IPv4地址,将IPv6数据报文的目的地址翻译成IPv4数据报的目的地址。在进行地址转换之后,最终IPv4数据报文或IPv6数据报文以公网IPv4地址作为出口,发送给目的主机。
[0004]然而,现有技术中仅给出了单核路由系统进行网络地址转换技术的实现方式,并未给出多核路由系统如何实现网络地址转换技术。

【发明内容】

[0005]本发明实施例提供一种报文处理方法及装置,以实现多核路由系统的网络地址转换技术。
[0006]第一方面,本发明提供一种报文处理方法,应用于多核路由系统,所述多核路由系统包括多个处理器核,每个处理器核通过流平台转发报文,包括:
[0007]第一处理器核通过所述流平台的输入业务建立数据报文的源地址、源端口至目的地址、目的端口的正向流,所述第一处理器核为所述多个处理器核中的任一处理器核;
[0008]所述第一处理器核通过网络地址转换业务在公网地址池中确定预分配给所述数据报文的公网地址、公网端口,确定流平台上保存的流表中不存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流;
[0009]所述第一处理器核对流平台上保存的流表进行加锁,建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向伪流,并将所述反向伪流保存至所述流表中,对所述流表进行解锁,以使所述多核系统中除所述第一处理器核外的其它处理器核无法分配所述公网地址和所述公网端口;
[0010]所述第一处理器核通过所述流平台的输出业务建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流并保存至所述流表中,所述反向伪流在所述反向流表保存至所述流表中后老化。
[0011]第二方面,本发明提供一种报文处理装置,应用于多核路由系统,所述多核路由系统包括多个处理器核,每个处理器核通过流平台转发报文,所述报文处理装置集成在各处理器核上,包括:
[0012]第一建流模块,用于通过所述流平台的输入业务建立数据报文的源地址、源端口至目的地址、目的端口的正向流;
[0013]判断模块,用于通过网络地址转换业务在公网地址池中确定预分配给所述数据报文的公网地址、公网端口,确定流平台上保存的流表中不存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流;
[0014]处理模块,用于对流平台上保存的流表进行加锁,建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向伪流,并将所述反向伪流保存至所述流表中,对所述流表进行解锁,以使所述多核系统中除所述第一处理器核外的其它处理器核无法分配所述公网地址和所述公网端口;
[0015]第二建流模块,用于通过所述流平台的输出业务建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流并保存至所述流表中,所述反向伪流在所述反向流表保存至所述流表中后老化。
[0016]本发明实施例提供的报文处理方法及装置,第一处理器核通过所述流平台的输入业务建立数据报文的源地址、源端口至目的地址、目的端口的正向流,所述第一处理器核为所述多个处理器核中的任一处理器核;所述第一处理器核通过网络地址转换业务在公网地址池中确定预分配给所述数据报文的公网地址、公网端口,确定流平台上保存的流表中不存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流;所述第一处理器核对流平台上保存的流表进行加锁,建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向伪流,并将所述反向伪流保存至所述流表中,对所述流表进行解锁,以使所述多核系统中除所述第一处理器核外的其它处理器核无法分配所述公网地址和所述公网端口 ;所述第一处理器核通过所述流平台的输出业务建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流并保存至所述流表中,所述反向伪流在所述反向流表保存至所述流表中后老化,不仅实现了多核路由系统的网络地址转换,还避免了各核之间的地址冲突问题。
【专利附图】

【附图说明】
[0017]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0018]图1为本发明报文处理方法实施例一的流程示意图;
[0019]图2为本发明实施例流转发示意图;
[0020]图3为本发明报文处理方法的地址申请示意图;
[0021]图4为本发明实施例提供的报文处理装置实施例一的结构示意图。
【具体实施方式】
[0022]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0023]图1为本发明报文处理方法实施例一的流程示意图。本发明实施例提供的报文处理方法可以由任意的报文处理装置实现。该报文处理装置可以由任意的软件和/或硬件实现。本发明实施例提供的报文处理方法包括:
[0024]步骤101、第一处理器核通过所述流平台的输入业务建立数据报文的源地址、源端口至目的地址、目的端口的正向流;
[0025]步骤102、所述第一处理器核通过网络地址转换业务在公网地址池中确定预分配给所述数据报文的公网地址、公网端口,确定流平台上保存的流表中不存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流;
[0026]步骤103、所述第一处理器核对流平台上保存的流表进行加锁,建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向伪流,并将所述反向伪流保存至所述流表中,对所述流表进行解锁,以使所述多核系统中除所述第一处理器核外的其它处理器核无法分配所述公网地址和所述公网端口;
[0027]步骤104、所述第一处理器核通过所述流平台的输出业务建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流并保存至所述流表中,所述反向伪流在所述反向流表保存至所述流表中后老化。
[0028]在具体实现过程中,本发明提供的报文处理方法应用于多核路由系统,其中,多核路由系统包括多个处理器核,每个处理器核都可以接收报文,并通过流平台转发报文。
[0029]其中,流平台为多核路由系统中平台性质的基础业务,是一种通用的工作在三层的一种转发平台,一个数据包可以根据其五元组(源地址、源端口、目的地址、目的端口和协议号)信息来抽象为一条流;五元组不完全相同,就表示为不同的流。
[0030]在具体实现过程中,图2为本发明实施例流转发示意图。如图2所示,流平台获取报文,对报文进行流识别/流分类,流识别是按报文的五元组来进行识别的,负责快速地识别到来的数据包是否属于一个已经存在的流。流分类是根据报文的协议号对报文流进行分类。流平台的输入业务根据五元组信息,构造正向流,并将正向流添加到流表中,然后对报文进行路由转发,当对报文进行修改,如在路由转发后对报文源地址进行修改时,流平台的输出业务负责提取反向流信息,构造反向流,并在流表中添加反向流,最后对报文进行链路封装,进行转发。当流平台获取的报文为该报文的非首包报文时,可不通过输入业务、路由转发、输出业务,可直接通过流转发业务,进行链路封装和转发。
[0031]属于同一条流的所有数据报文的源、目的IP地址是相同的,因此可以沿着相同的路径转发,同一条流只需要对首报文进行路由,并将路由的结果记录在流表中,后续报文直接根据记录的结果进行转发,无需再进行输入业务,路由转发以及输出业务。
[0032]网络地址转换(Network Address Translation,简称NAT)是一个IP业务模块。其中,IPv4/IPv4对应的NAT技术称为NAT,IPv6/IPv4对应的NAT技术称为NAT64,流平台是IP业务层通用的基础业务模块,由于一个数据包可以抽象为一条流,由五元组信息来识别;NAT/NAT64业务是进行地址转换的,而五元组信息中就包括地址、端口和协议信息,数据包在进行NAT/NAT64业务处理之前,可以先建立正向流,然后进行NAT/NAT64业务,再建立反向流。
[0033]在本实施例中,图3为本发明报文处理方法的地址申请示意图。假设多核处理器系统中包括四个处理器核,分别为第一处理器核Cl,第二处理器核C2,第三处理器核C3,第四处理器核C4。
[0034]首先,针对第一处理器核Cl,对本发明的报文处理方法进行详细说明。在具体实现过程中,第一处理器核Cl接收IPv4/IPv6报文,根据数据报文的类型不同,处理方式略有不同。首先以数据报文为IPv4报文为例,进行说明。
[0035]对于IPv4报文而言,第一处理器核Cl获取所述IPv4报文的五元组信息,所述五元组信息包括所述IPv4报文的源地址192.168.1.1、源端口 3000、目的地址125.2.2.1、目的端口 5000及协议号IPv4。
[0036]在步骤101中,第一处理器核通过流平台的输入业务建立IPv4报文的源地址、源端口至目的地址、目的端口的正向流(192.168.1.1, 3000------ 125.2.2.1, 5000 ;IPv4)。
[0037]在步骤102中,所述第一处理器核通过网络地址转换业务在IPv4公网地址池(1.1.1.1~1.1.1.20)中确定预分配给所述IPv4报文的源地址、源端口对应的公网地址、公网端口,确定流平台上保存的流表中不存在所述IPv4报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流。
[0038]具体地,所述第一处理器核确定所述流平台上保存的流表中是否存在所述IPv4报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流;
[0039]若否,则所述第一处理器核确定流平台上保存的流表中不存在所述IPv4报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流;[0040]若是,则所述第一处理器核通过网络地址转换业务在公网地址池中确定其它预分配给所述IPv4报文的公网地址、公网端口,直至确定流平台上保存的流表中不存在所述IPv4报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流,例如,若在流表中查找到该流,说明该流已经存在,此公网地址、公网端口不能被分配,需要重新从公网地址池中选择其它地址和端口再次进行上述操作;直到分配成功为止。
[0041 ] 在本实施例中,假设预分配给所述IPv4报文的公网地址、公网端口为
1.1.1.10,2500,所述IPv4报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流为(125.2.2.1, 5000------ 1.1.1.10,2500 ;IPv4)。
[0042]在步骤103中,当处理器核需要建立反向伪流,对流表进行操作时,第一处理器核Cl对流平台上保存的流表进行加锁,建立所述IPv4报文的目的地址、目的端口至所述公网
地址、所述公网端口的反向伪流(125.2.2.1, 5000------ 1.1.1.10,2500 ;IPv4),当第一处
理器核Cl将反向伪流保存至流表中后,对流表进行解锁。在第一处理器核Cl对流表解锁之前,其它处理器核C2、C3、C4,无法对该流表进行操作。由于第一处理器核Cl对流表进行了加锁,其它处理器核C2、C3、C4无法使用流表,即无法确定流平台上保存的流表中不存在所述IPv4报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流,从而其它处理器核C2、C3、C4不能进行地址申请分配的过程,最终,多核系统中除所述第一处理器核外的其它处理器核无法分配所述公网地址和所述公网端口。
[0043]在步骤104中,第一处理器核通过所述流平台的输出业务建立所述IPv4报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流,并保存在所述流表中,所述反向伪流在所述反向流表保存至所述流表中后老化。
[0044]具体地,第一处理器核Cl通过所述流平台的输出业务建立所述IPv4报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流,(125.2.2.1, 5000-----^l.1.1.10,2500 ;IPv4)。在反向流建立成功后,反向伪流老化。
[0045]本领域技术人员可以理解,反向伪流和反向流在流表中所表现的数据形式是相同的,但是物里含义不同。反向流是在流平台的输出业务上建立的,而反向伪流并没有在流平台上建立。反向流是通过流平台建立的真正的流,反向伪流仅仅是建立数据报文的目的地址、目的端口至所述公网地址、所述公网端口的一种数据形式。
[0046]为了不影响其它处理器核对流表的操作,第一处理器核对流表的加锁时间很短,在加锁至解锁之间的锁定时间内,IPv4报文还未进入到流平台的输出业务,或者输出业务还未建立反向流,此时建立反向伪流,将反向伪流保存在流表中,保证了在解锁后的时间,其它处理器核可以对该流表进行操作,但是,由于反向伪流的存在,其它处理器核查找到该反向伪流时,无法对该反向伪流对应的公网地址和公网端口进行预分配,当流平台的输出业务建立反向流,并将反向流保存至流表中以后,反向伪流老化,从而避免了处理器核之间在申请地址时出现冲突。
[0047]下面以数据报文为IPv6报文进行详细说明。
[0048]对于IPv6报文而言,第一处理器核Cl获取所述IPv6报文的五元组信息,所述五元组信息包括所述IPv6报文的源地址3000:: 1、源端口 3000、目的地址2001: da8::7d02:201、目的端口 5000及协议号IPv6。第一处理器核Cl将IPv6报文的目的地址、目的端口转换为IPv4报文的目的地址、目的端口。具体地,对IPv6报文的目的地址的最后32位进行提取,得到IPv4报文的目的地址125.2.2.1。
[0049]在步骤101中,第一处理器核通过流平台的输入业务建立IPv6报文的源地址、源
端口至目的地址、目的端口的正向流(3000::1,3000------ 2001: da8::7d02:201, 5000 ;
IPv6)ο
[0050]在步骤102中,所述第一处理器核通过网络地址转换业务在IPv4公网地址池(1.1.1.1~1.1.1.20)中确定预分配给所述IPv6报文的源地址、源端口对应的公网地址、公网端口,确定流平台上保存的流表中不存在IPv4报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流。其中,IPv4报文的目的地址、目的端口为IPv6报文的目的地址、目的端口转换得到的。
[0051]具体地,第一处理器核确定所述流平台上保存的流表中是否存在IPv4报文的目的地址、目的端口至公网地址、公网端口的反向流;
[0052]若否,则第一处理器核确定流平台上保存的流表中不存在IPv4报文的目的地址、目的端口至公网地址、公网端口的反向流;
[0053]若是,则第一处理器核通过网络地址转换业务在IPv4公网地址池中确定其它预分配给IPv6报文的公网地址、公网端口,直至确定流平台上保存的流表中不存在IPv4报文的目的地址、目的端口至公网地址、公网端口的反向流,例如,若在流表中查找到该流,说明该流已经存在,此公网地址、公网端口不能被分配,需要重新从公网地址池中选择其它地址和端口再次进行上述操作;直到分配成功为止。
[0054]在本实施例中,假设预分配给所述IPv6报文的公网地址、公网端口为
1.1.1.10,2500,将IPv6报文的目的地址转换后,得到IPv4的目的地址为125.2.2.1,5000。
[0055]IPv6报文的目的地址、目的端口至公网地址、公网端口的反向流为(125.2.2.1, 5000------ 1.1.1.10,2500 ;IPv6)。[0056]在步骤103中,当处理器核需要建立反向伪流,对流表进行操作时,第一处理器核Cl对流平台上保存的流表进行加锁,建立IPv6报文的目的地址、目的端口至公网地址、公
网端口的反向伪流(125.2.2.1, 5000------ 1.1.1.10,2500 ;IPv6),当第一处理器核Cl将
反向伪流保存至流表中后,对流表进行解锁。在第一处理器核Cl对流表解锁之前,其它处理器核C2、C3、C4,无法对该流表进行操作。由于第一处理器核Cl对流表进行了加锁,其它处理器核C2、C3、C4无法使用流表,即无法确定流平台上保存的流表中不存在所述IPv6报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流,从而其它处理器核C2、C3、C4不能进行地址申请分配的过程,最终,多核系统中除所述第一处理器核外的其它处理器核无法分配所述公网地址和所述公网端口。
[0057]在步骤104中,第一处理器核通过所述流平台的输出业务建立IPv6报文转换后的IPv4报文的目的地址、目的端口至公网地址、公网端口的反向流,所述反向伪流在所述反向流表保存至所述流表中后老化。
[0058]具体地,第一处理器核Cl通过所述流平台的输出业务建立IPv6报文转换后的
IPv4报文的目的地址、目的端口至公网地址、公网端口的反向流,(125.2.2.1, 5000------
1.1.1.10,2500 ;IPv6)。在反向流建立成功后,反向伪流老化。在本实施例中,建立了 IPv6报文的正向流和反向流,在后续过程中,当IPv6报文转换为IPv4报文后,再建立IPv4报文的正向流和反向流,对于具体的建流过程,本实施例此处不再赘述。
[0059]本领域技术人员可以理解,为了不影响其它处理器核对流表的操作,第一处理器核对流表的加锁时间很短,在加锁至解锁之间的锁定时间内,IPv6报文还未进入到流平台的输出业务,或者输出业务还未建立反向流,此时建立反向伪流,将反向伪流保存在流表中,保证了在解锁后的时间,其它处理器核可以对该流表进行操作,但是,由于反向伪流的存在,其它处理器核查找到该反向伪流时,无法对该反向伪流对应的公网地址和公网端口进行预分配,当流平台的输出业务建立反向流,并将反向流保存至流表中以后,反向伪流老化,从而避免了处理器核之间在申请地址时出现冲突。
[0060]对于第二处理器核C2、第三处理器核C3、第四处理器核C4的报文处理过程,可参见第一处理器核Cl的实现过程,本实施例此处不再赘述。
[0061 ] 本发明实施例提供的报文处理方法,第一处理器核通过所述流平台的输入业务建立数据报文的源地址、源端口至目的地址、目的端口的正向流,所述第一处理器核为所述多个处理器核中的任一处理器核;所述第一处理器核通过网络地址转换业务在公网地址池中确定预分配给所述数据报文的公网地址、公网端口,确定流平台上保存的流表中不存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流;所述第一处理器核对流平台上保存的流表进行加锁,建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向伪流,并将所述反向伪流保存至所述流表中,对所述流表进行解锁,以使所述多核系统中除所述第一处理器核外的其它处理器核无法分配所述公网地址和所述公网端口;所述第一处理器核通过所述流平台的输出业务建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流并保存至所述流表中,所述反向伪流在所述反向流表保存至所述流表中后老化,不仅实现了多核路由系统的网络地址转换,还避免了各核之间的地址冲突问题。
[0062]图4为本发明实施例提供的报文处理装置实施例一的结构示意图。本实施例提供的报文处理装置,应用于多核路由系统,所述多核路由系统包括多个处理器核,每个处理器核通过流平台将转发报文,所述报文处理装置40集成在各处理器核上,包括:
[0063]第一建流模块401,用于通过所述流平台的输入业务建立数据报文的源地址、源端口至目的地址、目的端口的正向流;
[0064]判断模块402,用于通过网络地址转换业务在公网地址池中确定预分配给所述数据报文的公网地址、公网端口,确定流平台上保存的流表中不存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流;
[0065]处理模块403,用于对流平台上保存的流表进行加锁,建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向伪流,并将所述反向伪流保存至所述流表中,对所述流表进行解锁,以使所述多核系统中除所述第一处理器核外的其它处理器核无法分配所述公网地址和所述公网端口;
[0066]第二建流模块404,用于通过所述流平台的输出业务建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流并保存至所述流表中,所述反向伪流在所述反向流表保存至所述流表中后老化。
[0067]本发明实施例提供的报文处理装置,可用于执行上述报文处理方法的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
[0068]可选地,所述判断模块具体用于:
[0069]通过网络地址转换业务在公网地址池中确定预分配给所述数据报文的的公网地址、公网端口 ;
[0070]确定所述流平台上保存的流表中是否存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流;
[0071]若是,则通过网络地址转换业务在公网地址池中确定其它预分配给所述数据报文的公网地址、公网端口,直至确定流平台上保存的流表中不存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流。
[0072]可选地,所述数据报文为IPv4报文,所述装置还包括:
[0073]第一获取模块,用于在通过所述流平台的输入业务建立数据报文的源地址、源端口至目的地址、目的端口的正向流之前,接收IPv4报文,获取所述IPv4报文的五元组信息,所述五元组信息包括所述IPv4报文的源地址、源端口、目的地址、目的端口及协议号;
[0074]所述判断模块还具体用于:
[0075]通过网络地址转换业务在IPv4公网地址池中确定预分配给所述IPv4报文的公网地址、公网端口。
[0076]可选地,所述数据报文为IPv6报文,所述装置还包括:
[0077]第二获取模块,用于在通过所述流平台的输入业务建立数据报文的源地址、源端口至目的地址、目的端口的正向流之前,接收IPv6报文,获取所述IPv6报文的五元组信息,所述五元组信息包括所述IPv6报文的源地址、源端口、目的地址、目的端口及协议号;
[0078]转换模块,用于将所述IPv6报文的目的地址、目的端口转换为IPv4报文的目的地址、目的端口 ;
[0079]所述判断模块还具体用于:
[0080]通过网络地址转换业务在IPv4公网地址池中确定预分配给所述IPv6报文的公网地址、公网端口 ;
[0081]所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流具体为:
[0082]所述IPv6报文转换后得到的IPv4报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流。
[0083]本发明实施例提供的报文处理装置,可用于执行上述报文处理方法的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
[0084]在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0085]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0086]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0087]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory, RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0088]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0089]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种报文处理方法,其特征在于,应用于多核路由系统,所述多核路由系统包括多个处理器核,每个处理器核通过流平台转发报文,包括: 第一处理器核通过所述流平台的输入业务建立数据报文的源地址、源端口至目的地址、目的端口的正向流,所述第一处理器核为所述多个处理器核中的任一处理器核; 所述第一处理器核通过网络地址转换业务在公网地址池中确定预分配给所述数据报文的公网地址、公网端口,确定流平台上保存的流表中不存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流; 所述第一处理器核对流平台上保存的流表进行加锁,建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向伪流,并将所述反向伪流保存至所述流表中,对所述流表进行解锁,以使所述多核系统中除所述第一处理器核外的其它处理器核无法分配所述公网地址和所述公网端口; 所述第一处理器核通过所述流平台的输出业务建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流并保存至所述流表中,所述反向伪流在所述反向流表保存至所述流表中后老化。
2.根据权利要求1所述的方法,其特征在于,所述第一处理器核通过网络地址转换业务在公网地址池中确定预分配给所述数据报文的源地址、源端口对应的公网地址、公网端口,确定流平台上保存的流表中不存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流,包括: 所述第一处理器核通过网络地址转换业务在公网地址池中确定预分配给所述数据报文的的公网地址、公网端口 ; 所述第一处理器核确定所述流平台上保存的流表中是否存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流;` 若是,则所述第一处理器核通过网络地址转换业务在公网地址池中确定其它预分配给所述数据报文的公网地址、公网端口,直至确定流平台上保存的流表中不存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流。
3.根据权利要求1或2所述的方法,其特征在于,所述数据报文为IPv4报文,所述第一处理器核通过所述流平台的输入业务建立数据报文的源地址、源端口至目的地址、目的端口的正向流之前,还包括: 所述第一处理器核接收IPv4报文,获取所述IPv4报文的五元组信息,所述五元组信息包括所述IPv4报文的源地址、源端口、目的地址、目的端口及协议号; 所述第一处理器核通过网络地址转换业务在公网地址池中确定预分配给所述数据报文的公网地址、公网端口,包括: 所述第一处理器核通过网络地址转换业务在IPv4公网地址池中确定预分配给所述IPv4报文的公网地址、公网端口。
4.根据权利要求1或2所述的方法,其特征在于,所述数据报文为IPv6报文,所述第一处理器核通过所述流平台的输入业务建立数据报文的源地址、源端口至目的地址、目的端口的正向流之前,还包括: 所述第一处理器核接收IPv6报文,获取所述IPv6报文的五元组信息,所述五元组信息包括所述IPv6报文的源地址、源端口、目的地址、目的端口及协议号;所述第一处理器核将所述IPv6报文的目的地址、目的端口转换为IPv4报文的目的地址、目的端口 ; 所述第一处理器核通过网络地址转换业务在公网地址池中确定预分配给所述数据报文的公网地址、公网端口,包括: 所述第一处理器核通过网络地址转换业务在IPv4公网地址池中确定预分配给所述IPv6报文的公网地址、公网端口 ; 所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流具体为: 所述IPv6报文转换后得到的IPv4报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流。
5.一种报文处理装置,其特征在于,应用于多核路由系统,所述多核路由系统包括多个处理器核,每个处理器核通过流平台转发报文,所述报文处理装置集成在各处理器核上,包括: 第一建流模块,用于通过所述流平台的输入业务建立数据报文的源地址、源端口至目的地址、目的端口的正向流; 判断模块,用于通过网络地址转换业务在公网地址池中确定预分配给所述数据报文的公网地址、公网端口,确定流平台上保存的流表中不存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流; 处理模块,用于对流平台上保存的流表进行加锁,建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向伪流,并将所述反向伪流保存至所述流表中,对所述流表进行解锁,以使所述多核系统中除所述第一处理器核外的其它处理器核无法分配所述公网地址和所述公网端口 ; 第二建流模块,用于通过所述流平台的输出业务建立所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流并保存至所述流表中,所述反向伪流在所述反向流表保存至所述流表中后老化。
6.根据权利要求5所述的装置,其特征在于,所述判断模块具体用于: 通过网络地址转换业务在公网地址池中确定预分配给所述数据报文的的公网地址、公网立而口 ; 确定所述流平台上保存的流表中是否存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流; 若是,则通过网络地址转换业务在公网地址池中确定其它预分配给所述数据报文的公网地址、公网端口,直至确定流平台上保存的流表中不存在所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流。
7.根据权利要求5或6所述的装置,其特征在于,所述数据报文为IPv4报文,所述装置还包括: 第一获取模块,用于在通过所述流平台的输入业务建立数据报文的源地址、源端口至目的地址、目的端口的正向流之前,接收IPv4报文,获取所述IPv4报文的五元组信息,所述五元组信息包括所述IPv4报文的源地址、源端口、目的地址、目的端口及协议号; 所述判断模块还具体用于:通过网络地址转换业务在IPv4公网地址池中确定预分配给所述IPv4报文的公网地址、公网端口。
8.根据权利要求5或6所述的装置,其特征在于,所述数据报文为IPv6报文,所述装置还包括: 第二获取模块,用于在通过所述流平台的输入业务建立数据报文的源地址、源端口至目的地址、目的端口的正向流之前,接收IPv6报文,获取所述IPv6报文的五元组信息,所述五元组信息包括所述IPv6报文的源地址、源端口、目的地址、目的端口及协议号; 转换模块,用于将所述IPv6报文的目的地址、目的端口转换为IPv4报文的目的地址、目的端口 ; 所述判断模块还具体用于: 通过网络地址转换业务在IPv4公网地址池中确定预分配给所述IPv6报文的公网地址、公网端口 ; 所述数据报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流具体为: 所述IPv6报文转换后 得到的IPv4报文的目的地址、目的端口至所述公网地址、所述公网端口的反向流。
【文档编号】H04L29/12GK103731356SQ201310662028
【公开日】2014年4月16日 申请日期:2013年12月9日 优先权日:2013年12月9日
【发明者】邱扩伟, 钟岳林 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1