一种报文解封装处理、数据写入方法及装置与流程

文档序号:11657303阅读:330来源:国知局
一种报文解封装处理、数据写入方法及装置与流程

本发明涉及数据网络通信领域,尤其是涉及到报文解封装处理方法及装置。



背景技术:

通用路由协议封装(genericroutingencapsulation,简称gre)有效解决了将一种协议的报文在另一种协议组成的网络中传输的问题,能够高效利用现有网络,减少升级、新建网络的投资。

随着云计算、流媒体、移动应用的普及,运营商核心网设备不断向高速ip分组传输演进以提升网络能力,gre隧道技术被越来越广泛的应用,对gre隧道解封装的效率的要求也越来越高,尤其是在用gre隧道穿越二级运营商虚拟专用网络(virtualprivatenetwork,简称vpn)接入多协议标记交换(multiprotocallabelswitchingvpn,简称mplsvpn)骨干网的应用场景,既要知道gre穿越vpn网络的vpnid,也要知道接入mplsvpn的解封装以后的vpnid。目前对隧道解封装的通常做法是为解封装专门建一张隧道终结表,表里存放隧道终结标记和vpnid,转发面通过查终结表得到隧道终结标记和vpnid,通过终结标记判断是否解封装,即剥掉外层ip头和gre头,用内层ip头中的目的ip地址加终结表里的vpnid查路由表转发。这种方式需要用gre的目的地址和源地址为关键字用某种hash算法得到终结表的表索引,因此,要使用更多的微码指令完成解封装的工作,引起报文处理时间变长,这给实现日益提高的线速转发要求提出了挑战。

针对相关技术中gre隧道解封装处理时间过长的问题,现有技术还未提出有效的解决方案。



技术实现要素:

本发明的目的在于提供了报文解封装处理方法及装置,解决了相关技术中gre隧道解封装处理时间过长的问题。

根据本发明的一个方面,提供一种报文解封装处理方法,包括:解析获取报文的键值,其中,该键值包括隧道源地址、隧道目的地址、隧道穿过的虚拟专用网络vpn的id号、通用路由协议封装gre的协议号;通过该键值查询访问控制列表acl表获取与该键值对应的结果值,并根据该结果值对报文进行解封装处理,其中,该acl表包括通过控制面写入的键值和结果值,该结果值包括终结标记和内层vpn的id号。

进一步地,通过该键值查询访问控制列表acl表获取与该键值对应的结果值,并根据该结果值对报文进行解封装处理包括:通过该键值查询访问控制列表acl表获取与该键值对应的终结标记,在该终结标记为终结的情况下,获取与该键值对应的内层vpn的id号,并对该报文进行gre解封装;通过该键值查询访问控制列表acl表获取与该键值对应的终结标记和内层vpn的id号,在该终结标记为终结的情况下,并对该报文进行gre解封装。

进一步地,该报文解封装处理方法还包括:在该终结标记为未终结的情况下,对该报文进行继续转发。

进一步地,在对该报文进行gre解封装之后,该报文解封装处理方法还包括:将该内层vpn的id号结合内层目的ip地址得到路由转发信息;根据该路由转发信息进行转发。

进一步地,该解析报文获取键值包括:通过该报文入接口id号查询隧道的接口表得到隧道穿过的vpnid号。

根据本发明的另一方面,提供一种数据写入方法包括:将键值与结果值写入访问控制列表acl表,其中,该键值包括隧道源地址、隧道目的地址、隧道穿过的虚拟专用网络vpn的id号、通用路由协议封装gre的协议号,该键值与该结果值对应,该结果值包括终结标记和内层vpn的id号,该acl表用于通过解析获取报文的键值查询以获取与该键值对应的结果值,并根据该结果值对报文进行解封装处理。

根据本发明的另一方面,提供一种报文解封装处理装置,包括:解析模块,用于解析报文获取键值,其中,该键值包括隧道源地址、隧道目的地址、隧道穿过的虚拟专用网络vpn的id号、通用路由协议封装gre的协议号;获取模块,用于通过该键值查询访问控制列表acl表获取与该键值对应的结果值,并根据该结果值对报文进行解封装处理,其中,该acl表包括通过控制面写入的键值和结果值,该结果值包括终结标记和内层vpn的id号。

进一步地,该获取模块包括:第一获取单元,用于通过该键值查询访问控制列表acl表获取与该键值对应的终结标记;第一处理单元,用于在该终结标记为终结的情况下,获取与该键值对应的内层vpn的id号,并对该报文进行gre解封装;

