基于业务功能链SFC的报文转发方法、装置和系统与流程

专利2022-05-09  57


基于业务功能链sfc的报文转发方法、装置和系统
1.本申请是于2017年5月22日提交中国专利局、申请号为201680003715.x、发明名称为“基于业务功能链sfc的报文转发方法、装置和系统”的中国专利申请的分案申请。
技术领域
2.本发明实施例涉及通信领域,并且更具体地,涉及一种基于业务功能链sfc的报文转发方法、装置和系统。


背景技术:

3.业务功能链(service function chaining,简称为“sfc”)是一种部署增值业务的机制。在网络通信中,将具有业务处理功能(如防火墙(firewall)、网络地址转换(network address translation,简称“nat”)、深度报文检测(deep packet inspection,简称“dpi”)等)的一组设备有序地组合起来,让流量通过这些业务功能就构成了sfc。sfc的基本架构包括控制节点、分类节点、业务功能转发节点和业务功能节点等。
4.报文在从非sfc网络进入sfc网络时,或者,在sfc网络中从一条业务功能路径(service function path,简称“sfp”)转发到另一条sfp中时,需要对报文进行引导。当前技术中,是通过在sfc的首个业务功能转发节点(或者说,入口节点、头节点)或者两条sfp的共有的业务功能转发节点(或者说,两条sfp的交点节点)上进行人工配置,以使业务功能转发节点按照指定的路径转发该报文。例如,在sfc的入口节点上针对每个进入sfc的报文,手动输入命令行,使得报文按照命令行的配置进入指定的sfp。
5.但是,手动配置的方法需要专业的技术人员花费大量的时间去完成,工作量大且维护困难。例如,在网络拓扑发生变化时,需要手动地删除或者添加某个节点。并且在配置量较大时,还容易出现配置错误。


技术实现要素:

6.本发明提供一种基于业务功能链sfc的报文转发方法、装置和系统,能够通过控制节点对业务功能转发节点的自动配置,实现报文转发路径的重定向。
7.第一方面,本发明提供一种基于sfc的报文转发方法。所述报文转发方法包括:第一业务功能转发节点接收控制节点发送的报文转发规则,所述报文转发规则用于指示报文的流量特征信息的匹配项与路由前缀信息的映射关系;所述第一业务功能转发节点接收第一报文,所述第一报文的报文头中携带有所述第一报文的流量特征信息;所述第一业务功能转发节点根据所述报文转发规则,确定与所述第一报文的流量特征信息对应的目标路由前缀信息,其中,所述第一业务功能转发节点中保存有至少一个路由前缀信息与至少一个下一跳信息的映射关系,所述至少一个下一跳信息与所述第一业务功能转发节点连接的至少一个下一跳节点一一对应,每个下一跳信息指示所对应的下一跳节点的地址,所述至少一个路由前缀信息包括所述目标路由前缀信息;所述第一业务功能转发节点根据所述目标路由前缀信息,确定目标下一跳信息,并根据所述目标下一跳信息转发所述第一报文。
8.因此,本发明实施例的基于sfc的报文转发方法,通过控制节点与业务功能转发节点同步报文转发规则,使业务功能转发节点能够根据报文转发规则引导报文,使报文按照指定的sfp传输。与现有技术中人工静态配置的方法相比,大大减少了人力和配置时间;尤其是在配置量较大时,更凸显其方便、省时、省力的优势,并且通过机器进行自动配置,也降低了人工配置的错误率。
9.具体地,本发明实施例可以适用于非sfc报文进入sfc转发平面时对报文的引导,例如,在普通ip报文进入sfc的首个业务功能转发节点时进行引导,或者,也可以适用于sfc报文从一条sfp转发到另一条sfp时对报文的引导,例如,在流量汇聚时进行引导。应理解,上述列举的两种场景仅为便于描述本发明实施例而作出的示例性说明,不应对本发明构成任何限定,例如,本发明实施例同样也适用于对处于sfc中间节点的报文的引导,本发明实施例对于所适用的场景并未特别限定。
10.结合第一方面,在第一方面的第一种可能的实现方式中,所述路由前缀信息包括业务功能路径标识spi和业务索引si,所述spi标识所述sfc中的业务功能路径sfp,所述si指示所述第一业务功能转发节点在所述sfp中的位置,以及,所述第一业务功能转发节点接收控制节点发送的报文转发规则,包括:所述第一业务功能转发节点接收所述控制节点发送的边界网关协议bgp流规则flow spec报文,所述bgp flow spec报文包括flow spec网络层可达性信息nlri字段和扩展团体属性字段,所述flow spec nlri字段承载所述报文的流量特征信息的匹配项,所述扩展团体属性字段包括spi字段和si字段,所述spi字段承载所述spi,所述si字段承载所述si。
11.本发明实施例在现有bgp协议的基础上作了扩展。即,通过bgp flow spec报文中的nlri字段承载匹配项信息,通过bgp flow spec报文中的扩展团体属性字段来承载执行的动作域信息。
12.结合第一方面以及上述可能的实现方式,在第一方面的第二种可能的实现方式中,所述报文转发规则包括用于指示非sfc报文的流量特征信息的匹配项与路由前缀信息的第一映射关系,所述目标路由前缀信息包括目标spi和目标si,以及,所述第一业务功能转发节点根据所述报文转发规则,确定与所述第一报文的流量特征信息对应的目标路由前缀信息,包括:所述第一业务功能转发节点确定所述第一报文的报文头中未携带sfc报文标识时,确定所述第一报文为非sfc报文;所述第一业务功能转发节点根据所述第一映射关系,以及所述第一报文的流量特征信息,确定所述目标spi和所述目标si。其中,sfc报文标识包括spi或si。
13.根据第一报文的报文头是否携带sfc报文标识,可以确定该第一报文是否为sfc报文。当该第一报文为非sfc报文,根据第一映射关系,确定目标spi和目标si,进而根据目标spi和目标si,确定目标下一跳信息,并基于目标下一跳信息转发第一报文。
14.结合第一方面及其上述可能的实现方式,在第一方面的第三种可能的实现方式中,所述报文转发规则包括用于指示sfc报文的流量特征信息的匹配项与路由前缀信息的第二映射关系,所述sfc报文的流量特征信息的匹配项包括以下至少一种:报文类型;源spi;以及,源spi和源si;其中,所述源spi用于标识所述sfc报文所在的源sfp,所述源si用于指示所述sfc报文所在的业务功能转发节点在所述源sfp中的位置。
15.通过新增的对sfc报文的流量特征信息的匹配项,可以使得业务功能转发节点直
接对sfc报文进行匹配,而避免了在报文进入sfc的首节点时需要进行的非sfc报文的流量匹配,大大减少了匹配的工作量,提高了报文转发效率。
16.结合第一方面及其上述可能的实现方式,在第一方面的第四种可能的实现方式中,所述目标路由前缀信息包括目标spi和目标si,以及,所述第一业务功能转发节点接收第一报文,所述第一报文的报文头中携带有所述第一报文的流量特征信息,包括:所述第一业务功能转发节点接收所述第一报文,所述第一报文的报文头中携带有第一spi和第一si,所述第一spi为与所述第一报文相对应的源spi,所述第一si为与所述第一报文相对应的源si;所述第一业务功能转发节点根据所述报文转发规则,确定与所述第一报文的流量特征信息对应的目标路由前缀信息,包括:所述第一业务功能转发节点确定所述第一报文的报文类型为sfc报文时,根据所述第二映射关系,确定所述目标spi和所述目标si;或者,所述第一业务功能转发节点根据所述第一spi和所述第二映射关系,确定所述目标spi和所述目标si;或者,所述第一业务功能转发节点根据所述第一spi和所述第一si,以及所述第二映射关系,确定所述目标spi和所述目标si。
17.通过根据第二映射关系包含的流量特征信息的匹配项,对第一报文进行匹配,确定与之匹配的目标spi和目标si,进而根据目标spi和目标si,确定目标下一跳信息,并基于目标下一跳信息转发第一报文。
18.第二方面,本发明提供一种基于sfc的报文转发方法。所述报文转发方法包括:控制节点确定报文转发规则,所述报文转发规则用于指示报文的流量特征信息与路由前缀信息的映射关系,所述路由前缀信息与下一跳信息对应,所述下一跳信息指示下一跳节点的地址;所述控制节点向第一业务功能转发节点发送所述报文转发规则,以便于所述第一业务功能转发节点根据所述报文转发规则转发报文。
19.因此,本发明实施例的基于sfc的报文转发方法,通过控制节点与业务功能转发节点同步报文转发规则,使业务功能转发节点能够根据报文转发规则引导报文,使报文按照指定的sfp传输。与现有技术中人工静态配置的方法相比,大大减少了人力和配置时间;尤其是在配置量较大时,更凸显其方便、省时、省力的优势,并且通过机器进行自动配置,也降低了人工配置的错误率。
20.结合第二方面,在第二方面的第一种可能的实现方式中,所述路由前缀信息包括业务功能路径标识spi和业务索引si,所述spi标识所述sfc中的业务功能路径sfp,所述si指示所述第一业务功能转发节点在所述sfp中的位置,以及,所述控制节点向第一业务功能转发节点发送所述报文转发规则,包括:所述控制节点向所述第一业务功能转发节点发送边界网关协议bgp流规则flow spec报文,所述bgp flow spec报文包括flow spec网络层可达性信息nlri字段和扩展团体属性字段,所述flow spec nlri字段承载所述报文的流量特征信息的匹配项,所述扩展团体属性字段包括spi字段和si字段,所述spi字段承载所述spi,所述si字段承载所述si。
21.本发明实施例在现有bgp协议的基础上作了扩展。即,通过bgp flow spec报文中的nlri字段承载匹配项信息,通过bgp flow spec报文中的扩展团体属性字段来承载执行的动作域信息。
22.第三方面,本发明提供一种业务功能转发节点,用于执行第一方面或第一方面的任意可能的实现方式中的方法。具体地,该业务功能转发节点包括用于执行第一方面或第
一方面的任意可能的实现方式中的方法的模块。
23.第四方面,本发明提供一种控制节点,用于执行第二方面或第二方面的任意可能的实现方式中的方法。具体地,该控制节点包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的模块。
24.第五方面,本发明提供一种基于sfc的报文转发系统,包括第三方面提供的业务功能转发节点和第四方面提供的控制节点。
25.第六方面,本发明提供一种业务功能转发节点,所述业务功能转发节点包括:接收器、发送器、存储器、处理器和总线系统。其中,接收器、发送器、存储器和处理器通过总线系统相连,存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制接收器接收信号,发送器发送信号,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
26.第七方面,本发明提供一种控制节点,所述控制节点包括:接收器、发送器、存储器、处理器和总线系统。其中,接收器、发送器、存储器和处理器通过总线系统相连,存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制接收器接收信号,发送器发送信号,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第二方面或第二方面的任意可能的实现方式中的方法。
27.第八方面,本发明提供一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
28.第九方面,本发明提供一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。
29.在上述某些实现方式中,所述报文转发规则包括用于指示非sfc报文的流量特征信息的匹配项与路由前缀信息的第一映射关系,所述第一业务功能转发节点与目标节点之间连接有至少一个通道,所述目标节点由所述控制节点确定,且所述第一业务功能转发节点基于所述目标下一跳信息将所述第一报文转发至所述目标节点;其中,所述扩展团体属性字段包括模式mod字段,所述mod字段承载流量分配策略,所述流量分配策略指示所述至少一个通道中每个通道的带宽值,或者,所述流量分配策略指示用于传输所述第一报文的主用通道和备用通道,或者,所述流量分配策略指示对所述至少一个通道中每个通道分配的流量的比例。
30.通过在扩展团体属性字段中增加mod字段来承载流量分配策略,使业务功能转发节点根据流量分配策略来进一步控制流量在各个通道中的分配比例,使得整个sfc网络中对流量的分配更均衡、更合理。
31.在上述某些实现方式中,所述bgp flow spec nlri字段包括至少一个类型长度值tlv字段,每个tlv字段承载所述sfc报文的流量特征信息的匹配项中的一种。
32.通过扩展现有的bgp协议中的nlri字段,新增tlv字段承载sfc报文的流量特征信息的匹配项。
33.本发明提供了一种基于业务功能链sfc的报文转发方法、装置和系统,能够通过控制节点对业务功能转发节点的自动配置,实现报文转发路径的重定向。
附图说明
34.为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
35.图1是本发明实施例的应用场景的示意图。
36.图2是根据本发明一实施例的基于sfc的报文转发方法的示意性流程图。
37.图3是根据本发明一实施例的边界网关协议(border gateway protocol,简称“bgp”)流规则(flow specification,简称“flow spec”)报文中扩展团体属性字段的示意图。
38.图4是本发明实施例的另一应用场景的示意图。
39.图5是根据本发明一实施例的业务功能转发节点的示意性框图。
40.图6是根据本发明另一实施例的控制节点的示意性框图。
41.图7是根据本发明一实施例的基于sfc的报文转发系统的示意性框图。
42.图8是根据本发明一实施例的业务功能转发节点的另一示意性框图。
43.图9是根据本发明另一实施例的控制节点的另一示意性框图。
具体实施方式
44.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.为了便于理解和描述本发明实施例提供的基于业务功能链(sfc)的通信方法、装置和系统,首先结合图1描述一下本发明实施例的应用场景。
46.图1是本发明实施例的应用场景的示意图。如图1所示,sfc 100包括业务分类节点(或者说,业务分类器(service classifier,简称为“sc”))110、业务功能转发节点(或者说,业务功能转发器(service function forwarder,简称为“sff”))、业务功能节点(或者说,业务功能处理器(service function,简称为“sf”))、业务尾端(post service,简称“ps”)节点140和控制节点(或者说,控制器)160。示例性地,sff包括sff1 120a和sff2 120b;sf包括sf1节点130a和sf2节点130b。
47.这里,需要说明的是,sfc是基础底层网络(例如底层ip网络)的虚拟overlay网络,sfc是由基础底层网络中的部分节点(例如具备业务处理和转发功能的节点)组成的,即sfc中包括的各个节点并不是完全物理直连的,例如各个sff节点之间可能连接有路由器或交换机等网元节点。
48.换句话说,在sfc中,除了上述列举的业务分类节点、业务功能转发节点、业务功能节点、业务尾端节点之外,还包括该sfc所处的物理网络中的各种路由交换设备。上述列举的业务分类节点、业务功能转发节点、业务功能节点、业务尾端节点以及路由交换设备都可以称为网络节点。为便于区分,将sfc中的业务分类节点、业务功能转发节点、业务功能节点、业务尾端节点统称为sfc节点。物理网络中的各种路由交换设备用于将报文从一个sfc
节点转发至另一个sfc节点。应理解,以上列举的sfc节点仅为示例性说明,不应对本发明构成任何限定,sfc节点还可以包括sfc网络中用于实现sfc功能的其他节点,这里为了简洁,不再一一赘述。
49.还应理解,以上所列举的各sfc节点可以理解为功能模块,分别用于执行各自相应的功能,每个sfc节点可以单独部署,也可以对多个sfc节点合一部署,本发明对于各sfc节点的具体部署方式并未特别限定。例如,sc和sff1可以合一部署在一台物理设备中,具有sc的流量匹配功能和sff1的业务转发功能,或者说,具有sc模块和sff模块。以下,在未作出特别说明的情况下,认为sc与sff1合一部署,即合一部署的sff1具有流量匹配和业务转发的功能。
50.如图1所示,当报文到达sff1 120a时,sff1 120a解析该报文所承载的流量的流量特征信息(例如,五元组信息),对报文进行过滤,将与流量特征信息的过滤条件(或者说,匹配项)匹配的报文引导至相应的业务功能路径(sfp)中。sff1 120a作为该报文进入的首个业务功能转发节点,根据所匹配的sfp封装该报文,封装后的报文包括sfc报文头(sfc header),该sfc header中包括用于指示该报文匹配的sfp的业务功能路径标识(service function path identifier,简称为“spi”)。然后sff1将封装后的报文转发至下一个sfc节点。具体地,sff1 120a基于该sfp将封装后的报文转发至sf1节点130a,sf1节点130a处理完该报文后返回至sff1 120a。sff1 120a继续根据该报文匹配的sfp,将经过sf 130a处理后的报文转发至sff2 120b。以此类推,直至将该报文传输到该报文匹配的sfp的ps节点140。
51.更具体地,报文在各sfc节点之间转发时,例如,在业务功能转发节点与业务功能转发节点之间,或者在业务功能转发节点与业务功能节点之间,可能通过多个路由交换设备进行转发,或者说,在业务功能转发节点与业务功能转发节点之间,或者,业务功能转发节点和业务功能节点之间可能有多条通道同时可达,该多条通道是由不同的路由交换设备共同组成的。
52.再参看图1,sff1 120a可以通过路由交换设备(例如,路由器(router)11 150a)到达sf1 130a,sff1 120a也可以通过router21 150b和router22 150c到达sf1 130a,sff1 120a还可以通过router31 150d到达sf1 130a。也就是说,报文可以经由三条通道从sff1 120a到达sf1 130a。
53.在本发明实施例中,为方便区分和理解,将业务功能转发节点和业务功能转发节点连接的链路称为业务功能路径(sfp),将连接在业务功能转发节点与业务功能转发节点之间,或者连接在业务功能转发节点与业务功能节点之间的路由交换设备构成的链路称为通道。可以理解,一条sfp可能对应有多个通道。本发明对此并未特别限定。例如,图1中所示的sff1 120a

router11 150a

sf1 130a、sff1 120a

router21 150b

router 22150c

sf1 130a以及sff1 120a

router31 150d

sf1 130a可以认为是对应同一条sfp的三条不同的通道。应理解,图1所示的sfp与通道间的连接关系仅为示例性说明,不应对本发明构成任何限定。各sfc节点与路由交换设备之间的连接关系并不限于图1所示,本发明对于各sfc节点与路由交换设备间的连接关系并未特别限定。
54.业务功能转发节点在实际转发过程中,可以通过路由前缀信息所对应的下一跳信息将报文引导到下一个节点。例如,图1中所示的sff1 120a的下一跳节点可以为router11 150a,也可以为router21 150b,还可以为router31 150d。报文从sff1 120a转发至
router11 150a、router21 150b、router31 150d中的任意一个下一跳节点,或者说经过上述三条通道中的任意一条通道,最终到达的目的节点(或者说,下一个sfc节点)均为sf1 130a。
55.应理解,在sfc中,每个业务功能转发节点可以通过不同的路由转发设备连接至少一个sfc节点,该至少一个sfc节点可以为业务功能节点,也可以为业务功能转发节点。换句话说,每个业务功能转发节点可以同时处于至少一条sfp中。当报文进入到sfp的首个业务功能转发节点时,需要根据该sfp对应的转发表项进行报文转发。
56.由上述可知,sfc节点是基于业务功能路径(sfp)来传输报文的,也可以称之为,是基于sfc转发表来传输报文的,而该sfc转发表是根据sfc的网络拓扑信息确定的。因此,在转发报文之前,控制节点(或者说,控制器(controller))需要根据sfc中的sc、sff、sf以及ps等节点的相关信息,在sfc中预先配置多条sfp,以匹配不同报文的转发需求。并在每创建一条新的sfp后,下发给该sfp中的各业务功能转发节点和路由交换设备,以便于各业务功能转发节点和路由交换设备与控制节点同步转发表项。
57.应理解,sfc可以理解为叠加在物理网络上的虚拟网络。在sfc中,首个业务功能转发节点(或者说,入口节点、头节点)中保存了非sfc转发表和sfc转发表,分别对应了两个转发平面,即,非sfc转发平面(例如,网际协议(internet protocol,简称“ip”,包括ipv4、ipv6)转发平面,多协议标签交换(multi

protocol label switch,简称“mpls”)转发平面等)和sfc转发平面。并在在sfc转发平面内,该节点还可能连接有多条sfp。因此,当报文在进入sfc的首个业务功能转发节点时,需要对报文进行引导。否则,该报文有可能被转发到非sfc转发平面或者错误的sfp上去,从而不能对该报文进行预期的业务功能处理。
58.举例来说,当报文从非sfc转发平面进入sfc转发平面时,该报文首先进入该sfc的首个业务功能转发节点(例如,图1中sff1),若需要进入的首个业务功能节点为图1中所示sf2,则需要对该报文进行引导,从而避免报文进入非sfc转发平面,或者,即便进入sfc转发平面,但进入的首个节点是sf1或者sff2,而非与该报文所承载的流量相匹配的sf2。
59.再者,当报文在sfc转发平面内到达某个sfp(为便于区分和说明,记作sfp#1)的末个业务功能转发节点(或者说,出口节点,尾节点),且需要将该报文转发到另一个sfp(为便于区分和说明,记作sfp#2)时,同样也需要对该报文进行引导,从而避免该报文离开sfc转发平面,进入非sfc转发平面,或者,即便未离开sfc转发平面,但进入了一条与流量不匹配的sfp。
60.现有技术中,通常是根据具体的网络拓扑和流量的特征信息,在sfc的首个业务功能转发节点上进行静态配置,以使业务功能转发节点按照预期的路径转发该报文。例如,在sfc的入口节点上针对每个进入sfc的报文,手动输入命令行,使得报文按照命令行的配置进入sfc转发平面。但是,手动配置的方法需要专业的技术人员花费大量的时间去完成,工作量大且维护困难。例如,在网络拓扑发生变化时,需要手动地删除或者添加某个节点。并且在配置量较大时,还容易出现配置错误。
61.因此,本发明提供一种基于sfc的报文转发方法,能够通过控制节点对转发节点的自动配置,实现报文转发路径的重定向。
62.为便于理解,在描述本发明实施例之前,首先简单说明控制节点与业务功能转发节点同步转发表项信息以及基于转发表项信息进行报文转发的具体过程。
63.在一种实现方式中,控制节点与业务功能转发节点同步路由表项信息,业务功能转发节点计算生成转发表;在另一种实现方式中,控制节点与业务功能转发节点通过bgp报文同步转发表项信息。
64.在第一种实现方式中,首先,控制节点可以根据sfc中的网络节点的分布情况,预配置至少一条sfp,用于匹配不同流量的报文。
65.其后,该控制节点确定每一条sfp中的各业务功能转发节点的路由表项信息,并将路由表项信息发送给相应的业务功能转发节点。
66.控制节点可以直接向业务功能转发节点发送路由表项信息,业务功能转发节点将接收到的路由表项信息保存在本地的路由表中。当接收到报文时,根据路由表中的路由表项信息,计算出一条最优路径,生成转发表(例如,转发信息(forwarding information base,简称“fib”)表),并基于转发表转发报文。
67.可选地,控制节点可以通过bgp报文承载该路由表项信息。具体地,该bgp报文包括bgp sfc同步(synchronization)地址族所支持的封装格式封装的多协议扩展可达网络层可达信息(multi

protocol reach network layer reachability information,简称“mp_reach_nlri”)属性字段,该mp_reach_nlri属性字段承载该路由表项信息。具体地,该mp_reach_nlri属性字段承载地址族信息域、下一跳信息域、网络层可达性信息(nlri)域三部分。
68.其中,地址族信息域可以包括地址族标识字段和子地址族标识字段。地址族标识(address family identifier,简称“afi”)标识网络层协议,子地址族标识(subsequent address family identifier,简称“safi”)标识子地址族的类型。上述列举的bgp sfc synchronization地址族可以理解为现有的bgp协议中ipv4或ipv6地址族中扩展的子地址族,其对应的safi的值可以根据国际互联网工程任务组(internet engineering task force,简称“ietf”)制定的标准确定。
69.下一跳信息域可以包括下一跳地址长度字段和下一跳地址字段。下一跳地址长度字段用于标识下一跳地址字段的长度,下一跳地址字段的长度由下一跳地址长度字段所标识的长度决定。下一跳地址字段中下一跳信息,用于指示下一跳节点的地址。
70.nlri域可以包括nlri字段,nlri字段可以进一步包括类型长度值(type length value,简称“tlv”)字段。其中,类型t字段表示该tlv字段的类型为sfc路由表项同步类型,长度l字段表示v字段的长度,值v字段携带spi和si。
71.进一步地,该路由表项信息还包括路由属性信息,路由属性信息包括以下至少一种流量分配参数的类型:权重、开销和带宽。该路由属性信息可以承载在bgp报文的bgp sfc属性attribute字段中,该bgp sfc attribute字段包括至少一个子tlv字段,每种流量分配参数的类型与该至少一个子tlv字段中的一个子tlv字段对应。
72.该业务功能转发节点在接收到路由表项信息时,根据其中携带的路由属性信息,确定最优路径,生成转发表。因此,使得业务功能转发节点能够根据流量分配参数更加合理、灵活地分配流量。
73.在第二种实现方式中,首先,控制节点可以根据sfc中的网络节点的分布情况,预配置至少一条sfp,用于匹配不同流量的报文。
74.其后,该控制节点确定每一条sfp中的各业务功能转发节点的转发表项信息,并通
过bgp报文承载该转发表项信息,将该转发表项信息发送给相应的业务功能转发节点。
75.具体地,该bgp报文包括基于bgp sfc synchronization地址族所支持的封装格式封装的多协议扩展可达网络层可达信息mp_reach_nlri属性字段,该mp_reach_nlri属性字段承载该转发表项信息。具体地,该mp_reach_nlri属性字段承载地址族信息域、下一跳信息域、nlri域三部分。
76.应理解,该bgp报文承载转发表项信息的具体方法与上文中的第一种实现方式中所描述的bgp报文承载路由表项信息的具体方法相似,为了简洁,这里不再赘述。
77.由此,控制节点与业务功能转发节点之间完成了路由表项信息或者转发表项信息的同步,业务功能转发节点可以根据转发表,按照预配置的sfp转发报文。
78.需要说明的是,在以上描述的同步转发表项信息的具体方法中,可以由控制节点向业务功能转发节点下发路由表项信息,业务功能转发节点基于保存在本地的路由表,生成转发表,也可以由控制节点向业务功能转发节点下发转发表项信息。换句话说,路由表项信息与转发表项信息都可以用于业务功能转发节点进行报文转发。以下,在未作出特别说明的情况下,将路由表项信息和转发表项信息统称为转发表项信息。
79.应理解,以上所列举的通过bgp报文中的各字段承载转发表项信息的具体方法,仅为示例性说明,不应对本发明构成任何限定,本发明也不应限于此。例如,该转发表项信息也可以通过bgp报文中的其他已有的或新增的字段承载,或者还可以通过开放流(openflow)的流表来承载,本发明对此并未特别限定。
80.需要说明的是,每条sfp中的每个业务功能转发节点都可以对应至少一条转发表项信息,换句话说,一条转发表项信息可以用于指示业务功能转发节点在一条sfp上进行报文转发。转发表包括至少一条转发表项信息,该至少一条转发表项信息可以为一条sfp的一条或多条转发表项信息,也可以为多条sfp的转发表项信息。
81.以上,简要介绍了通过两种方式进行控制节点与业务功能转发节点之间同步转发表项信息的过程。应理解,在本发明实施例中,业务功能转发节点可以基于上述方法与控制节点进行转发表项信息的同步,也可以基于其他方法进行转发表项信息的同步,本发明对此并未特别限定。本申请中通过示例性地列举上述两种同步方式,仅为便于理解本发明实施例的基于sfc的报文转发方法,而不应对本发明构成任何限定。
82.以下,为便于理解和说明,结合图1和表1详细说明业务功能转发节点基于转发表项信息转发报文的具体过程。
83.假设进入sfc的一条报文(为便于说明,记作报文a)被引导进入第一sfp,即,图1中所示sc

sff1

sf1

sff1

sf2

sff1

sff2

ps。其中,sc和sff1可以合一部署为sff1,ps和sff2可以合一部署为sff2,为方便说明,以下省略对sc和ps的描述。
84.示例地,与第一sfp对应的spi可以为10,入口节点(即,sff1)的si可以为255,即,sff1的路由前缀信息可以为spi=10,si=255。则sff1在第一sfp中的路由表项信息可以如表1所示。
85.表1
86.spisi下一跳信息1025510.1.1.1/311025410.1.1.3/31
102532.2.2.2/32
87.结合图1和表1可以看到,在第一sfp中,第一报文进入sff1之后,根据路由前缀信息spi=10,si=255所指向的下一跳信息为10.1.1.1/31,即,指向sf1,第一报文被sff1转发至sf1。经过sf1的业务功能处理之后,第一报文返回到sff1中,si

1,此时,sff1的路由前缀信息为spi=10,si=254,所指向的下一跳信息为10.1.1.3/31,即,指向sf2,第一报文被sff1转发至sf2。经过sf2的业务功能处理之后,第一报文再次返回到sff1中,si

1,此时,sff1的路由前缀信息为spi=10,si=253,所指向的下一跳信息为2.2.2.2/32,即,指向sff2。由此,第一报文被sff1转发至下一个业务功能转发节点sff2。
88.需要说明的是,表1中列举的sff1的路由前缀信息以及所对应的下一跳信息所指示的是sfc节点之间的连接关系,是以sfc节点为控制粒度、作为示例而示出的转发表项信息,不应对本发明构成任何限定。以图1为例,在实际的第一报文转发过程中,sff1的路由前缀信息spi=10,si=255所对应的下一跳信息可以为router11的地址,也可以为router21的地址,或者,还可以为router31的地址。换句话说,sff1的路由前缀信息spi=10,si=255可以对应三个表项,每个表项包括该路由前缀信息与一个路由交换设备(例如,图1中所示router11、router21和router31)的地址的对应关系。第一报文被引导至router11、router21或router31后,可以继续根据router11、router21或router31的路由表项信息,继续转发第一报文,直到转发至sf1。
89.这里,仅为方便说明,将该sf1的地址记作sff1的路由前缀信息spi=10,si=255所对应的下一跳信息,而不应对本发明构成任何限定。与此相似地,将sf2的地址记作sff1的路由前缀信息spi=10,si=254所对应的下一跳信息,将sff2的地址记作sff1的路由前缀信息spi=10,si=253所对应的下一跳信息。
90.在本发明实施例中,sff1在第一sfp中对应了三个路由前缀信息,这三个路由前缀信息具有相同的spi(即,对应了同一条sfp),但si不同,因为第一报文每一次经过sff1时,该sff1在第一sfp中的位置是不同的。每一个路由前缀信息所对应的下一跳信息也不同,即,每一个路由前缀信息将报文引导至的下一跳节点也不同。该三个路由前缀信息与三个下一跳信息的映射关系构成了sff1在第一sfp中的转发表项信息。
91.控制节点在确定了第一sfp之后,可以将sff1的转发表项信息发送给sff1,以便于sff1基于转发表项信息转发报文。
92.应理解,表1所示的转发表项信息仅为示例性说明,不应对本发明构成任何限定。控制节点向业务功能转发节点下发的转发表项信息包括表1中所述的spi、si和下一跳信息,但表1并不一定为转发表项信息的表现形式,或者说,转发表项信息可以通过表1或者不同于表1的其他形式下发给业务功能转发节点。
93.还应理解,图1所示的第一sfp仅为示例性说明,不应对本发明构成任何限定。例如,在sff1上可以不连接业务功能节点,或者,在sff2上可以连接有业务功能节点,或者,在sff2之后还可以连接其他业务功能转发节点,本发明对此并未特别限定。当sff2上连接有业务功能节点或者业务功能转发节点时,控制节点也可以将sff2的转发表项信息发送给sff2,以便于sff2基于转发表项信息转发报文。
94.还应理解,控制节点还可以在sfc中确定第二sfp,该第二sfp也可以包括上述业务功能转发节点。因此,控制节点在确定第二sfp后,也可以向该第二sfp中的各节点(包括上
述业务功能转发节点)发送对应的转发表项信息。
95.还应理解,以上结合第一报文的转发过程详细描述了转发表项信息,但是不应对转发表项信息构成任何限定。业务功能转发节点可以基于第一sfp的转发表项信息转发报文,也可以基于第二sfp的转发表项信息转发报文。换句话说,每条sfp对应的转发表项信息不会因为报文实际所经由的路径而发生改变,相反,入口节点可以根据报文的属性信息选择与之匹配的sfp。
96.以上,详细说明了业务功能转发节点根据转发表项信息进行报文转发的具体过程。以下,结合图2和图3,详细说明根据本发明实施例的基于sfc的报文转发方法。
97.需要说明的是,以下所列举的基于sfc的报文转发方法中,第一业务功能转发节点可以理解为将分类节点和业务功能转发节点合一部署的节点,即,同时具有流量匹配和转发报文的功能。应理解,本发明实施例中所列举的第一业务功能转发节点可以理解为逻辑节点,它可以为一台物理设备来执行,也可以由多台物理设备来分担执行相应的功能。当该第一业务功能转发节点的功能由一台物理设备来执行时,该物理设备可以同时具有流量匹配和报文转发的功能;当该第一业务功能转发节点的功能由多台(例如,两台)物理设备来分担执行时,可以由一台物理设备执行流量匹配功能,另一台物理设备执行流量转发功能。本发明对此并未特别限定。
98.图2是根据本发明一实施例的基于sfc的报文转发方法200的示意性流程图。应理解,图2示出了基于sfc的报文转发方法的详细的通信步骤或操作,但这些步骤或操作仅是示例,本发明实施例还可以执行其它操作或者图2中的各种操作的变形。此外,图2中的各个步骤可以按照与图2呈现的不同的顺序来执行,并且有可能并非要执行图2中的全部操作。
99.如图2所示,该报文转发方法200包括:
100.s210,控制节点确定报文转发规则,该报文转发规则用于指示报文的流量特征信息的匹配项与路由前缀信息的映射关系。
101.具体而言,在sfc中,控制节点可以通过流量采集器采集流量信息,并通过流量分析仪对流量信息进行分析,当发现某个路径的流量较大时,可以向控制节点发送控制需求,以对该路径上的流量进行控制,例如,将一部分流量引导至其他路径上。或者,当用户为业务安排特定的业务处理,需要对流量进行引导,使其进入到指定的业务功能节点中时,可以通过向控制节点发出控制需求,以通过控制器对流量进行控制。
102.举例来说,流量分析仪根据流量分析结果,自动生成一系列的sfc转发规则表项,例如:
[0103][0104]
流量分析仪将自动生成的sfc转发规则表项发送给控制节点,其中流量分析仪可以是与控制节点分离的一个设备,也可以是与控制节点集成的一个功能模块。
[0105]
控制节点接收到sfc流量转发规则表项,把该表项保存在控制器上的报文转发规则表中,即控制节点上的报文转发规则中新增了上述表项,并向第一业务功能转发节点发
送该报文转发规则表中新增的上述表项。
[0106]
又例如,此时流量特征为b1,需要进入的sfp为:sfpx,其中spi为y,si为z,这时用户可以在控制节点上手动增加一条sfc流量转发规则表项:
[0107][0108][0109]
控制节点把报文转发规则中新增的sfc流量转发规则表项下发给第一业务功能转发节点,以实现用户引导流量的目的。需要说明的是,以上列举的流量采集器、流量分析仪可以理解为用于执行相应功能的模块,可以与控制节点集成在同一台物理设备中,也可以单独部署,本发明对此并未特别限定。
[0110]
在本发明实施例中,进入sfc的报文(为便于说明,记作第一报文)可以为非sfc报文,也可以为sfc报文。当该第一报文为非sfc报文,需要将该第一报文引导至sfc转发平面来时,需要为该第一报文进行流量匹配,为第一报文匹配sfp(为便于区分和说明,记作第一sfp),并将第一报文引导至第一sfp中(情况一)。当该第一报文为sfc报文时,若该第一报文需要从一条sfp(为便于区分和说明,记作第二sfp)转发到另一条sfp(为便于区分和说明,记作第三sfp)时,也需要对第一报文进行引导(情况二)。后文会分别结合情况一和情况二对本发明实施例的基于sfc的报文转发方法进行详细描述。
[0111]
在本发明实施例中,控制节点可以根据控制指令,确定多个匹配项与多个路由前缀信息的映射关系。这里所说的匹配项是指报文的流量特征信息的匹配项。为方便说明,后文中在未作出特别说明的情况下,将报文的流量特征信息的匹配项简称为匹配项。
[0112]
具体地,根据报文的类型不同,匹配项也可以不同。例如,对于非sfc报文,匹配项可以为五元组信息,对于sfc报文,匹配项可以为spi,或者,spi和si。
[0113]
由上文描述可知,控制节点中保存有路由表,并将该路由表以路由表或者转发表的形式同步到各业务功能转发节点中。该路由表包括该sfc中的各业务功能转发节点的路由表项信息。路由表项信息包括路由前缀信息和下一跳信息的映射关系。其中,路由前缀信息可以包括spi和si。对于一条报文头中携带有spi和si的报文(例如,第一报文)来说,spi表示该第一报文所在的sfp,si指示该第一报文所在的业务功能转发节点在该sfp中的位置。
[0114]
在本发明实施例中,控制节点可以根据控制需求,以及与各业务功能转发节点同步的路由表,确定用于指示报文的流量特征信息的匹配项与路由前缀信息的映射关系。同时控制节点又可以根据路由表中保存的路由前缀信息与下一跳信息的映射关系,建立起报文的流量特征信息的匹配项与下一跳信息的映射关系。也就是说,通过控制节点确定报文转发规则,可以根据报文的流量特征信息,确定将报文引导至哪个业务功能转发节点或者业务功能节点。换句话说,控制节点确定报文转发规则是基于本地保存的路由表的,或者说,是基于目前已经配置好的sfp的。若控制节点确定需要将报文从某一节点(为便于区分
和说明,记作节点a)引导至另一节点(为便于区分和说明,记作节点b)的路径不是预配置的sfp,则控制节点可以根据新确定的节点a和节点b间的连接关系,新创建一条sfp,并将新创建的sfp的转发表项信息下发到相对应的各业务功能转发节点(例如包括节点a和节点b),以完成转发表项信息的同步。
[0115]
需要说明的是,在本发明实施例中,控制节点可以根据控制指令,动态调整报文转发规则。例如,在第一时段,可以根据需要将满足匹配项a的报文引导至sfp#1,在第二时段,可以根据需要将满足匹配项a的报文引导至sfp#2。再例如,当sfc中的某个业务功能节点或者业务功能转发节点删除时,可以将其相关联的映射关系删除。也就是说,报文转发规则可以根据网络的变化,对其中的映射关系进行删除、修改或增加,从而实现了动态调整,非常灵活。
[0116]
这里所说的“相关联”可以这样理解:在上述多个匹配项与多个路由前缀信息的映射关系中,某个路由前缀信息正好对应于某个被删除的业务功能转发节点,或者,某个路由前缀信息所对应的下一跳信息正好指向某个被删除或者新增的业务功能节点或者业务功能转发节点。在这种情况下,需要对该映射关系进行修改或者删除。此时,可以认为该路由前缀信息所对应的业务功能转发节点与该路由前缀信息与匹配项的映射关系之间相关联。
[0117]
具体地,当某个业务功能转发节点被删除时,需要将相关联的映射关系删除,建立新的映射关系;当某个路由前缀信息(为便于区分和理解,记作路由前缀信息a)所对应的下一跳信息所指向的业务功能节点或业务功能转发节点删除时,需要根据用于新增的或者其他的用于代替该业务功能转发节点或业务功能节点的地址(即,作为下一跳信息),确定对应的路由前缀信息(为便于区分和理解,记作路由前缀信息b),将匹配项与路由前缀信息a的映射关系修改为匹配项与路由前缀信息b的映射关系。
[0118]
应理解,以上列举的动态调整匹配项与路由前缀信息的映射关系的具体方式仅为示例性说明,不应对本发明构成任何限定,本发明对于动态调整匹配项与路由前缀信息的映射关系的具体方法并未特别限定。
[0119]
s220,控制节点向第一业务功能转发节点发送该报文转发规则。
[0120]
具体而言,控制节点在更新或新增了一条匹配项与路由前缀信息的映射关系时,可以向与该映射关系相关联的业务功能转发节点下发该更新或者新增的映射关系。这里,为方便说明,把该业务功能转发节点记作第一业务功能转发节点。应理解,第一业务功能转发节点作为业务功能转发节点的一例,仅为示例性说明,不应对本发明构成任何限定,“第一”仅用于标识该业务功能转发节点,不应对该业务功能转发节点所在的sfp和位置构成任何限定。
[0121]
由上文描述可知,控制节点预先将转发表项信息下发到各业务功能转发节点中,因此,第一业务功能转发节点中保存有自身的转发表,该转发表中保存有与该第一业务功能转发节点相对应的至少一个路由前缀信息与至少一个下一跳信息的对应关系,每个下一跳信息指示一个下一跳节点的地址。第一业务功能转发节点根据该至少一个路由前缀信息与至少一个下一跳信息的对应关系转发报文的具体过程,上文中已经详细说明,为了简洁,这里不再赘述。
[0122]
s230,该第一业务功能转发节点接收第一报文,该第一报文的报文头中携带有该第一报文的流量特征信息。
[0123]
具体而言,该第一业务功能转发节点接收到第一报文时,可以读取该第一报文的报文头中携带的流量特征信息。当该第一报文为非sfc报文(例如,普通ip报文)时,该流量特征信息可以为,例如,五元组信息;当该第一报文为sfc报文时,该流量特征信息可以包括spi和si,同时该第一报文的流量特征信息还可以包括与非sfc报文相似的流量特征信息。换句话说,当第一业务功能转发节点在接收到第一报文时,若从报文头中读取到spi或si中的任意一个,则可以认为该第一报文为sfc报文,若未读取到spi和si,则可以认为该第一报文为非sfc报文。
[0124]
应理解,这里所描述的根据报文头中是否携带spi或si来确定第一报文是否为sfc报文的方法仅为示例性说明,不应对本发明构成任何限定,第一业务功能转发节点也可以通过其他方法确定第一报文是否为sfc报文。
[0125]
s240,该第一业务功能转发节点根据该报文转发规则,确定与该第一报文的流量特征信息对应的目标路由前缀信息。
[0126]
具体而言,该第一业务功能转发节点根据报文转发规则,将非sfc报文转发到sfc中的第一sfp,也可以将sfc报文从第二sfp引导至第三sfp,后文中会结合上述两种情况详细说明第一业务功能转发节点根据报文转发规则确定目标路由前缀信息。
[0127]
s250,该第一业务功能转发节点根据该目标路由前缀信息,确定目标下一跳信息,并根据该目标下一跳信息转发该第一报文。
[0128]
由上文描述可知,第一业务功能转发节点根据本地保存的转发表,可以确定与目标路由前缀信息对应的目标下一跳信息。这里省略对第一业务功能转发节点根据目标路由前缀信息确定目标下一跳信息的具体方法的详细说明。在确定了目标下一跳信息之后,便可以确定下一跳节点的地址,将第一报文引导至该下一跳节点中。
[0129]
需要说明的是,在本发明实施例中,控制节点向业务功能转发节点(例如,第一业务功能转发节点)发送报文转发规则的方法可以理解为控制节点与业务功能转发节点同步报文转发规则的方法。控制节点可以将确定了的报文转发节点保存在本地的报文转发规则库(为便于区分和理解,记作规则库1)中,业务功能转发节点也可以将接收到的报文转发规则保存在本地存储的报文转发规则库(为便于区分和理解,记作规则库2)中。应理解,规则库1中保存有sfc中与各业务功能转发节点(例如包括上述第一业务功能转发节点)的对应的报文转发规则,规则库2中保存有自身相关联的报文转发规则,也就是说,规则库2可以理解为规则库1的子集。当规则库1有报文转发规则更新时,会将该更新后的报文转发规则同步到规则库2中,以便于业务功能转发节点及时调整报文转发规则,根据网络状况实时调整报文转发路径,非常灵活。
[0130]
因此,本发明实施例的基于sfc的报文转发方法,通过控制节点与业务功能转发节点同步报文转发规则,使业务功能转发节点能够根据报文转发规则引导报文,使报文按照指定的sfp传输。与现有技术中人工静态配置的方法相比,大大减少了人力和配置时间;尤其是在配置量较大时,更凸显其方便、省时、省力的优势,并且通过机器进行自动配置,也降低了人工配置的错误率;更进一步地,由于能够根据网络流量的状况进行动态调整,非常灵活。
[0131]
以上,结合图2详细说明了根据本发明实施例的基于sfc的报文转发方法的具体过程,以下,对情况一和情况二中基于sfc的报文转发方法的具体过程进行详细描述。
[0132]
情况一
[0133]
情况一可对应图1中所示的场景。作为一个实施例,当该第一报文为非sfc报文,需要将该第一报文引导至sfc转发平面来时,需要为该第一报文进行流量匹配,为第一报文匹配sfp。例如,图1中所示,第一报文进入到sfc的首个功能转发节点sff1时,需要对第一报文进行引导,为其匹配sfp。并根据匹配的sfp的spi,对该第一报文进行封装,封装后的第一报文的报文头中包括用于指示该匹配的sfp的spi。在此情况下,该报文转发规则可以包括非sfc报文的流量特征信息与路由前缀信息的第一映射关系。
[0134]
可选地,s220控制节点向第一业务功能转发节点发送该报文转发规则,包括:
[0135]
该第一业务功能转发节点接收该控制节点发送的边界网关协议bgp流规则(flow spec)报文,该bgp flow spec报文包括flow spec网络层可达性信息nlri字段和扩展团体属性(extended communities attribute)字段,该flow spec nlri字段承载该非sfc报文的流量特征信息的匹配项,该扩展团体属性字段包括spi字段和si字段,该spi字段承载该spi,该si字段承载该si。
[0136]
具体地,该bgp flow spec报文包括mp_reach_nlri属性字段,该属性字段包括nlri字段(即,上述flow spec nlri字段)。在本发明实施例中,nlri字段承载匹配项,扩展团体属性字段承载路由前缀信息。
[0137]
具体地,对于非sfc报文而言,该匹配项可以包括以下至少一项:目的地址、源地址、ip协议号、端口号、目的端口号、源端口号、internet控制报文协议(internet control message protocol,简称“icmp”)类型、icmp编码、传输控制协议(transmission control protocol,简称“tcp”)的标志位、差分服务代码点(differentiated services code point,简称“dscp”)和分片类型。上述匹配项可以封装在bgp flow spec报文的nlri字段中。表2中示出了rfc5575中的十二种流量匹配项。
[0138]
表2
[0139][0140]
与上述匹配项对应的路由前缀信息可以承载在bgp flow spec报文中新增的扩展团体属性字段中,该扩展团体属性的格式如图3所示。图3是根据本发明一实施例的bgp flow spec报文中扩展团体属性字段的示意图。如图3所示,扩展团体属性字段包括类型
(type)字段、子类型(sub

type)字段、标识位(flags)字段、spi字段、si字段和保留字段。换句话说,通过上述列举的字段可以确定重定向到spi和si(redirect to spi&si action)所关联的节点。
[0141]
具体地,type字段和sub

type字段可以根据国际互联网工程任务组(internet engineering task force,简称“ietf”)制定的标准确定。spi字段(3字节)承载spi,si字段(1字节)承载si。
[0142]
在本发明实施例中,第一业务功能转发节点在接收到该bgp flow spec报文时,可以根据报文的流量特征信息,确定相对应的路由前缀信息。进而根据本地保存的路由表,确定下一跳节点。
[0143]
需要说明的是,控制节点确定的多条匹配项与多个路由前缀信息的映射关系(即,报文转发规则)可以通过多个bgp flow spec报文来承载,每个bgp flow spec承载一条匹配项与路由前缀信息的映射关系。
[0144]
可选地,该报文转发规则包括用于指示非sfc报文的流量特征信息的匹配项与路由前缀信息的第一映射关系,该目标路由前缀信息包括目标spi和目标si,以及,
[0145]
s240该第一业务功能转发节点根据该报文转发规则,确定与该第一报文的流量特征信息对应的目标路由前缀信息,包括:
[0146]
该第一业务功能转发节点确定该第一报文的报文头中未携带sfc报文标识时,确定该第一报文为非sfc报文;
[0147]
该第一业务功能转发节点根据该第一映射关系,以及该第一报文的流量特征信息,确定该目标spi和该目标si。
[0148]
具体而言,该第一业务功能转发节点在接收到第一报文时,解析报文头中是否携带sfc报文标识,作为示例而非限定,sfc报文标识可以为spi或者si。例如,当报文头中携带有spi或者si时,则确定该第一报文为sfc报文;当报文头中未携带spi和si时,则确定该第一报文为非sfc报文。应理解,这里所列举的sfc报文标识的具体内容仅为示例性说明,不应对本发明构成任何限定。本发明不排除将其他标识作为sfc报文标识的可能。
[0149]
第一业务功能转发节点在确定第一报文为非sfc报文后,可以根据第一映射关系表,确定与该第一报文的流量特征信息相匹配的目标spi和目标si,进而根据目标spi和目标si,查找本地保存的转发表,确定目标下一跳信息。
[0150]
更进一步地,由于控制节点可以获知sfc网络中的所有信息,根据已经确定好的报文转发规则(或者说,第一映射关系)可以获知与每一个路由前缀信息所对应的下一跳信息,从而到达对应的下一跳节点,以及通过每个下一跳节点的下一跳节点所到达的目标节点(即,sfc节点)。如图1所示,sff1可以通过图1中所示的三条通道到达sf1。控制节点可以向第一业务功能转发节点发送流量分配策略,以指示第一业务功能转发节点将报文承载的流量按照流量分配策略所指示的分配比例通过各条通道进行转发,并最终到达目标节点sf1。
[0151]
可选地,该第一业务功能转发节点与目标节点之间连接有至少一个通道,该目标节点由该控制节点确定,且该第一业务功能转发节点基于该目标下一跳信息将该第一报文转发至该目标节点;
[0152]
其中,该扩展团体属性字段包括模式(mode,简称“mod”)字段,该mod字段承载流量
分配策略,该流量分配策略指示该至少一个通道中每个通道的带宽值,或者,所述流量分配策略指示用于传输该第一报文的主用通道和备用通道,或者,该流量分配策略指示对该至少一个通道中每个通道分配的流量的比例。
[0153]
具体而言,在上述扩展团体属性字段中的flags字段还可以包括mod字段,该mod字段承载流量分配策略。例如,若mod=0,表示只使用命中的主表项;若mod=1,表示可以使用命中的多个负载均衡表项做等价负载分担;若mod=2,表示可以使用命中的多个表项做非等价负载分担。
[0154]
在本发明实施例中,第一业务功能转发节点可以根据报文转发规则确定目标路由前缀信息。
[0155]
当根据该目标前缀信息,仅对应一个目标下一跳信息(即,仅找到一条表项)时,不管mod字段为何值,直接使用该表项,将第一报文转发该给目标下一跳信息所指向的节点。
[0156]
当该目标路由前缀信息可以对应于多个目标下一跳信息(即,可以找到多条表项)时,则说明该第一业务功能转发节点可以通过多个下一跳节点,最终到达同一个sfc节点(即,目标节点)。该目标节点可以为业务功能节点,也可以为业务功能转发节点,本发明对此并未特别限定。
[0157]
在此情况下,若mod字段值为1,将如上述多条表项按传统的bgp选路规则排序,将排在前面的表项选为使用的表项;如果选中的是多条,这多条表项将按等价负载分担方式。例如,在sff1上将第一报文通过上述三条通道转发到sf1;如果选中的是一条,直接使用这一条表项,将第一报文转发给该表项所指向的sf。
[0158]
若mod字段值为2,命中的如上多条表项均可承担转发,各表项所占转发比例由第一业务功能转发节点根据权重值(weight)确定。或者,若mod字段值为2,还可以根据开销值(cost),从命中的如上多条表项中,确定主用表项和备用表项,即,确定用于转发的主用通道和备用通道。
[0159]
并且,可选地,第一业务功能转发节点还可以根据带宽值确定每条通道的带宽值,将流入各通道的带宽限制在预设的范围内。
[0160]
应理解,上述列举的带宽值、权重值和开销值可以由上文中所描述的路由属性信息确定。为了简洁,这里省略对第一业务功能转发节点根据权重值确定各表项转发比例的详细说明。
[0161]
应理解,以上所列举的流量分配策略以及通过流量分配策略对报文所承载的流量进行分配的具体方法仅为示例性说明,不应对本发明构成限定。例如,控制节点还可以通过更多的流量分配策略来控制报文转发。
[0162]
还应理解,以上所列举的通过bgp flow spec报文中flow nlri字段和扩展团体属性字段分别承载匹配项和路由前缀信息的方法仅为示例性说明,不应对本发明构成任何限定。本发明不排除通过现有的其他bgp报文,或者bgp报文中的其他已有或者新增的字段承载匹配项和路由前缀信息(即,报文转发规则)的可能。
[0163]
因此,本发明实施例的基于sfc的报文转发方法,通过控制节点与业务功能转发节点同步报文转发规则,使业务功能转发节点能够根据报文转发规则引导报文,将普通报文从非sfc转发平面引导至sfc转发平面,使报文按照指定的sfp传输。并且,通过控制节点下发的流量分配策略来进一步控制流量在各个通道中的分配比例,使得整个sfc网络中对流
量的分配更均衡、更合理。
[0164]
情况二
[0165]
情况二可对应于图4中所示的场景。图4是本发明实施例的另一应用场景的示意图。作为另一个实施例,该第一报文为sfc报文。若该第一报文需要从一条sfp(为便于区分和说明,记作第二sfp)转发到另一条sfp(为便于区分和说明,记作第三sfp)时,也需要对第一报文进行引导。例如,图4中所示,第一报文从第二sfp中的末个业务功能转发节点sff2转发第三sfp中时,需要对第一报文进行引导,为其匹配sfp。并根据匹配的sfp的spi,将第一报文的报文投中的源spi和源si删除,并添加目标spi和目标si。在此情况下,该报文转发规则可以包括用于指示sfc报文的流量特征信息的匹配项与路由前缀信息的第二映射关系。
[0166]
具体地,如图4所示,假设sff1

sf1

sff1

sff2

sf2

sff2

sff3可以构成第二sfp,sff3

sff4

sf3

sff4

sf4

sff4

sff5可以构成第三sfp。即,sff3是第二sfp和第三sfp的交点节点。当第一报文进入sff3时,可以解析第一报文的报文头中的源spi和源si(例如,可以将第一报文对应的源spi和源si分别记作第一spi和第一si)。并根据第二映射关系,对第一报文进行流量匹配。
[0167]
可选地,s220控制节点向第一业务功能转发节点发送该报文转发规则,包括:
[0168]
该第一业务功能转发节点接收该控制节点发送的边界网关协议bgp flow spec报文,该bgp flow spec报文包括flow spec网络层可达性信息nlri字段和扩展团体属性字段,该flow spec nlri字段承载该sfc报文的流量特征信息的匹配项,该扩展团体属性字段包括spi字段和si字段,该spi字段承载该spi,该si字段承载该si。
[0169]
具体地,该bgp flow spec报文包括mp_reach_nlri属性字段,该属性字段包括nlri字段(即,上述flow spec nlri字段)。在本发明实施例中,nlri字段承载匹配项,扩展团体属性字段承载路由前缀信息。
[0170]
应理解,以上所列举的通过bgp flow spec报文中flow nlri字段和扩展团体属性字段分别承载匹配项和路由前缀信息的方法仅为示例性说明,不应对本发明构成任何限定。本发明不排除通过现有的其他bgp报文,或者bgp报文中的其他已有或者新增的字段承载匹配项和路由前缀信息(即,报文转发规则)的可能。
[0171]
可选地,该sfc报文的流量特征信息的匹配项包括以下至少一种:
[0172]
报文类型;
[0173]
源spi;以及,
[0174]
源spi和源si。
[0175]
其中,报文类型表示该第一报文是sfc报文或者非sfc报文(例如,ip报文等)。报文类型可以根据第一报文的报文头中是否携带spi和si来确定,上文中已经对确定第一报文是否为sfc报文的具体方法进行说明,为了简洁,这里不再赘述。
[0176]
可选地,s230第一业务功能转发节点接收第一报文,该第一报文的报文头中携带有该第一报文的流量特征信息,包括:
[0177]
该第一业务功能转发节点接收该第一报文,该第一报文的报文头中携带有第一spi和第一si,该第一spi为与该第一报文相对应的源spi,该第一si为与该第一报文相对应的源si;
[0178]
s240该第一业务功能转发节点接收第一报文,该第一报文的报文头中携带有该第
一报文的流量特征信息,包括:
[0179]
该第一业务功能转发节点接收该第一报文,该第一报文的报文头中携带有第一spi和第一si,该第一spi为与该第一报文相对应的源spi,该第一si为与该第一报文相对应的源si;
[0180]
该第一业务功能转发节点根据该报文转发规则,确定与该第一报文的流量特征信息对应的目标路由前缀信息,包括:
[0181]
该第一业务功能转发节点确定该第一报文的报文类型为sfc报文时,根据该第二映射关系,确定该目标spi和该目标si;或者,
[0182]
该第一业务功能转发节点根据该第一spi和该第二映射关系,确定该目标spi和该目标si;或者,
[0183]
该第一业务功能转发节点根据该第一spi和该第一si,以及该第二映射关系,确定该目标spi和该目标si。
[0184]
具体而言,第一业务功能转发节点在确定第一报文的报文投中携带有第一spi和第一si时,可以确定第一报文为sfc报文。该第一业务功能转发节点可以直接对第一报文进行引导,也可以根据其携带的spi和si的具体内容进行引导。
[0185]
例如,当需要将多条报文(例如包括该第一报文)的流量汇聚到同一条sfp(例如,第三sfp)中时,可以直接根据该报文的报文类型进行过滤,对非sfc报文进行过滤,将sfc报文直接引导到第三sfp上去。
[0186]
进一步地,当匹配项为报文类型时,该匹配项还可以包括非sfc报文的流量特征信息的匹配项中的任意一项。也就是说,将非sfc报文的流量特征信息的匹配项中的任意一项(例如,情况一中所列举的非sfc报文的流量特征信息的匹配项)和报文类型同时用于作为过滤条件。即,当该报文为sfc报文时,同时考虑该报文的流量特征信息,为报文匹配合适的sfp。
[0187]
又例如,当需要将多条报文(例如包括该第一报文)的流量汇聚到多条sfp中时,第一业务功能转发节点也可以根据第一报文中携带的spi和si的具体内容,为第一报文匹配sfp。
[0188]
具体地,第一业务功能转发节点可以根据第一spi(即,与第一报文对应的源spi),或者,第一spi和第一si(即,与第一报文对应的源si)进行匹配。该第一spi和第一si用于标识该第一报文目前所在的sfp(例如,第二sfp)。第一业务功能转发节点需要根据该第一spi和第一si,以及第二映射关系,确定目标spi和目标si,即,确定将该第一报文引导至的另一条sfp(例如,第三sfp)。应理解,第一业务功能转发节点可以连接有至少两条sfp,或者说,第一业务功能转发节点可以是至少两条sfp的交点节点。例如,该第一业务功能转发节点可以为第二sfp的尾节点,同时还可以是第三sfp的头节点;或者,该第一业务功能转发节点可以为第二sfp的尾节点,同时还可以是第三sfp的中间节点;或者,该第一业务功能转发节点可以为第二sfp的中间节点,同时还可以是第三sfp的头节点;或者,第一业务功能转发节点可以同时为第二sfp和第三sfp的中间节点。
[0189]
假设,第一业务功能转发节点为第二sfp的尾节点,同时为第三sfp的头节点。第一报文进入第一业务功能转发节点时,通过首先进行流量匹配。在第二映射关系中,匹配项为源spi和源si。通过匹配源spi和源si,将第一报文引导到目标spi和目标si所指向的下一跳
节点中去。
[0190]
这里,需要说明的是,源spi和源si用于指示报文在进入第一业务功能转发节点时所处的sfp(与源spi和源si相对应地,记作源sfp)以及该第一业务功能转发节点在该源sfp中的位置。第一报文的报文头中所携带的第一spi和第一si是与第一报文相对应的源spi和源si,根据第一spi和第一si,可以确定第一报文所处的源sfp(即,上述第二sfp)。
[0191]
第一业务功能转发节点根据第二映射关系,可以确定目标spi和目标si。然后根据本地保存的路由表,可以确定目标下一跳信息。
[0192]
第一业务功能转发节点根据目标spi和目标si确定目标下一跳信息,并基于目标下一跳信息转发报文的具体方法在前文中已经详细描述,为了简洁,这里不再赘述。
[0193]
需要说明的是,以上列举的第一业务功能转发节点作为第二sfp的尾节点,同时作为第三sfp的头节点,将第一报文从第二sfp引导至第三sfp的过程仅为示例性说明。当第一业务功能转发节点为第二sfp或者第三sfp的中间节点时,若需要对第一报文进行特殊引导,使其从第二sfp转发至第三sfp中时,本发明实施例的方法也同样适用。第一业务功能转发节点作为第二sfp或第三sfp的中间节点,转发第一报文的具体过程与第一业务功能转发节点作为第二sfp的尾节点,同时作为第三sfp的头节点转发第一报文的具体过程相似,为了简洁,这里不再赘述。
[0194]
可选地,该bgp flow spec nlri字段包括至少一个类型长度值tlv字段,每个tlv字段承载该sfc报文的流量特征信息的匹配项中的一种。
[0195]
表3示出了通过tlv承载上述sfc报文的流量特征信息的匹配项时各字段的具体内容及功能。
[0196]
表3
[0197][0198]
应理解,以上列举的用于匹配流量的匹配项以及各匹配项与类型的对应关系仅为示例性说明,不应对本发明构成任何限定。还应理解,通过在bgp flow spec nlri字段中新增tlv来承载匹配项的方法仅为示例性说明,不应对本发明构成任何限定。本发明不排除通过其他已有的或新增的字段来承载sfc报文的流量特征信息的匹配项。
[0199]
因此,本发明实施例的基于sfc的报文转发方法,通过控制节点与业务功能转发节点同步报文转发规则,使业务功能转发节点能够根据报文转发规则引导报文,将sfc报文从一条sfp引导至另一条sfp,使报文按照指定的sfp传输。并且,通过新增的spi和si的匹配项,可以通过直接对sfc报文进行匹配,而避免了在报文进入sfc的首节点时需要进行的非sfc报文的流量匹配,大大减少了匹配的工作量,提高了报文转发效率。
[0200]
以上,结合图2至图4详细说明了根据本发明实施例的基于sfc的报文转发方法。以下,结合图5至图9详细说明根据本发明实施例的基于sfc的报文转发装置和系统。
[0201]
图5根据本发明一实施例的业务功能转发节点400的示意性框图。如图5所示,该业务功能转发节点400包括:第一接收模块410、第二接收模块420、第一确定模块430和第二确定模块440。
[0202]
其中,该第一接收模块410用于接收控制节点发送的报文转发规则,该报文转发规则用于指示报文的流量特征信息的匹配项与路由前缀信息的映射关系;
[0203]
该第二接收模块420用于接收第一报文,该第一报文的报文头中携带有该第一报文的流量特征信息;
[0204]
该第一确定模块430用于根据该报文转发规则,确定与该第一报文的流量特征信息对应的目标路由前缀信息,其中,该业务功能转发节点中保存有至少一个路由前缀信息与至少一个下一跳信息的映射关系,该至少一个下一跳信息与该业务功能转发节点连接的至少一个下一跳节点一一对应,每个下一跳信息指示所对应的下一跳节点的地址,该至少一个路由前缀信息包括该目标路由前缀信息;
[0205]
该第二确定模块440用于根据该目标路由前缀信息,确定目标下一跳信息,并根据该目标下一跳信息转发该第一报文。
[0206]
可选地,该路由前缀信息包括业务功能路径标识spi和业务索引si,该spi标识该sfc中的业务功能路径sfp,该si指示该业务功能转发节点400在该sfp中的位置,
[0207]
该第一接收模块410具体用于接收该控制节点发送的边界网关协议bgp流规则flow spec报文,该bgp flow spec报文包括flow spec网络层可达性信息nlri字段和扩展团体属性字段,该flow spec nlri字段承载该报文的流量特征信息的匹配项,该扩展团体属性字段包括spi字段和si字段,该spi字段承载该spi,该si字段承载该si。
[0208]
可选地,该报文转发规则包括用于指示非sfc报文的流量特征信息的匹配项与路由前缀信息的第一映射关系,该目标路由前缀信息包括目标spi和目标si,
[0209]
该业务功能转发节点400还包括第三确定模块,用于在确定该第一报文的报文头中未携带sfc报文标识时,确定该第一报文为非sfc报文;
[0210]
该第一确定模块430具体用于根据该第一映射关系,以及该第一报文的流量特征信息,确定该目标spi和该目标si。
[0211]
可选地,该第一业务功能转发节点400与目标节点之间连接有至少一个通道,该目标节点由该控制节点确定,且该第一业务功能转发节点基于该目标下一跳信息将该第一报文转发至该目标节点;
[0212]
其中,该扩展团体属性字段包括模式mod字段,该mod字段承载流量分配策略,该流量分配策略指示该至少一个通道中每个通道的带宽值,或者,所述流量分配策略指示用于传输该第一报文的主用通道和备用通道,或者,该流量分配策略指示对该至少一个通道中每个通道分配的流量的比例。
[0213]
可选地,该报文转发规则包括用于指示sfc报文的流量特征信息的匹配项与路由前缀信息的第二映射关系,该sfc报文的流量特征信息的匹配项包括以下至少一种:
[0214]
报文类型;
[0215]
源spi;以及,
[0216]
源spi和源si;
[0217]
其中,该源spi用于标识该sfc报文所在的源sfp,该源si用于指示该sfc报文所在
的业务功能转发节点在该源sfp中的位置。
[0218]
可选地,该bgp flow spec nlri字段包括至少一个类型长度值tlv字段,每个tlv字段承载该sfc报文的流量特征信息的匹配项中的一种。
[0219]
可选地,该目标路由前缀信息包括目标spi和目标si,该第一报文的报文头中携带有第一spi和第一si,该第一spi为与该第一报文相对应的源spi,该第一si为与该第一报文相对应的源si,
[0220]
该第一确定模块430具体用于确定该第一报文的报文类型为sfc报文时,根据该第二映射关系,确定该目标spi和该目标si;或者,
[0221]
该第一确定模块430具体用于根据该第一spi和该第二映射关系,确定该目标spi和该目标si;或者,
[0222]
该第一确定模块430具体用于根据该第一spi和该第一si,以及该第二映射关系,确定该目标spi和该目标si。
[0223]
根据本发明实施例的基于sfc的业务功能转发节点400可对应于根据本发明实施例的基于sfc的报文转发方法中的第一业务功能转发节点,并且,该业务功能转发节点400中的各模块和上述其他操作和/或功能分别为了实现图2的报文转发方法的相应流程,为了简洁,在此不再赘述。
[0224]
因此,本发明实施例的业务功能转发节点,通过控制节点与该业务功能转发节点同步报文转发规则,使该业务功能转发节点能够根据报文转发规则引导报文,使报文按照指定的sfp传输。与现有技术中人工静态配置的方法相比,大大减少了人力和配置时间;尤其是在配置量较大时,更凸显其方便、省时、省力的优势,并且通过机器进行自动配置,也降低了人工配置的错误率;更进一步地,由于能够根据网络流量的状况进行动态调整,非常灵活。
[0225]
图6是根据本发明另一实施例的控制节点500的示意性框图。如图6所示,该控制节点500包括:确定模块510和发送模块520。
[0226]
其中,该确定模块510用于确定报文转发规则,该报文转发规则用于指示报文的流量特征信息与路由前缀信息的映射关系,该路由前缀信息与下一跳信息对应,该下一跳信息指示下一跳节点的地址;
[0227]
该发送模块520用于向第一业务功能转发节点发送该报文转发规则,以便于该第一业务功能转发节点根据该报文转发规则转发报文。
[0228]
可选地,该路由前缀信息包括业务功能路径标识spi和业务索引si,该spi标识该sfc中的业务功能路径sfp,该si指示该第一业务功能转发节点在该sfp中的位置,
[0229]
该发送模块520具体用于向该第一业务功能转发节点发送边界网关协议bgp流规则flow spec报文,该bgp flow spec报文包括flow spec网络层可达性信息nlri字段和扩展团体属性字段,该flow spec nlri字段承载该报文的流量特征信息的匹配项,该扩展团体属性字段包括spi字段和si字段,该spi字段承载该spi,该si字段承载该si。
[0230]
可选地,该报文转发规则包括用于指示非sfc报文的流量特征信息的匹配项与路由前缀信息的第一映射关系,该第一业务功能转发节点与目标节点之间连接有至少一个通道,该目标节点由该控制节点500确定,且该第一业务功能转发节点基于该目标下一跳信息将该第一报文转发至该目标节点;
[0231]
其中,该扩展团体属性字段包括模式mod字段,该mod字段承载流量分配策略,该流量分配策略指示该至少一个通道中每个通道的带宽值,或者,所述流量分配策略指示用于传输该第一报文的主用通道和备用通道,或者,该流量分配策略指示对该至少一个通道中每个通道分配的流量的比例。可选地,该报文转发规则包括用于指示sfc报文的流量特征信息的匹配项与路由前缀信息的第二映射关系,该sfc报文的流量特征信息的匹配项包括以下至少一种:
[0232]
报文类型;
[0233]
源spi;以及,
[0234]
源spi和源si;
[0235]
其中,该源spi用于标识该sfc报文所在的源sfp,该源si用于指示该sfc报文所在的业务功能转发节点在该源sfp中的位置。
[0236]
可选地,该bgp flow spec nlri字段包括至少一个类型长度值tlv字段,每个tlv字段承载该sfc报文的流量特征信息的匹配项中的一种。
[0237]
根据本发明实施例的基于sfc的控制节点500可对应于根据本发明实施例的基于sfc的报文转发方法中的控制节点,并且,该控制节点500中的各模块和上述其他操作和/或功能分别为了实现图2中的报文转发方法的相应流程,为了简洁,在此不再赘述。
[0238]
因此,本发明实施例的控制节点,通过该控制节点与第一业务功能转发节点同步报文转发规则,使该第一业务功能转发节点能够根据报文转发规则引导报文,使报文按照指定的sfp传输。与现有技术中人工静态配置的方法相比,大大减少了人力和配置时间;尤其是在配置量较大时,更凸显其方便、省时、省力的优势,并且通过机器进行自动配置,也降低了人工配置的错误率;更进一步地,由于能够根据网络流量的状况进行动态调整,非常灵活。
[0239]
图7是根据本发明一实施例的基于sfc的报文转发系统600的示意性框图。如图7所示,该报文转发系统600包括上述实施例描述的业务功能转发节点400和上述实施例描述的控制节点500。
[0240]
应理解,该报文转发系统600中的各个模块和其它操作和/或功能分别为了实现图2中的报文转发方法的相应流程,为了简洁,在此不再赘述。
[0241]
因此,本发明实施例的报文转发系统,通过控制节点与该业务功能转发节点同步报文转发规则,使该业务功能转发节点能够根据报文转发规则引导报文,使报文按照指定的sfp传输。与现有技术中人工静态配置的方法相比,大大减少了人力和配置时间;尤其是在配置量较大时,更凸显其方便、省时、省力的优势,并且通过机器进行自动配置,也降低了人工配置的错误率;更进一步地,由于能够根据网络流量的状况进行动态调整,非常灵活。
[0242]
图8是根据本发明一实施例的业务功能转发节点700的另一示意性框图。如图8所示,该业务功能转发节点700包括:接收器710、发送器720、处理器730、存储器740和总线系统750。其中,接收器710、发送器720、处理器730和存储器740通过总线系统750相连,该存储器740用于存储指令,该处理器730用于执行该存储器740存储的指令,以控制接收器740接收信号,并控制发送器720发送信号。其中,
[0243]
该接收器710用于接收控制节点发送的报文转发规则,该报文转发规则用于指示报文的流量特征信息的匹配项与路由前缀信息的映射关系;
[0244]
该接收器710还用于接收第一报文,该第一报文的报文头中携带有该第一报文的流量特征信息;
[0245]
该处理器730用于根据该报文转发规则,确定与该第一报文的流量特征信息对应的目标路由前缀信息,其中,该业务功能转发节点中保存有至少一个路由前缀信息与至少一个下一跳信息的映射关系,该至少一个下一跳信息与该业务功能转发节点连接的至少一个下一跳节点一一对应,每个下一跳信息指示所对应的下一跳节点的地址,该至少一个路由前缀信息包括该目标路由前缀信息;
[0246]
该处理器730还用于根据该目标路由前缀信息,确定目标下一跳信息,并根据该目标下一跳信息转发该第一报文。
[0247]
应理解,在本发明实施例中,该处理器730可以是中央处理单元(central processing unit,简称为“cpu”),该处理器730还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0248]
该存储器740可以包括只读存储器和随机存取存储器,并向处理器730提供指令和数据。存储器740的一部分还可以包括非易失性随机存取存储器。例如,存储器740还可以存储设备类型的信息。
[0249]
该总线系统750除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统750。
[0250]
在实现过程中,上述方法的各步骤可以通过处理器730中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的定位方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器740,处理器730读取存储器740中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0251]
可选地,该路由前缀信息包括业务功能路径标识spi和业务索引si,该spi标识该sfc中的业务功能路径sfp,该si指示该业务功能转发节点700在该sfp中的位置,
[0252]
该接收器710具体用于接收该控制节点发送的边界网关协议bgp流规则flow spec报文,该bgp flow spec报文包括flow spec网络层可达性信息nlri字段和扩展团体属性字段,该flow spec nlri字段承载该报文的流量特征信息的匹配项,该扩展团体属性字段包括spi字段和si字段,该spi字段承载该spi,该si字段承载该si。
[0253]
可选地,该报文转发规则包括用于指示非sfc报文的流量特征信息的匹配项与路由前缀信息的第一映射关系,该目标路由前缀信息包括目标spi和目标si,
[0254]
该处理器730还用于在确定该第一报文的报文头中未携带sfc报文标识时,确定该第一报文为非sfc报文;
[0255]
该处理器730具体用于根据该第一映射关系,以及该第一报文的流量特征信息,确定该目标spi和该目标si。
[0256]
可选地,该第一业务功能转发节点700与目标节点之间连接有至少一个通道,该目标节点由该控制节点确定,且该第一业务功能转发节点基于该目标下一跳信息将该第一报
文转发至该目标节点;
[0257]
其中,该扩展团体属性字段包括模式mod字段,该mod字段承载流量分配策略,该流量分配策略指示该至少一个通道中每个通道的带宽值,或者,所述流量分配策略指示用于传输该第一报文的主用通道和备用通道,或者,该流量分配策略指示对该至少一个通道中每个通道分配的流量的比例。
[0258]
可选地,该报文转发规则包括用于指示sfc报文的流量特征信息的匹配项与路由前缀信息的第二映射关系,该sfc报文的流量特征信息的匹配项包括以下至少一种:报文类型;源spi;以及,源spi和源si;
[0259]
其中,该源spi用于标识该sfc报文所在的源sfp,该源si用于指示该sfc报文所在的业务功能转发节点在该源sfp中的位置。
[0260]
可选地,该bgp flow spec nlri字段包括至少一个类型长度值tlv字段,每个tlv字段承载该sfc报文的流量特征信息的匹配项中的一种。
[0261]
可选地,该目标路由前缀信息包括目标spi和目标si,该第一报文的报文头中携带有第一spi和第一si,该第一spi为与该第一报文相对应的源spi,该第一si为与该第一报文相对应的源si,
[0262]
该处理器730具体用于确定该第一报文的报文类型为sfc报文时,根据该第二映射关系,确定该目标spi和该目标si;或者,
[0263]
该处理器730具体用于根据该第一spi和该第二映射关系,确定该目标spi和该目标si;或者,
[0264]
该处理器730具体用于根据该第一spi和该第一si,以及该第二映射关系,确定该目标spi和该目标si。
[0265]
根据本发明实施例的基于sfc的业务功能转发节点700可对应于根据本发明实施例的基于sfc的报文转发方法中的第一业务功能转发节点,并且,该业务功能转发节点700中的各模块和上述其他操作和/或功能分别为了实现图2的报文转发方法的相应流程,为了简洁,在此不再赘述。
[0266]
因此,本发明实施例的业务功能转发节点,通过控制节点与该业务功能转发节点同步报文转发规则,使该业务功能转发节点能够根据报文转发规则引导报文,使报文按照指定的sfp传输。与现有技术中人工静态配置的方法相比,大大减少了人力和配置时间;尤其是在配置量较大时,更凸显其方便、省时、省力的优势,并且通过机器进行自动配置,也降低了人工配置的错误率;更进一步地,由于能够根据网络流量的状况进行动态调整,非常灵活。
[0267]
图9是根据本发明另一实施例的业务功能转发节点的另一示意性框图。如图9所示,该控制节点800包括:接收器810、发送器820、处理器830、存储器840和总线系统850。其中,接收器810、发送器820、处理器830和存储器840通过总线系统850相连,该存储器840用于存储指令,该处理器830用于执行该存储器840存储的指令,以控制接收器840接收信号,并控制发送器820发送信号。其中,
[0268]
该处理器830用于确定报文转发规则,该报文转发规则用于指示报文的流量特征信息与路由前缀信息的映射关系,该路由前缀信息与下一跳信息对应,该下一跳信息指示下一跳节点的地址;
[0269]
该发送器820用于向第一业务功能转发节点发送该报文转发规则,以便于该第一业务功能转发节点根据该报文转发规则转发报文。
[0270]
可选地,该路由前缀信息包括业务功能路径标识spi和业务索引si,该spi标识该sfc中的业务功能路径sfp,该si指示该第一业务功能转发节点在该sfp中的位置,
[0271]
该发送器820具体用于向该第一业务功能转发节点发送边界网关协议bgp流规则flow spec报文,该bgp flow spec报文包括flow spec网络层可达性信息nlri字段和扩展团体属性字段,该flow spec nlri字段承载该报文的流量特征信息的匹配项,该扩展团体属性字段包括spi字段和si字段,该spi字段承载该spi,该si字段承载该si。
[0272]
可选地,该报文转发规则包括用于指示非sfc报文的流量特征信息的匹配项与路由前缀信息的第一映射关系,该第一业务功能转发节点与目标节点之间连接有至少一个通道,该目标节点由该控制节点800确定,且该第一业务功能转发节点基于该目标下一跳信息将该第一报文转发至该目标节点;
[0273]
其中,该扩展团体属性字段包括mod字段,该mod字段承载流量分配策略,该流量分配策略指示该至少一个通道中每个通道的带宽值,或者,所述流量分配策略指示用于传输该第一报文的主用通道和备用通道,或者,该流量分配策略指示对该至少一个通道中每个通道分配的流量的比例。可选地,该报文转发规则包括用于指示sfc报文的流量特征信息的匹配项与路由前缀信息的第二映射关系,该sfc报文的流量特征信息的匹配项包括以下至少一种:
[0274]
报文类型;
[0275]
源spi;以及,
[0276]
源spi和源si;
[0277]
其中,该源spi用于标识该sfc报文所在的源sfp,该源si用于指示该sfc报文所在的业务功能转发节点在该源sfp中的位置。
[0278]
可选地,该bgp flow spec nlri字段包括至少一个类型长度值tlv字段,每个tlv字段承载该sfc报文的流量特征信息的匹配项中的一种。
[0279]
根据本发明实施例的基于sfc的控制节点800可对应于根据本发明实施例的基于sfc的报文转发方法中的控制节点,并且,该控制节点800中的各模块和上述其他操作和/或功能分别为了实现图2中的报文转发方法的相应流程,为了简洁,在此不再赘述。
[0280]
因此,本发明实施例的控制节点,通过该控制节点与第一业务功能转发节点同步报文转发规则,使该第一业务功能转发节点能够根据报文转发规则引导报文,使报文按照指定的sfp传输。与现有技术中人工静态配置的方法相比,大大减少了人力和配置时间;尤其是在配置量较大时,更凸显其方便、省时、省力的优势,并且通过机器进行自动配置,也降低了人工配置的错误率;更进一步地,由于能够根据网络流量的状况进行动态调整,非常灵活。
[0281]
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0282]
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施
过程构成任何限定。
[0283]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0284]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0285]
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0286]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0287]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0288]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0289]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

