CN117178534A - 存在点中的网络管理服务 - Google Patents

存在点中的网络管理服务 Download PDF

Info

Publication number
CN117178534A
CN117178534A CN202180097261.8A CN202180097261A CN117178534A CN 117178534 A CN117178534 A CN 117178534A CN 202180097261 A CN202180097261 A CN 202180097261A CN 117178534 A CN117178534 A CN 117178534A
Authority
CN
China
Prior art keywords
cloud gateway
service node
cloud
network
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180097261.8A
Other languages
English (en)
Inventor
P·罗兰多
J·贾殷
R·科甘蒂
S·沙
A·歌利亚
C·A·纳拉希罕
G·M·贝鲁尔
V·卡马特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
VMware LLC
Original Assignee
VMware LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by VMware LLC filed Critical VMware LLC
Priority claimed from PCT/US2021/065171 external-priority patent/WO2023009159A1/en
Publication of CN117178534A publication Critical patent/CN117178534A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • H04L45/566Routing instructions carried by the data packet, e.g. active networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes

Abstract

提供了利用网络虚拟化管理部署的软件定义广域网(SD‑WAN)环境。由网络虚拟化管理部署管理的边缘安全服务在SD‑WAN环境中可用。云网关将SD‑WAN流量转发到受管理的服务节点以应用安全服务。网络流量封装有相应的元数据,以确保服务可以根据期望的策略执行。在云网关和受管理的服务节点之间建立点对点隧道,以使用覆盖逻辑网络将元数据传输到受管理的服务节点。受管理的服务节点使用元数据中的虚拟网络标识符(VNI)来标识租户/策略。接收数据包的受管理的服务节点基于VNI使用提供商服务路由器(T0‑SR)和租户服务路由器(T1‑SR)为租户应用规定的服务,并将所得的流量返回到发起该流量的云网关。

Description

