一种报文转发方法、装置、电子设备及存储介质制造方法及图纸

技术编号:29798038 阅读:14 留言:0更新日期:2021-08-24 18:19
本申请提供一种报文转发方法、装置、电子设备及存储介质。在本申请中,对于彼此建立了GRE隧道的网络设备中的任一网络设备而言,不再逐一为每个需要进行GRE封装的数据报文封装公网IP头和GRE头,而是将多个数据报文封装到一个GRE报文中,共用一个公网IP头和GRE头,并且,还封装有便于对端网络设备进行解封装的相关标识信息,减少了在公网上传输的数据,进而节省了公网带宽资源。

【技术实现步骤摘要】
一种报文转发方法、装置、电子设备及存储介质
本申请涉及通信
,尤其涉及一种报文转发方法、装置、电子设备及存储介质。
技术介绍
对于彼此建立了通用路由封装(GenericRoutingEncapsulation,GRE)隧道的网络设备中的任一网络设备而言,在接收到需要进行GRE封装的数据报文时,为该数据报文封装上公网IP头和GRE头,得到GRE报文;之后,该网络设备将该GRE报文通过对应的GRE隧道转发给对端网络设备,以由该对端网络设备对该GRE报文进行GRE解封装,最终得到该数据报文,然后再对该数据报文进行转发处理。可见,在该网络设备转发需要进行GRE封装的数据报文的过程中,针对每个需要进行GRE封装的数据报文,均需要逐一为其封装上公网IP头和GRE头,使得在公网上传输的数据大大增加,消耗了较多的公网带宽资源。
技术实现思路
为克服相关技术中存在的问题,本申请提供了一种报文转发方法、装置、电子设备及存储介质。根据本申请实施例的第一方面,提供一种报文转发方法,所述方法应用于网络设备,所述方法包括:在接收到需要进行通用路由封装GRE封装的数据报文时,判断本地是否存在GRE报文,其中,所述GRE报文的GRE头中包括有指定标志位;在判断结果为否时,生成初始GRE报文,并依次在所述初始GRE报文中的载荷字段中封装所述数据报文对应的标识信息和所述数据报文,其中,所述初始GRE报文中携带有公网IP头和包括有所述指定标志位的GRE头,且携带的载荷字段为空,所述标识信息包括用于表征所述载荷字段中所述数据报文的后面是否还有其他数据报文的第一标识信息和用于表征所述数据报文在所述载荷字段中的偏移长度的第二标识信息;在判断结果为是时,计算所述数据报文的报文长度与设定长度之和,其中,所述GRE报文中的载荷字段中的所有的数据报文对应的标识信息的长度均为所述设定长度;若计算结果大于所述GRE报文中的载荷字段的可用长度,则将所述GRE报文中的载荷字段中的最后一个数据报文对应的标记信息中的第一标识信息修改为用于表征所述载荷字段中的最后一个数据报文的后面没有其他数据报文的标识信息,通过所述网络设备与对端网络设备建立的GRE隧道,将修改后的GRE报文转发给所述对端网络设备,以使所述对端网络设备在判断出修改后的GRE报文的GRE头中包括有所述指定标志位时,依次根据修改后的GRE报文中的标识信息,对修改后的GRE报文进行解封装后进行转发处理,并执行生成初始GRE报文的步骤;若计算结果不大于所述GRE报文中的载荷字段的可用长度,则继续在所述GRE报文中的载荷字段中的最后一个数据报文的后面依次封装所述数据报文对应的标识信息和所述数据报文。根据本申请实施例的第二方面,提供一种报文转发装置,所述装置应用于网络设备,所述装置包括:第一判断模块,用于在接收到需要进行通用路由封装GRE封装的数据报文时,判断本地是否存在GRE报文,其中,所述GRE报文的GRE头中包括有指定标志位;第一封装模块,用于在所述第一判断模块的判断结果为否时,生成初始GRE报文,并依次在所述初始GRE报文中的载荷字段中封装所述数据报文对应的标识信息和所述数据报文,其中,所述初始GRE报文中携带有公网IP头和包括有所述指定标志位的GRE头,且携带的载荷字段为空,所述标识信息包括用于表征所述载荷字段中所述数据报文的后面是否还有其他数据报文的第一标识信息和用于表征所述数据报文在所述载荷字段中的偏移长度的第二标识信息;计算模块,用于在所述第一判断模块的判断结果为是时,计算所述数据报文的报文长度与设定长度之和,其中,所述GRE报文中的载荷字段中的所有的数据报文对应的标识信息的长度均为所述设定长度;第一转发模块,用于在所述计算模块的计算结果大于所述GRE报文中的载荷字段的可用长度时,将所述GRE报文中的载荷字段中的最后一个数据报文对应的标记信息中的第一标识信息修改为用于表征所述载荷字段中的最后一个数据报文的后面没有其他数据报文的标识信息,通过所述网络设备与对端网络设备建立的GRE隧道,将修改后的GRE报文转发给所述对端网络设备,以使所述对端网络设备在判断出修改后的GRE报文的GRE头中包括有所述指定标志位时,依次根据修改后的GRE报文中的标识信息,对修改后的GRE报文进行解封装后进行转发处理,并执行生成初始GRE报文的步骤;第二封装模块,用于在所述计算模块的计算结果不大于所述GRE报文中的载荷字段的可用长度时,继续在所述GRE报文中的载荷字段中的最后一个数据报文的后面依次封装所述数据报文对应的标识信息和所述数据报文。本申请的实施例提供的技术方案可以包括以下有益效果:在本申请实施例中,对于彼此建立了GRE隧道的网络设备中的任一网络设备而言,不再逐一为每个需要进行GRE封装的数据报文封装公网IP头和GRE头,而是将多个数据报文封装到一个GRE报文中,共用一个公网IP头和GRE头,并且,还封装有便于对端网络设备进行解封装的相关标识信息,减少了在公网上传输的数据,进而节省了公网带宽资源。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。附图说明此处的附图被并入说明书中并构成本申请的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。图1为本申请实施例提供的一种报文转发方法的流程示意图;图2为本申请实施例提供的GRE头中包括有指定标志位的GRE报文的格式示意图;图3为本申请实施例提供的一种报文转发装置的结构示意图;图4为本申请实施例提供的一种电子设备的结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。接下来对本申请实施例进行详细说明。本申请实施例提供了一种报文转发方法,该方法应用于网络设备,该网络设备可以应用于服务提供商网络边缘(ProviderEdge,PE)设备、用户网络边缘(CustomerEdge,CE)设备等等,如图1所示,该方法可以包括如下步骤:S11、在接收到需要进行GRE封装的数据报文时,判断本地是否存在GRE报文;在判断结果为否时,执行步骤S12;在判断结果为是时,执行步骤S13。在本步骤中,GRE报文的GRE头中包括有指定标志位。S12、生成初始GRE报文,并依次在本文档来自技高网...