第二获取单元,用于通过该键值查询访问控制列表acl表获取与该键值对应的终结标记和内层vpn的id号;第二处理单元,用于在该终结标记为终结的情况下,并对该报文进行gre解封装。

进一步地,该报文解封装处理装置还包括得到模块,用于将该内层vpn的id号结合内层目的ip地址得到路由转发信息;转发模块,用于根据该路由转发信息进行转发。

根据本发明的另一方面,提供一种数据写入装置,包括:写入模块,用于将键值与结果值写入访问控制列表acl表,其中,该键值包括隧道源地址、隧道目的地址、隧道穿过的虚拟专用网络vpn的id号、通用路由协议封装gre的协议号,该键值与该结果值对应,该结果值包括终结标记和内层vpn的id号,该acl表用于通过解析获取报文的键值查询以获取与该键值对应的结果值,并根据该结果值对报文进行解封装处理。

通过本发明,采用在acl表中读取结果值的技术方案,解决了相关技术中gre隧道解封装处理时间过长的问题,降低了解封装过程中所需要的微码指令。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的报文解封装方法的流程图一;

图2是根据本发明实施例的报文解封装处理装置的结构框图一;

图3是根据本发明优选实施例的报文解封装处理装置的结构框图一;

图4是根据本发明优选实施例的报文解封装处理装置的结构框图二;

图5是根据本发明实施例的报文处理方法的流程图;

图6是根据本发明实施例的控制面gre隧道解封装写acl表的流程图;

图7是根据本发明实施例的转发面gre隧道解封装的流程图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

在本实施例中提供了一种报文解封装处理方法及装置,图1是根据本发明实施例的报文解封装处理方法的流程图一,如图1所示,该流程包括如下步骤:

步骤s102,转发面解析获取报文的键值,其中,该键值包括隧道源地址、隧道目的地址、隧道穿过的虚拟专用网络vpn的id号、通用路由协议封装gre的协议号;

步骤s104,该转发面通过该键值查询访问控制列表acl表获取与该键值对应的结果值,并根据该结果值对报文进行解封装处理,其中,该acl表包括通过控制面写入的键值和结果值,该结果值包括终结标记和内层vpn的id号。

可选地,该转发面可通过该报文入接口id号查询隧道的接口表得到隧道穿过的vpnid号。

一种可选地实施方式为该转发面通过该键值查询acl表获取与该键值对应的终结标记,在该终结标记为终结的情况下,获取与该键值对应的内层vpn的id号,并对该报文进行gre解封装。在该终结标记为未终结的情况下,对该报文进行继续转发。

优选地,该转发面通过该键值查询acl表获取与该键值对应的终结标记与内层vpn的id号,在该终结标记为终结的情况下,并对该报文进行gre解封装,从而进一步减少指令开销。

进一步地,在对该报文进行gre解封装之后,转发面将该内层vpn的id号结合内层目的ip地址得到路由转发信息,根据该路由转发信息查询路由表进行转发。

通过上述步骤,解决了相关技术中gre隧道解封装处理时间过长的问题,降低了解封装过程中所需要的微码指令。

根据本发明实施例还提供一种数据写入方法,该方法包括:将键值与结果值写入访问控制列表acl表,其中,该键值包括隧道源地址、隧道目的地址、隧道穿过的虚拟专用网络vpn的id号、通用路由协议封装gre的协议号,该键值与该结果值对应,该结果值包括终结标记和内层vpn的id号。转发面可以解析报文以获取键值,根据该获取到的键值查询acl表,以获取与该键值对应的结果值,并根据该结果值对报文进行解封装处理。

图2是根据本发明实施例的报文解封装处理装置的结构框图一,如图2所示,该装置包括:

解析模块22,用于解析报文获取键值,其中,上述键值包括隧道源地址、隧道目的地址、隧道穿过的虚拟专用网络vpn的id号、通用路由协议封装gre的协议号;

获取模块24,用于通过该键值查询访问控制列表acl表获取与该键值对应的结果值,并根据该结果值对报文进行解封装处理。

上述acl表包括通过控制面写入的键值和结果值,该结果值包括终结标记和内层vpn的id号。

图3是根据本发明优选实施例的报文解封装处理装置的结构框图一,如图3所示,上述获取模块24包括:

第一获取单元32,用于通过该键值查询访问控制列表acl表获取与该键值对应的终结标记;

第一处理单元34,用于在该终结标记为终结的情况下,获取与该键值对应的内层vpn的id号,并对该报文进行gre解封装;