存在点中的网络管理服务
背景技术
软件定义的广域网(SD-WAN)是一种通过对跨广域网(WAN)引导流量的网络硬件或软件的集中控制来简化广域联网的技术。它还允许组织将私有WAN连接与互联网、宽带、长期演进(LTE)和/或5G连接组合或用其替换。中央控制器设置策略,对WAN流量进行优先级化、优化并路由,并动态选择最优链路和路径以获得最佳性能。SD-WAN供应商可以用其SD-WAN虚拟或物理装置(appliance)来提供安全功能,这些装置通常被部署在数据中心或分支机构处。
安全访问服务边缘(SASE)是如下安全框架,该安全框架将WAN安全性作为云服务提供给连接的源(例如,用户、设备、分支机构、IoT设备、边缘计算位置)而不是企业数据中心。安全是基于身份、实时上下文以及企业安全和合规策略的。身份可以附连于从个人/用户到设备、分支机构、云服务、应用、IoT系统或边缘计算位置的任何事物。通常,SASE合并SD-WAN作为为云服务的一部分,该云服务还递送移动访问和完整安全堆栈(securitystack),其是从本地存在点(point of presence)或者说PoP(例如,路由器、交换机、服务器和流量跨越网络所需的其他设备)递送的。SASE聚合(converge)连接性和安全堆栈,并将它们移动到网络边缘。曾经驻留在数据中心或外围的分支位置的装置中的安全堆栈作为经聚合的集成的堆栈(其也可以称为SASE堆栈)被安装在云中。
发明内容
一些实施例提供了隐藏网络虚拟化管理用户接口组件的云原生解决方案(cloudnative solution)或软件定义的广域网(SD-WAN)环境。具体地,SD-WAN编排器(orchestrator)执行或驱动网络虚拟化管理操作,诸如在SD-WAN环境中供应租户、配置网络服务和支持操作。使用诸如租户服务路由器(T1-SR)和提供商服务路由器(T0-SR)的构造在租户之间对网络虚拟化管理部署进行分区,使得所有流量可以被适当地监管。
在一些实施例中,由网络虚拟化管理部署管理的边缘安全服务(诸如L4-7防火墙、URL过滤、TLS代理、IDS/IPS等)被使得在SD-WAN环境中可用,因此安全服务可以被应用于对SD-WAN中的用户流量进行分类和监管。在一些实施例中,云网关将SD-WAN流量转发到受管理的服务节点以应用安全服务。用对应的元数据封装网络流量以确保服务可以根据期望的策略被执行。点对点隧道在云网关和受管理的服务节点之间建立,以使用特定的覆盖逻辑网络(overlay logic network)将元数据传输到受管理的服务节点。所传输的元数据中的虚拟网络标识符(VNI)被受管理的服务节点用来标识租户/策略。接收数据包的受管理的服务节点基于VNI使用适当租户级服务路由器(或者说T1-SR)为租户应用规定的服务,并且所得到的流量被返回到发起该流量的云网关。
在一些实施例中,网络虚拟化管理部署为SASE提供有状态的主动-主动(A/A)高可用性服务以防止PoP中的硬件故障。具体地,同一PoP中的一对受管理的服务节点被配置为在A/A配置中联合地提供有状态的网络安全服务。当该对中的一个受管理的服务节点故障时,另一个受管理的服务节点通过承担(assuming)故障的受管理的服务节点的隧道端点和服务状态来接管。
在一些实施例中,T1-SR和T0-SR具有与外部网络的上行链路和下行链路连接。在一些实施例中,实现T0-SR和一个或多个T1-SR的受管理的服务节点对去往外部网络的数据包流量执行两层地址转换。该两层地址转换是为了确保来自外部网络的响应流量可以成功回到受管理的服务节点。
前面的概述旨在用作对本发明的一些实施例的简要介绍。这并不意味着是对本文档中公开的所有创造性主题的介绍或概述。下面的具体实施方式和具体实施方式中参考的附图将进一步描述发明内容中描述的实施例以及其他实施例。因此,为了理解本文档描述的所有实施例,需要对发明内容、具体实施方式、附图和权利要求进行全面审查。此外,要求保护的主题不受发明内容、具体实施方式和附图中的说明性细节限制,而是由所附权利要求限定,因为要求保护的主题可以在不脱离主题精神的情况下以其他具体形式体现。
附图说明
本发明的新颖特征在所附权利要求中阐述。然而,为了解释的目的,本发明的若干实施例在以下附图中阐述。
图1a-图1b概念性地图示了在SASE上下文中具有网络虚拟化管理的SD-WAN环境。
图2概念性地图示了受管理的服务节点中的Tl-SR被用于为不同的租户段应用安全策略。
图3概念性地图示了云网关使用覆盖隧道发送到受管理的服务节点以获取安全服务。
图4概念性地图示了用于将数据包流量发送到受管理的服务节点以应用安全策略或服务的过程。
图5概念性地图示了用于配置云网关和服务节点以在SD-WAN中实现安全服务的过程。
图6概念性地图示了从租户段到受管理的服务节点的T1-SR的数据包流量的封装和解封装。
图7a-图7b概念性地图示了在应用服务之后受管理的服务节点将数据包返回到源云网关。
图8概念性地图示了用于将安全服务应用于来自云网关的数据包并将数据包返回到云网关的过程。
图9a-图9b概念性地图示了处于主动-主动高可用性配置中以提供有状态的安全服务的成对两个受管理的服务节点。
图10概念性地图示了用于在主动-主动配置中使用一对受管理的服务节点以在SD-WAN中提供安全服务的过程。
图11a-图11b概念性地图示了受管理的服务节点使用T0-SR和T1-SR将数据包从云网关发送到外部网络。
图12概念性地图示了用于使用受管理的服务节点将数据包流量从云网关直接发送到外部网络的过程。
图13A-图13C图示了虚拟网络的示例。
图14图示了用作运行虚拟化软件的主机的计算设备。
图15概念性地图示了用其实现本发明的一些实施例的计算机系统。
具体实施方式
在本发明的以下详细描述中,阐述和描述了本发明的许多细节、示例和实施例。然而,对于本领域技术人员来说将清楚和明晰的是,本发明不限于所阐述的实施例并且本发明可以在没有讨论的一些具体细节和示例的情况下实践。
网络虚拟化管理(例如,VMware)通常被部署在场所、存在点(PoP)或相同的管理实体(administrative entity)操作该部署的虚拟私有云环境中。然而,在安全访问服务边缘(SASE)用例中,单个网络虚拟化管理部署预计将被多个客户/租户共享,并且预计是基于云的。通常,用户不关心各个网络虚拟化管理组件的位置,无论它们的物理放置如何,这些组件都作为同构实体可以被消费。
一些实施例提供了隐藏网络虚拟化管理用户接口组件(例如,API)的云原生解决方案或SD-WAN环境。具体地,SD-WAN编排器(例如,VeloCloud或VCO)执行或驱动网络虚拟化管理操作,诸如在SD-WAN环境中供应租户、配置网络服务和支持操作。网络虚拟化管理部署使用诸如租户服务路由器(T1-SR)和提供商服务路由器(T0-SR)之类的构造在租户之间被分区,使得所有流量可以被适当地监管。
在一些实施例中,由网络虚拟化管理部署管理的边缘安全服务(诸如L4-7防火墙、URL过滤、TLS代理、IDS/IPS等)被使得在SD-WAN环境中可用,因此安全服务可以被应用于对SD-WAN中的用户流量进行分类和监管。在一些实施例中,云网关(也被称为SD-WAN网关,例如网关或VCG)将SD-WAN流量转发到受管理的服务节点(其被网络虚拟化管理所管理)以应用安全服务。网络流量被用对应的元数据封装以确保服务可以根据期望的策略来执行。点对点隧道在云网关和受管理的服务节点之间建立,以使用特定的覆盖逻辑网络(例如,VMware/>)将元数据传输到受管理的服务节点。所传输的元数据中的虚拟网络标识符(VNI)被受管理的服务节点用来标识租户/策略。接收数据包(或其他类型的数据消息)的受管理的服务节点基于VNI使用适当的租户级服务路由器(或Tl-SR)为租户应用规定的服务,并且所得到的流量被返回到发起流量的云网关。此操作也被称为数据平面拼接(data plane stitching)。
图1a-图1b概念性地图示了在SASE上下文中具有网络虚拟化管理的SD-WAN环境。具体地,SD-WAN编排器105通过将各个物理位置中的各个网络组件配置为SD-WAN的组件来跨各个公共和私有网络定义SD-WAN环境100。SD-WAN编排器105还利用网络虚拟化管理部署来供应和管理服务节点,以向SD-WAN环境100的用户应用提供安全服务。
如图1a中所示,SD-WAN环境100被覆盖在底层物理网络基础设施之上,该底层物理网络基础设施可以包括互联网和各个私有连接。SD-WAN环境100由SD-WAN编排器105(或“编排器”)管理,该编排器供应和配置SD-WAN的各个组件。这些SD-WAN组件由位于SD-WAN 100的底层物理网络基础设施的各个物理位置处的各个存在点(PoP)来物理地托管。这些SD-WAN组件将不同物理位置(数据中心、分支机构等)中的网络和计算资源集合在一起,以形成作为SD-WAN 100的虚拟网络。
SD-WAN编排器105配置和/或供应SD-WAN组件,诸如云网关111-113(也被称为SD-WAN网关,例如,VeloCloud或VCG)和云边缘121-124(也被称为SD-WAN边缘,例如,VeloCloud/>或VCE)。云网关(VCG)被托管在云中的PoP中,并且这些PoP可能物理地位于世界各地。SD-WAN中的不同流量流被发送到云网关,并且它们将流量路由到它们的目的地,诸如云数据中心或公司数据中心。
云网关在它们自己和云边缘之间执行优化。云边缘(VCE)可以被配置为使用物理上靠近的云网关以获得更好的性能。云边缘是被放置在分支机构和数据中心的设备。它可以是多个WAN连接的端点并对这些WAN连接上的流量进行转向(steer)以获得最优性能和可靠性。云边缘设备可以提供对各种路由协议的支持,诸如开放最短路径优先(OSPF)和边界网关协议(BGP),以及具有IP服务级别协议(SLA)的静态路由。它还可以执行传统路由器的功能。
如所示出的,云网关111-113在物理上位于底层物理网络的不同部分,以在参与SD-WAN 100的各个数据中心、分支机构和服务提供商之间路由网络流量。云边缘121被配置为将SD-WAN 100扩展到分支机构131中,云边缘122被配置为将SD-WAN 100扩展到分支机构132中,云边缘123被配置为将SD-WAN 100扩展到数据中心133中,并且云边缘124被配置为将SD-WAN 100扩展到数据中心134中。云边缘121-124中的每一个云边缘使用一个或多个物理上接近的云网关111-113来路由流量通过SD-WAN 100。在图1a的示例中,云边缘121使用云网关111,云边缘122使用云网关111和113,云边缘123使用云网关112,并且云边缘124使用云网关112和113。
在一些实施例中,编排器105是云托管的集中式管理系统(例如,VMware SD-WAN或VCO)的一部分,该系统可以由存在于同一PoP内或者跨多个不同的PoP的管理集群(management cluster)来托管。在一些实施例中,云边缘121-124连接到SD-WAN编排器105并从该编排器下载这些云边缘的配置。SD-WAN编排器105还提供对各个SD-WAN组件性能的可见性,并辅助它们的故障排除。在一些实施例中,网络虚拟化管理软件暴露一组API,这些API可以被SD-WAN编排器105用来驱动网络虚拟化管理部署来例如控制受管理的服务节点141、定义安全策略以及驱动受管理的服务节点中的安全服务的配置。
在SD-WAN环境100中,受管理的服务节点141使来自安全服务提供商135的安全服务对SD-WAN 100的租户或客户可用。租户可以是SD-WAN提供商的客户或客户的细分(例如业务单位、站点等)。更一般地,租户段(tenant segment)的边界是沿不同的安全态势定义的。在一些实施例中,受管理的服务节点用于提供不能在分布式路由器上运行的安全和网关服务。受管理的服务节点可以对来自同一PoP的其他网络实体(例如,云网关)的E-W流量应用安全服务。这些受管理的服务节点还可以执行边缘服务,诸如N-S路由(进出外部网络的流量)、负载平衡、DHCP、VPN、NAT等。在一些实施例中,受管理的服务节点作为虚拟机(VM)或数据计算节点(DCN)在运行虚拟化软件或管理程序(诸如VMware)的主机上运行。这些受管理的服务节点受网络虚拟化管理部署(例如,VMware/>Edge)控制。编排器105与网络虚拟化管理部署通信以配置受管理的服务节点141。
图1b概念性地图示了SD-WAN编排器和由网络虚拟化管理部署管理的服务节点。如所示出的,网络虚拟化管理软件(或网络虚拟化管理器)被部署在贯穿SD-WAN环境100的底层物理网络的各个存在点(PoP),包括PoP A、PoP B和PoP C。每个PoP(例如,数据中心)包括实现网络虚拟化管理、服务节点和云网关的计算设备集群。SD-WAN 100的SD-WAN编排器105与部署在各个PoP中的网络虚拟化管理器通信以协调它们的操作。编排器105可以使用由网络虚拟化管理软件提供的API来与网络虚拟化管理器协调。每个PoP的网络虚拟化管理器继而控制和管理该PoP的主机机器和网络设备(例如,服务节点)以及其中的任何网络构造。例如,编排器105可以与网络虚拟化管理器通信以配置和管理同一PoP的服务节点(例如,受管理的服务节点141)以实现提供商级(层0或T0)路由器和租户级(层1或T1)路由器。PoP中实现的每个服务节点还被配置为接收来自同一PoP处的云网关(VCG)的数据包流量。
在一些实施例中,SD-WAN 100的编排方案具有多个层。编排方案的第一层处置面向用户的交互(标记为“编排用户接口”)。第二中间层(标记为“编排中间层”)处置编排器与每个PoP的交互,包括与网络虚拟化管理(例如)、虚拟化软件(例如/>)和服务器管理(例如,/>)的通信。该中间层还可以处置不同域之间的任何规则转换等。
SD-WAN可以服务于多个不同的租户。在一些实施例中,SD-WAN被划分为租户段(也被称为velo段或SD-WAN段),每个租户段用于引导租户的流量。在示例中,SD-WAN 100具有三个租户段A、B和C。每个租户段可能跨越多个数据中心和/或分支机构。在图1a的示例中,分支机构131具有租户段A的网络流量,分支机构132具有租户段B的网络流量,数据中心133具有租户段A和C的流量,数据中心134具有租户段A和B的流量。每个客户或租户可能有一个或若干个租户段。不同租户段的流量不彼此混合。在一些实施例中,在每个租户段内,SD-WAN应用特定于该租户段(或特定于与租户段相关联的VNI)的一组安全策略(例如,防火墙规则、入侵检测规则等)。
在一些实施例中,网络虚拟化管理部署提供网络实体以将不同组的安全策略应用到不同租户段的数据包流量。在一些实施例中,专用的租户级(T1)实体被定义为将安全策略应用于个别租户段。在一些实施例中,对于每个租户段,一个或多个专用的租户级服务路由器(T1-SR)被用作处理管道以将策略应用到该租户段的数据包。
如所提及的,在SD-WAN 100中,来自数据中心和分支机构的流量被发送到云边缘和云网关。在一些实施例中,云网关将其从云边缘接收的流量发送到应用策略的T1-SR。在一些实施例中,这些T1-SR在网络虚拟化管理(部署在PoP中)所管理的服务节点(例如,受管理的服务节点141)中实现或供应。在一些实施例中,受管理的服务节点使用嵌入或封装在数据包流量中的元数据来标识该流量所属的租户段或要应用的策略,并因此标识哪个T1-SR应该被用来执行安全服务。在一些实施例中,受管理的服务节点将经T1-SR处理的数据包流量发送回该流量的起源处(例如,将数据包流量发送至受管理的服务节点的云网关)。在一些实施例中,受管理的服务节点将经处理的数据包流量直接转发到目的地,而不返回到云网关。
图2概念性地图示了受管理的服务节点中的T1-SR被用于为不同的租户段应用安全策略。如所示出的,云边缘121、123和124从租户段A接收流量,并且云边缘122和124从租户段B接收流量。云网关111从云边缘121和122接收流量。云网关112从云边缘123和124接收流量。云网关111和112被配置为向受管理的服务节点141发送流量。在受管理的服务节点141内,T1-SR 211和212被供应来处理租户段A的流量,并且T1-SR 213和214被供应来处理租户段B的流量。
在一些实施例中,每个T1-SR服务单个VNI,该单个VNI被映射到单个租户段或一组安全策略。在一些实施例中,多个T1-SR可以服务用于相同VNI(或租户段)的流量。例如,SD-WAN编排器105可以供应单个T1-SR来服务租户段的一部分的流量。SD-WAN编排器105可以供应T1-SR来处理租户段的来自单个云边缘的流量。针对特定租户段,SD-WAN编排器105可以供应第一T1-SR以应用第一安全策略以及供应第二T1-SR以应用第二安全策略。在一些实施例中,当用于单个租户段或客户的容量超过边缘节点或边缘节点对的吞吐量时,编排器105可以供应附加的受管理的服务节点或T1-SR来服务用于同一VNI的流量。
在一些实施例中,受管理的服务节点141提供云网关和T1-SR之间的定制拼接逻辑230,以及T1-SR和互联网之间的上行链路逻辑240。在一些实施例中,拼接逻辑230用于数据包的封装和解封装以及多路分解流量,并且上行链路逻辑240用于对进入互联网的流量应用路由和源网络地址转换(SNAT)。在一些实施例中,SD-WAN编排器105在受管理的服务节点141中供应由不同租户共享的提供商级(T0)服务路由器(T0-SR)以实现拼接逻辑230和上行链路逻辑240的功能。在一些实施例中,到达受管理的服务节点141的每个数据包用元数据封装。T0-SR继而对该数据包进行解封装并使用该元数据对数据包进行多路分解(例如,基于元数据中的VNI或应用ID来确定数据包应该发送到T1-SR 211-214中的哪个)。
在一些实施例中,云网关通过去往与受管理的服务节点对应的隧道端点(TEP)的覆盖隧道(诸如)将流量发送到受管理的服务节点(诸如受管理的服务节点141)。在一些实施例中,每个受管理的服务节点能够通过唯一的TEP来寻址。在一些实施例中,一个受管理的服务节点能够通过多个TEP来寻址,诸如在高可用性实现方案中当一个受管理的服务节点接管已经故障的另一受管理的服务节点时。
图3概念性地图示了云网关使用覆盖隧道将数据包流量发送到受管理的服务节点以获取安全服务。受管理的服务节点被网络管理器配置为用作隧道端点(TEP),以接收来自云网关的隧道流量(tunneled traffic)。如所示出的,云网关111具有外部IP地址10.0.0.1。受管理的边缘节点341具有外部IP地址10.0.0.253。另一受管理的服务节点342具有IP地址10.0.0.254。(受管理的服务节点341和342类似于受管理的服务节点141)。
云网关111使用外部IP地址将数据包流量发送到受管理的服务节点341和受管理的服务节点342。去往受管理的节点341的数据包流量是覆盖隧道301中以TEP 351(TEP X)为目的地的经封装的流量,并且去往受管理的节点342的数据包流量是覆盖隧道302中以TEP 352(TEP Y)为目的地的经封装的流量。受管理的服务节点341具有T0-SR 311,该T0-SR对传入的数据包流量进行解封装以查看流量是否被朝向TEP 351进行隧道传输。TEP 351处的隧道流量还被分发到用于租户段A的T1-SR 321或用于租户段B的T1-SR 322。同样地,TEP352处的隧道流量随后将还被分发到用于租户段A的T1-SR 323或用于租户段B的T1-SR324。隧道流量基于不同的VNI而被隔离。
在一些实施例中,云网关维护被固定(pinned)到隧道端点的流。内部/用户IP地址(以及一般的流5元组)在VNI中是唯一的。在一些实施例中,云网关被配置为具有该云网关可以针对每个租户段将流量引导到的隧道端点的列表。在图3的示例中,云网关111具有用于租户段A的隧道端点的列表,该列表至少包括10.0.0.253(TEP X)和10.0.0.254(TEP Y)。这些隧道端点由本地网络管理器根据来自用户接口(例如,SD-WAN编排器105使用的API)的请求来分配。在一些实施例中,对于每个租户段,云网关配置有(i)租户段的VNI,以及(ii)用于租户段的隧道端点的列表。隧道端点的列表中的每个元素指定隧道端点的IP地址、用于该隧道端点的内部以太网报头的目的地MAC地址、以及隧道端点的状态(例如,可行(viable)或不可行(non-viable))。在一些实施例中,SD-WAN编排器105在它供应用于租户段的T1-SR时,在云网关中为该租户段构造隧道端点的列表。
图4概念性地图示了用于将数据包流量发送到受管理的服务节点以应用安全策略或服务的过程400。在一些实施例中,云网关在它向受管理的节点发送数据包以应用安全策略时以及当它从受管理的节点接收到返回数据包时执行过程400。在一些实施例中,实现云网关(例如,云网关111)的计算设备的一个或多个处理单元(例如,处理器)通过执行存储在计算机可读介质中的指令来执行过程400。
当云网关从租户段接收到(在410处)要使安全服务被应用的数据包时,过程400开始。云网关查找(在420处)租户段的VNI并为该租户段选择可行的隧道端点(如果多个端点可行,则云网关可以在端点之间进行负载平衡,但同一流的数据包必须在该流的持续时间内维持固定到该端点)。云网关使用包括租户段的VNI的元数据来封装(在430处)数据包。然后,云网关将经封装的数据包发送(在440处)到所选择的隧道端点。该数据包可能具有对云网关而言唯一的源MAC地址以及针对所选择的(可行)隧道端点而指定的目的地MAC。在一些实施例中,操作410-440是由云网关的发送路径执行的。
云网关从可行的隧道端点接收(在450处)经封装的数据包。在一些实施例中,云网关被配置为接受来自任何隧道端点到其目的地端口的任何数据包。然后,云网关对接收到的数据包进行解封装(在460处)以获得其元数据。云网关将元数据中的VNI映射(在470处)到SD-WAN中的租户段,并将经解封装的数据包转发(在480处)到该租户段。云网关可以验证该VNI是否被允许到达数据包被从其接收的隧道端点。云网关还可以基于VNI/隧道端点验证和/或数据包中的内容(其包括安全服务的结果)来对数据包采取进一步的动作(例如,转发、中止)。然后过程400结束。
云网关是一种有状态的设备,该设备不提供任何安全服务,但确定哪些数据包属于哪个流,因为它存储与该流相关联的上下文。云网关保留用于定义流的元组表(table oftuples),因此流的每个后续数据包将被发出到相同的隧道端点和相同的T1-SR。云网关查找它需要应用哪个策略以及它是否涉及网络虚拟化管理。云网关还知道哪些T0-SR和T1-SR可用于处理流量。此信息是从编排器传达的,因此云网关了解T0和T1实体的数量、哪些实体是活动的、哪些实体是不运行的(dead)以及哪些实体是特定VNI/租户段是可用的。在一些实施例中,当云网关看到流的第一个数据包时,云网关跨用于该租户段的所有可能T1-SR来进行负载平衡。此时,云网关生成封装并将数据包发送到T0-SR或受管理的服务节点。
图5概念性地图示了用于配置云网关和服务节点以在SD-WAN中实现安全服务的过程500。在一些实施例中,实现SD-WAN编排器105的计算设备的一个或多个处理单元(例如,处理器)通过执行存储在计算机可读介质中的指令来执行过程500。
在一些实施例中,当编排器标识(在510处)一个或多个云网关以接收属于第一租户段的流量时,过程500开始。编排器还标识(在520处)用于第一租户段的第一组安全策略。
编排器然后(在530处)将受管理的服务节点配置为实现第一组T1-SR(租户级服务路由器)以将第一组策略应用于来自第一租户段的数据包流量。第一组T1-SR中的每个T1-SR被配置为处理具有标识第一租户段的第一VNI的流量,使得第一组T1-SR接收来自第一租户段而不接收来自其他租户段的数据包流量。
编排器还(在540处)将受管理的服务节点配置为实现T0-SR(提供商级服务路由器)以将由云网关隧道传输的流量中继到第一组T1-SR。T0-SR是用于来自云网关的隧道流量的隧道端点。T0-SR还被配置为将数据包从T1-SR隧道传输回如下云网关,该云网关在先前将对应的数据包隧道传输到受管理的服务节点。在一些实施例中,编排器通过(例如,使用网络虚拟化管理器的API)与网络虚拟化管理器通信以配置托管受管理的服务节点的一个或多个主机,从而对受管理的服务节点进行配置。
编排器然后(在550处)将标识出的云网关配置为将第一租户段的流量隧道传输到第一组T1-SR。云网关被配置为将具有第一VNI的数据包流量发送到第一隧道端点。在一些实施例中,云网关中的每个云网关被配置为执行图4的过程400。然后过程500结束。
该一个或多个云网关可以接收属于第二租户段的流量。编排器可以标识用于第二租户段的第二组安全策略,将受管理的服务节点配置为实现第二组T1-SR以将第二组安全策略应用于来自第二租户段的数据包流量,并将标识出的云网关配置为将第二租户段的流量隧道传输到第二组T1-SR。T0-SR可以被配置为将由云网关隧道传输的流量中继到第二组T1-SR。云网关被配置为接收来自第一组T1-SR和第二组T1-SR两者的数据包流量。
在一些实施例中,SD-WAN编排器可以基于所需的容量来确定要被供应的受管理的服务节点的数量(例如,2~4个受管理的服务节点对于小型PoP可能是足够的,而数十或数百个受管理的服务节点对于较大的PoP可能是必要的)。受管理的服务节点的数量还可能取决于流量的量、客户的数量或正在处理的策略的复杂性,或来自用户接口的输入。
在一些实施例中,云网关对去往受管理的服务节点中的隧道端点的数据包流量进行封装,并且对这些经封装的数据包的封装包括用于指示租户段的VNI的元数据。元数据还可以包括其他类型的信息,诸如用于标识哪些策略或安全服务将应用到该数据包的标记。在受管理的服务节点内部实现的T0-SR对来自云网关的数据包流量进行解封装,并对去往云网关的流量进行封装。T0-SR还基于数据包中的VNI将来自云网关的数据包流量多路分解到对应的T1-SR,并将来自T1-SR的数据包流量多路复用回到云网关。
图6概念性地图示了从租户段到受管理的服务节点的T1-SR的数据包流量的封装和解封装。如所示出的,云边缘121从租户段A接收用户数据包610。云边缘121然后将数据包610以SD-WAN覆盖封装(overlay encapsulation)发送到云网关111。云网关111以覆盖隧道格式(例如,Geneve隧道)将数据包610封装成经封装的数据包620,该覆盖隧道格式包括内部L2(或以太网)报头630、元数据632、外部UDP 634、外部L3报头636和外部L2(或以太网)报头638。由于数据包610来自租户段A,因此云网关将元数据634设置为包括VNI=“1234”以对应于租户段A。
云网关121通过发出该云网关自身的源MAC地址来生成L2报头638,该源MAC地址在连接到受管理的服务节点341的各云网关之间是唯一的。此源MAC地址稍后被用来确保在服务被应用后数据包流量返回到该云网关。目的地MAC地址属于如下T1-SR,该T1-SR作为目标将要用服务来处理该数据包。云网关还基于指定的VNI来设置目的外部IP和目的地MAC地址。
外部L2报头638被用于通过L2交换将经封装的数据包620发送到受管理的服务节点341,并且外部L3报头636将目的地IP地址指定为10.0.0.253,这是受管理的服务节点341处的隧道端点351(TEP X)的地址。受管理的服务节点341的T0-SR 311对数据包620进行解封装以获得元数据632,该元数据指示该数据包具有VNI=”1234”(该VNIC对应于租户段A)。T0-SR 311使用该VNI选择T1-SR 321以基于Tl-SR 321处所实现的安全策略来处理用户数据包610。受管理的节点341的另一T1-SR 322与VNI=“5678”相关联。因此,如果经封装的数据包620具有VNI=“5678”(以指示租户段B),则T0-SR 311将选择T1-SR 322来处理该数据包。当T1-SR 322根据其(用于租户段A的)相关联的安全策略完成处理数据包610时,受管理的服务节点341将所得到的数据包折返回(hairpin)原始数据包610来自之处,即云网关111。
受管理的服务节点可以从多个不同的云网关接收数据包流量。在图6的示例中,受管理的服务节点341可以从云网关111和112两者接收数据包流量。在一些实施例中,受管理的服务节点维护源云网关的身份,因此受管理的服务节点知道将处理结果返回到哪个云网关,无论数据包的VNI或源租户段如何。在一些实施例中,受管理的服务节点的数据路径对流量进行多路复用和多路分解,同时记住该数据包来自哪里。在一些实施例中,每个数据包被映射到对应于不同云网关的多个隧道端口之一。来自源云网关到达服务的受管理的服务节点的每个数据包使用与该源云网关相对应的特定隧道端口。对应的返回流量将使用相同的隧道端口以返回到相同的云网关。
图7a-图7b概念性地图示了在应用服务之后受管理的服务节点将数据包返回到源云网关。如所示出的,受管理的服务节点341可以从多个不同的云网关接收数据包流量,包括云网关111和112。受管理的服务节点341的T0-SR 311通过分别对应于云网关111和112的隧道端口701或702将接收到的数据包发送到T1-SR 321和322。通过反向学习,隧道端口701与源MAC地址“:11”或源IP地址10.0.0.1(其为云网关111的L2/L3地址)相关联,并且隧道端口702与源MAC地址“:22”或源IP地址10.0.0.2(其为云网关112的L2/L3地址)相关联。来自T1-SR的已被应用过服务的返回数据包使用原始传入数据包的相同隧道端口而返回到对应的源云网关。
图7a图示了云网关111将经封装的数据包710隧道传输到由受管理的服务节点341托管的隧道端点10.0.0.253(“TEP X”)。数据包710具有VNI=”1234”(租户段A),并且具有带有源MAC地址“:11”(该地址为云网关111的MAC地址)的内部L2报头。T0-SR 311对数据包710进行解封装,并通过隧道端口701基于VNI将经解封装的数据包发送到T1-SR 321。隧道端口701学习到(或可能早已经学习到)数据包710的源地址。
T1-SR 321在数据包710上应用用于VNI“1234”(租户段A)的安全服务,并将所得到的数据包712返回到数据包710的源。T0-SR 311在隧道端口701处接收返回的数据包712。知道隧道端口701与MAC地址“:11”或IP地址“10.0.0.1”相关联,T0-SR 311使用这些地址作为目的地地址来将返回数据包712隧道传输回云网关111。
图7b图示了云网关112将经封装的数据包720隧道传输到由受管理的服务节点341托管的隧道端点10.0.0.253(“TEP X”)。数据包720也具有VNI=“1234”(租户段A)并且具有带有源MAC地址“:22”(该地址为云网关112的MAC地址)的内部L2报头。T0-SR 311对数据包720进行解封装并通过隧道端口702基于VNI将经解封装的数据包发送到T1-SR 321。隧道端口702学习到(或可能早已经学习到)数据包的源地址。在一些实施例中,来自不同云网关的数据包是通过不同的隧道端口发送的,即使这些数据包属于具有相同VNI的相同租户段并且将由相同T1-SR应用相同安全服务。
T1-SR 321在数据包710上应用用于VNI“1234”(租户段A)的安全服务,并将所得到的数据包722返回到数据包720的源。T0-SR 311在隧道端口702处接收返回数据包722。知道隧道端口702与MAC地址“:22”或IP地址“10.0.0.2”相关联,T0-SR 311使用这些地址作为目的地地址来将返回数据包722隧道传输回云网关112。
在一些实施例中,受管理的服务节点341使用防火墙机制来恢复数据包的源以用于在按段上下文(per-segment context)中(例如,在T1-SR中)保持地址映射,因为不同的租户段可能具有重叠寻址。当入口数据包(例如,数据包710或720)初始地到达T1-SR 321时,防火墙创建有状态流条目(stateful flow entry)并存储原始内部L2报头。当防火墙看到出口数据包(例如,返回数据包712或722)时,防火墙将它映射到现有流。由于受管理的服务节点处理的所有流量都是从云网关发起的,所以如果受管理的服务节点具有一个流的出口数据包,则它可以假设对于相同的流曾有对应的入口数据包(例如,传入数据包710和返回数据包712属于第一流;传入数据包720和返回数据包722属于第二流)。基于各个流的信息,T1-SR 321将返回数据包发送到该数据包所来自的相同接口,并(通过交换源和目的地)恢复原始的L2报头。
在一些实施例中,T0-SR具有主干(trunk)VNI端口,该端口是T0-SR的用于到达远程云网关的上行链路。由于受管理的服务节点使用本地IP来接收数据包,因此数据包去往将终止本地流量的CPU端口。在传入数据包的解封装期间,T0-SR确定数据包是来自IP地址10.0.0.1还是10.0.0.2(即,云网关111还是云网关112)。该IP地址被映射到两个隧道端口701和702之一。隧道端口701和702中的每一个端口继而被连接到用于不同VNI的逻辑交换机。
图8概念性地图示了用于将安全服务应用于来自云网关的数据包并将数据包返回到云网关的过程800。在一些实施例中,实现受管理的服务节点(由网络虚拟化管理器管理)的计算设备的一个或多个处理单元(例如,处理器)通过执行存储在计算机可读介质中的指令来执行过程800。
在一些实施例中,过程800在受管理的服务节点从源云网关接收到(在810处)属于特定租户段的数据包时开始。受管理的服务节点从多个不同的云网关接收属于多个不同租户段的数据包。
受管理的服务节点从封装在数据包中的元数据中接收(在820处)标识特定租户段的VNI。在一些实施例中,数据包被封装为包括用于标识特定租户段的VNI,并且受管理的服务节点的T0-SR被配置为对来自云网关的数据包进行解封装并且对去往云网关的数据包进行封装。
受管理的服务节点通过与源云网关相关联的隧道端口将数据包中继(在830处)到专用于该VNI的特定T1-SR。服务节点包括专用于多个不同VNI的多个T1-SR和分别对应多个云网关的多个隧道端口。在一些实施例中,对应于云网关的隧道端口与该云网关的MAC地址相关联。
受管理的服务节点在该特定T1-SR处根据与该VNI相关联的一组策略处理(在840处)数据包(即,应用安全服务)。受管理的服务节点通过关联于源云网关的隧道端口向源云网关发送(在850处)返回数据包。云网关然后使用返回数据包的VNI来标识租户段并将返回数据包发送到对应的云边缘。然后过程800结束。在一些实施例中,受管理的服务节点存储入口数据包的一组流标识符,并基于所存储的该组流标识符来设置出口数据包的目的地地址。该组流标识符包括源云网关的L2 MAC地址和/或L3 IP地址,该地址在多个云网关之间是唯一的。
在一些实施例中,网络虚拟化管理部署为SASE提供有状态的主动-主动(A/A)高可用性服务以防止PoP中的硬件故障。具体地,同一PoP中的一对受管理的服务节点(或一组两个或更多个受管理的服务节点)被配置为在A/A配置中联合地提供有状态的网络安全服务。当该对中的一个受管理的服务节点故障时,另一个受管理的服务节点通过承担故障的受管理的服务节点的隧道端点和服务状态来接管。
在一些实施例中,每个云网关向成对的两个受管理的服务节点发送数据包以用于应用安全服务。每个云网关知晓有两个受管理的服务节点,并且可以个别地寻址每个受管理的服务节点。图9a-图9b概念性地图示了处于主动-主动高可用性配置中以提供有状态的安全服务的成对两个受管理的服务节点。这些图图示了成对的两个受管理的服务节点341和342以提供A/A有状态的服务。经配对的受管理的服务节点可以位于同一数据中心或PoP中。受管理的服务节点341操作T0-SR 311、段A T1-SR 321和段B T1-SR 322。受管理的服务节点342操作T0-SR 312、段A T1-SR 323和段B T1-SR 324。成对的两个受管理的服务节点托管两个隧道端点10.0.0.253和10.0.0.254。隧道端点10.0.0.253映射到10.0.0.3(即,由受管理的服务节点341托管),并且隧道端点10.0.0.254映射到10.0.0.4(即,由受管理的服务节点342托管)。
云网关可以与两个受管理的服务节点中的每一个节点建立隧道通信。在示例中,云网关111(地址10.0.0.1)可以建立到受管理的服务节点341的一个隧道以及到受管理的服务节点342的另一隧道。云网关112可以同样做并且建立该云网关自己到该对受管理的服务节点的两个隧道。云网关111(或云网关112)可以将数据包流量发送到隧道端点10.0.0.253或10.0.0.254,只要它以有状态的方式(statefully)这样做(例如,一致地将同一流的数据包发送到同一服务节点以用于有状态的服务)。例如,在图中,云网关111将流A1的数据包发送到隧道端点10.0.0.253,并且将流A2的数据包发送到隧道端点10.0.0.254。两个受管理的服务节点中的每一个节点有该节点自己的与云网关的连接,因此它们是完全独立的,并且每个受管理的服务节点有该节点自己的一组隧道端口以支持其折返回到源云网关,如上文参考图7a-图7b和图8所描述的那样。
图9a图示了当受管理的服务节点341和342两者正常运行而无故障时该对受管理的服务节点341和342的操作。由于端点10.0.0.253仅在受管理的服务节点341中可用,并且端点10.0.0.254仅在受管理的服务节点342中可用,所以当两个受管理的节点正在工作时,受管理的服务节点341仅接收针对隧道端点10.0.0.253的流量并且受管理的服务节点342仅接收针对隧道端点10.0.0.254的流量。
如所提及的,每个云网关可以将同一租户段的不同流发送到不同的隧道端点以供处理。如所示出的,云网关111发送要由隧道端点10.0.0.253处理的流A1、B3和B4以及要由隧道端点10.0.0.254处理的流A2。云网关112发送要由隧道端点10.0.0.253处理的流B6和A8以及要由隧道端点10.0.0.254处理的流B5和A7。受管理的边缘节点341和342的T1-SR321-324继而从属于它们相应的VNI的流接收数据包。具体地,T1-SR 321针对流A1和A8处理租户段A流量,T1-SR 322针对流B3、B4和B6处理租户段B流量,T1-SR 323针对流A2和A7处理租户段A流量,并且T1-SR 324针对流B5处理租户段B流量。
为了支持有状态的主动-主动操作,该对中的受管理的边缘节点同步或共享它们针对不同的流的有状态服务的状态,因此当A/A对中的一个受管理的边缘节点故障时,剩余的受管理的边缘节点的对应方T1-SR可以接管有状态的操作。在此情况下,T1-SR 321与T1-SR 323共享流A1和A8的状态,T1-SR 322与T1-SR 324共享流B3、B4和B6的状态,T1-1SR 323与T1-SR 321共享流A2和A7的状态,并且T1-SR 324与T1-SR 322共享流B5的状态。
图9b图示了当对中的一个受管理的节点故障时该对受管理的边缘节点的操作。在示例中,受管理的边缘节点342已经故障并且不能再处理流量。当这发生时,网络虚拟化管理将隧道端点10.0.0.254迁移到受管理的边缘节点341。换句话说,受管理的边缘节点341现在托管隧道端点10.0.0.253和10.0.0.254两者,并且T0-SR 311现在接收两个隧道端点的流量。先前去往边缘节点342以用于安全服务的数据包现在去往边缘节点341。因此,T1-SR 321除了A1和A8之外现在还服务A2和A7,而T1-SR 322除了B3、B4和B6之外现在还服务B5。T1-SR 321和322可以承担这些附加流的有状态服务,这是因为当两个受管理的边缘节点341和342两者正常工作时这些流的状态在两个受管理的边缘节点341和342之间被共享。
尽管受管理的服务节点342已经故障,云网关111和112仍然可能将数据包发送到相同的两个隧道端点(10.0.0.253和10.0.0.254),这两个端点现在都由受管理的服务节点341实现。云网关可以继续使用相同的隧道,因为外部封装没有改变。此外,在一些实施例中,两个受管理的节点中的(针对相同VNI的)对应的T1-SR共享相同的MAC地址。(在图9a-图9b的示例中,段A Tl-SR 321和323两者具有MAC地址“:aa”;段B Tl-SR 322和324两者具有MAC地址“:bb”)。因此,即使在隧道点迁移后,来自云网关的经封装的数据包可以到达正确的T1-SR处,而无需云网关改变封装。因此,编排器不需要重新配置云网关来处理故障,但是云网关可以以减少的带宽来操作,因为用于提供安全服务的一半计算资源不再可用。
图10概念性地图示了用于使用主动-主动配置中的一组(例如,一对)受管理的服务节点来在SD-WAN中提供安全服务的过程1000。在一些实施例中,实现一对受管理的服务节点(例如,图9a-图9b的受管理的服务节点341和342)的一个或多个计算设备的一个或多个处理单元(例如,处理器)通过执行存储在计算机可读介质中的指令来执行过程1000。具体地,执行过程1000的(一个或多个)计算设备操作第一服务节点和第二服务节点以处理来自SD-WAN的云网关的数据包。在一些实施例中,云网关由SD-WAN的编排器配置,并且第一服务节点和第二服务节点由网络虚拟化管理软件管理。
第一服务节点实现第一多个T1-SR,这些T1-SR包括专用于第一租户段的第一组T1-SR以及专用于第二租户段的第二组T1-SR。第二服务节点实现第二多个T1-SR,这些T1-SR包括专用于第一租户段的第三组T1-SR以及专用于第二租户段的第四组T1-SR。在一些实施例中,第一服务节点实现第一T0-SR以用于对去往第一多个T1-SR的数据包进行解封装和多路分解,并且第二服务节点实现第二T0-SR以用于对去往第二多个T1-SR的数据包进行解封装和多路分解。
当第一服务节点或第二服务节点从SD-SWAN的云网关接收数据包流量时,过程1000开始。第一服务节点接收(在1010处)从云网关到第一隧道端点的数据包以供在第一多个T1-SR处处理。第二服务节点接收(在1020处)从云网关到第二隧道端点的数据包以供在第二多个T1-SR处处理。第一组T1-SR和第三组T1-SR中的每个T1-SR将特定于第一租户段的一组安全策略应用于来自第一租户段的数据包。第二组T1-SR和第四组T1-SR中的每个T1-SR将特定于第二租户段的一组安全策略应用于来自第二租户段的数据包。
第一服务节点和第二服务节点将第一多个T1-SR的状态与第二多个T1-SR的状态同步(在1030处)。具体地,由第一服务节点的T1-SR处理的各个流的状态与第二服务节点的T1-SR共享,反之亦然。
过程1000然后确定(在1040处)第一服务节点或第二服务节点是否已经故障。在一些实施例中,这些服务节点之一是否已经故障是由网络虚拟化管理基于从服务节点报告的状态来确定的。网络虚拟化管理继而相应地配置两个服务节点(例如,使一个服务节点接管故障的服务节点的隧道端点)。如果第一服务节点故障,则过程1000进行到1050。如果第二服务节点故障,则该过程进行到1060。如果服务节点两者都没有故障,则过程1000结束。
在1050处(当第一服务节点故障时),第二服务节点从云网关接收去往第一隧道端点和第二隧道端点两者的数据包,以供在第二多个T1-SR处被处理。从第一租户段到第一隧道端点和第二隧道端点的数据包由第三组T1-SR处理,并且从第二租户段到第一隧道端点和第二隧道端点的数据包由第四组T1-SR处理。
在1060处(当第二服务节点故障时),第一服务节点从云网关接收去往第一隧道端点和第二隧道端点两者的数据包,以供在第一多个T1-SR处被处理。从第一租户段到第一隧道端点和第二隧道端点的数据包由第一组T1-SR处理,并且从第二租户段到第一隧道端点和第二隧道端点的数据包由第二组T1-SR处理。然后过程1000结束。
在一些实施例中,如上所述的T1-SR和T0-SR不仅接收、处理和返回本地云网关(例如,属于相同PoP)的数据包流量,这些T1-SR和T0-SR还可以具有与外部网络的上行链路和下行链路连接。外部网络可以指互联网,或需要上行链路来从本地PoP访问的任何远程站点或PoP。到该远程站点的上行链路可以是用于将不同位置中的PoP或数据中心集合在一起以创建虚拟网络的具体技术的一部分。
在一些实施例中,实现T0-SR和一个或多个T1-SR的受管理的服务节点对去往外部网络的数据包流量执行两层地址转换。该两层地址转换是为了确保来自外部网络的响应流量可以成功回到该受管理的服务节点。
图11a-图11b概念性地图示了受管理的服务节点使用T0-SR和T1-SR将数据包从云网关发送到外部网络。图11a图示了从云网关出口到外部网络的数据包。如所示出的,受管理的服务节点341从云网关111接收数据包1110。数据包1110来自租户段A,具有源IP1.2.3.4和目的地IP 5.6.7.8。云网关111将数据包1110转发到受管理的服务节点341以由T1-SR 321处理。云网关111确定数据包的目的地IP“5.6.7.8”不在本地PoP中,而是在可能是也可能不是SD-WAN环境的一部分的远程PoP中。在一些实施例中,在去往互联网或外部网络之前,这样的外部绑定数据包不被折返回云网关以被路由,而是让受管理的服务节点(在T1-SR和T0-SR处)来执行路由。如所示出的,受管理的服务节点341具有多个T1-SR 321和322。T1-SR 321和322两者都连接到T0-SR 311。云网关111通过L2交换(从MAC地址“:11”到MAC地址“:aa”)将数据包1110发送到T1-SR 321。
由于数据包1110被绑定用于PoP外部的远程站点,它将在没有被SD-WAN的任何云网关进一步处理的情况下被发送到互联网。在一些实施例中,为了在正确的T0-SR和T1-SR处将数据包发送到外部网络并能够接收任何对应的返回流量,数据包的原始源地址经历多个源网络地址转换(SNAT)操作。具体地,T1-SR 321执行第一SNAT以将原始源地址“1.2.3.4”转换成169.254.k.1”(用于中间数据包1112),该地址是T1-SR 321的私有地址,用于在受管理的服务节点341内的多个不同T1-SR之间进行区分。然后,T0-SR 311执行第二SNAT以将私有地址“169.254.k.1”转换为公共地址“a.b.c.1”(用于传出数据包1114),该地址是T0-SR 311的面向公共的IP。具有“a.b.c.1”作为源地址的传出数据包1114通过到外部网络(例如,互联网)的上行链路被发送的目的地IP“5.6.7.8”。(同一流的)任何对应的响应数据包将使用IP“a.b.c.1”到达T1-SR 311。
图11b图示了对应的响应数据包的返回。如所示出的,T0-SR 311接收响应数据包1120,该数据包具有该T0-SR的公共地址“a.b.c.1”作为目的地地址。T0-SR 311执行反向SNAT(或DNAT)操作以获得地址“169.254.k.1”以标识T1-SR 321(作为去往该T1-SR的中间数据包1122)。T1-SR 321还在将返回数据包(作为经封装的数据包1124)发送回云网关111之前执行反向SNAT(或DNAT)操作以获得原始源地址“1.2.3.4”。T0-SR 311和T1-SR 321可以对出口数据包1110或返回的入口数据包1120执行其他有状态操作,诸如根据与特定租户段相关联的策略的安全服务。
图12概念性地图示了用于使用受管理的服务节点将数据包流量从云网关直接发送到外部网络的过程1200。在一些实施例中,实现受管理的服务节点(例如,图11a-图11b的受管理的服务节点341和342)的一个或多个计算设备的一个或多个处理单元(例如,处理器)通过执行存储在计算机可读介质中的指令来执行过程1200。服务节点被配置为操作T0-SR和对应于多个不同租户段的多个T1-SR。
当服务节点从云网关接收到(在1210处)数据包时,过程1200开始。该云网关是SD-WAN中的被配置为从不同的数据中心或分支机构接收数据包流量的多个云网关之一。云网关由SD-WAN的编排器配置,并且服务节点由网络虚拟化管理软件管理。云网关和服务节点可以由位于同一PoP中的机器托管。
服务节点将安全策略应用(在1220处)到数据包。例如,如果数据包来自第一租户段,则T1-SR可以将与第一租户段相关联的安全策略应用到数据包。在一些实施例中,如果数据包的目的地是远程站点,则服务节点可以将安全策略应用于来自外部网络的响应数据包。
服务节点确定(在1230处)数据包的目的地是远程站点还是本地站点。本地站点可以指该服务节点和该云网关两者都位于其中的PoP,使得数据包流量可以停留在该PoP中而无需经过外部网络。远程站点可以指的是SD-WAN之外的目的地,或者是远离本地站点且只能通过到外部网络的上行链路访问的另一PoP。如果数据包的目的地是远程站点,则过程1200进行到1240。如果数据包的目的地是本地站点,则服务节点基于安全策略的结果向云网关返回(在1235处)数据包。然后过程1200结束。
服务节点在服务节点的特定T1-SR处将数据包的源地址转换(在1240处)为该特定T1-SR的私有地址。T1-SR的私有地址被用于在T0-SR之后的多个T1-SR之中标识该特定T1-SR。服务节点在服务节点的T0-SR处将特定T1-SR的私有地址转换(在1250处)为T0-SR的公共地址。服务节点使用T0-SR的公共地址作为源地址,通过上行链路将数据包发送(在1260处)到外部网络。过程1200结束。服务节点可以随后在T0-SR的公共地址处接收来自外部网络的响应数据包。
软件定义的广域网(SD-WAN)是虚拟网络。虚拟网络可以用于公司、非营利组织、教育实体或其他类型的商业实体。此外,如本文档中所用,数据消息或数据包是指跨网络发送的特定格式的比特集合。本领域的普通技术人员将认识到,术语数据消息或数据包在本文档中用来指代跨网络发送的各种格式化的比特集合。这些比特的格式化可以由标准化协议或非标准化协议指定。遵循标准化协议的数据消息示例包括以太网帧、IP数据包、TCP段、UDP数据报等。此外,如本文档中所用,对L2、L3、L4和L7层(或层2、层3、层4和层7)的引用分别是对OSI(开放系统互连)层模型的第二数据链路层、第三网络层、第四传输层以及第七应用层的引用。
图13A呈现了在两个公共云提供商A和B的若干公共云数据中心1305和1310上为公司定义的虚拟网络1300。如所示出的,虚拟网络1300是通过在不同的公共云中部署不同的受管理的转发节点并通过覆盖隧道1352将这些受管理的转发节点(MFN)彼此连接而建立的安全覆盖网络1350。在一些实施例中,MFN是公共云数据中心中若干不同组件的概念性分组,其与其他公共云数据中的其他MFN(连同其他组件的组)一起为建立用于一个或多个实体的一个或多个覆盖虚拟网络。
如下文进一步描述的,在一些实施例中,形成MFN的组件组包括(1)一个或多个VPN网关,用于与实体的作为公共云数据中心之外的外部机器位置的计算节点(例如,办公室、私有数据中心、远程用户等)建立VPN连接,(2)一个或多个转发元件,用于在彼此之间转发经封装的数据消息以便在共享的公共云网络结构上定义覆盖虚拟网络,(3)一个或多个服务机器,用于执行中间盒服务操作以及L4-L7优化,以及(4)一个或多个测量代理,用于获得关于公共云数据中心之间的网络连接质量的测量,以便标识穿过公共云数据中心的期望路径。在一些实施例中,不同的MFN可以具有不同的布置和不同数量的这样的组件,并且出于冗余度和可扩展性的原因,一个MFN可以具有不同数量的这样的组件。
此外,在一些实施例中,每个MFN的组件组在该MFN的公共云数据中心中的不同计算机上执行。在一些实施例中,MFN的组件中的若干个或所有组件可以在公共云数据中心的一个计算机上执行。在一些实施例中,MFN的组件在如下主机上执行,该主机还执行其他租户的其他机器。这些其他机器可以是其他租户的其他MFN的其他机器,或者它们可以是其他租户的不相关机器(例如,计算VM或容器)。
在一些实施例中,虚拟网络1300由虚拟网络提供商(VNP)部署,该虚拟网络提供商为不同实体(例如,虚拟网络提供商的不同公司客户/租户)在相同或不同的公共云数据中心上部署不同的虚拟网络。在一些实施例中,虚拟网络提供商是部署MFN并提供用于配置和管理这些MFN的控制器集群的实体。
虚拟网络1300将公司计算端点(诸如数据中心、分支机构和移动用户)彼此连接并连接到外部服务(例如,公共web服务,或诸如或/>之类的SaaS服务),这些外部服务驻留在公共云中或驻留在可通过互联网访问的私有数据中心中。此虚拟网络1300利用不同公共云的不同位置来将不同的公司计算端点(例如,不同的私有网络和/或公司的不同移动用户)连接到它们附近的公共云。公司计算端点在下面的讨论中也称为公司计算节点。/>
在一些实施例中,虚拟网络1300还利用互连这些公共云的高速网络以通过公共云将数据消息转发到它们的目的地或尽可能接近它们的目的地,同时减少它们对互联网的穿越。当公司计算端点位于虚拟网络所跨越的公共云数据中心之外时,这些端点被称为外部计算机位置。公司分支机构、私人数据中心和远程用户的设备就是如此。
在图13A中所示的示例中,虚拟网络1300跨越公共云提供商A的六个数据中心1305a-1305f和公共云提供商B的四个数据中心1310a-1310d。在跨越这些公共云时,此虚拟网络1300连接位于不同地理区域的若干分支机构、公司数据中心、SaaS提供商和公司租户的移动用户。具体地,虚拟网络1300连接两个不同城市(例如,加利福尼亚州旧金山和印度浦那)的两个分支机构1330a和1330b、另一个城市(例如,华盛顿州西雅图)的公司数据中心1334、另两个城市(华盛顿州雷蒙德和法国巴黎)的两个SaaS提供商数据中心1336a和1336b,以及世界上各个位置处的移动用户1340。因此,此虚拟网络1300可以被视为虚拟公司WAN。
在一些实施例中,分支机构1330a和1330b具有它们自己的私有网络(例如,局域网),其连接公共云之外的分支私有数据中心和分支位置处的计算机。类似地,公司数据中心1334在一些实施例中具有其自己的私有网络并且驻留在任何公共云数据中心之外。然而,在其他实施例中,公司数据中心1334或分支机构1330a和1330b的数据中心可以在公共云内,但虚拟网络1300不跨越此公共云,因为公司数据中心1334或分支机构数据中心1330a和1330b连接到虚拟网络1300的边缘。
如上面提及的,虚拟网络1300是通过覆盖隧道1352连接不同公共云中不同部署的受管理的转发节点1350而建立的。每个受管理的转发节点1350包括若干个可配置组件。如上面进一步描述和下面进一步描述的,在一些实施例中,MFN组件包括基于软件的测量代理、软件转发元件(例如,软件路由器、交换机、网关等)、层4代理(例如,TCP代理)和中间盒服务机器(例如,VM、容器等)。在一些实施例中,这些组件中的一个或多个组件使用标准化或普遍可用的解决方案,诸如OpenvSwitch、OpenVPN、strongSwan等。
在一些实施例中,每个MFN(即,概念上形成MFN的组件组)可以被在公共云数据中心部署和配置MFN的虚拟网络提供商的不同租户所共享。结合地或替代地,在一些实施例中,虚拟网络提供商可以为特定租户在一个或多个公共云数据中心中部署唯一一组MFN。例如,出于安全原因或服务质量原因,特定租户可能不希望与另一租户共享MFN资源。对于这样的租户,虚拟网络提供商可以跨若干干公共云数据中心部署该租户自己的一组MFN。
在一些实施例中,逻辑上的集中式控制器集群1360(例如,一组一个或多个控制器服务器)在公共云1305和1310当中的一个或多个云之内或之外操作,并且将受管理的转发节点1350的公共云组件配置为在公共云1305和1310上实现虚拟网络1300。在一些实施例中,此集群1360中的控制器位于各种不同的位置(例如,在不同的公共云数据中心)处,以便提高冗余度和高可用性。在一些实施例中,控制器集群1360扩展或缩减用于建立虚拟网络1300的公共云组件的数量或者分配给这些组件的计算或网络资源。
在一些实施例中,控制器集群1360或虚拟网络提供商的另一个控制器集群在相同公共云1305和1310上和/或在不同公共云提供商的不同公共云上为另一个公司租户建立不同的虚拟网络。除了该(一个或多个)控制器集群之外,其他实施例中的虚拟网络提供商在公共云中部署转发元件和服务机器,其允许不同的租户在相同或不同的公共云上部署不同的虚拟网络。图13B图示了在公共云1305和1310上部署的用于两个公司租户的两个虚拟网络1300和1380的示例。图13C替代地图示了两个虚拟网络1300和1382的示例,其中一个网络1300被部署在公共云1305和1310上,而另一个虚拟网络1382被部署在另一对公共云1310和1315上。
通过所配置的MFN组件,图13A的虚拟网络1300允许公司租户的不同私有网络和/或不同移动用户连接到关于这些私有网络和/或移动用户处于最佳位置(例如,如根据物理距离、根据连接速度、损耗、延迟和/或成本,和/或根据网络连接可靠性等来测量的最佳位置)的不同公共云。在一些实施例中,这些组件还允许虚拟网络1300使用将公共云1305和1310互连的高速网络,来通过公共云1305和1310将数据消息转发到它们的目的地,同时减少它们对互联网的穿越。
在一些实施例中,受管理的服务节点可以由运行虚拟化软件的主机实现,用作虚拟网络转发引擎。这样的虚拟网络转发引擎也被称为受管理的转发元件(MFE)或管理程序。虚拟化软件允许计算设备托管一组虚拟机(VM)或数据计算节点(DCN)以及执行数据包转发操作(包括L2交换和L3路由操作)。这些计算设备因此也被称为主机机器。在一些实施例中,虚拟化软件的数据包转发操作由一组中央控制器管理和控制,因此虚拟化软件也被称为受管理的软件转发元件(MSFE)。在一些实施例中,由于主机的虚拟化软件将逻辑转发元件的本地实例操作为物理转发元件,因此MSFE针对一个或多个逻辑转发元件执行其数据包转发操作。这些物理转发元件中的一些元件是受管理的物理路由元件(MPRE)以用于针对逻辑路由元件(LRE)执行L3路由操作,这些物理转发元件中的一些是受管理的物理交换元件(MPSE)以用于针对逻辑交换元件(LSE)执行L2交换操作。图14图示了用作运行用于本发明的一些实施例的虚拟化软件的主机的计算设备1400。
如所示出的,计算设备1400可以通过物理NIC(PNIC)1495访问物理网络1490。主机1400还运行虚拟化软件1405并托管VM 1411-1414。虚拟化软件1405充当所托管的VM 1411-1414和物理NIC 1495(以及其他物理资源,诸如处理器和存储器)之间的接口。VM 1411-1414中的每一个VM包括用于通过虚拟化软件1405访问网络的虚拟NIC(VNIC)。VM 1411-1414中的每个VNIC负责在VM 1411-1414和虚拟化软件1405之间交换数据包。在一些实施例中,VNIC是由虚拟NIC仿真器实现的物理NIC的软件抽象。
虚拟化软件1405管理VM 1411-1414的操作,并且包括用于管理VM 1411-1414对物理网络1490的访问(在一些实施例中,通过实现VM所连接到的逻辑网络)的若干组件。如所示出的,虚拟化软件1405包括若干组件,包括MPSE 1420、一组MPRE 1430、控制器代理1440、网络数据存储装置1445、VTEP 1450和一组上行链路管道1470。
VTEP(虚拟隧道端点)1450允许主机1400充当逻辑网络流量的隧道端点。逻辑网络流量的示例是虚拟可扩展局域网(VXLAN)的流量,虚拟可扩展局域网是一种覆盖网络封装协议。通过VXLAN封装而创建的覆盖网络有时也被称为VXLAN网络,或简称为VXLAN。当主机1400上的VM 1411-1414向相同VXLAN网络中但位于不同主机(例如,其他机器1480)上的另一个VM发送数据包(例如,以太网帧)时,在将数据包发送到物理网络1490之前,VTEP 1450将使用VXLAN网络的VNI和VTEP 1450的网络地址来封装该数据包。数据包通过物理网络1490隧道传输(即,该封装使得底层数据包对中间网络元件是透明的)到目的地主机。目的地主机处的VTEP将数据包解封装,并仅将原始内部数据包转发到目的地VM。在一些实施例中,VTEP模块1450仅充当VXLAN封装的控制器接口,而VXLAN数据包的封装和解封装在上行链路模块1470处完成。
控制器代理1440从控制器1460(例如,CCP节点)或控制器集群接收控制平面消息。在一些实施例中,这些控制平面消息包括用于配置虚拟化软件1405的各个组件(诸如MPSE1420和MPRE 1430)和/或虚拟机1411-1414的配置数据。在一些实施例中,配置数据包括用于配置边缘节点(具体地是租户级服务路由器(T1-SR)和提供商级服务路由器(T0-SR))的那些数据。
在图14所示的示例中,控制器代理1440从物理网络1490接收来自控制器集群1460的控制平面消息,并且继而通过控制信道将接收到的配置数据提供给MPRE 1430,而不经过MPSE 1420。然而,在一些实施例中,控制器代理1440从独立于物理网络1490的直接数据管道(未示出)接收控制平面消息。在一些其他实施例中,控制器代理1440从MPSE 1420接收控制平面消息,并通过MPSE 1420将配置数据转发到路由器1430。
在一些实施例中,网络数据存储装置1445存储由主机机器1400的逻辑转发元件(诸如MPSE 1420和MPRE 1430之类的逻辑转发元件)使用和产生的一些数据。在一些实施例中,这样的存储的数据包括转发表和路由表、连接映射以及数据包流量统计。在一些实施例中,这些存储的数据能够被控制器代理1440访问并递送到另一个计算设备。
MPSE 1420将网络数据递送到物理NIC 1495和递送来自该物理NIC网络数据,该物理NIC与物理网络1490对接。MPSE 1420还包括多个虚拟端口(vPort),这些虚拟端口将物理NIC 1495与VM 1411-1414、MPRE 1430和控制器代理1440通信地互连。在一些实施例中,每个虚拟端口与唯一的L2 MAC地址相关联。MPSE 1420在连接到其虚拟端口的任何两个网络元件之间执行L2链路层数据包转发。MPSE 1420还在连接到其任何一个虚拟端口的任何网络元件与物理网络1490上的可达L2网络元件(例如,在另一主机上运行的另一VM)之间执行L2链路层数据包转发。在一些实施例中,MPSE是逻辑交换元件(LSE)的如下本地实例,其跨不同主机操作并且可以在相同主机上或不同主机上的VM之间执行L2数据包交换。在一些实施例中,MPSE根据那些逻辑交换机的配置来执行若干LSE的交换功能。
MPRE 1430对从MPSE 1420上的虚拟端口接收的数据包执行L3路由。在一些实施例中,此路由操作需要将L3 IP地址解析为下一跳L2 MAC地址和下一跳VNI(即,下一跳的L2段的VNI)。每个被路由的数据包然后被发送回MPSE 1420以根据经解析的L2 MAC地址被转发到其目的地。此目的地可以是连接到MPSE 1420上的虚拟端口的另一VM,或者是物理网络1490上的可达的L2网络元件(例如,在另一主机上运行的另一个VM、物理非虚拟化机器等)。
如所提及的,在一些实施例中,MPRE是跨不同主机操作并且可以在相同主机上或不同主机上的VM之间执行L3数据包转发的逻辑路由元件(LRE)的本地实例。在一些实施例中,主机机器可以具有连接到单个MPSE的多个MPRE,其中该主机机器中的每个MPRE实现不同的LRE。MPRE和MPSE被称为“物理”路由/交换元件以便与“逻辑”路由/交换元件区分,尽管在一些实施例中MPRE和MPSE是在软件中实现的。在一些实施例中,MPRE被称为“软件路由器”并且MPSE被称为“软件交换机”。在一些实施例中,LRE和LSE被统称为逻辑转发元件(LFE),而MPRE和MPSE被统称为受管理的物理转发元件(MPFE)。贯穿本文档提到的逻辑资源(LR)中的一些是具有在每个主机中运行的对应本地MPRE或本地MPSE的LRE或LSE。
在一些实施例中,MPRE 1430包括一个或多个逻辑接口(LIF),每个逻辑接口充当到网络的特定段(L2段或VXLAN)的接口。在一些实施例中,每个LIF可以通过其自己的IP地址寻址并且用作网络的其特定段的网络节点(例如,VM)的默认网关或ARP代理。在一些实施例中,不同主机机器中的所有MPRE都可以通过相同的“虚拟”MAC地址(或vMAC)来寻址,同时每个MPRE也被分配了“物理”MAC地址(或pMAC)以便指示该MPRE在哪个主机中操作。
上行链路模块1470在MPSE 1420和物理NIC 1495之间中继数据。上行链路模块1470包括各自执行多个操作的出口链和入口链。这些操作中的一些操作是用于MPRE 1430的预处理和/或后处理操作。
如图14所示,虚拟化软件1405具有用于多个不同LRE的多个MPRE 1430。在多租户环境中,主机机器可以操作来自多个不同用户或租户(即连接到不同逻辑网络)的虚拟机。在一些实施例中,每个用户或租户在主机中具有其LRE的对应MPRE实例,用于处理其L3路由。在一些实施例中,尽管不同的MPRE属于不同的租户,但它们都共享MPSE上的相同vPort,并且因此共享相同的L2 MAC地址(vMAC或pMAC)。在一些其他实施例中,属于不同租户的每个不同MPRE具有其自己的到MPSE的端口。
MPSE 1420和MPRE 1430使得数据包有可能在VM 1411-1414之间转发而不通过外部物理网络1490发送(只要这些VM连接到相同的逻辑网络,因为不同的租户的VM将彼此隔离)。具体地,MPSE 1420通过使用各个逻辑网络的各个L2段(即,它们对应的L2逻辑交换机)的VNI来执行本地逻辑交换机的功能。同样,MPRE 1430通过使用这些不同的L2段的VNI来执行逻辑路由器的功能。由于每个L2段/L2交换机有其自己唯一的VNI,主机1400(及其虚拟化软件1405)能够将不同逻辑网络的数据包引导到它们正确的目的地,并有效地将不同逻辑网络的流量彼此分离。
许多上述特征和应用被实现为被指定为记录在计算机可读存储介质(也称为计算机可读介质)上的一组指令的软件过程。当这些指令由一个或多个处理单元(例如,一个或多个处理器、处理器的核心或其他处理单元)执行时,它们引起处理单元(一个或多个)执行指令中指示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM等。计算机可读介质不包括无线地或通过有线连接传递的载波和电子信号。
在本说明书中,术语“软件”意味着包括驻留在只读存储器中的固件或存储在磁存储中的应用,其可以被读入存储器以供处理器处理。此外,在一些实施例中,多个软件发明可以实现为更大程序的子部分,同时保留不同的软件发明。在一些实施例中,多个软件发明也可以实现为单独的程序。最后,共同实现这里描述的软件发明的单独程序的任何组合都在本发明的范围内。在一些实施例中,当软件程序被安装以在一个或多个电子系统上运行时,定义执行和运行软件程序的操作的一个或多个具体机器实现。
图15概念性地图示了利用其实现本发明的一些实施例的计算机系统1500。计算机系统1500可以被用于实现上述主机、控制器和管理器中的任何一个。因此,它可以被用于执行任何上述过程。这种计算机系统包括各种类型的非瞬态机器可读介质和用于各种其它类型的计算机可读介质的接口。计算机系统1500包括总线1505、(一个或多个)处理单元1510、系统存储器1525、只读存储器1530、永久存储设备1535、输入设备1540和输出设备1545。
总线1505概括地表示所有系统、外围设备和芯片组总线,它们可通信地连接计算机系统1500的众多内部设备。例如,总线1505将(一个或多个)处理单元1510与只读存储器1530、系统存储器1525和永久存储设备1535通信地连接。
从这些各种存储器单元中,(一个或多个)处理单元1510检索为了执行本发明的过程要执行的指令和要处理的数据。在不同的实施例中,该(一个或多个)处理单元可以是单个处理器或多核处理器。只读存储器(ROM)1530存储(一个或多个)处理单元1510和电子系统的其它模块所需的静态数据和指令。另一方面,永久存储设备1535是读写存储器设备。此设备1535是即使在计算机系统1500关闭时也能存储指令和数据的非易失性存储器单元。本发明的一些实施例使用大容量存储设备(诸如磁盘或光盘及其对应的盘驱动器)作为永久存储设备1535。
其它实施例使用可移动存储设备(诸如软盘、闪存驱动器等)作为永久存储设备1535。与永久存储设备1535一样,系统存储器1525是读写存储器设备。但是,与存储设备1535不同,系统存储器是易失性读写存储器,诸如随机存取存储器。系统存储器存储处理器在运行时需要的指令和数据中的一些。在一些实施例中,本发明的过程存储在系统存储器1525、永久存储设备1535和/或只读存储器1530中。从这各种存储器单元中,(一个或多个)处理单元1510检索为了执行一些实施例的过程而要执行的指令和要处理的数据。
总线1505还连接到输入和输出设备1540和1545。输入设备使用户能够向电子系统传达信息和选择命令。输入设备1540包括字母数字键盘和定点设备(也称为“光标控制设备”)。输出设备1545显示由电子系统生成的图像。输出设备包括打印机和显示设备,诸如阴极射线管(CRT)或液晶显示器(LCD)。一些实施例包括用作输入和输出设备两者的设备,诸如触摸屏。
最后,如图15中所示,总线1505还通过网络适配器(未示出)将计算机系统1500耦合到网络1565。以这种方式,计算机可以是计算机网络(诸如局域网(“LAN”)、广域网(“WAN”)或内联网)或者是网络的网络(诸如互联网)的一部分。计算机系统1500的任何或所有组件都可以与本发明结合使用。
一些实施例包括将计算机程序指令存储在机器可读或计算机可读介质(可替代地称为计算机可读存储介质、机器可读介质或机器可读存储介质)中的电子组件,诸如微处理器、存储装置和存储器。此类计算机可读介质的一些示例包括RAM、ROM、只读光盘(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、只读数字多功能盘(例如,DVD-ROM、双层DVD-ROM)、各种可刻录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存(例如,SD卡)、mini-SD卡、micro-SD卡等)、磁性和/或固态硬盘驱动器、只读和可刻录盘、超密度光盘、任何其它光学或磁性介质,以及软盘磁盘。计算机可读介质可以存储可由至少一个处理单元执行并且包括用于执行各种操作的指令集的计算机程序。计算机程序或计算机代码的示例包括机器代码,诸如由编译器产生的机器代码,以及包括由计算机、电子组件或微处理器使用解释器执行的高级代码的文件。
虽然上述讨论主要涉及执行软件的微处理器或多核处理器,但一些实施例由一个或多个集成电路(诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA))执行。在一些实施例中,此类集成电路执行存储在电路本身上的指令。
如在本说明书中使用的,术语“计算机”、“服务器”、“处理器”和“存储器”全都指电子或其它技术设备。这些术语不包括人或人群。出于本说明书的目的,术语“显示”是指在电子设备上显示。如本说明书中使用的,术语“计算机可读介质”和“机器可读介质”完全限于以计算机可读的形式存储信息的有形物理对象。这些术语不包括任何无线信号、有线下载信号和任何其它短暂或瞬态信号。
虽然本发明已经参照许多具体细节进行了描述,但是本领域的普通技术人员将认识到本发明可以在不脱离本发明的精神的情况下以其他具体形式体现。上面描述的若干实施例在覆盖封装报头中包括各种数据片。普通技术人员将意识到,其他实施例可能不使用封装报头来中继所有此数据。
此外,若干个图概念性地图示了本发明的一些实施例的过程。在其他实施例中,这些过程的具体操作可能不以这些图中所示和描述的确切顺序执行。具体操作可以不在一个连续的操作系列中执行,并且不同的具体操作可以在不同的实施例中执行。此外,该过程可以使用若干子过程来实现,或者作为更大的宏过程的一部分来实现。因此,本领域的普通技术人员将理解本发明不受前述说明性细节的限制,而是要由所附权利要求限定。

