掌桥专利:专业的专利平台
掌桥专利
首页

报文传输方法、装置、设备及可读存储介质

文献发布时间:2024-04-18 19:54:45


报文传输方法、装置、设备及可读存储介质

技术领域

本发明涉及通信技术领域,尤其涉及一种报文传输方法、装置、设备及可读存储介质。

背景技术

SR(segmentrouting,分段路由)是基于源路由的理念来转发报文的技术,SRv6,即基于IPv6的分段路由,是一种将SR技术与IPv6协议结合起来的技术。在SRv6中报文会在携带IPv6头(IPv6 header)的基础上,另外携带SRH(segment routing header,分段路由头),SRH包括SID list(segment ID,简称SID,即段标识,SID list即段标识列表)及SL(segmentleft,剩余段数量)等信息,段标识列表中包含一个或多个依次排列的SID,每个SID在形式上是一个128比特的IPv6地址,每个SID在实质上能够表示拓扑、指令或服务,SL相当于指针,是个不小于0的数值,会指向段列表中的活跃SID(active SID),该活跃SID为IPv6头中的目的地址,当支持SRv6的节点接收到报文时,会读取报文的目的地址,根据目的地址查询本地SID表(local SID table),当目的地址为本地SID表中的SID时,将报文识别为SRv6报文,基于该SID对应的拓扑、指令或服务,来执行相应的操作。

SRv6 SFC(Service Function Chain,基于SRv6的业务功能链,也称业务链)使用SRv6 TE Policy(Segment Routing Traffic Engineering Policy,段路由流量工程策略)编排业务报文的转发路径,通过在原始报文中添加SRv6 TE Policy的路径信息,来引导报文按照指定的路径依次经过各个服务节点,SRv6SFC支持的服务节点包括防火墙、入侵防御系统、负载均衡设备和地址转换设备等,SRv6 SFC技术通过灵活控制业务报文所经过的服务节点,来满足网络中不同业务对于安全性、可靠性的需求,参照图1,图1为SRv6 SFC网络的典型组网架构图,如图1所示,SRv6 SFC网络由SC(Service Classifier,业务分类节点)、SFF(Service Function Forwarder,业务链转发节点)、SF(Service Function,服务节点)和Tail Endpoint节点(SRv6 SFC网络的尾节点,即SRv6TE Policy的目的节点)组成,用于将特定的用户业务报文引导到指定的服务节点进行处理,并转发到目的地。

SFC域,一个包含了SFC设备的区域可以称为一个SFC域,SC位于SRv6SFC网络边缘,是SRv6 SFC网络的源节点,在SC上需创建SRv6 TE Policy,并将业务报文引流到SRv6 TEPolicy进行转发,SF提供某类应用服务,例如防火墙、负载均衡、地址转换等业务,SF可以是实体物理设备,也可以是部署在虚拟机上的软件产品,能够识别SRv6报文的服务节点称为SRv6-aware SF,不能识别SRv6报文的服务节点称为SRv6-unaware SF,SFF作为SF的代理,根据收到报文的SRv6 SID,将报文传输到SFF关联的若干SF上处理,SF处理报文后再将报文返回给SFF,SFF决定是否继续转发该报文。

SFC代理(SFC Proxy),位于SFF及其关联的若干个SRv6-unaware SF之间,代表SF接收来自SFF的报文,删除NSH(Network Service Header,网络服务头)封装信息,通过本地逻辑组件将报文发给SRv6-unaware SF,也接收从SRv6-unaware SF发回的报文,重新为之添加SRv6封装信息,再发给SFF进行处理。End.AS:static proxy(静态代理)SID,由SRv6Proxy节点发布,End.AS的功能是剥离SRH头,并将报文通过对应的接口或者虚拟接接口(例如VLAN ID对应的接口)发送到SF,携带指定的VLAN ID的报文从SF返回SRv6 Proxy后根据VLAN ID将缓存的SRH插回报文中继续转发,通过静态配置生成SRH与虚拟接口的映射关系,所以称为静态代理SID,End.AD:dynamic proxy(动态代理)SID,由SRv6 Proxy节点发布,End.AD在静态代理SID的基础上增加了动态学习的能力,将SRH与虚拟接口的映射关系由静态配置改为根据收到的报文的SRH动态生成。

参照图2,图2为SRv6 SFC网络的双归保护和Bypass保护示意图,如图2所示,SF服务节点可以进行双归接入,即,同一个SF服务节点可以同时接入两个代理节点SFF,通过双归接入,SRv6报文既可以从第一代理节点SFF1转发至服务节点SF1,也可以从第二代理节点SFF2转发至服务节点SF1,那么即使某一个代理节点故障,SRv6报文仍可以从另一个代理节点转发至服务节点SF1,从而极大地提升了网络可靠性。并且,两个代理节点之间可以分担转发SRv6报文以及处理SRH的压力,因此实现了负载分担的功能,减轻了单个代理节点的负载。此外,SF还包括Bypass保护,即旁路保护,在SF双归接入且有Bypass SF保护的场景下,SF1双归到SFF1和SFF2,SF2是SF1的Bypass SF,当SFF1与SF1路径不可达时流量通过SFF2转发至SF1,如果SFF2与SF1链路不可达时,则将流量转发至SFF3。

当前双归保护和Bypass保护可以提高SRv6 SFC网络的可靠性,但只适用于静态代理(End.AS),不支持动态代理(End.AD),即不支持自学习,从而导致SRv6 SFC网络的效率较低。因为在上述双归保护和Bypass保护场景中,只有主代理节点SFF1有报文完整的信息,在发生故障时,主代理节点SFF1发送报文到备用代理节点SFF2或者Bypass节点SFF3时已经把报文解封装,只携带备用代理节点SFF2或者Bypass节点SFF3的End.AS和End SID信息,所以在SF处理返回报文后,备用代理节点SFF2只能依赖于每条数据流的静态配置来恢复原来的SID list,从而增大了SRv6 SFC网络业务配置的工作量。

发明内容

本发明的主要目的在于提供一种报文传输方法、装置、设备及可读存储介质,旨在解决前双归保护和Bypass保护可以提高SRv6 SFC网络的可靠性,但只适用于静态代理,不支持动态代理,即不支持自学习,从而导致SRv6 SFC网络的效率较低的技术问题。

第一方面,本发明提供一种报文传输方法,所述报文传输方法包括:

当第一代理节点和服务节点之间存在故障时,第一代理节点为原始报文添加新封装头,得到第一报文,将第一报文发送至第二代理节点,所述原始报文包括原始分段路由头;

第二代理节点解封装第一报文,存储原始分段路由头;

第二代理节点剥离新封装头和原始分段路由头,得到第二报文,将第二报文发送至服务节点。

可选的,所述新封装头包括新目的地址,所述将第一报文发送至第二代理节点包括:

第一代理节点根据新目的地址,通过查找路由表,将第一报文发送至第二代理节点。

可选的,所述原始报文还包括原始目的地址,所述新封装头还包括新分段路由头,新分段路由头的剩余段数量为1,新分段路由头的段标识列表为<动态代理,第二代理节点的段标识>,新目的地址为第二代理节点的段标识,在所述第一代理节点为原始报文添加新封装头之前,包括:

第一代理节点更新原始报文的原始目的地址为动态代理;

在所述第二代理节点剥离新封装头和原始分段路由头,得到第二报文之前,包括:

第二代理节点将新分段路由头的剩余段数量减1,更新新目的地址为动态代理。

可选的,在所述将第二报文发送至服务节点之后,包括:

服务节点对第二报文进行业务处理,得到第三报文,将第三报文返回至第二代理节点;

第二代理节点根据存储的原始分段路由头,为第三报文恢复分段路由头,得到第四报文,将第四报文发送至下一节点。

可选的,所述第二代理节点根据存储的原始分段路由头,为第三报文恢复分段路由头,得到第四报文包括:

