掌桥专利:专业的专利平台
掌桥专利
首页

使用提供商网络主干网络的广域网服务

文献发布时间:2024-04-18 19:58:21


使用提供商网络主干网络的广域网服务

背景技术

许多公司和其他组织运营将多个计算系统互连来支持其操作的计算机网络,诸如其中计算系统位于同一位置(例如,作为本地网络的一部分)或替代地位于多个不同的地理位置(例如,通过一个或多个私有或公共中间网络连接)。例如,容纳大量互连计算系统的数据中心已经变得很常见,诸如由单个组织运营并且代表所述单个组织运营的私有数据中心,以及由作为企业的实体运营以向客户提供计算资源的公共数据中心。一些公共数据中心运营商为各种客户所拥有的硬件提供网络访问、电力和安全安装设施,而其他公共数据中心运营商提供还包括可供其客户使用的硬件资源的“全面服务”设施。

用于商品硬件的虚拟化技术的出现已经在管理大规模计算资源方面为许多具有多样化需求的客户提供益处,从而允许各种计算资源由多个客户高效且安全地共享。例如,虚拟化技术可通过向每个用户提供由单个虚拟化主机托管的一个或多个“客户”虚拟机来允许单个物理虚拟化主机在多个用户之间共享。每个这种虚拟机可表示充当不同逻辑计算系统的软件模拟,所述软件模拟向用户提供他们是给定硬件计算资源的唯一运营商的错觉,同时还在各种虚拟机之间提供应用隔离和安全性。在同一主机上实例化若干不同虚拟机还可有助于提高数据中心处的整体硬件利用水平,从而带来更高的投资回报。

随着提供商网络处对基于虚拟化的服务的需求不断增长,可能必须添加越来越多的联网和互连性相关特征,以满足使用服务实现的应用的要求。许多此类特征可能需要以一种或另一种形式例如在开放系统互连栈的级别3或级别4上进行网络分组地址操纵。虚拟化计算服务的一些客户端可能希望对在特定端点集之间流动的应用流量采用定制的基于策略的分组处理。对于所有不同类型的分组变换要求使用自组网解决方案在大型提供商网络中可能无法扩展,在所述大型提供商网络处,可能同时处理与成千上万的虚拟机或物理机相关联的流量。

附图说明

图1示出根据至少一些实施方案的其中可针对在隔离网络之间流动的流量实现可扩展虚拟路由器的示例性系统环境。

图2示出根据至少一些实施方案的在虚拟路由器的帮助下实现的分组处理应用的示例性类别以及可针对所述类别中的一些执行的辅助任务。

图3示出根据至少一些实施方案的虚拟路由器的异常路径节点、虚拟路由器的快速路径节点与和虚拟路由器相关联的辅助任务卸载资源之间的示例性交互的概述。

图4示出根据至少一些实施方案的其中用于虚拟路由器的资源可独立于用于与通过虚拟路由器路由流量相关联的辅助任务的资源自动缩放的示例性场景。

图5示出根据至少一些实施方案的用于虚拟路由器的独立管理的分组处理单元的示例性使用。

图6示出根据至少一些实施方案的用于虚拟路由器的独立管理的辅助任务卸载单元的示例性使用。

图7示出根据至少一些实施方案的用于将虚拟路由器的节点与辅助任务卸载器连接的示例性技术。

图8和图9示出根据至少一些实施方案的客户端与分组处理服务之间的与虚拟路由器和相关联的辅助任务卸载资源的配置和使用相关的示例性编程交互。

图10是示出根据至少一些实施方案的可被执行以从虚拟路由器卸载一些类型的任务的操作的各方面的流程图。

图11示出根据至少一些实施方案的其中可设立协议栈多路复用器和多个协议栈实例以用于卸载可扩展虚拟路由器的辅助任务的示例性系统环境。

图12示出根据至少一些实施方案的其相应协议栈实例可在具有协议栈多路复用器的装置处运行的一组示例性协议。

图13示出根据至少一些实施方案的辅助任务卸载装置的组件之间的一组示例性交互,在所述辅助任务卸载装置处,可为虚拟路由器配置协议栈多路复用器。

图14示出根据至少一些实施方案的其中以若干不同编程语言开发的协议栈实例可在辅助任务卸载装置处的相应软件容器内执行的示例性场景。

图15示出根据至少一些实施方案的其中给定协议栈的多个独立实例可在辅助任务卸载装置处同时执行的示例性场景。

图16示出根据至少一些实施方案的用于保存与虚拟路由器的辅助任务相关联的协议状态信息的替代方法的示例。

图17是示出根据至少一些实施方案的可被执行以使用协议栈多路复用器和协议栈的独立实例从虚拟路由器卸载一些类型的任务的操作的各方面的流程图。

图18示出了根据至少一些实施方案的其中可应分组处理服务的客户端的请求而为对等虚拟路由器对启用动态路由的示例性系统环境,所述动态路由涉及使用边界网关协议(BGP)处理引擎交换路由信息。

图19示出根据至少一些实施方案的其中可为虚拟路由器的若干不同类型的编程附接启用动态路由信息交换的示例性场景。

图20示出根据至少一些实施方案的其中虚拟路由器可采用用于路由信息传送的定制协议来交换最初使用BGP传输给虚拟路由器的信息的示例性场景。

图21示出根据至少一些实施方案的其中可在虚拟路由器对之间设立多个对等附接的示例性场景。

图22示出根据至少一些实施方案的与配置对等虚拟路由器的动态路由有关的一组示例性编程交互。

图23是示出根据至少一些实施方案的可被执行以用于启用并利用对等虚拟路由器的动态路由的操作的各方面的流程图。

图24示出根据至少一些实施方案的其中组织可使用来自各种供应商的租借光纤线路和装置来管理链接组织的地理上遥远的驻地的广域网络的示例性环境。

图25示出根据至少一些实施方案的其中使用提供商网络的广域网(WAN)服务来传输提供商网络的客户端的遥远驻地之间的流量的示例性系统环境,所述WAN服务采用内部光纤主干网络和启用了动态路由的虚拟路由器的集合。

图26示出根据至少一些实施方案的示例性基于web的接口,所述基于web的接口可用于提供客户端指定的位置之间的流量的WAN服务质量度量。

图27示出根据至少一些实施方案的示例性基于web的接口,所述基于web的接口可用于呈现在客户端指定的位置之间流动的流量的状态信息。

图28示出根据至少一些实施方案的其中可代表WAN服务的客户端配置用于在指定位置之间流动的流量的强制中介装置的示例性场景。

图29示出根据至少一些实施方案的与将私有提供商网络主干网络链路用于客户端驻地之间的流量有关的一组示例性编程交互。

图30是示出根据至少一些实施方案的可在提供商网络的广域网服务处执行的操作的各方面的流程图,所述提供商网络通过私有光纤主干在客户端驻地之间传输流量。

图31是示出可在至少一些实施方案中使用的示例性计算装置的框图。

虽然在本文中通过对若干实施方案和例示性附图举例的方式描述了实施方案,但本领域技术人员将认识到,实施方案不限于所描述的实施方案或附图。应当理解,附图和对附图的详述不意图将实施方案限于所公开的特定形式,而是相反地,本发明将涵盖落入如所附权利要求限定的精神和范围内的所有修改、等效物和替代方案。本文所使用的标题仅用于组织目的,并且不意在用来限制本说明书或权利要求的范围。如贯穿本申请所使用,单词“可”是在许可意义(即,意指具有可能性)而非强制性意义(即,意指必须)上使用的。类似地,单词“包括”、“包含”和“含有”意指包括但不限于。当在权利要求中使用时,术语“或”用作包含性或而不是用作排他性或。例如,短语“x、y或z中的至少一者”意指x、y和z中的任一者,以及它们的任何组合。

具体实施方式

本公开涉及用于高效实现与通过在提供商网络或云计算环境处实现的虚拟路由器在隔离网络之间传输包含应用数据的网络分组相关联的若干类别的辅助任务(诸如路由配置信息交换任务、加密/解密任务或定制客户端请求任务)的方法和设备。给定的虚拟路由器包括多层分组处理服务的节点集合,所述节点集合包括被配置来快速执行本地高速缓存的路由或转发动作的快速路径节点,以及基于隔离网络的客户端指定策略和连接性要求来确定要对不同的分组流采取的动作的异常路径节点。在使用路由信息交换协议(例如,类似于边界网关协议(BGP)的协议)针对隔离网络对之间的应用数据流量实现动态路由的场景中,包含动态路由信息的消息的处理可从虚拟路由器节点卸载到在其他装置处运行的协议处理引擎,从而使得虚拟路由器节点能够保持专用于它们的基于规则的分组转发的主要任务。出于类似的原因,其他类型的辅助任务诸如通过类似于IGMP(互联网组管理协议)的协议的多播配置管理、分组内容的加密/解密、或客户端所请求的定制分组分析/处理任务也可从虚拟路由器移交到卸载装置。

卸载任务在若干重要方面可不同于在虚拟路由器处执行的基线或核心转发相关任务—例如,至少一些卸载任务的执行频率通常必须远低于应用数据分组转发任务,一些卸载任务所需的计算资源或其他资源(例如,用于保存状态信息的存储器或存储装置)的量可能远大于应用数据分组转发所需的相同资源的量等等。不仅出于性能原因(例如,为了避免虚拟路由器的资源的分流,这可能已经对应用数据转发有很高的需求),而且对于使得能够独立于辅助任务处理组件增强和开发虚拟路由器的转发相关组件,辅助任务的卸载可能是有益的。在一些情况下,可使用卸载装置(诸如计算服务的虚拟化主机)处以用户模式运行的协议栈实例(例如,BGP处理引擎或IGMP处理引擎的实例)来执行辅助任务,其中协议栈多路复用器根据需要在给定卸载装置处的协议栈实例之间分配辅助任务。

使用卸载技术,若干类型的分组处理应用变得具有更高的实用性和性能。在不同地理区域中实现的虚拟路由器(例如,使用位于不同州、国家或大陆的数据中心处的资源)可以编程方式彼此附接(或“对等”),并且被配置来使用类似于BGP的协议获得并自动交换与不同区域中的隔离网络有关的动态路由信息,从而消除需要客户端来针对在隔离网络之间流动的流量精心配置静态路由。客户端可指定各种参数和设置(诸如要使用的特定协议版本、用于过滤要向虚拟路由器通告或从虚拟路由器通告的路由信息的规则等)来控制路由信息在虚拟路由器之间传送的方式。广域网(WAN)服务可在提供商网络处使用启用了动态路由的以编程方式附接的虚拟路由器来实现,从而允许客户端针对分布在世界各地的客户端驻地之间的流量利用提供商网络的私有光纤主干链路(已经代表各种其他服务的用户用于提供商网络的数据中心之间的流量),并且使用具有可视化接口的易于使用的工具来管理它们的长距离流量。需注意,虽然用于这种WAN服务或对等虚拟路由器对的动态路由通常可受益于卸载资源的使用,但在至少一些实施方案中,在此类场景中使用的所有虚拟路由器可能不一定都需要这种卸载。

如本领域技术人员根据本公开将理解,某些实施方案可能够实现各种优点,包括以下中的一些或全部:(a)使得与用于某些类型的分组处理应用的多种配置管理协议(诸如BGP、IGMP等)相关联的处理能够使用专用资源来高效地执行,而不消耗主要为高速分组转发/路由动作留出的计算资源;(b)独立于用于辅助任务诸如路由表配置管理、分组内容的密码变换、性能延迟测量等的资源,缩放专用于高速分组转发/路由的资源集,从而确保转发/路由动作以及辅助任务的高性能;(c)减少其计算资源在地理上分散的组织处所需的联网配置问题解决方案的数量,例如,通过消除对不同地理区域中的网络之间的静态路由的易出错规范的需要以及通过消除对管理租借光纤线路上的流量的需要;和/或(e)通过单独在区域内级别和区域间级别上提供配置信息和度量来增强在地理上分布的环境中运行的应用的系统管理员和/或应用所有者的用户体验。由于用于虚拟路由器的分组处理服务的多租户性质,在至少一些实施方案中,在各种隔离网络之间路由流量所需的计算资源和其他资源的总量也可减少。

根据一些实施方案,一种系统可包括一个或多个计算装置。所述计算装置可包括指令,所述指令当在计算装置上或跨计算装置执行时使得计算装置:至少部分地基于通过一个或多个编程接口从提供商网络的客户端接收的输入来确定与在各种隔离网络之间传输网络分组的至少一个子集相关联的辅助任务的类别。在不同的实施方案中,根据客户端希望使用提供商网络的分组处理服务来实现的分组处理应用实例的具体情况,可能需要多种类别的辅助任务的任何组合。所述一组辅助任务类别可例如包括:路由配置管理类别(例如,与处理BGP消息、提供商网络的定制路由信息交换协议的消息、IGMP消息、提供商网络的定制多播配置协议的消息等相关联的任务);(b)分组内容变换类别(例如,根据协议诸如IPSec或提供商网络的定制安全协议对分组内容的加密/解密);(c)性能管理类别(例如,地理上遥远的资源之间的分组延迟或分组丢失率的测量);(d)由客户端指定的定制处理任务(例如,对已经被指派客户端定义的标记的分组专门执行的计算)等等。在各种实施方案中,要针对其流量执行辅助任务的给定隔离网络可例如包括隔离虚拟网络(也称为虚拟私有云或VPC,或虚拟网络),所述隔离虚拟网络包括提供商网络的虚拟化计算服务(VPC)的一定数量的计算实例,或在提供商网络外部的客户端拥有的驻地处设立的网络。在不同的实施方案中,在这种客户端拥有的驻地处的资源可以若干方式中的任一种链接到提供商网络数据中心,例如,使用一个或多个VPN(虚拟私有网络)隧道,使用专用私有物理网络链路(有时称为直接连接链路)等。

在各种实施方案中,虚拟路由器可被配置来在由客户端指示的第一隔离网络与第二隔离网络之间传输网络分组。例如,虚拟路由器可响应于来自提供商网络的客户端的请求而以编程方式附接到至少一个隔离网络;这种附接请求可指示隔离网络的流量将在虚拟路由器处进行处理。在一些实施方案中,给定虚拟路由器可包括多个分组处理节点,所述多个分组处理节点包括快速路径节点和异常路径节点。快速路径节点可被配置来:(a)从异常路径节点获得用于隔离网络对之间的给定分组流的一个或多个路由动作的可执行版本,(b)高速缓存所述可执行版本,并且(c)使用所述可执行版本对所述流中的分组实现路由动作。术语“异常”可用于指代在其处生成路由动作的可执行版本的节点,因为通常情况下,给定可执行动作可运行多次(例如,对于包括数千个分组的流中的每个分组),所以生成动作的活动可被视为异常的或不常见的活动。在各种实施方案中,虚拟路由器(VR)也可称为虚拟流量集线器(VTH)或转接网关(TGW)。在至少一些实施方案中,VR的个别节点可包括在提供商网络的虚拟化计算服务的计算实例(例如,虚拟机)处的一个或多个执行线程,或者在非虚拟化服务器处的一个或多个执行线程。在一些实施方案中,快速路径节点和异常路径节点可统称为转发平面节点(或路由平面节点),因为它们的主要功能之一可包括在不同隔离网络的资源之间尽可能快地转发包含客户端应用数据的分组。

在各种实施方案中,除了VR本身之外,在至少一些实施方案中可代表客户端配置一个或多个辅助任务卸载资源(ATOR)(也称为辅助任务卸载器(ATO)),以执行例如由分组处理服务的管理或控制平面组件为客户端的分组处理应用标识的类别的辅助任务。例如,使用提供给VR的异常路径节点的元数据,可在ATOR与VR的一个或多个分组处理节点或转发平面节点之间建立通信路径。在一些实施方案中,建立这种连接性可包括:设立分组可从VR转发平面节点定向到的虚拟网络接口,并且在虚拟网络接口与ATOR之间配置封装协议的一个或多个隧道。在不同的实施方案中,ATOR可例如包括计算实例或非虚拟化主机的一个或多个执行线程。

在各种实施方案中,在ATOR已经建立并连接到VR之后,可从VR向ATOR传输指示辅助任务的消息或分组。当在ATOR处接收到特定分组时,可执行对应于所述分组的辅助任务(诸如基于分组内容来更新路由信息),并且可将辅助任务的结果(诸如更新的路由)传输回VR。在VR处,可使用辅助任务的结果来在为其流量指派VR的隔离网络之间传输一个或多个分组。例如,在一个场景中,辅助任务可导致在用于选择下一跳来传输分组的路由表中插入或移除一个或多个路由。又如,辅助任务的结果(例如,分组应用数据有效载荷的加密版本)本身可在分组中传输。

与VR的可针对在VR处接收的绝大多数流量以高速率执行的转发平面动作,辅助任务的至少一些相反类别可不太频繁地执行(例如,使用ATOR),并且可相对于应用数据分组的转发异步地执行。例如,在BGP会话的至少一些部分期间,可相对不频繁地接收和/或发送路由信息消息,并且给定BGP消息的处理可能不是转发应用数据分组的关键路径的一部分(即使处理BGP消息的结果可能导致一些应用数据分组被传输到的下一跳的改变)。因此,在一些实施方案中,VR的转发平面组件接收某些类别的辅助任务处理的结果的定时相对于由转发平面组件执行的个别应用分组传输可以是独立的和异步的。例如,给定快速路径节点可不必在将给定分组转发到其目的地之前等待BGP消息处理任务完成。对于其他类型的辅助任务,快速路径节点对给定应用数据分组的转发可能取决于辅助任务的完成—例如,是否要对要转发应用数据分组的内容进行加密作为辅助任务的一部分,或者如果在从VR传输具有特定客户端指定的标记或标签的分组之前生成并存储日志记录作为辅助任务的一部分,则快速路径节点可能必须等待辅助任务完成。

在一些实施方案中,可针对给定应用数据流的分组执行多种类型的辅助任务:例如,可使用BGP消息处理的结果来确定所述流中的分组的下一跳,并且还可针对所述流中的分组执行加密/解密任务。一个流可通过包括源和目的地IP(互联网协议)地址、源和目的地端口、源和目的地虚拟网络接口标识符、源和目的地隔离网络标识符等的特性的某种组合与另一流区分。在一个这种实施方案中,给定ATOR可用于实现若干不同类别的辅助任务。在其他实施方案中,可使用第一ATOR来执行一个类别的辅助任务,并且可使用第二ATOR来执行另一类别的辅助任务。

在一个实施方案中,ATOR可包括例如通过外围互连诸如USB(通用串行总线)或PCIe(快速外围组件互连)附接到服务器的硬件卡。在这种实施方案中,至少一些类别的辅助任务可完全在硬件卡上执行(例如,使用并入到卡内的处理器和存储器)。在一些实施方案中,代替使用VR外部的资源来实现,可使用由分组处理服务的控制平面作为VR的一部分配置和管理的资源(例如,在逻辑上与快速路径和异常路径节点不同的辅助处理节点)来实现ATOR。

根据一些实施方案,一种系统可包括一个或多个计算装置。所述计算装置可包括指令,所述指令当在计算装置上或跨计算装置执行时使得计算装置:在卸载装置(例如,虚拟化主机)处从被配置来在第一隔离网络与第二隔离网络之间传输网络分组的虚拟路由器接收指示与传输网络分组相关联的第一辅助任务的至少一部分的消息。卸载装置的栈多路复用器(例如,在计算实例和/或虚拟化管理器处运行的一个或多个进程或线程)可从在卸载装置处运行的一组协议栈实例中选择特定协议栈实例来处理消息的至少一部分。在至少一些实施方案中,给定协议栈实例可包括在用户模式或用户空间内实现联网协议栈的一个或多个层(例如在OSI(开放系统互连)模型中定义的层)的软件。栈多路复用器可访问卸载装置的直接存储器访问(DMA)缓冲器,消息可由网络接口卡放置在所述缓冲器内,在所述网络接口卡处从虚拟路由器获得消息。可至少部分地基于包含在消息中的或与消息相关联的元数据来选择特定协议栈实例,所述元数据诸如用于封装在消息内的底层分组的协议、为其配置虚拟路由器的隔离虚拟网络的标识信息、或虚拟路由器代表其正传输流量的客户端的标识符。在各种实施方案中,协议栈实例中的至少一些可在用户空间中运行。所选择的协议栈实例(其可例如包括BGP处理引擎、IGMP处理引擎以及用于由BGP或IGMP使用的较低层协议的逻辑)可分析消息并执行所需的辅助任务。然后,辅助任务的结果可通过多路复用器发送到虚拟路由器,在所述虚拟路由器处,可使用辅助任务的结果来在第一隔离网络与第二隔离网络之间传输至少一些分组。根据至少一些实施方案,给定协议栈实例可被配置用于以单租户模式(代表不超过一个客户端,或者用于不超过一个虚拟路由器)或多租户模式(例如,用于代表若干客户端或若干虚拟路由器执行的辅助任务)使用。在一些实施方案中,租用模式可至少部分地基于来自代表其配置虚拟路由器的客户端的编程输入来选择。

根据一些实施方案,一种系统可包括一个或多个计算装置。所述计算装置可包括指令,所述指令当在计算装置上或跨计算装置执行时使得计算装置:使用提供商网络的资源创建多个虚拟路由器,所述多个虚拟路由器包括第一虚拟路由器和第二虚拟路由器。可实现根据由提供商网络的客户端通过一个或多个编程接口指示的动态路由协议控制设置组在第一虚拟路由器与第二虚拟路由器之间传送路由信息。路由信息的至少一部分可与多个隔离网络相关联,所述多个隔离网络包括以编程方式附接到第一虚拟路由器的第一隔离网络和以编程方式附接到第二虚拟路由器的第二隔离网络。所述动态路由协议控制设置组中的特定设置可例如包括要用于确定是否要传送通向特定目的地的路由的过滤规则、要与网络地址组的各种BGP属性相关联的相应优先级等等。在一些实施方案中,可例如使用上文所讨论种类的卸载资源,为虚拟路由器中的每一个建立用于动态路由协议的相应协议处理引擎。在一些实施方案中,基于客户端指定偏好,BGP的若干变体(诸如内部BGP、外部BGP或多协议BGP)中的任一个可用于动态路由。在一个实施方案中,客户端可使用BGP属性来指定配置设置,但路由信息实际上可使用提供商网络的定制协议在虚拟路由器的协议处理引擎之间传送。