【技术保护点】
1.一种报文转发方法,其特征在于,所述方法应用于网络设备,所述方法包括:/n在接收到需要进行通用路由封装GRE封装的数据报文时,判断本地是否存在GRE报文,其中,所述GRE报文的GRE头中包括有指定标志位;/n在判断结果为否时,生成初始GRE报文,并依次在所述初始GRE报文中的载荷字段中封装所述数据报文对应的标识信息和所述数据报文,其中,所述初始GRE报文中携带有公网IP头和包括有所述指定标志位的GRE头,且携带的载荷字段为空,所述标识信息包括用于表征所述载荷字段中所述数据报文的后面是否还有其他数据报文的第一标识信息和用于表征所述数据报文在所述载荷字段中的偏移长度的第二标识信息;/n在判断结果为是时,计算所述数据报文的报文长度与设定长度之和,其中,所述GRE报文中的载荷字段中的所有的数据报文对应的标识信息的长度均为所述设定长度;/n若计算结果大于所述GRE报文中的载荷字段的可用长度,则将所述GRE报文中的载荷字段中的最后一个数据报文对应的标记信息中的第一标识信息修改为用于表征所述载荷字段中的最后一个数据报文的后面没有其他数据报文的标识信息,通过所述网络设备与对端网络设备建立的GRE隧道,将修改后的GRE报文转发给所述对端网络设备,以使所述对端网络设备在判断出修改后的GRE报文的GRE头中包括有所述指定标志位时,依次根据修改后的GRE报文中的标识信息,对修改后的GRE报文进行解封装后进行转发处理,并执行生成初始GRE报文的步骤;/n若计算结果不大于所述GRE报文中的载荷字段的可用长度,则继续在所述GRE报文中的载荷字段中的最后一个数据报文的后面依次封装所述数据报文对应的标识信息和所述数据报文。/n...

【技术特征摘要】
1.一种报文转发方法,其特征在于,所述方法应用于网络设备,所述方法包括:
在接收到需要进行通用路由封装GRE封装的数据报文时,判断本地是否存在GRE报文,其中,所述GRE报文的GRE头中包括有指定标志位;
在判断结果为否时,生成初始GRE报文,并依次在所述初始GRE报文中的载荷字段中封装所述数据报文对应的标识信息和所述数据报文,其中,所述初始GRE报文中携带有公网IP头和包括有所述指定标志位的GRE头,且携带的载荷字段为空,所述标识信息包括用于表征所述载荷字段中所述数据报文的后面是否还有其他数据报文的第一标识信息和用于表征所述数据报文在所述载荷字段中的偏移长度的第二标识信息;
在判断结果为是时,计算所述数据报文的报文长度与设定长度之和,其中,所述GRE报文中的载荷字段中的所有的数据报文对应的标识信息的长度均为所述设定长度;
若计算结果大于所述GRE报文中的载荷字段的可用长度,则将所述GRE报文中的载荷字段中的最后一个数据报文对应的标记信息中的第一标识信息修改为用于表征所述载荷字段中的最后一个数据报文的后面没有其他数据报文的标识信息,通过所述网络设备与对端网络设备建立的GRE隧道,将修改后的GRE报文转发给所述对端网络设备,以使所述对端网络设备在判断出修改后的GRE报文的GRE头中包括有所述指定标志位时,依次根据修改后的GRE报文中的标识信息,对修改后的GRE报文进行解封装后进行转发处理,并执行生成初始GRE报文的步骤;
若计算结果不大于所述GRE报文中的载荷字段的可用长度,则继续在所述GRE报文中的载荷字段中的最后一个数据报文的后面依次封装所述数据报文对应的标识信息和所述数据报文。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对本地存在的任一GRE头中包括有所述指定标志位的GRE报文,若距离对应的初始生成时间已超设定时长还未接收到需要进行GRE封装的数据报文,则将该GRE报文中的载荷字段中的最后一个数据报文对应的标记信息中的第一标识信息修改为用于表征该载荷字段中的最后一个数据报文的后面没有其他数据报文的标识信息;
通过所述GRE隧道,将该修改后的GRE报文转发给所述对端网络设备,以使所述对端网络设备在判断出该修改后的GRE报文的GRE头中包括有所述指定标志位时,依次根据该修改后的GRE报文中的标识信息,对该修改后的GRE报文进行解封装后进行转发处理。


3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到所述对端网络设备发送的GRE报文时,判断接收到的GRE报文的GRE头中是否包括有所述指定标志位;
在判断结果为是时,依次根据所述接收到的GRE报文中的标识信息,对所述接收到的GRE报文进行解封装,得到多个数据报文;
对得到的多个数据报文进行转发处理。


4.根据权利要求1所述的方法,其特征在于,所述数据报文对应的标识信息的长度为16位;
其中,第1位为所述第一标识信息,第2至16位为所述第二标识信息。


5.一种报文转发装置,其特征在于,所述装置应用于网络设备,所述装置包括:
第一判断模块,用于在接收到需要进行通用路由封装GRE封装的数据报文时,判断本地是否存在GRE报文,其中,所述GRE报文的GRE头中包括有指定标志位;
第一封装模块,用于在所述第一判断模块的判断结果为否时,生成初始GRE报...

【专利技术属性】
技术研发人员:杨羊谭富德
申请(专利权)人:新华三信息安全技术有限公司
类型:发明
国别省市:安徽;34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1