第二代理节点将存储的原始分段路由头添加至第三报文的头部;

将原始分段路由头的剩余段数量减1,并更新原始目的地址为原始分段路由头的段标识列表的下一个段标识,得到第四报文。

可选的,所述原始报文还包括目的选项扩展报文头和逐跳选项扩展报文头,在所述存储原始分段路由头之后,包括:

存储目的选项扩展报文头和逐跳选项扩展报文头;

在所述为第三报文恢复分段路由头之后,包括:

为第三报文恢复目的选项扩展报文头和逐跳选项扩展报文头。

可选的,所述报文传输方法还包括:

若检测到第二代理节点和服务节点之间存在故障,则切换至旁路保护路径。

第二方面,本发明还提供一种报文传输装置,所述报文传输装置包括:

添加模块,用于当第一代理节点和服务节点之间存在故障时,第一代理节点为原始报文添加新封装头,得到第一报文,将第一报文发送至第二代理节点,所述原始报文包括原始分段路由头;

存储模块,用于第二代理节点解封装第一报文,存储原始分段路由头;

剥离模块,用于第二代理节点剥离新封装头和原始分段路由头,得到第二报文,将第二报文发送至服务节点。

第三方面,本发明还提供一种报文传输设备,所述报文传输设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的报文传输程序,其中所述报文传输程序被所述处理器执行时,实现如上述所述的报文传输方法的步骤。

第四方面,本发明还提供一种可读存储介质,所述可读存储介质上存储有报文传输程序,其中所述报文传输程序被处理器执行时,实现如上述所述的报文传输方法的步骤。

本发明中,当第一代理节点和服务节点之间存在故障时,第一代理节点为原始报文添加新封装头,得到第一报文,将第一报文发送至第二代理节点,所述原始报文包括原始分段路由头;第二代理节点解封装第一报文,存储原始分段路由头;第二代理节点剥离新封装头和原始分段路由头,得到第二报文,将第二报文发送至服务节点。本发明通过,保留原始报文及原始分段路由头,在对报文解封装后存储原始分段路由头,因此能够在服务节点返回报文后为报文恢复分段路由头,从而使得SRv6 SFC网络在双规保护的场景下能够支持动态代理,提升了SRv6 SFC网络的效率,并且通过为原始报文添加新封装头,基于分段路由的报文转发机制,能够通过备用代理节点将报文转发至服务节点,同时实现了SRv6 SFC网络的双规保护。

附图说明

图1为SRv6 SFC网络的典型组网架构图;

图2为SRv6 SFC网络的双归保护和Bypass保护示意图;

图3为本发明报文传输方法一实施例的流程示意图;

图4为本发明报文传输装置一实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

第一方面,本发明实施例提供了一种报文传输方法。

为了更清楚地展示本申请实施例提供的报文传输方法,首先介绍一下本申请实施例提供的报文传输方法的应用场景。

本申请实施例提供的报文传输方法应用于SRv6 SFC网络通过在原始报文中添加SRv6 TE Policy的路径信息,来引导报文按照指定的路径依次经过各个服务节点,服务节点可以进行双归接入,即,同一个服务节点可以同时接入两个代理节点,以这两个代理节点分别称为第一代理节点和第二代理节点为例,通过双归接入,SRv6报文既可以从第一代理节点转发至服务节点,也可以从第二代理节点转发至服务节点,那么即使某一个代理节点故障,SRv6报文仍可以从另一个代理节点转发至服务节点,从而极大地提升了网络可靠性,双归保护和Bypass保护可以提高SRv6 SFC网络的可靠性,但只适用于静态代理(End.AS),不支持动态代理(End.AD),即不支持自学习,从而导致SRv6 SFC网络的效率较低。

一实施例中,参照图3,图3为本发明报文传输方法一实施例的流程示意图,如图3所示,所述报文传输方法包括:

步骤S10,当第一代理节点和服务节点之间存在故障时,第一代理节点为原始报文添加新封装头,得到第一报文,将第一报文发送至第二代理节点,所述原始报文包括原始分段路由头。

本实施例中,首先原始报文是指包含有分段路由头SRH的SRv6报文,第一代理节点在从业务分类节点SC或其他节点接收到原始报文后,可通过在第一代理节点和服务节点之间配置的BFD(Bidirectional Forwarding Detection,双向转发检测),来检测第一代理节点和服务节点之间的链路状态,当检测到第一代理节点和服务节点之间存在故障时,则为原始报文添加新的封装头,需要说明的是不同于传统的走备用代理节点(即第二代理节点)时,主代理节点(即第一代理节点)会剥离原始报文所携带的原始分段路由头SRH,保留了原始报文及所携带的原始分段路由头SRH,从而可以在服务节点返回报文后为报文恢复分段路由头,从而支持动态代理,新的封装头具体可采用H.Encap方式来封装,然后将封装得到的第一报文走备用的第二代理节点发送至服务节点,其中,主代理节点(第一代理节点)和备用代理节点(第二代理节点),仅用于称谓上的表示,不代表固定的软硬件位置。

步骤S20,第二代理节点解封装第一报文,存储原始分段路由头。

本实施例中,在第二代理节点接收到第一代理节点所发送的第一报文后,第二代理节点对第一报文进行解封装,得到报文的原始分段路由头以及添加的新封装头等信息,将原始分段路由头进行存储,因此能够实现在服务节点返回报文后为报文恢复分段路由头,以支持动态代理。

步骤S30,第二代理节点剥离新封装头和原始分段路由头,得到第二报文,将第二报文发送至服务节点。

本实施例中,第二代理节点剥离新封装头和原始分段路由头,得到不包含SRH的第二报文,将不包含SRH的第二报文发送至服务节点处理,从而实现了服务节点的双规保护接入,并完成SRv6报文的代理转发任务。

本实施例中,原始报文是包含有分段路由头SRH的SRv6报文,第一代理节点在从业务分类节点SC或其他节点接收到原始报文后,当检测到第一代理节点和服务节点之间存在故障时,则为原始报文添加新的封装头,即保留原始报文及所携带的原始分段路由头SRH,然后将封装得到的第一报文走备用的第二代理节点,第二代理节点对第一报文进行解封装,得到报文的原始分段路由头以及添加的新封装头等信息,将原始分段路由头进行存储,从而能够实现在服务节点返回报文后为报文恢复分段路由头,然后第二代理节点剥离新封装头和原始分段路由头,得到不包含SRH的第二报文,将不包含SRH的第二报文发送至服务节点处理,从而实现了服务节点的双规保护接入,并完成SRv6报文的代理转发任务,从而使得SRv6 SFC网络在双规保护的场景下能够支持动态代理,提升了SRv6 SFC网络的效率。

进一步地,一实施例中,所述新封装头包括新目的地址,步骤S10包括:

第一代理节点根据新目的地址,通过查找路由表,将第一报文发送至第二代理节点。

本实施例中,第一代理节点根据添加的新封装头中的新目的地址,即第二代理节点的段标识,通过查找路由表,实现将第一报文发送至第二代理节点。

进一步地,一实施例中,所述原始报文还包括原始目的地址,所述新封装头还包括新分段路由头,新分段路由头的剩余段数量为1,新分段路由头的段标识列表为<动态代理,第二代理节点的段标识>,新目的地址为第二代理节点的段标识,在步骤S10之前,包括:

第一代理节点更新原始报文的原始目的地址为动态代理;

在步骤S30之前,包括:

第二代理节点将新分段路由头的剩余段数量减1,更新新目的地址为动态代理。

本实施例中,原始报文除包括原始分段路由头外,还包括原始目的地址ipv6 da,新封装头除包括新目的地址new ipv6 da外,还包括新分段路由头,新分段路由头的段标识列表SID list为<动态代理(END.AD),第二代理节点的段标识(SID)>,将新分段路由头的剩余段数量设置为SL=1,即用于指示当前节点的新目的地址new ipv6 da为第二代理节点的段标识(SID)。

在第一代理节点为原始报文添加新封装头之前,将原始报文的原始目的地址更新为动态代理(END.AD),以用于指示对报文执行动态代理,然后第一代理节点为原始报文添加新封装头,所得到的第一报文,可如下所示:

New ipv6 da=backup SFF END SID

____________________

New Encap SRH sidlist(SL=1):

END.AD

backup SFF END SID

____________________

ipv6 da=END.AD

________________

SRH sidlist:

Tail Dt4/6SID

SID n

SID n-1

...

SID a

END.AD

________________

UserData

其中,backup SFF表示备用代理节点,即第二代理节点,UserData代表原始报文的数据部分,ipv6 da=END.AD以上的内容部分,即New ipv6 da=backup SFF END SID及NewEncap SRH sidlist(SL=1):部分,为添加的新封装头,ipv6 da=END.AD以下至User Data的中间的部分,即SRH sidlist:部分,为原始报文的原始分段路由头。

第二代理节点在接收到上述的第一报文后,执行SL-1,从而SL=0,New ipv6 da=END.AD,此时,即满足了End.AD withusd条件,剥离添加的外层新封装头,同时原始目的地址ipv6 da=END.AD,且SL不为0,满足将报文转发至服务节点的条件,第二代理节点在剥离外层的新封装头和内层的原始分段路由头后,将不包含SRH内容的第二报文发送至服务节点。

进一步地,一实施例中,在步骤S30之后,包括:

服务节点对第二报文进行业务处理,得到第三报文,将第三报文返回至第二代理节点;

第二代理节点根据存储的原始分段路由头,为第三报文恢复分段路由头,得到第四报文,将第四报文发送至下一节点。

本实施例中,服务节点在收到第二报文后,在进行如防火墙、负载均衡、地址转换等相关的业务处理后,返回第三报文给第二代理节点,第二代理节点再为第三报文恢复分段路由头,得到第四报文,从而恢复分段路由头的第四报文再继续发送至下一节点。

进一步地,一实施例中,所述第二代理节点根据存储的原始分段路由头,为第三报文恢复分段路由头,得到第四报文包括:

第二代理节点将存储的原始分段路由头添加至第三报文的头部;

将原始分段路由头的剩余段数量减1,并更新原始目的地址为原始分段路由头的段标识列表的下一个段标识,得到第四报文。

本实施例中,第二代理节点为服务节点返回的第三报文恢复分段路由头,即将之前存储的原始分段路由头添加至第三报文的头部,同时将原始分段路由头的剩余段数量SL-1,将原始目的地址更新为原始分段路由头的段标识列表的下一个段标识,得到第四报文,第四报文再继续发送至下一节点,即根据更新后的原始分段路由头的段标识列表的下一个段标识,查找路由表,将第四报文发送至下一节点。

进一步地,一实施例中,所述原始报文还包括目的选项扩展报文头和逐跳选项扩展报文头,在所述存储原始分段路由头之后,包括:

存储目的选项扩展报文头和逐跳选项扩展报文头;

在所述为第三报文恢复分段路由头之后,包括:

为第三报文恢复目的选项扩展报文头和逐跳选项扩展报文头。

本实施例中,在原始报文还包括目的选项扩展报文头和逐跳选项扩展报文头的情况下,对目的选项扩展报文头和逐跳选项扩展报文头,同时进行存储和学习,以用于后续的为第三报文恢复目的选项扩展报文头和逐跳选项扩展报文头,从而实现了在SRv6 SFC网络双规保护的场景下,同时支持网络切片功能和IOAM(In-band Operation,Administration,and Maintenance,带内操作管理和维护)功能。

进一步地,一实施例中,所述报文传输方法还包括:

若检测到第二代理节点和服务节点之间存在故障,则切换至旁路保护路径。

