公开/公告号CN105591978A
专利类型发明专利
公开/公告日2016-05-18
原文格式PDF
申请/专利权人 美国博通公司;
申请/专利号CN201510770239.1
申请日2015-11-11
分类号H04L12/861(20130101);H04L12/883(20130101);H04L12/931(20130101);H04L12/935(20130101);
代理机构11240 北京康信知识产权代理有限责任公司;
代理人田喜庆
地址 美国加利福尼亚州
入库时间 2023-12-18 15:07:56
法律状态公告日
法律状态信息
法律状态
2019-07-05
授权
授权
2018-11-06
专利申请权的转移 IPC(主分类):H04L12/861 登记生效日:20181018 变更前: 变更后: 申请日:20151111
专利申请权、专利权的转移
2017-03-22
专利申请权的转移 IPC(主分类):H04L12/861 登记生效日:20170302 变更前: 变更后: 申请日:20151111
专利申请权、专利权的转移
2016-06-15
实质审查的生效 IPC(主分类):H04L12/861 申请日:20151111
实质审查的生效
2016-05-18
公开
公开
优先权要求
本申请要求于2015年3月15日提交的临时申请序列号62/162,070和于2014年11月11日提交的临时申请序列号62/078,196的优先权,其通过引用全部结合于此。
技术领域
本公开涉及网络功能虚拟化。
背景技术
处理系统可用的处理功率、存储器容量、可用磁盘空间以及其他资源呈指数式增加。计算资源发展到这样一个点,即,单个物理服务器可承载(host)虚拟机和虚拟化功能的许多实例。通常,每个虚拟机均提供虚拟化的处理器、存储器、储存器、网络连接以及其他资源。同时,高速数据网络发展并且成熟并且现在构成成为不可缺少的广域连接的骨干链路的一部分,其中包括与虚拟机主机的连接。虚拟化的改进将驱动虚拟化功能的进一步发展和部署。
发明内容
本申请提供了一种网络交换机,包括:
所述网络交换机的网络流接口,所述网络流接口被配置为接收包括数据包的网络流;
存储器,被配置为储存网络服务链定义,所述网络服务链定义包括在与所述网络交换机分离的服务器资源上提供的服务功能的服务功能区分符;以及
服务链处理线路,与所述网络流接口和所述存储器通信,所述服务链处理线路被配置为:
确定所述网络服务链定义适用于所述网络流;
确定所述数据包接下来应该由所述服务功能处理;
更新服务功能索引,以通过所述网络服务链定义跟踪所述数据包的进度;
对所述数据包加签用于所述服务功能的网络地址;以及
将出自所述网络交换机的所述数据包转发至所述服务器资源上的所述服务功能。
其中,所述服务链处理线路进一步被配置为:
获得关于所述数据包的流分类;以及
将所述流分类映射至所述网络服务链定义,以确定所述网络服务链定义适用于所述网络流。
其中,所述流分类包括应用标识符、用户标识符、或应用标识符和用户标识符两者。
其中,所述网络服务链定义指定用于执行所述网络服务链定义内的所述服务功能的顺序;以及
所述服务链处理线路被进一步配置为:
读取所述数据包的数据包报头,以确定当前索引值;以及
将所述当前索引值与所述网络服务链定义匹配,以确定所述数据包接下来应该由所述服务功能处理。
其中,所述服务链处理线路被进一步配置为更新服务功能索引,以说明将所述数据包转发至所述服务功能用于处理。
其中,所述服务链处理线路被进一步配置为从所述服务器资源接收经由所述服务功能处理之后的所述数据包;以及基于所述服务功能索引确定所述网络服务链定义内的后续目的地。
其中,所述服务链处理线路被进一步配置为:
再次更新所述数据包的所述服务功能索引,以通过所述网络服务链定义跟踪所述数据包的进度;以及
将出自所述网络交换机的所述数据包转发至所述后续目的地。
其中,所述后续目的地是不同服务器资源上提供的不同服务功能。
其中,所述不同的服务器资源连接至分离的网络交换机。
本申请还提供了一种网络交换方法,包括:
在与主机服务器互连的网络交换机中,所述主机服务器中提供了第一服务功能和第二服务功能;
在存储器中定义指定一系列服务功能的网络服务链定义,所述一系列服务功能包括:
所述第一服务功能;和
所述第二服务功能;
其中,所述网络服务链定义包括:
所述第一服务功能的第一服务功能索引;和
所述第二服务功能的第二服务功能索引;
其中,所述第一服务功能索引和所述第二服务功能索引将所述所述第一服务功能排序在第二服务功能之前;
接收作为网络流的一部分的数据包;
接收所述数据包的分类信息;
基于所述分类信息确定所述网络服务链适用于所述网络流;
确定所述第一服务功能应该接下来处理所述数据包;以及
将所述数据包转发至所述第一服务功能。
该方法进一步包括:在收到所述数据包之后,确定所述数据包的服务链标识符和服务功能索引,并且确定所述网络服务链适用于所述网络流。
其中:所述服务链标识符识别所述网络服务链定义;以及
所述服务功能索引识别所述第一服务功能。
该方法进一步包括:将服务功能链报头添加到所述数据包中,所述服务功能链报头包括所述服务功能索引和所述服务链标识符。
该方法进一步包括:调整所述服务功能索引,以在将所述数据包转发至所述第一服务功能之前,指向所述第二服务功能。
该方法进一步包括:将所述服务链标识符和所述服务功能索引映射至用于所述第一服务功能的网络地址。
该方法进一步包括:其中,所述网络地址包括虚拟交换机地址、服务功能网络地址、或虚拟交换机地址和服务功能网络地址两者。
该方法进一步包括:在转发之前,将数据中心路由报头添加到所述数据包中,所述数据中心路由报头包括:
虚拟交换机的虚拟交换机地址,所述虚拟交换机用作所述第一服务功能的主机服务器;和
第二服务网络地址,所述第二服务网络地址用于所述主机服务器上的所述第一服务功能。
本申请还提供了一种网络交换机,包括:
数据包接口,被配置为将数据包接收到所述网络交换机中,并且将数据包通信至所述网络交换机之外;
存储器,被配置为储存:
网络服务链定义,包括:
第一网络服务链定义,指定构成第一数据包处理链的第一系列的服务功能;和
用于所述第一网络服务链定义的第一服务链标识符;以及
服务链映射表,包括:
从数据包分类至所述存储器中的所述网络服务链定义的分类映射;
与所述数据包接口通信的服务链处理器,所述服务链处理器被配置为:
获得所述数据包的分类信息;
根据所述分类信息和所述服务链映射表确定所述第一网络服务链应处理所述数据包;
在所述第一系列的服务功能之中,确定对所述数据包执行的下一服务功能;
通过更新所述数据包的服务功能报头而经由所述第一网络服务链跟踪所述数据包的进度;
将路由报头添加到所述数据包中,所述路由报头包括:
与用于下一服务功能的主机服务器通信的虚拟交换机的虚拟交换机地址;和
用于所述主机服务器上的所述下一服务功能的服务功能网络地址;以及
将出自所述网络交换机的所述数据包转发至所述主机服务器上的所述下一服务功能。
其中,所述服务功能报头包括:
所述第一服务链标识符;和
所述第一网络服务链中的服务功能索引。
其中,所述网络交换机被配置为:
在所述网络交换机处接收回由所述下一服务功能处理之后的所述数据包;并且其中:
所述服务链处理器被配置为:
通过将所述第一网络服务链中的所述服务功能指标索引改变为指向后续服务功能而跟踪进度,所述后续服务功能随所述数据包的所述下一服务功能之后;并且
将通过所述下一服务功能处理之后接收到的所述数据包转发至所述第一网络服务链中的所述后续服务功能。
附图说明
图1示出了包括通过网络设备连接的虚拟机主机的网络的实例。
图2示出了被配置为执行虚拟机和虚拟功能(virtualfunction)的虚拟机主机。
图3示出了用于服务功能链接(servicefunctionchaining)的示例性网络。
图4示出了架顶(top-of-rack)交换机的实施例。
图5示出了用于基于网络的服务功能链接的叠加隧道拓扑(overlaytunneltopology)。
图6示出了机架内的服务功能链中的转发。
图7示出了通过机架上的架顶交换机扩展的服务功能链中的转发。
图8示出了示例性的服务功能链。
图9示出了通过机架上的架顶交换机扩展的服务功能链中的转发的另一实例。
图10示出了通过机架上的架顶交换机扩展的服务功能链中的转发的另一实例。
图11示出了机架内的服务功能链中的转发的另一实例。
图12示出了通过执行基于网络的服务功能链接的网络节点可实现的逻辑的实施例。
具体实施方式
介绍
图1和图2提供了进一步讨论基于网络的服务功能链接的上下文,下面以图3开始更为详细地描述基于网络的服务功能链接。在表1中总结了下面使用的一些SFC缩写:
图1示出了示例性网络100。在网络100中,网络装置通过任意数目和类型的网络(例如,以太网/TCP/IP网络108)将数据包(packet)(例如,数据包102)从源(例如,源104)路由至目的地(例如,目的地106)。网络装置可表现为多种不同形式并且可以任意数目提供。例如,网络108可跨越多个路由器和交换机。网络装置的实例包括交换机、网桥、路由器以及网络集线器(hub);然而,其他类型的网络装置也可通过网络100提供。
网络100并不局限于任意具体的实现方式或地理范围。仅举几个例子,网络100可代表私有公司范围内网、用于电缆或卫星电视、因特网访问、以及音频与视频流的广域分布网络、或更小的互连网络的全局网络(例如,因特网)。在该方面,数据中心110可代表具有伴随网络交换机和路由器连接152的高度集中服务器安装150。数据中心110可支持极高容量的电子商务服务、搜索引擎、云储存和云服务、流视频或音频服务或任何其他类型的功能。
在图1的实施例中,网络100包括电缆或卫星电视服务、电话服务、以及因特网服务的运行商和供应商。在该方面,例如,图1示出了网络100可包括任意数目的电缆调制解调器终端系统(CMTS)112。CMTS112可将服务提供给任意数目的网关,例如,网关114、116、118。网关可代表电缆调制解调器、组合的电缆调制解调器和无线路由器、或进入诸如家庭、办公室、学校以及政府大楼的各个位置121中任一个的其他类型的进入点系统。网络100可包括其他类型的终端系统和网关。例如,网络100可包括用作进入家庭、办公室、或其他位置的进入点的数字用户线路(DSL)终端系统和DSL调制解调器。
在任意给定位置,网关可连接至任意数目和任意类型的节点。在图1的实例中,节点包括机顶盒(STB),例如,STB120、122、124。节点的其他实例包括网络连接智能TV126、音频/视频接收器128、数字视频记录器(DVR)130、流媒体播放器132、游戏系统134、计算机系统136以及物理媒体(例如,BluRay)播放器。节点可代表任意类型的用户端设备(CPE)。
图2示出了被配置为执行虚拟交换机、虚拟机、以及虚拟功能的虚拟机主机200(“主机”)。网络100中的任意设备均可以是主机,其中包括节点、网关、CMTS、交换机、服务器、源以及目的地。主机提供这样一种环境,即,其中,任意选择的功能可运行、通过网络100可到达、并且可构成功能链的全部或一部分,以实现任意限定的处理或内容交付任务。在某种意义上,功能可以是虚拟的,例如,作为在主机上运行的软件实例,虚拟功能实现之前利用用硬件执行的功能。
在图2中,主机200包括一个或多个通信接口202、系统线路204、输入/输出接口206以及显示器208,主机200在显示器208上可生成用户界面209。通信接口202可包括发送器和接收器(“收发器”)238和收发器238使用的任意天线240。收发器238可为任意宽范围内的通信协议242提供物理层接口,诸如,任意类型的以太网、有线电缆数据服务接口规范(DOCSIS)、数字用户线路(DSL)、同轴电缆多媒体联盟(MoCA)、或其他协议。当通信接口202支持蜂窝连接时,主机200还可包括SIM卡接口210和SIM卡212。主机200还包括储存设备,诸如,硬盘驱动214(HDD)和固态硬盘驱动216、218(SDD)。
用户界面209和输入/输出接口206可包括图形用户界面(GUI)、触摸显示器、语音或面部识别输入、按钮、交换机、扬声器以及其他用户接口元件。输入/输出接口206的额外实施例包括麦克风、视频和静态图像摄像机、耳机和麦克风输入/输出塞孔、通用串行总线(USB)连接器、存储卡插槽以及其他类型的输入。输入/输出接口206可进一步包括磁或光介质接口(例如,CDROM或DVD驱动)、串行和并行总线接口、以及键盘和鼠标接口。
系统线路204可包括硬件、软件、固件或其他逻辑的任意组合。例如,使用一个或多个片上系统(SoC)、专用集成电路(ASIC)、离散模拟和数字电路以及其他线路可以实现系统线路204。系统线路204是实现主机200中的任意希望功能的一部分。在该方面,仅举几个例子,系统线路204可包括便于运行虚拟机、交换机以及功能、在虚拟机与网络100之间路由数据包、并且在虚拟机之间交换数据包的线路。
仅举一个例子,系统线路204可包括一个或多个处理器220和存储器222。例如,存储器222和储存设备214、216存储控制指令224和操作系统226。处理器220执行控制指令224和操作系统226,以完成主机200的任意希望功能。控制参数228为主机200的控制指令224、操作系统226、以及其他功能提供并且指定配置和操作选项。
在一些实现方式中,控制指令224包括管理程序(hypervisor)230。管理程序230提供执行一个或多个虚拟机(VM)、虚拟交换机(VS)232、虚拟防火墙、虚拟操作系统、虚拟网络接口卡(NIC)或任意其他希望的虚拟化部件的监管软件环境。在其他实现方式中,主机200是裸金属虚拟化主机。即,主机200不需要执行独立操作系统226,管理程序230在独立操作系统226的顶端运行。相反,管理程序230可与主机200中的物理硬件资源直接通信并且直接控制主机200中的物理硬件资源,而不通过独立操作系统进行监管或干涉。
主机200可执行任意数目的VM234。每个VM均可执行任意数目或类型的虚拟功能(VF)236。VF可以是实现任意希望的功能、范围(例如,从高度专业化的网络功能至通用处理功能)的软件。
仅举服务功能的几个例子,VF236可实现网络防火墙、消息垃圾邮件过滤器、以及网络地址转译器。作为处理功能的其他实例,VF236可实现音频与视频编码器和转码器、数字权限管理(DRM)处理、数据库查询、电子商务事务处理(例如,计费与付费)、网站代管、内容管理、背景驱动广告、以及诸如高带宽数字内容保护(HDCP)和数字传输内容保护(DTCP-IP)处理等的安全处理。VF236的额外实例包括音频、视频以及图像压缩和解压,诸如,H.264、MPG以及MP4压缩和解压;音频和视频预处理和后处理;服务器功能,诸如,视频点播服务器、DVR服务器等;过顶(OTT)服务器;安全秘钥储存、生成以及应用;2D和3D图形渲染。
基于网络的服务链接
基于网络的服务功能链接(SFC)包括服务感知网络。在网络自身中,诸如架顶(ToR)交换机等网络设备获知存在哪些服务功能(SF)(例如,VF236)、哪些主机执行服务功能、主机与网络服务之间的连接路径、以及如何以有效的方式互连服务功能,以形成处理的端到端服务链(SC)。服务功能可以是在VM上运行的虚拟功能(VF)、可以是在虚拟化环境外部的物理服务器上运行的任意种类的非虚拟化功能或可以是在连接至网络的设备中另行提供。
网络设备(例如,ToR交换机)监测、创建、并且保持SC的定义,SC定义了任意希望数据包处理的服务功能的序列。网络服务沿着任意给定的SC确定数据包的下一跳并且通过SC跟踪进度。一种结果是主机200、VF236、以及虚拟交换机234不需要保持任意服务链接转发状态信息。相反地,主机200根据与任意给定SC相关联的寄主(hosted)SF本地处理数据包并且在处理之后将这些数据包返回至网络设备。网络设备确定下一SF和下一SF的位置。然后,网络设备通过SC将数据包转发至用于继续处理的适当目的地。
具体地,网络SFC能力允许网络在一个或多个服务功能之间创建逻辑连接,以提供独立于基层物理网络拓扑的系列服务功能。作为SFC的一部分,该架构可实现包括SFC分类器(SCC)和服务功能转发器(SFF)的若干功能部件。例如,SCC响应关于用户的规定策略、流量类型、服务质量水平、时间和数据、源或其他映射标准可将订户或用户数据包流或子流映射至具体的SC。
在针对数据包流确定的SC的上下文中,SFF将数据包从一个SF转发至下一个。应注意,并非在服务器节点(或其他端点设备)中实现SCC和SFF功能,下面描述的架构可在网络设备自身中实现这些功能。在其他实现方式中,通过节点而非执行SFC的网络设备确定SFC分类信息,并且这些节点将分类信息提供给执行SFC的网络设备。
如另一种方式表达的,该架构可利用网络交换机的硬件处理能力实现SFC。作为一个具体实例,架构可在ToR交换机中实现SFC。在一些情况中,网络交换机是数据中心的一部分并且可与数据中心或其他地方中的其他网络交换机共担SFC责任。即,SFC可以分布在多个网络设备之间,每个网络设备负责SC的一部分。
图3示出了用于SFC的示例性网络300。SFC是基于网络的使用SFC功能的TOR交换机302、304、以及306。ToR交换机可包括执行下面进一步描述的SFC处理的可扩展SFC处理器。在一种实现方式中,仅ToR交换机保存用于实现SFC的SF可达性表和其他状态信息。即,服务器308、310以及312不需要保存支持SFC的可达性表或其他状态信息。
因此,一个技术优点在于几乎不存在用于提供SC定义和管理的触摸点。该架构通过端到端可见性的增强操作与管理(OAM)模式提供了服务水平协议(SLA)实施的更好的模式。此外,该架构提供了更高的性能,从而允许更有效并且高效地使用设备节点。该架构也适用于任意尺寸(从小至非常大)的部署。
图4示出了网络设备、架顶交换机400的两个示例性实现方式。通过逻辑方式、物理方式、或逻辑元件与物理元件的组合可以实现图4中所示的交换机400的各个部件。交换机400A示出了多个设备实现方式,而交换机400B示出了单个设备实现方式。交换机400包括服务链处理器(SCP)402和基层交换机(underlayswitch)404。基层交换机404可实现多种不同的功能。作为两个实例,基层交换机404可实现数据中心隧道端点(XTEP)406并且可包括虚拟交换机(VS)408。作为一个具体实例,三叉戟(Trident)系列以太网交换机ASIC可实现基层交换机404。作为另一实例,Caladan3网络处理单元(NPU)可实现SCP402。当将SCP402和基层交换机404集成到单一设备中时,Qumran和Jericho交换机AISC可实现功能的组合集。这些NPU和ASIC以及其他实现选项与可扩散的性能功能不同并且从BroadcomofIrvine,CA可获得这些NPU和ASIC、以及其他实现选择。
如上所述,图4中示出的功能块可实现为分离的设备或可以存在于一个或多个设备的不同组合中。在一些实现方式中,例如,将SCP402和基层交换机404集成到单一设备中,而在其他实现方式中,SCP402和基层交换机404则在分离的设备中实现。仅举一个例子,当被集成时,功能块可被分布为形成挠性数据包处理管线。例如,在Qumran或Jericho切换设备中可以实现集成实现方式。如另一种方式表达的,可将SCP402通过独立NPU(例如,如图4中的实现方式400A所示)的形式加成到交换机架构中,或者例如将SCP402、基层交换机404以及任意其他功能块作为处理管线(例如,如图4中的实现方式400B所示)的一部分集成到单一设备中。
在该实例中,交换机400中的SCP402实现了SCC410。SCC410可基于任意组合将传入的数据包流映射至具体的SC,例如,基于用户、源应用、目的地应用、QoS、时间/日期或其他参数的任意组合。在一些实现方式中,SCC410通过将{应用ID,订户ID/类}从接收数据包映射至{服务链ID,服务功能索引}执行分类。通过搜索服务链映射表(SCMT)448可以执行映射,服务链映射表(SCMT)448将从数据包分类映射至网络服务链定义的分类储存在存储器440中。
例如,SCC410还可将遵循映射的数据包流中的每个数据包添加到包含{服务链ID,服务功能索引}的分类报头中。服务链ID(SCID)识别存储器440中的具体SC定义,并且服务功能索引(SFI)指向对接收数据包执行的下一SF。在数据包流中接收的初始数据包可被加签有指向在SC中执行的第一SF的SFI,SCC410将数据包流映射至第一SF。存储器440可储存任意数目的SC定义。图4将三个定义加签为SC定义1442、SC定义444、以及SC定义'n'446,每个均具有唯一的SCID。
在图4的实施例中,SCP402还实现了SFF412。如下面更为详细描述的,SFF412可在给定的SC中将来自一个SF的数据包转发至下一个。在一种实现方式中,SFF412将数据包分类报头中存在的{服务链ID,服务功能索引}映射至{VS网络地址,SF网络地址}。SFF还使SFI递减并且更新储存SFI的数据包的SFC报头,以通过映射SC中的SF跟踪并且保持数据包的进度。
SCP402可进一步实现服务隧道端点(STEP)414。STEP414可支持关于SF连接的服务叠加网络。STEP414还可添加、删除以及更新遵循SC的数据包的服务叠加隧道报头。例如,服务叠加隧道报头将第一SCP连接至另一SCP或VS。
SCP402还可实现数据中心隧道端点(XTEP)416。XTEP416支持关于VS连接的数据中心叠加网络。具体地,XTEP416可添加、删除以及更新遵循SC的数据包的服务叠加隧道报头。服务叠加隧道报头可将SCP连接至主机中的SF,例如,直接附接至当前处理数据包的ToR交换机。
应注意,基层交换机404可使用数据包的外部报头实现Layer2和Layer3转发。数据包可来自于SCP402与数据包接口418和420的任意组合。例如,接口418可以是相同数据中心或其他地方中的其他ToR交换机的上行链路接口。例如,接口420可以是与交换机400相同的机架中服务器的服务器节点接口。任意组合的物理和逻辑接口422连接SCP402和基层交换机404。
架构100中的一些技术优点包括不需要产生保持SFC转发状态的开销的服务器节点。此外,使用数据中心叠加隧道可将构成网络架构的ToR交换机(可包括位于不同的服务器机架中的ToR交换机)全部或局部地编织在一起,作为实例,诸如,虚拟可扩展的局域网(VXLAN)、使用通用路由封装(NVGRE)的网络虚拟化、通用网络虚拟化封装(Geneve)、最短路径分支(ShortestPathBreaching)(SPB)。每个ToR中的隧道端点均可以是SCP。进一步地,在一些实现方式中,隧道提供是静态的。即,隧道提供可以是一次性配置,然后,诸如,当物理拓扑改变时,进行选择性修改。
进一步的技术优点包括:机架中的每个ToR均可以逻辑地连接至每个服务器节点,在于机架使用至少一个数据中心叠加隧道,诸如,VXLAN、NVGRE、Geneve、SPB隧道等。ToR中的隧道端点是SCP,并且在服务器中,端点可以是虚拟交换机(VS)。如果每个服务器存在多个VS,则每个VS均可以通过单独的数据中心叠加隧道连接至ToR中的SCP。再次,隧道提供可以是静态的,在于隧道提供可以一次性配置,然后,例如,当物理拓扑改变时,进行选择性修改。
额外的技术优点包括机架中的每个ToR均可以逻辑连接至每个VM,即,用于SF的容器,在于,机架使用服务叠加隧道。ToR中的服务隧道端点是SCP,并且在服务器模式中,服务隧道端点是VM。在虚拟交换机、VM客户操作系统(OS)或网络功能自身中可以实现关于服务器节点中的每个VM的服务隧道端点处理。
图5示出了基于网络SFC的示例性叠加隧道拓扑500。例如,每个ToRSCP502、504以及506均可保持本地机架508、510、512中分别与其直接附接的SF的可达性或转发状态。如果服务中的下一SF位于另一机架中,源ToRSCP则通过例如将数据包发送至另一机架中的目标ToRSCP而将数据包转发至另一机架的目标ToRSCP。然后,目标ToRSCP例如通过将数据包发送至与在连接至目标ToR的主机中运行的VM通信的VS而将数据包转发至目的地SF。基层核心交换机(UCS)514代表每个ToR交换机中的基层交换机,并且可通过任意种类的物理或逻辑网络拓扑连接ToRSCP502、504、以及506。
图6示出了实例SC650中的转发600,实例SC650在通过网络交换机658连接并且服务的服务器652、654、以及656的机架内。图6示出了服务链650的起始602和服务叠加隧道初始点。图6还示出了服务链650的端604和服务叠加隧道终止点。服务链650在同一服务器机架内开始和结束,且服务器652、654、以及656上设置的VF连接至网络交换机658。
应注意,在该实例中,SF和VS都不保持任意的SFC转发状态信息。VS将与SC相关联的数据包返回至局域网交换机658,该SC如通过数据包中或根据VLAN、隧道或与数据包相关联的其他网络标识符的任意识别信息确定。在一种实现方式中,通过交换数据包的两个数据中心和服务叠加隧道报头中的源(SRC)和目的地(DST),VS返回数据包。因为VS中不保持任何状态,所以执行交换,从而将数据包返回至ToR,以进用于进一步处理。在该方面,通过指定VS执行交换的地址(例如,ToR交换机地址)的流表可以预先提供VS。
图6还示出了示例性的数据包600。数据包包括数据有效载荷662和SFC报头。例如,SFC报头可包括数据中心叠加隧道报头664,数据中心叠加隧道报头664将数据包指引至与承载下一SF的VM通信的具体VS。SFC报头还可包括指定与VS连接的SF的网络地址的服务叠加隧道报头666。SFF412可在ToR交换机处创建、添加、更新以及移除作为第一到达的数据包的SFC报头,将数据包发送至序列中的指定SF并且在处理之后从SF返回数据包,并且数据包通过SC完成其处理。
图7示出了基于网络的SFC700的实例,且SC在跨机架708、710、以及712的多个网络设备702、704以及706上扩展。图7示出了网络设备702中的服务链起始714。服务链起始714可以是服务叠加隧道初始点,例如,在该初始点,网络设备702将数据中心和服务叠加隧道报头插入到数据包上。图7还示出了服务链端716。服务链端716可以是服务叠加隧道终止点,例如,在终止点,网络设备706从数据包移除数据中心和服务隧道报头。
当在两个网络设备之间转发遵循SC的数据包时,例如,从网络设备702转发至网络设备704,发送网络设备702不需要修改数据包中的服务叠加隧道标识符。更确切地,接收网络设备可在将数据包发送给其本地SF之前更新服务叠加隧道报头。
应再次注意,在该实施例中,SF和VS不包含任意SFC转发状态信息。VS将与SC相关联的数据包返回给其本地网络设备,该SC如通过数据包中或根据VLAN、隧道或与数据包相关联的其他网络标识符的任意识别信息确定。例如,通过交换两个数据中心和服务叠加隧道报头中的SRC和DST,VS可返回数据包。
图7示出了用于处理分布在ToR交换机上的SC的ToR交换机至ToR交换机流量。每个ToR交换机中的SCP功能均对数据中心和服务叠加隧道报头进行更新,从而沿着SC将数据包指引至下一跳。每个ToR交换机中的SCP功能仅需要处理包括与该ToR交换机直接连接的VS、VM以及SF的SC的部分。每个ToR交换机中的SCP功能均可对服务链报头(例如,可包括服务功能索引和服务链标识符)执行查询,以确定ToR交换机是否复杂SC的任意一部分。即,例如,每个ToR交换机均可对{SCID,SFI}执行服务功能转发查询并且响应性地更新数据中心和服务叠加隧道报头。在ToR交换机之间行进的数据包的服务叠加隧道报头仅可以是占位符数据并且可通过SF的网络地址数据被处理SC的下一部分的下一ToR交换机替换。
图8示出了示例性的服务功能链(SC)800。SC可被实现为预定序列的SF。该序列的SF可通过实现SC的网络设备交付关于数据包流的预定数据平面服务。如上所述,独立网络设备可限定、储存以及管理SC。每个SC均可具有作为网络内的唯一ID的SCID,并且SCID指定SC作为SF的具体链。网络设备可将服务功能索引(SFI)保存为指定SC内的SF的索引。
SCC通过将数据包加签有报头信息而将数据包流映射至SCID,例如,将{应用ID,订户ID/类}从接收的数据包映射至{服务链ID,服务功能索引}。在网络中的任何位置均可以实现SCC。在入口,SCC对映射至特定SC(或不映射至SC)的流量执行识别和分类。例如,基于来自根据网络的IP地址的另一网络的全部流量,基于网络的片段(例如,通过端口或子网),基于流量的用户或所有人,或基于生成数据包的应用(仅举几个例子,语音IP应用、文件传输应用、虚拟私有网(VPN)应用、生成加密内容的应用、或视频或音频流媒体应用)。在执行映射时,SCC可执行深度包检测(DPI),以确定应处理数据包的指定SC。
SFF将数据包从SC内的一个SF转发至下一个。通过将{SCID,SFI}映射至物理网络地址(例如,{VS网络地址,SF网络地址}),SFF可转发数据包。物理网络地址处的SF执行SC中指定的下一服务功能。在完成SC时,服务链终止(SCT)功能从数据包移除服务链标签/报头,并且数据包通过网络交换机返回至非SC路由。
在图8的实例中,SCC已确定传入的数据包流802遵循SC800。数据包流802通过SC进行,从而顺次限定了四个SF:SF1,深度包检测;SF2,防火墙;SF3,网络地址转译;以及SF4,广域网优化。在每个SF之前,通过保持SFI(例如,通过使SFI增加或减少)跟踪SC中的哪一SF应接着处理数据包,SFF确定数据包的下一SF。
图9示出了通过SC902转发900的另一实施例,SC902通过跨机架904、906以及908的ToR交换机扩展。SC902包括顺次四个SF:SF1、SF2、SF3以及SF4。在进入SC之前,用户分类符(SUBC)(功能节点A)识别与用户相关联的数据包流并且将流映射至具体的流标识符。SCC(功能节点B)将流标识符(和可选地,诸如数据包来源等额外字符)映射至SC并且将数据包加签有包含SCID的SFC分类报头。
如通过另一种方式表达的,当数据包到达时,网关节点(例如,网关路由器GWR)可对数据包进行检测并且分类。在一些实现方式中,存在两种类型的分类:应用分类和流起源分类。对于应用分类,执行分类的网络节点对数据包进行检查并且确定其内容,例如,视频、HTTP数据或文件传输数据,并且网络节点生成对应的应用标识符。对于流起源分类,执行分类的网络节点可识别数据包的来源。例如,来源IP地址可识别来源。可以使用应用与来源数据的组合作为查找执行分类的网络节点中所提供的测量的查询。该策略可将应用和来源ID(或其他流量特性)映射至SCID。网络节点可实现提供例如添加到数据包的分类报头中的SCID和SFI的服务报头封装。ToR交换机中的SFF响应分类报头,以通过将SCID和SFI映射至物理网络地址而通过SC将数据包路由至SF。
在图9的实施例中,前两个SF设置在服务器机架908的主机中。因此,如图9所示,ToR交换机910执行SFF功能三次,以通过两个SF路由数据包,然后,将数据包路由至下一机架906,其中提供SC中的下一SF。在ToR交换机912中,ToR交换机912执行SFF功能两次,一次将数据包指引至SF3,并且一次将数据包指引至ToR交换机914,其中,最后的SF(SF4)承载在服务器机架904中。ToR交换机914执行SFF功能,以将数据包指引至SF4,并且再次将数据包指引回至网络,其中,SCT移除SFC所使用的数据包报头并且将数据包返回至用于通用路由的网络。应注意,在图9中,网格路由器(GWR)执行一些SC处理,其中包括SUBC、SCC、SFF的实例、以及SCT。
图10扩展了图9中的实施例并且示出了通过SC1002的转发1000的另一实施例,SC1002通过跨机架1004、1006、以及1008的ToR交换机1010、1012、以及1014扩展。应注意,在图10中,用户访问网络中的设备(例如,物理端点(PE))执行SUBC功能。在该实施例中,PE可将MPLS标签中的生成用户标识符通信至GWR中的下列SCC功能。如上参考图9标注的,SCC将用户标识符映射至SC,并且通过SC处理数据包。
图11示出了位于机架1104内的服务功能链1102中的转发1100的另一实例。在该实例中,ToR交换机1106执行SUBC、SCC、SFF以及SCT的功能。当Tor交换机1106将数据包转发至SC中的下一SF时,其跟踪SFI,以确定转发数据包的下一地址,从而从执行SF的主机返回至ToR交换机1106。当指标通过SC跟踪至SC结束时,ToR交换机1106认为数据包已经完成SC并且执行SCT功能,以移除施加在数据包中的服务和数据中心叠加隧道报头,从而协助基于网络的SFC。
在上述所述基于网络的SFC架构中,在网络设备自身(例如,ToR交换机)中保持SFC的转发状态,具体地,将SF的逻辑地址映射至物理网络地址的功能。VS中不需要提供或保持转发状态和映射功能。一种有益结果在于服务链控制器仅需要管理网络设备中的映射表(而非所有端点中的映射表)。在通常情景中,机架中的每个ToR交换机拥有多个服务器(例如,48至1),在管理总支出上明显减少。
基于网络SFC中的VS参与是接收数据包并且将数据包传递至VM中提供的SF。在SF处理之后,VS将数据包返回至起源网络设备,例如,起源ToR交换机。VS不需要将关于下一跳SF的任何信息储存在SC中,更确切地,将处理之后的数据包返回至网络设备,以用于下一跳确定。
作为另一使用情况实施例,假设可包括顺次三个S的SC:DPI、随后防火墙、随后虚拟路由器。ToR交换机将SC分配给SCID作为提供SC的一部分。在一种实现方式中,使用SCID和SFI的字节组逻辑地址解决具体的服务功能。即,每个SF均具有SC内的索引。在该实施例中,对于DPISF,索引可以索引值3开始,对于防火墙SF,则以索引值2开始,对于路由器SF,则以索引值1开始。
SCP402(具体地,通过SCP402实现的SFF412)将逻辑地址(例如,{SCID50,SFI3})映射至物理网络地址。在一种实现方式中,物理网络地址包括两部分:叠加端点和VD内的SF的地址,叠加端点是与SF附接的VS的地址。在数据包到达之后,SFF412执行将SCID和SFI映射至下一SF的查询。SFF412创建并且添加(或更新)数据包的数据中心叠加隧道报头,从而将数据包指引至与承载下一SF的VM通信的具体VS。SFF412还创建并且添加(或更新)数据包的服务叠加隧道报头,数据包的服务叠加隧道报头指定了与VS连接的SF的地址。即,作为SFF412的查询的结果,SFF412可创建、添加、修改或删除服务隧道报头和数据中心叠加隧道。
SFC通过其映射的SC跟踪数据包的进度,例如,通过减少数据包的SFI。例如,在从DIPSF返回之后,SFC可使SFI从3减少至2并且更新携带SCID和SFI的数据包的报头。在该实例中,完成了对{SCID50,SFI2}的下一查询,找出了后续SF(防火墙SF)的网络地址,即,处理SC中的数据包的下一SF。SFC通过这种方式继续,直至SFI变成零。在该点,SFC认识到数据包已经到达SC的末端、移除SFC报头并且通过其正常方式转发数据包(无需SFC处理)。
通过多种不同类型的线路(从高度专业化的数据包处理器至通用中央处理单元)、通过多种不同方式可以实现上述所述SFC处理。在一种实现方式中,通过网络交换机的数据平面实现SFC处理。数据平面可包括与千兆位级交换结构附接的专用网络处理器。
再次参考图5,基于网络的SFC处理由叠加拓扑支持。叠加拓扑实现了与各个网络设备(例如,ToR交换机)中的SCP和服务器机架中的每个VS互连的数据包隧道连接。SCP412可以是隧道端点。叠加拓扑实现了网络集线器与轮辐连接架构。在该拓扑中,利用叠加隧道将各个网络设备编织在一起,例如,从各个ToR交换机至诸如具体数据中心等限定位置上的每个其他ToR交换机的隧道。
因此,每个网络设备均具有到SF的每个直接附接的主机(和VS)的数据中心隧道连接。在将SCP连接至各个SF和承载SF的VM的数据中心隧道内限定了服务隧道。数据中心隧道支持ToR交换机之间的通信,每个ToR交换机均可处理关于跨任意数目的ToR交换机和服务器机架的SC的任意部分的数据包路由,例如,沿着连接数据中心中的多个服务器机架的数据中心脊带。
数据中心叠加隧道和服务叠加隧道构成了将任意网络设备(例如,任意网络交换机)连接至物理或虚拟的任意SF的两层转发结构。在一种实现方式中,外层解决了具体VS,并且内层解决了由与VS通信的节点承载的具体SF。寻址并不局限于IP或MAC地址,更确切地,可以使用任意寻址类型。叠加拓扑提供了从服务器机架中的每个ToR交换机至每个VS、VM、以及SF的逻辑和物理连接。
图12示出了实现执行基于网络节点的SFC的网络节点的逻辑1200。逻辑1200接收成为网络流的一部分的数据包(1202)。任意逻辑或物理网络节点(例如,SCP402中的SCC410)可根据例如应用/内容和来源/用户对数据包进行分类(1204)。逻辑1200包括在存储器中限定SC(1206)。例如,SC可通过使用索引值指定SF的序列,即,按照具体的序列订购不同的服务功能。可提供诸如SFF412等的功能的分类信息,SFF412确定哪一SC(如有)应用于分类(1208)。该功能可将数据包的数据包报头中加签有适用的{SCID,SFI}(1210)。
SFF412对SFI进行检验,以确定是否存在处理SC中的数据包的更多SF(1212)。如果不存在,SFF412则从数据包移除数据中心和服务叠加隧道报头(1214)。然后,由网络设备正常处理数据包。如果存在处理数据包的额外SF,SFF412则对SFI进行更新(1216)并且确定达到下一SF的网络地址(例如,基于{SCID,SFI})。SFF412根据需要创建或修改数据包的数据中心和服务叠加隧道报头,从而将数据包指引至下一SF(1218)。
然后,SFF412将数据包指引至下一SF(1220)。例如,SFF412可通过基层交换机、通过叠加拓扑将数据包发送至与下一SF通信的VS和VM。
例如,通过交换数据中心和服务叠加隧道报头中的SRC和DST信息,VS将通过SF处理的数据包返回至SFF412。SFF412接收从SF和VS返回的处理数据包(1222)并且检验任意后续的SF是否应处理数据包(1212)。
通过多种不同方式并且通过硬件与软件的多种不同组合可以实现上述所述方法、设备、处理、以及逻辑。例如,实现方式的全部或部分可以是包括指令处理器的电路,诸如,中央处理单元(CPU)、微控制器、或微处理器;可以是专用集成电路(ASIC)、可编程逻辑设备(PLD)、或场可编程门阵列(FPGA);或可以是包括离散逻辑或其他电路部件的线路,其中包括模拟电路部件、数字电路部件、或模拟和数字电路部件;或可以是其任意组合。例如,线路可包括离散互连的硬件部件和/或可以在三个集成电路晶片上组合、可分布在多个集成电路晶片上、或者通过常见封装中的多个集成电路晶片的多芯片模块(MCM)实现。
线路可进一步包括或访问由该线路执行的指令。指令可储存在实际储存介质中,即,与易失性信号不通,诸如,闪速存储器、随机访问存储器(RAM)、只读存储器(ROM)、可擦除编程只读存储器(EPROM);指令可以储存在诸如紧凑盘只读存储器(CDROM)、硬盘驱动(HDD)、或其他磁盘或光谱等磁盘或光盘上;或指令可以储存在另一机器可读介质中或上。诸如计算机程序产品等产品可包括储存在介质中或上的储存介质和指令,并且当通过设备中的线路执行指令时,指令可致使设备实现上述所述或附图中示出的任意处理。
实现方式可以分布为多个系统部件之间的线路,诸如,多个处理器与存储器,可选地,包括多个分布式处理系统。参数、数据库、以及其他数据结构可被单独储存和管理、可被整合到单个存储器或数据库中、可通过多种不同方式被逻辑或物理地组织、并且可通过多种不同方式实现,其中包括诸如链接列表、哈希表、阵列、记录、对象、或默示储存机制等数据结构。程序可以是单个程序的部分(例如,子例程)、独立程序、分布在若干个存储器和处理器上、或通过诸如库(诸如,共享库(例如,动态链接库(DLL)))等多种不同方式实现。例如,DLL可储存在通过线路执行时执行上述所述或附图中示出的任意处理的指令。
已经具体描述了各种实现方式。然而,许多其他实现方式也是可能的。
机译: 服务功能链接网络中的服务功能转发器启动的服务分载或旁路
机译: 基于软件定义网络的服务功能链服务功能路径配置装置及方法
机译: 基于软件定义网络的服务功能链备份服务功能选择装置及方法