CN117376232A - 报文传输方法、装置及系统 - Google Patents
报文传输方法、装置及系统 Download PDFInfo
- Publication number
- CN117376232A CN117376232A CN202210771054.2A CN202210771054A CN117376232A CN 117376232 A CN117376232 A CN 117376232A CN 202210771054 A CN202210771054 A CN 202210771054A CN 117376232 A CN117376232 A CN 117376232A
- Authority
- CN
- China
- Prior art keywords
- message
- node
- segment
- srh
- destination address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000005540 biological transmission Effects 0.000 title claims abstract description 62
- 230000006870 function Effects 0.000 claims description 83
- 238000012545 processing Methods 0.000 claims description 42
- 238000004891 communication Methods 0.000 claims description 12
- 230000003068 static effect Effects 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 23
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 10
- 238000005538 encapsulation Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 101100256921 Ajellomyces capsulatus SID3 gene Proteins 0.000 description 2
- 101100064323 Arabidopsis thaliana DTX47 gene Proteins 0.000 description 2
- 101000840469 Arabidopsis thaliana Isochorismate synthase 1, chloroplastic Proteins 0.000 description 2
- 101150026676 SID1 gene Proteins 0.000 description 2
- 101100366400 Schizosaccharomyces pombe (strain 972 / ATCC 24843) spg1 gene Proteins 0.000 description 2
- 241000700605 Viruses Species 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 101150096768 sid4 gene Proteins 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种报文传输方法、装置及系统,该方法包括:SC节点根据负载分担或为避开SC节点至提供业务功能的设备之间的故障链路,将目的地址为该设备的IP地址的报文引流至目的节点为SF节点的传输路径中。第一SFF节点接收到需转发至SF节点的第一报文后,剥离第一报文的第一SRH得到载荷包含的报文。然后第一SFF节点将载荷包含的报文包含的第一目的地址修改为第二目的地址,得到第二报文,向SF节点发送第二报文。其中,第一目的地址指示上述提供业务功能的设备的IP地址,第二目的地址指示SF节点的IP地址。从而使SFF节点可以支持SF节点对从SF节点外调度来的报文进行处理,实现了业务流在SF节点之间的灵活调度。
Description
技术领域
本申请涉及通信领域,尤其涉及一种报文传输方法、装置及系统。
背景技术
基于互联网协议第六版(internet protocol version 6,IPV6)的段路由(segment routing ipv6,SRv6)是新一代互联网协议(internet protocol,IP)承载协议。业务功能链(Service Function Chaining,SFC)是NFV(Network FunctionVirtualization,网络功能虚拟化)虚拟网络中对流按需有序进行业务处理的重要手段。通常,SFC包含分类(service classifier,SC)节点、业务功能转发(service functionforwarder,SFF)节点、业务功能(service function,SF)节点。SC节点用于对进入SFC域的报文进行流分类,并封装业务报头。SFF节点与SF节点连接,用于根据业务报头转发报文。SF节点用于提供增值服务功能,用于对收到的报文进行业务功能的处理。
SRv6技术与SFC技术相结合时,若SF节点(如:增值业务设备(Value-addedService,VAS))不支持SRv6(SRv6-unaware)协议,SFF节点利用代理功能实现分段路由头(Segment Routing Header,SRH)的剥离和封装,从而代替SF节点接收或发送SRv6报文。但由于SF节点会丢弃接收到的目的地址(destination address,DA)不是自身IP地址的报文,会导致丢包问题。
发明内容
本申请实施例提供一种报文传输方法、装置及系统,能够使得SF节点对接收到的报文进行业务处理,有助于避免丢包的发生。
第一方面,提供一种报文传输方法,由与提供业务功能的设备通信的SFF节点执行,该SFF节点还与SF节点连接,该方法包括:SFF节点接收SC节点发送的第一报文,剥离第一报文的报头的第一SRH,得到载荷的包含的报文,载荷的包含的报的目的地址用于指示提供业务功能的设备。SFF节点再根据第一报文命中的第一段标识将载荷包含的报文中的目的地址修改为用于指示SF节点的地址,得到第二报文,向SF节点发送第二报文。上述提供业务功能的设备和SF节点提供相同的业务功能。
由此,如果第一报文的载荷包含的报文原本需要由提供业务功能的设备进行处理,被调度至SF节点处理,则第一SFF节点向SF节点发送的第二报文的目的地址已修改为SF节点的地址,使SF节点在接收到第二报文后不会丢弃第二报文。SF节点能够对第二报文进行处理并将处理后获得的报文继续进行转发。从而使SFF节点可以支持SF节点对从SF节点外调度来的报文进行处理,实现了业务流在SF节点之间的灵活调度。
其中,第一报文的载荷包含的报文的调度可以是基于负载分担进行的。例如,上述提供业务功能的设备的算力小于SF节点的算力,或者提供业务功能的设备的负载大于SF节点的负载,第一报文的载荷包含的报文被引流至SF节点进行处理。第一报文的载荷包含的报文的调度也可以是基于链路故障情况进行的。例如,第一SFF节点与提供业务功能的设备之间的链路发生故障,第一报文的载荷包含的报文被引流至SF节点进行处理。
本实施例中未对提供业务功能的设备的类型进行限定,例如,该设备可以是提供业务功能的服务器,也可以是提供业务功能的第一SF节点。当该设备是第一SF节点时,上述提及的与该设备提供相同的业务功能的SF节点是第二SF节点,下文以该设备为第一SF节点,上述提供相同的业务功能的SF节点是第二SF节点为例进行说明。
结合第一方面,在一种实现方式中,第一SFF节点在向第二SF节点发送第二报文后,还可以接收第二SF节点发送的第三报文。第三报文是第二SF节点对第二报文进行处理得到的报文,第三报文包含的源地址用于指示第二SF节点。第一SFF节点将第三报文的源地址修改为用于指示第一SF节点的IP地址,得到第四报文。
基于上述实现方式,第一SFF节点获取到的第四报文包含的源地址是用于指示第一SF节点的IP地址,使第一SFF节点在转发第四报文时指定传输路径,根据传输路径将第四报文传输至下一SF节点进行处理或返回终端。
可选地,第一SFF节点修改源地址的方式可以包括:第一SFF节点将第三报文包含的源地址修改为用于指示第一SF节点的IP地址,为第三报文封装第二SRH,来得到第四报文。例如,第一SFF节点可以根据第一SRH得到第二SRH,例如,第一SFF节点将第一SRH包含的第一段剩余减一,得到第二段剩余,并将第一SRH中的第一段剩余修改为第二段剩余,得到第二SRH。又如,第一SFF节点还可以根据第三报文包含第二源地址的五元组进行SRv6Policy匹配,基于匹配得到的SRv6 Policy为第三报文封装第二SRH。
为了第一SFF节点具有根据第二SRH指示的传输路径转发第四报文的能力,第一SFF节点还根据第二段剩余和第二SRH包含的段列表确定第三报文的IPv6报头中的目的地址,从而基于IPv6报头中的目的地址将第四报文发送至下一跳节点,实现第四报文在SRv6SFC中的继续转发。
可选地,本实施例中不对第四报文的目的地址指示的下一跳节点进行限定。
例如,若第一报文的载荷包含的报文用于向第一SF节点请求地址分配或从第一SF节点获取数据,第四报文的载荷(即第三报文)是第二SF节点根据第一报文的载荷包含的报文生成的返回至终端的数据,SC节点用于将第四报文发送至终端。
又如,第四报文的载荷还需经过第三SF节点进行业务功能处理,则第四报文包含的目的地址可以用于指示第二SFF节点的IP地址,第三SFF节点用于将第四报文发送至第三SF节点进行业务功能处理。
由于第一SFF节点可以根据SRv6协议将第四报文发送至终端或后续用于处理第四报文的SF节点,实现了对第二SF节点处理后报文的灵活调度,提高了报文调度的灵活性。
在本实施例中,上述第一SFF节点对第一报文包含目的地址进行修改的操作、第一SFF节点对第三报文包含的源地址进行修改的操作都是第一段标识匹配的动态代理操作。
可选地,第一段标识匹配的动态代理操作还包括第一SFF节点剥离第一报文的第一SRH的操作和为第三报文封装第二SRH的操作。
基于上述实现方式,第一SFF节点根据第一段标识的指示执行动态代理操作,来实现第一SFF节点对报文的操作,无需对第一SFF节点进行静态配置,提高了对第一SFF节点的配置效率。且本地SID表(local SID table),也称本地第一段标识列表,中配置有第一段标识的SFF节点都能实现上述动态代理操作,使报文的调度路径更加灵活,提高了报文调度的灵活性。
第二方面,提供了一种报文传输方法,由SC节点执行,该方法包括:SC节点接收第二报文,第二报文包含的目的地址用于指示提供业务功能的设备,然后SC节点根据段路由策略对第二报文进行封装,得到第一报文,并向第一SFF节点发送第一报文。第一报文包括SRH和第一段标识,第一段标识用于指示第一SFF节点将第二报文包含的目的地址修改为用于指示SF节点的地址。
由此,SC节点根据段路由策略将原本由提供业务功能的设备进行处理的第二报文调度至SF节点处理,根据段路由策略生成包含第一段标识的第一报文,并根据段路由策略将对第一报文引流入目的节点为SF节点的传输路径。因此,该传输路径中,用于将第二报文的载荷发送至SF节点的SFF节点在进行报文转发时,能够根据第一段标识将第一报文的第一目的地址修改为用于指示SF节点的地址,再将第一报文发送至第二SF节点,使SF节点不会丢弃该报文。从而使SFF节点可以支持SF节点对从SF节点外调度来的报文进行处理,实现了报文在不同SF节点之间的灵活调度。
下文以上述提供业务功能的设备为第一SF节点为例进行说明。
结合第二方面,在一种实现方式中,SC节点在根据段路由策略对第二报文进行封装,得到第一报文之前,SC节点还可以根据负载分担算法确定SF节点,SF节点与第一SF节点具有相同的业务功能,然后基于第二SF节点确定段路由策略,段路由策略用于将第二报文引流至第二SF节点。段路由策略包含第一段标识,第一段标识用于标识SF节点。
基于上述实现方式,SC节点根据负载分担算法对各个SF节点的报文进行调度,能够将目的地址为一个SF节点的报文引流至另一SF节点进行处理,提高了报文调度的灵活性。
结合第二方面,在一种实现方式中,段路由策略可以是控制器下发的,也可以是SC节点通过静态配置获取的。
第三方面,提供了一种报文传输装置,所述装置包括用于执行第一方面或第一方面任一种可能实现方式,或第二方面以及第二方面任一种可能实现方式中的报文传输方法的各个模块。
第四方面,提供了一种报文传输设备,报文传输设备用于执行第一方面或第一方面任一种可能实现方式,或第二方面以及第二方面任一种可能实现方式中的报文传输方法的操作步骤。
第五方面,提供了一种处理器,当处理器在第四方面的业务功能转发设备中运行时,使报文传输设备执行第一方面或第一方面任一种可能实现方式,或第二方面以及第二方面任一种可能实现方式中的报文传输方法的操作步骤。
第六方面,提供了一种系统,系统包括第四方面中的报文传输设备,报文传输设备用于执行第一方面或第一方面任一种可能实现方式,或第二方面以及第二方面任一种可能实现方式中的报文传输方法的操作步骤。
第七方面,提供一种计算机可读存储介质,包括指令。当指令在计算机上运行时,使得计算机执行如上述第一方面或第二方面提供的报文传输方法。
第八方面,提供一种计算机程序产品。当计算机程序产品在计算机上运行时,使得计算机执行如上述第一方面或第二方面提供的报文传输方法。
本申请中第三方面、第四方面、第五方面、第六方面、第七方面和第八方面的描述,可以参考第一方面与第二方面的详细描述;并且,第三方面、第四方面、第五方面、第六方面、第七方面和第八方面的有益效果,可以参考第一方面与第二方面的有益效果分析,此处不再赘述。
附图说明
图1为本申请实施例提供的一种SRv6报文的结构示意图;
图2为本申请实施例提供的一种SRv6 SID的示意图;
图3为本申请实施例提供的一种系统的示意图;
图4为本申请实施例提供的一种报文传输方法的示意图;
图5为本申请实施例提供的一种段路由策略的结构示意图;
图6为本申请实施例提供的另一种报文传输方法的示意图;
图7为本申请实施例提供的一种报文传输装置的结构示意图;
图8为本申请实施例提供的另一种报文传输装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或,a和b和c,其中a、b和c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。比如,本申请实施例中第一报文的“第一”和第二报文中的“第二”仅用于区分不同的报文。本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例提供的报文传输方法能够应用在分段路由(Segment Routing,SR)领域中业务功能链(也称业务链)的场景中。下面分别对SRv6技术、SFC技术和SR SFC技术分别进行简单的介绍。
SRv6技术就是将SR技术应用于IPv6网络中,即采用现有的IPv6转发技术,通过扩展IPv6报文的报头,对报文实现类似标签转发(例如基于多协议标签交换(Multi-ProtocolLabel Switching,MPLS)的报文转发)的处理。
SR是一种基于源路由转发模式的隧道技术。SR技术包括IPv6数据面,即SRv6。SRv6通常使用SRH携带段列表(SID list,也称segment list或SID列表)。SID list中的一个或多个SID用于指示SRv6报文的转发路径,转发路径构成SR隧道(SR Tunnel)。SR隧道是指由头节点指定的段列表,并将段列表封装到报头中形成的隧道。其中,隧道泛指两点之间的端到端路径的集合,这两点分别是隧道的起点和终点,隧道的起点为头节点,隧道的终点为尾节点。
以上对SR技术进行了整体介绍,接下来对SRv6技术如何将SR技术应用于IPv6网络中进行介绍。
SRv6的SID使用IPv6地址编码,并封装在SRH中。在转发报文时,支持SRv6的节点会按照报文中的目的地址,查询本地SID表,当报文的目的地址与节点的本地SID表中的任一SID匹配时,确认目的地址命中了本地SID表,则节点基于该SID对应的拓扑、指令或服务,执行相应的操作。如果报文的目的地址与本地SID表中的每个SID均不匹配,则节点根据目的地址查询IPv6的路由转发表,根据目的地址在路由转发表中命中的路由转发报文。
本地SID表为具有SRv6功能的节点维护的表。本地SID表的功能主要有三个。第一,定义本地生成的SID,例如End.X SID。第二,指定绑定到这些SID的指令。第三,存储和这些指令相关的转发信息,例如出接口和下一跳等。
由于SRv6通常使用SRH携带段列表,SRv6报文可以是包含SRH的IPv6报文。IPv6报文包括IPv6报头、扩展头和载荷,SRH是为了基于IPv6转发平面实现SRv6所新增的一种扩展头。SRH中包含段列表,SRH根据段列表指定一个IPv6的显示路径。头节点在IPv6报文增加SRH,中间节点就可以按照SRH指定的显示路径对报文进行转发。通过这样增加扩展头的方式,SR技术与原有IPv6转发平面相结合。
例如,如图1所示,SRv6报文包括IPv6报头、SRH和载荷,其中,IPv6报头包括目的地址,SRH包括段列表和段剩余字段。
(1)段列表
段列表可以包括一个或多个SID,每个SID可以是IPv6地址的形式,因此段列表也可以理解为一个显式的IPv6地址栈。段列表可以记为segment list[n],segment list[n]长度为段长度(segment length)*n比特(bit)。如果段长度为128bit,则segment list[n]长度为128*n比特。segment list是IPv6地址形式。
(2)剩余段
段剩余(segment left,SL)字段用于指示到达目的节点前访问的中间节点数量。SL字段还可以称为剩余节点字段。SL字段的取值可以指明段列表中的活跃SID。SL的长度可以为8比特。例如,段列表包括5个SID,5个SID包括SID0、SID1、SID2、SID3以及SID4,而SL取值为2,则表明报文未访问段列表中两个SID对应的节点,如SID0以及SID1,段列表中当前节点要根据SID2对报文执行操作,报文已访问段列表中两个SID对应的节点,如SID3以及SID4。
(3)扩展头长度(header Extended Length,Hdr Ext Len)
扩展头长度字段用于指明SRH头的长度。SRH头的长度主要是指段列表的长度,例如是从segment list[0]到segment list[n]所占用长度。
除了上述段列表、段剩余字段和扩展头长度字段,SRH还可以包含类型长度值(Type-Length-Value,TLV)字段、下一个报头(Next Header)字段、路由类型(RoutingType)字段、最后一个索引(Last Entry)字段、标志(Flag)字段、标签(Tag)字段和载荷等,各字段的具体作用及格式请参考SRv6协议中对SRH格式的说明,在此不再赘述。
以上对SRv6报文的结构进行了介绍,SID在SRv6报文在转发过程中用于指示SRv6报文的转发操作,接下来结合图2对SRv6 SID进行介绍。
请参见图2,图2为本申请实施例提供的一种SRv6 SID的结构示意图。SID包括定位(Locator)信息以及功能(Function)信息,SID的格式为Locator:Function。可选地,SID还可以包括参数(Arguments)信息,则SID的格式为Locator:Function:Arguments。SRv6 SID生成以后,一方面会加入节点的本地SID表,另一方面也可以通过路由协议对外发布。实际转发时,SRv6 SID里的定位信息用于使网络里的其他节点进行路由寻址,找到SRv6 SID的生成节点,并将SRv6报文转发到该节点。功能信息用于指示SRv6 SID的生成节点进行相应的功能操作。SRv6中的定位信息和功能信息所包含的具体内容可参考SRv6协议中对SRv6SID的描述,在此不再赘述。
将SRv6技术和SFC技术相结合,能够基于SRv6技术实现业务链报文在SFC域中的处理及转发。SFC是一种给应用层提供有序服务的技术。SFC用于将网络设备上的业务功能在逻辑层面上联接起来,从而形成一个有序的服务组合。
下面结合图3示出的一种系统300,对SRv6 SFC技术进行说明。系统300是对SRv6SFC的架构的举例说明。
系统300包括软件定义网络(Software Defined Networking,SDN)控制器301、终端309和设备310。SDN控制器301用于进行系统300中的业务流控制。例如,SDN控制器301通过边界网关协议链路状态(border gateway protocol-link state,BGP-LS)采集拓扑信息,根据拓扑信息计算路径来建立业务功能路径(service function path,SFP),然后通过BGP SRv6Policy下发包含业务功能路径的SRv6 Policy,使终端309向设备310发送的报文可基于SRv6Policy经过SFC域中的业务功能路径传输至设备310。终端309用于向设备310发送业务报文,终端309发送的业务报文通过系统300包括的SFC域转发至设备310。
终端309可以是手机终端、平板电脑、笔记本电脑、虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、混合现实(Mixed Reality,MR)设备、扩展现实(Extended Reality,ER)设备、摄像头或车载终端等,还可以是边缘设备(例如,携带具有处理能力芯片的盒子)等。设备310用于通过SFC域接收终端309发送的报文,对报文进行业务功能处理,或根据报文向终端309返回终端309请求获取的数据(例如:设备310分配给终端309的地址等)。本实施例中的设备310可以用于对报文进行业务功能处理,可以被称为第一SF节点。SFC域包括SC节点302、第一SFF节点303、第二SFF节点304、第二SF节点305和第三SF节点306。终端309、SC节点302、第一SFF节点303、第二SFF节点304以及设备310依次连接,第一SFF节点303还与第二SF节点305连接,第二SFF节点304还与第三SF节点306连接。SC节点302用于对进入SFC域的报文进行分类。例如,SC节点302根据报文包含的五元组(源IP地址、源端口、目的IP地址、目的端口和传输层协议)中的一个或多个元素确定与其对应的隧道标识,根据隧道标识确定匹配的SRv6 Policy,然后根据SRv6 Policy为业务报文进行SRH封装得到SRv6报文,以使SRv6报文基于SRv6Policy包含的候选路径进行传输。其中,SRv6 Policy包含隧道标识和段列表。隧道标识的具体表现形式可以是包括头节点(Headend)标识和目的节点(Endpoint)标识;或者隧道标识的具体表现形式可以是包括头节点标识、目的节点标识和颜色(Color)标识。
第一SFF节点303和第二SFF节点304用于转发接收到的SRv6报文。例如,第一SFF节点303接收SC节点302发送的SRv6报文,并根据SRv6报文包含的SRH向第二SF节点305转发报文。第一SFF节点303还用于接收第二SF节点305发送来的报文,对第二SF节点305发送来的报文进行封装后转发。
作为一种可能的实施方式,第一SFF节点303和第二SFF节点304中集成有用于与SF节点通信的SFC Proxy。SFC Proxy包括四种类型,这四种类型也称四种代理模式。具体地,SR proxy包括静态代理(static proxy)、动态代理(dynamic proxy)、伪代理(masquerading proxy)和共享内存代理(shared-memory proxy)。
静态代理的方式基于End.AS SID实现。End.AS SID用于标识SRv6 SFC中的一个SF节点。End.AS SID对应的转发动作是:报文从SFF节点发送到SF节点之前,SFF节点先解封装报文,然后根据End.AS SID关联的出接口转发报文;报文从SF节点到SFF节点之后,SFF节点根据报文的入接口或入接口对应的虚拟局域网(Virtual Local Area Network,VLAN)关联的End.AS SID及其配置,重新封装报文。
动态代理的方式基于End.AD SID实现。End.AD SID用于标识SRv6 SFC中的一个SF节点。End.AD SID对应的转发动作是:报文从SFF节点发送到SF节点之前,SFF节点从SRv6报文剥离SRH,得到不包含SRH的报文,将不包含SRH的报文发送给SF节点,且SFF节点缓存SRH;SFE节点接收到不包含SRH的报文,对报文进行处理,将处理后的报文返回给SFF节点;SFF节点接收到SF节点返回的不包含SRH的报文后,从缓存中获取SRH,将处理后的报文重新封装SRH,将报文恢复为SRv6报文,再转发SRv6报文。
伪代理的方式基于End.AM SID实现。End.AM SID用于标识SRv6 SFC中的一个SF节点。End.AM SID对应的转发动作是:报文从SFF节点发送到SF节点之前,SFF节点先将SRv6报文的目的地址修改为SRH中第一个SID值,然后根据End.AM SID关联的出接口转发。报文从SF节点发送至SFF节点之后,SFF将SRv6报文的目的地址设置为SRH中SL指示的SID值,按照正常SRv6报文转发流程进行报文转发。
本实施例中以动态代理为例,第一SFF节点303利用SFC Proxy功能向第二SF节点305转发接收到的报文或转发从第二SF节点305接收到的报文,转发接收到的报文的操作和转发从第二SF节点305接收到的报文是端点动态代理SID(End.Ad SID,End表示endpoint,意为端点;d表示dynamic,意为动态)对应的动态代理操作。
可选地,第一SFF节点303和第二SFF节点304配置的End.Ad SID可以是End.proxy-mapping SID(End表示endpoint,意为端点;proxy-mapping意为业务流编排的代理操作),使第一SFF节点303在向第二SF节点305发送报文或接收第二SF节点305发送的报文时执行End.proxy-mapping SID对应的动态代理操作。在本实施例中,End.proxy-mapping SID对应的动态代理操作可以包括:将向第二SF节点305发送的报文的目的地址修改为第二SF节点305的IP地址,以及将从第二SF节点305接收的报文的源地址修改为第一SF节点的IP地址。
第一SF节点、第二SF节点305、第三SF节点306用于对报文进行业务功能处理。例如,SF节点305对报文进行的业务功能处理类型可以而不限于是防火墙、负载均衡、应用加速器、合法性拦截、网络地址转换(Network Address Translation,NAT)、带宽控制、病毒检测、云存储、深度包检测(Deep Packet Inspection,DPI)、入侵检测或者入侵防御、地址分配请求、数据请求等。SF节点分为感知SRv6封装的SF(SRv6-aware SF)节点和不感知SRv6封装的SF(SRv6-unaware SF)节点。SRv6-aware SF节点能够识别收到的SRv6报文并对其进行处理,SRv6-unaware SF节点不识别SRv6报文,收到后将其丢弃。本实施例中以第二SF节点305、第三SF节点306是SRv6-unaware SF节点为例,第二SF节点305、第三SF节点306需要SFF节点使用动态代理功能来实现SF节点与SFF节点的报文传输。在SFC领域中,SF节点也称为增值业务设备(Value-added Service,VAS)。在本实施例中,第二SF节点305对第一SFF节点303发送的报文进行处理后,将处理后的报文再返回给第一SFF节点303。可选地,第一SF节点、第二SF节点305、第三SF节点306可以是属于不同资源池的用于实现相同的业务功能的节点,资源池是是指SF节点所涉及到的资源(例如:计算资源、存储资源等)的集合。
作为一种可能的实施方式,由于叶脊拓扑网络结构的可扩展性强,且能够提高网络通信效率,SFC域还可以基于叶脊拓扑网络结构来进行构建。例如,SFC域还包括叶脊(Spine)节点307和尾端节点(Tail End)308,SC节点302通过叶脊节点307分别与第一SFF节点303、第二SFF节点304和尾端节点308连接,尾端节点308还与设备310连接。叶脊节点307和尾端节点308属于叶脊拓扑网络结构进行报文转发的节点,不对报文的载荷进行处理,在此不再对叶脊节点307和尾端节点308处理报文的方式进行赘述。
在SFC域基于叶脊拓扑网络结构来进行构建时,SC节点302作为叶脊拓扑网络结构中的入链子叶(Acess Leaf),第一SFF节点303和第二SFF节点304作为叶脊拓扑网络结构中的服务子叶(Server Leaf)。
需要说明的是,本申请实施例对节点的具体形态不予限定,节点可以是一台物理设备或一个虚拟机。例如,SC节点302、第一SFF节点303、第二SFF节点304、叶脊节点307和尾端节点308可以分别是一台物理设备,如路由器、交换机等。至少一个节点部署在同一台物理设备上。另外,第二SF节点305、第三SF节点306的物理实体可以是一种计算设备,该计算设备可以而不限于是服务器、主机、个人计算机、网络设备或者终端设备。
在可能的实现方式中,终端309和SC节点302之间、SC节点302和叶脊节点307之间、叶脊节点307与尾端节点308之间以及尾端节点308与设备310之间还可以包含一个或多个网络设备,本实施例对系统300的具体结构不作限定。
本申请实施例提供一种报文传输方法,第一SFF节点303在接收到SRv6报文时剥离SRv6报文的SRH来得到SRv6报文的载荷包含的报文,将载荷包含的报文包含的用于指示第一SF节点的第一目的地址修改为第二目的地址,第二目的地址用于指示第二SF节点305的IP地址,第一SFF节点303再向第二SF节点305发送包含第二目的地址的报文,使第二SF节点305不会丢弃该报文,能够对报文进行处理。相对于第二SF节点305为SRv6-unaware SF节点,会丢弃第一SFF节点303发送的目的地址不是第二SF节点305的IP地址的报文,SFF节点的代理功能无法支持SF节点对从SF节点外的SF节点调度来的报文进行处理的情况,本实施例中的SFF节点可以支持SF节点对从SF节点外调度来的报文进行处理,实现了业务流在不同SF节点之间的灵活调度,提高了SRv6 SFC中的SF节点进行报文调度的灵活性。
本申请实施例提供的报文传输方法,可以应用于SRv6 SFC中在不同SF节点之间进行报文调度的场景,下述实施例以系统300为例进行示例性说明。
图4为本申请实施例提供的一种报文传输方法的示意图,该方法可以应用于SRv6SFC系统300,该方法包括步骤401-步骤406。
本申请实施例提供的上述报文传输方法应用于SRv6 SFC中在不同SF节点之间进行报文调度的场景,在第一SFF节点303向第二SF节点305发送第二报文之前,需要SC节点302将终端309发送的目的地址为设备310的报文转发至第二SF节点305。
首先,根据步骤401-步骤403对SC节点302确定将发送的目的地址为设备310的报文转发至第二SF节点305的具体步骤进行说明。
步骤401、SC节点302接收业务报文。
SC节点302从终端309接收业务报文。业务报文包含五元组,五元组包含源地址、源端口、目的地址、目的端口和传输层协议。业务报文的源地址是终端309的IP地址,目的地址是设备310的IP地址,即第一目的地址。
步骤402、SC节点302根据段路由策略对业务报文进行封装,得到第一报文。
SC节点302根据业务报文包含的五元组中的一个或多个元素与段路由策略进行匹配,确定与业务报文匹配的段路由策略,根据段路由策略对为业务报文封装SRH,得到第一报文。具体可以包括:SC节点302根据业务报文包括的五元组中的一个或多个元素,匹配到与上述元素对应的头节点标识和目的节点标识,进而根据包含上述头节点标识和目的节点标识的段路由策略确定SRH所需要的参数。其中,段路由策略包括头节点标识、目的节点标识和段列表。可选地,段路由策略还包括颜色标识,则SC节点302可进一步根据业务报文包含的五元组中的一个或多个元素,确定与上述元素匹配的头节点标识、目的节点标识和颜色标识。SC节点302进一步根据头节点标识、目的节点标识和颜色标识,确定包含上述参数的段路由策略,进而获取该段路由策略包含的段列表,以进行SRH的封装。
第一报文包含的SRH指示第一报文从第二SFF节点303至第二SF节点305的传输路径。该传输路径是确定的图5中的候选路径,即图5的候选路径中选择出来的路径。段路由策略的具体结构请参考图5。
以第一SFF节点利用动态代理功能转发报文为例,第一报文的报头包含IPv6报头和第一SRH,IPv6报头中的目的地址包含第一段标识,例如End.proxy-mapping SID。第一SRH包含第一段列表,第一段列表用于指示第一报文的传输路径。第一段标识用于指示第一SFF节点303进行业务流编排的操作,使第一SFF节点303在第一报文的第一段标识命中第一SFF节点303的本地SID表时执行第一段标识对应的动态代理操作,例如第一段标识的功能信息中包含的业务流编排的操作。
图5示出了本申请实施例提供的一种段路由策略的结构示意图。
段路由策略500包括头节点(Headend)标识和目的节点(Endpoint)标识。头节点标识用于指示段路由策略500的头节点,例如本实施例中的终端309。目的节点标识用于指示引流入段路由策略500的报文的目的地址,例如第二SF节点305的IP地址。可选地,段路由策略500还可以包括颜色(Color)标识。颜色标识用于指示业务与段路由策略500的关联,例如段路由策略500为低时延(端到端时延小于10ms)的段路由策略的Color的值可以是100,则系统300中的任一业务具有低时延需求的节点设置自身Color的值为100,使自身关联至段路由策略500。
其中,段路由策略500的目的节点标识指示的目的地址与所引流的报文的目的地址可以不相同。例如,SC节点302接收的业务报文的五元组中的源地址为终端309的地址,目的地址为设备310的地址,SC节点302根据业务报文的五元组中的一个或多个元素匹配的段路由策略500的目的节点标识是第二SF节点305的IP地址。
在一种实现方式中,段路由策略500包含多条候选路径(Candidate Path),例如候选路径510和候选路径520,候选路径510包含候选路径标识(Discriminator)。可选地,候选路径510还包含协议(Protocol-origin)标识和创建者(Originator)标识中的一个或多个。协议标识用于描述候选路径510基于何种协议生成。创建者标识用于指示生成候选路径510的节点。候选路径标识用于在段路由策略500中对候选路径510进行标识。以候选路径510为例进行说明,候选路径510包含一个或多个段列表,以图5为例,候选路径510可以包括第一段列表511,第一段列表511用于指示基于段路由策略500向目的节点发送业务报文的传输路径。候选路径520还可包括段列表(图5中未示出)。
在一种实现方式中,段路由策略500包含一条候选路径(Candidate Path),例如候选路径510,则段路由策略500包括头节点标识、目的节点标识和第一段列表511。可选地,段路由策略500还包括颜色标识,以满足业务需求。进一步地,段路由策略500还可包括候选路径标识(Discriminator)。更进一步地,段路由策略500还包括协议(Protocol-origin)标识和创建者(Originator)标识中的一个或多个。
在本实施例中,段路由策略500中的头节点标识、目的节点标识和颜色标识作为隧道标识,隧道指段路由策略500包含的候选路径510中的第一段列表511指示的传输路径。例如,SC节点302根据接收到的业务报文的五元组中的一个或多个元素与SC节点302配置的段路由策略的头节点标识和目的节点标识进行匹配,确定与业务报文匹配的段路由策略500。SC节点302利用业务报文包含的颜色标识确定候选路径510包含的第一段列表511指示的传输路径为业务报文的传输路径。SC节点302根据第一段列表511对业务报文进行SRH封装,得到第一报文。
作为一种可能的实施方式,段路由策略500是SC节点302根据负载分担算法确定第二SF节点305的算力资源大于设备310或第二SF节点305的负载小于设备310后,将第二SF节点305作为候选路径510的目的节点所得到的段路由策略。上述算力资源可以是指第二SF节点305的算力资源中当前未执行计算操作的算力资源,例如多线程处理器中未执行线程的核心(core)。应说明的是,第二SF节点305需对接收到的报文执行与设备310相同的业务功能处理,则第二SF节点305与设备310具有相同的业务功能。
在另外的实施方式中,段路由策略500可以是控制器301根据负载分担算法确定第二SF节点305的算力资源大于设备310或第二SF节点305的负载小于设备310后,将第二SF节点305作为候选路径510的目的节点所得到的段路由策略。控制器301将段路由策略500下发至SC节点302。可选地,段路由策略500还可以是SC节点302通过静态配置获取的。
步骤403、SC节点302向第一SFF节点303发送第一报文。
SC节点302向第一SFF节点303发送第一报文,可以是SC节点302向下一跳节点发送包含第一SRH的第一报文,第一SRH包含第一段列表。第一段列表中包含第一段标识,第一段标识设置于第一SFF节点303,第一段标识用于指示第一SFF节点303执行动态代理操作,以完成第一SFF节点303与第二SF节点305之间的报文传输。第一报文会经第一段列表中包含的段标识对应的各个节点转发至第一SFF节点303。
例如,SC节点302可以向第一SFF节点303发送第一报文,也可以通过中间网络设备(例如:叶脊节点307)向第一SFF节点303发送第一报文。
由于段路由策略500中候选路径510的目的节点是配置于第一SFF节点303的SRProxy,SR Proxy能够通过第一段标识对应的动态代理操作实现第一SFF节点303与第二SF节点305之间的报文传输。因此,SC节点302根据段路由策略500生成的第一报文中的SRH的第一段列表包含第一段标识,第一报文经段标识所指示的传输路径到达第一SFF节点303后,第一SFF节点303能够在接收到报文后根据第一段标识对应的动态代理操作将报文的第一目的地址修改为第二目的地址,将包含第二目的地址的报文传输至第二SF节点305。从而使SFF节点可以支持SF节点对从SF节点外调度来的报文进行处理,实现了报文在不同SF节点之间的灵活调度。
接下来根据步骤401-步骤403对第一SFF节点303将第一报文的载荷转发至第二SF节点305的具体步骤进行说明。
步骤404、第一SFF节点303剥离第一报文的第一SRH,得到第一报文的载荷包含的报文。
第一段标识对应的动态代理操作包括剥离第一报文的第一SRH,则第一SFF节点303根据第一段标识剥离第一报文的第一SRH,得到第一报文的载荷包含的报文。第一报文的载荷包含的报文的目的地址是第一目的地址,即设备310的IP地址。
可选地,第一段标识对应的动态代理操作还可以包括:将第一SRH保存至本地的高速缓冲存储器(cache)中,使第一SFF节点303具有为报文封装第一SRH的能力。
步骤405、第一SFF节点303将第一目的地址修改为第二目的地址,得到第二报文。
第一段标识对应的业务流编排的操作可以包括将第一报文的载荷包含的报文的目的地址修改为第二SF节点305的IP地址,即第二目的地址,则第一SFF节点303根据第一段标识将第一目的地址修改为第二目的地址。
步骤406、第一SFF节点303向第二SF节点305发送第二报文。
第一段标识对应的动态代理操作可以包括向第一段标识关联的下一跳节点发送剥离第一SRH后的报文,本实施例中第一段标识关联的下一跳节点包括第二SF节点305。因此,第一SFF节点303确定第一段标识关联的下一跳节点为第二SF节点305,向第二SF节点305发送第二报文,使第二SF节点305接收第二报文,再向终端309或用于对第二报文的载荷进行业务功能处理的下一SF节点转发报文。
基于上述报文传输方法,第一SFF节点303将被调度至第二SF节点305进行处理的报文的目的地址从原目的地址修改为第二SF节点305的IP地址,使第二SF节点305不丢弃从第一SFF节点303接收到的调度报文,能够对调度报文进行处理以及进行后续转发,提高了SRv6 SFC中的SF节点进行报文调度的灵活性。
以上结合图4和5对的报文传输方法进行了说明,接下来对系统300中终端309通过SFC域向第二SF节点305发送报文的过程中,系统300中各节点对报文进行处理的步骤进行示例性说明。
SC节点302根据终端309发送的业务报文生成SRv6报文,向第一SFF节点303发送SRv6报文。业务报文包含五元组,业务报文的五元组中源地址为终端309的IP地址,目的地址为设备310的IP地址,SRv6报文的传输路径为:第二SFF节点303—>第二SF节点305。
第一SFF节点303剥离SRv6报文的SRH得到SRv6报文的载荷包含的报文文,将SRv6报文的载荷包含的报文的目的地址修改为第二目的地址,即第二SF节点305的IP地址,然后将修改目的地址后的报文发送至第二SF节点305。
第二SF节点305对从第一SFF节点303接收到的报文进行业务功能处理后将处理后的报文返回至第一SFF节点303。
第一SFF节点303将第二SF节点305发送的报文的源地址修改为第二源地址,即设备310的IP地址,并为修改源地址后的报文进行SRH封装,得到重新封装的SRv6报文,将重新封装的SRv6报文发送至下一跳节点。
第一SFF节点303可以根据第二SF节点305发送的报文的五元组中的一个或多个元素确定匹配的SRv6 Policy,然后根据SRv6 Policy为从第二SF节点305接收的报文进行SRH封装。可选地,本实施例中不对重新封装的SRv6报文的下一跳节点进行限定。例如,该下一跳节点可以是SC节点302,使SC节点302将报文返回终端309,下一跳节点也可以是第三SF节点306所关联的第三SFF节点304,使第三SFF节点304将报文转发至第三SF节点306进行处理后再返回终端309。
示例地,本实施例以SFC域基于叶脊拓扑网络结构来进行构建,SFC域包含叶脊节点307和尾端节点308的系统300中,终端309通过SFC域向设备310发送业务报文为例,结合图6以步骤601-步骤608对业务报文的具体传输流程以及系统300中各节点的动作进行详细阐述。
步骤601、终端309向SC节点302发送业务报文。
业务报文包含五元组,和/或终端309的应用程序日志文件、地理空间服务数据等数据。
步骤602、SC节点302确定业务报文匹配的SRv6 Policy。
SC节点302可以根据业务报文的五元组中的一个或多个与元素确定业务报文匹配的SRv6 Policy,该SRv6 Policy中与业务报文对应的段列表为(3::,1::),3::为第一SFF节点303中配置的SFC Proxy的段标识,1::为叶脊节点307的段标识。SRv6 Policy的作用是利用Segment Routing的源路由机制,通过在头节点(例如:SC节点302)封装一个有序的指令列表(段列表)来指导报文穿越网络。
步骤603、SC节点302根据SRv6 Policy将业务报文封装为报文A。
SC节点302利用SRv6 Policy对业务报文进行封装,得到报文A。报文A为SRv6报文,包含IPv6报头、SRH和载荷。报文A的具体封装过程可以参考步骤402中的描述,此处不再赘述。
步骤604、SC节点302向叶脊节点307发送报文A。
报文A的IPv6报头包括IPv6 DA=1::,IPv6 DA=1::表示目的地址为叶脊节点307的段标识。报文A的SRH包括SRH(SL=1)(3::,1::)。SL=1表示段剩余字段的值为1,即第一SL=1。SC节点302基于报文A的IPv6报头中的IPv6 DA=1::向叶脊节点307发送报文A。
步骤605、叶脊节点307向第一SFF节点303发送报文B。
叶脊节点307接收到报文A后,根据第一报文生成报文B,根据报文B的目的地址转发第二报文。由于第一SFF节点303集成了SR Proxy,第一SFF节点303利用SR Proxy的代理功能向第二SF节点305传输报文,则第一SFF节点303需配置有SR Proxy的段标识3::,以使第一SFF节点303根据段标识3::执行SR Proxy的代理功能的操作。
报文A的目的地址1::命中叶脊节点307的本地SID表中的段标识1::,段标识1::用于指示叶脊节点307将报文A的SRH包含的SL的值减一,使第二SL=0,得到第二SRH,并根据第一段列表和第二SL确定第一SFF节点303的段标识3::,并将第一SFF节点303的段标识3::作为报文B的IP报头中的目的地址,以获得报文B。叶脊节点307根据报文B的目的地址3::向第一SFF节点303发送报文B。
步骤606、第一SFF节点303向第二SF节点305发送报文C。
第一SFF节点303接收到报文B后,剥离报文B的SRH以得到报文B的载荷,即报文C,将报文C发送至第二SF节点305。报文C的目的地址为第二SF节点305的目的地址。
报文B的目的地址命中第一SFF节点303的本地SID表中的段标识3::,段标识3::用于指示第一SFF节点303剥离报文B的SRH得到报文C,段标识3::还用于指示第一SFF节点303将报文C的目的地址修改为第二SF节点305的IP地址,即第二目的地址,向第二SFF节点305发送报文C。
步骤607、第二SF节点305向第一SFF节点303发送报文D。
第二SF节点305接收到第一SFF节点303发送的报文C后,由于报文C包含第二目的地址,即第二SF节点305的IP地址,则第二SF节点305不丢弃报文C。第二SF节点305对报文C进行业务功能(例如:防火墙、负载均衡、应用加速器、合法性拦截、网络地址转换、带宽控制、病毒检测、云存储、深度包检测、入侵检测或者入侵防御)处理,得到处理后的报文D。第二SF节点305向第一SFF节点303发送报文D。
步骤608、第一SFF节点303向叶脊节点307发送报文E。
第一SFF节点303接收到第二SF节点305发送的报文D后,根据报文D生成报文E。
可选地,第一SFF节点303的本地SID表中的段标识3::对应的动态代理操作包括为报文D封装第三SRH,以及将报文D的源地址修改为设备310的IP地址,即第二源地址,来得到报文E。因此,第一SFF节点303根据报文D的源地址和目的地址生成第三SRH,为报文D封装第三SRH,并报文D包含的第一源地址修改为第二源地址,得到报文E。
应说明的是,本实施例中不对叶脊节点307转发报文E的下一跳节点进行限定,该下一跳节点可以是SC节点302,也可以是第三SF节点306所连接的第三SFF节点304。从而进一步提高报文调度的灵活性。
例如,如图6中叶脊节点307指向SC节点302的实线箭头所示,报文D是第二SF节点305对报文C进行业务功能处理后,第二SF节点305返回终端309的报文。示例地,终端309的业务报文用于请求分配地址时,报文D的载荷包含第二SF节点305为终端309分配的地址。报文D的源地址是第二源地址,目的地址是终端309的IP地址,第一SFF节点303根据报文D的源地址和目的地址为报文D封装的第三SRH所指示的传输路径为:第一SFF节点303—>叶脊节点307—>SC节点302—>终端309。
又如,如图6中叶脊节点307指向第二SFF节点304的虚线箭头所示,报文D还需经过第三SF节点306进行业务功能处理,则第一SFF节点303根据报文D的源地址和目的地址为报文D封装的第三SRH所指示的传输路径为:第一SFF节点303—>叶脊节点307—>第二SFF节点304—>第三SF节点306。
可以理解的是,为了实现上述实施例中的功能,计算设备包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
图7为本申请实施例提供的一种报文传输装置的结构示意图。该报文传输装置可以用于实现上述方法实施例中SFF节点或SC节点的功能,因此也具有上述方法实施例所具备的有益效果。在本实施例中,该报文传输装置可以是如图3所示的第一SFF节点303或SC节点302,还可以是应用于服务器的模块(如芯片)。
如图7所示,报文传输装置700包括:收发模块701和处理模块702。示例性地,收发模块701用于支持报文传输装置700发送报文和接收报文。处理模块702用于对报文传输装置700的动作进行控制管理。可选的,若报文传输装置700包括存储单元,则处理模块702还可以执行存储在存储器中的程序或指令,以使得报文传输装置700实现上述任一实施例所涉及的方法和功能。
示例性的,若报文传输装置700是SC节点302,收发模块701可以用于执行例如图4中的步骤401和步骤403,和/或用于本文所描述的技术的其它过程。处理模块702可以用于执行例如图4中的步骤402,和/或用于本文所描述的技术的其它过程。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
示例性的,若报文传输装置700是第一SFF节点303,收发模块701可以用于执行例如图4中的步骤406,和/或用于本文所描述的技术的其它过程。处理模块702可以用于执行例如图4中的步骤404和步骤405,和/或用于本文所描述的技术的其它过程。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
示例性的,在硬件实现上,可以由收发器(发送器/接收器)和/或通信接口执行收发模块701的功能,可以由处理器执行处理模块702的功能,其中,处理模块702可以以硬件形式内嵌于或独立于报文传输装置700的处理器中,也可以以软件形式存储于报文传输装置700的存储器中,以便于处理器调用执行以上各个功能单元对应的操作。
如图8所示,本申请实施例还提供一种报文传输装置800,该报文传输装置800包括存储器801、处理器802和通信接口803。所述存储器801用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述通信接口803用于收发报文。当所述处理器802执行所述计算机指令。
例如报文传输装置800为SC节点302,通信接口803用于执行如图4中的步骤401和步骤403,和/或用于本文所描述的技术的其它过程。处理器802可以用于执行例如图4中的步骤402,和/或用于本文所描述的技术的其它过程。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
又如报文传输装置800为第一SFF节点303,通信接口803可以用于执行例如图4中的步骤406,和/或用于本文所描述的技术的其它过程。处理器802可以用于执行例如图4中的步骤404和步骤405,和/或用于本文所描述的技术的其它过程。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的至少一个处理器执行该计算机执行指令时,设备执行图4或图6所示的报文传输方法中的步骤。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施执行图4或图6所示的报文传输方法中的第一节点的步骤。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(ElectricallyEPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (25)
1.一种报文传输方法,其特征在于,该方法由与提供业务功能的设备通信的业务功能转发SFF节点执行,所述方法包括:
接收业务分类SC节点发送的第一报文,第一报文包含第一分段路由头SRH和目的地址,所述第一报文包含的目的地址用于指示所述设备,所述第一SRH包含第一段标识,所述第一段标识用于指示剥离所述第一SRH并修改目的地址;
基于所述第一报文和所述第一段标识获得第二报文,所述第二报文不包含所述第一SRH且所述第二报文包含的目的地址用于指示与所述设备提供相同业务功能的SF节点;
向所述SF节点发送所述第二报文。
2.根据权利要求1所述的方法,其特征在于,在向所述SF节点发送所述第二报文后,所述方法还包括:
接收所述SF节点发送的第三报文,所述第三报文的源地址用于指示所述SF节点;
基于所述第三报文获得第四报文,所述第四报文的源地址被替换为指示所述设备的第三报文。
3.根据权利要求1或2所述的方法,其特征在于,所述第一段标识还用于指示修改来自所述SF节点的报文的源地址。
4.根据权利要求2或3所述的方法,其特征在于,所述第一SRH还包含第一段剩余,所述基于所述第三报文获得第四报文包括:
基于所述第一SRH获得第二SRH,所述第二SRH包含第二段剩余,所述第二段剩余是更新所述第一段剩余所获得的段剩余;
基于所述第三报文和所述第二SRH,获得所述第四报文,所述第四报文的源地址用于指示所述设备。
5.根据权利要求4所述的方法,其特征在于,所述第二SRH还包含段列表,所述第四报文包含的目的地址用于指示基于所述第二段剩余和所述段列表确定的所述SC节点。
6.根据权利要求4所述的方法,其特征在于,所述第二SRH还包含段列表,所述第四报文包含的目的地址用于指示基于所述第二段剩余和所述段列表确定的所述SFF节点的下一跳SFF节点。
7.根据权利要求1至6任一所述的方法,其特征在于,所述设备为不同于所述SF节点的另一SF节点。
8.根据权利要求1至7任一所述的方法,其特征在于,所述第一报文还包含所述SC节点接收的第二报文,所述第二报文包含的目的地址用于指示所述设备。
9.一种报文传输方法,其特征在于,由业务分类SC节点执行,所述方法包括:
接收第二报文,所述第二报文包含的目的地址用于指示提供业务功能的设备;
根据段路由策略和所述第二报文获得第一报文,所述第一报文包含分段路由头SRH,所述SRH包含第一段标识,所述第一段标识用于指示剥离所述SRH并修改目的地址,所述段路由策略包含所述第一段标识和所述第二报文包含的目的地址;
向与所述设备通信的业务功能转发SFF节点发送所述第一报文。
10.根据权利要求9所述的方法,其特征在于,所述第一段标识用于标识与所述设备提供相同的业务功能的业务功能SF节点。
11.根据权利要求9或10所述的方法,其特征在于,所述方法还包括:
接收来自控制器的所述段路由策略;或者
通过静态配置获取所述段路由策略。
12.根据权利要求9至11任一所述的方法,其特征在于,所述SFF节点连接与所述设备提供相同的业务功能的SF节点。
13.一种报文传输装置,其特征在于,所述装置设置于与提供业务功能的设备通信的业务功能转发SFF节点,所述装置包括:
收发模块,用于接收业务分类SC节点发送的第一报文,第一报文包含第一分段路由头SRH和目的地址,所述第一报文包含的目的地址用于指示所述设备,所述第一SRH包含第一段标识,所述第一段标识用于指示剥离所述第一SRH并修改目的地址;
处理模块,用于基于所述第一报文和所述第一段标识获得第二报文,所述第二报文不包含所述第一SRH且所述第二报文包含的目的地址用于指示与所述设备提供相同业务功能的SF节点;
所述收发模块,还用于向所述SF节点发送所述第二报文。
14.根据权利要求13所述的装置,其特征在于,所述收发模块还用于接收所述SF节点发送的第三报文,所述第三报文的源地址用于指示所述SF节点;
所述处理模块还用于基于所述第三报文获得第四报文,所述第四报文的源地址用于指示所述设备。
15.根据权利要求13或14所述的装置,其特征在于,所述第一段标识还用于指示修改来自所述SF节点的报文的源地址。
16.根据权利要求14或15所述的装置,其特征在于,所述第一SRH还包含第一段剩余,所述处理模块具体用于:基于所述第一SRH获得第二SRH,所述第二SRH包含第二段剩余,所述第二段剩余是更新所述第一段剩余所获得的段剩余;基于所述第三报文和所述第二SRH,获得所述第四报文,所述第四报文包含所述第二SRH和源地址指示所述设备的第三报文。
17.根据权利要求16所述的装置,其特征在于,所述第二SRH还包含段列表,所述第四报文包含的目的地址用于指示基于所述第二段剩余和所述段列表确定的所述SC节点。
18.根据权利要求16所述的装置,其特征在于,所述第二SRH还包含段列表,所述第四报文包含的目的地址用于指示基于所述第二段剩余和所述段列表确定的所述SFF节点的下一跳SFF节点。
19.根据权利要求13至18任一所述的装置,其特征在于,所述设备为不同于所述SF节点的另一SF节点。
20.根据权利要求13至19中任一所述的装置,其特征在于,所述第一报文还包含所述SC节点接收的第二报文,所述第二报文包含的目的地址用于指示所述设备。
21.一种报文传输装置,其特征在于,所述装置设置于业务分类SC节点,所述装置包括:
收发模块,用于接收第二报文,所述第二报文包含的目的地址用于指示提供业务功能的设备;
处理模块,用于根据段路由策略和所述第二报文获得第一报文,所述第一报文包含分段路由头SRH,所述SRH包含第一段标识,所述第一段标识用于指示剥离所述SRH并修改目的地址,所述段路由策略包含所述第一段标识和所述第二报文包含的目的地址;
所述收发模块,还用于向与所述设备通信的业务功能转发SFF节点发送所述第一报文。
22.根据权利要求21所述的装置,其特征在于,所述第一段标识用于标识与所述设备提供相同的业务功能的业务功能SF节点。
23.根据权利要求21或22所述的装置,其特征在于,所述收发模块还用于接收来自控制器的所述段路由策略;或者
所述处理模块还用于通过静态配置获取所述段路由策略。
24.根据权利要求21至23任一所述的装置,其特征在于,所述SFF节点连接与所述设备提供相同的业务功能的SF节点。
25.一种系统,其特征在于,所述系统包括如权利要求13至20中任一所述的报文传输装置,以及如权利要求21至24中任一所述的报文传输装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210771054.2A CN117376232A (zh) | 2022-06-30 | 2022-06-30 | 报文传输方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210771054.2A CN117376232A (zh) | 2022-06-30 | 2022-06-30 | 报文传输方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117376232A true CN117376232A (zh) | 2024-01-09 |
Family
ID=89389777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210771054.2A Pending CN117376232A (zh) | 2022-06-30 | 2022-06-30 | 报文传输方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117376232A (zh) |
-
2022
- 2022-06-30 CN CN202210771054.2A patent/CN117376232A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10757231B2 (en) | Providing network efficiencies in forwarding packets among provider networks and applying segment routing policies | |
CN108702331B (zh) | Sr应用段与服务功能链(sfc)报头元数据的集成 | |
US10063468B2 (en) | Leaking routes in a service chain | |
US11979322B2 (en) | Method and apparatus for providing service for traffic flow | |
CN113691448B (zh) | SRv6业务链中转发报文的方法、SFF及SF设备 | |
CN113207192B (zh) | 一种报文转发方法及装置 | |
CN112953831A (zh) | 一种报文转发方法及装置 | |
WO2022001835A1 (zh) | 发送报文的方法、装置、网络设备、系统及存储介质 | |
US10461958B2 (en) | Packet transmission method and apparatus | |
EP4075738A1 (en) | Failure protection method for service function chain, device, apparatus, system, and storage medium | |
WO2017133647A1 (zh) | 一种报文处理方法、流分类器和业务功能实例 | |
JP5993817B2 (ja) | キャリア網における経路制御システム及び方法 | |
CN113132229A (zh) | 段标识的确定方法和设备 | |
US20220255772A1 (en) | Packet sending method, apparatus, and system | |
CN113973082A (zh) | 一种报文处理方法及网络设备 | |
WO2023274083A1 (zh) | 路由发布和转发报文的方法、装置、设备和存储介质 | |
CN111669422B (zh) | 报文的传输方法和设备 | |
WO2022007702A1 (zh) | 一种报文处理方法及网络设备 | |
CN115733840A (zh) | 发送报文的方法、发送报文的控制方法及装置 | |
CN117376232A (zh) | 报文传输方法、装置及系统 | |
CN114513485A (zh) | 获取映射规则的方法、装置、设备、系统及可读存储介质 | |
WO2024001701A1 (zh) | 数据处理方法、装置及系统 | |
CN113055268A (zh) | 隧道流量负载均衡的方法、装置、设备及介质 | |
CN115426305B (zh) | 报文处理方法、装置、系统及存储介质 | |
CN116668375B (zh) | 一种报文分流方法、装置、网络设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |