透明网络服务报头路径代理的制作方法

文档序号:11532368阅读:302来源:国知局
透明网络服务报头路径代理的制造方法与工艺

本公开涉及用于服务链/服务路径的联网。



背景技术:

服务链涉及流量(分组/帧)的截取并通过有序服务功能集来引导它们。通过在网络节点使用分类器功能来截取流量,以便通过服务功能来进行引导。通过使用网络中的服务覆盖来执行通过服务功能对来自分类器的流量进行流量引导。该服务覆盖提供了用于运载除了原始分组之外的服务元数据的配设。

通过控制平面(集中式的或分布式的)来构建、维护以及分发服务链及相应的转发状态。服务链构建涉及建立转发状态和服务链之间的绑定。转发状态到服务链的该映射被称为服务路径。

附图说明

图1是根据示例实施例的具有不同网络服务报头处理能力的网络节点的服务链的框图。

图2是类似于图1的框图,并且示出了根据示例实施例的如何将服务链拆分为针对具有网络服务报头处理能力的网络节点以及不具有网络服务报头处理能力的网络节点的不同的段。

图3是描绘了根据示例实施例的在控制器处执行以建立具有能够处理网络服务报头的网络节点以及不能处理网络服务报头的网络节点的服务链的操作的流程图。

图4是描绘了根据示例实施例的被封装在传输报头和网络服务报头中的分组的示图。

图5是根据示例实施例的网络节点的框图的示例。

图6是根据示例实施例的与多个网络节点进行通信的控制器的框图的示例。

具体实施方式

概览

本文呈现了在包括多个网络节点的网络中有用的技术,网络中的每个网络节点被配置为对通过相应网络节点的流量应用一个或多个服务功能。与多个网络节点进行通信的控制器建立针对由要在多个网络节点中的一个或多个网络节点的相应网络节点处执行的有序服务功能序列所定义的服务链的服务路径。服务路径的一个或多个网络节点能够对流量的分组进行解封装以提取网络服务报头,该网络服务报头包括指导如何通过服务链来转发分组的服务链转发信息以及针对服务链转发信息的上下文服务路径信息,并且服务路径的一个或多个网络节点不能对分组进行解封装以提取网络服务报头。控制器为服务链中仅包括不能对分组进行解封装以提取网络服务报头的一个或多个网络节点的段分配预定服务路径标识符和预定服务索引值,以便将被确定不能对分组进行解封装以提取网络服务报头的一个或多个网络节点指定为服务链中的单个服务跳跃段。

示例实施例

服务链被定义为服务功能的集合,例如,防火墙,网络地址转换(nat)、深度分组检测(dpi)、入侵检测服务(ids)、以及当选择的分组被转发通过服务路径时应被应用于这些分组的顺序。该形式的服务链虽然有用,但不能为依赖于服务策略到粒度信息(例如,每个订户状态)的绑定的更复杂服务的传递或被具体地格式化用于由具体服务功能来消耗的元数据的接收提供足够的功能。被具体地格式化用于由具体服务功能来消耗的元数据的示例包括应用标识、流标识符以及用户身份。这类高级服务要求服务上下文和元数据作为数据平面封装的一部分被运载在服务报头内部。

服务节点利用数据平面中的服务报头内部所运载的信息,例如,用于导出目标服务策略和配置文件的网络标识。服务节点还可确定与具体服务相关的公共元数据,例如,可被传递到服务路径更下游的服务功能的更精细分类。换句话说,服务从衍生自网络以及形成给定服务链的服务功能二者的元数据获益。元数据还可以在网络节点之间被传递并且用于例如确定服务链的端处的转发状态。

发起服务链的网络节点所强加的元数据是中央控制器所推送的元数据和网络节点本身所确定的元数据的组合。控制器将网络分类特定元数据推送到用作分类器的所有网络节点(在本文还称为分类器节点)。这些网络节点执行分类并选择针对该分类所分配的元数据以及转发状态。所确定的元数据可以与服务拓扑的方面(例如,租户身份)有关。将这类元数据与转发状态相关联并将其传递给提供服务的功能的含义是可以例如在给定服务路径的租户边界上传递更复杂的服务。这可以由于服务不需要导出信息或重新分类每个分组/流而产生更简单的服务。

网络服务报头(nsh)被定义为能够在数据平面中支持服务链。nsh提供了与用于流量引导的传输封装无关的服务覆盖,以及允许服务来交换信息的元数据能力。

支持基于nsh的分组引导涉及参与节点(网络和/或服务)向nsh报头咨询服务路径标识符和服务索引以便导出所需的(一个或多个)网络路径。然而,在一些情况下,参与节点不支持nsh转发(例如,针对对于客户重要的传统服务)或具有用于提供显式路径选择(例如,段路由)的另一机制。尽管nsh不为这些部署提供路径选择,但强制上下文报头中所运载的nsh元数据仍是有用的。

本文呈现了用于非nsh网络段通过使用透明nsh路径代理来参与nsh感知服务链的技术,该透明nsh路径代理被视为服务层的单个跳跃(hop)并且通过控制平面元件来集中定义。

现在参考图1,图1是对可以采用本文所呈现的技术的示例网络环境的描述。在图1的示例中,示出了包括多个网络节点(还称为“服务节点”或简称为“节点”)(例如,四个节点20(1)-20(4))以及分类器节点30的服务链10。每个节点20(1)-20(4)分别执行服务功能40(1)-40(4)。在附图中,节点20(1)-20(4)还分别被标记为节点1-节点4,并且服务功能40(1)-40(4)还分别被表示为sf1-sf4。节点可执行多个服务功能,但为简单起见,图1示出每个节点执行单个服务功能。

服务功能和节点均可被视为逻辑实体。它们可以是分离的框体(分离的物理设备),它们可在同一框体(同一物理设备)上运行。此外,它们可以是物理的、虚拟的(被体现为在计算元件上运行的软件)、或物理和虚拟的任意组合。节点是“转发节点/处理”,因为它查看nsh并挑选正确的传输封装以用于网络转发。

图1示出服务链sf1->sf2->sf3->sf4,仅节点1和节点4使用nsh来用于引导。也就是说,仅节点1和节点4是“nsh感知”或“nsh使能”的。节点2和3不是nsh感知的,因此它们不能作用于任何nsh信息也不能添加/移除nsh报头。在该情况下,服务路径包含需要被应用于流经服务链的流量的四个服务功能,并且节点2和节点3依赖于诸如段路由、显式路径信息之类的传输。

使用nsh架构中所描述的技术,当服务链sf1->sf2->sf3->sf4被实例化在网络中时,控制平面分配将由nsh基础设施用于在服务平面层进行转发的服务路径标识符(pathid)和服务索引(si)。在该情况下,由于服务链包括四个服务功能,则si将被设置为5(反映服务链中的服务功能的数目加1)。

在nsh感知服务链中,在每次服务跳跃将si减1。也就是说,在应用服务链中的每个服务功能之后。当si达到值1时,从分组移除nsh并使用传输协议(例如,互联网协议(ip))转发技术来转发分组。这在图1所示的示例服务链中引入问题,因为仅节点1和节点4具有该能力。这意味着si被减去sf1(从5到4)。此时,由于节点2不理解nsh而节点1不能将流量发送到节点2,但sf2在链中是要求的。一个选项是将流量直接发送到sf2,并且在一些情况下,sf2可能能够“跳过”nsh而执行其本地服务策略,但它不能转发到节点3/sf3。然而,节点2/sf2使用显式“路径”传输(例如,段路由)来达到下一节点以便当流量到达节点4时si仍被设置为4(如由sf1设置),并且这将导致服务路径由于is不正确(它应具有被设置为2而非4的值)而发生故障,因为sf4是针对服务链被应用的最后一个服务。

为克服该问题并允许非nsh感知节点参与nsh使能服务链,引入‘透明nsh路径代理’的概念。在nsh架构内部,透明nsh路径代理被视为服务链内的单个服务跳跃。该功能允许负责服务链到网络中的实例化的控制平面来识别服务链的所选择的服务路径中涉及的节点是否能够处理nsh报头。使用该技术,控制平面能够将服务链拆分成若干段并且在正确的网络元件处应用必要的策略/分类规则,以使得流量能够无阻碍地流经服务链。

现在参考图2。图2类似于图1,但示出了存在控制器50和两个逻辑分类器节点30(1)和30(2)。分类器节点30(1)和30(2)的功能可由如图1所示的专用网络节点来执行,或它们可被集成在诸如节点4之类的现有节点中。控制器50被连接到节点20(1)-20(4)中的每个节点以及分类器节点30(1)和30(2)。控制器50获取关于在其控制下的各个节点的能力的知识,特别是节点是否能够处理nsh。基于来自网络管理员的输入,控制器50建立针对由要在相应的一个或多个节点处执行的有序服务功能序列所定义的服务链的服务路径。