Claims (20)

1.一种方法,包括:
在由网络虚拟化管理器管理的服务节点处,从源云网关接收属于特定租户段的入口数据包,其中所述服务节点从软件定义的广域网(SD-WAN)中包括所述源云网关的多个不同云网关接收属于多个不同租户段的数据包;
从封装在所述入口数据包中的元数据中接收标识所述特定租户段的虚拟网络标识符(VNI);
通过与所述源云网关相关联的隧道端口将所述入口数据包中继到专用于所述VNI的特定租户服务路由器(T1-SR),其中所述服务节点包括专用于多个不同VNI的多个T1-SR;
在所述特定T1-SR处根据与所述VNI相关联的一组策略处理所述入口数据包;以及
将作为所述处理的结果的出口数据包返回到所述源云网关。
2.如权利要求1所述的方法,其中,对应于云网关的隧道端口与该源云网关的MAC地址相关联。
3.如权利要求1所述的方法,其中,所述服务节点还包括分别对应于所述多个云网关的多个隧道端口,其中所述出口数据包通过对应于所述源云网关的所述隧道端口被返回到所述源云网关。
4.如权利要求1所述的方法,其中,所述数据包被封装为包括用于标识所述特定租户段的所述VNI。
5.如权利要求1所述的方法,还包括:存储用于所述入口数据包的一组流标识符,以及基于所存储的所述一组流标识符设置所述出口数据包的目的地地址。
6.如权利要求5所述的方法,其中,所述一组流标识符包括所述源云网关的MAC地址,该MAC地址在所述多个云网关当中是唯一的。
7.如权利要求5所述的方法,其中,所述一组流标识符包括所述源云网关的IP地址,该IP地址在所述多个云网关当中是唯一的。
8.如权利要求1所述的方法,其中,所述服务节点中的提供商服务路由器(T0-SR)将来自所述云网关的数据包解封装,将所述数据包多路分解到所述多个T1-SR,并将数据包封装到所述云网关。
9.一种计算设备,包括:
一个或多个处理器;以及
计算机可读存储介质,存储多个计算机可执行组件,所述多个计算机可执行组件能够由所述一个或多个处理器执行以执行多个动作,所述多个动作包括:
在由网络虚拟化管理器管理的服务节点处,从源云网关接收属于特定租户段的入口数据包,其中所述服务节点从软件定义的广域网(SD-WAN)中包括所述源云网关的多个不同云网关接收属于多个不同租户段的数据包;
从封装在所述入口数据包中的元数据中接收标识所述特定租户段的虚拟网络标识符(VNI);
通过与所述源云网关相关联的隧道端口将所述入口数据包中继到专用于所述VNI的特定租户服务路由器(T1-SR),其中所述服务节点包括专用于多个不同VNI的多个T1-SR;
在所述特定T1-SR处根据与所述VNI相关联的一组策略处理所述入口数据包;以及
将作为所述处理的结果的出口数据包返回到所述源云网关。
10.如权利要求9所述的计算设备,其中,对应于云网关的隧道端口与该源云网关的MAC地址相关联。
11.如权利要求9所述的计算设备,其中,所述服务节点还包括分别对应于所述多个云网关的多个隧道端口,其中所述出口数据包通过对应于所述源云网关的所述隧道端口被返回到所述源云网关。
12.如权利要求9所述的计算设备,其中,所述数据包被封装为包括用于标识所述特定租户段的所述VNI。
13.如权利要求9所述的计算设备,其中所述多个动作还包括:存储用于所述入口数据包的一组流标识符,以及基于所存储的所述一组流标识符设置所述出口数据包的目的地地址。
14.如权利要求13所述的计算设备,其中,所述一组流标识符包括所述源云网关的MAC地址,该MAC地址在所述多个云网关当中是唯一的。
15.如权利要求13所述的计算设备,其中,所述一组流标识符包括所述源云网关的IP地址,该IP地址在所述多个云网关当中是唯一的。
16.如权利要求9所述的计算设备,其中,所述服务节点中的提供商服务路由器(T0-SR)将来自所述云网关的数据包解封装,将所述数据包多路分解到所述多个T1-SR,并将数据包封装到所述云网关。
17.一种非暂时性机器可读介质,存储由至少一个硬件处理单元执行的程序,所述程序包括用于以下操作的指令集:
在由网络虚拟化管理器管理的服务节点处,从源云网关接收属于特定租户段的入口数据包,其中所述服务节点从软件定义的广域网(SD-WAN)中包括所述源云网关的多个不同云网关接收属于多个不同租户段的数据包;
从封装在所述入口数据包中的元数据中接收标识所述特定租户段的虚拟网络标识符(VNI);
通过与所述源云网关相关联的隧道端口将所述入口数据包中继到专用于所述VNI的特定租户服务路由器(T1-SR),其中所述服务节点包括专用于多个不同VNI的多个T1-SR;
在所述特定T1-SR处根据与所述VNI相关联的一组策略处理所述入口数据包;以及
将作为所述处理的结果的出口数据包返回到所述源云网关。
18.如权利要求17所述的非暂时性机器可读介质,其中,对应于云网关的隧道端口与该源云网关的MAC地址相关联。
19.如权利要求17所述的非暂时性机器可读介质,其中,所述服务节点还包括分别对应于所述多个云网关的多个隧道端口,其中所述出口数据包通过对应于所述源云网关的所述隧道端口被返回到所述源云网关。
20.如权利要求17所述的非暂时性机器可读介质,其中,所述数据包被封装为包括用于标识所述特定租户段的所述VNI。
CN202180097261.8A 2021-07-24 2021-12-24 存在点中的网络管理服务 Pending CN117178534A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US17/384,738 US20230026865A1 (en) 2021-07-24 2021-07-24 Network management services in a virtual network
US17/384,738 2021-07-24
US17/384,737 2021-07-24
US17/384,736 2021-07-24
US17/384,735 2021-07-24
PCT/US2021/065171 WO2023009159A1 (en) 2021-07-24 2021-12-24 Network management services in a point-of-presence