技术特征:
1.一种基于业务功能链sfc的报文转发方法,其特征在于,包括:业务功能转发节点接收控制节点发送的报文转发规则,所述报文转发规则包括路由前缀信息和报文的流量特征信息的对应关系。2.根据权利要求1所述的报文转发方法,其特征在于,所述业务功能转发节点接收控制节点发送的报文转发规则包括:所述业务功能转发节点接收所述控制节点发送的边界网关协议bgp流规则flow spec报文,所述bgp flow spec报文包括flow spec网络层可达性信息nlri字段和扩展团体属性字段,所述flow spec nlri字段用于携带所述报文的流量特征信息,所述扩展团体属性字段用于携带所述路由前缀信息。3.根据权利要求1或2所述的报文转发方法,其特征在于,所述路由前缀信息包括第一业务功能路径标识spi和第一业务索引si,所述第一spi用于标识所述sfc中的业务功能路径sfp,所述第一si用于标识对所述报文进行业务处理的业务功能sf节点。4.根据权利要求2所述的报文转发方法,其特征在于,所述路由前缀信息包括第一spi和第一si,所述第一spi用于标识所述sfc中的sfp,所述第一si用于标识对所述报文进行业务处理的sf节点,所述扩展团体属性字段包括spi字段和si字段,所述spi字段用于携带所述第一spi,所述si字段用于携带所述第一si。5.根据权利要求1至4任一所述的报文转发方法,其特征在于,所述报文的流量特征信息不包括sfc报文标识,所述sfc报文标识包括第二spi或者所述sfc报文标识包括第二spi和第二si,所述第二spi用于标识所述sfc中的sfp,所述第二si用于标识sf节点。6.根据权利要求1至5任一所述的报文转发方法,其特征在于,所述报文转发规则还包括流量分配策略,所述流量分配策略包括所述至少一个通道中每个通道的带宽值,或者,所述流量分配策略包括用于传输所述第一报文的主用通道和备用通道,或者,所述流量分配策略包括至少一个通道中每个通道分配的流量的比例,所述至少一个通道用于所述业务功能转发节点与所述报文的目标节点间的通信。7.根据权利要求2或4所述的报文转发方法,其特征在于,所述报文转发规则还包括流量分配策略,所述流量分配策略携带于所述扩展团体属性字段包括的模式mod字段,所述流量分配策略包括所述至少一个通道中每个通道的带宽值,或者,所述流量分配策略包括用于传输所述第一报文的主用通道和备用通道,或者,所述流量分配策略包括至少一个通道中每个通道分配的流量的比例,所述至少一个通道用于所述业务功能转发节点与所述报文的目标节点间的通信。8.根据权利要求1至7任一所述的报文转发方法,其特征在于,所述报文的流量特征信息包括五元组信息。9.根据权利要求1至8任一所述的报文转发方法,其特征在于,所述报文的流量特征信息包括sfc报文标识,所述sfc报文标识包括第二spi或者所述sfc报文标识包括第二spi和第二si,所述第二spi用于标识所述sfc中的sfp,所述第二si用于标识sf节点。10.根据权利要求2、4或7所述的报文转发方法,其特征在于,所述报文的流量特征信息包括sfc报文标识,所述sfc报文标识包括第二spi或者所述sfc报文标识包括第二spi和第二si,所述第二spi用于标识所述sfc中的sfp,所述第二si用于标识sf节点,所述bgp flow spec nlri字段包括至少一个类型长度值tlv字段,所述至少一个tlv字段用于携带所述sfc
flow spec nlri字段包括至少一个类型长度值tlv字段,所述至少一个tlv字段用于携带所述sfc报文标识。21.根据权利要求11至20任一所述的报文转发方法,其特征在于,所述方法还包括:所述控制节点获取所述报文转发规则。22.一种业务功能转发装置,其特征在于,包括:第一接收模块,用于接收控制节点发送的报文转发规则,所述报文转发规则包括路由前缀信息和报文的流量特征信息的对应关系。23.根据权利要求22所述的装置,其特征在于,所述第一接收模块具体用于:接收所述控制节点发送的边界网关协议bgp流规则flow spec报文,所述bgp flow spec报文包括flow spec网络层可达性信息nlri字段和扩展团体属性字段,所述flow spec nlri字段用于携带所述报文的流量特征信息,所述扩展团体属性字段用于携带所述路由前缀信息。24.根据权利要求22或23所述的装置,其特征在于,所述路由前缀信息包括第一业务功能路径标识spi和第一业务索引si,所述第一spi用于标识所述sfc中的业务功能路径sfp,所述第一si用于标识对所述报文进行业务处理的业务功能sf节点。25.根据权利要求23所述的装置,其特征在于,所述路由前缀信息包括第一spi和第一si,所述第一spi用于标识所述sfc中的sfp,所述第一si用于标识对所述报文进行业务处理的sf节点,所述扩展团体属性字段包括spi字段和si字段,所述spi字段用于携带所述第一spi,所述si字段用于携带所述第一si。26.根据权利要求22至25任一所述的装置,其特征在于,所述报文的流量特征信息不包括sfc报文标识,所述sfc报文标识包括第二spi或者所述sfc报文标识包括第二spi和第二si,所述第二spi用于标识所述sfc中的sfp,所述第二si用于标识sf节点。27.根据权利要求22至26任一所述的装置,其特征在于,所述报文转发规则还包括流量分配策略,所述流量分配策略包括所述至少一个通道中每个通道的带宽值,或者,所述流量分配策略包括用于传输所述第一报文的主用通道和备用通道,或者,所述流量分配策略包括至少一个通道中每个通道分配的流量的比例,所述至少一个通道用于所述业务功能转发节点与所述报文的目标节点间的通信。28.根据权利要求23或25所述的装置,其特征在于,所述报文转发规则还包括流量分配策略,所述流量分配策略携带于所述扩展团体属性字段包括的模式mod字段,所述流量分配策略包括所述至少一个通道中每个通道的带宽值,或者,所述流量分配策略包括用于传输所述第一报文的主用通道和备用通道,或者,所述流量分配策略包括至少一个通道中每个通道分配的流量的比例,所述至少一个通道用于所述业务功能转发节点与所述报文的目标节点间的通信。29.根据权利要求22至28任一所述的装置,其特征在于,所述报文的流量特征信息包括五元组信息。30.根据权利要求22至29任一所述的装置,其特征在于,所述报文的流量特征信息包括sfc报文标识,所述sfc报文标识包括第二spi或者所述sfc报文标识包括第二spi和第二si,所述第二spi用于标识所述sfc中的sfp,所述第二si用于标识sf节点。31.根据权利要求23、25或28所述的装置,其特征在于,所述报文的流量特征信息包括
sfc报文标识,所述sfc报文标识包括第二spi或者所述sfc报文标识包括第二spi和第二si,所述第二spi用于标识所述sfc中的sfp,所述第二si用于标识sf节点,所述bgp flow spec nlri字段包括至少一个类型长度值tlv字段,所述至少一个tlv字段用于携带所述sfc报文标识。32.一种控制装置,其特征在于,包括:发送模块,用于向业务功能转发节点发送报文转发规则,所述报文转发规则包括路由前缀信息和报文的流量特征信息的对应关系。33.根据权利要求32所述的控制装置,其特征在于,所述发送模块具体用于:向所述业务功能转发节点发送边界网关协议bgp流规则flow spec报文,所述bgp flow spec报文包括flow spec网络层可达性信息nlri字段和扩展团体属性字段,所述flow spec nlri字段用于携带所述报文的流量特征信息,所述扩展团体属性字段用于携带所述路由前缀信息。34.根据权利要求32或33所述的控制装置,其特征在于,所述路由前缀信息包括第一业务功能路径标识spi和第一业务索引si,所述第一spi用于标识所述sfc中的业务功能路径sfp,所述第一si用于标识对所述报文进行业务处理的业务功能sf节点。35.根据权利要求33所述的控制装置,其特征在于,所述路由前缀信息包括第一spi和第一si,所述第一spi用于标识所述sfc中的sfp,所述第一si用于标识对所述报文进行业务处理的sf节点,所述扩展团体属性字段包括spi字段和si字段,所述spi字段用于携带所述第一spi,所述si字段用于携带所述第一si。36.根据权利要求32至35任一所述的控制装置,其特征在于,所述报文的流量特征信息不包括sfc报文标识,所述sfc报文标识包括第二spi或者所述sfc报文标识包括第二spi和第二si,所述第二spi用于标识所述sfc中的sfp,所述第二si用于标识sf节点。37.根据权利要求32至36任一所述的控制装置,其特征在于,所述报文转发规则还包括流量分配策略,所述流量分配策略包括所述至少一个通道中每个通道的带宽值,或者,所述流量分配策略包括用于传输所述第一报文的主用通道和备用通道,或者,所述流量分配策略包括至少一个通道中每个通道分配的流量的比例,所述至少一个通道用于所述业务功能转发节点与所述报文的目标节点间的通信。38.根据权利要求33或35所述的控制装置,其特征在于,所述报文转发规则还包括流量分配策略,所述流量分配策略携带于所述扩展团体属性字段包括的模式mod字段,所述流量分配策略包括所述至少一个通道中每个通道的带宽值,或者,所述流量分配策略包括用于传输所述第一报文的主用通道和备用通道,或者,所述流量分配策略包括至少一个通道中每个通道分配的流量的比例,所述至少一个通道用于所述业务功能转发节点与所述报文的目标节点间的通信。39.根据权利要求32至38任一所述的控制装置,其特征在于,所述报文的流量特征信息包括五元组信息。40.根据权利要求32至39任一所述的控制装置,其特征在于,所述报文的流量特征信息包括sfc报文标识,所述sfc报文标识包括第二spi或者所述sfc报文标识包括第二spi和第二si,所述第二spi用于标识所述sfc中的sfp,所述第二si用于标识sf节点。41.根据权利要求33、35或38所述的控制装置,其特征在于,所述报文的流量特征信息
包括sfc报文标识,所述sfc报文标识包括第二spi或者所述sfc报文标识包括第二spi和第二si,所述第二spi用于标识所述sfc中的sfp,所述第二si用于标识sf节点,所述bgp flow spec nlri字段包括至少一个类型长度值tlv字段,所述至少一个tlv字段用于携带所述sfc报文标识。42.根据权利要求32至41任一所述的控制装置,其特征在于,所述装置还包括:确定模块,用于获取报文转发规则。43.一种系统,其特征在于,所述系统包括如权利要求22至31任一所述的业务功能转发装置和如权利要求32至42任一所述的控制装置。44.一种计算机程序产品,其特征在于,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并执行时,使得所述计算机执行权利要求1至10任一所述的方法或权利要求11至21任一所述的方法。45.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储指令,所述指令中包括用于执行权利要求1至10任一所述的方法或权利要求11至21任一所述的方法。
技术总结
本发明公开了一种基于SFC的报文转发方法、装置和系统,能够通过控制节点对业务功能转发节点的自动配置,实现报文转发路径的重定向。该报文转发方法包括:第一业务功能转发节点接收控制节点发送的报文转发规则,该报文转发规则用于指示报文的流量特征信息的匹配项与路由前缀信息的映射关系;该第一业务功能转发节点接收第一报文,该第一报文的报文头中携带有该第一报文的流量特征信息;该第一业务功能转发节点根据该报文转发规则,确定与该第一报文的流量特征信息对应的目标路由前缀信息;该第一业务功能转发节点根据该目标路由前缀信息,确定目标下一跳信息,并根据该目标下一跳信息转发该第一报文。跳信息转发该第一报文。跳信息转发该第一报文。


技术研发人员:庄顺万 张军林 吴楠
受保护的技术使用者:华为技术有限公司
技术研发日:2016.07.01
技术公布日:2021/6/29

转载请注明原文地址:https://doc.8miu.com/read-11186.html

最新回复(0)