在一些情况下,启用了动态路由的虚拟路由器可用于使用提供商网络的私有光纤主干链路在提供商网络客户端的地理上分布的驻地之间传送数据。根据一些实施方案,一种系统可包括一个或多个计算装置。所述计算装置可包括指令,所述指令当在计算装置上或跨计算装置执行时使得计算装置:通过提供商网络的广域网服务的一个或多个编程接口,获得以下的指示:(a)网络流量将在其间通过提供商网络的私有光纤主干路由的多个客户端驻地,所述多个客户端驻地包括第一地理区域中的第一驻地和第二地理区域中的第二驻地,以及(b)要用于获得与至少第一驻地和第二驻地有关的动态路由信息的特定协议。可使用第一提供商网络数据中心处的虚拟化计算服务的满足关于第一驻地的接近标准的至少第一资源集来为客户端配置第一虚拟路由器。类似地,可使用第二提供商网络数据中心处的满足关于第二驻地的接近标准的至少第二资源集来配置第二虚拟路由器。在各种实施方案中,可在(a)第一虚拟路由器与第二虚拟路由器、(b)第一虚拟路由器与第一驻地以及(c)第二虚拟路由器与第二驻地之间实现连接性。源自第一驻地的至少一个网络分组的内容可使用一组路由信息通过私有光纤主干传送到第二驻地。所述一组路由信息的至少一部分可由与第二虚拟路由器相关联的协议处理引擎从第二动态路由信息源获得。协议处理引擎可被配置来处理由客户端指示的特定协议的消息。

如上所提及,在至少一些实施方案中,上述种类的虚拟路由器和/或相关联的辅助任务卸载器可使用提供商网络的资源来实现。云提供商网络(有时简称为“云”)是指网络可访问计算资源(诸如计算资源、存储资源和联网资源、应用和服务)的池,其可以是虚拟化的或裸金属的。云可提供对共享的可配置计算资源池的便利的按需网络访问,所述可配置计算资源池可以编程方式预配并且响应于客户命令而发布。这些资源可被动态地预配和重新配置以调整可变负载。因此,云计算既可被视为作为服务通过公共可访问网络(例如,互联网或蜂窝通信网络)递送的应用也可被视为提供这些服务的云提供商数据中心中的硬件和软件。

云提供商网络可形成为多个区域,其中区域是云提供商将数据中心集聚在其中的单独地理区域。这种区域也可称为提供商网络定义区域,因为其边界可不一定与国家、州等的边界一致。每个区域可包括通过私有高速网络(例如光纤通信连接)彼此连接的两个或更多个可用性区。可用性区(也称为可用性域或简称为“区”)是指包括一个或多个数据中心设施的隔离故障域,所述一个或多个数据中心设施具有与另一可用性区中的那些分离的单独的电源、单独的联网和单独的冷却。数据中心是指容纳云提供商网络的服务器并且向云提供商网络的服务器提供电力和冷却的物理建筑或外壳。优选地,区域内的可用性区被定位成彼此相距足够远,以使得同一自然灾害不应使多于一个可用性区同时离线。客户可通过可公开访问的网络(例如,互联网、蜂窝通信网络)借助转接中心(TC)连接到云提供商网络的可用性区。TC可被视为将客户链接到云提供商网络的主要主干位置,并且可并置在其他网络提供商设施(例如,互联网服务提供商、电信提供商)处并(例如,通过VPN或直接连接)安全地连接到可用性区。每个区域可操作两个或更多个TC以实现冗余。区域连接到将每个区域连接到至少一个其他区域的全球网络。云提供商网络可通过边缘位置和区域性边缘高速缓存服务器(存在点或PoP)从位于这些区域外部但与这些区域联网的存在点递送内容。计算硬件的这种划分和地理分布使得云提供商网络能够在全球规模上以高度的容错性和稳定性为客户提供低延迟的资源访问。

云提供商网络可实现各种计算资源或服务,所述各种计算资源或服务可包括虚拟计算服务、一个或多个数据处理服务(例如,映射缩减、数据流和/或其他大规模数据处理技术)、数据存储服务(例如,对象存储服务、基于块的存储服务、或数据仓库存储服务)和/或任何其他类型的基于网络的服务(其可包括未示出的各种其他类型的存储、处理、分析、通信、事件处理、可视化和安全服务)。支持此类服务的操作所需的资源(例如,计算资源和存储资源)可在与云提供商相关联的账户中预配,这与云提供商网络的用户请求的资源相反,云提供商网络的用户请求的资源可在用户账户中预配。

在不同的实施方案中,可在提供商网络的一个或多个数据中心处实现各种网络可访问服务。网络可访问计算服务可包括弹性计算云服务(在各种实施方式中称为弹性计算服务、虚拟机服务、计算云服务、计算引擎或云计算服务)。这种服务可提供具有不同计算和/或存储器资源的虚拟计算实例(也称为虚拟机,或简称为“实例”),所述虚拟计算实例由计算虚拟化服务(在各种实施方式中称为弹性计算服务、虚拟机服务、计算云服务、计算引擎或云计算服务)来管理。在一个实施方案中,虚拟计算实例中的每一个可对应于若干实例类型或系列中的一种。实例类型的特征在于其硬件类型、计算资源(例如,中央处理单元[CPU]或CPU内核的数量、类型和配置)、存储器资源(例如,本地存储器的容量、类型和配置)、存储资源(例如,本地可访问存储装置的容量、类型和配置)、网络资源(例如,其网络接口和/或网络能力的特性)、和/或其他合适的描述性特性(诸如具有基线性能保证和在所述基线之上周期性突发的能力的“可突发”实例类型,或者被分派并保证有固定资源量的非可突发或专用实例类型)。每种实例类型可具有特定的处理、本地存储、内存和联网资源比率,并且不同的实例系列也可具有不同类型的这些资源。在给定实例类型内可使用多种大小的这些资源配置。使用实例类型选择功能,可例如(至少部分地)基于来自客户的输入为客户选择实例类型。例如,客户可从一组预定义实例类型中选择实例类型。又如,客户可指定实例类型的期望资源和/或实例将运行的工作负载的要求,并且实例类型选择功能可基于这种规范来选择实例类型。可至少部分地基于诸如收集的网络性能度量、不同可用主机处的资源利用水平等等因素来为所请求的实例类型选择合适的主机。