控制器50将每个服务段视为被绑定到较高层服务链的单独服务路径,如图2所示。为(一个或多个)非参与(即,非nsh感知)段分配预留的服务路径标识符(pathid)。例如,分配pathid(值0)以及为1的si(指示整个段是一个跳跃)。根据由控制器50提供给分类器节点30(1)的控制平面信息,通过非nsw感知段前面的最后一个nsh感知节点将流量导入服务链pathid“值0”。

在第一服务功能sf1处,分组以{pathid“值1”,si2}到达。指向sf1的该元组将对流量应用其功能并将流量返回到节点1。节点1设置元组{pathid0,si1}(由于它是非nsh感知段前面的最后一个nsh感知节点)并将流量发送到节点2,节点2将使用显式路径传输(例如,段路由)来确定sf2应被应用(跳过nsh服务路径报头但将元数据传递到sf2)。sf2将把流量返回到节点2,该流量将被转发到节点3。同样,节点3将使用显式路径传输来确定sf3应被应用。当流量从sf3返回时,使用与服务链的分类器节点30(1)相同的规则来在分类器节点30(2)发生重新分类事件,导致具有{pathid“值2”,si2}的nsh报头被推送到分组上并被转发到节点4。节点4现在可以正常使用nsh信息来处理分组,因为它是nsh感知网络节点。该分配确保nsh值与整体服务链环境相一致。

图2示出了控制器50将服务链10划分为若干段。第一段在分类器节点30(1)和节点1之间,并且该跳跃的pathid为pathid值1。第二段是从节点1到节点2、节点3以及到分类器节点30(2)。因此,非nsh感知节点组成单个服务段,并且被分配有预定预留服务路径标识符,例如,pathid值0。因此,即使在非nsh段中存在多个节点,但该段被视为单个服务跳跃。最终段是从分类节点30(2)到nsh感知节点4

图3是示出了被执行以实现图2中所描绘的技术的方法200的操作的流程图。在本说明书中,“nsh感知”网络节点是能够对流量的分组进行解封装以提取nsh的节点,该nsh包括指导如何通过服务链来转发分组的服务链转发信息以及针对服务链转发信息的上下文服务路径信息。类似地,“非nsh感知”网络节点是不能对分组进行解封装以提取nsh的节点。在210处,与具有相关联的一个或多个服务功能的多个网络节点进行通信的控制器建立针对由要在多个网络节点中的一个或多个节点的相应节点处执行的有序服务功能序列所定义的服务链的服务路径,其中,服务路径的一个或多个节点是nsh感知节点并且服务链中的一个或多个节点是非nsh感知节点。控制器检测非nsh感知的一个或多个网络节点。控制器可通过直接配置(即,网络管理员所提供的先验知识)或通过任意适当的协议从网络节点学习来检测网络节点是否是nsh感知。网络节点可以是物理网络元件(交换机、路由器等)或虚拟网络元件(虚拟交换机、虚拟路由器等)。

在220处,控制器为服务链中仅包括一个或多个非nsh感知节点的段分配预定服务路径标识符和预定服务索引值,以便将一个或多个非nsh感知节点指定为服务链中的单个服务跳跃段。针对服务链中包括一个或多个非nsh感知节点的每个段,预定服务路径标识符被设置为预定预留值。对于服务链中包括一个或多个非nsh感知节点的每个段,预定服务索引值可以是“1”。相反地,针对服务链中包括一个或多个nsh感知节点的每个段,服务索引值取决于段中网络节点的数目。

控制器为服务链的每个段分配单独的服务路径标识符和服务索引值。每个段可以包括或不包括能够对分组进行解封装以提取nsh的一个或多个网络节点。控制器将与服务链的段相关的相应的服务路径标识符和服务索引值发送到服务链中的每个网络节点。以这种方式,控制器将服务链拆分为包括至少一个只具有nsh感知节点的段以及至少一个只具有非nsh感知节点的段的多个段。

现在参考图4。图4示出了被封装在传输报头(例如,ip报头)中的分组和nsh的示例。参考标号300处所示的分组包括分组有效负载310、传输报头(例如,ip或通用数据报协议(udp)等)以及nsh330。nsh330包括基报头332、服务路径标识符(pathid)字段336以及服务索引字段338。nsh被设计为跨一系列物理和虚拟设备(包括硬件转发元件)是容易实现的。

基报头332包括包含一个或多个标志的字段。例如,基报头可以包括指示分组是否为操作及管理(oam)分组的标志。

服务路径字段336标识具体服务路径,并因此包含上述pathid。参与节点使用该标识符用于路径选择。服务索引字段338包含上述si,并指示该pathid的服务路径中有多少服务功能。