可选地,上述获取模块24还可以包括:第二获取单元,用于通过该键值查询访问控制列表acl表获取与该键值对应的终结标记和内层vpn的id号;第二处理单元,用于在该终结标记为终结的情况下,并对该报文进行gre解封装。

上述获取模块24包含上述第一获取单元32和上述第一处理单元34,或者第二获取单元与上述第二处理单元。一种可替代实施方式为,上述获取模块24包含上述第一获取单元32和上述第一处理单元34,且包含第二获取单元与上述第二处理单元。

图4是根据本发明优选实施例的报文解封装处理装置的结构框图二,如图4所示,该报文解封装处理装置还包括:

得到模块42,用于将该内层vpn的id号结合内层目的ip地址得到路由转发信息;

转发模块44,用于根据该路由转发信息进行转发。

根据本发明实施例还提供一种数据写入装置,所述装置包括:写入模块,用于将键值与结果值写入访问控制列表acl表,其中,该键值包括隧道源地址、隧道目的地址、隧道穿过的虚拟专用网络vpn的id号、通用路由协议封装gre的协议号,该键值与该结果值对应,该结果值包括终结标记和内层vpn的id号,该acl表用于通过解析获取报文的键值查询以获取与该键值对应的结果值,并根据该结果值对报文进行解封装处理。

下面结合具体实施例对本发明进行进一步说明。

图5是根据本发明实施例的报文处理方法的流程图,如图5所示,该方法包括以下步骤:

步骤s502,控制面在gre隧道的两端设备将隧道的源地址、目的地址、隧道穿过的vpn的vpnid和gre的协议号作为键值,以终结标记和解封装后的vpnid为结果表内容写访问控制列表(accesscontrollist,简称acl)。

步骤s504,转发面识别报文的目的ip地址、源ip地址、gre协议号和隧道穿过的vpn的vpnid,查acl表,得到结果表中的终结标记和解封装后的vpnid,根据终结标记剥掉外层ip头和gre头变成普通ip报文,用内层目的ip地址和结果表里的vpnid查路由表得到转发出接口,将报文转发出去。

通过以上方式实现gre隧道在尾节点快速、高效解封装。

与现有技术相比,本实施例的转发面直接用报文关键字查acl表得到隧道的终结标记,不需要判断报文的协议号为gre,简化微码流程;且转发面通过acl键值查找acl表实现终结标记的获取,不需要hash关键字查隧道终结表,降低微码复杂度并减少微码指令,为微码支持更多功能提供了可能。

图6是根据本发明实施例的控制面gre隧道解封装写acl表的流程图,如图6所示,该方法包括以下步骤:

步骤s602:隧道模块整合配置的隧道源地址、目的地址、gre协议号、隧道穿过vpn的id号、终结标记(terminal_flag)、隧道接口vpnid信息传递给acl模块。

步骤s604:acl模块将隧道源地址、目的地址、gre协议号和隧道穿过vpnid按acl键值格式封装为acl表的键值,将隧道终结标记和隧道接口vpnid按acl结果表格式封装为acl结果表,调用公共接口将键值和结果写入acl硬件表,acl将封装好的键值和结果表组织在一起,如表1所示。

表1封装好的键值和结果表格式

步骤s606:通过硬件提供的写表接口将上述键值和结果值写入硬件表,写入的硬件表分为键值表和结果表,键值表内保存结果表的索引,acl匹配到键值表以后,通过键值表里的结果表索引查询到结果表的内容,其表项组织形式如表2.1和2.2所示。上述结果值为隧道终结标记和隧道接口vpnid。

表2.1acl硬件表之键值表

表2.2acl硬件表之结果表

图7是根据本发明实施例的转发面gre隧道解封装的流程图,如图7所示,该方法包括以下步骤:

步骤s702:转发面“报文解析模块”提取报文关键字,可选地,从ip报文中解析出源ip地址、目的ip地址,协议号等字段;

步骤s704:转发面“vpnid查找模块”由报文入接口id查接口表得到隧道穿过的vpnid;

步骤s706:转发面“acl匹配模块”由前两步得到的字段组装的acl键值查找acl表得到结果表传递给隧道解封装模块。

步骤s708:转发面“隧道解封装模块”读取acl结果表的终结标记,如果terminal_flag=1,表示当前设备为隧道尾节点,需要进行gre解封装,剥离外层ip头和gre头,用结果表里的vpnid,也即解封装后的vpnid加内层ip头的目的ip地址查路由表继续转发;反之,继续用外层ip头的目的ip查路由转发。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1