提供商网络的计算服务还可包括容器协调和管理服务(在各种实施方式中称为容器服务、云容器服务、容器引擎或容器云服务)。容器表示软件应用的逻辑封装,所述逻辑封装将应用从在其中执行应用的计算环境中抽象出来。例如,软件应用的容器化版本包括软件代码和代码所使用的任何依赖关系,使得应用可在托管合适容器引擎(例如,

在各种实施方案中,云提供商网络的流量和操作可广泛地细分为两种类别:在逻辑控制平面上承载的控制平面操作和在逻辑数据平面上承载的数据平面操作。数据平面表示用户数据通过分布式计算系统的移动,而控制平面表示控制信号通过分布式计算系统的移动。控制平面通常包括分布在一个或多个控制服务器上并由所述一个或多个控制服务器实现的一个或多个控制平面组件。控制平面流量通常包括管理操作,诸如系统配置和管理(例如,资源放置、硬件容量管理、诊断监控、系统状态信息)。数据平面包括在云提供商网络上实现的客户资源(例如,计算实例、容器、块存储卷、数据库、文件存储)。数据平面流量通常包括非管理操作,诸如传送去往和来自客户资源的客户数据。某些控制平面组件(例如,第一层控制平面组件,诸如用于虚拟化计算服务的控制平面)通常在与数据平面服务器分开的一组服务器上实现,而其他控制平面组件(例如,第二层控制平面组件诸如分析服务)可与数据平面共享虚拟化服务器,并且控制平面流量和数据平面流量可通过单独/不同的网络发送。

具有用于虚拟路由器的卸载资源的示例性系统环境

图1示出根据至少一些实施方案的其中可针对在隔离网络之间流动的流量实现可扩展虚拟路由器的示例性系统环境。如图所示,在所描绘的实施方案中,系统100包括使用多层分组处理服务(PPS)的资源设立的可扩展虚拟路由器(VR)实例102。VR实例102可用于实现多个隔离网络140A至140D之间的连接性。在所描绘的实施方案中,PPS可例如包括管理或控制平面190以及包括快速路径节点(FN)114和异常路径节点(EN)115的数据平面。在一些实施方案中,FN和EN可统称为转发节点111或转发平面节点。在所描绘的实施方案中,控制平面可负责配置VR实例和相关联的路由/转发元数据108,而数据平面资源可用于生成和实现动作以路由源自(并定向到)隔离网络140的分组。在各种实施方案中,可应提供商网络的客户端的请求而设立多个VR实例。在一些情况下,单个客户端可配置若干VR实例,例如用于处理隔离网络的不同集之间的流量。在一些实施方案中,一些VR可被配置为处于单租户模式(例如,以处理单个客户端的应用数据),而其他VR可被配置为处于多租户模式(以处理若干不同客户端的应用数据)。在至少一个实施方案中,要用于给定虚拟路由器的租用模式可由代表其配置VR的客户端来指示。

在所描绘的实施方案中,多个不同类型的隔离网络140之间的连接性可使用VR实例102来提供,例如,响应于从PPS客户端195通过接口170向PPS控制平面190提交的编程请求。在所描绘的实施方案中,例如,隔离网络140A可包括提供商网络自己的数据中心外部的数据中心或驻地处的资源集,所述资源集可使用VPN(虚拟私有网络)隧道或利用公共互联网的部分的连接链接到提供商网络。在所描绘的实施方案中,隔离网络140B还可包括提供商网络外部的驻地处的资源,所述资源通过专用物理链路(其可称为“直接连接”链路)连接到提供商网络。在所描绘的示例性场景中,隔离网络140C和140D可包括使用位于提供商网络的数据中心处的资源来设立的相应隔离虚拟网络(IVN)。隔离虚拟网络可包括分配给提供商网络的给定客户端的联网资源(例如包括计算实例诸如虚拟机)的集合,所述联网资源在逻辑上与分配用于其他隔离虚拟网络中的其他客户端的资源隔离(并且默认情况下不能从所述资源访问)。代表其建立IVN的客户端可被授予关于IVN的资源的网络配置的大量灵活性—例如,虚拟机的私有IP地址可由客户端在不必考虑其他IVN内的其他资源可能已经被指派相同IP地址的可能性的情况下选择,客户端选择的子网可在IVN内建立,安全规则可由客户端针对关于IVN的传入和传出流量设立等等。在所描绘的实施方案中,类似的灵活性也可适用于VPN连接的隔离网络诸如140A处的配置设置,和/或通过专用链路连接到提供商网络的隔离网络140B处的配置设置。

根据代表其配置VR实例102的客户端的要求,除了转发/路由分组的基线或主要任务之外,还可针对隔离网络140的各个对(或所有隔离网络)之间的流量执行一种或多种类型的辅助任务。例如,如果客户端指示要针对在给定隔离网络140对之间流动的分组实现使用BGP或类似协议的动态路由,则可能必须处理BGP消息,BGP处理的结果被插入到一个或多个路由表109上。类似地,多播应用可能需要IGMP消息的处理,一些分组流可能需要IPSec(互联网协议安全)或其他安全相关处理等等。在所描绘的实施方案中,为了在不增加转发节点111的主要工作负载的情况下促进此类辅助任务,可例如通过PPS控制平面190为VR实例102配置卸载资源160的集。在各种实施方案中,给定隔离网络对之间的流量(或给定分组流)所需的辅助任务的特定类别(或多个特定类别)可基于由PPS客户端195提供的输入来确定。在不同的实施方案中,示例性辅助任务类别除其他之外可包括路由配置管理、分组内容变换(例如,使用密码协议)、性能监控、可用性监控等。在各种实施方案中,在已经预配用于所需类别的任务的一个或多个辅助任务卸载资源160之后,可在转发节点111中的至少一些与辅助任务卸载资源之间建立连接性。在至少一些实施方案中,在VR实例102处接收的分组中的一些可触发对卸载资源的请求—例如,如果在VR处接收到BGP消息,则可将BGP消息传输到BGP处理卸载资源。在各种实施方案中,可在卸载资源160处执行所需任务,并且可将结果(如果有将由转发节点消耗的任何结果)传输到转发节点111。在各种实施方案中,此类结果然后可用于将至少一些分组从一个隔离网络140转发到另一隔离网络—例如,作为BGP卸载任务的结果确定的分组流的分组的优选下一跳可用于路由所述流的分组。

在至少一些实施方案中,PPS客户端195可例如使用PPS控制平面190的编程接口170来提供VTH实例的路由/转发元数据108的至少一部分,所述至少一部分用于生成最终用于在隔离网络140之间转发网络分组的动作。在所描绘的实施方案中,路由/转发元数据108可包括由客户端指示的多个路由表109和/或基于策略的路由规则110的条目。在所描绘的实施方案中,给定隔离网络140可例如使用第一类型的编程接口(用于“关联”动词或操作的接口)以编程方式与特定路由表109相关联;这种相关联的路由表109可用于定向来自隔离网络的出站分组的至少一个子集。在另一类型的编程动作中,其目的地在给定隔离网络140内的路由表条目可以编程方式传播/安装(例如,使用用于将条目传播或安装到特定表中的不同接口)到一个或多个路由表中,从而使得来自其他源的流量能够在隔离网络处被接收。在至少一些实施方案中,目的地在特定隔离网络诸如140C内的条目可被传播到与其他隔离网络诸如140A或140B相关联的一个或多个路由表109,从而使得例如流量能够沿着路径155A和155B从那些其他隔离网络流向140C。类似地,目的地在隔离网络140D内的一个或多个条目可被传播到与隔离网络140C相关联的路由表,从而使得流量能够沿着路径155C从隔离网络140C流向隔离网络140D。在所描绘的实施方案中,对于通过路径155D传送的流量,目的地在隔离网络140D内的条目可被传播到与隔离网络140B相关联的路由表。一般来讲,在各种实施方案中,可通过使用路由表关联和路由表条目传播的适当组合来实现以编程方式附接到VR实例102的给定隔离网络对之间的单向或双向流量的任何期望组合。因此,可在不同的实施方案中支持多种网络流配置,如下文进一步详细讨论。

在所描绘的实施方案中,在已经设立路由元数据108和辅助任务卸载资源160之后,可在VR实例的FN 114(例如,包括一个或多个动作实现节点或AIN)处从不同隔离网络140内的各种资源接受包含应用数据的网络分组。在各种实施方案中,当在AIN处接收到分组时,所述AIN可尝试在其动作高速缓存中(例如,使用基于分组流的各种特性的关键字,包括例如源和目的地IP地址和端口的组合)寻找匹配动作。如果在高速缓存中没有找到动作,则AIN可咨询EN 115(例如,包括VR实例的决策节点(DN))。在一些实施方案中,DN可在其自己的高速缓存中寻找适合于接收到的分组的先前生成的动作。如果找到预先生成的动作,则可将其提供给AIN以用于高速缓存和实施。在所描绘的实施方案中,如果DN没有找到这种动作,则可例如使用与从其接收到分组的源隔离网络相关联的路由表109中的一个来生成新的动作。在各种实施方案中,可生成动作的可执行版本(例如,呈字节代码的形式,所述字节代码使用针对实现网络处理操作优化的基于寄存器的虚拟机的指令来表示),任选地将其在决策层处高速缓存并且提供给AIN,在AIN处,动作的可执行版本可被实现用于当前分组(并且被高速缓存并重新用于相同流的后续分组)。

在各种实施方案中,针对其生成动作的给定流可基于在分组处理服务(PPS)处接收的分组的以下属性或元素中的一个或全部来表征(或区别于其他流):用于将分组发送到PPS的网络协议、源网络地址、源端口、目的地网络地址、目的地端口和/或应用标识符(例如,针对隔离网络与PPS之间的通信设立的特定虚拟网络接口的标识符)。在一些实施方案中,传输分组所沿的方向(例如,朝向PPS,或远离PPS)也可被包括作为流的标识元素。在不同的实施方案中,根据多个不同联网协议格式化的分组可由VR实例102的转发节点111处理和/或在隔离网络140之间传送—例如,所述联网协议包括互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、互联网控制消息协议(ICMP)、不属于或不依赖于TCP/IP协议程序组的协议等。在所描绘的实施方案中,根据多种附加协议诸如BGP、IGMP、IPSec、TWAMP(双向主动测量协议)等格式化的消息可至少部分地在辅助任务卸载资源160处进行处理。

示例性分组处理应用和辅助任务

图2示出根据至少一些实施方案的在虚拟路由器的帮助下实现的分组处理应用的示例性类别以及可针对所述类别中的一些执行的辅助任务。如图所示,在所描绘的实施方案中,应用类别200可例如包括可扩展跨IVN(隔离虚拟网络)通道206、可扩展VPN(虚拟私有网络)连接性208、可扩展专用链路连接性210、多播212、地址代换216、网络流量安全/审计应用218、使用提供商网络的私有主干网络的可扩展WAN(广域网)等。在各种实施方案中,可支持其他类型的分组处理应用。一般来讲,类似于图1的虚拟路由器实例102的虚拟路由器可被配置来(例如,在辅助任务卸载资源的帮助下)实现任何期望类型的分组处理或变换(或不同类型的分组处理或变换的组合),其中虚拟路由器节点和/或辅助资源可根据需要以透明且可扩展的方式动态地指派以支持大范围的流量速率。

在一些实施方案中,如先前所述,虚拟路由器(VR)可在其中可建立隔离虚拟网络的提供商网络处实现。在此类实施方案中,VR可充当两个或更多个不同IVN的私有地址空间之间的中介或通道,从而实际上建立可扩展且可扩展的跨IVN通道206。在至少一些实施方案中,跨IVN通道可能不需要辅助任务。在所描绘的实施方案中,对于可扩展VPN连接性208,可能需要辅助任务诸如BGP处理、加密等,并且此类辅助任务可使用与VR相关联的卸载资源来实现。例如,可扩展VPN连接性可在提供商网络外部的一个或多个客户端拥有的驻地之间建立,并且此类驻地可包括具有BGP处理引擎的路由器或其他装置。在一些实施方案中,可在此类外部处理引擎与在上文所介绍种类的辅助任务卸载资源处设立的BGP处理引擎之间设立BGP会话。

在一些实施方案中,提供商网络可通过称为“直接连接”链路的专用物理链路来支持与外部网络的可扩展连接性210,并且此类外部网络之间(以及此类外部网络与IVN或VPN连接的外部网络之间)的流量可使用虚拟路由器进行管理。在至少一些实施方案中,用于此类场景的辅助任务还可包括BGP处理,例如包括在外部驻地处的BGP处理引擎与卸载资源处的BGP处理引擎之间交换的BGP会话消息的处理。

在一些实施方案中,多播212是可使用VR实现的联网技术,其中从源发送的单个分组的内容(例如,正文)被复制到指定多播组的多个目的地。在一些实施方案中,可通过IGMP消息周期性地获得和/或验证多播组的成员信息;因此,包括IGMP消息处理的辅助任务可使用用于多播应用的卸载资源来执行。

顾名思义,地址代换216可涉及以一致的方式针对特定流的分组替换源地址和端口。在一些实施方案中,例如当两个或更多个隔离网络的私有地址范围之间存在重叠时,此类地址代换技术可能是有用的,并且可采用VR作为负责此类代换的中介。在所描绘的实施方案中,地址代换可能不需要辅助任务。

提供商网络的一些客户端可能希望针对通过VR在各个端点集之间流动的流量的至少一个子集实现网络流量安全或审计应用218。例如,流量的子集可通过客户端指派的标记或标签来指示,并且由客户端以基于策略的路由规则的形式指定。在所描绘的实施方案中,对于此类应用,辅助任务可包括与IPSec或某一其他客户端选择的安全协议相关联的处理、审计日志生成和管理任务等等。在一些实施方案中,对于可扩展广域网应用220,辅助任务可包括BGP处理、涉及提供商网络的TWAMP处理或定制延迟测量协议的性能测量等。

需注意,至少在一些实施方案中,单个VR可组合图2所指示的分组处理功能中的若干(和/或其他分组处理技术)。例如,在一些实施方案中,单个VR可同时实现(或与其他VR协作以同时实现)可扩展跨IVN通道、可扩展VPN连接、可扩展基于专用链路的连接等等。在不同的实施方案中,可使用VR来支持其他类别的分组处理,而在一些实施方案中,可能不支持图2所指示的应用类型中的至少一些。

虚拟路由器节点与卸载资源之间的示例性交互

图3示出根据至少一些实施方案的虚拟路由器的异常路径节点、虚拟路由器的快速路径节点与和虚拟路由器相关联的辅助任务卸载资源之间的示例性交互的概述。在所描绘的实施方案中,已经为一个或多个PPS客户端310指派虚拟路由器327以用于处理客户端流量源端点364与客户端流量目的地端点372之间的流量。在所描绘的实施方案中,PPS客户端310可例如通过基于web的控制台、命令行工具、API、图形用户接口等向PPS控制平面314提交应用建立/配置请求343。请求343可指示要在VR 327的帮助下执行的分组处理的类型(例如,要针对分组转发/路由实现的策略)、期望性能或要满足的其他目标等。在所描绘的实施方案中,基于客户端的要求和/或在PPS的各种资源处的可用性和当前资源消耗水平,PPS控制平面314可标识或配置用于VR 327的异常路径节点325(EN,也称为决策节点)的集和快速路径节点368(FN,也称为动作实现节点)的集。此外,在至少一些实施方案中,在所描绘的实施方案中,还可配置用于执行与端点364与端点372之间的流量相关联的辅助任务(例如,图2所指示的种类的任务)的资源,诸如辅助任务卸载器373A和373B。在各种实施方案中,可在辅助任务卸载器373与虚拟路由器327的至少一些节点之间建立连接性。在一些实施方案中,可仅在FN 368与辅助任务卸载器之间建立连接性。在其他实施方案中,也可或代替地在EN 325与辅助任务卸载器之间建立连接性。

在所描绘的实施方案中,可将用于作出分组处理决策的配置元数据305从PPS控制平面314传输到一个或多个EN 325,所述配置元数据诸如由客户端提供的转发信息库(FIB)条目、由客户端指示的基于策略的(PBR)路由规则。在给定VR 327包括多个EN的一些实施方案中,可向所有EN提供与VR 327被指派给的一个或多个应用有关的所有元数据。在其他实施方案中,元数据的相应子集可提供给个别EN。

当在FN 368处从应用的流量源端点364接收到分组时,可尝试在动作高速缓存397中找到对应动作。在所描绘的实施方案中,如果例如通过使用基于分组标头值、客户端标识符等等的某种组合的关键字的查找找到这种动作,则可实现所述动作,从而导致将接收到的分组的至少一些内容传输到一个或多个目的地端点372。在各种实施方案中,与较慢高速缓存未命中情况(或必须执行一些类型的辅助任务的情况)相比,在实践中可能更频繁地遇到发生高速缓存命中并且不直接涉及EN的这种“快速路径”308处理。需注意,至少对于一些应用,要实现相同逻辑动作的分组的总数可能相当大—例如,可能使用相同的持久TCP连接从一个源端点向目的地端点发送数百或数千个分组。

在所描绘的实施方案中,在分组的到达导致FN 368处的高速缓存未命中的场景中,可由AIN发起与EN 325的请求-响应交互307。动作查询(其在一些实施方式中可包括整个接收到的分组,并且在其他实施方式中可包括分组的表示或一部分,诸如其标头值的某种组合)可从FN 368提交到EN 325。在所描绘的实施方案中,EN 325可例如检查动作查询的内容和配置元数据305(包括PBR规则337),并且确定要针对导致高速缓存未命中的分组和相关分组(例如,属于相同流的分组,其中流至少部分地由分组标头值的某种组合定义)实现的动作。在至少一些实施方案中,EN 325可包括动作代码生成器326,所述动作代码生成器产生动作的可执行版本,所述动作的可执行版本(a)可在FN处快速执行并且(b)不一定需要在FN处被解释或“理解”。在至少一个实施方案中,生成的动作可包括基于内核内寄存器的虚拟机指令集的一定数量的指令,所述一定数量的指令可用于执行类似于扩展伯克利分组过滤器(eBPF)接口的那些的操作。在至少一些实施方案中,动作可传递回FN以用于高速缓存并且用于关于导致高速缓存未命中的分组的实现。

在至少一些实施方案中,这种类型的高速缓存未命中导致的请求响应路径还可用于辅助任务。例如,配置元数据305可向EN指示,对于某些类型的分组(诸如在FN处从客户端驻地处的BGP处理引擎接收的BGP分组),要执行的动作是将分组发送到辅助任务卸载器(例如,使用如下所讨论的封装技术)。在一些实施方式中,FN可通过实现在EN处生成并缓存在高速缓存397中的动作来将此类分组发送到辅助任务卸载器373A。在一些实施方案中,当在FN处从辅助任务卸载器373A接收到包括这种辅助任务的结果308的响应分组时,结果308可被发送到EN,在EN处,结果可用于生成或修改要用于在端点364与端点372之间转发一个或多个后续分组的动作。在一个实施方案中,代替使用FN作为中介,EN可被配置来直接与辅助任务卸载器373B通信。在这种实施方案中,辅助任务的结果可由EN直接接收并且还用于生成/修改要用于在端点364与端点372之间转发客户端流量的动作。需注意,在至少一些实施方案中,触发辅助任务的网络分组或消息中的至少一些可被定向到VR 327本身的节点(例如,具有被指派给VR节点的目的地地址),而不是被定向到端点372的客户端应用分组。

在各种实施方案中,在提交动作查询的FN 368处,生成的动作可存储在高速缓存397中,并且可根据需要重新用于除了导致动作的标识和生成的第一分组之外的其他分组。在一个实施方案中,可使用多种逐出策略中的任一种来将条目从高速缓存397移除—例如,如果在某个阈值时间间隔内尚未接收到需要给定动作A1的实现的分组,则可将A1从高速缓存移除。在至少一个实施方案中,高速缓存中的个别条目可具有相关联的使用定时记录,包括例如对应于针对某个分组执行动作的最后一次的时间戳。在这种实施方案中,如果/当条目的使用定时记录指示已经满足逐出标准时(例如,当在某个阈值秒数/分钟数内尚未执行动作时),则可将所述条目从高速缓存移除。在一些实施方案中,可关于配置元数据305的当前状态周期性地重新校验高速缓存的动作—例如,每隔T秒(其中T是可配置参数),FN可向EN提交指示高速缓存的动作的重新验证查询,并且EN可验证高速缓存的动作尚未因一些新更新的配置元数据条目而无效。需注意,在各种实施方案中,只要最终针对给定接收的分组执行的动作是正确的,从功能的角度来看,所述动作是在FN处高速缓存还是必须在EN处生成可能并不重要。因此,在此类实施方案中,即使动作偶尔被不必要地或由于过度悲观的逐出决定而从高速缓存397逐出,对分组处理应用的总体影响可能是小的(只要不必要的逐出不是非常频繁即可)。

卸载资源的示例性独立缩放

将用于辅助任务的资源与用于基线转发任务的资源分开的益处之一是,可针对这两种类型的任务独立处理工作负载的变化。图4示出根据至少一些实施方案的其中用于虚拟路由器的资源可独立于用于与通过虚拟路由器路由流量相关联的辅助任务的资源自动缩放的示例性场景。在所描绘的实施方案中,一组VR缩放管理器477可被指派负责收集和分析VR资源诸如FN和EN的工作负载和资源利用水平以及响应于所收集的度量的趋势或变化而根据需要发起VR资源的获取或释放。类似地,一组辅助任务卸载器缩放管理器478可被指派负责收集和分析与虚拟路由器相关联的一组辅助任务卸载器(ATO)处的工作负载和资源利用水平以及独立于由VR缩放管理器发起的改变发起ATO的资源获取或释放。

在所描绘的示例性场景中,用于给定VR的初始VR资源集410A可例如包括四个快速路径节点(FN 402A、402B、402C和402D)和异常路径节点对(EN 403A和403B),每个节点包括例如在相应计算装置处运行的一个或多个进程或线程。初始辅助任务卸载资源集450A可包括两个ATO,即491A和491B,其中的每一者还可包括在相应计算装置处运行的一个或多个进程或线程。在所描绘的实施方案中,随着应用数据分组到达VR的速率的改变,VR缩放管理器可独立于ATO处的工作负载改变或配置改变来扩展或收缩资源集410A。如果应用数据流量到达速率增加到超过某个阈值(例如,导致FN和EN处的CPU和/或存储器利用水平的对应增加),并且在所选择时间内保持高于阈值,则可实例化两个新的FN(402E和402F)和新的EN403C并将其添加到VR,从而导致扩大的VR资源集410B。替代地,如果应用数据流量降低到低于阈值并且在一段时间内保持低于阈值,则可停止使用初始VR资源集410A的FN(402D)中的一个和EN(403B)中的一个,从而导致缩减或缩小的VR资源集410C。

在所描绘的实施方案中,如果从初始ATO资源集收集的资源利用水平或其他度量满足扩大标准,则ATO缩放管理器478可决定向初始ATO资源集450A添加更多资源(例如,ATO491C和491D),从而导致扩大的ATO资源集450B。替代地,如果从初始ATO资源集450A收集的度量满足不同的标准,则可停用ATO诸如491B,从而导致缩小的ATO资源集450C。在各种实施方案中,对ATO资源集配置的改变可相对于VR资源集的改变异步地进行。

示例性基于单元的虚拟路由器架构

在一些实施方案中,用于虚拟路由器的转发动作的资源可被布置在称为单元的自治组中。图5示出根据至少一些实施方案的用于虚拟路由器的独立管理的分组处理单元的示例性使用。如图所示,在所描绘的实施方案中,应客户端请求可在其处配置虚拟路由器的分组处理服务(PPS)502可包括动作实现层541、决策层542和单元管理层543,以及包括API处理程序、元数据存储库/储存库等的服务级控制平面资源571的集。层541、542和543中的个别层可包括多个节点,诸如层541处的快速路径节点(FN)、层542处的异常路径节点(EN)和层543处的管理节点(AN)。在各种实施方案中,层541、542和543的资源可被组织成称为隔离分组处理单元(IPPC)527的组,其中给定IPPC 527包括一定数量的FN、一定数量的EN和一定数量的AN。例如,在所描绘的实施方案中,IPPC 527A可包括FN 520A、520B和520C、EN522A和522B以及AN 525A和525B,而IPPC 527B可包括FN 520L、520M和520N、EN 522C和522D以及AN 525J和525K。在不同的实施方案中,可在一个或多个计算装置处使用软件和硬件的某种组合来实现个别节点诸如FN、EN和/或AN—例如,在一些实施方案中,给定FN、EN或AN可包括在由提供商网络的虚拟化计算服务管理的主机处运行的虚拟机的一个或多个线程或进程,而在其他实施方案中,可使用非虚拟化服务器来实现FN、EN和/或AN。

分组处理服务502的资源可用作基础设施或框架,所述基础设施或框架可用于使用虚拟路由器来构建多种联网应用,诸如在图2的上下文中所讨论的应用的种类。在一些实施方案中,个别IPPC 527可被指派来实现这种应用的一个或多个实例的逻辑,其中与所述应用相关联的流量(至少在正常操作条件下)被处理,而不穿过IPPC边界。例如,在所描绘的实施方案中,IPPC 527A可能已经被指派给VR的实例(VR-A),以用于至少在隔离网络510A与隔离网络510B之间传输分组,而IPPC 527B可能已经被指派给另一VR实例(VR-B),以用于至少在隔离网络510J与隔离网络510K之间传输分组。隔离网络510中的个别隔离网络可具有相关联的私有IP(互联网协议)地址范围,使得指派给给定隔离网络510内的资源的地址对隔离网络外部的资源不可见,并且使得至少默认情况下(例如,在指派实现虚拟路由应用的IPPC之前),不同隔离网络内的资源之间的路径可能不一定可用。

在各种实施方案中,可响应于从PPS 502的客户接收到的编程请求而设立VR的实例。此类请求可例如在PPS控制平面571的API处理程序处接收。例如,在所描绘的实施方案中,响应于客户端的实现隔离网络510A与510B之间的连接性的一个或多个请求,可指派使用IPPC 227A构建的VR-A来在两个隔离网络之间转发分组。类似地,响应于另一客户端的实现隔离网络510J、510K和510L之间的多播连接性的请求(或同一客户端的请求),可指派IPPC 527B。在至少一些实施方案中,虚拟网络接口的集合可以编程方式被配置来使得流量能够在隔离网络中的端点(TE 512,诸如512D、512E、512J、512K、512P、512Q、512R、512S、512V和512W)与指派给那些隔离网络的单元的FN之间流动。在一些实施方案中,代表其配置联网应用的客户端可提供决策元数据(例如,层3元数据523,诸如转发信息库条目、路由表条目等)和/或策略,所述决策元数据和/或策略可用于确定要通过PPS的控制平面编程接口执行的动作。在所描绘的实施方案中,从客户端接收的元数据可例如从PPS API处理程序通过AN 525或直接传播到适当的IPPC 527的决策层节点。在至少一些实施方案中,最初由客户端提供的元数据可例如通过将高级信息转换成更具体的路由表条目来变换,所述路由表条目考虑要使用的虚拟网络接口的标识符、位置相关信息、关于在其中配置各种FN的可用性区或可用性容器的信息等等,并且变换的版本可存储在不同的EN 522处。

在所描绘的实施方案中,可在特定FN诸如520C处接收来自源端点(诸如隔离网络510A的TE 512K)的给定分组。在一些实施方案中,可基于例如混洗分片(shuffle-sharding)算法来选择要使用的特定FN,使得来自特定端点的特定流的分组被定向到单元的FN的子集中的一个。FN中的个别FN可包括或可访问相应动作高速缓存,诸如动作高速缓存521A。动作高速缓存可通过所接收的分组的属性的组合来索引,诸如发送客户端的标识符、源和目的地IP地址、源和目的地端口等等的组合。在一些实施方案中,动作可例如使用字节代码以可执行的形式存储在高速缓存中,所述字节代码使用针对实现网络处理操作优化的基于寄存器的虚拟机的指令来表示。FN 520C可尝试在其高速缓存中查找针对所接收的分组的动作的表示。在所描绘的实施方案中,如果找到这种动作,则可使用“快速路径”566来处理分组。例如,动作的可执行版本可在FN 520C处实现,从而导致在朝向一个或多个目的地端点(诸如隔离网络510B中的TE 512E)的路径上传输分组的内容。路径可包括零个或更多个附加FN—例如,如使用箭头561和562所示,分组的内容可在所描绘的快速分组路径中通过FN 520B传输到TE 512E。例如,FN 520B可具有被配置来访问TE 512E的虚拟网络接口,而FN 520C可不具有这种配置的虚拟网络接口,从而导致通过FN 520B传输分组内容。需注意,至少在一些实施方案中,可通过动作来修改分组的一个或多个标头值(例如,在重叠私有地址范围恰好在源和目的地隔离网络处使用的场景中)—即,最终在目的地端点512E处接收的分组可在一个或多个标头值上与从源端点512K提交的分组不同。

如果FN的本地动作高速缓存不包含针对所接收的分组的动作,则可能随后发生稍长的工作流。因此,例如,如果在FN 520M处从TE 512P接收到分组(如通过箭头567所示),并且当尝试查找所接收的分组时在FN 520M的本地高速缓存中发生高速缓存未命中,则FN220M可向其IPPC 527B中的所选择EN(EN 522D)发送动作查询,如箭头568所指示。在所描绘的示例中,EN 522D可例如基于指示要执行多播操作的客户端提供的策略并且基于由客户端提供的转发/路由元数据来确定分组的内容将传输到分别为隔离网络510K和510L中的端点对512R和512V。完成这种多播操作的动作的表示可发送回FN 520M,存储在其本地高速缓存中,并且在FN 520M处执行,从而导致箭头569和570所示的传输。在此示例中,FN 220M可将出站分组直接发送到目的地TE 512R和512V,并且可不需要使用包括IPPC 527B的其他FN的路径。

在所描绘的实施方案中,根据使用VR诸如VR-A或VR-B实现的分组处理应用的类型,除了基线转发动作之外,还可执行辅助任务。例如,对于多播,可在VR的FN处(例如,从源隔离网络或目的地隔离网络中的IGMP处理引擎)接收根据IGMP格式化的包括多播域配置信息的消息,并且IGMP消息的处理可构成此类辅助任务的一种类别。在各种实施方案中,上文所介绍种类的一个或多个辅助任务卸载器577可与给定VR诸如VR-B相关联。在所描绘的实施方案中,一个或多个辅助任务卸载器577可在针对处理此类辅助任务专门设立的另一隔离网络510Y(例如,虚拟化计算服务的隔离虚拟网络)内实现。

给定IPPC 527在一些实施方案中可称为“隔离”,因为至少在正常操作条件期间,可预期没有数据平面网络流量从所述IPPC流向任何其他IPPC。在至少一个实施方案中,控制平面流量在正常操作条件下也可不跨单元边界流动。作为这种隔离的结果,可获得多个益处:例如,(a)使用一个IPPC实现的一个VR的工作负载的增加可不对在其他单元处用于其他VR的资源产生影响,以及(b)在给定单元内发生故障的极少数情况下,预期所述故障可不对已经向其指派了其他VR的应用产生任何影响。软件更新可一次应用于一个IPPC的节点,因此潜在地由此类更新引入的任何错误可能不会影响使用其他单元的应用。在一些实施方案中,虽然至少一个IPPC可被指派给给定VR实例,但给定IPPC 527可潜在地在代表多个客户配置的多个VR的多租户模式中采用。

在至少一些实施方案中,混洗分片算法可用于将IPPC 527的节点(例如,FN)的子集指派给一个或多个源端点或目的地端点的给定集。根据这种算法,如果IPPC包括N个FN,则来自给定源端点E1的分组可(例如,基于分组标头值的散列)被定向到K个FN(K

用于辅助任务卸载器的示例性基于单元的架构

在一些实施方案中,为虚拟路由器配置的辅助任务卸载器也可被组织在单元中,原因类似于上文关于针对虚拟路由器节点使用基于单元的架构描述的那些。图6示出根据至少一些实施方案的用于虚拟路由器的独立管理的辅助任务卸载单元的示例性使用。在所描绘的实施方案中,提供商网络602可包括虚拟化计算服务(VCS)605,在所述VCS处,可代表各种客户或客户端建立隔离虚拟网络和/或可建立隔离虚拟网络以用于实现提供商网络服务的各种功能。在图6所描绘的实施方案中,IVN 610A可包括用于指派给虚拟路由器VR-A的分组处理单元的资源,而IVN 810B可包括用于与VR-A相关联的辅助任务卸载单元(ATOC)的资源。在至少一些实施方案中,IVN资源(例如包括计算实例或虚拟机)可在逻辑上与在其他隔离虚拟网络中分配的资源隔离(并且默认情况下不能从所述资源访问)。在所描绘的实施方案中,分组处理服务本身可被认为是VCS 605的客户端或客户—即,可通过利用VCS 605所支持的功能性来构建分组处理服务。如先前所提及,代表其建立IVN的客户端可被授予关于IVN资源的网络配置的实质性灵活性—例如,计算实例的私有IP地址可由客户端在不必考虑其他IVN内的其他资源可能已经被指派相同的IP地址的可能性的情况下选择,客户端选择的子网可在IVN内建立,安全规则可由客户端针对关于IVN的传入和传出流量设立,虚拟网络接口可应客户端的请求而设立以实现指定资源组之间的连接性等等。

在至少一些实施方案中,VCS 605的资源诸如在其上运行各种计算实例的主机可分布在多个可用性容器650诸如650A和650B之间。可用性容器(也可称为可用性区)继而可包括一个或多个不同位置或数据中心中的部分或全部,所述一个或多个不同位置或数据中心以使得给定可用性容器中的资源免受其他可用性容器中的故障影响的方式设计(例如,具有独立的基础设施组件诸如电力相关装备、冷却装备,或物理安全组件)。预期一个可用性容器中的故障可不导致任何其他可用性容器中的故障;因此,给定资源的可用性简档旨在独立于不同可用性容器中的资源的可用性简档。

在所描绘的实施方案中,为VR-A设立的给定IPPC的快速路径节点(FN)625、异常路径节点(EN)627和管理节点(AN)629(在能力上类似于图5所示的那些)都可至少部分地使用VCS 605的相应计算实例(CI)620来实现。如图所示,FN 625A、625B、625P和625Q可在CI620A、620B、620P和620Q处实现。EN 627A和627B可分别在CI 620D和620R处实现,并且AN629A和629B可分别在CI 620L和620S处实现。在一些实施方案中,给定CI 620可在相应物理虚拟化主机处实例化;在其他实施方案中,多个CI可在给定物理主机处设立。在IVN 610A中实现的所示IPPC可包括至少两个数据平面子网640A和640B以及至少两个控制平面子网642A和642B。可在至少两个可用性容器650中的每一个中实现一个数据平面子网和一个控制平面子网—例如,子网640A和642A可在可用性容器650A中配置,而子网640B和642B可在可用性容器650B中配置。在一些实施方案中,控制平面子网642可在相应CI 620处包括一个或多个AN 629,而数据平面子网640可在相应CI 620处包括一个或多个FN 625和一个或多个EN 627。在所描绘的实施方案中,作为使用多个可用性容器的结果,整个IPPC(或使用IPPC的节点的任何给定VR诸如VR-A)受到任何给定故障事件影响的概率可最小化。在各种实施方案中,针对控制平面节点与数据平面节点使用不同的子网可有助于将使用IPPC的VR的至少大部分控制平面流量与VR的数据平面流量分开。

在图6所描绘的示例性场景中,可为VR-A建立或向其指派辅助任务卸载单元(ATOC),所述ATOC包括配置在IVN 610B内的辅助任务卸载器(ATO)691A、691B、691J和691K。在所描绘的实施方案中,ATOC还可使用跨可用性容器650A和650B分布的资源来实现。ATO还可使用计算实例来实现:例如,ATO 691A和691B可各自包括数据平面子网643A中的计算实例690A内的一个或多个进程或线程,而ATO 691J和691K可在数据平面子网643B中的CI690J内实现。在所描绘的实施方案中,可在每个数据平面子网643中设立相应虚拟网络接口(VNI)655,以实现同一可用性容器中的VR-A的FN之间的连接性。因此,VNI 655A可被配置用于VR-A的FN 625A和625B与ATO 691A和691B之间的连接性,而VNI 655B可被配置用于VR-A的FN 625P和625Q与ATO 691J和691K之间的连接性。虚拟网络接口可包括一组联网配置特性或属性(诸如IP地址、子网设置、安全设置等),所述一组联网配置特性或属性可与计算实例动态地关联(“附接到其”)或解除关联(与其“分离”),而不必例如如果和当计算实例从一个物理主机迁移到另一物理主机时在物理网络接口处作出改变。如图6的示例所示,使用分布在用于VR节点的同一可用性容器之间的ATOC可使得辅助任务的处理对于限于任何单独可用性容器内的故障具有弹性。在一些实施方案中,还可设立单独的控制平面资源(图6中未示出)以用于管理辅助任务卸载器。

辅助任务相关消息的封装协议隧道的示例性使用

图7示出根据至少一些实施方案的用于将虚拟路由器的节点与辅助任务卸载器连接的示例性技术。在所描绘的实施方案中,虚拟路由器单元710内的快速路径节点FN 702具有相关联的FN虚拟网络接口703。辅助任务卸载单元(ATOC)710包括与在其处运行ATO791A、791B和791C的一个或多个计算实例相关联的VNI(AVNI)754。

在所描绘的实施方案中,作为例如由在其处实现VR的分组处理服务的控制平面组件发起的辅助任务处理的建立操作的一部分,可建立相应封装协议隧道755(例如,755A、755B和755C),以将根据各种协议诸如BGP、IGMP等格式化的消息从AVNI 754传输到ATO。在一些实施方式中,通用网络虚拟化封装(GENEVE)协议可用于隧道,使得广泛多种标准和/或定制协议的分组能够使用公共隧道方法在FN与ATO之间传输。在所描绘的实施方案中,FN诸如FN 702可例如通过接收与为EN和FN所属的VR选择的ATOC有关的元数据的EN来配置,以使用与用于在隔离虚拟网络(IVN)之间转发应用数据分组的动作类似的可执行动作通过FNVNI 703将需要辅助任务处理的分组发送到AVNI,如标签750所指示。也就是说,在至少一些实施方案中,可使用与用于在为其配置VR的隔离网络中实现FN与端点之间的连接性类似的方法来实现FN与ATO之间的连接性。类似地,在所描绘的实施方案中,作为建立操作的一部分,FN VNI可被设置为来自ATO的出站分组(其可包括辅助任务的结果)的目的地,如标签757所指示。在不同的实施方案中,可采用用于在VR节点与ATO之间建立双向连接性的其他技术。

与卸载辅助任务有关的示例性编程交互

图8和图9示出根据至少一些实施方案的客户端与分组处理服务之间的与虚拟路由器和相关联的辅助任务卸载资源的配置和使用相关的示例性编程交互。在所描绘的实施方案中,一个或多个编程接口877可由分组处理服务(PPS)812实现,在所述PPS处,建立虚拟路由器。此类接口可包括例如一组应用编程接口(API)、图形用户接口、命令行工具、基于web的控制台等。例如,配置相关消息可由PPS的控制平面组件处理。

在所描绘的实施方案中,PPS 812的客户端810可提交创建CreateVirtualRouter请求814以发起配置VR的进程。在一些实施方案中,响应于CreateVR请求,PPS的控制平面组件可提供VRID(虚拟路由器标识符)815,从而指示已经创建所请求的VR(例如,表示VR的元数据已经存储在PPS的储存库中)。

在一些实施方案中,可通过接口877提交PktProcessingAppInfo消息817,从而指示例如要使用虚拟路由器实现的分组处理应用的类型。例如,可在PktProcessingAppInfo消息中指示在图2的上下文中所讨论的应用类型中的一种或多种,和/或可为要使用VR处理的流量指定一个或多个基于策略的路由(PBR)规则。关于应用的信息可保存在PPS处,并且可将AppInfoSaved消息819发送到客户端。在至少一个实施方案中,可分析由客户端提供的关于应用的信息以标识应用可能需要的辅助任务的种类,并且可相应地配置一个或多个辅助任务卸载资源。例如,客户端可指示VR将用于多播,并且可配置包括IGMP消息处理器的辅助任务卸载器。

在一些实施方案中,客户端可提交编程请求(CreateVRAttachment)821以将指定隔离网络(例如,在其处实现PPS 812的提供商网络内的IVN、提供商网络的数据中心外部的VPN连接的网络、或者通过专用物理链路连接到提供商网络的外部网络)或另一VR附接到指定VR,并且作为响应接收附接标识符(AttachmentID)823。在各种实施方案中,给定VH可以编程方式附接到若干不同的隔离网络和/或一个或多个其他VR CreateVRAttachment请求。例如,VR对之间的附接(称为VR对等附接)可用于广域网应用,如下文进一步详细讨论。在一些实施方案中,可提交创建特定路由表和/或将特定路由表与先前为其创建附接的特定隔离网络相关联的请求,使得PPS能够确定哪个特定路由表将用于源自特定隔离网络的流量。

在所描绘的实施方案中,客户端810可提交DescribeVRConfig请求825,以获得指定VR的当前配置(例如,已经创建的不同附接、路由表与隔离网络之间的映射、是否已经配置辅助任务卸载器,以及如果已经配置则辅助任务卸载器的类型等等)。在所描绘的实施方案中,关于指定VR的配置信息可通过一个或多个VRConfigInfo消息827来提供。

在一些实施方案中,客户端可向PPS提交编程请求(ModifyVRConfig)829以改变指定VR的一个或多个操作参数。例如,客户端可为VR所处理的流量的子集指示新的基于策略的路由规则,或者修改现有规则。在所描绘的实施方案中,可实现所请求的配置改变,并且可将ModComplete响应消息831发送到客户端。

在所描绘的实施方案中,客户端810可提交GetVRMetrics请求833以获得关于在指定VR处执行的操作的度量。此类度量可包括例如在一定时间间隔期间处理(例如,按照附接到VR的隔离网络)的应用数据分组的数量、与在一定时间间隔期间处理的辅助任务有关的消息的数量等等。为VR收集的度量可通过一个或多个VRMetrics消息835来指示。

如图9所示,根据一些实施方案,客户端810可在定向到PPS 812的CustomAuxiliaryTaskDescriptor消息914中提交关于由指定VR处理的流量中的至少一些要执行的定制辅助任务的描述符。在不同的实施方案中,这种任务描述符可例如包括用于任务的源代码或可执行代码、要用于标识要为其实现任务的分组子集的过滤器(例如,基于客户端定义的分组标记或标签、基于源/目的地虚拟网络接口、基于源/目的地隔离网络等)、如何存储或使用定制辅助任务的结果等等。在一些实施方案中,PPS可进行一个或多个验证/证实测试,以确保所请求的定制任务可在上文所介绍种类的卸载器处实现。在所描绘的实施方案中,如果测试成功,则可将TaskDescriptorSaved消息915发送到客户端。

在一个实施方案中,客户端可能希望控制辅助任务卸载器的租用模式(例如,辅助任务是仅针对单个客户端或VR在给定装置或主机处执行,还是针对多个客户端/VR执行)。在这种实施方案中,可通过编程接口877提交指示此类租用偏好的SetAuxiliaryTaskResourceT enancy请求917。在已经接收偏好并存储在PPS 812处之后,可将TenancyInfoSaved响应消息919发送到客户端。

根据一些实施方案,客户端可能希望控制或指定要为VR的辅助任务收集的度量的种类(例如,在辅助任务卸载器处进行处理的BGP消息的数量/速率、处理的IGMP消息的数量/速率、用于保存与有状态辅助任务相关联的状态信息的存储器或存储装置的量等)。在此类实施方案中,客户端可提交指示客户端的监控相关偏好的AuxiliaryTaskMonitoringRequirements消息921,并且在保存偏好之后,可将MonitoringRequirementsSaved消息923发送到客户端。

在所描绘的实施方案中,客户端810可提交GetAuxiliaryTaskMetrics请求925以获得与使用VR和卸载资源执行的辅助任务有关的度量。可通过一个或多个AuxiliaryTaskMetricsSet消息927向客户端提供在指定时间段内(或在由PPS选择的时间段内)收集的一组度量。

根据一些实施方案,客户端810可向PPS提交ModifyAuxiliaryTasks请求929以改变正在针对由客户端的VR处理的流量执行的一种或多种类型的辅助任务的一个或多个特性,或者禁用一种或多种类型的辅助任务。例如,客户端可改变用于在VR处接收的分组的指定子集的定制逻辑,或者指示要针对分组的某个子集执行的附加辅助任务。作为响应,PPS可将所请求的改变传播到为VR配置的卸载器,并且将AuxiliaryTasksModified消息931发送到客户端。

需注意,在一些实施方案中,可支持与图9所示不同的用于配置和使用具有辅助任务卸载器的VR的编程交互的组合。例如,在一个实施方案中,可响应于单个请求而不是使用单独请求来执行所讨论的操作中的若干操作:例如,可使用组合请求来创建VR并将隔离网络集附接到所述VR,可提交对针对通过附接接收的流量的附接辅助任务的组合请求等等。

用于从虚拟路由器卸载工作负载的方法

图10是示出根据至少一些实施方案的可被执行以从虚拟路由器卸载一些类型的任务的操作的各方面的流程图。如元素1001所示,在所描绘的实施方案中,可例如基于通过提供商网络的分组处理服务处的编程接口从客户端接收的输入来确定其网络流量将基于客户端指定的应用要求(诸如基于策略的路由(PBR)规则、多播要求、动态路由要求等)来处理的隔离网络(IN)集。

在各种实施方案中,PPS可例如基于应用要求的分析和/或基于与客户端的附加编程交互来标识与在IN对(IN1与IN2)之间传输网络分组相关联的(除了基线分组转发之外)辅助任务的一个或多个类别(元素1004)。类别可包括例如使用BGP、IGMP或其他协议的路由配置管理任务、使用IPSec或其他协议的分组内容加密、周期性的性能测量(例如,使用TWAMP)、DNS任务、客户端指定的定制任务诸如基于标记的分组分析收集等。

在所描绘的实施方案中,可将一个或多个虚拟路由器(VR)配置用于客户端的应用(元素1007)并且以编程方式附接到IN1和IN2。在各种实施方案中,给定VR可包括以下两个分组处理层处的节点—高效地实现路由/转发动作的快速路径层,以及负责基于客户端提供的元数据或规则来指定/生成路由/转发动作的异常路径层。快速路径节点和异常路径节点可称为转发平面节点。

在所描绘的实施方案中,可例如由PPS的控制平面将一个或多个辅助任务卸载器(ATO)配置(元素1010)来执行所需的辅助任务,而不增加快速路径层节点和/或异常路径层节点的工作负载。例如,ATO可包括在除了用于快速路径层或异常路径层的主机之外的主机上运行的计算实例处的一个或多个执行进程或线程。在各种实施方案中,可实现一个或多个ATO与VR的转发平面节点中的一个或多个(快速路径节点和/或异常路径节点)之间的连接性。例如,这种连接性可通过配置VR转发平面节点可向其传输需要辅助任务处理的分组的一个或多个虚拟网络接口、配置封装协议隧道等来建立,如在图7的上下文中所讨论。在一些实施方案中,PPS控制平面可生成和指定一个或多个基于策略的路由规则,所述一个或多个基于策略的路由规则当在异常路径层处实现时使得需要辅助任务的分组被从VR转发平面传输到ATO,并且使得包含辅助任务的结果的响应分组被发送回转发平面节点。

在完成VR转发平面节点和ATO的初始配置之后,可启用客户端的应用端点(例如,在IN1中)以开始通过VR向目的地端点(例如,在IN2中)发送包括应用数据的分组(元素1013)。在一些实施方案中,根据需要,基于为IN1与IN2之间的流量标识的辅助任务的特定类别,还可例如在IN处的协议处理引擎与ATO之间开始协议诸如BGP等的通信会话。

在各种实施方案中,当在为客户端配置的VR处接收到分组时,可关于分组是否需要或将要触发辅助任务处理作出确定(元素1016)。如果分组不需要任何辅助任务,则可为分组标识适当的路由/转发动作并在不利用ATO的情况下实现所述动作(元素1025)。在所描绘的实施方案中,如果分组确实需要执行一个或多个辅助任务,则可将对一个或多个辅助任务的隐式或显式请求从VR转发平面传输到所选择的ATO(元素1019),并且可在VR转发平面处获得一个或多个辅助任务的对应结果。

在所描绘的实施方案中,VR转发平面可使用一个或多个辅助任务的结果来在IN1与IN2之间传输一些分组的至少一部分(元素1022)。在不同的实施方案中,结果的示例可包括使用BGP的所选择版本或变体选择的路由、使用IGMP的所选择版本或变体验证的多播组成员的身份、使用IPSec或其他安全协议的所选择版本或变体获得的应用数据分组的加密/解密内容、使用TWAMP或其他性能度量收集协议的版本或变体获得的性能度量等等。在一些情况下,如在加密/解密场景中,辅助任务的结果可被并入在从VR转发平面发送到隔离网络的分组内。在其他情况下,如在BGP/IGMP/TWAMP的情况下,结果可用于例如在VR的异常路径节点处为分组中的至少一些选择优选的下一跳或路由。至少一些类型的辅助任务(诸如BGP消息处理、IGMP消息处理或TWAMP消息处理)可相对于VR的转发动作异步地执行—即,VR的快速路径节点可不必等待给定辅助任务的完成来实现转发动作,即使在快速路径节点处进行的转发动作可能受到辅助任务的结果的影响也是如此。

具有用于辅助任务的协议栈多路复用的示例性系统环境

图11示出根据至少一些实施方案的其中可设立协议栈多路复用器和多个协议栈实例以用于卸载可扩展虚拟路由器的辅助任务的示例性系统环境。如图所示,系统1100可包括提供商网络的分组处理服务的可扩展虚拟路由器(VR)的实例1102,所述实例被配置来根据由分组处理服务的一个或多个客户端以编程方式指示的分组处理要求在若干隔离网络之间传输包含应用数据的网络分组。其流量使用VR实例来路由/转发的隔离网络(IN)可包括例如IN 1140A(包括在提供商网络外部的驻地处的资源,并且使用VPN隧道连接到提供商网络)、IN 1140B(也包括在提供商网络外部的驻地处的资源,并且使用专用物理链路连接到提供商网络)、IN 1140C和IN 1140D(各自包括在提供商网络的虚拟化计算服务内配置的相应隔离虚拟网络)。

从代表其设立VR实例1102的一个或多个客户端的角度来看,VR实例1102提供的功能性可与图1所示的VR实例102提供的功能性非常类似或相同。例如,可使用VR实例1102来实现在图2的上下文中所讨论的类型的应用,并且对于如图2所示的那些的应用,可能需要类似类型的辅助任务。路由/转发元数据1108(其中至少一个子集可由客户端通过PPS的编程接口来提供)可用于生成要对各种分组流采取的路由/转发动作,如先前在VR实例102的上下文中所讨论。例如,路由/转发元数据可包括用于路由源自隔离网络的分组的客户端指定的基于策略的路由规则,以及根据由一个或多个客户端选择的配置设置填充的一个或多个路由表。在所描绘的实施方案中,VR实例1102可包括在功能上类似于图1的转发节点111的一组转发节点1111,所述一组转发节点包括快速路径节点(FN)1114和异常路径节点(EN)1115。类似于图5或图6所示的基于单元的架构可用于VR实例1102。

在图11所描绘的实施方案中,可使用用户空间协议栈实例(各自包括用于协议中的一个或多个的相应处理引擎)和协议栈多路复用器的组合来执行与通过VR实例在隔离网络1140之间传输分组相关联的至少一些辅助任务,所述至少一些辅助任务涉及处理根据协议诸如BGP、IGMP、TWAMP等格式化的消息。在所描绘的实施方案中,可选择一个或多个辅助任务卸载装置(ATOD)1160诸如1160A和1160B(例如,提供商网络的虚拟化计算服务的虚拟化主机,或未用于虚拟化的服务器)来托管用于虚拟路由器实例1102的相应协议栈多路复用器(PSM)和一个或多个辅助协议栈实例(PSI)。在各种实施方案中,卸载装置可例如由PPS的控制平面组件和/或提供商网络的虚拟化计算服务选择。在一些实施方案中,作为VR实例1102的建立的一部分,PSM和PSI可被实例化或者(例如,响应于与辅助任务有关的编程交互,类似于在图8和图9的上下文中所讨论的消息/请求)在VR实例1102的寿命后期被实例化。例如,在所描绘的实施方案中,可在卸载装置1160A处实例化PSM 1162A、PSI 1163A、PSI1163B和PSI 1163C(其中PSM和个别PSI各自包括一个或多个执行线程),而在卸载装置1160B处,可实例化PSM 1162B、PSI 1163K和PSI 1163L。在一些实施方案中,可使用类似于数据平面开发套件(DPDK)的库来实现PSM和/或PSI的至少一部分。

为VR 1102设立的PSI的数量和类型以及为VR 1102设立的卸载装置的数量可基于诸如以下的因素而随时间变化:通过VR处理的应用数据流量的量、由客户端指示的用于辅助任务处理的租用要求、其消息将在VR的辅助任务中被处理的不同协议等等。实际上,在图11所描绘的实施方案中,可使用PSM 1162和一个或多个PSI 1163的组合来实现先前讨论的种类的辅助任务卸载器(ATO)(例如,图3的ATO 373A和373B)。在各种实施方案中,VR实例1102的转发平面节点与PSM 1162之间的连接性可使用与在图7的上下文中所讨论的那些类似的技术诸如通过封装协议隧道和一个或多个虚拟网络接口来建立。

当在被配置来在隔离网络1140之间传输分组的VR 1102处接收到需要辅助任务诸如BGP处理的分组时,指示辅助任务的至少一部分的对应消息可由VR发送到卸载装置1160。在各种实施方案中,所述消息(例如,根据GENEVE或另一封装协议格式化的封装分组)可在卸载装置的网络接口卡(NIC)处接收,所述NIC可将消息存储在一个或多个DMA(直接存储器访问)缓冲器中。在至少一个实施方案中,卸载装置处的PSM 1162可访问DMA缓冲器,从而使得PSM能够检查消息(例如包括一个或多个封装标头或与消息内容相关联的其他元数据),而无需将消息复制出DMA缓冲器。

在所描绘的实施方案中,至少部分地基于与消息相关联和/或包含在消息中的元数据,PSM 1162可从在卸载装置1160处实例化的PSI集之中选择特定PSI 1163,以进一步处理消息并执行相关联的辅助任务。可用于选择的元数据可包括:例如,(a)用于包含在消息内的封装分组的联网协议(例如,BGP、IGMP等)的标识符,(b)例如VR实例1102的虚拟路由器标识符,(c)虚拟网络接口的标识符(例如,从其发送消息的VR实例的VNI),(d)将代表其执行辅助任务的提供商网络的客户端的标识符,和/或(e)其流量需要辅助任务的隔离网络1140的标识符。

所选择的PSI,其至少在一些情况下可包括在用户模式下或用户空间中运行的一个或多个执行线程(例如,在卸载装置处启动的计算实例内,或者在用作卸载装置的非虚拟化服务器的操作系统内),继而可检查消息和相关联的元数据中的至少一部分并且执行辅助任务。在至少一些实施方式中,可不必将消息的内容从DMA缓冲器复制到任何其他位置来完成辅助任务。在所描绘的实施方案中,辅助任务的结果可提供给PSM 1162,并且由PSM1162传输到VR 1102的转发节点。在各种实施方案中,在所述VR处,辅助任务的结果可用于将源自隔离网络1140中的一个的应用数据的一个或多个分组的至少一些内容传输到另一隔离网络1140。在至少一些实施方案中,PSM 1162可实现套接字级接口(例如,UNIX

对于一些类型的辅助任务,诸如处理BGP会话的消息,在执行后续辅助任务时可能必须使用关于一个辅助任务生成的状态信息。根据至少一些实施方案,此类状态信息可存储在卸载装置外部的存储装置处,例如,以确保如果正在使用的原始PSI发生故障,则可从替换PSI访问状态信息。关于存储此类状态信息的多种方法在下文进一步详细地讨论。

在一些实施方案中,在给定卸载装置1160处的PSI 1163可例如在相应软件容器内彼此独立地运行。在一些情况下,用于辅助任务的相同协议(诸如BGP)的多个协议处理引擎可在相应PSI 1163处运行,例如,其中每个PSI在独立地址空间内处理相同协议的消息。因此,卸载装置处的PSM 1162可能够容易地多路复用多个接收到的封装分组,所述封装分组表面上定向到相同地址,但正用于不同VR或不同客户端的辅助任务。例如,可在卸载装置处接收第一消息,所述第一消息指示特定IP地址作为消息内封装分组的目的地。卸载装置的PSM可使用与第一消息相关联的元数据来选择第一PSI来处理消息。如果在PSM处接收到也指示相同IP地址作为目的地的第二消息,并且与第二消息相关联的元数据指示应当使用不同的PSI,则PSM可使得不同的PSI处理第二消息,尽管目的地IP地址相同。

在至少一些实施方案中,PSI和/或PSM可在多租户模式或单租户模式下使用,例如,基于从代表其建立相关联的VR的客户端接收的租用要求或请求。例如,客户端提交可类似于图9的SetAuxiliaryTaskResourceTenancy请求917的请求以指示租用偏好。如果以多租户模式配置PSI,则其可用于与以下各项相关联的辅助任务:(a)应一个客户端的请求而使流量在以编程方式附接到特定VR的隔离网络之间流动,以及(b)应另一客户端的请求而使流量在以编程方式附接到特定VR或不同VR的隔离网络之间流动。

在各种实施方案中,卸载装置处的一个PSI可实现与同一卸载装置处的另一PSI相同的OSI模式的传输层协议和应用层协议,但这两个PSI可代表不同的客户端或不同的VR使用。当然,在一些实施方案中,给定卸载装置处的不同PSI可实现完全不同的协议—例如,一个PSI可包括BGP处理引擎,另一个PSI可包括IGMP处理引擎等等。在各种实施方案中,代表其设立VR诸如VR 1102的客户端可能够代表它们提交对关于用于辅助任务的个别协议(例如,BGP、IGMP等)收集的度量的编程请求,并且接收所请求的度量。例如,客户端可提交类似于图9的AuxiliaryTaskMonitoringRequirements消息921和GetAuxiliaryTaskMetrics925的消息以指示它们希望获得的度量的种类,并且可从PSI收集所请求的度量。

用于辅助任务的示例性协议

在各种实施方案中,用于通过虚拟路由器处理的流量的辅助任务可利用多种不同协议(其可称为辅助任务协议)中的任一种。图12示出根据至少一些实施方案的其相应协议栈实例可在具有协议栈多路复用器的装置处运行的一组示例性协议。如图所示,在各种实施方案中,其类似于图11的PSI 1163的PSI可在卸载装置处实例化的协议1210可包括可用于动态路由信息交换的BGP 1220的各种版本及其变体(例如,内部BGP或iBGP、外部BGP或eBGP、多协议BGP或MP-BGP),或者IGMP 1225的版本/变体。

在一些实施方案中,性能测量协议1230诸如TWAMP(双向主动测量协议)或OWAMP(双向主动测量协议)可用于辅助任务。在所描绘的实施方案中,可涉及用于加密或解密应用数据分组内容的密码计算的安全协议1240(例如,IP安全(IPSec)程序组或其他类似程序组的协议)可用于一些基于VR的应用。

在至少一些实施方案中,可针对在其处配置VR的提供商网络内所使用的专有路由信息交换协议1245(也称为定制路由信息交换协议)建立PSI。在一个实施方案中,其流量正通过VR传输的客户端可指示定制协议1250将用于在指定的隔离网络之间流动的分组的至少一个子集的辅助任务,并且也可为此类定制协议设立PSI。

在可能必须使用给定协议的多个版本的场景中,例如响应于由分组处理服务的客户端指示的偏好,可关于对不同版本的支持采取若干方法中的任一种。在一些情况下,可针对版本中的每一个实现相应PSI;在其他情况下,可采用可处理协议的若干不同版本的分组的单个PSI。在一个实施方案中,给定PSI可包括用于类似于或包括图12所示的那些的若干协议的相应协议处理引擎。

栈多路复用器与协议栈实例之间的示例性交互

图13示出根据至少一些实施方案的辅助任务卸载装置的组件之间的一组示例性交互,在所述辅助任务卸载装置处,可为虚拟路由器配置协议栈多路复用器。在所描绘的实施方案中,可在辅助任务卸载装置(ATOD)1310的网络接口卡1330处从虚拟路由器接收封装分组1340,如箭头1371所指示。封装分组可包括根据辅助协议P1(诸如BGP、IGMP等)格式化的封装分组1342以及分组元数据1341(例如,呈标头的形式,所述标头在协议P1分组1342的封装期间生成)。如先前所提及,在一些实施方案中,GENEVE协议可用于准备封装分组。在其他实施方案中,可使用其他封装协议。在至少一些实施方案中,协议P1分组1342可包括其自己的标头,所述标头可包括附加元数据。

在所描绘的实施方案中,网络接口卡1330可将所接收的封装分组1340存储在ATOD1310的一个或多个DMA缓冲器1335内,如箭头1372所指示。包括一个或多个执行线程的协议栈多路复用器(PSM)1320可能先前已经在ATOD处实例化。根据实施方式,PSM可包括一个或多个内核模式线程、一个或多个用户模式线程和/或用户模式线程和内核模式线程的组合。在一些实施方案中,PSM可被实现为虚拟化管理器的一部分。PSM 1320的分组元数据分析器1367可检查元数据1341(和/或包括在协议P1分组1342内的其他元数据),以从在ATOD 1310处运行的一个或多个协议栈实例之中选择特定协议栈实例,所述特定协议栈实例应当进一步处理封装分组1340的内容并且执行所需的对应辅助任务。PSM可实现用于与一个或多个协议栈实例诸如协议P1栈实例1352、协议P2栈实例1353等通信的一组套接字级API 1370。

在所描绘的实施方案中,协议P1栈实例1352可包括一组用户模式或用户空间线程和相关联的数据结构,它们共同模拟协议栈的多个层,诸如传输层和应用层。总体而言,给定协议栈实例的线程可解释根据辅助协议诸如BGP格式化的消息的内容,检查由于辅助协议的先前消息而生成的状态信息(在有状态协议的情况下),基于所接收的消息来确定需要采取什么动作(如果有的话)(例如,改变用于选择最佳下一跳的状态信息诸如BGP属性、存储多播组的当前成员的指示等)并且实现此类动作。因此,在各种实施方案中,给定协议栈实例可被描述为包括用于辅助协议的协议处理引擎。在至少一些实施方案中,可不需要从DMA缓冲器1335复制封装分组1340的内容:例如,分组元数据分析器1367可简单地检查DMA缓冲器(箭头1373)并且将指向DMA缓冲器的指针传递到协议P1栈实例(箭头1374)。与将消息内容从一组存储器位置复制到另一组存储器位置的技术相比,此类“零复制”技术对于处理所接收的网络消息可更为高效。

在一些实施方案中,所选择的协议栈实例1352处对封装分组的处理的结果(例如,新的路由、多播组成员信息等)可通过套接字级API 1370传输回PSM 1320,并且通过网络接口卡1330继续发送到虚拟路由器。在至少一个实施方案中,PSM可负责根据用于与虚拟路由器通信的封装协议来封装结果。在其他实施方案中,协议栈实例可封装结果。在一些实施方案中,在卸载装置处接收的给定封装分组可由多于一个协议栈实例处理,并且处理的结果可在以单个分组或消息的形式发送回虚拟路由器之前在复用器处合并。

在至少一些实施方案中,上文所介绍种类的协议栈多路复用器可与用于协议栈实例的编程语言和/或运行时环境无关。图14示出根据至少一些实施方案的其中以若干不同编程语言开发的协议栈实例可在辅助任务卸载装置处的相应软件容器内执行的示例性场景。辅助任务卸载装置1410包括协议栈多路复用器1420,所述协议栈复用器实现一组PSMAPI以用于与协议栈实例的交互。在所描绘的实施方案中,以Java

图15示出根据至少一些实施方案的其中给定协议栈的多个独立实例可在辅助任务卸载装置处同时执行的示例性场景。在所描绘的实施方案中,ATOD 1510包括协议栈多路复用器(PSM)1520和至少三个协议栈实例。

以多租户模式配置的协议P1栈实例1552用于与由为分组处理服务的客户端C1设立的虚拟路由器VR1处理流量相关联的辅助任务,以及用于与由不同客户端C4的虚拟路由器VR4处理流量相关联的辅助任务。协议P2栈实例1553A在ATOD 1510处被配置用于实现与由为客户端C1设立的虚拟路由器VR2处理流量相关联的辅助任务。在所描绘的实施方案中,根据协议P2格式化的消息还可在ATOD 1510处的以下另一栈实例处进行处理:协议P2栈实例1553B,其被建立用于实现与由为客户端C2设立的虚拟路由器VR3处理流量相关联的辅助任务。这两个协议栈实例彼此独立地操作,并且因此,可容易地管理在栈实例1553A和1553B处进行处理的分组之间的重叠地址范围。例如,在ATOD 1510处接收的具有目的地IP地址D1(例如,参与与提供商网络外部的BGP引擎BE2的BGP会话的BGP引擎BE1的地址)的一个封装分组可在栈实例1553A处进行处理,而在ATOD 1510处接收的具有相同目的地IP地址D1的另一分组可在栈实例1553B处进行处理。

在图15所描绘的实施方案中,可在若干级别上实现多租用。首先,ATOD 1510作为一个整体可被认为是多租户模式,因为使用ATOD来实现分组处理服务的若干不同客户端(C1、C2和C3)的辅助任务。其次,单个协议栈实例诸如协议P1栈实例1552可在多租户模式下操作,因为它执行客户端C1和C3的辅助任务。在至少一些实施方案中,如先前在图9的上下文中所讨论,客户端可指示关于对于要用于其辅助任务的资源将使用的租用模式的偏好,并且分组处理服务可相应地配置ATOD和协议栈实例。在一个实施方案中,例如,如果客户端请求单一租用,则可仅为所述客户端的辅助任务配置或指派ATOD。在一些实施方案中,客户端可在装置(ATOD)级别或在协议栈实例级别上指定租用要求。

示例性辅助任务状态信息管理

在一些实施方案中,根据所执行的辅助任务的种类,可能必须维护应用于在虚拟路由器与辅助任务卸载装置之间交换的多个消息的状态信息。例如,对于某些协议处理栈,可能必须存储传输控制协议(TCP)连接状态信息。图16示出根据至少一些实施方案的用于保存与虚拟路由器的辅助任务相关联的协议状态信息的替代方法的示例。

在协议栈状态管理方法A中,协议栈实例1652在进程1653(诸如Java

在一些实施方案中,在协议栈状态管理方法B中,可指派单独的持久状态管理进程(PSMP)1623(而不是仅堆外数据结构)来管理在协议栈实例进程1622处进行处理的辅助任务的状态信息。PSMP 1623可具有比栈实例进程1622长的寿命。在所描绘的实施方案中,执行辅助任务的计算的进程1622可与PSMP 1623在相同的EE 1611处运行;因此,EE的过早终止或故障仍可能潜在地导致状态信息的丢失。

在所描绘的实施方案中,在协议栈状态管理方法C中,可采用分布式技术进行状态信息管理。可配置包括若干不同PSMP诸如1624A和1624B的持久状态管理集群1640,其中每个PSMP在与在其处运行协议栈实例进程1632的EE 1612不同的EE 1613(例如,1613A或1613B)内运行。集群1640的任何给定PSMP可能够接管发生故障的PSM的职责。此外,在所描绘的实施方案中,随着辅助任务的状态信息的改变,它可被传播到可用于提供商网络的持久存储的一个或多个服务(诸如数据库服务1601)处的资源。在一些实施方案中,如果代表其执行辅助任务的客户端有需要,则可通过通知服务器1602或消息队列服务1603将状态信息提供给客户端或使状态信息可由客户端访问。

用于使用协议栈多路复用卸载辅助任务的方法

图17是示出根据至少一些实施方案的可被执行以使用协议栈多路复用器和协议栈的独立实例从虚拟路由器卸载一些类型的任务的操作的各方面的流程图。如元素1701所示。在所描绘的实施方案中,可由分组处理服务的控制平面标识执行环境(EE)诸如虚拟化计算服务或非虚拟化服务器的计算实例,以在卸载装置处针对一个或多个虚拟路由器执行卸载辅助协议任务。在一个实施方案中,可在建立虚拟路由器时配置一个或多个此类EE;在其他实施方案中,可在虚拟路由器的寿命后期配置EE,例如,响应于指示关于通过一个或多个虚拟路由器路由/转发的流量要执行的一个或多个类别的辅助任务的编程请求。

在各种实施方案中,可例如由分组处理服务的控制平面在EE处启动协议栈多路复用器(PSM)(例如,可访问由用于EE的卸载装置处的网络接口卡将所接收的网络分组放置到其中的DMA缓冲器的进程或线程)(元素1704)。此外,可在执行环境处启动包括在用户空间中或用户模式下运行(与在特权或内核模式下运行相反)的线程的一个或多个协议栈实例(PSI)。PSI可实现或模拟执行与通过虚拟路由器传输网络流量相关联的一种或多种类型的辅助任务所需的一个或多个开放系统互连网络栈层(例如,网络层、传输层或应用层)的功能性,并且执行处理与辅助任务相关联的消息所需的任何附加逻辑。在各种实施方案中,PSI中的个别PSI可实现用于辅助任务的协议(例如,BGP、IGMP、TWAMP等)中的一者或多者的处理引擎。在至少一些实施方案中,类似于在图5和图6的上下文中所讨论的架构的基于单元的架构可用于针对辅助协议任务设立的虚拟路由器和/或资源。在一些实施方案中,至少一些PSI可包括一个或多个内核模式或特权线程。

在各种实施方案中,可例如通过配置一个或多个虚拟网络接口和/或封装协议隧道来在一个或多个虚拟路由器与EE之间建立网络连接性(元素1707)。在一些实施方案中,可采用类似于图7所示的那些的技术来实现通信,例如,包括建立GENEVE隧道,在虚拟路由器的异常路径节点处存储指示自治任务处理资源的单元的虚拟网络接口的地址作为指示要执行的辅助任务的分组的目的地的元数据,以及在EE处存储指示虚拟路由器的虚拟网络接口的一个或多个地址作为辅助任务的结果的目的地的元数据。

在各种实施方案中,在EE与一个或多个VR之间已经建立连接性之后,在某个时刻,可在EE处从被建立来在隔离网络IN1与IN2之间传送分组的VR接收指示要执行的辅助任务的消息(元素1710)。在一些实施方案中,消息可包括与结合在消息内的封装分组(例如,由提供商网络外部的驻地处的BGP处理引擎发送的分组)有关的元数据(例如,包括封装协议诸如GENEVE的标头的内容)。元数据可包括:例如,(a)用于消息内的封装分组的联网协议的标识符,(b)从其接收消息的VR的虚拟路由器标识符,(c)虚拟网络接口的标识符,(d)提供商网络的客户端的标识符,或(e)其流量正通过虚拟路由器路由的隔离网络的标识符。

PSM可检查元数据并且确定在EE处运行的哪个特定PSI(例如,PSI-1)应当进一步处理消息(元素1713)。在至少一些实施方案中,可不必从DMA缓冲器复制消息内容来由PSM分析或用于由所选择的PSI对消息内容进行处理。

在各种实施方案中,所选择的PSI,即PSI-1可分析消息的内容,执行消息内容所需的辅助任务,并且将辅助任务的结果传输到PSM(元素1716)。在至少一些实施方案中,PSM可实现一组套接字级或套接字层编程接口,并且PSI-1可通过此类接口将结果传输到PSM。在一些实施方案中,PSI-1可将与其辅助任务有关的状态信息(例如,TCP连接状态、协议特定的序列号信息等)保存到EE外部的存储装置。在一些实施方案中,例如,应为其建立VR的客户端的请求,可以单租户模式配置PSI和/或在其处运行PSI的EE。在其他实施方案中,给定EE和/或给定PSI可以多租户模式为若干不同的客户端和/或若干不同的VR处理辅助任务。

在所描绘的实施方案中,PSM可将结果传输到从其接收消息的VR(元素1719)。在所描绘的实施方案中,在VR处,可使用辅助任务的结果来在IN1与IN2之间传输至少一些分组(元素1722)。

为对等虚拟路由器启用动态路由的示例性系统环境

在一些实施方案中,例如在必须跨大陆、国家、州或区域边界传输流量的场景中,可能需要包括多于一个虚拟路由器的路径来在隔离网络之间传送流量。虚拟路由器对可以编程方式彼此附接以用于这种流量。此类VR到VR附接可称为“对等附接”并且所附接的VR可称为彼此对等。图18示出了根据至少一些实施方案的其中可应分组处理服务的客户端的请求而为对等虚拟路由器对启用动态路由的示例性系统环境,所述动态路由涉及使用边界网关协议(BGP)处理引擎交换路由信息。在系统1800中,虚拟路由器(VR)对1810A和1810B可例如响应于通过PPS控制面1890处的编程接口1870接收到分组处理服务(PPS)的一个或多个客户端的编程请求而配置或建立,所述PPS类似于先前所讨论的分组处理服务。例如,VR1810A可建立在地理区域GR1中(例如,使用位于国家C1或州S1中的一个或多个提供商网络数据中心内的计算装置),并且VR 1810B可建立在另一地理区域GR2中(例如,使用位于国家C2或州S2中的一个或多个提供商网络数据中心内的计算装置)。

在所描绘的实施方案中,VR 1810A和1810B可响应于由代表其配置VR和隔离网络的客户端提交的编程附接请求,以编程方式彼此附接并且附接到一个或多个隔离网络。在所描绘的实施方案中,与VR的给定附接可属于若干类别中的一个,诸如IVN附接(其将虚拟化计算服务(VCS)的隔离虚拟网络(IVN)与VR相关联)、DX附接(其将客户端驻地处通过专用物理链路连接到提供商网络的隔离网络与VR相关联)、VPN附接(其将客户端驻地处通过一个或多个VPN隧道连接到提供商网络的隔离网络与VR相关联)、对等附接(其将两个VR相关联),SD-WAN附接(其将客户端的软件定义的广域网装置与VR相关联)等等。在图18所描绘的场景中,隔离网络1840A(包括IVN)和隔离网络1840B(包括另一IVN)可分别通过IVN附接IA-1和IA-2以编程方式附接到VR 1810A。此外,隔离网络1840A(包括IVN)可通过IVN附接IA-3附接到VR 1810B,并且隔离网络1840D(其包括在提供商网络的数据中心外部的客户端驻地处的资源)可通过DX附接DA-1附接到VR 1810B。对等附接PA-1可设立在VR 1810A与VR1810B之间。在所描绘的实施方案中,这五个附接(IA-1、IA-2、IA-3、DA-1和PA-1)中的每一个可响应于来自分组处理服务(PPS)的客户端1895的一个或多个编程请求而设立。

在所描绘的实施方案中,至少部分地基于通过编程接口1870接收的输入,例如,作为对PA-1的对等附接请求的一部分,或者在两个VR 1810A和1810B的对等之后,可在VR1810A与1810B之间实现根据BGP的版本或变体进行的动态路由信息的传送。在多条路径可用于在隔离网络之间传输应用数据分组的场景中,路由信息可使得能够在虚拟路由器处为应用数据分组动态地选择更优的路径。在各种实施方案中,这种类型的路由可称为动态路由。在至少一些实施方案中,在启用动态路由时为应用数据分组选择下一跳或路径的情况下,在虚拟路由器处可考虑若干不同因素诸如带宽可用性、延迟、历史拥塞模式和/或与中介或转接网络提供商的协定中的任一者。

除了实现动态路由信息的传送之外,在至少一些实施方案中,客户端可使用编程接口1870来提供要用于传送的一个或多个动态路由协议配置设置的组。此类设置可指示客户端关于路由信息传送的各方面的各种偏好。例如,一个这种设置可包括要用于确定到特定目的地的路由是否要从一个VR传送到另一个VR的过滤规则。另一设置可指示要指派给多个路由相关属性中的个别属性以选择到目的地的下一跳的相应优先级,所述多个路由相关属性诸如:(a)本地偏好属性,(b)本地前缀起源属性,(c)自治系统(AS)路径长度属性,(d)多出口鉴别符属性,或(e)路由器标识符属性。本地偏好可使用例如在来自同一自治区域中的VR的BGP邻居的路由更新中传播的数值来指示VR针对不同可用路径要使用的相应偏好。客户端可使用本地偏好来影响自治系统的多个出口点之中的优选出口点。在一个实施方案中,VR可为分组选择(可用替代路由之中)具有最高本地偏好值的路由。在一些实施方案中,当涉及其他VR的替代路径也可用时,可在VR处使用本地前缀起源属性来优选位于直接附接到VR的IVN中的路径。在使用AS路径长度属性的实施方案中,VR可选择(可用替代路径之中)具有最短AS路径长度的路径。在一些实施方案中,可在VR处从不同AS中的BGP邻居获得多出口鉴别符(MED),并且当具有不同NED的替代路径可用时,VR可选择具有最低MED的路径。在一些实施方案中,数字路由器标识符可被指派给每个VR以及客户端拥有的硬件路由器、SD-WAN装置等;在一个实施方案中,在涉及到相应路由器的传送的替代路径之中,如果所考虑的其他属性中没有一个导致偏好,则可选择具有最低路由器标识符的路由器的路径。在一些实施方案中,客户端指定的设置可指示要使用的BGP的特定变体和/或版本,诸如iBGP、eBGP、MP-BGP等,和/或从其将地址指派给与VR 1810相关联的BGP处理引擎的CIDR(无类别域间路由)块。在一些实施方案中,管控路由信息的传送的其他参数可由客户端通过接口1870来指定。

在各种实施方案中,根据对启用动态路由信息传送的请求,可为所描绘的实施方案中的两个VR建立或实例化相应BGP处理引擎1814。例如,BGP处理引擎1814A可被配置用于VR 1810A,并且BGP处理引擎1814B可被设立用于VR 1810B。在所描绘的实施方案中,可在两个处理引擎之间发起一个或多个BGP会话以交换动态路由信息,所述动态路由信息使得能够根据由客户端指示的配置设置,由VR中的每一个将网络分组通过另一个VR转发到隔离网络。相对于各个目的地端点集将路由信息从一个BGP处理引擎传送到另一个BGP可称为“通告”路由信息。

在所描绘的实施方案中,虚拟路由器中的每一个可维护与对等附接PA-1相关联的至少一个路由表。因此,路由表1871由VR 1810A维护,而路由表1872由VR 1810B维护。给定路由表中的条目可指示各个目的地端点组的下一跳,所述目的地端点组称为目的地前缀并且在图18中以CIDR格式指定。

在所描绘的示例性场景中,隔离网络1840A包括IP版本4地址在范围A.B.C.D/16(用CIDR符号表示)内的网络端点集。隔离网络1840B包括IP版本4地址在A.F.C.D/16范围内的网络端点集。隔离网络1840C包括IP版本4地址在A.G.C.D/16范围内的网络端点集,而隔离网络1840D包括IP版本4地址在K.L.M.N/16范围内的网络端点集。在所描绘的实施方案中,为了使得流量能够通过对等附接PA-1流动,BGP处理引擎1814A向BGP处理引擎1814B传输针对A.D.C.D/16和A.F.C.D/16的通告,而处理引擎1814B向BGP处理引擎1814A传输针对A.G.C.D/16和K.L.M.N/16的通告。因此,用示出对等附接PA-1作为A.G.C.D/16范围或目的地前缀(DST前缀)中的目的地的下一跳的一个条目和示出对等附接PA-1作为K.L.M.N/16范围中的目的地的下一跳的另一条目填充路由表1871。在所描绘的场景中,基于在BGP处理引擎1814B处从BGP处理引擎1814A接收的针对A.B.C.D/16和A.F.C.D/16的通告,用指示PA-1作为下一跳的条目来填充路由表1872。

在所描绘的实施方案中,路由表1871和1872还可包括用于直接附接到对应VR的隔离网络的下一跳条目。例如,示出IA-1作为A.B.C.D/16的下一跳的条目包括在路由表1871中,并且还包括示出IA-2作为A.F.C.D/16的下一跳的另一条目。类似地,示出IA-3作为A.G.C.D/16的下一跳的条目包括在路由表1872中,并且还包括示出DA-1作为K.L.M.N/16的下一跳的另一条目。在一些实施方案中,隔离网络1840中的一些或全部可包括它们自己的BGP处理引擎。例如,针对K.L.M.N/16的通告可从配置在隔离网络1840D内的另一BGP处理引擎传输到BGP处理引擎1814B。

在所描绘的实施方案中,根据客户端的配置设置在VR之间传送的动态路由信息(例如,BGP通告)可用于将网络分组从一个隔离网络传送到另一隔离网络。例如,如果源自隔离网络1840A的分组定向到范围K.L.M.N/16中的地址,则在VR 1810A处可利用路由表1871中的K.L.M.N/16的条目来通过PA-1将分组传输到VR 1810B,从那里,分组可基于路由表1872中的K.L.M.N/16的条目被转发到隔离网络1840D。虽然在图18中附接标识符(IA-1、IA-2、IA-3和DA-1)用于指示下一跳,但在至少一些实施方式中,此类附接标识符可被转译成对应的虚拟网络接口(VNI)标识符或地址(每个VNI被配置用于附接中的一个)以传送分组。需注意,在所描绘的实施方案中,因为路由信息是在虚拟路由器的BGP处理引擎之间动态地交换的,所以客户端可不必提供静态路由来使得网络分组能够在隔离网络的任一个之间传输。在一些实施方案中,虽然可能不需要静态路由,但如果需要,客户端仍然可指定静态路由。

在一些实施方案中,BGP处理引擎1814可在卸载资源诸如先前讨论的辅助任务卸载器处被实例化。在其他实施方案中,可能不需要此类卸载技术,并且可在用于VR节点中的一个的相同资源处启动BGP处理引擎。在一些实施方案中,除了BGP或其变体之外的协议可用于在虚拟路由器之间传送路由信息中的至少一些—例如,可使用在提供商网络处开发的定制协议。

图19示出根据至少一些实施方案的其中可为虚拟路由器的若干不同类型的编程附接启用动态路由信息交换的示例性场景。如上所提及,虚拟路由器可例如响应于来自PPS的客户端的编程请求,通过若干不同种类的附接中的任一种附接到其他路由信息源。在一些实施方案中,不同种类的附接在元数据的种类(例如,包括用于与附接相关联的路由信息的协议处理引擎的种类、与附接相关联的路由表、对可传送的流量的量或速率的相应限制、更新与附接相关联的路由信息的方式和频率、用于附接的虚拟网络配置信息等)上可彼此不同,用于不同种类的附接的元数据的种类可存储在PPS控制平面处。

在图19所描绘的实施方案中,VR 1910A附接到四个其他实体。包括客户端配置的SD-WAN(软件定义的广域网)装置1990的IVN 1940通过IVN附接IA-1附接到VR 1910A。包括客户端驻地路由器1991的VPN连接的客户端驻地隔离网络1941(即,包括在其处建立VR1910A的提供商网络外部的驻地处的网络端点和资源的隔离网络)通过VPN附接VA-1附接到VR 1910A。包括客户端驻地路由器1992的直接物理链路连接的客户端驻地隔离网络1942(即,包括在其处建立VR 1910A的提供商网络外部的驻地处的网络端点和资源的隔离网络)通过DX附接DA-1附接到VR 1910A。此外,另一VR 1910B通过对等附接PA-1附接到VR 1910A。

在所描绘的实施方案中,VR 1910A附接到的实体中的每一个可包括用于动态路由信息交换协议(诸如BGP变体或定制协议)的相应协议处理引擎。因此,可在每个附接实体对之间实现动态路由信息交换,如标记为动态路由信息交换(DRIE)1922、DRI 1923、DRE 1924和DRIE 1925的双向虚线箭头所指示。在一些实施方案中,不同的协议可用于不同实体对之间的动态路由信息交换—例如,协议P1(和相关联的协议处理引擎PE1)可用于在VR 1910A与1910B之间交换路由信息,而协议P2(和相关联的引擎协议处理引擎PE2)可用于在IVN1940与VR 1910A之间交换路由信息。

在维护BGP兼容性的同时定制协议的示例性使用

图20示出根据至少一些实施方案的其中虚拟路由器可采用用于路由信息传送的定制协议来交换最初使用BGP传输给虚拟路由器的信息的示例性场景。在图20所描绘的实施方案中,PPS客户端2095可使用BGP术语和属性通过编程接口2070提交路由配置请求2078(例如,包括上文所讨论的控制路由信息的传送的各方面的设置的种类)。在内部,PPS控制平面2088可利用定制路由信息传送协议(CRITP)2044来在VR之间传送路由信息,同时仍然从客户端的角度维护与BGP的兼容性。在不同的实施方案中,出于多种原因,定制协议对于内部使用可能是优选的,诸如避免实现BGP的一些较不频繁利用的功能的能力、移除由BGP强加的约束中的一些(诸如可在给定BGP会话内传送的路由信息量的限制)等。在所描绘的实施方案中,配置设置变换器2055可将基于BGP的路由配置请求2078转译成用于CRITP2044的格式。

在所描绘的示例性场景中,客户端驻地与VR 2010之间的动态路由信息交换(DRIE)的消息可继续根据BGP被格式化,如标签2023和2024所指示。例如,在客户端驻地CP1的路由器2090A处的BGP处理引擎2091A可与VR 2010A的符合BGP的处理引擎2066A建立BGP会话,并且在客户端驻地CP2的路由器2090B处的BGP处理引擎2091B可与VR 2010A的符合BGP的处理引擎2066B建立BGP会话。在所描绘的实施方案中,当通过BGP消息从路由器2090获得的路由信息将通过对等附接PA-1从一个VR传送到另一VR时,信息可根据CRITP来表示;即,VR 2010A和2010B可使用CRITP消息而不是BGP消息来交换动态路由信息,如标签2025所指示。实际上,符合BGP的处理引擎2066可根据需要将相同的底层路由信息从BGP转译为CRITP,并且反之亦然,并且因此可能够处理两种协议的消息。

用于网络分段的多个对等附接的示例性使用

图21示出根据至少一些实施方案的其中可在虚拟路由器对之间设立多个对等附接的示例性场景。在所描绘的实施方案中,客户端可能希望确保在允许流量在附接到VR2110A和2110B的指定隔离网络对之间流动的同时,防止或禁止附接到同一VR的其他隔离网络对之间的网络流。例如,客户端可能希望在隔离网络(IN)2140A与2140B之间以及还有隔离网络2140C与2140D之间实现分组的动态路由(例如,使用上文所讨论种类的通告的交换)。然而,客户端还可能希望防止流量(a)在IN 2140A与IN 2140D之间、(b)在IN 2140A与IN 2140C之间、(c)在IN 2140B与IN 2140C之间以及(d)在IN 2140B与2140C之间流动。

在一些实施方案中,为了实现这种类型的网络分段,同时仍然使用使用BGP或类似协议的动态路由信息交换,可建立两个不同的对等附接(以及相关联的不同动态路由协议引擎对)。对等附接PA-1可被设立用于仅IN 2140A与2140B之间的流量(以及相关联的动态路由信息传送),而对等附接PA-2可被设立用于仅IN 2140C与2140D之间的流量(以及相关联的动态路由信息传送)。

通过对等虚拟路由器进行动态路由的示例性编程交互

图22示出根据至少一些实施方案的与配置对等虚拟路由器的动态路由有关的一组示例性编程交互。在所描绘的实施方案中,在功能上类似于先前在图1的上下文中所讨论的分组处理服务的分组处理服务(PPS)2212可实现一组编程接口2277。编程接口2277例如可包括一组API、命令行工具、基于web的控制台、图形用户接口等。使用接口2277,客户端可提交类似于在图8和图9的上下文中所讨论的那些的与虚拟路由器配置有关的消息以及图22所示的附加消息,并且接收对应响应。

在图22所描绘的实施方案中,在先前已经建立用于管理隔离网络集之间的流量的若干虚拟路由器(例如,使用图8所示的CreateVirtualRouter请求814)之后,客户端810可提交CreateVRPeeringAttachment请求2214以请求在指定VR对之间创建对等附接。在一些实施方案中,可在PPS2212处存储指示已经附接指定VR的元数据,并且可向客户端发送PeeringAttachmentCreated消息2215。

在至少一些实施方案中,可在代表不同客户端或不同客户端账户建立的VR之间创建对等附接。例如,可为提供商网络的客户端C1创建虚拟路由器VR-1,可为客户端C2创建虚拟路由器VR-2,并且这两个客户端可能希望能够通过在VR-1与VR-2之间建立的对等附接在客户端所拥有的各个隔离网络之间传送应用数据分组。在这种场景中,当客户端中的一个请求对等附接时,PPS可能必须确保另一VR的所有者同意所述附接。在一些实施方案中,当请求这种“跨账户”附接时,PPS2212可向期望许可或批准的客户端发送ApproveCrossAccountVRPeering请求2217。因此,在客户端C1拥有VR-1并且请求与VR-2对等的以上示例中,可向C2发送ApproveCrossAccountVRPeering请求2217。在所描绘的实施方案中,如果C2批准,则C2可以CrossAccountVRPeeringApproved消息2219回复,并且可建立由C1请求的对等附接。

在各种实施方案中,客户端可例如通过提交EnableDynamicRoutingForVRPA请求2221来请求为对等附接启用动态路由(例如,包括在对等VR之间传送路由信息,以及使用路由信息来为各种应用数据分组流动态地选择VR处的最佳下一跳)。作为响应,在至少一些实施方案中,可为对等VR中的每一个配置相应路由信息交换协议处理引擎(例如,使用如上所讨论的卸载装置,或者使用与用于VR的转发平面节点相同的装置),并且可在协议处理引擎之间发起协议的会话。可向客户端发送DynamicRoutingEnabled消息2223以确认动态路由已经启用。在至少一个实施方案中,动态路由可在创建对等附接时默认地启用,因此可能不需要单独的EnableDynamicRoutingForVRPA。

在所描绘的实施方案中,客户端2210可发送一个或多个RoutingInfoTransferConfigSettings消息2225以指示与在对等VR之间传送动态路由信息有关的各种配置设置。可指示多种不同配置设置中的任一种,包括要使用的特定协议(例如,各种类型的BGP诸如eBGP、iBGP、MP-BGP等中的任一种)、用于过滤出站通告路由、过滤入站通告的设置、指派给各种BGP属性以选择到目的地的下一跳的相对优先级、将用于协议处理引擎的IP地址的CIDR块、将被指派给协议处理引擎的自治系统标识符等等。在一个实施方案中,其相应相对优先级由客户端指示的一组BGP属性可包括例如以下各项中的一者或多者:(a)本地偏好属性,(b)本地前缀起源属性,(c)自治系统(AS)路径长度属性,(d)多出口鉴别符(MED)属性,或(e)路由器标识符属性。在至少一些实施方案中,在一些实施方案中也可称为动态路由协议控制设置的配置设置可作为EnableDynamicRoutingForVRPA请求的参数进行指示。在一些实施方案中,例如作为对等附接的配置设置的一部分,客户端可使用编程接口2277来指示当在VR处作出动态路由决策时要使用的各种因素,诸如测量的延迟、带宽可用性等,以及要指派给这些因素的相对优先级。在各种实施方案中,在PPS2212处获得客户端指定的设置之后,客户端指定的设置可被存储在数据库中并在为对等VR设立的协议处理引擎处应用。在至少一些实施方案中,可向客户端2210发送SettingsApplied消息2227。

根据一些实施方案,可由PPS2212收集与动态路由信息的传送和使用有关的各种度量,诸如在所使用的路由信息交换协议处理引擎对之间的任一方向上发送的路由通告的数量、协议处理引擎的健康状态信息(例如,响应性、正常运行时间等)、发送通告的速率随时间推移的变化、使用特定属性来改变下一跳设置的次数等等。在所描绘的实施方案中,客户端可提交ShowDynamicRoutingMetrics请求2229以请求此类度量,并且所请求的度量可通过一个或多个MetricsSet响应消息2231呈现给客户端。

在一个实施方案中,客户端可提交ShowLearnedRoutes请求2233以请求关于对等虚拟路由器的一组动态获知的路由或对等虚拟路由器的特定路由表的信息。在所描绘的实施方案中,作为响应,可通过一个或多个LearnedRoutesSet响应2235向客户端呈现在VR处获知的下一跳地址。在一些实施方案中,给定VR的协议处理引擎可从多于一个处理引擎接收BGP消息,并且不同的引擎可各自提供关于通向相同目的地的替代路径的信息。在一个这种实施方案中,通过LearnedRouteSet消息提供给客户端的获知路由信息可包括用于给定目的地地址或前缀的若干不同下一跳替代方案,每个下一跳替代方案都从不同的协议处理引擎获得。例如,可在LearnedRoutesSet消息中向客户端呈现类似于下面的表的内容,所述表包含从至少两个不同BGP引擎获得的路由信息。

在以上示例性表中,对于地址在A.B.C.D/32中的目的地,获知了两个不同的下一跳(E.F.G.H和E.F.G.K)。在至少一些实施方案中,还可在LearnedRoutesSet消息中为不同的下一跳选项提供用于在多个下一跳替代方案可用时选择优选下一跳的各种属性的值,诸如MED(多出口鉴别符)、本地偏好属性和自治系统编号路径(ASN-Path)。

用于配置并使用对等虚拟路由器的动态路由的方法

图23是示出根据至少一些实施方案的可被执行以用于启用并利用对等虚拟路由器的动态路由的操作的各方面的流程图。如元素2301所示,响应于来自分组处理服务(PPS)的一个或多个客户端的编程请求,可在PPS处创建或建立包括VR1和VR2的一组虚拟路由器(VR),例如使用先前所讨论的基于单元的方法。可创建VR以在包括IN1和IN2的隔离网络集之间传输网络分组。

在所描绘的实施方案中,IN和VR可以编程方式彼此附接。例如,IN1可附接到VR1,IN2可附接到VR2,并且可基于从代表其建立IN和VR的客户端接收的请求而在VR1与VR2之间创建对等附接PA(元素2304)。

可确定将为VR到VR对等附接启用动态路由(元素2307):即,将在VR之间传送动态路由信息诸如更新的属性值、性能度量等,并且将采用这种路由信息来在附接IVN之间路由应用数据分组。在至少一些实施方案中,客户端可根据所选择的协议诸如BGP的变体来指定用于在对等VR之间传送路由信息的配置设置(诸如用于过滤入站或出站路由通告的规则、要指派给用于选择各种目的地的下一跳的属性/因素的相应优先级等)。所交换的路由信息可指示例如到不同IVN内的目的地地址组(例如表示为CIDR块)的路由或下一跳、BGP的值或与目的地地址组相关联的其他属性(诸如MED值等)、与目的地地址可用的不同路径相关联的延迟测量、沿着不同路径的可用带宽的测量、沿着路径遇到的错误/故障的度量等等。

在所描绘的实施方案中,可将相应协议处理引擎E1(与VR1相关联)和E2(与VR2相关联)实例化和/或彼此连接以发起动态路由信息交换(DRIE)会话(诸如BGP会话)(元素2310)。在一些实施方案中,可对协议处理引擎E1和E2中的一个或多个采用先前所讨论种类的卸载装置。

可在VR2处通过DRIE会话获得与IN1有关的路由信息,并且可在VR1处通过DRIE会话获得与IN2有关的路由信息(元素2313)。可利用所获得的路由信息来将源自IN中的一个的至少一些网络分组传输到另一IN,而不需要为此类分组配置静态路由(元素2316)。

使用启用了动态路由的VR的示例性广域网服务

许多组织的办公室和计算资源遍布不同的地理区域,在一些情况下,给定组织的设施横跨大陆。管理此类远程驻地之间的连接性可能很复杂,因为可能需要许多不同的实体以及来自不同供应商的多种硬件装置和相关联的软件。图24示出根据至少一些实施方案的其中组织可使用来自各种供应商的租借光纤线路和装置来管理链接组织的地理上遥远的驻地的广域网络的示例性环境。组织A可在国家/区域2410A具有总部站点(OAHQ)2420,并且在国家/区域2410B和国家/区域2410C具有驻地。国家/区域2410B可包括例如组织A的数据中心(OADC)2412B、分办事处(OABO)2415B和销售点站点(OAPOS)2418B中的一者或多者,而国家/区域2410C可包括OADC 2412C、OABO 2415C和OAPOS2418C。国家/区域2410A还可包括OADC 2412A、OABO 2415A和OAPOS2418A。在给定国家/区域2410内,组织A可例如依赖本地互联网服务提供商(ISP)来实现不同驻地之间的连接性。在必须从一个国家/区域到另一国家/区域的组织A的驻地之间传送大量数据的一些场景中,组织可获取租借光纤线路诸如2444A、2444B和2444C。广域网管理装置2457(例如,用于跨租借光纤线路流动的分组的路由器),诸如来自国家/区域2410A的硬件供应商A的WAN装置2457A、来自硬件供应商B的WAN装置2457B以及来自硬件供应商C的WAN装置2457C,也可能必须由组织A购买和管理。此外,如果组织A还利用提供商网络或云计算环境内的资源2421(诸如虚拟化计算服务的计算实例、数据库服务的数据库系统等),则在一些情况下,可能必须设立一个或多个定制集线器2491来在远程区域与提供商网络之间路由流量,因为可能没有简单的方式来将租借光纤线路2444与提供商网络互连。如果和当区域间流量需求增加时,组织A可能花费比所需要的长的时间来扩展它们的所获取的租借线路。管理组织的全球WAN可能很麻烦,因为管理员可能必须利用不同的工具来处理网络的相应部分。

提供商网络的资源也可遍布不同的区域/国家,并且提供商网络可使用高带宽私有光纤主干网络来连接其自己的遍布全球的数据中心。在一些实施方案中,可实现允许组织使用提供商网络的主干网络和上文所讨论种类的虚拟路由器的集合来设立组织的WAN的服务。图25示出根据至少一些实施方案的其中使用提供商网络的广域网(WAN)服务来传输提供商网络的客户端的遥远驻地之间的流量的示例性系统环境,所述WAN服务采用内部光纤主干网络和启用了动态路由的虚拟路由器的集合。如图所示,系统2500包括提供商网络WAN服务2502的资源和工件,所述提供商网络WAN服务用于实现具有总部OAHQ 2520的组织A的驻地与分布在国家/区域2510A、国家/区域2510B和国家/区域2510C之间的各种其他驻地之间的连接性。WAN服务2502包括一组控制平面服务器2544、一组客户端WAN元数据2546、WAN可扩展性管理器2548和面向客户端的WAN管理接口/工具2550。WAN服务的客户端可能够利用提供商网络的高性能(例如,低延迟、高带宽)私有光纤主干链路2570来在位于不同国家或区域的客户端驻地之间传输分组,实际上是使用提供商网络资源和易于使用的配置管理工具来配置它们的私有WAN。在至少一些实施方案中,高性能光纤主干链路2570可被描述为私有的,因为它们仅可由提供商网络服务(代表服务的客户端和/或为了内部管理目的)使用,并且可不包括公共互联网的链路。WAN服务可管理私有光纤主干链路的可扩展性和可用性,从而根据需要添加资源/链路,并且客户端甚至不必知道链路的细节(例如,确切地说,哪些主干链路链接了哪些数据中心、不同链路所支持的带宽等)。

例如,控制平面服务器2544可负责WAN服务的管理任务,诸如预配提供商网络的虚拟化计算服务的计算实例以用于例如执行可扩展性管理器2548以及对通过面向客户端的WAN管理接口/工具2550获得的输入作出响应。在各种实施方案中,面向客户端的WAN管理接口/工具2550可包括一组编程接口,诸如基于web的控制台、命令行工具、图形用户接口和/或API。在一些实施方案中,使用此类接口,WAN服务2502的潜在客户端(诸如组织A的管理员或管理器)可提供对网络流量将在其之间通过提供商网络的私有光纤主干路由的多个客户端驻地的指示。例如,客户端可提供信息,诸如不同地理区域(包括OAHQ 2520、OADC 2512A、2512B和2512C、OABO 2515A、2515B和2515C、以及OAPOS2518A、2518B和2518C)中的驻地的物理位置、驻地之间的区域间流量的预期速率、期望的分组延迟范围等等。在至少一些实施方案中,客户端还可指示或指定要用于获得与不同驻地有关的动态路由信息的特定协议(例如,BGP的版本或变体)。在所描绘的实施方案中,由客户端提供的信息可存储为客户端WAN元数据2546的一部分。

根据一些实施方案,WAN服务可分析所提供的关于客户端驻地的信息,并且通过编程接口向客户端提供为客户端的私有WAN建立一定数量的先前所讨论种类的虚拟路由器(VR)的建议。在至少一个实施方案中,还可通过编程接口向客户端提供VR与驻地之间的映射,VR应当优选地以编程方式与所述驻地的本地网络附接。在至少一些实施方案中,此类映射可基于提供商网络数据中心相对于客户端驻地的位置的物理位置。例如,在一些实施方案中,如果提供商网络数据中心分布在提供商网络定义区域(诸如美国区域A、美国区域B、欧洲区域A等)之间,则映射可指示推荐的提供商网络区域,在所述推荐的提供商网络区域内,应当为一个或多个附近客户端驻地建立一个或多个虚拟路由器。在一些实施方案中,基于所提供的建议,客户端可发送编程请求(例如,直接发送到先前所讨论种类的分组处理服务,或者通过WAN服务)以建立一组虚拟路由器。在其他实施方案中,代替要求客户端设立VR,WAN服务本身可代表客户端配置一组虚拟路由器。可在国家/区域2510A设立一个或多个提供商网络VR 2572A,可在国家/区域2510A设立一个或多个提供商网络VR 2572B,并且可在国家/区域2510C设立一个或多个提供商网络VR 2572C。

在至少一些实施方案中,可使用满足关于客户端驻地中的一个或多个的接近标准的提供商网络资源集(例如,用于先前所讨论的快速路径节点、异常路径节点和/或辅助任务卸载器的虚拟化计算服务的计算实例)来将VR中的每一个配置为客户端的私有WAN的一部分。在一些实施方案中,验证VR满足关于客户端驻地的接近标准可包括确保所述VR位于在计算实例启动请求从所述客户端驻地传输的情况下默认地将在其处建立计算实例的同一提供商网络定义区域中。在其他实施方案中,验证VR满足接近标准可包括确保如果客户端需要,可在客户端驻地与提供商网络数据中心之间设立专用直接物理链路(直接连接链路),或者可在客户端驻地与提供商网络之间设立平均分组传送延迟具有不大于T毫秒的VPN隧道。在不同的实施方案中,可使用其他类型的接近标准。

在各种实施方案中,可例如使用图19所示的不同类型的附接在VR本身中的一些或所有之间以及VR与客户端驻地处的网络之间建立或实现连接性。例如,可在VR 2572A、VR2572B或VR 2572C的对之间设立启用了动态路由的对等附接。根据客户端的偏好,例如,如编程附接请求中所指示,使用一个或多个VPN隧道的VPN附接可创建在一个或多个VR 2572与一些客户端驻地网络之间,而基于直接物理链路的附接(先前所讨论种类的DX附接)可设立在一个或多个VR 2572与其他客户端驻地网络之间。在至少一些实施方案中,此类附接可用于在VR与给定客户端驻地处的动态路由信息源(DRIS)2577之间建立网络连接性,所述DRIS诸如客户端拥有的路由器、客户端管理的SD-WAN装置等。在各种实施方案中,联网配置信息诸如DRIS的IP地址可由客户端通过编程接口提供给WAN服务,以使得VR能够与DRIS通信。在所描绘的实施方案中,OADC 2512C可包括一个或多个DRIS2577A,OABO 2515C可包括DRIS2577B,而OAPOS2518C可包括DRIS2577,并且可在这些DRIS与VR 2572中的至少一些之间建立连接性,使得可在VR处获得关于客户端驻地处的本地或隔离网络内的端点的动态路由信息并使用所述动态路由信息来定向区域间流量。需注意,在一些实施方案中,并非所有客户端驻地都一定包括DRIS。在一些实施方式中,可为每个VR设立用于由客户端指示的路由信息交换协议(诸如BGP的版本)的相应协议处理引擎(例如,使用上文所讨论种类的辅助任务卸载器),并且可在VR的协议处理引擎与DRIS之间发起协议的会话以传送各种客户端驻地的路由信息。在所描绘的实施方案中,源自给定客户端驻地(诸如OAHQ、OADC、OABO或OAPOS)的网络分组的内容可通过一定数量的VR 2572和私有光纤主干链路2570传输到另一客户端驻地,例如沿着使用在VR处从DRIS获得的一组动态路由信息标识的路由。

在所描绘的实施方案中,代表其在图25所示的客户端驻地之间传输流量的组织A还可能够容易地将其提供商网络资源2521连接到其私有WAN,所述私有WAN使用提供商网络的主干链路来构建。例如,组织A的管理器的管理员可使用面向客户端的WAN管理接口/工具2550来请求一个或多个客户端驻地与组织A的在提供商网络的虚拟化计算服务处建立的隔离虚拟网络之间的连接性。在各种实施方案中,响应于这种请求,可在为客户端设立的VR中的一个处改变配置设置,或者可设立新的VR,并且可使用修改的VR或新的VR来实现所请求的连接性。在所描绘的实施方案中,提供商网络还可在其中组织A当前可能不具有任何驻地或设施的附加国家诸如国家/区域2510D中具有数据中心(以及连接到此类数据中心的主干链路)。如果和当组织A扩展到此类国家/区域时,则扩展使用提供商网络的主干网络设立的私有WAN可能只需要几个编程交互。在和当要将附加驻地添加到使用WAN服务配置的现有私有WAN(要么在其中其他客户端驻地已经连接到WAN服务的区域中,要么在不同的区域中)时,客户端可简单地提供与先前通过编程接口提供的关于其他驻地相同种类的关于新驻地的信息。随后,在各种实施方案中,可在VR与附加驻地处的指定DRI之间建立连接性,并且可在已经用于客户端的VAN的一些或所有VR之间传播与附加驻地有关的路由信息,而不需要对静态路由进行任何手动配置。

在各种实施方案中,WAN服务的客户端可例如通过面向客户端的WAN管理接口2550来获得通过私有光纤主干在不同地理区域中的客户端驻地之间流动的网络流量的各种度量(例如,每单位时间传送的总字节数、带宽使用的趋势、测量的延迟、分组丢弃率等)。在一些实施方案中,客户端可例如从包括以下各项的一组粒度中选择要呈现度量的优选粒度:(a)区域级粒度(其中聚集在区域对中的客户端驻地之间流动的所有流量的度量),(b)客户端驻地级粒度(其中针对不同客户端驻地对单独地呈现度量),或(c)隔离网络级粒度(其中针对每个IVN对以及针对IVN和客户端驻地网络的每个组合单独地呈现度量)。在至少一些实施方案中,可使用统一接口来呈现区域间流量度量以及区域内流量度量。

在一些实施方案中,WAN服务的客户端可利用管理相对于其应用的各种类型的异常事件的服务来例如在停机或其他网络问题的情况下将一些应用的工作负载从一个区域到另一区域进行故障转移。例如,WAN服务可通过编程接口从客户端获得定向到给定地理区域中的客户端驻地处的第一网络端点集的流量的一个或多个分流标准(例如,故障检测、网络减速等)的指示。在各种实施方案中,WAN服务可监控与利用主干网络去往/来自不同客户端驻地的流量相关联的网络性能数据,并且基于客户端表达标准来重新路由或分流流量。例如,响应于确定已经满足分流标准,其原始或初始目的地是第一区域诸如2510A内的端点的一定数量的网络分组可改为使用适当的对等VR来递送到不同区域诸如2510B或2510C中的故障转移或备份端点集。在各种实施方案中,不同客户端的分流标准或故障转移标准可存储为客户端WAN元数据的一部分。

根据一些实施方案,客户端可请求对通过WAN服务2502传输的分组中的至少一些进行定制处理或动作。例如,由于法规或组织政策,当分组从一个国家或区域内的某个端点集传输到另一国家或区域时,可能必须生成并存储审计记录。在所描绘的实施方案中,客户端可使用编程接口来指示要执行的定制动作以及要执行动作的条件,并且WAN服务可确保相应地执行动作。在一些实施方案中,例如,类似于先前所讨论的那些的卸载装置可用于此类定制动作。

在一些实施方案中,WAN服务的客户端可使用编程接口来提供对通过提供商网络的私有光纤主干在第一地理区域中的一个或多个客户端驻地的第一集与第二地理区域中的一个或多个驻地的第二集之间流动的网络流量的目标带宽限制的指示。例如,如果/当达到限制时,WAN服务可通过使得网络分组在适当的VR处被丢弃来确保强制实施此类限制。在一些实施方案中,客户端可通过编程接口动态地请求带宽限制的增加。响应于这种对增加的请求,WAN控制平面可确保主干具有足以能够支持或维持增加的资源(例如,在用于客户端的区域间流量的各种链路处的足够的未使用带宽),并且通过编程接口提供确认新的目标带宽限制是可接受的指示。在至少一些实施方案中,WAN服务可在预期来自客户端的对附加带宽的潜在请求时,周期性地和主动地为其客户端预配附加主干光纤链路,使得当需要更高带宽时,客户端不必等待长时间。

在各种实施方案中,多条路径通过提供商网络的私有主干可用于给定客户端驻地对之间的流量。例如,出于相对于提供商网络的其他服务(诸如虚拟化计算服务、各种数据库服务等)的可用性和性能的原因,提供商网络可在不同国家或区域的其自己的数据中心之间预配多组光纤链路,并且此类光纤链路也可表示用于路由WAN服务客户端的流量的替代选项。在WAN服务客户端为客户端驻地对之间的流量指定性能目标(例如,延迟目标)的至少一些实施方案中,用于所述客户端驻地对的VR可使用从可用于客户端驻地之间的流量的若干不同替代组的主干链路中获得的当前或最近性能度量来动态地选择可满足客户端性能目标的一组特定主干链路。然后,可使用所选择的一组链路在客户端驻地之间传输至少一些分组。在一些实施方案中,客户端可例如使用类似于先前在图18和图20的上下文中所讨论的那些的配置设置来提供用于传送与指定驻地或区域有关的动态路由信息的规则。需注意,在一些实施方案中,先前在图1至图23的上下文中所讨论的虚拟路由器的各种特征和功能可由提供商网络的WAN服务利用或用于提供商网络的WAN服务。

WAN服务的示例性图形接口

图26示出根据至少一些实施方案的示例性基于web的接口,所述基于web的接口可用于提供客户端指定的位置之间的流量的WAN服务质量度量。如图所示,由在功能上类似于图25的服务2502的WAN服务实现的基于web的接口2602可包括介绍性消息区域2604,在所述介绍性消息区域中请求潜在客户端提供潜在客户端的驻地所位于的城市/区域的列表。在一些实施方案中,这种交互可在潜在客户端已经同意使用WAN服务之前发起,使得WAN服务可确定它是否可提供客户端位置之间的主干连接性和/或使得潜在客户端可查看区域间流量的WAN服务质量度量。在所描绘的实施方案中,潜在客户端已经指示驻地位于城市A、城市B和城市C,分别位于国家A的州A、国家B和国家C的州C内。在客户端驻地的位置已经输入表2606中之后,客户端可使用提交按钮2608将信息发送到WAN服务。

在所描绘的实施方案中,响应于客户端驻地位置信息的提交,WAN服务可呈现通过提供商网络的主干网络在客户端驻地所在的区域之间传输的流量的一组服务质量度量。可通过基于web的接口2602向客户端呈现客户端驻地对位置之间的流量流的相应方向的若干度量,诸如度量1、度量2、度量3、度量4、度量5和度量6。此类度量可包括例如位置之间的分组传输的延迟、传送字节/秒或传送字节/小时、分组丢弃率等等。在一些实施方案中,可提供若干度量的标称或预期值,以及在某个最近的时间间隔内获得的实际测量。在一个实施方案中,不是首先向客户端询问它们的驻地位置,而是可由WAN服务呈现示出国家/区域的各种组合的此类度量的表2610,作为向客户端通知可使用WAN服务的位置的一种方式。

在图26所描绘的实施方案中,如果潜在客户端希望使用WAN服务来通过客户端驻地之间的提供商网络主干链路来路由流量,则WAN服务可呈现关于应当设立的虚拟路由器的推荐消息2612。表2614示出在其中推荐建立VR的提供商网络定义区域(诸如推荐国家A-1、推荐国家B-1、推荐国家C-2)的列表,以及提供商网络定义区域与客户端驻地之间的映射。需注意,在至少一些实施方案中,提供商网络定义区域中的至少一些可能不完全对应于政府认可边界所定义的个别国家或州。例如,区域可由提供商网络出于其内部管理目的基于其数据中心的位置来定义,并且给定提供商网络定义区域可包括州/国家的部分,而不是完整的州/国家。在所描绘的实施方案中,当从提供商网络请求资源(诸如VR)时,在至少一些实施方案中,客户端可能必须指定要在其中建立或创建资源的提供商网络定义区域。例如,提供商网络定义区域可由用于请求资源的API或命令的参数指示。在所描绘的实施方案中,可通过基于web的接口2602向客户端提供关于下一步的指令,诸如应当如何配置VR。例如,客户端可被通知,如果客户端希望利用WAN服务,则客户端将需要提供与在客户端驻地设立的网络的动态路由信息源有关的配置信息、要用于交换动态路由信息的协议和/或针对客户端流量的任何定制动作或补充操作(诸如审计日志记录创建)。

图27示出根据至少一些实施方案的示例性基于web的接口,所述基于web的接口可用于呈现在客户端指定的位置之间流动的流量的状态信息。在基于web的接口2702中,消息2704指示客户端可如何改变呈现客户端的广域网的各个部分的状态信息(包括健康或可用性信息,以及任一方向上的测量的流量速率)的粒度。在一些实施方案中,除了其他粒度选项之外,客户端可从在区域级别、个别驻地级别(如图27的示例所示)、或者甚至驻地内和提供商网络内的个别隔离网络级别下聚集的信息进行选择。在图2710中,示出驻地P1(城市-A)与驻地P2(城市-B)、驻地P1与驻地P3(城市-C)以及驻地P2与驻地P3之间的基于提供商主干的连接性的两个流量方向的健康统计信息(“状态:OK”)和最新流量速率,其中虚拟路由器VR-1、VR-2和VR-3分别设立在这三个驻地处。在一些实施方案中,放大/缩小控制元件2711可用于改变粒度—例如,如果客户端缩小以使得若干不同区域(每个区域包括一个或多个客户端驻地)变得可见,则所显示的信息的粒度可自动地改变为区域级粒度。在所描绘的实施方案中,客户端还可通过点击在图2710中的VR或驻地之间所示的连接符来改变粒度。

在所描绘的实施方案中,除了使用基于web的接口2702查看其WAN的状态信息之外,客户端可使用基于web的接口2702的表2714来查看和/或修改客户端驻地之间的目标数据传送速率。在不同驻地之间的任一方向(例如,P1到P2、P2到P1等)或在不同区域之间的当前请求的数据传送速率可在表2714的“当前限制”列中示出。在所描绘的实施方案中,对于驻地对中的任一个来说,可使用“新限制”列来改变WAN服务所支持的目标数据传送速率。在一些实施方案中,客户端可能希望基于应用流量需求的预期增加来提高限制。在由WAN服务基于所请求的带宽限制向客户端收费的实施方案中,客户端可能希望降低目标限制。在至少一些实施方案中,可向WAN服务客户端提供除了图26和图27所示的信息之外的其他类型的信息。

使用WAN服务的示例性定制处理

在一些实施方案中,如上所提及,客户端可请求针对代表客户端通过WAN服务传输的流量的至少一部分执行指定定制处理动作。图28示出根据至少一些实施方案的其中可代表WAN服务的客户端配置用于在指定位置之间流动的流量的强制中介的示例性场景。在所描绘的示例中,已经配置VR 2825A和2825B,以用于在区域A中的客户端驻地P1与区域B中的客户端驻地P2之间路由流量。

应客户端的请求,包括审计引擎2871的强制中介2835可被配置用于客户端的区域间流量(即,用于在区域A与区域B之间传输的分组)。在所描绘的实施方案中,基于客户端提供的定制动作规范,审计引擎2871可检查在区域之间传输的一些或所有分组,并且生成和存储审计日志对应记录。在一些实施方案中,可在先前所讨论的种类的卸载装置处建立强制中介,使得定制动作不必由VR的路由平面节点执行。在其他实施方案中,可使用不用于从VR卸载工作负载的另一计算装置。在至少一个实施方案中,客户端可提供要用于对客户端的流量执行定制动作的可执行代码,并且可执行代码可由WAN服务部署在一个或多个装置处。在一些实施方案中,可例如使用相应处理引擎(诸如审计引擎2871)或使用被配置来执行所有动作的单个处理引擎来针对区域间流量执行多个客户端请求的定制动作。

在一些实施方案中,提供商网络WAN服务可被配置为用于一些客户端驻地之间的流量的主路径,而用于流量的辅助路径可使用提供商网络外部的资源来配置。因此,可使用以下两种类型的WAN链路:提供商网络私有主干链路(用作主WAN链路)和外部WAN链路(例如,类似于图24所示的那些的租借光纤线路)。在一些实施方案中,客户端的区域间流量可例如基于客户端指定的拆分条件分布在两种类型的WAN链路之间。例如,客户端可指定流量的60%将通过提供商网络主干链路流动,其余40%通过租借光纤线路发送。在一个这种实施方案中,客户端的流量拆分偏好可连同关于VR应当如何定向流量的不通过主干链路发送的部分的信息一起提供给WAN服务。VR可被配置来将所请求的流量部分定向到外部WAN链路(例如,60%的分组流通过主干发送,并且40%从VR发送到由客户端指示的WAN装置以用于在租借光纤线路上传输)。在另一种方法中,可默认地使用提供商网络主干链路,并且在由WAN服务报告故障的情况下,或者响应于在WAN服务处达到指定阈值的性能度量,可将客户端的流量切换到外部光纤线路。在一些实施方案中,得到服务的客户端可向WAN服务提供配置信息,所述配置信息可用于访问租借光纤WAN的性能度量,并且统一工具或接口(类似于图27所描绘的接口)可用于向客户端提供与两种类型的WAN有关的性能度量和健康状态。

与WAN服务的示例性编程交互

图29示出根据至少一些实施方案的与将私有提供商网络主干网络链路用于客户端驻地之间的流量有关的一组示例性编程交互。在所描绘的实施方案中,在功能上类似于图5的WAN服务2502的WAN服务2912可实现一组编程接口2977,所述一组编程接口可由客户端2910用于提交与其期望WAN配置有关的请求和消息,并且接收对应响应。编程接口2977可包括例如基于web的控制台、命令行工具、API和/或类似于图26和图27所示的那些的图形用户接口。在一些实施方案中,WAN服务可被实现为先前所讨论种类的更通用的分组处理服务(PPS)的子组件,并且PPS编程接口可用于图29所示的交互。

在所描绘的实施方案中,客户端2910(或尚未决定是否开始使用WAN服务2912的潜在客户端)可在一个或多个ClientPremisesInfo消息2914中提交关于在其之间期望通过提供商网络的私有光纤主干的网络连接性的一组客户端驻地的信息。在一些实施方案中,驻地信息可仅包括个别驻地的位置信息(例如,城市、州、国家)。在其他实施方案中,例如,如果客户端已经决定使用WAN服务,则可在ClientPremisesInfo消息中包括更多细节,诸如期望带宽和/或延迟、要用于交换与驻地有关的动态路由信息的一个或多个协议、驻地处的动态路由信息源诸如客户端管理的路由器或SD-WAN装置的IP地址等等。在一些实施方案中,作为响应,WAN服务可发送WANServiceInfoForPremises消息2915。WANServiceInfoForPremises消息可例如提供相对于驻地的提供商网络最近数据中心之间的私有主干流量的性能信息(例如,可用标称带宽、在某个最近时间间隔内测量的数据传送速率、延迟、分组错误率等)。在一些实施方案中,WANServiceInfoForPremises消息可包括对可能需要的虚拟路由器的数量的推荐,以及客户端驻地与虚拟路由器之间的映射:例如,应当将其网络以编程方式附接到推荐虚拟路由器中的每一个的特定客户端驻地。

在图29所描绘的实施方案中,客户端2910可通过编程接口2977提交一个或多个EstablishVirtualRouters请求2921,以例如创建由WAN服务推荐的一组虚拟路由器。作为响应,可例如使用先前所讨论的提供商网络的虚拟化计算服务的计算实例来建立虚拟路由器,其中与虚拟路由器有关的元数据在提供商网络的分组处理服务(PPS)处存储/管理。在一些实施方案中,在已经建立VRS并以编程方式附接到客户端驻地处的网络之后,可将VRsEstablished消息2923发送回客户端。在至少一些实施方案中,除了指派/分配RS的快速路径和异常路径节点之外,PPS还可为VR配置包括协议处理引擎(例如,用于由客户端指示的特定协议)的辅助任务卸载器,并且可在VR协议处理引擎与客户端驻地处的动态路由信息源之间发起动态路由信息交换的会话。在至少一些实施方案中,除了VR与客户端驻地网络的附接之外,可在VR的各个对之间建立启用了动态路由的对等附接(类似于在图18的上下文中所讨论的附接)。在一个实施方案中,客户端2910可发送单独的编程请求以创建VR,并且然后将VR附接到客户端驻地网络以及其他VR。在另一实施方案中,客户端可不必创建VR或请求附接;相反,WAN服务可基于由客户端提供的关于客户端驻地网络的信息来自动地设立并配置VR。在一些实施方案中,例如基于通过编程接口2977指示的客户端偏好,可在VR与一个或多个客户端驻地网络之间设立VPN隧道;在其他实施方案中,可为一个或多个客户端驻地与对应VR之间的通信设立专用私有物理链路(直接连接链路)。

在一些实施方案中,客户端2910可提供用于控制要在VR之间和/或在VR与客户端驻地动态路由信息源之间传输的路由信息的种类的规则。此类规则可通过DynamicRoutingConfigSettings消息2925来指示,所述消息可包括与图22的RoutingInfoTransferConfigSettings消息2225中包含的信息类似的信息。可指示多种不同配置设置中的任一种,包括要使用的协议的特定版本或变体(例如,各种类型的BGP诸如eBGP、iBGP、MP-BGP等中的任一种)、用于过滤出站通告路由、过滤入站通告的设置、指派给各种BGP属性以选择到目的地的下一跳的相对优先级、将用于协议处理引擎的IP地址的CIDR块、将被指派给协议处理引擎的自治系统标识符等等。可将所指定的设置和/或规则存储在WAN服务的客户端WAN元数据存储中并将其应用于客户端的WAN配置,然后向客户端发送ConfigSettingsApplied消息2927。

在所描绘的实施方案中,客户端可例如使用去往WAN服务的一个或多个TrafficDiversionConfigInfo消息2931来为其WAN提供故障转移相关设置。TrafficDiversionConfigInfo消息可指示通常将被定向到客户端驻地中的一个或多个内的某一网络端点集的流量的一个或多个分流标准。分流标准可例如包括检测到通向所述网络端点集的一个或多个链路已经发生故障或者用于将分组递送到所述端点集的延迟已经超过阈值。TrafficDiversionConfigInfo还可指示代换端点,例如,在另一区域中的客户驻地处,如果满足标准,则流量应当被分流到所述替代端点。在一些实施方案中,可存储流量分流配置信息,并且可向客户端发送DiversionInfoSaved消息2934。在各种实施方案中,根据所提供的信息,当满足分流标准时,为客户端的WAN配置的VR可将分组从一个区域中的一个网络端点集(分组的初始目的地)分流到另一区域中的另一网络端点集。

在一些实施方案中,客户端可请求针对通过提供商网络的私有光纤主干代表客户端传输的至少一些分组执行定制动作,例如在审计引擎或类似于在图28的上下文中所讨论的其他中介处。在所描绘的实施方案中,客户端2910可在一个或多个ConfigureCustomActionsForI nterregionTraffic消息2937中提供用于选择要对其执行此类动作的分组集的规则以及期望动作本身的描述符(例如,以源代码形式或可执行代码形式)。执行定制动作所需的配置操作可由WAN服务完成(诸如在为VR配置的卸载装置处实例化审核引擎或其他中介引擎),并且可向客户端发送CustomActionsEnabled消息2940。

客户端2910可例如使用SetWANTrafficLimits消息2943来设置和/或修改其WAN的性能目标。在一些实施方案中,如果和当客户端希望增加流量速率时,WAN服务可验证在私有光纤主干网络处有足够的容量可用于支持增加,然后向客户端发送WANTrafficLimitsSet响应2947。

在所描绘的实施方案中,客户端2910可通过提交ShowWANMetrics请求2951来请求其基于主干的私有WAN的性能度量、可用性度量和/或健康状态更新。作为响应,可通过一个或多个MetricsSet响应2954向客户端呈现所请求的一组度量。度量可包括例如数据传送速率、分组延迟、分组丢弃/丢失率、正常运行时间等,所述度量以由客户端选择的若干粒度(诸如区域到区域粒度、驻地到驻地粒度、每个隔离网络粒度等等)中的任一者提供。

根据至少一个实施方案,客户端2910可能希望在其客户端驻地网络与代表提供商网络的虚拟化计算服务处的客户端设立的一个或多个隔离虚拟网络(IVN)之间实现连接性。在这种实施方案中,可向WAN服务发送EnableConnectivityWithIVN请求2957。作为响应,可在客户端的WAN的适当VR处(例如,可创建IVN附接)和/或在指定IVN处进行一个或多个配置改变,以使得能够在IVN与客户端驻地之间路由流量,并且可向客户端发送IVNConnectivityEnabled消息2960。在和当客户端提供关于要添加到WAN的附加客户端驻地网络(在ClientPremisesInfo消息中指示)或附加IVN(在EnableConnectivityWithIVN消息中指示)的信息时,可在为客户端的私有WAN设立的VR之间自动地传播与附加网络有关的路由信息,而无需客户端提供静态路由或执行附加配置操作。在一些实施方案中,WAN服务2912可支持除了图29所示的那些之外的编程交互。

实现WAN服务的方法

图30是示出根据至少一些实施方案的可在提供商网络的广域网服务处执行的操作的各方面的流程图,所述提供商网络通过私有光纤主干在客户端驻地之间传输流量。如元素3001所示,可使用提供商网络的私有光纤主干网络,例如通过功能上类似于图25的WAN服务2502的WAN服务的编程接口,来确定或获得与启用了动态路由的其驻地间流量要传输的客户端的各个驻地有关的信息。提供商网络可实现除了WAN服务本身之外的多种网络可访问服务,诸如先前所讨论种类的虚拟化计算服务(VCS)和分组处理服务(PPS)。在所描绘的实施方案中,信息可包括例如驻地的位置、要用于交换可用于向/从驻地处的网络传输分组的动态路由信息的协议、客户端驻地网络的动态路由信息源诸如客户端拥有的路由器、SD-WAN装置的地址等等。

任选地,在一些实施方案中,可向客户端提供与客户端驻地位置相关的至少一些WAN服务质量信息,诸如位于客户端驻地附近的提供商网络数据中心之间的预期或测量的基于主干的数据传送速率(提供商网络的内部流量的,和/或基于关于其他WAN服务客户端的流量聚集的度量)、此类数据中心之间的分组传送延迟、分组丢失率等(元素3004)。在一些实施方案中,提供商网络可在区域组中组织其数据中心,获得在不同区域中的所选择数据中心之间流动的流量的度量,并且使用所述度量来生成和提供WAN服务质量度量。可从客户端处获得批准,以实现驻地之间基于主干的连接性(也称为客户端的私有WAN)。在一些实施方案中,批准可由客户端在相同的其中客户端提供关于要使用私有光纤主干连接的驻地的信息的消息/请求中提供。

在所描绘的实施方案中,可使用提供商网络资源(例如,使用VCS的计算实例和/或PPS的控制平面组件)为客户端的私有WAN配置一组虚拟路由器(VR)(元素3007)。在所描绘的实施方案中,可使用满足关于一个或多个客户端驻地的接近标准的提供商网络资源来设立给定VR。例如,如果客户端驻地位于国家的州S1中,则可优先于其数据中心更远的另一提供商网络定义区域R2在包括在S1或邻近州中的至少一些数据中心的提供商网络定义区域R1中设立VR。在各种实施方案中,可例如使用先前所讨论种类的编程附接在至少VR对之间以及个别VR与附近的客户端驻地网络之间建立连接性。

在一些实施方案中,可为VR中的每一个实例化或配置相应协议处理引擎(例如,BGP处理引擎)以用于接收到的与客户端驻地网络有关的动态路由信息(元素3010)。在客户端驻地中的一些或所有包括动态路由信息源诸如客户端拥有的或客户端管理的硬件路由器和/或SD-WAN装置的实施方案中,可在为客户端配置的至少一个VR与动态路由信息源中的每一个之间建立连接性。例如,可在为VR配置的协议处理引擎与客户端驻地处的动态路由信息源之间建立BGP会话。在一些实施方案中,辅助任务卸载器可用于VR的协议处理引擎。

可在VR的协议处理引擎处获得与给定客户端驻地网络有关的路由信息(元素3013)。在一些实施方案中,信息可例如根据由客户端指示的协议传送配置设置传播到代表客户端设立的其他VR。在各种实施方案中,关于给定客户端驻地网络的路由信息还可通过一个或多个VR传播到另一客户端驻地网络处的客户端驻地路由器或SD-WAN装置。

在各种实施方案中,可使用在客户端的私有WAN的VR之间获得和传播的路由信息来通过提供商网络的私有光纤主干在客户端驻地之间转发至少一些网络分组(元素3016)。

需注意,在各种实施方案中,图10、图17、图23和/或图30所示的操作中的一些可以与附图中所示不同的次序来实现,或者可并行而不是顺序地执行。另外,在一个或多个实施方式中,可能不需要图10、图17、图23和/或图30所示的操作中的一些。

例示性计算机系统

在至少一些实施方案中,实现本文所述的技术类型(例如,分组处理服务、辅助任务卸载器、广域网服务或提供商网络的其他服务的各种功能)的服务器可包括通用计算机系统,所述通用计算机系统包括或被配置来访问一个或多个计算机可访问介质。图31示出这种通用计算装置9000。在所示的实施方案中,计算装置9000包括一个或多个处理器9010,所述一个或多个处理器通过输入/输出(I/O)接口9030耦接到系统存储器9020(其可包括非易失性存储器模块和易失性存储器模块两者)。计算装置9000还包括网络接口9040,所述网络接口耦接到I/O接口9030。

在各种实施方案中,计算装置9000可以是包括一个处理器9010的单处理器系统或包括若干处理器9010(例如,两个、四个、八个或另一适合的数量)的多处理器系统。处理器9010可以是能够执行指令的任何适合的处理器。例如,在各种实施方案中,处理器9010可以是实现多种指令集架构(ISA)(诸如x86、ARM、PowerPC、SPARC、ARM或MIPS ISA或任何其他适合的ISA)中的任一者的通用处理器或嵌入式处理器。在多处理器系统中,处理器9010中的每一个通常可但不一定实现相同的ISA。在一些实施方式中,代替或者除了常规处理器之外,可使用图形处理单元(GPU)和/或现场可编程门阵列(FGA)。

系统存储器9020可被配置来存储可由一个或多个处理器9010访问的指令和数据。在至少一些实施方案中,系统存储器9020可包括易失性部分和非易失性部分两种;在其他实施方案中,仅可使用易失性存储器。在各种实施方案中,系统存储器9020的易失性部分可使用任何合适的存储器技术(诸如静态随机存取存储器(SRAM)、同步动态RAM或任何其他类型的存储器)来实现。对于系统存储器的非易失性部分(例如,其可包括一个或多个NVDIMM),在一些实施方案中可使用基于闪存的存储器装置,包括NAND闪存装置。在至少一些实施方案中,系统存储器的非易失性部分可包括电源,诸如超级电容器或其他电力存储装置(例如,电池)。在各种实施方案中,基于忆阻器的电阻性随机存取存储器(ReRAM)、三维NAND技术、铁电RAM、磁阻性RAM(MRAM)或各种类型的相变存储器(PCM)中的任一者可至少用于系统存储器的非易失性部分。在所示的实施方案中,实现一个或多个期望功能的程序指令和数据(诸如上述那些方法、技术和数据)被示出为作为代码9025和数据9026存储在系统存储器9020内。

在一个实施方案中,I/O接口9030可被配置来协调装置中的处理器9010、系统存储器9020和包括网络接口9040或其他外围接口的任何外围装置(诸如各种类型的永久性和/或易失性存储装置)之间的I/O流量。在一些实施方案中,I/O接口9030可执行任何必需的协议、定时或其他数据变换,以将来自一个组件(例如,系统存储器9020)的数据信号转换成适合于由另一组件(例如,处理器9010)使用的格式。在一些实施方案中,I/O接口9030可包括对通过各种类型的外围总线(例如,诸如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体)附接的装置的支持。在一些实施方案中,I/O接口9030的功能可拆分成两个或更多个单独的组件,例如诸如北桥和南桥。另外,在一些实施方案中,I/O接口9030(诸如通向系统存储器9020的接口)的功能中的一些或全部可直接并入到处理器9010中。

例如,网络接口9040可被配置来允许在计算装置9000与附接到一个或多个网络9050的其他装置9060(诸如图1至图30所示的其他计算机系统或装置)之间交换数据。在各种实施方案中,网络接口9040可支持通过任何合适的有线或无线通用数据网络(例如诸如以太网网络类型)进行通信。另外,网络接口9040可支持通过电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、通过存储局域网(诸如光纤通道SAN)或通过任何其他合适类型的网络和/或协议进行的通信。

在一些实施方案中,系统存储器9020可表示计算机可访问介质的一个实施方案,所述计算机可访问介质被配置来存储用于实现在图1至图30的上下文中所讨论的方法和设备的程序指令和数据的至少一个子集。然而,在其他实施方案中,可在不同类型的计算机可访问介质上接收、发送或存储程序指令和/或数据。一般来讲,计算机可访问介质可包括非暂态存储介质或存储器介质,诸如磁性或光学介质,例如通过I/O接口9030耦接到计算装置9000的磁盘或DVD/CD。非暂态计算机可访问存储介质还可包括可作为系统存储器9020或另一种类型的存储器包括在计算装置9000的一些实施方案中的任何易失性或非易失性介质,诸如RAM(例如,SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等。在一些实施方案中,多个非暂态计算机可读存储介质可共同存储程序指令,所述程序指令当在一个或多个处理器上或跨一个或多个处理器执行时实现上述方法和技术的至少一个子集。计算机可访问介质还可包括通过通信介质(诸如网络和/或无线链路)传达的传输介质或信号,诸如电信号、电磁信号或数字信号,所述通信介质诸如可通过网络接口9040来实现。在各种实施方案中,可使用诸如图31所示的多个计算装置中的部分或全部来实现所述功能;例如,在各种不同装置和服务器上运行的软件组件可协作来提供所述功能。在一些实施方案中,除了或者代替使用通用计算机系统来实现,可使用存储装置、网络装置或专用计算机系统来实现所述功能的部分。如本文所用的术语“计算装置”是指至少所有这些类型的装置,并且不限于这些类型的装置。

可鉴于以下条款来描述本公开的实施方案:

条款1.一种系统,其包括:

一个或多个计算装置;

其中所述一个或多个计算装置包括指令,所述指令当在所述一个或多个计算装置上或跨所述一个或多个计算装置执行时使得所述一个或多个计算装置:

通过提供商网络的广域网服务的一个或多个编程接口获得以下的指示:(a)网络流量将在其间通过所述提供商网络的私有光纤主干路由的多个客户端驻地,所述多个客户端驻地包括第一地理区域中的第一驻地和第二地理区域中的第二驻地,以及(b)要用于获得与至少所述第一驻地和所述第二驻地有关的动态路由信息的特定协议,其中所述提供商网络包括虚拟化计算服务;

使用第一提供商网络数据中心处的所述虚拟化计算服务的满足关于所述第一驻地的接近标准的至少第一资源集来配置第一虚拟路由器,并且使用第二提供商网络数据中心处的满足关于所述第二驻地的所述接近标准的至少第二资源集来配置第二虚拟路由器;

实现(a)所述第一虚拟路由器与所述第二虚拟路由器、(b)所述第一虚拟路由器与所述第一驻地处的第一动态路由信息源以及(c)所述第二虚拟路由器与所述第二驻地处的第二动态路由信息源之间的连接性;并且

使得源自所述第一驻地的至少一个网络分组的内容使用一组路由信息通过所述私有光纤主干传送到所述第二驻地,其中所述一组路由信息的至少一部分由与所述第二虚拟路由器相关联的协议处理引擎从所述第二动态路由信息源获得,并且其中所述协议处理引擎被配置来处理所述特定协议的消息。

条款2.如条款1所述的系统,其中所述一个或多个计算装置包括另外的指令,所述另外的指令当在所述一个或多个计算装置上或跨所述一个或多个计算装置执行时使得所述一个或多个计算装置:

使得通过所述一个或多个编程接口呈现通过所述私有光纤主干在所述第一地理区域与所述第二地理区域之间流动的网络流量的一个或多个度量。

条款3.如条款2所述的系统,其中所述一个或多个计算装置包括另外的指令,所述另外的指令当在所述一个或多个计算装置上或跨所述一个或多个计算装置执行时使得所述一个或多个计算装置:

通过所述一个或多个编程接口获得要呈现所述一个或多个度量的特定粒度的指示,所述特定粒度选自一组粒度,所述一组粒度包括(a)区域级粒度、(b)驻地级粒度或(c)隔离网络级粒度,其中所述一个或多个度量以所述特定粒度呈现。

条款4.如条款1-2中任一项所述的系统,其中所述一个或多个计算装置包括另外的指令,所述另外的指令当在所述一个或多个计算装置上或跨所述一个或多个计算装置执行时使得所述一个或多个计算装置:

通过所述一个或多个编程接口获得定向到所述第二地理区域中的第一网络端点集的流量的分流标准的指示;

确定已经满足所述分流标准;并且

响应于确定已经满足所述分流标准,使得源自所述第一地理区域的特定网络分组通过所述第一虚拟路由器递送到第三地理区域中的网络端点,其中所述特定网络分组的初始目的地地址是所述第一集中的网络端点的地址。

条款5.如条款1-2或4中任一项所述的系统,其中所述一个或多个计算装置包括另外的指令,所述另外的指令当在所述一个或多个计算装置上或跨所述一个或多个计算装置执行时使得所述一个或多个计算装置:

通过所述一个或多个编程接口获得附加驻地的指示,其中所述附加驻地与所述多个客户端驻地中的一个或多个驻地之间的网络流量将通过所述私有光纤主干传输;并且

将与所述附加驻地有关的路由信息传播到包括所述第一虚拟路由器和所述第二虚拟路由器的一个或多个虚拟路由器,而无需指定通向所述附加驻地的静态路由。

条款6.一种计算机实现的方法,其包括:

通过一个或多个编程接口获得网络流量将在其间通过提供商网络的私有光纤主干路由的多个驻地的指示,所述多个驻地包括第一地理区域中的第一驻地和第二地理区域中的第二驻地;

使用满足关于所述第一驻地的接近标准的第一资源集来建立第一虚拟路由器,并且使用满足关于所述第二驻地的所述接近标准的第二资源集来建立第二虚拟路由器;

实现(a)所述第一虚拟路由器与所述第二虚拟路由器、(b)所述第一虚拟路由器与所述第一驻地处的第一动态路由信息源以及(c)所述第二虚拟路由器与所述第二驻地处的第二动态路由信息源之间的连接性;以及

使得源自所述第一驻地的至少一个网络分组的内容使用一组路由信息通过所述私有光纤主干传送到所述第二驻地,其中所述一组路由信息的至少一部分由所述第二虚拟路由器从所述第二动态路由信息源获得。

条款7.如条款6所述的计算机实现的方法,其还包括:

通过所述一个或多个编程接口获得关于在所述第一地理区域与第二地理区域之间传输的至少一些网络分组要执行的定制动作的指示;以及

针对特定网络分组执行所述定制动作。

条款8.如条款7所述的计算机实现的方法,其中所述定制动作包括存储审计日志记录。

条款9.如条款6-7中任一项所述的计算机实现的方法,其还包括:

通过编程接口获得实现所述第一驻地与提供商网络的虚拟化计算服务的隔离虚拟网络之间的连接性的请求;以及

修改所述第一虚拟路由器的配置以实现所述第一驻地与所述隔离虚拟网络之间的所述连接性。

条款10.如条款6-7或9中任一项所述的计算机实现的方法,其中所述第一组路由信息的所述部分在边界网关协议(BGP)版本的会话中获得。

条款11.如条款6-7或9-10中任一项所述的计算机实现的方法,其中在所述第一虚拟路由器与所述第一动态路由信息源之间建立连接性包括建立一个或多个虚拟私有网络(VPN)隧道。

条款12.如条款6-7或9-11中任一项所述的计算机实现的方法,其中所述第一虚拟路由器与所述第一动态路由信息源之间的连接性使用专用物理链路来建立。

条款13.如条款6-7或9-12中任一项所述的计算机实现的方法,其中所述第二动态路由信息源包括软件定义的广域网(SD-WAN)装置,所述计算机实现的方法还包括:

通过所述一个或多个编程接口获得所述SD-WAN装置的联网配置信息,其中实现所述第二虚拟路由器与所述第二动态路由信息源之间的连接性包括利用所述联网配置信息。

条款14.如条款6-7或9-13中任一项所述的计算机实现的方法,其还包括:

通过所述一个或多个编程接口获得通过所述私有光纤主干在所述第一地理区域中的第一组驻地与所述第二地理区域中的第二组驻地之间流动的网络流量的目标带宽限制的指示;以及

通过所述一个或多个编程接口提供所述私有光纤主干具有足以使得流量能够以所述目标带宽限制流动的资源的指示。

条款15.如条款6-7或9-14中任一项所述的计算机实现的方法,其还包括:

使得通过所述一个或多个编程接口呈现以下的指示:(a)用于在所述多个驻地之间路由流量的推荐数量的虚拟路由器,以及(b)所述多个驻地中的个别驻地与要与之建立来自所述个别驻地的连接性的虚拟路由器之间的推荐映射。

条款16.一种或多种非暂态计算机可访问存储介质,其存储程序指令,所述程序指令当在一个或多个处理器上或跨一个或多个处理器执行时使得所述一个或多个处理器:

通过一个或多个编程接口获得网络流量将在其间通过提供商网络的私有光纤主干路由的多个驻地的指示,所述多个驻地包括第一地理区域中的第一驻地和第二地理区域中的第二驻地;

使用满足关于所述第一驻地的接近标准的第一资源集来建立第一虚拟路由器,并且使用满足关于所述第二驻地的所述接近标准的第二资源集来建立第二虚拟路由器;

实现(a)所述第一虚拟路由器与所述第二虚拟路由器、(b)所述第一虚拟路由器与所述第一驻地处的第一动态路由信息源以及(c)所述第二虚拟路由器与所述第二驻地处的第二动态路由信息源之间的连接性;并且

使得源自所述第一驻地的至少一个网络分组的内容使用一组路由信息通过所述私有光纤主干传送到所述第二驻地,其中所述一组路由信息的至少一部分由所述第二虚拟路由器从所述第二动态路由信息源获得。

条款17.如条款16所述的一种或多种非暂态计算机可访问存储介质,其中所述第一虚拟路由器包括快速路径节点和异常路径节点,其中所述快速路径节点被配置来(a)从所述异常路径节点获得一个或多个路由动作并且(b)实现所述路由动作,其中所述一种或多种非暂态计算机可访问存储介质存储另外的程序指令,所述另外的程序指令当在一个或多个处理器上或跨一个或多个处理器执行时进一步使得所述一个或多个处理器:

在链接到所述第一虚拟路由器的一个或多个节点的卸载装置处配置路由信息交换协议处理引擎,其中所述第一组路由信息的所述部分在所述路由信息交换协议处理引擎处进行处理。

条款18.如条款16-17中任一项所述的一种或多种非暂态计算机可访问存储介质,其中所述第一组路由信息的所述部分通过边界网关协议(BGP)会话从所述第二动态路由信息源获得。

条款19.如条款16-18中任一项所述的一种或多种非暂态计算机可访问存储介质,其存储另外的程序指令,所述另外的程序指令当在一个或多个处理器上或跨一个或多个处理器执行时进一步使得所述一个或多个处理器:

通过所述一个或多个编程接口获得所述第一驻地与所述第二驻地之间的流量的性能目标;

获得能够用于在所述第一驻地与所述第二驻地之间传输流量的所述私有光纤主干的多个链路的相应性能度量;并且

至少部分地基于所述相应性能度量和所述性能目标来选择所述多个链路中的特定链路以将源自所述第一驻地的一个或多个网络分组传输到所述第二驻地。

条款20.如条款16-19中任一项所述的一种或多种非暂态计算机可访问存储介质,其存储另外的程序指令,所述另外的程序指令当在一个或多个处理器上或跨一个或多个处理器执行时进一步使得所述一个或多个处理器:

通过所述一个或多个编程接口获得用于传送与所述第二驻地有关的路由信息的一个或多个规则,其中所述第一组路由信息根据所述一个或多个规则提供给所述第一虚拟路由器。

总结

各种实施方案还可包括在计算机可访问介质上接收、发送或存储根据前文描述实现的指令和/或数据。一般来讲,计算机可访问介质可包括:存储介质或存储器介质诸如磁性介质或光学介质,例如磁盘或DVD/CD-ROM;易失性或非易失性介质诸如RAM(例如,SDRAM、DDR、RDRAM、SRAM等)、ROM等;以及通过通信介质诸如网络和/或无线链路传达的传输介质或信号诸如电信号、电磁信号或数字信号。

如图所示并且如本文所述的各种方法表示方法的示例性实施方案。所述方法可在软件、硬件或它们的组合中实现。方法的次序可改变,并且各种元件可添加、重新排序、组合、省略、修改等。

受益于本公开的本领域技术人员将清楚地知晓可作出各种修改和改变。意图涵盖所有此类修改和改变,并且因此,以上描述应被视为具有说明性而非限制性意义。

相关技术
  • 支持对使用敏感的计费和运营服务的网络服务提供商平台
  • 使用聚合安全引擎针对网络服务提供商的隐私增强密钥管理
技术分类

06120116483278