SR应用段与服务功能链(SFC)报头元数据的集成的制作方法

文档序号:15742653发布日期:2018-10-23 22:33阅读:294来源:国知局
SR应用段与服务功能链(SFC)报头元数据的集成的制作方法
本申请要求于2016年2月22日由Guichard等人提交的题为“SR应用段与服务功能链(SFC)报头元数据的集成”的美国专利申请No.15/049,521的优先权,该专利申请的内容通过引用并入本文中。
技术领域
本公开总体涉及计算机网络,并且更具体地,涉及将分段路由(SR)应用段与服务功能链(SFC)报头元数据集成。
背景技术
:多协议标签交换(MPLS)是一种分组交换技术,它允许路由决策基于附加到分组报头的标签。这样的标签代表网络中的路径,并且用于做出转发决定,直到相应的分组到达其目的地。一旦分组到达其目的地,目的地设备可以从分组的报头“弹出”(例如,移除)相应的标签和/或将另一个标签应用于该分组,以继续在整个网络中路由分组。分段路由(segmentrouting)是可以与MPLS结合使用的路由技术。例如,MPLS标签可以在路由协议消息中携带,以实现网络中的分段路由。分段路由定义了两种形式的分段:相邻分段和节点分段。通常,相邻分段对应于给定节点的特定相邻/接口。相反,节点分段本质上更全局,并且表示到节点的最短路径。值得注意的是,节点分段的目标节点可以被分配在网络内使用的唯一标识符。因此,通过连接任意数量的相邻和/或前缀分段可以形成标签交换路径(labelswitchedpath,LSP)。当沿着LSP的设备接收到具有作为顶部标签(toplabel)的分段的分组时,该标签可以被任意数量的中间设备重用以将分组路由到与该分段相关联的目标节点。例如,假设存在从节点A→B→C→D的路径。如果节点A接收到具有与节点D相关联的顶部标签/节点分段的分组,则节点A可以将标签与其自身交换并将该分组转发到节点B。节点B可以执行类似的操作并将分组转发到节点C。然后,节点C可以将标签从堆栈中弹出,并将具有任何剩余标签的分组转发到节点D。附图说明通过结合附图参考以下描述可以更好地理解本文的实施例,附图中相同的附图标记表示相同或功能相似的元件,其中:图1示出了示例的通信网络;图2示出了示例的网络设备/节点;图3A-3D示出了用于传送业务的服务功能路径(SFP)的实例;图4A-4B示出了示例的分组;图5A-5B示出了经由SFP发送的示例的分组;图6A-图6E图示了被转发到服务功能的分组的实例;图7A-图7D图示了被转发到服务功能的分组的另一实例;并且图8示出了用于处理分组的示例的简化过程。具体实施方式概述根据本公开的一个或多个实施例,网络中的设备接收包括一个或多个转发标签和服务功能链(SFC)报头的分组。该设备从分组中移除一个或多个转发标签。该设备将一个或多个转发标签的指示插入到SFC报头的元数据中。该设备将具有一个或多个转发标签的插入的指示的分组转发到服务功能。详细描述计算机网络是用于在端节点(比如个人计算机和工作站)之间传输数据的、通过通信链路和分段互连的地理上分布的节点集合。许多类型的网络是可用的,其类型范围是从局域网(LAN)到广域网(WAN)。LAN通常通过位于相同的一般物理位置(比如建筑物或校园)的专用私有通信链路来连接节点。另一方面,WAN通常通过长距离通信链路(比如公共载波电话线、光学光路、同步光学网络(SONET)或同步数字系列(SDH)链路)连接地理上分散的节点。互联网是连接全世界不同网络的WAN的示例,从而提供各种网络上的节点之间的全球通信。节点通常通过根据预定协议(比如传输控制协议/互联网协议(TCP/IP))交换离散帧或分组来通过网络进行通信。在此情境中,协议由一组规则组成,这些规则定义了节点如何相互交互。计算机网络还可以通过中间网络节点(比如路由器)来互连,以扩展每个网络的有效“大小”。图1是示例的计算机网络100的示意性框图,该计算机网络说明性地包括节点/设备200,比如通过链路或网络互连的多个路由器/设备(如图所示)。例如,客户端边缘(CE)路由器(例如,CE1和CE2)可以与提供商边缘(PE)路由器(例如,分别为PE1和PE2)互连,以跨越核心网络(比如说明性的核心网络104)进行通信。核心网络104可以是多协议标签交换(MPLS)网络,或(可替代地)任何其他形式的网络(例如,基于互联网的网络等)。可以通过使用预定义的网络通信协议(例如,传输控制协议/互联网协议(TCP/IP)、用户数据报协议(UDP)、异步传输模式(ATM)协议、帧中继协议或任何其他合适的协议)来通过链路在计算机网络100的节点/设备之间交换分组106(例如,业务(traffic)/消息)。本领域技术人员将理解,可以在计算机网络中使用任意数量的节点、设备、链路等,并且这里示出的视图是为了简单起见。图2是可以与本文所描述的一个或多个实施例一起使用的例如作为网络100的任何路由器或支持网络100的操作的任何其他计算设备(例如,交换机、服务器等)的示例节点/设备200的示意性框图。设备200包括通过系统总线250互连的多个网络接口210、一个或多个处理器220和存储器240。网络接口210包含机械、电气和信令电路,用于通过耦接到网络100的物理链路传送数据。网络接口可以被配置成使用各种不同的通信协议来发送和/或接收数据。值得注意的是,物理网络接口210还可以用于实施一个或多个虚拟网络接口,比如用于本领域技术人员已知的虚拟专用网络(VPN)接入。存储器240包括(一个或多个)处理器220和网络接口210可寻址的多个存储位置,用于存储与本文所描述的实施例相关联的软件程序和数据结构。处理器220可以包括适于执行软件程序并操纵数据结构245的必要元件或逻辑。操作系统242(例如,互联网工作操作系统或思科系统公司的另一个操作系统等)(其一部分通常驻留在存储器240中并且由(一个或多个)处理器执行)尤其通过调用支持在设备上运行的软件过程和/或服务的网络操作来在功能上组织节点。这些软件过程和/或服务可以包括本文所描述的路由过程244和/或分组封装/解封装过程248,其中的任何过程可以可替代地位于单个网络接口内。本领域技术人员应当明白,其他处理器和存储器类型(包括各种计算机可读介质)可以用于存储并执行涉及本文公开的技术的程序指令。另外,尽管本描述说明了各种过程,但是明确设想到,各种过程可以实施为被配置成根据本文中的技术(例如根据类似过程的功能)操作的模块。另外,尽管可以单独示出和/或描述过程,但是本领域技术人员应当理解,过程可以是其他过程内的例程或模块。路由过程/服务244包含由处理器220执行的计算机可执行指令,以执行由一个或多个路由协议提供的功能,比如本领域技术人员将理解的内部网关协议(IGP)(例如,开放最短路径优先,“OSPF”和中间系统到中间系统,“IS-IS”)、边界网关协议(BGP)(例如,与过程248相结合)等。这些功能可以被配置成管理转发信息数据库,其包括例如用于作出转发决定的数据。特别地,网络拓扑的变化可以使用路由协议(比如,常规的OSPF和IS-IS链路状态协议)来在路由器200之间通信(例如,以“收敛”到网络拓扑的相同视图)。在各种实施例中,路由过程244可以被配置成在网络中执行分段路由,比如,与MPLS相结合。例如,路由过程244可以利用IGP的扩展(例如,IS-IS、OSPF等),其允许IGP消息携带MPLS标签信息,从而实现分段路由(MPLS-SR)。如前所述,分段路由网络中的分段可以落入两种分类之一中:节点分段和相邻分段。相邻分段通常表示给定节点与相邻节点之间的本地接口。要注意的是,相邻分段不需要在不同节点之间是唯一的,因为相邻分段仅需要对特定节点的本地意义。相比之下,节点分段在本质上是全局的,并且使用唯一的标识符来表示节点分段的端点。当结合MPLS使用时,分段(例如,节点分段和相邻分段)可以被视为标签,由此节点可以将新的分段/标签“推”到堆栈上,从堆栈“弹出”(例如,移除)顶部分段/标签,或者利用另一个标签“交换”堆栈的顶部标签。在进一步的实施方式中,路由过程244可以可操作用于实施服务功能链(SFC)架构。关于SFC架构的细节可以参见J.Halpern等人的题为“服务功能链(SFC)架构”的互联网工程任务组(IETF)的征求修正意见书(RFC)7665,其通过引用并入本文中。通常,SFC促进网络服务的使用,并提供网络定位技术以定位支持这些服务的(一个或多个)设备。示例的服务可以包括但不限于缓存服务、防火墙服务、反入侵服务、恶意软件检测服务、深度分组检测(DPI)服务、加速服务、负载均衡服务、合法拦截(LI)服务、优化服务等。特别地,服务功能链包括可以基于业务的分类而提供给网络业务的有序服务集。作为SFC架构的一部分,可以定义指示必须向哪些服务发送特定分组(例如,哪些服务将对分组执行它们各自的功能)的服务功能路径(SFP)。然后可以封装分组/帧,以包括SFP的指示。值得注意的是,SFC封装仅用于包括数据平面上下文信息,并且不用于网络分组转发的目的。特别地,网络服务报头(NSH)可以被添加到分组或帧,以传达可以用于创建服务平面的元数据和服务路径信息。为了传输,NSH和分组可以封装在外部报头中。关于NSH协议报头的细节可以参见P.Quinn等人的题为“网络服务报头”的IETF草案,其内容通过引用并入本文中。如上所述,NSH架构提供了用于在网络中构建服务链以及使用在数据平面内携带的网络服务报头通过那些服务链来转发业务的机制。通过分类将网络服务报头强加于原始分组/帧。然后,用于在服务链的各个服务之间传输的外部封装被推送到分组/帧。使用NSH报头在服务平面层实现分组/帧的转发。具体而言,服务路径标识符(SPI)和服务索引(SI)用于此目的。唯一的SPI用于标识服务链的给定服务路径实例化,并且SI被初始化为服务链内的服务总数,并且随着分组/帧遍历服务路径在每个服务跳跃处递减。现在参考图3A-3D,示出了根据各种实施例的用于传送业务的SFP的示例。如图3A所示,假设沿着遍历网络部分302(例如,MPLS-SR核心网络等)的路径存在节点A-Z。特别地,假设节点A将通过所示路径向节点Z发送业务。此外,假设节点B是SFC分类器,并且节点C是被配置成将分组转发到任意数量的服务功能(例如,N个服务功能S1、S2等)的SFF。例如,S1可以是内容过滤服务,S2可以是NAT服务等。在一些情况下,服务功能可以由与SFFC不同的单独的网络设备提供。然而,由于SFC中的服务功能可以被虚拟化,所以在其他实施方式中,服务功能也可以在节点C上本地实施。如将理解的,所示节点以简化方式呈现,并且节点A和Z之间的路径可包括任意数量的中间节点和/或服务功能。为了建立SFP,OpenDaylight(ODL)或其他类似机制可以用于向所示的各个节点发送适当的指令。特别地,可以通过用标识SFP的唯一SPI对节点编程来建立SFP。此外,服务功能分类器设备/节点B还可以利用分类器节点B使用的分类规则来编程,以基于可以经由节点B发送的不同类型的用户业务来做出SFC决定。例如,一个分类规则可能仅需要HTTP业务来通过内容过滤服务功能S1,而其他类型的业务可能不需要该服务。仅出于说明的目的,假设节点A朝着目的地节点Z发送用户业务304。在各种实施例中,用户业务304可以包括作为业务流的一部分的任意数量的分组。例如,在一些情况下,用户业务304可以是多媒体业务流(例如,传送音频和/或视频),并且可以被多路复用(例如,在相同的5元组上)。在各种情况下,用户业务304也可以是单向的(例如,仅从节点A到节点Z)或多向的。如图3B所示,分类器节点B可以根据其编程的分类规则对业务304进行分类。例如,分类器节点B可以按其类型(例如,与业务相关联的应用等)、其地址信息(例如,源和/或目的地设备的地址和/或端口)、或可用于为业务选择特定SFP的任何其他信息来对业务304进行分类。基于该分类,分类器节点B然后可以构造SFC报头并使用该报头来封装业务304。例如,分类器节点B可以选择与分类相关联的SPI和SI,并且继而可以为业务304构建指示所选值的NSH报头。在图3C中示出了可以由分类器B为业务304选择的第一SFP306。特别地,添加到业务304的NSH报头可以指示应该将业务304发送到服务功能S1和SN两者以进行处理。值得注意的是,响应于接收到NSH封装的分组,在朝着业务的预期目的地(节点E)被转发之前,SFFC可以确定应该首先将业务304发送到服务功能S1以进行处理,然后再将其发送到服务功能SN。如图3D所示,业务304可以基于插入到业务304中的NSH报头来遍历备用SFP308。例如,虽然SFP306包括服务功能S1和SN两者,但是SFP308仅包括服务功能SN。因此,业务304的分类可以影响业务在被递送到其目的地之前将遍历哪个SFP(如果有的话)。如上所述,NSH是专门用于构建服务链的数据平面协议,并且由启用NSH的网络服务处理。此外,分段路由提供了一种指定分组必须遍历的显式节点的机制。然而,如果路径包括网络服务功能,则必须在将分组发送到服务功能之前从分组中移除分段路由信息(例如,标签堆栈或IPv6扩展报头)。值得注意的是,服务功能通常未被配置为处理无关信息,例如SR转发标签。这给网络运营商和网络设备带来了负担,以确保在被服务功能处理之后对分组进行正确且通常复杂的分类。与SFC报头元数据的SR应用段集成本文的技术利用SFC报头中的元数据(比如基于NSH的报头),以确保在由服务功能处理分组期间和之后正确的SR信息被保留。这样做还消除了在被服务功能处理(例如,将SR或其他转发信息添加到返回的分组)并且需要服务与网络的配置之间的协调之后对分组进行复杂的重新分类的需要。在一些方面,当SFF要将分组转发到服务功能时,SFF可以从分组中弹出SR标签堆栈,将应用段ID从本地标识符池中推送到SFC报头的元数据,并将被移除的SR标签堆栈和应用段ID存储在本地表中。反过来,当从服务功能返回分组时,SFF可以基于应用段ID来检索被移除的标签堆栈,并且在将分组转发到网络中(例如,到下一个SFF等)之前将该堆栈附加回到分组上。在其他方面,SFF可以可替代地在将分组发送到服务功能之前将整个标签堆栈移动到SFC报头的元数据,并在服务功能处理分组之后将标签堆栈移回到其原始位置。具体地,根据如下详细描述的本公开的一个或多个实施例,网络中的设备接收包括一个或多个转发标签和服务功能链(SFC)报头的分组。该设备从分组中移除一个或多个转发标签。该设备将一个或多个转发标签的指示插入到SFC报头的元数据中。该设备将具有一个或多个转发标签的插入的指示的分组转发到服务功能。说明性地,本文中描述的技术可以由硬件、软件和/或固件例如根据过程248执行,这些硬件、软件和/或固件可以包含由处理器220(或接口210的独立处理器)执行的计算机可执行指令,以执行与本文描述的技术有关的功能,例如,结合路由过程244。例如,本文中的技术可以被视为对常规协议的扩展,并且因此,可以由相应地执行那些协议的本领域中理解的类似组件来处理。在操作上,根据各种实施例,在图4A-4B中示出了示例的分组。通常,分组400可以包括净负荷402(例如,应用数据等)和用于在核心网络外部使用的相应报头404。例如,在一些实施例中,报头404可以是IPv4或IPv6报头,其指示发起分组400的设备的源地址和分组400的目的地设备的地址。在一些实施方式中,可以通过SFC报头406(比如基于NSH的报头)来进一步封装分组400(例如,通过封装/解封装过程248)。通常,SFC报头406可以可操作用于使得沿特定SFP转发分组400,以供任意数量的不同服务功能处理。例如,SFC报头406可以使得缓存服务功能、防火墙服务功能、负载均衡服务功能、优化服务功能等处理分组400。分组400还可以包括用于在网络设备之间转发分组400的一组转发标签408。在一些实施例中,转发标签408可以是MPLS-SR转发标签,每个转发标签标识特定的分段。在这种情况下,转发标签408可以形成由一系列分段标识符(SID)标识并封装SFC报头406的“分段报头”。根据各种实施例,SFF或其他设备接收数据包400可以修改分组400以形成要发送到服务功能的经修改的分组400a。在一些实施例中,接收设备可以从分组400弹出转发标签408的堆栈,从而从分组400移除标签408。另外,该设备可以修改分组400的SFC报头406以形成标识转发标签408的经修改的SFC报头406a。在一些实施例中,该设备可以通过将“应用段ID”插入到与弹出的转发标签408相关联的SFC报头406a的元数据中来这样做。在一些实施例中,该设备可以将被移除的标签和这种关联存储在本地查找表中。在进一步的实施例中,该设备可以简单地将转发标签408直接移动到经修改的SFC报头406a的元数据中。在从目标服务功能接收到返回的分组400a之后,SFF或其他设备可以反转上述过程,以使用包括转发标签408的分段报头来重新封装经修改的分组400a。例如,该设备可以执行从经修改的SFC报头406a查找插入的应用段ID,以检索先前移除的标签408并将这些标签添加回到分组400a。在其他实施例中,该设备可以在将分组400a发送到另一个设备之前移除直接被插入到SFC报头406a的元数据中的任何标签408,并将这些标签重新附加到经修改的分组400a。换句话说,在网络中转发分组400a之前,该设备可以重构分组400a的分段报头。现在参考图4B,示出了根据各种实施例的SFC报头406的示例。如图所示,报头406可以应用于将沿给定SFP/RSP发送的分组(例如,基于分类器设备的一个或多个分类规则)。反过来,沿着路径的节点可以分析封装分组的报头406,以确定哪些服务功能(如果有的话)并且将以什么顺序处理分组。在一些实施例中,在应用报头406之后,可以例如根据可用的各种路由协议来进一步封装分组。仅出于说明性目的,报头406被描绘为基于NSH的报头。然而,在其他实施例中,报头406可以符合任何其他SFC协议。如图所示,报头406可以包括基本报头字段/位410-422。特别地,如果使用NSH的初始版本,则版本字段410可以指示NSH版本并且可以被设置为0x0。O位412可以指示报头406是否是操作、管理和运营(OAM)分组。C位414可以指示报头406是否包括临界类型长度值(TLV)。报头406还可以包括可以在例如NSH的后续版本中使用的任意数量的保留位416。长度字段418可以是指示NSH封装的总长度的四字节字,包括使用的任何可选TLV。MD类型字段420可以被设置为指示报头是否包括固定长度上下文报头,或者替代地,可变长度上下文信息。最后,报头406可以包括指示发起该分组的协议的类型的下一个协议字段422。例如,下一个协议字段422可以被设置为0x1以指示该分组是由IPv4发起的,下一个协议字段422可以被设置为0x2以指示该分组是由IPv6发起的,等等。报头406还包括服务路径报头字段424-426。服务路径ID(SPI)字段424可以唯一地标识服务功能路径。例如,SPI字段424可以包括可以被设置为表示特定服务路径的24位。服务索引(SI)字段426可以指示仍然需要处理报头406的、沿着由字段424指示的路径的服务的数量。当服务功能在传输期间处理报头406时,SI字段426可以相应地递减。报头406还可以包括可以存储元数据的任意数量的上下文报头字段428。根据NSH,字段428的数量和大小可以是MD类型字段420中设置的值的函数。值得注意的是,如果MD类型字段420被设置为0x1,则上下文报头字段428可以包括四个强制上下文报头,每个具有四个字节。然而,如果MD类型字段420被设置为0x2,则报头406可以包括零个或多个上下文报头字段428。在这种情况下,上下文报头字段428中包括的任何元数据还可以指示类型长度值(TLV)信息,比如特定元数据的类、类型和长度。根据一些实施例,SFF或其他设备处理数据包400可以将关于弹出的转发标签408的元数据信息插入到上下文报头字段428中。例如,在一些情况下,该设备可以将SR应用段ID插入到上下文报头字段428中。这样的ID可以是在服务功能处理该分组的同时指向由设备本地存储的被移除的标签的指针。在其他情况下,该设备可以将整组被移除的SR标签作为元数据插入到上下文报头字段428中。在各种实施例中,以下NSHMD类型2的类型长度值(TLV)可以在报头406中保留并使用如下:类型描述95SR应用段ID96SR堆栈表1特别地,如上面表1中所示,该设备可以在上下文报头字段428中使用类型“95”来表示仅将应用段ID插入到报头406的元数据中。反之,类型“96”可以用于表示整个转发标签堆栈408已经被插入到上下文报头字段428中。如将理解的,在其他实施例中可以保留其他类型。换句话说,上述的类型'95'和'96'仅是示例性的,可以使用任何其他类型。此外,还应当理解,附加的元数据可以独立于关于移除的转发标签堆栈的信息(例如,在处理分组时由特定服务功能使用的元数据等)被包括在上下文报头字段428中。现在参考图5A-5B,示出了根据各种实施例的被转发到服务功能的分组的示例。如图5A所示,假设源节点A经由包括核心网络104(例如,MPLS-SR核心网络等)的网络朝目的地节点Z发送分组502。最初,分组502可以仅包括净负荷504和标识源和目的地设备的IP报头506(例如,IPv4或IPv6报头)。如图5B所示,响应于接收到分组502,分类器节点B(例如,进入设备或与其通信的另一设备)可以确定是否应该通过服务链发送分组502,并且如果是,则应该将哪些服务应用于分组502。例如,设备B可以基于报头506中的信息(例如,源地址、目的地地址等)、基于与分组502相关联的应用、基于净负荷504等来对来自设备A的分组502进行分类。设备B继而可以将SFC报头508添加到分组502。值得注意的是,分类器设备B可以确定所示的服务功能S1-S3中的哪个(如果有的话)应当处理分组502。在一些实施例中,SFC报头508可以是NSH协议报头,该NSH协议报头包括供服务链中的服务使用的元数据、服务路径的标识(例如,SPI等)等。如将理解的,服务路径可以不用于实际转发分组502的目的,而是仅仅向数据平面提供关于服务链的上下文。分类器设备B还可以生成一组转发标签510-522,以在整个核心网络104中转发分组502。在各种实施例中,转发标签可以对应于标识一组网络段的一组SID。值得注意的是,生成的转发标签可以用于表示分组502应当被转发所经过的相应这组设备/服务。例如,可以根据设备/服务将处理分组502的顺序来对标签510-522进行排序。然后,设备B可以将有序标签510-522添加到分组502,从而封装SFC报头508。图6A-图6E图示了根据各种实施例的被转发到服务功能的分组的示例。继续图5A-5B的示例,假设SFFC接收在其分段报头中包括转发标签510-520的分组502。特别地,分组502的最顶部标签520可以指示SFFC将分组502转发到服务功能S1。作为响应,SFFC可以从分组502的堆栈中弹出标签520。如图6B所示,在将分组502转发到服务功能S1之前,SFFC可以在本地表(比如本地转发信息库(LFIB)602(例如,数据结构245中的转发表))中执行对标签520的查找。当特定标签被接收为传入的分组的最顶部标签时,LFIB602可以将转发标签与SFFC要执行的动作相关联。例如,标签520的LFIB602中的条目可以指示该分组将被转发到服务功能S1并且其当前的SR标签堆栈将被推送到分组502的SFC报头中的元数据。SFFC继而可以从分组502中移除堆栈中的剩余转发标签(例如,标签510-518)。在各种实施例中,SFFC还可以在本地应用段表604(例如,数据结构245中的表)中执行对分组502的转发标签堆栈的查找,以确定是否已存在用于标签堆栈的匹配的应用段ID。如果不是,则SFFC可以生成新的应用段ID并在表604中创建条目,该条目将新的应用段ID与分组502的转发标签堆栈相关联。通常,应用段ID可以是唯一标识符(例如,指针),SFFC可以使用该唯一标识符来稍后从表604中检索相应的转发标签堆栈。SFFC还可能偶尔清除应用段表604中的条目(例如,在自SFFC遇到具有与特定应用段ID相关联的SR标签堆栈的分组起的阈值时间量之后,响应于接收到这样做的指令,等)。如图6C所示,SFFC可以将修改版本的分组502发送到服务功能S1。值得注意的是,在将分组502发送到服务功能S1之前,SFFC可以从分组502剥离分段报头。另外,SFFC可以将与移除的标签堆栈相关联的应用段ID作为元数据插入到SFC头508中。例如,如图所示,报头508可以包括基于NSH的字段/位508a(例如,SPI、SI等)、任何预先存在的元数据508b(例如,在现有NSH上下文字段报头中等)以及与存储在表604中的被移除的标签堆栈相关联的插入的应用段ID508c。在各种实施例中,SFFC还可以根据需要使用报头524来封装经修改的分组502,以将分组502传送到服务功能S1。例如,SFFC可以封装分组502,以便根据NSH协议通过以太网、通用路由封装(GRE)、VXLAN-GPE等传输到服务功能S1。如图6D所示,服务功能S1可以对分组502执行其相应的功能。例如,服务功能S1可以对分组502执行DPI功能、防火墙功能等。在完成处理之后,服务功能S1可以将分组502返回到SFFC,从而允许分组502继续在网络中朝着其预期目的地(例如,节点Z)被转发。在图6E中,响应于从服务功能S1接收分组502,SFFC可以执行对先前插入到分组502的SFC报头中的应用段ID508c的本地查找。特别地,SFFC可以在本地表604中搜索应用段ID508c及其相关的转发标签堆栈(例如,标签510-518)。SFFC继而可以将检索到的标签堆栈重新添加到分组502,弹出最顶部标签(例如,标签518),并沿着与弹出的标签相关联的分段转发分组502(例如,转发到SFFD)。现在参考图7A-7D,示出了根据另外的实施例的被转发到服务功能的分组的另一示例。如前所述,替代实施例需要SFF将实际转发标签堆栈作为元数据插入到分组的SFC报头中。例如,如图7A所示,考虑SFFC接收分组502的情况,类似于图6A中所示的示例。然而,在图7A所示的示例中,LFIB602中的标签520的对应动作可以替代地指示SFFC应该将分组502的实际分段报头作为元数据插入到分组502的SFC报头中。如图7B所示,SFFC可以通过修改分组502来执行LFIB602中指示的动作,以将所移除的分段头部作为标签TLV508c包括在SFC报头508(例如,在基于NSH的报头的上下文报头中,等)的元数据中。在各种实施例中,SFFC可以被配置成仅将分段报头移动到SFC报头的元数据中,以仅将应用段ID插入到SFC报头元数据中,或者基于其他因素来确定要采取哪个动作。例如,如果分段报头的大小小于阈值大小,则SFFC可以选择将转发标签而不是应用段ID插入到SFC头的元数据中。在图7C中,在服务功能S1处理分组502之后,它可以将包括在其SFC报头508中的标签TLV508c的分组返回到SFFC。如将理解的,服务功能可以返回或不返回分组。例如,某些服务功能(例如,内容过滤器、入侵保护服务等)可以仅仅阻止违规分组的任何进一步传输。如图7D所示,响应于从服务功能S1接收返回的分组502,SFFC可以从标签TLV508a移动转发标签。SFFC继而可以通过将转发标签附加到分组502来重新创建分段报头。然后,分组502的处理可以正常进行,以继续在网络中转发分组。例如,SFFC可以从替换的分段报头弹出标签518,并且基于对标签518的本地查找来将分组502转发到SFFD。图8示出了根据本文描述的一个或多个实施例的用于处理分组的示例简化过程。通常,过程800可以由执行存储的指令的专用计算设备(例如,设备200)执行。例如,过程800可以由服务功能转发器(SFF)或与其通信的另一设备来执行。过程800可以在步骤805开始,并且继续到步骤810,其中,如上面更详细描述的,该设备接收包括SFC报头的分组。例如,SFC报头可以是基于NSH的报头。根据各种实施例,具有SFC报头的所接收的分组可以进一步由转发标签的堆栈(比如,分段报头)封装。在步骤815,如上所述,该设备可以从接收的分组中移除转发标签。例如,该设备可以从分组中剥离外部分段报头,以暴露分组的基于SFC的报头。在各种实施例中,该设备可以在其本地LFIB中执行对最顶层转发标签(例如,服务功能的标签)的查找,以确定设备应该对分组执行哪些动作(如果有的话)。在步骤820,该设备可以将分组的转发标签的指示插入到SFC报头的元数据中,如上面更详细地描述的。在一些实施例中,该设备可以将转发标签作为元数据直接插入SFC报头中(例如,作为基于NSH的报头的上下文报头字段中的TLV等)。在其他实施例中,该指示可以包括与转发标签相关联的应用段ID。该设备继而可以与插入的应用段ID相关地将转发标签存储在本地表中。例如,响应于接收到要转发到服务功能的分组,该设备可以确定应用段ID是否存在于与分组的转发标签对应的本地表中。如果不是,则该设备可以创建包括这样的标识符和标签堆栈的条目。在步骤825,如上所述,该设备可以将具有一个或多个转发标签的插入的指示的分组转发到服务功能。由于服务功能可能未被配置为处理转发标签,因此允许在将分组被发送到服务功能之前移除分组的分段报头。如果服务功能然后将分组返回到设备(例如,在对分组执行服务之后),则该设备可以在将分组转发到网络中的另一设备之前重构分段报头。然后,过程800在步骤830结束。应当注意,虽然如上所述,过程800内的某些步骤可以是可选的,但是图8中所示的步骤仅仅是用于说明的示例,并且可以根据需要包括或排除某些其他步骤。此外,虽然示出了步骤的特定顺序,但是这种排序仅仅是说明性的,并且可以在不脱离本文中的实施例的范围的情况下利用这些步骤的任何合适的排列。因此,本文中描述的技术通过允许设备也支持服务功能链来改善分段路由网络中的设备的运行。特别地,本文中的技术允许在分组被发送到服务功能之前从其分段报头解封装分组。在将分组转发到服务功能之前,还将所移除的转发标签的指示插入到分组的SFC报头的元数据中。在从服务功能返回分组之后,然后可以基于SFC报头中的指示来重构分段报头,从而消除该设备必须对分组进行重新分类的任何需要。虽然已经示出并描述了提供SFC技术与分段路由网络的集成的说明性实施例,但是应该理解,可以在本文中的实施例的精神和范围内进行各种其他的更改和修改。另外,虽然示出了某些协议,但是可以相应地使用其他合适的协议。前面的描述针对特定实施例。然而,将明白的是,可以对所描述的实施例进行其他变化和修改,同时获得它们的一些或全部优点。例如,明确设想到,本文中描述的组件和/或元件可以被实施为存储在有形(非暂态)计算机可读介质(例如,磁盘/CD/RAM/EEPROM等)上的软件,该软件具有在计算机、硬件、固件或其组合上执行的程序指令。因此,该描述仅通过示例的方式进行,而不是以其他方式限制本文的实施例的范围。因此,所附权利要求的目的是覆盖落入本文中的实施例的真实精神和范围内的所有这些变化和修改。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1