诸如服务分类器、服务节点以及服务平面中的转发元件之类的nsh感知节点具有若干可能的nsh相关动作。

插入/移除服务报头:这些动作可以分别在服务路径的开始和结束发生或可以由确定服务路径由于本地策略而必须改变的服务功能来执行。数据被分类,并且若确定要求服务,则强加服务报头。服务功能可以根据要求重新分类数据。服务分类器插入nsh。作为服务链的结束,对服务报头进行操作的最后一个节点将其移除。

基于报头字段转发:nsh提供服务链信息并且由参与节点用于确定正确的服务路径选择和转发以及环路检测。参与节点使用nsh来选择服务路径中的下一服务。

更新服务报头:基服务报头中的字段由服务功能来更新。可以根据需要更新上下文报头,例如,若发生更多粒度分类。若非服务元件用作数据平面代理(代表服务来添加和移除nsh),则该节点更新基报头。

服务策略选择:服务实例从服务报头导出策略选择。服务报头中共享的上下文可以提供一系列的服务相关信息,例如,流量分类。服务功能使用nsh来选择本地服务策略。

一旦元数据被添加到分组,则使用外封装来将原始分组及相关联的元数据转发到服务链的开始。封装服务以下两个目的:

1.创建拓扑独立的服务平面。在不改变底层网络拓扑的情况下将分组转发到所要求的服务。

2.非参与网络节点仅转发被封装的分组。

nsh与所使用的封装无关,以及nsh可以使用现在已知的或今后开发的任意传输方案来封装。经由外封装中的协议类型来指示nsh的存在。

nsh还可包括一个或多个上下文报头,包括网络平台上下文报头340、以及网络共享上下文报头342。网络平台上下文提供在网络节点之间共享的特定于平台的信息。网络共享上下文报头是提供与任意网络节点有关的元数据的网络共享上下文,例如,边缘分类的结果。

上下文报头中所传递的元数据特定于所运载的转发状态,并且在该意义上,不同的转发路径可以运载不同的元数据。控制器负责管理服务链并将服务链推送到用作分类器的网络节点。服务链和用于实现服务链的转发路径确定服务转发路径或服务路径。因此,服务路径变成所有网络节点在确定服务链的下一跳跃时必须从上下文层叠中提取的转发状态。网络节点不仅可以利用该转发状态来确定服务链的下一跳跃,而且还可根据具体的上下文报头的元数据来对流量执行额外的转换以便支持各种服务实例,即,以便支持特定的服务功能。作为示例,网络节点可以利用服务所理解的完全不同的传输来替换传入传输,同时保留上下文层叠。上下文报头还使得网络节点能够用作另一网络节点的服务功能的代理,并执行元数据到服务所理解的原始接口的映射。因此,当网络节点接收到服务报头时,解析服务报头以检索一个或多个层叠上下文报头,网络节点从服务报头解译转发状态和服务路径的另一跳跃网络节点,并从上下文报头集合确定服务动作或相关联的元数据。

图5示出了被配置为执行本文针对网络节点所描述的操作的网络/服务节点(例如,交换机、路由器、网关等)的示例框图。应理解的是,虚拟网络节点将是图5所示各项的软件模拟或虚拟化版本。网络节点在参考标号20(i)处被示出并且包括多个端口410(1)-410(m)、网络专用集成电路(asic)415、处理器或中央处理单元(cpu)420以及存储器430。端口410(1)-410(m)从网络节点接收入口分组和输出出口分组。网络节点asic420根据逻辑以及来自处理器420的控制来将传人分组引导至出口端口。例如,若网络节点是路由器,则asic415是被配置用于网络路由功能的路由器asic,以及若网络节点是交换机,则asic415是被配置用于网络交换功能的交换机asic。处理器420例如是微处理器或微控制器,并执行存储器430中所存储的服务报头处理固件/软件440的指令。服务报头处理固件/软件440包括指令,当由处理器420执行时,使得处理器执行本文针对网络节点/服务节点所描述的操作。

与网络节点20(i)相关联的服务功能的操作由在与网络节点的端口(例如,端口410(m))进行通信的处理器核心或服务器刀片460上运行的服务功能软件450来实现。

存储器430可包括只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质设备、光存储介质设备、闪速存储器设备、电、光、或其它物理/有形存储器存储设备。通常,存储器430可包括编码有包括计算机可执行指令的软件的一个或多个有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当软件被执行(由处理器420)时可操作来执行本文描述的操作。