Publications (1)

Publication Number Publication Date
CN117178534A true CN117178534A (zh) 2023-12-05

Family

ID=84975891

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180097261.8A Pending CN117178534A (zh) 2021-07-24 2021-12-24 存在点中的网络管理服务

Country Status (2)

Country Link
US (1) US20230026865A1 (zh)
CN (1) CN117178534A (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10454714B2 (en) 2013-07-10 2019-10-22 Nicira, Inc. Method and system of overlay flow control
US10992568B2 (en) 2017-01-31 2021-04-27 Vmware, Inc. High performance software-defined core network
US10999100B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider
US10666460B2 (en) 2017-10-02 2020-05-26 Vmware, Inc. Measurement based routing through multiple public clouds
US11115480B2 (en) 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US11223514B2 (en) 2017-11-09 2022-01-11 Nicira, Inc. Method and system of a dynamic high-availability mode based on current wide area network connectivity
US11252105B2 (en) 2019-08-27 2022-02-15 Vmware, Inc. Identifying different SaaS optimal egress nodes for virtual networks of different entities
US11489783B2 (en) 2019-12-12 2022-11-01 Vmware, Inc. Performing deep packet inspection in a software defined wide area network
US11722925B2 (en) 2020-01-24 2023-08-08 Vmware, Inc. Performing service class aware load balancing to distribute packets of a flow among multiple network links
US11709710B2 (en) 2020-07-30 2023-07-25 Vmware, Inc. Memory allocator for I/O operations
US11929903B2 (en) 2020-12-29 2024-03-12 VMware LLC Emulating packet flows to assess network links for SD-WAN
CN116783874A (zh) 2021-01-18 2023-09-19 Vm维尔股份有限公司 网络感知的负载平衡
US11979325B2 (en) 2021-01-28 2024-05-07 VMware LLC Dynamic SD-WAN hub cluster scaling with machine learning
US11729065B2 (en) 2021-05-06 2023-08-15 Vmware, Inc. Methods for application defined virtual network service among multiple transport in SD-WAN
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102048743B1 (ko) * 2014-06-30 2020-01-08 한국전자통신연구원 Sdn 기반의 네트워크 모니터링 가상화 시스템 및 그 방법
KR102233645B1 (ko) * 2014-11-11 2021-03-30 한국전자통신연구원 가상 네트워크 기반 분산 다중 도메인 라우팅 제어 시스템 및 라우팅 제어 방법
US20170024260A1 (en) * 2015-07-21 2017-01-26 Cisco Technology, Inc. Workload migration across cloud providers and data centers
KR20170058201A (ko) * 2015-11-18 2017-05-26 한국전자통신연구원 다중 클라우드 환경에서의 가상 네트워크 제공 시스템 및 그 방법
US10171357B2 (en) * 2016-05-27 2019-01-01 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US11271905B2 (en) * 2018-09-21 2022-03-08 Google Llc Network architecture for cloud computing environments

Also Published As

Publication number Publication date
US20230026865A1 (en) 2023-01-26

Similar Documents

Publication Publication Date Title
US11375005B1 (en) High availability solutions for a secure access service edge application
US20230026330A1 (en) Network management services in a point-of-presence
US20230025586A1 (en) Network management services in a secure access service edge application
US20230026865A1 (en) Network management services in a virtual network
EP4282141A1 (en) Network management services in a point-of-presence
US20220174042A1 (en) Network Architecture for Cloud Computing Environments
US11115465B2 (en) Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table
US10491516B2 (en) Packet communication between logical networks and public cloud service providers native networks using a single network interface and a single routing table
US10659358B2 (en) Method and apparatus for advanced statistics collection
EP3304815B1 (en) Operations, administration and management (oam) in overlay data center environments
CN112640369B (zh) 在公共云中智能地使用对等的方法、设备和机器可读介质
JP6166293B2 (ja) 論理転送要素を実行する方法およびコンピュータ可読媒体
EP3066795B1 (en) Virtual port channel bounce in overlay network
EP2891282B1 (en) System and method providing distributed virtual routing and switching (dvrs)
EP3367616B1 (en) Configuring the extension of logical networks across layer 3 virtual private networks
JP2022546196A (ja) データプレーン回路におけるスライスベース動作の実行
CN116210204A (zh) 用于vlan交换和路由服务的系统和方法
EP4164196A1 (en) High availability for stateful services in public cloud logical networks
EP3673365A1 (en) Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table
US20210184970A1 (en) Disambiguating traffic in networking environments with multiple virtual routing and forwarding (vrf) logical routers
US20230300002A1 (en) Mapping vlan of container network to logical network in hypervisor to support flexible ipam and routing container traffic
US20240031290A1 (en) Centralized service insertion in an active-active logical service router (sr) cluster
CN116648691A (zh) 在虚拟化的云环境中使用访问控制列表的层2网络

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Country or region after: U.S.A.

Address after: California, USA

Applicant after: Weirui LLC

Address before: California, USA

Applicant before: VMWARE, Inc.

Country or region before: U.S.A.

CB02 Change of applicant information