本实施例中,如果第二代理节点和服务节点之间也存在故障,即双规保护不可用,则切换至旁路保护路径,第一代理节点将封装后的第一报文,发送至旁路保护路径的代理节点,旁路保护路径的代理节点和其对应的服务节点之间的报文处理方法,以及旁路保护路径的代理节点对服务节点返回后的报文处理方法,可采用和上述同样的方法。

第二方面,本发明实施例还提供一种报文传输装置。

参照图4,图4为本发明报文传输装置一实施例的功能模块示意图。

本实施例中,所述报文传输装置包括:

添加模块10,用于当第一代理节点和服务节点之间存在故障时,第一代理节点为原始报文添加新封装头,得到第一报文,将第一报文发送至第二代理节点,所述原始报文包括原始分段路由头;

存储模块20,用于第二代理节点解封装第一报文,存储原始分段路由头;

剥离模块30,用于第二代理节点剥离新封装头和原始分段路由头,得到第二报文,将第二报文发送至服务节点。

进一步地,一实施例中,所述新封装头包括新目的地址,添加模块10,用于:

第一代理节点根据新目的地址,通过查找路由表,将第一报文发送至第二代理节点。

进一步地,一实施例中,所述原始报文还包括原始目的地址,所述新封装头还包括新分段路由头,新分段路由头的剩余段数量为1,新分段路由头的段标识列表为<动态代理,第二代理节点的段标识>,新目的地址为第二代理节点的段标识,所述报文传输装置,还包括第一更新模块,用于:

第一代理节点更新原始报文的原始目的地址为动态代理;

还包括第二更新模块,用于:

第二代理节点将新分段路由头的剩余段数量减1,更新新目的地址为动态代理。

进一步地,一实施例中,所述报文传输装置,还包括第一恢复模块,所述第一恢复模块,包括:

处理单元,用于服务节点对第二报文进行业务处理,得到第三报文,将第三报文返回至第二代理节点;

恢复单元,用于第二代理节点根据存储的原始分段路由头,为第三报文恢复分段路由头,得到第四报文,将第四报文发送至下一节点。

进一步地,一实施例中,恢复单元,用于:

第二代理节点将存储的原始分段路由头添加至第三报文的头部;

将原始分段路由头的剩余段数量减1,并更新原始目的地址为原始分段路由头的段标识列表的下一个段标识,得到第四报文。

进一步地,一实施例中,所述原始报文还包括目的选项扩展报文头和逐跳选项扩展报文头,所述报文传输装置,还包括学习模块,用于:

存储目的选项扩展报文头和逐跳选项扩展报文头;

还包括第二恢复模块,用于:

为第三报文恢复目的选项扩展报文头和逐跳选项扩展报文头。

进一步地,一实施例中,所述报文传输装置,还包括检测模块,用于:

若检测到第二代理节点和服务节点之间存在故障,则切换至旁路保护路径。

其中,上述报文传输装置中各个模块的功能实现与上述报文传输方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。

第三方面,本发明实施例提供一种报文传输设备。

所述报文传输设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的报文传输程序,其中所述报文传输程序被所述处理器执行时,实现如上述所述的报文传输方法的步骤。

第四方面,本发明实施例还提供一种可读存储介质。

本发明可读存储介质上存储有报文传输程序,其中所述报文传输程序被处理器执行时,实现如上述的报文传输方法的步骤。

其中,报文传输程序被执行时所实现的方法可参照本发明报文传输方法的各个实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 报文转发方法及装置、计算机可读存储介质、电子设备
  • 一种信号传输方法、装置、电子设备以及计算机可读存储介质
  • 信息传输方法、装置、相关设备及计算机可读存储介质
  • 传输报文的方法、代理服务器和计算机可读存储介质
  • 存储设备在线检测方法、装置、设备及可读存储介质
  • 报文传输方法、装置、网络设备及可读存储介质
  • 报文传输方法、装置、电子设备及计算机可读存储介质
技术分类

06120116381063