现在转到图6,示出了被配置为执行本文描述的操作的控制器50的示例框图。应理解的是,虚拟控制器将是图7中所示各项的软件模拟或虚拟化版本。控制器50包括一个或多个处理器510、存储器520、总线530以及网络接口单元540。处理器510可以是微处理器或微控制器。网络接口单元540辅助控制器50和网络节点之间的网络通信。处理器510执行与存储器520中所存储的软件相关联的指令。具体的,处理器510存储服务路径和服务报头生成软件550,该软件当由处理器510执行时,使得处理器510执行本文关于图1-3所描述的控制器的操作。

存储器520可包括rom、ram、磁盘存储介质设备、光存储介质设备、光存储介质设备、闪速存储器设备、电、光、或其它物理/有形存储器存储设备。通常,存储器520可包括编码有包括计算机可执行指令的软件的一个或多个有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当软件被执行(由处理器510)时可操作来执行本文描述的操作。

总之,提出了提供将非nsh感知节点集成到nsh感知服务链中的能力并且使用nsh架构的元数据能力的技术。这允许服务链的快速部署,特别是在存在想要立即利用nsh的元数据能力并随时间移动以支持完整nsh实现方式的服务功能的情况下。这样做,这些技术支持nsh感知和nsh未感知服务节点的混合环境。概述了针对nsh使用不同的传输以使得传输可以参与服务拓扑并寻址服务路径,但针对元数据利用nsh。

因此,以一种形式,提供了一种方法,包括:在与具有相关联的一个或多个服务功能的多个网络节点进行通信的控制器处,建立针对由要在多个网络节点中的一个或多个网络节点的相应网络节点处执行的有序服务功能序列所定义的服务链的服务路径,其中,服务路径的一个或多个网络节点能够对流量的分组进行解封装以提取网络服务报头,该网络服务报头包括指导如何通过服务链来转发分组的服务链转发信息以及针对服务链转发信息的上下文服务路径信息,并且服务路径的一个或多个网络节点不能对分组进行解封装以提取网络服务报头;以及在控制器处,为服务链中仅包括不能对分组进行解封装以提取网络服务报头的一个或多个网络节点的段分配预定服务路径标识符和预定服务索引值,以便将被确定不能对分组进行解封装以提取网络服务报头的一个或多个网络节点指定为服务链中的单个服务跳跃段。

以另一形式,提供了一种装置,包括:网络接口单元,该网络接口单元通过网络发送和接收网络通信;以及处理器,该处理器与网络接口单元相耦合:建立针对由要在多个网络节点中的一个或多个网络节点的相应网络节点处执行的有序服务功能序列所定义的服务链的服务路径,其中,服务路径的一个或多个网络节点能够对流量的分组进行解封装以提取网络服务报头,该网络服务报头包括指导如何通过服务链来转发分组的服务链转发信息以及针对服务链转发信息的上下文服务路径信息,并且服务路径的一个或多个网络节点不能对分组进行解封装以提取网络服务报头;以及为服务链中仅包括不能对分组进行解封装以提取网络服务报头的一个或多个网络节点的段分配预定服务路径标识符和预定服务索引值,以便将被确定不能对分组进行解封装以提取网络服务报头的一个或多个网络节点指定为服务链中的单个服务跳跃段。

以又一形式,提供了编码有指令的一个或多个非暂态计算机可读存储介质,指令当由处理器执行时,使得处理器执行操作,包括:在与具有相关联的一个或多个服务功能的多个网络节点进行通信的控制器处,建立针对由要在多个网络节点中的一个或多个网络节点的相应网络节点处执行的有序服务功能序列所定义的服务链的服务路径,其中,服务路径的一个或多个网络节点能够对流量的分组进行解封装以提取网络服务报头,该网络服务报头包括指导如何通过服务链来转发分组的服务链转发信息以及针对服务链转发信息的上下文服务路径信息,并且服务路径的一个或多个网络节点不能对分组进行解封装以提取网络服务报头;以及在控制器处,为服务链中仅包括不能对分组进行解封装以提取网络服务报头的一个或多个网络节点的段分配预定服务路径标识符和预定服务索引值,以便将被确定不能对分组进行解封装以提取网络服务报头的一个或多个网络节点指定为服务链中的单个服务跳跃段。

上述是示例。在不脱离其精神或本质特征的情况下,本文描述的概念可被体现在其他特定形式中。上述示例因此在所有方面将被视为说明性的并且不意味着是限制性的。因此,旨在包括落入要求本申请优先权的申请中任意权利要求按照被公平、合法以及公正地授予的宽度来解释的精神和范围内的所有这类更改、修改以及变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1