CN116897338A - 使用客户管理的密钥从客户本地部署网络到客户虚拟云网络的端到端网络加密 - Google Patents

使用客户管理的密钥从客户本地部署网络到客户虚拟云网络的端到端网络加密 Download PDF

Info

Publication number
CN116897338A
CN116897338A CN202180092566.XA CN202180092566A CN116897338A CN 116897338 A CN116897338 A CN 116897338A CN 202180092566 A CN202180092566 A CN 202180092566A CN 116897338 A CN116897338 A CN 116897338A
Authority
CN
China
Prior art keywords
network
vcn
key
customer
data
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
CN202180092566.XA
Other languages
English (en)
Inventor
N·R·波特兰普里
P·文森特
J·S·布拉尔
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN116897338A publication Critical patent/CN116897338A/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/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0464Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

对于虚拟云网络的端到端加密,来自客户设备的VPN隧道在使用在硬件中保护并由客户管理的加密密钥的主机网络头端设备处终止。网络头端设备可以是具有一个或多个网络虚拟化设备的裸金属服务器中的卡。网络头端设备被配置为接收由客户供给的第一密钥;接收从客户的设备发送的第一数据分组;并使用第一密钥解密第一数据分组以获得信息。网络虚拟化设备被配置为接收来自网络头端设备的信息;确定该信息要被发送到虚拟云网络中的虚拟机;确定虚拟云网络中的数据被配置为要被加密;并在将第二数据分组路由到虚拟机之前用第二密钥加密该信息以生成第二数据分组。

Description

使用客户管理的密钥从客户本地部署网络到客户虚拟云网络 的端到端网络加密
相关申请的交叉引用
本申请要求2020年12月23日提交的标题为“END-TO-END NETWORK ENCRYPTIONFROM CUSTOMER ON-PREMISE NETWORK TO CUSTOMER VIRTUAL CLOUD NETWORK USINGCUSTOMER-MANAGED KEYS”的美国申请No.17/133,523的权益,其全部内容通过引用并入本文。
本申请与2020年12月23日提交的标题为“MECHANISM TO PROVIDE CUSTOMER VCNNETWORK ENCRYPTION USING CUSTOMER-MANAGED KEYS IN NETWORK VIRTUALIZATIONDEVICE”美国申请No.17/133,526相关,其全部内容通过引用并入本文。
背景技术
虚拟云网络(VCN)是可定制且私有的网络。与传统数据中心网络类似,VCN提供对网络环境的控制。这包括指派私有IP地址、创建子网、创建路由表和配置防火墙。单个租户(tenant)可以有多个VCN,从而提供相关资源的分组和隔离。
为了安全起见,可以对VCN中的数据进行加密。加密的一个目的是以如下方式基于密钥将明文数据转换成无法理解的密文,这种方式很难(例如,计算上不可行)在不知道正确密钥的情况下将密文转换回其对应的明文。在对称密码系统中,相同的密钥被用于对相同的数据进行加密和解密二者。在一些加密算法中,密钥长度可以是128位、192位或256位。在一些加密标准(例如,数据加密标准(DES)算法)中,消息数据用三遍DES算法来加密。3DES可以提供高度的消息安全性,但会带来性能损失(performance penalty)。性能损失的量值可以取决于处理器执行加密的速度。由RSA Data Security公司开发的RC4算法已成为用于高速数据加密的国际标准。RC4是一种可变密钥长度的流密码,其以DES的速度的几倍进行操作,使得加密大批量数据传送成为可能,同时具有最小的性能影响。网络数据的加密提供了数据隐私,使得在数据通过网络时未经授权方无法查看纯文本数据。
发明内容
本公开一般而言涉及一种虚拟云网络(VCN)。更具体地但不作为限制,描述了用于在客户和VCN之间加密数据以进行端到端加密的技术,其中客户对加密密钥进行管理。不是在使用共享密钥的主机的VPN网关处终止VPN隧道,而是在使用硬件中保护并由客户管理的加密密钥对主机设备处终止来自客户设备的VPN隧道。该设备可以是具有(一个或多个)网络虚拟化设备的裸金属服务器(bare-mental server)。
在某些实施例中,系统包括网络头端设备(network headend device)和网络虚拟化设备。网络头端设备被配置为:接收由客户供给的第一密钥;接收从客户的设备发送的第一数据分组;和/或使用第一密钥解密第一数据分组以获得信息。网络虚拟化设备被配置为:在第一数据分组被解密之后,接收来自网络头端设备的信息;确定该信息要被发送到虚拟云网络中的虚拟机;确定虚拟云网络中的数据被配置为要被加密;用第二密钥加密该信息以生成第二数据分组;和/或将第二数据分组路由到虚拟机。
在某些实施例中,系统由主机维护,并且主机无权访问第一密钥或第二密钥;网络头端设备被配置作为在网络头端设备和客户设备之间形成的互联网协议安全性(IPSec)隧道的终止点;第一数据分组被路由通过公共互联网;第一数据分组被路由通过一组私有链路,而不使用公共互联网中的链路;网络虚拟化设备支持虚拟云网络中的虚拟机的实例;网络头端设备是网络接口卡;网络头端设备在网络接口卡上并且网络虚拟化设备是该网络接口卡的一部分;网络头端设备和网络虚拟化设备在同一服务器中;网络头端设备专供该客户使用,使得主机的其他客户不会使用该网络头端设备;网络虚拟化设备与密钥管理服务通信以获得第二密钥;客户使用密钥管理服务在网络头端设备中供给第一密钥;网络头端设备是第一网络头端设备并且该系统还包括第二网络头端设备,第二网络头端设备被配置为解密来自客户的数据;网络虚拟化设备是第一网络虚拟化设备,虚拟云网络是第一虚拟云网络,系统还包括第二网络虚拟化设备,和/或第二网络虚拟化设备被配置为接收来自网络头端设备的数据并使用第三密钥为第二虚拟云网络加密从网络头端设备接收的数据;第一网络虚拟化设备和第二网络虚拟化设备是同一网络接口卡的一部分;和/或网络头端设备被配置为在主机认证了客户之后从客户接收第一密钥。
在还有其它实施例中,一种方法包括使用网络头端设备接收由客户供给的第一密钥;在网络头端设备处接收从客户的设备发送的第一数据分组;使用第一密钥解密第一数据分组,以获得信息;使用网络虚拟化设备接收来自网络头端设备的信息;确定信息要被发送到虚拟云网络中的虚拟机;使用第二密钥用网络虚拟化设备对信息进行加密,以生成第二数据分组;和/或将第二数据分组路由到虚拟机。
参考以下说明书、权利要求和附图,前述内容连同其它特征和实施例将变得更加清楚。
附图说明
图1描绘了用于网络虚拟化设备的系统的一个实施例的示意图。
图2是多个网络虚拟化设备从密钥管理服务接收密码密钥的一个实施例的描绘。
图3是网络虚拟化设备支持具有不同密码密钥的多个客户的一个实施例的描绘。
图4是图示用于在虚拟云网络中加密数据的过程的一个实施例的流程图。
图5是图示使用多个密码密钥为多个虚拟云网络进行数据加密的过程的一个实施例的流程图。
图6是虚拟云网络通过VPN网关接收数据的一个实施例的描绘。
图7是虚拟云网络通过虚拟云网络(VCN)头端接收数据的一个实施例的描绘。
图8是一个VCN头端支持多于一个虚拟云网络的实施例的描绘。
图9是图示用于虚拟云网络的端到端加密的过程的一个实施例的流程图。
图10是图示根据至少一个实施例的用于将云基础设施实现为服务系统的一种模式的框图。
图11是图示根据至少一个实施例的用于将云基础设施实现为服务系统的另一种模式的框图。
图12是图示根据至少一个实施例的用于将云基础设施实现为服务系统的另一种模式的框图。
图13是图示根据至少一个实施例的用于将云基础设施实现为服务系统的另一种模式的框图。
图14是图示根据至少一个实施例的示例计算机系统的框图。
图15是分布式环境的高级图,示出了根据某些实施例的由云服务提供商基础设施托管的虚拟或覆盖云网络。
图16描绘了根据某些实施例的CSPI内的物理网络中的物理组件的简化体系架构图。
图17示出了根据某些实施例的CSPI内的示例布置,其中主机机器连接到多个网络虚拟化设备(NVD)。
图18描绘了根据某些实施例的主机机器和NVD之间的连接性,用于提供I/O虚拟化以支持多租赁(multitenancy)。
图19描绘了根据某些实施例的由CSPI提供的物理网络的简化框图。
在附图中,相似的组件和/或特征可以具有相同的附图标记。另外,相同类型的各种组件可以通过在参考标记后面加上破折号和区分相似组件的第二标记来区分。如果在说明书中仅使用第一附图标记,那么该描述适用于具有相同第一附图标记的任何一个相似组件,而不管第二附图标记。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。但是,显然可以在没有这些具体细节的情况下实践各种实施例。附图和描述并非旨在限制。词语“示例性”在本文用于表示“用作示例、实例或图示”。本文描述为“示例性”的任何实施例或设计不一定被解释为优选或优于其它实施例或设计。
虚拟云网络(VCN)是可定制且私有的网络。主机可以为客户提供计算硬件和/或软件以设置VCN。通常,主机管理VCN的加密(如果存在的话)。客户可能不希望主机管理加密,因为客户可能担心主机的数据泄露可能危及客户数据,或者客户可能担心主机可以访问多少客户数据。本说明书涉及使用客户管理的密钥提供VCN网络加密的机制。客户管理的密钥可以分布在SmartNIC中。SmartNIC是网络接口卡(例如,网络适配器),其对CPU通常可能处置的处理任务进行卸载。SmartNIC可以执行加密、解密、路由、防火墙等功能。
SmartNIC可以被用于支持具有专用密码加速器和/或SRAM的网络加密虚拟功能(NEVF)。密码加速器可以被用于联机(in-line)分组加密。SRAM可以被用于存储加密密钥。指派给客户虚拟机(客户虚拟机是客户VCN的一部分)的NEVF可以被用于虚拟机网络流量(traffic)加密和存储加密密钥。管理程序可以将客户虚拟机映射到NEVF。可以在客户VCN实例(例如,虚拟机(VM)和/或裸金属(BM))的NEVF中安全地供给加密密钥。
在客户VCN实例之间交换的流量用在NEVF中供给的加密密钥进行加密。VCN中的每个实例共享相同的加密密钥(例如,机会加密)。控制平面可以为VCN中的客户实例(VM和/或BM)供给和/或管理网络加密密钥。控制平面可以被用于认证客户虚拟功能并从密钥管理服务供给加密密钥。使用证书,密钥管理服务和NIC可以安全地共享客户加密密钥。因此,客户可以(例如,使用应用程序接口和/或操作系统命令)管理网络加密密钥。在一些配置中,唯一密钥在VCN中的VM主机之间共享。每个VM主机的NEVF存储密钥和/或与要使用的密钥相关联的元数据。
参考图1,示出了用于为虚拟云网络加密数据的系统的一个实施例的示意图。网络虚拟化设备100包括第一虚拟化引擎104-1和第二虚拟化引擎104-2。虚拟化引擎104为每个裸金属或虚拟机实例化并提供虚拟网络接口卡(VNIC)。虚拟化引擎104可以是网络加密虚拟功能(NEVF)。网络虚拟化设备100可以是附有专用资源(例如,存储器和/或处理器)的物理卡(例如,SmartNIC)。在一些实施例中,网络虚拟化设备100是SmartTOR、网络装备或服务主机。
云服务提供商基础设施内分组的路由和/或转发可以由网络虚拟化设备执行。网络虚拟化设备可以实现一种或多种虚拟网络功能,诸如虚拟网络接口卡(VNIC)、虚拟路由器、虚拟网络网关和网络加密虚拟功能。网络虚拟化设备是使用软件(例如,处理器执行的代码或指令)实现的虚拟对象。网络虚拟化设备是执行诸如虚拟路由器之类的虚拟功能的硬件组件(例如,虚拟路由器设备是执行实现虚拟路由器的代码的物理设备)。例如,VNIC由SmartNIC执行;SmartNIC是网络虚拟化设备。在VNIC由主机机器执行的情况下,主机机器是网络虚拟化设备。在一些实施例中,虚拟路由器由架顶式(TOR)交换机执行(并且TOR是虚拟路由器设备)。SmartNIC只是网络虚拟化设备的一个示例。
虚拟机108是计算机上的程序,它像计算机内部的独立计算机一样执行。可以使用虚拟化软件创建虚拟机。虚拟机108可以执行各种虚拟功能。
虚拟化引擎104包括存储器设备112和密码处理器116。存储器设备112被配置为存储密钥,诸如密码密钥。在一些实施例中,存储器设备112是包括电容器和晶体管的静态随机存取存储器(SRAM)设备。
密码处理器116被配置为使用存储在存储器设备112中的密钥来加密和/或解密去往和来自虚拟机108的数据。传输分组TX是从虚拟机108发送的数据分组。接收分组RX是发送给虚拟机108的数据分组。传输分组TX由密码处理器116加密。接收分组RX由密码处理器116解密。使用联机加密/解密对传输分组TX和/或接收分组RX进行加密/解密。在一些实施例中,虚拟化引擎104被配置为提供数据分组的网络路由(例如,虚拟化引擎104为传输分组TX提供路由数据)。
在所示的实施例中,虚拟化引擎104被配置为一次仅实例化一个虚拟机108。这允许每个虚拟机108有专用的加密资源(例如,存储器设备112和/或加密过程或116),这可以提高安全性。
在所示的实施例中,第一虚拟化引擎104-1包括第一存储器设备112-1和第一密码处理器116-1;并且第二虚拟化引擎104-2包括第二存储器设备112-2和第二密码处理器116-2。因而,第二虚拟化引擎104-2和第一虚拟化引擎104-1是同一设备的部分。虽然两个虚拟化引擎104被示为网络虚拟化设备100的部分,但是应该理解的是,多于两个的虚拟化引擎104可以是网络虚拟化设备100的部分(例如,3、5、10、100、或更多个虚拟化引擎104可以是网络虚拟化设备100的部分)。
在一些实施例中,网络虚拟化设备100用于实现虚拟功能,诸如VNIC、虚拟路由器和/或NEVF。网络虚拟化设备100可以是服务器中的卡(例如,SmartNIC)。网络虚拟化设备100由主机管理(例如,拥有和/或运营)用于一个或多个客户端设置一个或多个VCN。主机是网络虚拟化设备100的管理员。密钥可以存储在存储器设备112中(例如,加密的),因此主机(例如,管理员)无权访问存储在存储器设备112中的密钥。通过无法访问密钥的主机,即使主机的安全性受到威胁,也可以确保客户端的数据安全性。
以太网桥120允许第一虚拟化引擎104-1经由互联网通信和/或与第二虚拟化引擎104-2通信(例如,当第一虚拟机108-1和第二虚拟机108-2是同一虚拟云网络的部分)。主机使用管理程序124在虚拟机108之间共享计算系统的资源。
图2是对多个虚拟化引擎104从密钥管理服务208接收密码密钥204的一个实施例的描绘。在所示的实施例中,存在三个虚拟化引擎104。虽然示出了三个虚拟化引擎104,但是可以使用更多或更少的虚拟化引擎104。虚拟化引擎104各自实例化一个(并且在一些实施例中仅实例化一个)虚拟机108。图2中的虚拟机108是公共虚拟云网络(VCN)212的一部分。由于虚拟化引擎104是同一VCN 212的一部分,因此虚拟化引擎104各自接收相同的密钥(例如,相同的密码密钥204),这使得虚拟化引擎104能够使用加密的数据安全地彼此通信(例如,使用图1中所示的以太网桥120)。因而,第一虚拟化引擎104-1被配置为从密钥管理服务208接收密码密钥204。第一虚拟化引擎104-1将密码密钥204保存在第一存储器设备112-1中。
VCN控制平面216被配置为管理、监视和/或修改云基础设施资源。密钥管理服务208可以在网络虚拟化设备100的主机无法访问密码密钥204的情况下为客户端向虚拟化引擎104提供密码密钥204。通过无法访问密码密钥204的主机(例如,云服务提供商),客户端控制VCN 212的安全性。
为了在主机无法访问密钥的情况下将密钥放入存储器设备112,客户可以在密钥管理服务208(例如,OCI的云密钥管理服务)中初始化密码密钥204和/或给予虚拟化引擎104访问它的许可。在云网络中,可以为每个资源指派身份原则(例如,OCI的云身份原则),从而可以为每个资源提供凭证,以便向其它云资源认证该资源。虚拟化引擎104(例如,NEVF)是资源并且可以被指派身份原则。可以向密钥管理服务208认证虚拟化引擎104。虚拟化引擎104可以请求客户密钥(例如,密码密钥204)
虚拟化引擎104可以从密钥管理服务208请求密码密钥204(例如,使用身份原则来认证其自身以请求密钥)。密钥管理系统208可以将密钥推送(和/或更新)到虚拟化引擎104(例如,在认证虚拟化引擎(104)之后)。请求或推送密钥是在云网络的主机不将密钥供给到虚拟化引擎104(例如,进入虚拟化引擎104的SRAM)的情况下完成的。可以在密钥管理系统208和虚拟化引擎104之间预共享安全性协议,以便密钥管理系统可以用预共享秘密将数据路由到虚拟化引擎104以初始化虚拟化引擎104的存储器中的密钥。
相同的密码密钥204被分发到支持虚拟云网络212中的虚拟机108的每个虚拟化引擎104。当实例化虚拟机108时,可以将密钥204分发给虚拟化引擎104。例如,当客户创建VCN212时,可以询问客户是否要加密VCN 212(例如,客户可以选中用于加密VCN 212的方框)。当启动虚拟机108的实例时,底层协议从密钥管理服务208去往虚拟化引擎104以将密码密钥204分发到虚拟化引擎104的存储器设备112。密码密钥204可以定期地(例如,每小时、每天、每周等)更新和/或由客户更新(例如,客户选择或定义更新时间表和/或选择立即更新密码密钥204)。在一些实施例中,客户生成多个密钥,并且当需要轮换到新密钥时(例如,每天在时间T),密码密钥204被更新(例如,每个虚拟化引擎104在时间T到达密钥管理服务208)。新密钥发布在存储器设备112中。密钥同步(例如,自动同步)可以被用于多个主机(例如,每个虚拟化引擎104的同步计数器可以被用于在存储器设备112中发布新密钥)。在一些实施例中,密码密钥204基于某种加密方案在每个虚拟化引擎104上轮换(例如,密码密钥204被刷新)。因此,密码密钥204可以被同时推送和/或刷新到作为VCN 212的一部分的每个虚拟化引擎104或在每个虚拟化引擎104上被同时推送和/或刷新。密钥管理服务208可以与VCN 212具有单个加密关系,因此密钥管理服务208不必维护与不同设备的关系。
通过对数据进行加密(其中客户控制密钥),客户可以确信数据在主机的线路上被加密。在一些实施例中,客户可以使用传输层安全性(TLS)隧道与主机通信。但是,TLS存在缺陷并且可能存在安全性问题。通过允许客户使用密钥管理服务208来控制密钥,可以避免或减少TLS的缺陷和安全性问题。在一些实施例中,TLS隧道或基于预共享密钥的自定义安全性协议可以被用于NEVF和密钥管理服务之间的安全通信。
虽然描述示出了在VCN 212级别分发和管理密码密钥204,但是可以在其它级别(诸如在子网级别)使用类似的处理和技术。例如,加密密钥可以用于VCN 212的L2或L3。
图3是网络虚拟化设备100支持具有不同密码密钥304的多个客户端的一个实施例的描绘。网络虚拟化设备100包括第一虚拟化引擎104-1、第二虚拟化引擎104-2、第三虚拟化引擎104-3和第四虚拟化引擎104-4。第一虚拟化引擎104-1被配置为实例化第一虚拟机108-1。第二虚拟化引擎104-2被配置为实例化第二虚拟机108-2。第三虚拟化引擎104-3被配置为实例化第三虚拟机108-3。第四虚拟化引擎104-4被配置为实例化第四虚拟机108-4。
第一虚拟机108-1和第三虚拟机108-3是第一VCN 312-1的部分。第二虚拟机108-2和第四虚拟机108-4是第二VCN 312-2的部分。第一VCN 312-1用于第一客户端。第二VCN312-2用于第二客户端,其中第二客户端与第一客户端不同。因此,一个设备上的多个NEVF可以被用于支持属于不同虚拟云网络的虚拟机。
第一虚拟化引擎104-1和第三虚拟化引擎104-3从第一密钥管理服务208-1接收第一密码密钥304-1。第二虚拟化引擎104-2和第四虚拟化引擎104-4从第二密钥管理服务208-2接收第二密码密钥304-2。第二密码密钥304-2与第一密码密钥304-1不同。在一些实施例中,第二VCN 312-2的虚拟化引擎104从与第一VCN 312-1的虚拟化引擎104相同的密钥管理服务接收第二密码密钥304-2(例如,第二VCN 312-2的虚拟化引擎104从第一密钥管理服务208-1接收第二密码密钥304-2)。
第一虚拟化引擎104-1将第一密码密钥304-1存储在第一存储器设备112-1中。第二虚拟化引擎104-2将第二密码密钥304-2存储在第二存储器设备112-2中。类似地,第三虚拟化引擎104-3和第四虚拟化引擎104-4各自将相应的密码密钥304存储在存储器设备112中。网络虚拟化设备100的主机无权访问第一密码密钥304-1或第二密码密钥304-2。通过使每个虚拟机108具有一个虚拟化引擎104(例如,通过具有专用资源,诸如每个虚拟机108一个存储器设备112)使得一个网络虚拟化设备100能够安全地支持多个客户的多个VCN 312。由于每个客户针对VCN 312管理他们自己的密码密钥304,因此可以安全地管理每个客户的数据。另外,主机的数据泄露不会导致VCN 312的数据泄露,从而向客户提供附加的安全信心。
图4是图示用于在虚拟云网络中加密数据的过程400的一个实施例的流程图。过程400开始于步骤402,在该步骤中实例化第一虚拟机。例如,第一虚拟化引擎104-1实例化第一虚拟机108-1,如图1中所示。在步骤404中,实例化第二虚拟机。例如,在图1中第二虚拟化引擎104-2实例化第二虚拟机108-2。如图1中所示,虚拟化引擎104包括存储器设备112和密码处理器116。
第一密钥被存储在第一存储器设备中(步骤406)。例如,密码密钥204被存储在第一虚拟化引擎104-1的第一存储器设备112-1中,如图2中所示。第一密钥可以是从密钥管理服务检索的(例如,从密钥管理服务请求或由密钥管理服务请求推送)。在一些实施例中,虚拟云网络的客户控制第一密钥,因此第一虚拟化引擎104-1的主机无权访问该密钥。
第二密钥被存储在第二存储器设备中(步骤408)。例如,密码密钥204被存储在第二虚拟化引擎104-2的第二存储器设备112-2中,如图2中所示。第二密钥可以是从密钥管理服务检索的(例如,从密钥管理服务请求或由密钥管理服务请求推送)。在一些实施例中,虚拟云网络的客户控制第二密钥,因此虚拟化引擎104的主机无权访问第二密钥。第二密钥可以与第一密钥相同,如图2中所示。第二密钥可以与第一密钥不同,如图3中所示。例如,第二密钥可以与第一密钥不同,因为第二虚拟机是与第一虚拟机不同的虚拟云网络的一部分。
在步骤410中,使用第一密钥对第一虚拟机的数据进行加密。例如,在图1中,第一密码处理器116-1对来自第一虚拟机108-1的传输数据TX进行加密。在步骤412中,使用第二密钥对第二虚拟机的数据进行加密。例如,在图1中,第二密码处理器116-2对来自图1中的第二虚拟机108-2的传输数据TX进行加密。如果第一虚拟机108-1和第二虚拟机108-2是同一虚拟云网络的部分,那么第一虚拟机108-1可以使用相同的密钥安全地向第二虚拟机108-2传输数据和/或从其接收数据(例如,参见图2)。但是,如果第一密钥与第二密钥不同,如图3中所示,那么第一虚拟机108-1不向第二虚拟机108-2发送加密数据和/或从其接收加密数据(除非在图3中在第一VCN 312-1和第二VCN 312-2之间存在某种附加布置)。
第一虚拟化引擎104-1和第二虚拟化引擎104-2在同一设备上(例如,服务器中同一卡的部分)。由于虚拟化引擎104仅用于实例化一个虚拟机,和/或由于虚拟化引擎具有一个或多个专用资源,因此去往和来自每个虚拟机的数据可以安全地被加密和/或解密,而无需网络虚拟化设备的主机能够访问第一密钥或第二密钥。
图5是图示用于使用多个密码密钥对多个虚拟云网络进行数据加密的过程500的一个实施例的流程图。过程500开始于步骤502,在该步骤中,为第一客户实例化第一虚拟机集合。第一虚拟化引擎集合用于实例化第一虚拟机集合。第一虚拟机集合是第一虚拟云网络的部分。在这个实施例中,集合包括两个或更多个。例如,在图3中,第一虚拟化引擎104-1和第三虚拟化引擎104-3用于实例化第一虚拟机108-1和第三虚拟机108-3;第一虚拟机108-1和第三虚拟机108-3是第一虚拟云网络312-1的部分。
为第二客户实例化第二虚拟机集合(步骤504)。第二虚拟化引擎集合用于实例化第二虚拟机集合。第二虚拟机集合是第二虚拟云网络的部分。例如,在图3中,第二虚拟化引擎104-2和第四虚拟化引擎104-4用于实例化第二虚拟机108-2和第四虚拟机108-4;第二虚拟机108-2和第四虚拟机108-4是第二虚拟云网络312-2的部分。
在步骤506中,第一密钥(例如图3中的第一密码密钥304-1)由用于实例化第一虚拟云网络的虚拟机的虚拟化引擎接收。第二密钥(例如图3中的第二密码密钥304-2)由用于实例化第二虚拟云网络的虚拟机的虚拟化引擎接收(步骤508)。可以从第一密钥管理服务接收第一密钥,并且可以从与第一密钥管理服务不同的第二密钥管理服务接收第二密钥。
第一密钥用于为第一客户加密数据(步骤510)。第二密钥用于为第二客户加密数据(步骤512)。主机无权访问第一密钥和/或第二密钥。
图6是虚拟云网络312通过VPN(虚拟专用网络)网关604接收数据的一个实施例的描绘。数据在客户头端608(例如,VPN头端)上加密。头端是用作受保护的传输链路的终止点的设备。客户头端608是客户本地部署网络612的一部分。数据从客户头端608(例如,通过Inet网关616)传输到VPN网关604。VPN网关由VCN 312的主机拥有和/或运营。可以从客户头端608到VPN网关604形成互联网协议安全性(IPSec)隧道,使得数据分组在客户头端608处被加密并在VPN网关604处被解密;对于从VPN网关604发送到客户头端608的经加密的数据,反之亦然。从客户头端608发送到VPN网关604的数据可以通过公共链路(例如,互联网)或私有链路(例如,使用Oracle FastConnect)发送。IPSec隧道可以使用层1和/或层2加密。
在VPN网关604处,该主机可以从一个或多个客户接收数据。在一些实施例中,VPN网关604可以是用于单个客户的专用裸金属主机或具有网络硬件的多租户主机(其中多个NEVF终止来自多个客户的VPN连接)。重定向器620被用于将来自第一客户的数据路由到第一网络虚拟化设备624-1,以及将来自第二客户的数据路由到第二网络虚拟化设备624-2。第一网络虚拟化设备624-1加密第一客户的数据以用于第一虚拟云网络312-1。第二网络虚拟化设备624-2加密第二客户的数据以用于第二虚拟云网络312-2。
未加密的数据从VPN网关604发送到重定向器620。网络虚拟化设备624被配置为加密用于虚拟云网络312的数据。例如,网络虚拟化设备624是如图2中所示的虚拟化引擎104。如图2中所示,虚拟化引擎104可以从密钥管理服务208接收密码密钥204,从而可以使用由客户提供的密码密钥204来加密虚拟云网络312内的数据。
客户本地部署网络612包括由主机拥有和/或维护的设备。例如,客户头端608是客户拥有和/或维护的机器中的网卡。在一些实施例中,客户头端608与VPN网关604(例如,主机拥有和/或维护的网卡)相隔5、10、20、50、100、500公里或更多公里。
VPN网关604、重定向器620和网络虚拟化设备624是云服务提供商基础设施(CSPI)628的一部分。主机拥有和/或维护CSPI 628。相应地,主机管理从VPN网关604到网络虚拟化设备624的数据安全性(如果有的话)。此外,对于从客户头端608到VPN网关604建立的IPSec隧道,客户和主机共享密钥(例如,用于对称加密)和/或多个密钥(例如,用于非对称加密)。例如,主机可以赋予客户用于建立IPSec隧道的密钥,客户可以将该密钥提供给主机,或者客户和主机可以就加密方案达成一致。
图7是虚拟云网络通过虚拟云网络(VCN)头端704接收数据的一个实施例的描绘。在一些情况下,客户可能期望从客户本地部署网络612安全地到达虚拟云网络312,而主机无权访问用于加密的数据和/或密钥。例如,VPN网关604使用主机有权访问的加密密钥以便解密来自客户头端608的数据。另外,客户可能不期望在主机的机器之间以未加密的方式传输其数据。例如,数据未加密而通过图6中的重定向器620。
VCN头端704被用于使客户能够从他们自己的本地网络安全地到达VCN(在本公开中称为端到端加密)和/或允许客户控制/管理(一个或多个)加密密钥。VCN头端704是专用于特定客户的网络资源(例如,主机提供电力和/或制冷,但主机不能登录到VCN头端704)。在一些实施例中,VCN头端704是或者可以包括SmartNIC或其它网络虚拟化设备,诸如一个或多个NIC、SmartToR等。SmartNIC可以是专用集成电路(ASIC)、现场可编程门阵列(FPGA),或片上系统(SoC)。VCN头端704可以包括一个或多个处理器和一个或多个存储器设备。
使用加密密钥708将数据从客户头端608加密到VCN头端704。VCN头端704可以被配置为通过公共链路(例如,公共互联网)和/或通过私有链接(例如,Oracle FastConnect)接收经加密的数据。例如,从客户头端608到VCN头端704形成VPN隧道,并且客户头端608和VCN头端704是该VPN隧道的终止点。因此,VPN隧道不是如图6中所示在VPN网关604处终止,而是在VCN头端704处终止(例如,绕过VPN网关604和/或绕过重定向器620)。
由于VCN头端704是客户专用的资源,因此该客户可以在VCN头端704的存储器设备中安全地供给加密密钥708。例如,客户可以登录到VCN头端704以供给加密密钥708,和/或客户可以使用图2中的密钥管理服务208来供给加密密钥708,类似于使用密钥管理服务208来向虚拟化设备104供给密码密钥304。例如,密钥管理服务208可以在确认(例如,认证)VCN头端704具有接收加密密钥708的适当许可或凭证之后向VCN头端704提供加密密钥708。
在某些实施例中,VCN头端704是不提供虚拟功能的物理设备。经解密的数据从VCN头端704发送到网络虚拟化设备624。在所示的实施例中,VCN头端704和网络虚拟化设备624是VCN网关712的一部分。例如,VCN网关712是具有两个网卡的物理主机,一个网卡用于VCN头端704,另一个网卡用于网络虚拟化设备624。VCN网关712可以是专用于客户的,使得主机的其他客户不使用VCN网关712。在示例中,VCN头端704和网络虚拟化设备624是同一服务器的一部分以增加安全性,同时未加密的数据从VCN头端704传输到网络虚拟化设备624。在一些实施例中,VCN头端704与网络虚拟化设备624在同一个板(例如,网卡)上、在相同的机架上和/或在相同的房间中(例如,为了安全性)。VCN头端704和网络虚拟化设备624可以是高性能NIC的一部分以根据需要来处置流量。VCN网关712具有终止IPSec隧道的能力,并且还具有NEVF以供给密码密钥以加密流量并将其发送到虚拟云网络中。VCN网关712允许客户控制/管理密码密钥304和加密密钥708二者。虽然VCN网关712是云服务提供商基础设施(主机的基础设施)的一部分,但主机不会管理或访问加密密钥708。
网络虚拟化设备624被用于加密用于虚拟云网络312的数据(例如,使用网络加密虚拟功能来加密)。例如,网络虚拟化设备624是如图1-图3中所描述的虚拟化引擎104并且使用密钥304来加密虚拟云网络312的数据。因此,网络虚拟化设备624可以提供虚拟云网络312中的虚拟机的实例。
在一些实施例中,网络虚拟化设备624是VCN头端704的一部分,从而允许VPN隧道在虚拟云网络312的实例处终止。VCN网关712可以被用于使用加密密钥708来解密数据以及使用密码密钥304来加密数据。
在一些配置中,一个客户可以具有两个或更多个VCN头端704。例如,具有高容量的客户可能具有多个VCN头端704以增加用于安全地上传和/或下载数据到一个或多个虚拟云网络312的带宽。一个加密密钥708可以被用于支持一个客户的多个VCN头端704,或者不同的加密密钥708可以被用于不同的VCN头端704。在客户供给该(一个或多个)加密密钥708的情况下,客户可以决定是拥有一个加密密钥708还是多个加密密钥708。在一些实施例中,一个NIC被用于多个VCN头端704。
在一些配置中,加密密钥708是长期密钥(例如,每周、每月或手动被轮换或更改)。密码密钥304可以是短期密钥(例如,少于每周或每天被轮换或更改,例如每4、8、12、24或36小时被轮换或更改)。因此,加密密钥708可以被配置为比密码密钥304更不频繁地被更改。
系统可以包括网络头端设备(例如,VCN头端704)。网络头端设备可以被配置为接收由客户供给的第一密钥(例如,加密密钥708)(例如,客户可以登录到VCN头端704以供给第一密钥和/或使用密钥管理服务)。网络头端设备被配置为从客户的设备接收第一数据分组。例如,网络头端设备被配置为接收来自客户头端608的数据。网络头端设备被配置为使用第一密钥解密第一数据分组以获得信息。该信息是经解密的数据的至少一部分。网络虚拟化设备(例如,网络虚拟化设备624)被配置为在第一数据分组被解密之后接收来自网络头端设备的信息;确定该信息要被发送到虚拟云网络中的虚拟机(例如,虚拟云网络312中的虚拟机);以及用第二密钥加密该信息以生成第二数据分组。例如,使用密码密钥304对该信息进行加密。第二数据分组被路由到虚拟机(例如,路由到被用于实例化该虚拟机的网络虚拟化设备)。
图8是一个VCN网关712支持客户的多于一个虚拟云网络312的实施例的描绘。使用加密密钥708,来自客户头端608的数据被安全地传输到VCN头端704。VCN头端704是VCN网关712的一部分。VCN网关包括第一网络虚拟化设备624-1和第二网络虚拟化设备624-2。虽然示出了两个网络虚拟化设备624和两个虚拟云网络312,但是可以使用多于两个(例如,3、4、5、10、20个或更多)。如结合图7所提到的,也可以使用多于一个VCN头端704(例如,2、3、4个或更多)。
在解密从客户头端608接收到的数据之后,VCN头端704确定该数据是否旨在用于第一虚拟云网络312-1、第二虚拟云网络312-2、或第一虚拟云网络312-1和第二虚拟云网络312-2两者。对于旨在用于第一虚拟云网络312-1的数据,该数据使用第一网络虚拟化设备624-1使用第一密码密钥304-1被重新加密,并被发送到第一虚拟网络312-1;对于旨在用于第二虚拟云网络312-2的数据,该数据使用第二网络虚拟化设备624-2使用第二密钥304-2被重新加密,并被发送到第二虚拟云网络312-2。因此,一个VCN头端704可以被用于支持客户的多个虚拟云网络312。在一些实施例中,一个NIC用于多个网络虚拟化设备624。在一些实施例中,多个网络虚拟化设备624与VCN头端704是同一NIC的一部分。在其它实施例中,VCN头端704与网络虚拟化设备624在不同的NIC上。
图9是图示用于虚拟云网络的端到端加密的过程900的一个实施例的流程图。过程900开始于步骤902,在网络头端设备中接收第一密钥。例如,图7中所示的加密密钥708是第一密钥,并且VCN头端704是该网络头端设备。第一密钥可以由客户供给(例如,使得第一密钥由客户管理,而主机不知道第一密钥是什么)。在步骤904中,网络头端设备接收第一数据分组。例如,VCN头端704从客户的设备(例如,从客户头端608)接收经加密的数据。网络头端设备解密第一数据分组以获得信息(步骤906)。该信息是经解密的第一数据分组的至少一部分。在一些实施例中,网关(例如,图6中的VPN网关604)可以使用第一密钥终止来自客户头端608的VPN隧道,并用第二密钥对流量进行重新加密以将数据分组发送到VCN中的实例(例如,VM/BM),其中第二密钥是VCN加密密钥。
网络头端设备将信息传输到网络虚拟化设备,使得网络虚拟化设备从网络头端设备接收信息(步骤908)。例如,VCN头端704将经解密的数据传输到图7中的网络虚拟化设备624。在一些实施例中,网络虚拟化设备624可以是VCN头端704的组成部分。在步骤910中,网络虚拟化设备使用第二密钥对该信息进行加密以生成第二数据分组。例如,网络虚拟化设备624使用密码密钥304加密用于虚拟云网络312的数据。然后第二数据分组被路由到虚拟云网络中的虚拟机。例如,经加密的数据由网络虚拟化设备624发送到图7中的虚拟云网络312。
在一些配置中,图7中从客户头端608到VCN头端704的数据被加密,或者从网络虚拟化设备624到虚拟云网络312的数据被加密,但不是两者都加密。在一些实施例中,在对从VCN头端704接收的信息进行加密之前,网络虚拟化设备624确定虚拟云网络中的数据要被加密。
基础设施即服务(IaaS)是一种特定类型的云计算。IaaS可以被配置为通过公共网络(例如,互联网)提供虚拟化计算资源。在IaaS模型中,云计算提供商可以托管基础设施组件(例如,服务器、存储设备、网络节点(例如,硬件)、部署软件、平台虚拟化(例如,管理程序层)等)。在一些情况下,IaaS提供商还可以提供各种服务来伴随这些基础设施组件(例如,计费、监视、记载、安全性、负载平衡和聚类等)。因此,由于这些服务可能是策略驱动的,因此IaaS用户可以能够实现策略来驱动负载平衡,以维持应用的可用性和性能。
在一些情况下,IaaS客户可以通过诸如互联网之类的广域网(WAN)访问资源和服务,并且可以使用云提供商的服务来安装应用栈的剩余元素。例如,用户可以登录到IaaS平台以创建虚拟机(VM)、在每个VM上安装操作系统(OS)、部署诸如数据库之类的中间件、为工作负载和备份创建存储桶,甚至将企业软件安装到那个VM中。然后,客户可以使用提供商的服务来执行各种功能,包括平衡网络流量、解决应用问题、监视性能、管理灾难恢复等。
在大多数情况下,云计算模型将使用云提供商的参与。云提供商可以但不一定是专门提供(例如,供应、出租、销售)IaaS的第三方服务。实体也可能选择部署私有云,从而成为其自己的基础设施服务提供商。
在一些示例中,IaaS部署是将新应用或应用的新版本放置到准备好的应用服务器等上的处理。它还可以包括准备服务器(例如,安装库、守护进程等)的处理。这通常由云提供商管理,位于管理程序层之下(例如,服务器、存储装置、网络硬件和虚拟化)。因此,客户可以负责处理(OS)、中间件和/或应用部署(例如,在(例如,可以按需启动的)自助服务虚拟机等上)。
在一些示例中,IaaS供应(provision)可以指获取计算机或虚拟主机以供使用,甚至在它们上安装所需的库或服务。大多数情况下,部署不包括供应,并且供应可能需要被首先执行。
在一些情况下,IaaS供应存在两个不同的问题。首先,在任何东西运行之前供应初始基础设施集存在最初的挑战。其次,一旦所有东西已被供应,就存在演进现有基础设施(例如,添加新服务、更改服务、移除服务等)的挑战。在一些情况下,可以通过启用以声明方式定义基础设施的配置来解决这两个挑战。换句话说,基础设施(例如,需要哪些组件以及它们如何交互)可以由一个或多个配置文件来定义。因此,基础设施的总体拓扑(例如,哪些资源依赖于哪些资源,以及它们如何协同工作)可以以声明的方式描述。在一些情况下,一旦定义了拓扑,就可以生成创建和/或管理配置文件中描述的不同组件的工作流。
在一些示例中,基础设施可以具有许多互连的元素。例如,可能存在一个或多个虚拟私有云(VPC)(例如,可配置和/或共享计算资源的潜在按需池),也称为核心网络。在一些示例中,还可以供应一个或多个安全组规则以定义如何设置网络的安全性以及一个或多个虚拟机(VM)。也可以供应其它基础设施元素,诸如负载平衡器、数据库等。随着期望和/或添加越来越多的基础设施元素,基础设施可以逐步演进。
在一些情况下,可以采用连续部署技术来使得能够跨各种虚拟计算环境部署基础设施代码。此外,所描述的技术可以使得能够在这些环境内进行基础设施管理。在一些示例中,服务团队可以编写期望部署到一个或多个但通常是许多不同的生产环境(例如,跨各种不同的地理位置,有时跨越整个世界)的代码。但是,在一些示例中,必须首先设置将在其上部署代码的基础设施。在一些情况下,供应可以手动完成,可以利用供应工具供应资源,和/或一旦供应基础设施就可以利用部署工具部署代码。
图10是图示根据至少一个实施例的IaaS体系架构的示例模式的框图1000。服务运营商1002可以通信地耦合到可以包括虚拟云网络(VCN)1006和安全主机子网1008的安全主机租赁1004。在一些示例中,服务运营商1002可以使用一个或多个客户端计算设备,其可以是便携式手持设备(例如,蜂窝电话、/>计算平板、个人数字助理(PDA))或可穿戴设备(例如,Google/>头戴式显示器)、运行软件(诸如MicrosoftWindows/>)和/或各种移动操作系统(诸如iOS、Windows Phone、Android、BlackBerry 8、Palm OS等),并且支持互联网、电子邮件、短消息服务(SMS)、或其它通信协议。替代地,客户端计算设备可以是通用个人计算机,包括例如运行各种版本的Microsoft/>A13le/>和/或Linux操作系统的个人计算机和/或膝上型计算机。客户端计算设备可以是运行各种商业上可获得的或类UNIX操作系统,包括但不限于各种GNU/Linux操作系统(诸如例如GoogleChrome OS)中的任何一种的工作站计算机。替代地或附加地,客户端计算设备可以是任何其它电子设备,诸如瘦客户端计算机、支持互联网的游戏系统(例如,具有或不具有手势输入设备的Microsoft Xbox游戏控制台),和/或能够通过可以访问VCN1006和/或互联网的网络进行通信的个人消息传递设备。
VCN 1006可以包括本地对等网关(LPG)1010,其可以经由包含在SSH VCN 1012中的LPG 1010通信地耦合到安全壳(SSH)VCN 1012。SSH VCN 1012可以包括SSH子网1014,并且SSH VCN 1012可以经由包含在控制平面VCN 1016中的LPG 1010通信地耦合到控制平面VCN 1016。此外,SSH VCN 1012可以经由LPG 1010通信地耦合到数据平面VCN 1018。控制平面VCN 1016和数据平面VCN 1018可以包含在可以由IaaS提供商拥有和/或操作的服务租赁1019中。
控制平面VCN 1016可以包括充当外围网络(例如,公司内部网和外部网络之间的公司网络的部分)的控制平面非军事区(DMZ)层1020。基于DMZ的服务器可以承担有限责任并有助于控制安全漏洞。此外,DMZ层1020可以包括一个或多个负载平衡器(LB)子网1022、可以包括(一个或多个)应用子网1026的控制平面应用层1024、可以包括(一个或多个)数据库(DB)子网1030(例如,(一个或多个)前端DB子网和/或(一个或多个)后端DB子网)的控制平面数据层1028。包含在控制平面DMZ层1020中的(一个或多个)LB子网1022可以通信地耦合到包含在控制平面应用层1024中的(一个或多个)应用子网1026和可以包含在控制平面VCN 1016中的互联网网关1034,并且(一个或多个)应用子网1026可以通信地耦合到包含在控制平面数据层1028中的(一个或多个)DB子网1030以及服务网关1036和网络地址转换(NAT)网关1038。控制平面VCN 1016可以包括服务网关1036和NAT网关1038。
控制平面VCN 1016可以包括数据平面镜像应用层1040,其可以包括(一个或多个)应用子网1026。包含在数据平面镜像应用层1040中的(一个或多个)应用子网1026可以包括可以执行计算实例1044的虚拟网络接口控制器(VNIC)1042。计算实例1044可以将数据平面镜像应用层1040的(一个或多个)应用子网1026通信地耦合到可以包含在数据平面应用层1046中的(一个或多个)应用子网1026。
数据平面VCN 1018可以包括数据平面应用层1046、数据平面DMZ层1048和数据平面数据层1050。数据平面DMZ层1048可以包括(一个或多个)LB子网1022,其可以通信地耦合到数据平面应用层1046的(一个或多个)应用子网1026和数据平面VCN 1018的互联网网关1034。(一个或多个)应用子网1026可以通信地耦合到数据平面VCN 1018的服务网关1036和数据平面VCN 1018的NAT网关1038。数据平面数据层1050还可以包括可以通信地耦合到数据平面应用层1046的(一个或多个)应用子网1026的(一个或多个)DB子网1030。
控制平面VCN 1016和数据平面VCN 1018的互联网网关1034可以通信地耦合到元数据管理服务1052,该元数据管理服务可以通信地耦合到公共互联网1054。公共互联网1054可以通信地耦合到控制平面VCN 1016和数据平面VCN 1018的NAT网关1038。控制平面VCN 1016和数据平面VCN 1018的服务网关1036可以通信地耦合到云服务1056。
在一些示例中,控制平面VCN 1016或数据平面VCN 1018的服务网关1036可以对云服务1056进行应用编程接口(API)调用,而无需通过公共互联网1054。从服务网关1036到云服务1056的API调用可以是单向的:服务网关1036可以对云服务1056进行API调用,并且云服务1056可以将请求的数据发送到服务网关1036。但是,云服务1056可以不发起对服务网关1036的API调用。
在一些示例中,安全主机租赁1004可以直接连接到服务租赁1019,服务租赁1019否则可以被隔离。安全主机子网1008可以通过LPG 1010与SSH子网1014通信,LPG 1010可以使得能够在否则隔离的系统上进行双向通信。将安全主机子网1008连接到SSH子网1014可以使安全主机子网1008访问服务租赁1019内的其它实体。
控制平面VCN 1016可以允许服务租赁1019的用户设置或以其它方式供应期望的资源。在控制平面VCN 1016中供应的期望资源可以在数据平面VCN 1018中部署或以其它方式使用。在一些示例中,控制平面VCN 1016可以与数据平面VCN 1018隔离,并且控制平面VCN 1016的数据平面镜像应用层1040可以经由VNIC 1042与数据平面VCN 1018的数据平面应用层1046通信,VNIC 1042可以包含在数据平面镜像应用层1040和数据平面应用层1046中。
在一些示例中,系统的用户或客户可以通过可以将请求传送到元数据管理服务1052的公共互联网1054来做出请求,例如创建、读取、更新或删除(CRUD)操作。元数据管理服务1052可以通过互联网网关1034将请求传送到控制平面VCN 1016。请求可以被包含在控制平面DMZ层1020中的(一个或多个)LB子网1022接收。(一个或多个)LB子网1022可以确定请求是有效的,并且响应于该确定,(一个或多个)LB子网1022可以将请求传输到包含在控制平面应用层1024中的(一个或多个)应用子网1026。如果请求被验证并且需要对公共互联网1054的调用,那么对公共互联网1054的调用可以被传输到可以对公共互联网1054进行调用的NAT网关1038。请求可能期望存储的存储器可以存储在(一个或多个)DB子网1030中。
在一些示例中,数据平面镜像应用层1040可以促进控制平面VCN 1016和数据平面VCN 1018之间的直接通信。例如,可能期望对包含在数据平面VCN 1018中的资源应用对配置的更改、更新或其它适当的修改。经由VNIC 1042,控制平面VCN 1016可以直接与包含在数据平面VCN 1018中的资源通信,并且从而可以执行对配置的更改、更新或其它适当的修改。
在一些实施例中,控制平面VCN 1016和数据平面VCN 1018可以包含在服务租赁1019中。在这种情况下,系统的用户或客户可能不拥有或操作控制平面VCN 1016或数据平面VCN 1018。替代地,IaaS提供商可以拥有或操作控制平面VCN 1016和数据平面VCN 1018,这两者平面都可以包含在服务租赁1019中。该实施例可以使得能够隔离可能阻止用户或客户与其它用户或其它客户的资源交互的网络。此外,该实施例可以允许系统的用户或客户私自存储数据库,而无需依赖可能不具有期望安全级别的公共互联网1054进行存储。
在其它实施例中,包含在控制平面VCN 1016中的(一个或多个)LB子网1022可以被配置为从服务网关1036接收信号。在这个实施例中,控制平面VCN 1016和数据平面VCN1018可以被配置为由IaaS提供商的客户调用而无需调用公共互联网1054。IaaS提供商的客户可能期望这个实施例,因为客户使用的(一个或多个)数据库可以由IaaS提供商控制并且可以存储在服务租赁1019上,服务租赁1019可能与公共互联网1054隔离。
图11是图示根据至少一个实施例的IaaS体系架构的另一个示例模式的框图1100。服务运营商1102(例如,图10的服务运营商1002)可以通信地耦合到安全主机租赁1104(例如,图10的安全主机租赁1004),该安全主机租赁1104可以包括虚拟云网络(VCN)1106(例如,图10的VCN 1006)和安全主机子网1108(例如,图10的安全主机子网1008)。VCN 1106可以包括本地对等网关(LPG)1110(例如,图10的LPG 1010),其可以经由包含在SSH VCN 1112中的LPG 1010通信地耦合到安全壳(SSH)VCN 1112(例如,图10的SSH VCN 1012)。SSH VCN1112可以包括SSH子网1114(例如,图10的SSH子网1014),并且SSH VCN 1112可以经由包含在控制平面VCN 1116中的LPG 1110通信地耦合到控制平面VCN 1116(例如,图10的控制平面VCN 1016)。控制平面VCN 1116可以包含在服务租赁1119(例如,图10的服务租赁1019)中,并且数据平面VCN 1118(例如,图10的数据平面VCN 1018)可以包含在可能由系统的用户或客户拥有或操作的客户租赁1121中。
控制平面VCN 1116可以包括控制平面DMZ层1120(例如,图10的控制平面DMZ层1020),其可以包括(一个或多个)LB子网1122(例如,图10的(一个或多个)LB子网1022)、可以包括(一个或多个)应用子网1126(例如,图10的(一个或多个)应用子网1026)的控制平面应用层1124(例如,图10的控制平面应用层1024)、可以包括(一个或多个)数据库(DB)子网1130(例如,类似于图10的(一个或多个)DB子网1030)的控制平面数据层1128(例如,图10的控制平面数据层1028)。包含在控制平面DMZ层1120中的(一个或多个)LB子网1122可以通信地耦合到包含在控制平面应用层1124中的(一个或多个)应用子网1126和可以包含在控制平面VCN 1116中的互联网网关1134(例如,图10的互联网网关1034),并且(一个或多个)应用子网1126可以通信地耦合到包含在控制平面数据层1128中的(一个或多个)DB子网1130以及服务网关1136(例如,图10的服务网关)和网络地址转换(NAT)网关1138(例如,图10的NAT网关1038)。控制平面VCN 1116可以包括服务网关1136和NAT网关1138。
控制平面VCN 1116可以包括可以包含(一个或多个)应用子网1126的数据平面镜像应用层1140(例如,图10的数据平面镜像应用层1040)。包含在数据平面镜像应用层1140中的(一个或多个)应用子网1126可以包括可以执行计算实例1144(例如,类似于图10的计算实例1044)的虚拟网络接口控制器(VNIC)1142(例如,1042的VNIC)。计算实例1144可以促进数据平面镜像应用层1140的(一个或多个)应用子网1126和可以包含在数据平面应用层1146(例如,图10的数据平面应用层1046)中的(一个或多个)应用子网1126之间经由包含在数据平面镜像应用层1140中的VNIC 1142和包含在数据平面应用层1146中的VNIC 1142的通信。
包含在控制平面VCN 1116中的互联网网关1134可以通信地耦合到元数据管理服务1152(例如,图10的元数据管理服务1052),该元数据管理服务可以通信地耦合到公共互联网1154(例如,图10的公共互联网1054)。公共互联网1154可以通信地耦合到包含在控制平面VCN 1116中的NAT网关1138。包含在控制平面VCN 1116中的服务网关1136可以通信地耦合到云服务1156(例如,图10的云服务1056)。
在一些示例中,数据平面VCN 1118可以包含在客户租赁1121中。在这种情况下,IaaS提供商可以为每个客户提供控制平面VCN 1116,并且IaaS提供商可以为每个客户设置包含在服务租赁1119中的唯一计算实例1144。每个计算实例1144可以允许包含在服务租赁1119中的控制平面VCN 1116和包含在客户租赁1121中的数据平面VCN 1118之间的通信。计算实例1144可以允许在包含在服务租赁1119中的控制平面VCN 1116中供应的资源被部署或以其它方式在包含在客户租赁1121中的数据平面VCN1118中使用。
在其它示例中,IaaS提供商的客户可以具有存在于客户租赁1121中的数据库。在这个示例中,控制平面VCN 1116可以包括数据平面镜像应用层1140,其可以包括(一个或多个)应用子网1126。数据平面镜像应用层1140可以驻留在数据平面VCN 1118中,但数据平面镜像应用层1140可能不在数据平面VCN 1118中。即,数据平面镜像应用层1140可以访问客户租赁1121,但是数据平面镜像应用层1140可能不存在于数据平面VCN 1118中或者由IaaS提供商的客户拥有或操作。数据平面镜像应用层1140可以被配置为对数据平面VCN 1118进行调用,但可以不被配置为对包含在控制平面VCN 1116中的任何实体进行调用。客户可能期望在数据平面VCN 1118中部署或以其它方式使用在控制平面VCN 1116中供应的资源,并且数据平面镜像应用层1140可以促进客户的期望部署或资源的其它使用。
在一些实施例中,IaaS提供商的客户可以将过滤器应用到数据平面VCN 1118。在这个实施例中,客户可以确定数据平面VCN 1118可以访问什么,并且客户可以限制从数据平面VCN 1118对公共互联网1154的访问。IaaS提供商可能无法应用过滤器或以其它方式控制数据平面VCN 1118对任何外部网络或数据库的访问。客户将过滤器和控制应用到包含在客户租赁1121中的数据平面VCN 1118上可以帮助将数据平面VCN 1118与其它客户和公共互联网1154隔离开。
在一些实施例中,云服务1156可以由服务网关1136调用以访问公共互联网1154、控制平面VCN 1116或数据平面VCN 1118上可能不存在的服务。云服务1156与控制平面VCN1116或数据平面VCN 1118之间的连接可以不是实时的或连续的。云服务1156可以存在于由IaaS提供商拥有或操作的不同网络上。云服务1156可以被配置为接收来自服务网关1136的调用并且可以被配置为不接收来自公共互联网1154的调用。一些云服务1156可以与其它云服务1156隔离,并且控制平面VCN 1116可以与可能与控制平面VCN 1116不在同一区域的云服务1156隔离。例如,控制平面VCN 1116可能位于“区域1”,并且云服务“部署10”可能位于区域1和“区域2”。如果包含在位于区域1中的控制平面VCN 1116中的服务网关1136对部署10进行调用,那么该调用可以被传输到区域1中的部署10。在这个示例中,控制平面VCN1116或区域1中的部署10可能不与区域2中的部署10通信地耦合或以其它方式通信。
图12是图示根据至少一个实施例的IaaS体系架构的另一个示例模式的框图1200。服务运营商1202(例如,图10的服务运营商1002)可以通信地耦合到安全主机租赁1204(例如,图10的安全主机租赁1004),该安全主机租赁1204可以包括虚拟云网络(VCN)1206(例如,图10的VCN 1006)和安全主机子网1208(例如,图10的安全主机子网1008)。VCN 1206可以包括LPG 1210(例如,图10的LPG 1010),其可以经由包含在SSH VCN 1212中的LPG 1210通信地耦合到SSH VCN 1212(例如,图10的SSH VCN 1012)。SSH VCN 1212可以包括SSH子网1214(例如,图10的SSH子网1014),并且SSH VCN 1212可以经由包含在控制平面VCN 1216中的LPG 1210通信地耦合到控制平面VCN 1216(例如,图10的控制平面VCN 1016)并且经由包含在数据平面VCN 1218中的LPG 1210耦合到数据平面VCN 1218(例如,图10的数据平面1018)。控制平面VCN 1216和数据平面VCN 1218可以包含在服务租赁1219(例如,图10的服务租赁1019)中。
控制平面VCN 1216可以包括可以包含(一个或多个)负载平衡器(LB)子网1222(例如,图10的(一个或多个)LB子网1022)的控制平面DMZ层1220(例如,图10的控制平面DMZ层1020)、可以包括(一个或多个)应用子网1226(例如,类似于图10的(一个或多个)应用子网1026)的控制平面应用层1224(例如,图10的控制平面应用层1024)、可以包括(一个或多个)DB子网1230的控制平面数据层1228(例如,图10的控制平面数据层1028)。包含在控制平面DMZ层1220中的(一个或多个)LB子网1222可以通信地耦合到包含在控制平面应用层1224中的(一个或多个)应用子网1226和可以包含在控制平面VCN 1216中的互联网网关1234(例如,图10的互联网网关1034),并且(一个或多个)应用子网1226可以通信地耦合到包含在控制平面数据层1228中的(一个或多个)DB子网1230以及服务网关1236(例如,图10的服务网关)和网络地址转换(NAT)网关1238(例如,图10的NAT网关1038)。控制平面VCN 1216可以包括服务网关1236和NAT网关1238。
数据平面VCN 1218可以包括数据平面应用层1246(例如,图10的数据平面应用层1046)、数据平面DMZ层1248(例如,图10的数据平面DMZ层1048),以及数据平面数据层1250(例如,图10的数据平面数据层1050)。数据平面DMZ层1248可以包括可以通信地耦合到数据平面应用层1246的(一个或多个)可信应用子网1260和(一个或多个)不可信应用子网1262以及包含在数据平面VCN 1218中的互联网网关1234的(一个或多个)LB子网1222。(一个或多个)可信应用子网1260可以通信地耦合到包含在数据平面VCN 1218中的服务网关1236、包含在数据平面VCN 1218中的NAT网关1238以及包含在数据平面数据层1250中的(一个或多个)DB子网1230。(一个或多个)不可信应用子网1262可以通信地耦合到包含在数据平面VCN 1218中的服务网关1236和包含在数据平面数据层1250中的(一个或多个)DB子网1230。数据平面数据层1250可以包括可以通信地耦合到包含在数据平面VCN 1218中的服务网关1236的(一个或多个)DB子网1230。
(一个或多个)不可信应用子网1262可以包括可以通信地耦合到租户虚拟机(VM)1266(1)-(N)的一个或多个主VNIC1264(1)-(N)。每个租户VM 1266(1)-(N)可以通信地耦合到可以包含在相应容器出口VCN 1268(1)-(N)中的相应应用子网1267(1)-(N),相应容器出口VCN 1268(1)-(N)可以包含在相应客户租赁1270(1)-(N)中。相应的辅助VNIC 1272(1)-(N)可以促进数据平面VCN 1218中包含的(一个或多个)不可信应用子网1262与容器出口VCN 1268(1)-(N)中包含的应用子网之间的通信。每个容器出口VCN 1268(1)-(N)可以包括NAT网关1238,该NAT网关1238可以通信地耦合到公共互联网1254(例如,图10的公共互联网1054)。
包含在控制平面VCN 1216中并且包含在数据平面VCN 1218中的互联网网关1234可以通信地耦合到元数据管理服务1252(例如,图10的元数据管理系统1052),该元数据管理服务可以通信地耦合到公共互联网1254。公共互联网1254可以通信地耦合到包含在控制平面VCN 1216中并且包含在数据平面VCN 1218中的NAT网关1238。包含在控制平面VCN1216中和包含在数据平面VCN 1218中的服务网关1236可以通信地耦合到云服务1256。
在一些实施例中,数据平面VCN 1218可以与客户租赁1270集成。在一些情况下,诸如在执行代码时可能期望支持的情况下,这种集成对于IaaS提供商的客户可能是有用的或期望的。客户可能提供可能具有破坏性、可能与其它客户资源通信或可能以其它方式导致非期望效果的代码来运行。作为对此的响应,IaaS提供商可以确定是否运行由客户给与IaaS提供商的代码。
在一些示例中,IaaS提供商的客户可以向IaaS提供商授予临时网络访问,并请求附加到数据平面层应用1246的功能。运行该功能的代码可以在VM 1266(1)-(N)中执行,并且该代码可以不被配置为在数据平面VCN 1218上的其它任何地方运行。每个VM 1266(1)-(N)可以连接到一个客户租赁1270。包含在VM 1266(1)-(N)中的相应容器1271(1)-(N)可以被配置为运行代码。在这种情况下,可以存在双重隔离(例如,容器1271(1)-(N)运行代码,其中容器1271(1)-(N)可能至少包含在(一个或多个)不可信应用子网1262中包含的VM1266(1)-(N)中),这可以帮助防止不正确的或以其它方式非期望的代码损坏IaaS提供商的网络或损坏不同客户的网络。容器1271(1)-(N)可以通信地耦合到客户租赁1270并且可以被配置为传输或接收来自客户租赁1270的数据。容器1271(1)-(N)可以不被配置为从数据平面VCN 1218中的任何其它实体传输或接收数据。在运行代码完成后,IaaS提供商可以终止或以其它方式处置容器1271(1)-(N)。
在一些实施例中,(一个或多个)可信应用子网1260可以运行可以由IaaS提供商拥有或操作的代码。在这个实施例中,(一个或多个)可信应用子网1260可以通信地耦合到(一个或多个)DB子网1230并且被配置为在(一个或多个)DB子网1230中执行CRUD操作。(一个或多个)不可信应用子网1262可以通信地耦合到(一个或多个)DB子网1230,但是在这个实施例中,(一个或多个)不可信应用子网可以被配置为在(一个或多个)DB子网1230中执行读取操作。可以包含在每个客户的VM 1266(1)-(N)中并且可以运行来自客户的代码的容器1271(1)-(N)可以不与(一个或多个)DB子网1230通信地耦合。
在其它实施例中,控制平面VCN 1216和数据平面VCN 1218可以不直接通信地耦合。在这个实施例中,控制平面VCN 1216和数据平面VCN 1218之间可能没有直接通信。但是,通信可以通过至少一种方法间接发生。LPG 1210可以由IaaS提供商建立,其可以促进控制平面VCN 1216和数据平面VCN 1218之间的通信。在另一个示例中,控制平面VCN 1216或数据平面VCN 1218可以经由服务网关1236调用云服务1256。例如,从控制平面VCN 1216对云服务1256的调用可以包括对可以与数据平面VCN 1218通信的服务的请求。
图13是图示根据至少一个实施例的IaaS体系架构的另一个示例模式的框图1300。服务运营商1302(例如,图10的服务运营商1002)可以通信地耦合到安全主机租赁1304(例如,图10的安全主机租赁1004),该安全主机租赁1304可以包括虚拟云网络(VCN)1306(例如,图10的VCN 1006)和安全主机子网1308(例如,图10的安全主机子网1008)。VCN 1306可以包括LPG 1310(例如,图10的LPG 1010),该LPG 1310可以经由包含在SSH VCN 1312(例如,图10的SSH VCN 1012)中的LPG 1310通信地耦合到SSH VCN 1312。SSH VCN 1312可以包括SSH子网1314(例如,图10的SSH子网1014),并且SSH VCN 1312可以经由包含在控制平面VCN 1316中的LPG 1310通信地耦合到控制平面VCN 1316(例如,图10的控制平面VCN 1016)并且经由包含在数据平面VCN 1318中的LPG 1310耦合到数据平面VCN 1318(例如,图10的数据平面1018)。控制平面VCN 1316和数据平面VCN 1318可以包含在服务租赁1319(例如,图10的服务租赁1019)中。
控制平面VCN 1316可以包括可以包含(一个或多个)LB子网1322(例如,图10的(一个或多个)LB子网1022)的控制平面DMZ层1320(例如,图10的控制平面DMZ层1020)、可以包括(一个或多个)应用子网1326(例如,图10的(一个或多个)应用子网1026)的控制平面应用层1324(例如,图10的控制平面应用层1024)、可以包括(一个或多个)DB子网1330(例如,图12的(一个或多个)DB子网1230)的控制平面数据层1328(例如,图10的控制平面数据层1028)。包含在控制平面DMZ层1320中的(一个或多个)LB子网1322可以通信地耦合到包含在控制平面应用层1324中的(一个或多个)应用子网1326和可以包含在控制平面VCN 1316中的互联网网关1334(例如,图10的互联网网关1034),并且(一个或多个)应用子网1326可以通信地耦合到包含在控制平面数据层1328中的(一个或多个)DB子网1330以及服务网关1336(例如,图10的服务网关)和网络地址转换(NAT)网关1338(例如,图10的NAT网关1038)。控制平面VCN 1316可以包括服务网关1336和NAT网关1338。
数据平面VCN 1318可以包括数据平面应用层1346(例如,图10的数据平面应用层1046)、数据平面DMZ层1348(例如,图10的数据平面DMZ层1048)),以及数据平面数据层1350(例如,图10的数据平面数据层1050)。数据平面DMZ层1348可以包括可以通信地耦合到数据平面应用层1346的(一个或多个)可信应用子网1360(例如,图12的(一个或多个)可信应用子网1260)和(一个或多个)不可信应用子网1362(例如,图12的(一个或多个)不可信应用子网1262)以及包含在数据平面VCN 1318中的互联网网关1334的(一个或多个)LB子网1322。(一个或多个)可信应用子网1360可以通信地耦合到包含在数据平面VCN 1318中的服务网关1336、包含在数据平面VCN 1318中的NAT网关1338以及包含在数据平面数据层1350中的(一个或多个)DB子网1330。(一个或多个)不可信应用子网1362可以通信地耦合到包含在数据平面VCN 1318中的服务网关1336和包含在数据平面数据层1350中的(一个或多个)DB子网1330。数据平面数据层1350可以包括可以通信地耦合到包含在数据平面VCN 1318中的服务网关1336的(一个或多个)DB子网1330。
(一个或多个)不可信应用子网1362可以包括可以通信地耦合到驻留在(一个或多个)不可信应用子网1362内的租户虚拟机(VM)1366(1)-(N)的主VNIC 1364(1)-(N)。每个租户VM 1366(1)-(N)可以在相应的容器1367(1)-(N)中运行代码,并且可通信地耦合到可以包含在容器出口VCN 1368中包含的数据平面应用层1346中的应用子网1326。相应的辅助VNIC 1372(1)-(N)可以促进包含在数据平面VCN 1318中的(一个或多个)不可信应用子网1362和包含在容器出口VCN 1368中的应用子网之间的通信。容器出口VCN可以包括可以通信地耦合到公共互联网1354(例如,图10的公共互联网1054)的NAT网关1338。
包含在控制平面VCN 1316中和包含在数据平面VCN 1318中的互联网网关1334可以通信地耦合到元数据管理服务1352(例如,图10的元数据管理系统1052),该元数据管理服务可以通信地耦合到公共互联网1354。公共互联网1354可以通信地耦合到包含在控制平面VCN 1316中并且包含在数据平面VCN 1318中的NAT网关1338。包含在控制平面VCN 1316中并且包含在数据平面VCN 1318中的服务网关1336可以通信地耦合到云服务1356。
在一些示例中,图13的框图1300的体系架构所示的模式可以被认为是图12的框图1200的体系架构所示的模式的例外,并且如果IaaS提供商不能直接与客户通信(例如,断开连接的区域),那么这种模式可能是IaaS提供商的客户所期望的。客户可以实时访问每个客户的VM 1366(1)-(N)中包含的相应容器1367(1)-(N)。容器1367(1)-(N)可以被配置为对包含在数据平面应用层1346的(一个或多个)应用子网1326中的相应辅助VNIC 1372(1)-(N)进行调用,该数据平面应用层1346可以包含在容器出口VCN 1368中。辅助VNIC 1372(1)-(N)可以将调用传输到NAT网关1338,NAT网关1338可以将调用传输到公共互联网1354。在这个示例中,可以由客户实时访问的容器1367(1)-(N)可以与控制平面VCN 1316隔离,并且可以与数据平面VCN 1318中包含的其它实体隔离。容器1367(1)-(N)也可以与来自其它客户的资源隔离。
在其它示例中,客户可以使用容器1367(1)-(N)来调用云服务1356。在这个示例中,客户可以运行容器1367(1)-(N)中从云服务1356请求服务的代码。容器1367(1)-(N)可以将该请求传输到辅助VNIC 1372(1)-(N),辅助VNIC 1372(1)-(N)可以将请求传输到NAT网关,该NAT网关可以将请求传输到公共互联网1354。公共互联网1354可以经由互联网网关1334将请求传输到包含在控制平面VCN 1316中的(一个或多个)LB子网1322。响应于确定请求有效,(一个或多个)LB子网可以将请求传输到(一个或多个)应用子网1326,该(一个或多个)应用子网1326可以经由服务网关1336将请求传输到云服务1356。
应当认识到的是,各图中描绘的IaaS体系架构1000、1100、1200、1300可以具有除所描绘的那些之外的其它组件。另外,各图中所示的实施例仅仅是可以结合本公开的实施例的云基础设施系统的一些示例。在一些其它实施例中,IaaS系统可以具有比各图中所示更多或更少的组件、可以组合两个或更多个组件,或者可以具有不同的配置或组件布置。
在某些实施例中,本文描述的IaaS系统可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式交付给客户的应用套件、中间件和数据库服务产品。此类IaaS系统的示例是本受让人提供的Oracle云基础设施(OCI)。
图14图示了其中可以实现本公开的各种实施例的示例计算机系统1400。系统1400可以用于实现上述任何计算机系统。如图所示,计算机系统1400包括经由总线子系统1402与多个外围子系统通信的处理单元1404。这些外围子系统可以包括处理加速单元1406、I/O子系统1408、存储子系统1418和通信子系统1424。存储子系统1418包括有形计算机可读存储介质1422和系统存储器1410。
总线子系统1402提供用于让计算机系统1400的各种部件和子系统按意图彼此通信的机制。虽然总线子系统1402被示意性地示出为单条总线,但是总线子系统的替代实施例可以利用多条总线。总线子系统1402可以是若干种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用任何各种总线体系架构的局部总线。例如,这种体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围部件互连(PCI)总线,其可以被实现为按IEEE P1386.1标准制造的Mezzanine总线。
可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元1404控制计算机系统1400的操作。一个或多个处理器可以被包括在处理单元1404中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元1404可以被实现为一个或多个独立的处理单元1432和/或1434,其中在每个处理单元中包括单核或多核处理器。在其它实施例中,处理单元1404也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。
在各种实施例中,处理单元1404可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器1404中和/或存储子系统1418中。通过适当的编程,(一个或多个)处理器1404可以提供上述各种功能。计算机系统1400可以附加地包括处理加速单元1406,其可以包括数字信号处理器(DSP)、专用处理器,等等。
I/O子系统1408可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、键盘、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括,例如,运动感测和/或手势识别设备,诸如的Microsoft运动传感器,其使得用户能够使用手势和语音命令通过自然用户接口来控制诸如的Microsoft/>360游戏控制器的输入设备并与之交互。用户接口输入设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄照片和/或做出菜单选择时的“眨眼”)并且将眼睛姿势转换为到输入设备(例如,Google/>)中的输入的Google/>眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,/>导航器)交互的语音识别感测设备。
用户接口输入设备也可以包括但不限于三维(3D)鼠标、操纵杆或指向棒、游戏面板和绘图板,以及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括,例如,医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可以包括,例如,诸如MIDI键盘、数字乐器等的音频输入设备。
用户接口输出设备可以包括显示子系统、指示灯,或者诸如音频输出设备的非可视显示器,等等。显示子系统可以是阴极射线管(CRT)、诸如使用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏,等等。一般而言,术语“输出设备”的使用意在包括用于从计算机系统1400向用户或其它计算机输出信息的所有可能类型的设备和机制。例如,用户接口输出设备可以包括,但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备,以及调制解调器。
计算机系统1400可以包括包含软件元件、被示为当前位于系统存储器1410中的存储子系统1418。系统存储器1410可以存储可加载并且可在处理单元1404上执行的程序指令,以及在这些程序的执行期间所产生的数据。
取决于计算机系统1400的配置和类型,系统存储器1410可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器,等等)。RAM通常包含可被处理单元1404立即访问和/或目前正被处理单元1404操作和执行的数据和/或程序模块。在一些实现中,系统存储器1410可以包括多种不同类型的存储器,例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实现中,诸如包含有助于在启动期间在计算机系统1400的元件之间传送信息的基本例程的基本输入/输出系统(BIOS),通常可以被存储在ROM中。作为示例,但不是限制,系统存储器1410也示出了可以包括客户端应用、web浏览器、中间层应用、关系数据库管理系统(RDBMS)等的应用程序1412,程序数据1414,以及操作系统1416。作为示例,操作系统1416可以包括各种版本的MicrosoftA13le/>和/或Linux操作系统、各种可商业获得的/>或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google/>操作系统等)和/或诸如iOS、/>Phone、/>OS、/>14OS和OS操作系统的移动操作系统。
存储子系统1418也可以提供用于存储提供一些实施例的功能的基本编程和数据结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子系统1418中。这些软件模块或指令可以被处理单元1404执行。存储子系统1418也可以提供用于存储根据本公开被使用的数据的储存库。
存储子系统1418也可以包括可被进一步连接到计算机可读存储介质1422的计算机可读存储介质读取器1420。与系统存储器1410一起并且,可选地,与其相结合,计算机可读存储介质1422可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信息的远程、本地、固定和/或可移除存储设备加存储介质。
包含代码或代码的部分的计算机可读存储介质1422也可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。这可以包括有形的计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学储存器、磁带盒、磁带、磁盘储存器或其它磁存储设备,或者其它有形的计算机可读介质。这也可以包括非有形的计算机可读介质,诸如数据信号、数据传输,或者可以被用来发送期望信息并且可以被计算系统1400访问的任何其它介质。
作为示例,计算机可读存储介质1422可以包括从不可移除的非易失性磁介质读取或写到其的硬盘驱动器、从可移除的非易失性磁盘读取或写到其的磁盘驱动器、以及从可移除的非易失性光盘(诸如CD ROM、DVD和盘或其它光学介质)读取或写到其的光盘驱动器。计算机可读存储介质1422可以包括,但不限于,/>驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字音频带,等等。计算机可读存储介质1422也可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如固态RAM、动态RAM、静态RAM)、基于DRAM的SSD,磁阻RAM(MRAM)SSD,以及使用基于DRAM和闪存存储器的SSD的组合的混合SSD。盘驱动器及其关联的计算机可读介质可以为计算机系统1400提供计算机可读指令、数据结构、程序模块及其它数据的非易失性存储。
通信子系统1424提供到其它计算机系统和网络的接口。通信子系统1424用作用于从其它系统接收数据和从计算机系统1400向其它系统发送数据的接口。例如,通信子系统1424可以使计算机系统1400能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统1424可以包括用于访问无线语音和/或数据网络的射频(RF)收发器部件(例如,使用蜂窝电话技术,诸如3G、4G或EDGE(用于全球演进的增强型数据速率)的先进数据网络技术,WiFi(IEEE 802.11系列标准),或其它移动通信技术,或其任意组合)、全球定位系统(GPS)接收器部件和/或其它部件。在一些实施例中,作为无线接口的附加或者替代,通信子系统1424可以提供有线网络连接(例如,以太网)。
在一些实施例中,通信子系统1424也可以代表可以使用计算机系统1400的一个或多个用户接收结构化和/或非结构化数据馈送1426、事件流1428、事件更新1430等形式的输入通信。
作为示例,通信子系统1424可以被配置为实时地从社交网络和/或其它通信服务的用户接收数据馈送1426,诸如馈送、/>更新、诸如丰富站点摘要(RSS)馈送的web馈送和/或来自一个或多个第三方信息源的实时更新。
此外,通信子系统1424也可被配置为接收连续数据流形式的数据,这可以包括本质上可以是连续的或无界的没有明确终止的实时事件的事件流1428和/或事件更新1430。产生连续数据的应用的示例可以包括,例如,传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视,等等。
通信子系统1424也可被配置为向一个或多个数据库输出结构化和/或非结构化数据馈送1426、事件流1428、事件更新1430,等等,这一个或多个数据库可以与耦合到计算机系统1400的一个或多个流式数据源计算机通信。
计算机系统1400可以是各种类型之一,包括手持便携式设备(例如,蜂窝电话、/>计算平板电脑、PDA)、可穿戴设备(例如,/>Glass头戴式显示器)、PC、工作站、大型机、信息站、服务器机架、或任何其它数据处理系统。
由于计算机和网络的不断变化的本质,在图中绘出的计算机系统1400的描述仅仅要作为具体的示例。具有比图中绘出的系统更多或更少部件的许多其它配置是可能的。例如,定制的硬件也可以被使用和/或特定的元素可以用硬件、固件、软件(包括a13lets)或其组合来实现。另外,也可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文提供的公开内容和示教,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。
术语云服务一般用于指由云服务提供商(CSP)使用由CSP提供的系统和基础设施(云基础设施)按需(例如,经由订阅模型)向用户或客户提供的服务。通常,构成CSP的基础设施的服务器和系统与客户自己的本地部署的服务器和系统是分开的。因此,客户可以自身利用由CSP提供的云服务,而无需为服务购买单独的硬件和软件资源。云服务被设计为向订阅客户提供对应用和计算资源的简单、可扩展的访问,而无需客户投资获得用于提供服务的基础设施。
存在若干云服务提供商供应各种类型的云服务。存在各种不同类型或模型的云服务,包括软件即服务(SaaS)、平台即服务(PaaS)、基础设施即服务(IaaS)等。
客户可以订阅由CSP提供的一个或多个云服务。客户可以是任何实体,诸如个人、组织、企业等。当客户订阅或注册由CSP提供的服务时,将为该客户创建租赁或账户。然后,客户可以经由这个账户访问与该账户相关联的订阅的一个或多个云资源。
如上所述,基础设施即服务(IaaS)是一种特定类型的云计算服务。在IaaS模型中,CSP提供基础设施(称为云服务提供商基础设施或CSPI),这些基础设施可以被客户使用来构建他们自己的可定制网络并部署客户资源。因此,客户的资源和网络由CSP提供的基础设施托管在分布式环境中。这与传统计算不同,在传统计算中,在传统计算中,客户的资源和网络由客户提供的基础设施托管。
CSPI可以包括形成物理网络的互连的高性能计算资源,包括各种主机机器、存储器资源和网络资源,该物理网络也被称为基板网络或底层网络。CSPI中的资源可以散布在一个或多个数据中心上,该一个或多个数据中心可以在地理上散布在一个或多个地理地区上。虚拟化软件可以由这些物理资源执行以提供虚拟化的分布式环境。虚拟化在物理网络上创建覆盖网络(也称为基于软件的网络、软件定义的网络或虚拟网络)。CSPI物理网络为在物理网络之上创建一个或多个覆盖或虚拟网络提供了底层基础。虚拟或覆盖网络可以包括一个或多个虚拟云网络(VCN)。虚拟网络是使用软件虚拟化技术实现的(例如,管理程序、由网络虚拟化设备(NVD)(例如,smartNIC)执行的功能、架顶式(TOR)交换机、实现由NVD执行的一个或多个功能的智能TOR、以及其它机制)以创建可以在物理网络之上运行的网络抽象的层。虚拟网络可以采用多种形式,包括对等网络、IP网络等。虚拟网络通常是层3IP网络或者层2VLAN。这种虚拟或覆盖联网的方法常常被称为虚拟或覆盖层3联网。为虚拟网络开发的协议的示例包括IP-in-IP(或通用路由封装(GRE))、虚拟可扩展LAN(VXLAN—IETF RFC7348)、虚拟专用网络(VPN)(例如,MPLS层3虚拟专用网络(RFC4364))、VMware的NSX、GENEVE(通用网络虚拟化封装)等。
对于IaaS,由CSP提供的基础设施(CSPI)可以被配置为通过公共网络(例如,互联网)提供虚拟化计算资源。在IaaS模型中,云计算服务提供商可以托管基础设施组件(例如,服务器、存储设备、网络节点(例如,硬件)、部署软件、平台虚拟化(例如,管理程序层)等)。在一些情况下,IaaS提供商还可以供应各种服务来伴随这些基础设施组件(例如,计费、监视、日志记录、安全性、负载平衡和聚类等)。因此,由于这些服务可以是策略驱动的,因此IaaS用户可以能够实现策略来驱动负载平衡以维持应用可用性和性能。CSPI提供基础设施和互补云服务的集合,这使得客户能够在高度可用的被托管的分布式环境中构建和运行广泛的应用和服务。CSPI在可从各种联网位置(诸如从客户的本地部署网络)安全访问的灵活的虚拟网络中供应高性能计算资源和能力以及存储容量。当客户订阅或注册由CSP提供的IaaS服务时,为该客户创建的租赁是CSPI内的安全且隔离的分区,客户可以在其中创建、组织和管理他们的云资源。
客户可以使用由CSPI提供的计算、存储器和联网资源来构建他们自己的虚拟网络。可以在这些虚拟网络上部署一个或多个客户资源或工作负载,诸如计算实例。例如,客户可以使用由CSPI提供的资源来构建一个或多个可定制且私有的虚拟网络,称为虚拟云网络(VCN)。客户可以在客户VCN上部署一个或多个客户资源,诸如计算实例。计算实例可以采用虚拟机、裸金属实例等形式。因此,CSPI提供基础设施和互补云服务的集合,这使得客户能够在高度可用的虚拟托管环境中构建和运行广泛的应用和服务。客户不管理或控制由CSPI提供的底层物理资源,但可以控制操作系统、存储装置和已部署的应用;并且可能对所选择的联网组件(例如,防火墙)进行有限的控制。
CSP可以提供控制台,该控制台使得客户和网络管理员能够使用CSPI资源来配置、访问和管理部署在云中的资源。在某些实施例中,控制台提供可以被用于访问和管理CSPI的基于web的用户界面。在某些实施方式中,控制台是由CSP提供的基于web的应用。
CSPI可以支持单租赁或多租赁体系架构。在单租赁体系架构中,软件(例如,应用、数据库)或硬件组件(例如,主机机器或服务器)服务于单个客户或租户。在多租赁体系架构中,软件或硬件组件服务于多个客户或租户。因此,在多租赁体系架构中,CSPI资源在多个客户或租户之间共享。在多租赁情况下,在CSPI内采取预防措施并实施保护措施,以确保每个租户的数据都是隔离的并且对其他租户保持不可见。
在物理网络中,网络端点(“端点”)是指连接到物理网络并与其所连接的网络来回通信的计算设备或系统。物理网络中的网络端点可以连接到局域网(LAN)、广域网(WAN)或其它类型的物理网络。物理网络中传统端点的示例包括调制解调器、集线器、桥接器、交换机、路由器和其它联网设备、物理计算机(或主机机器)等。物理网络中的每个物理设备都有可以被用于与设备通信的固定网络地址。这个固定网络地址可以是层2地址(例如,MAC地址)、固定的层3地址(例如,IP地址)等。在虚拟化环境或虚拟网络中,端点可以包括各种虚拟端点,诸如由物理网络的组件托管(例如,由物理主机机器托管)的虚拟机。虚拟网络中的这些端点由覆盖地址寻址,其中覆盖地址诸如覆盖层2地址(例如,覆盖MAC地址)和覆盖层3地址(例如,覆盖IP地址)。网络覆盖通过允许网络管理者使用软件管理(例如,经由实现用于虚拟网络的控制平面的软件)在与网络端点相关联的覆盖地址周围移动来实现灵活性。因而,与物理网络不同,在虚拟网络中,可以使用网络管理软件将覆盖地址(例如,覆盖IP地址)从一个端点移动到另一个端点。由于虚拟网络构建在物理网络之上,因此虚拟网络中组件之间的通信涉及虚拟网络和底层物理网络两者。为了促进此类通信,CSPI的组件被配置为学习和存储将虚拟网络中的覆盖地址映射到基板网络中的实际物理地址的映射,反之亦然。然后使用这些映射来促进通信。客户流量被封装以促进在虚拟网络中的路由。
因而,物理地址(例如,物理IP地址)与物理网络中的组件相关联,并且覆盖地址(例如,覆盖IP地址)与虚拟网络中的实体相关联。物理IP地址和覆盖IP地址两者都是真实IP地址的类型。这些与虚拟IP地址是分开的,其中虚拟IP地址映射到多个真实IP地址。虚拟IP地址提供虚拟IP地址与多个真实IP地址之间的一对多映射。
云基础设施或CSPI在物理上托管在世界上一个或多个地区的一个或多个数据中心中。CSPI可以包括物理或基板网络中的组件和位于构建在物理网络组件之上的虚拟网络中的虚拟化组件(例如,虚拟网络、计算实例、虚拟机等)。在某些实施例中,CSPI在领域(realm)、地区(region)和可用性域(availability domain)中被组织和托管。地区通常是包含一个或多个数据中心的局部化的地理区域。地区一般彼此独立并且可以相隔很远,例如,跨越国家甚至大陆。例如,第一个地区可以在澳大利亚,另一个在日本,又一个在印度,等等。CSPI资源在地区之间划分,使得每个地区都有自己独立的CSPI资源子集。每个地区可以提供核心基础设施服务和资源的集合,诸如计算资源(例如,裸金属服务器、虚拟机、容器和相关基础设施等);存储资源(例如,块卷存储装置、文件存储装置、对象存储装置、归档存储装置);联网资源(例如,虚拟云网络(VCN)、负载平衡资源、与本地部署网络的连接)、数据库资源;边缘联网资源(例如,DNS);以及访问管理和监视资源等。每个地区一般都有多条路径将其连接到领域中的其它地区。
一般而言,应用被部署在它被最频繁使用的地区中(即,部署在与该地区相关联的基础设施上),因为使用附近的资源比使用远处的资源更快。应用也可以出于各种原因而部署在不同的地区,诸如冗余以减轻地区范围内事件(诸如大型天气系统或地震)的风险,以满足法律管辖区、税域和其它商业或社会标准等的不同要求。
地区内的数据中心可以被进一步组织和细分为可用性域(AD)。可用性域可以与位于地区内的一个或多个数据中心对应。地区可以由一个或多个可用性域组成。在这种分布式环境中,CSPI资源是特定于地区的(诸如虚拟云网络(VCN)),或者是特定于可用性域的(诸如计算实例)。
地区内的AD彼此隔离,具有容错能力,并且被配置为使得它们极不可能同时发生故障。这是通过AD不共享关键基础设施资源(诸如联网、物理线缆、线缆路径、线缆入口点等)来实现的,使得地区内的一个AD处的故障不太可能影响同一地区内其它AD的可用性。同一地区内的AD可以通过低时延、高带宽网络彼此连接,这使得为其它网络(例如,互联网、客户的本地部署网络等)提供高可用性连接并且在多个AD中构建复制系统以实现高可用性和灾难恢复成为可能。云服务使用多个AD来确保高可用性并防止资源故障。随着IaaS提供商提供的基础设施的增长,可以添加更多地区和AD以及附加的容量。可用性域之间的流量通常是加密的。
在某些实施例中,地区被分组为领域。领域是地区的逻辑集合。领域彼此隔离并且不共享任何数据。同一领域中的地区可以彼此通信,但不同领域中的地区不能通信。客户与CSP的租赁或账户存在于单个领域中,并且可以散布在属于该领域的一个或多个地区中。通常,当客户订阅IaaS服务时,会在领域内客户指定的地区(称为“主(home)”地区)中为该客户创建租赁或账户。客户可以将客户的租赁扩展到领域内的一个或多个其它地区。客户无法访问不在客户的租赁所在领域中的地区。
IaaS提供商可以提供多个领域,每个领域迎合客户或用户的特定集合。例如,可以为商业客户提供商业领域。作为另一个示例,可以为特定国家为该国家内的客户提供领域。作为又一个示例,可以为政府等提供政府领域。例如,政府领域可以迎合特定政府并且可以具有比商业领域更高的安全性级别。例如,Oracle云基础设施(Oracle CloudInfrastructure,OCI)目前为商业地区提供领域,并且为政府云地区提供两个领域(例如,FedRAMP授权的和IL5授权的)。
在某些实施例中,AD可以被细分成一个或多个故障域。故障域是AD内的基础设施资源的分组,以提供反亲和性。故障域允许计算实例的分布,使得这些实例不位于单个AD内的相同物理硬件上。这被称为反亲和性。故障域是指共享单点故障的硬件组件(计算机、交换机等)的集合。计算池在逻辑上被划分为故障域。因此,影响一个故障域的硬件故障或计算硬件维护事件不影响其它故障域中的实例。用于每个AD的故障域的数量可以因实施例而异。例如,在某些实施例中,每个AD包含三个故障域。故障域充当AD内的逻辑数据中心。
当客户订阅IaaS服务时,来自CSPI的资源被供应给客户并与客户的租赁相关联。客户可以使用这些供应的资源来构建私有网络并在这些网络上部署资源。由CSPI在云中托管的客户网络被称为虚拟云网络(VCN)。客户可以使用为客户分配的CSPI资源来设置一个或多个虚拟云网络(VCN)。VCN是虚拟或软件定义的私有网络。部署在客户的VCN中的客户资源可以包括计算实例(例如,虚拟机、裸金属实例)和其它资源。这些计算实例可以表示各种客户工作负载,诸如应用、负载平衡器、数据库等。部署在VCN上的计算实例可以通过公共网络(诸如互联网)与公共可访问端点(“公共端点”)、与同一VCN或其它VCN(例如,客户的其它VCN或不属于该客户的VCN)中的其它实例、与客户的本地部署数据中心或网络、以及与服务端点和其它类型的端点进行通信。
CSP可以使用CSPI来提供各种服务。在一些情况下,CSPI的客户本身可以像服务提供商一样起作用并使用CSPI资源来提供服务。服务提供商可以暴露服务端点,该服务端点由标识信息(例如,IP地址、DNS名称和端口)表征。客户的资源(例如,计算实例)可以通过访问由服务针对特定服务暴露的服务端点来消耗该特定服务。这些服务端点一般是用户经由公共通信网络(诸如互联网)使用与端点相关联的公共IP地址可公共访问的端点。可公共访问的网络端点有时也称为公共端点。
在某些实施例中,服务提供商可以经由用于服务的端点(有时称为服务端点)来暴露服务。服务的客户然后可以使用这个服务端点来访问服务。在某些实施方式中,为服务提供的服务端点可以由旨在消耗该服务的多个客户访问。在其它实施方式中,可以为客户提供专用服务端点,使得只有该客户可以使用该专用服务端点来访问服务。
在某些实施例中,当创建VCN时,它与私有覆盖无类域间路由(CIDR)地址空间相关联,该地址空间是指派给VCN的一系列私有覆盖IP地址(例如,10.0/16)。VCN包括相关联的子网、路由表和网关。VCN驻留在单个地区内,但可以跨越该区域的可用性域中的一个或多个或全部。网关是为VCN配置的虚拟接口并且启用去往VCN或从CVN到VCN外部的一个或多个端点的流量的通信。可以为VCN配置一种或多种不同类型的网关,以启用去往和来自不同类型端点的通信。
VCN可以被细分为一个或多个子网络,诸如一个或多个子网。因此,子网是可以在VCN内创建的配置的单元或细分。VCN可以具有一个或多个子网。VCN内的每个子网都与连续范围的覆盖IP地址(例如,10.0.0.0/24和10.0.1.0/24)相关联,这些IP地址不与该VCN中的其它子网重叠并且表示VCN的地址空间内的地址空间子集。
每个计算实例都与虚拟网络接口卡(VNIC)相关联,这使得计算实例能够参与VCN的子网。VNIC是物理网络接口卡(NIC)的逻辑表示。一般而言,VNIC是实体(例如,计算实例、服务)与虚拟网络之间的接口。VNIC存在于子网中,具有一个或多个相关联的IP地址,以及相关联的安全性规则或策略。VNIC相当于交换机上的层2端口。VNIC附接到计算实例和VCN内的子网。与计算实例相关联的VNIC使得计算实例能够成为VCN的子网的一部分,并且使得计算实例能够与和计算实例位于同一子网上的端点、与VCN中的不同子网中的端点、或者与VCN外部的端点进行通信(例如,发送和接收分组)。因此,与计算实例相关联的VNIC确定计算实例如何与VCN内部和外部的端点连接。当创建计算实例并将其添加到VCN内的子网时,创建用于计算实例的VNIC并将其与该计算实例相关联。对于包括计算实例的集合的子网,该子网包含与计算实例的该集合对应的VNIC,每个VNIC附接到计算机实例的该集合内的计算实例。
经由与计算实例相关联的VNIC为每个计算实例指派私有覆盖IP地址。这个私有覆盖IP地址在创建计算实例时指派给与计算实例相关联的VNIC并被用于路由去往和来自计算实例的流量。给定子网中的所有VNIC都使用相同的路由表、安全性列表和DHCP选项。如上所述,VCN内的每个子网都与连续范围的覆盖IP地址(例如,10.0.0.0/24和10.0.1.0/24)相关联,这些IP地址不与该VCN中的其它子网重叠并且表示VCN的地址空间内的地址空间子集。对于VCN的特定子网上的VNIC,指派给该VNIC的私有覆盖IP地址是来自为子网分配的连续范围的覆盖IP地址的地址。
在某些实施例中,除了私有覆盖IP地址之外,计算实例还可以可选地被指派附加的覆盖IP地址,诸如例如在公共子网中的情况下的一个或多个公共IP地址。这些多个地址在同一个VNIC上或者在与计算实例相关联的多个VNIC上被指派。但是,每个实例具有主VNIC,该主VNIC是在实例启动期间创建的并且与指派给该实例的覆盖私有IP地址相关联—这个主VNIC无法被移除。称为辅VNIC的附加VNIC可以添加到与主VNIC相同的可用性域中的现有实例。所有VNIC都在与该实例相同的可用性域中。辅VNIC可以位于与主VNIC相同的VCN中的子网中,或者位于同一VCN或不同VCN中的不同子网中。
如果计算实例在公共子网中,那么可以可选地为其指派公共IP地址。在创建子网时,可以将子网指定为公共子网或者私有子网。私有子网意味着子网中的资源(例如,计算实例)和相关联的VNIC不能具有公共覆盖IP地址。公共子网意味着子网中的资源和相关联的VNIC可以具有公共IP地址。客户可以指定子网存在于单个可用性域中,或者跨地区或领域中的多个可用性域存在。
如上所述,VCN可以被细分成一个或多个子网。在某些实施例中,为VCN配置的虚拟路由器(VR)(称为VCN VR或简称为VR)使得VCN的子网之间能够通信。对于VCN内的子网,VR表示用于该子网的逻辑网关,它使得该子网(即,该子网上的计算实例)能够与VCN内其它子网上的端点以及VCN外的其它端点进行通信。VCN VR是逻辑实体,其被配置为在VCN中的VNIC和与VCN相关联的虚拟网关(“网关”)之间路由流量。下文关于图1来进一步描述网关。VCN VR是层3/IP层概念。在一个实施例中,对于VCN存在一个VCN VR,其中VCN VR具有潜在不受限制数量的由IP地址寻址的端口,VCN的每个子网有一个端口。以这种方式,VCN VR对于VCN VR所附接到的VCN中的每个子网具有不同的IP地址。VR还连接到为VCN配置的各种网关。在某些实施例中,用于子网的覆盖IP地址范围中的特定覆盖IP地址被保留用于该子网的VCN VR的端口。例如,考虑VCN具有两个子网,相关联的地址范围分别是10.0/16和10.1/16。对于地址范围为10.0/16的VCN内的第一个子网,这个范围内的地址被保留用于该子网的VCN VR的端口。在一些情况下,范围内的第一个IP地址可以被保留用于VCN VR。例如,对于覆盖IP地址范围为10.0/16的子网,可以为该子网的VCN VR的端口保留IP地址10.0.0.1。对于地址范围为10.1/16的同一VCN内的第二个子网,VCN VR可以具有用于IP地址为10.1.0.1的第二个子网的端口。VCN VR对于VCN中的每个子网具有不同的IP地址。
在一些其它实施例中,VCN内的每个子网可以具有其自己的相关联的VR,该VR可由子网使用与VR相关联的保留或默认IP地址进行寻址。例如,保留或默认的IP地址可以是与该子网相关联的IP地址范围中的第一个IP地址。子网中的VNIC可以使用这个默认或保留的IP地址与和子网相关联的VR进行通信(例如,发送和接收分组)。在这种实施例中,VR是该子网的入口/出口点。与VCN内的子网相关联的VR可以与和VCN内的其它子网相关联的其它VR进行通信。VR还可以与和VCN相关联的网关进行通信。子网的VR功能在为子网中的VNIC执行VNIC功能的一个或多个NVD上运行或由该一个或多个NVD执行。
可以为VCN配置路由表、安全性规则和DHCP选项。路由表是用于VCN的虚拟路由表并且包括通过网关或特殊配置的实例将流量从VCN内的子网路由到VCN外的目的地的规则。可以定制VCN的路由表以控制分组如何转发/路由到VCN和从VCN转发/路由。DHCP选项是指在实例启动时自动提供给实例的配置信息。
为VCN配置的安全性规则表示用于VCN的覆盖防火墙规则。安全性规则可以包括入口和出口规则,并指定允许进出VCN实例内的流量的类型(例如,基于协议和端口)。客户可以选择给定规则是有状态的还是无状态的。例如,客户可以通过用源CIDR0.0.0.0/0和目的地TCP端口22设置有状态入口规则来允许来自任何地方的传入SSH流量到实例的集合。安全性规则可以使用网络安全性组或安全性列表来实现。网络安全性组由仅适用于该组中的资源的安全性规则的集合组成。另一方面,安全性列表包括适用于使用该安全性列表的任何子网中的所有资源的规则。VCN可以设置有带有默认安全性规则的默认安全性列表。为VCN配置的DHCP选项提供配置信息,该配置信息在实例启动时自动被提供给VCN中的实例。
在某些实施例中,用于VCN的配置信息由VCN控制平面确定和存储。例如,用于VCN的配置信息可以包括关于以下的信息:与VCN相关联的地址范围、VCN内的子网和相关联的信息、与VCN相关联的一个或多个VR、VCN中的计算实例和相关联的VNIC、执行与VCN相关联的各种虚拟化网络功能(例如,VNIC、VR、网关)的NVD、用于VCN的状态信息以及其它VCN相关信息。在某些实施例中,VCN分发服务向NVD发布由VCN控制平面或其部分存储的配置信息。分发的信息可以被用于更新由NVD存储和使用的信息(例如,转发表、路由表等),以将分组转发到VCN中的计算实例或从计算实例转发分组。
在某些实施例中,VCN和子网的创建由VCN控制平面(CP)处置并且计算实例的启动由计算控制平面处置。计算控制平面负责为计算实例分配物理资源,然后调用VCN控制平面来创建VNIC并将其附接到计算实例。VCN CP还将VCN数据映射发送到被配置为执行分组转发和路由功能的VCN数据平面。
客户可以使用由CSPI托管的资源创建一个或多个VCN。部署在客户VCN上的计算实例可以与不同的端点进行通信。这些端点可以包括由CSPI托管的端点和CSPI外部的端点。
图15、图16、图17、图18和图19中描绘了用于使用CSPI实现基于云的服务的各种不同体系架构,并且在下文中进行描述。图15是分布式环境1500的高级别图,示出了根据某些实施例的由CSPI托管的覆盖或客户VCN。图15中描绘的分布式环境包括覆盖网络中的多个组件。图15中描绘的分布式环境1500仅仅是个示例,并且不旨在不适当地限制要求保护的实施例的范围。许多变化、替代和修改是可能的。例如,在一些实施方式中,图15中描绘的分布式环境可以具有比图1中所示的系统或组件更多或更少的系统或组件,可以组合两个或更多个系统,或者可以具有不同的系统配置或布置。
如图15中描绘的示例中所示,分布式环境1500包括提供服务和资源的CSPI 1501,客户可以订阅并使用这些服务和资源来构建他们的虚拟云网络(VCN)。在某些实施例中,CSPI 1501向订阅客户供应IaaS服务。CSPI 1501内的数据中心可以被组织到一个或多个地区。图15中示出了一个示例地区“地区US”1502。客户已经为地区1502配置了客户VCN 1504。客户可以在VCN 1504上部署各种计算实例,其中计算实例可以包括虚拟机或裸金属实例。实例的示例包括应用、数据库、负载平衡器等。
在图15中描绘的实施例中,客户VCN 1504包括两个子网,即,“子网-1”和“子网-2”,每个子网具有其自己的CIDR IP地址范围。在图15中,子网-1的覆盖IP地址范围是10.0/16,并且子网-2的地址范围是10.1/16。VCN虚拟路由器1505表示用于VCN的逻辑网关,它启用VCN 1504的子网之间以及与VCN外部的其它端点的通信。VCN VR 1505被配置为在VCN1504中的VNIC与和VCN 1504相关联的网关之间路由流量。VCN VR 1505为VCN 1504的每个子网提供端口。例如,VR 1505可以为子网-1提供具有IP地址10.0.0.1的端口并为子网-2提供具有IP地址10.1.0.1的端口。
可以在每个子网上部署多个计算实例,其中计算实例可以是虚拟机实例和/或裸金属实例。子网中的计算实例可以由CSPI 1501内的一个或多个主机机器托管。计算实例经由与计算实例相关联的VNIC参与子网。例如,如图15中所示,计算实例C1经由与计算实例相关联的VNIC成为子网-1的一部分。同样,计算实例C2经由与C2相关联的VNIC成为子网-1的一部分。以类似的方式,多个计算实例(可以是虚拟机实例或裸金属实例)可以是子网-1的一部分。经由其相关联的VNIC,每个计算实例都被指派私有覆盖IP地址和MAC地址。例如,在图15中,计算实例C1的覆盖IP地址为10.0.0.2,MAC地址为M1,而计算实例C2的私有覆盖IP地址为10.0.0.3,MAC地址为M2。子网-1中的每个计算实例(包括计算实例C1和C2)都具有去往使用IP地址10.0.0.1的VCN VR 1505的默认路由,该IP地址是用于子网-1的VCN VR 1505的端口的IP地址。
子网-2上可以部署有多个计算实例,包括虚拟机实例和/或裸金属实例。例如,如图15中所示,计算实例D1和D2经由与相应计算实例相关联的VNIC成为子网-2的部分。在图15中所描绘的实施例中,计算实例D1的覆盖IP地址为10.1.0.2,MAC地址为MM1,而计算实例D2的私有覆盖IP地址为10.1.0.3,MAC地址为MM2。子网-2中的每个计算实例(包括计算实例D1和D2)都具有去往使用IP地址10.1.0.1的VCN VR 1505的默认路由,该IP地址是用于子网-2的VCN VR 1505的端口的IP地址。
VCN A 1504还可以包括一个或多个负载平衡器。例如,可以为子网提供负载平衡器,并且可以将负载平衡器配置为跨子网上的多个计算实例的负载平衡流量。还可以提供负载平衡器以在VCN中跨子网对流量进行负载平衡。
部署在VCN 1504上的特定计算实例可以与各种不同的端点通信。这些端点可以包括由CSPI 1600托管的端点和CSPI 1600外部的端点。由CSPI 1501托管的端点可以包括:与特定计算实例位于同一子网上的端点(例如,子网-1中两个计算实例之间的通信);位于不同子网上但位于同一VCN内的端点(例如,子网-1中的计算实例与子网-2中的计算实例之间的通信);同一地区中不同VCN中的端点(例如,子网-1中的计算实例与同一地区中的VCN1506或1510中的端点之间的通信,子网-1中的计算实例与同一地区中服务网络1510中的端点之间的通信);或不同地区中的VCN中的端点(例如,子网-1中的计算实例与不同地区中的VCN 1508中的端点之间的通信)。由CSPI 1501托管的子网中的计算实例也可以与不由CSPI1501托管(即,在CSPI 1501外部)的端点进行通信。这些外部端点包括客户的本地部署网络1516中的端点、其它远程云托管网络1518内的端点、经由公共网络(诸如互联网)可访问的公共端点1514及其它端点。
使用与源计算实例和目的地计算实例相关联的VNIC促进同一子网上的计算实例之间的通信。例如,子网-1中的计算实例C1可能想要将分组发送到子网-1中的计算实例C2。对于源自源计算实例且其目的地是同一子网中的另一个计算实例的分组,该分组首先由与源计算实例相关联的VNIC处理。由与源计算实例相关联的VNIC执行的处理可以包括根据分组报头确定分组的目的地信息、识别为与源计算实例相关联的VNIC配置的任何策略(例如,安全性列表)、确定用于分组的下一跳、根据需要执行任何分组封装/解封装功能,然后将分组转发/路由到下一跳,目的是促进分组到其预期目的地的通信。当目的地计算实例与源计算实例位于同一子网中时,与源计算实例相关联的VNIC被配置为识别与目的地计算实例相关联的VNIC并将分组转发到该VNIC进行处理。然后执行与目的地计算实例相关联的VNIC并将分组转发到目的地计算实例。
对于要从子网中的计算实例传送到同一VCN中不同子网中的端点的分组,通过与源和目的地计算实例相关联的VNIC以及VCN VR来促进通信。例如,如果图15中子网-1中的计算实例C1想要将分组发送到子网-2中的计算实例D1,那么该分组首先由与计算实例C1相关联的VNIC处理。与计算实例C1相关联的VNIC被配置为使用默认路由或VCN VR的端口10.0.0.1将分组路由到VCN VR 1505。VCN VR 1505被配置为使用端口10.1.0.1将分组路由到子网-2。然后,与D1相关联的VNIC接收并处理分组并且VNIC将分组转发到计算实例D1。
对于要从VCN 1504中的计算实例传送到VCN 1504外部的端点的分组,通信由与源计算实例相关联的VNIC、VCN VR 1505和与VCN 1504相关联的网关促进。一种或多种类型的网关可以与VCN 1504相关联。网关是VCN和另一个端点之间的接口,其中该另一个端点在VCN外部。网关是层3/IP层概念并且使得VCN能够与VCN外部的端点进行通信。因此,网关促进VCN与其它VCN或网络之间的流量流动。可以为VCN配置各种不同类型的网关以促进与不同类型的端点的不同类型的通信。取决于网关,通信可以通过公共网络(例如,互联网)或通过私有网络进行。各种通信协议可以用于这些通信。
例如,计算实例C1可能想要与VCN 1504外部的端点通信。分组可以首先由与源计算实例C1相关联的VNIC处理。VNIC处理确定分组的目的地在C1的子网-1外部。与C1相关联的VNIC可以将分组转发到用于VCN 1504的VCN VR 1505。VCN VR 1505然后处理分组,并且作为处理的一部分,基于分组的目的地来确定与VCN 1504相关联的特定网关作为分组的下一跳。然后,VCN VR 1505可以将分组转发到特定的识别出的网关。例如,如果目的地是客户的本地部署网络内的端点,那么分组可以由VCN VR 1505转发到为VCN 1504配置的动态路由网关(DRG)网关1522。分组然后可以从网关转发到下一跳,以促进分组到其最终预期目的地的传送。
可以为VCN配置各种不同类型的网关。可以为VCN配置的网关的示例在图15中描绘并且在下文进行描述。如图15中描绘的实施例中所示,动态路由网关(DRG)1522可以添加到客户VCN 1504或与客户VCN 1504相关联,并为客户VCN 1504与另一个端点之间的私有网络流量通信提供路径,其中该另一个端点可以是客户的本地部署网络1516、CSPI 1501的不同地区中的VCN 1508、或者不由CSPI 1501托管的其它远程云网络1518。客户本地部署网络1516可以是使用客户的资源构建的客户网络或客户数据中心。对客户本地部署网络1516的访问一般是非常受限的。对于同时具有客户本地部署网络1516和由CSPI 1501在云中部署或托管的一个或多个VCN 1504的客户,客户可能想要他们的本地部署网络1516和他们的基于云的VCN 1504能够彼此通信。这使客户能够构建扩展的混合环境,包括由CSPI 1501托管的客户的VCN 1504和他们的本地部署网络1516。DRG 1522实现这种通信。为了实现此类通信,设置通信信道1524,其中信道的一个端点位于客户本地部署网络1516中,而另一个端点位于CSPI 1501中并连接到客户VCN 1504。通信信道1524可以通过公共通信网络(诸如互联网)或私有通信网络。可以使用各种不同的通信协议,诸如公共通信网络(诸如互联网)上的IPsec VPN技术、使用私有网络而非公共网络的Oracle的FastConnect技术等。客户本地部署网络1516中形成通信信道1524的一个端点的设备或装备被称为客户本地装备(CPE),诸如图15中描绘的CPE 1526。在CSPI 1501侧,端点可以是执行DRG 1522的主机机器。
在某些实施例中,可以将远程对等连接(RPC)添加到DRG,这允许客户将一个VCN与不同地区中的另一个VCN对等。使用这种RPC,客户VCN 1504可以使用DRG 1522与另一个地区中的VCN 1508连接。DRG 1522还可以被用于与不由CSPI 1501托管的其它远程云网络1518(诸如Microsoft Azure云、亚马逊AWS云等)进行通信。
如图15中所示,可以为客户VCN 1504配置互联网网关(IGW)1520,其使VCN 1504上的计算实例能够与通过公共网络(诸如互联网)可访问的公共端点1514通信。IGW 1520是将VCN连接到诸如互联网之类的公共网络的网关。IGW 1520使VCN(诸如VCN 1504)内的公共子网(其中公共子网中的资源具有公共覆盖IP地址)能够直接访问公共网络1514(诸如互联网)上的公共端点1512。使用IGW 1520,可以从VCN 1504内的子网或从互联网发起连接。
可以为客户的VCN 1504配置网络地址转换(NAT)网关1528,并使客户的VCN中不具有专用公共覆盖IP地址的云资源能够访问互联网,并且在不暴露这些资源的情况下这样做以指引传入的互联网连接(例如,L4-L7连接)。这使VCN内的私有子网(诸如VCN 1504中的私有子网-1)能够私有访问互联网上的公共端点。在NAT网关中,只能从私有子网发起到公共互联网的连接,而不能从互联网发起到私有子网的连接。
在某些实施例中,可以为客户VCN 1504配置服务网关(SGW)1526,并为VCN 1504和服务网络1510中支持的服务端点之间的私有网络流量提供路径。在某些实施例中,服务网络1510可以由CSP提供并且可以提供各种服务。这种服务网络的示例是Oracle的服务网络,它提供可供客户使用的各种服务。例如,客户VCN 1504的私有子网中的计算实例(例如,数据库系统)可以将数据备份到服务端点(例如,对象存储装置(Object Storage)),而无需公共IP地址或访问互联网。在某些实施例中,VCN可以仅具有一个SGW,并且连接只能从VCN内的子网发起,而不能从服务网络1510发起。如果VCN与另一个VCN对等,那么另一个VCN中的资源通常不能访问SGW。用FastConnect或VPN Connect连接到VCN的本地部署网络中的资源也可以使用为该VCN配置的服务网关。
在某些实施方式中,SGW 1526使用服务无类域间路由(CIDR)标签的概念,该标签是表示用于感兴趣的服务或服务组的所有地区性公共IP地址范围的字符串。客户在他们配置SGW和相关路由规则以控制去往服务的流量时使用服务CIDR标签。如果服务的公共IP地址在未来发生改变,那么客户可以在配置安全性规则时可选地使用服务CIDR标签,而无需调整安全性规则。
本地对等网关(LPG)1532是可以添加到客户VCN 1504并使VCN 1504能够与同一地区中的另一个VCN对等的网关。对等是指VCN使用私有IP地址进行通信,流量无需穿过公共网络(诸如互联网)或无需通过客户的本地部署网络1516路由流量。在优选实施例中,VCN对于它建立的每个对等体具有单独的LPG。本地对等或VCN对等是用于在不同应用或基础设施管理功能之间建立网络连接性的常见做法。
服务提供商(诸如服务网络1510中的服务的提供商)可以使用不同的访问模型提供对服务的访问。根据公共访问模型,服务可以作为可由客户VCN中的计算实例经由公共网络(诸如互联网)可公共访问的公共端点暴露,和/或可以经由SGW 1526来私有访问。根据特定的私有访问模型,服务可作为客户的VCN中的私有子网中的私有IP端点进行访问。这被称为私有端点(PE)访问并且使服务提供商能够将其服务作为客户的私有网络中的实例暴露。私有端点资源表示客户的VCN内的服务。每个PE在客户的VCN中由客户选择的子网中表现为VNIC(称为PE-VNIC,具有一个或多个私有IP)。因此,PE提供了使用VNIC在私有客户VCN子网中呈现服务的方式。由于端点作为VNIC暴露,因此与VNIC相关联的所有特征(诸如路由规则、安全性列表等)现在都可用于PE VNIC。
服务提供商可以注册他们的服务以启用通过PE的访问。提供商可以将策略与服务相关联,这限制了服务对客户租赁的可见性。提供商可以在单个虚拟IP地址(VIP)下注册多个服务,尤其是对于多租户服务。可以存在表示相同服务的多个这样的私有端点(在多个VCN中)。
私有子网中的计算实例然后可以使用PE VNIC的私有IP地址或服务DNS名称来访问服务。客户VCN中的计算实例可以通过将流量发送到客户VCN中的PE的私有IP地址来访问该服务。私有访问网关(PAGW)1530是可以附接到服务提供商VCN(例如,服务网络1510中的VCN)的网关资源,该服务提供商VCN充当来自/去往客户子网私有端点的所有流量的入口/出口点。PAGW 1530使提供商能够在不利用其内部IP地址资源的情况下扩展PE连接的数量。提供商只需要为在单个VCN中注册的任何数量的服务配置一个PAGW。提供商可以将服务表示为一个或多个客户的多个VCN中的私有端点。从客户的角度来看,代替附接到客户的实例,PE VNIC看起来附接到客户希望与之交互的服务。去往私有端点的流量经由PAGW 1530路由到服务。这些被称为客户到服务私有连接(C2S连接)。
通过允许流量流经FastConnect/IPsec链路和客户VCN中的私有端点,PE概念还可以被用于将对于服务的私有访问扩展到客户的本地部署网络和数据中心。通过允许流量在LPG 1532和客户的VCN中的PE之间流动,还可以将对于服务的私有访问扩展到客户的对等VCN。
客户可以在子网级别控制VCN中的路由,因此客户可以指定客户的VCN(诸如VCN1504)中的哪些子网使用每个网关。VCN的路由表被用于决定是否允许流量通过特定网关离开VCN。例如,在特定实例中,用于客户VCN 1504内的公共子网的路由表可以通过IGW 1520发送非本地流量。用于同一客户VCN 1504内的私有子网的路由表可以通过SGW 1526发送以CSP服务为目的地的流量。所有剩余流量可以经由NAT网关1528发送。路由表仅控制离开VCN的流量。
与VCN相关联的安全性列表被用于控制经由入站连接经由网关进入VCN的流量。子网中的所有资源都使用相同的路由表和安全性列表。安全性列表可以被用于控制允许进出VCN的子网中的实例的特定类型的流量。安全性列表规则可以包括入口(入站)和出口(出站)规则。例如,入口规则可以指定允许的源地址范围,而出口规则可以指定允许的目的地地址范围。安全性规则可以指定特定的协议(例如,TCP、ICMP)、特定的端口(例如,用于SSH的22、用于Windows RDP的3389)等。在某些实施方式中,实例的操作系统可以强制执行其自己的符合安全性列表规则的防火墙规则。规则可以是有状态的(例如,跟踪连接并自动允许响应,而无需针对响应流量的明确安全性列表规则)或无状态的。
来自客户VCN的访问(即,通过部署在VCN 1504上的资源或计算实例)可以被分类为公共访问、私有访问或专用访问。公共访问是指使用公共IP地址或NAT来访问公共端点的访问模型。私有访问使VCN 1504中具有私有IP地址的客户工作负载(例如,私有子网中的资源)能够访问服务,而无需穿过诸如互联网之类的公共网络。在某些实施例中,CSPI 1501使具有私有IP地址的客户VCN工作负载能够使用服务网关访问服务(的公共服务端点)。因此,服务网关通过在客户的VCN和驻留在客户的私有网络外部的服务的公共端点之间建立虚拟链路来供应私有访问模型。
此外,CSPI可以使用诸如FastConnect公开对等之类的技术供应专用公共访问,其中客户本地部署实例可以使用FastConnect连接来访问客户VCN中的一个或多个服务,而无需穿过公共网络(诸如互联网)。CSPI还可以使用FastConnect私有对等来供应专用私有访问,其中具有私有IP地址的客户本地部署实例可以使用FastConnect连接访问客户的VCN工作负载。FastConnect是对使用公共互联网将客户的本地部署网络连接到CSPI及其服务的网络连接性替代方案。与基于互联网的连接相比,FastConnect提供了简单、灵活且经济的方式来创建具有更高带宽选项的专用和私有连接以及更可靠和一致的联网体验。
图15和上面的伴随描述描述了示例虚拟网络中的各种虚拟化组件。如上所述,虚拟网络构建在底层物理或基板网络上。图16描绘了根据某些实施例的为虚拟网络提供底层的CSPI 1600内的物理网络中的物理组件的简化体系架构图。如图所示,CSPI 1600提供分布式环境,包括由云服务提供商(CSP)提供的组件和资源(例如,计算、存储器和联网资源)。这些组件和资源被用于向订阅客户(即,已订阅由CSP提供的一个或多个服务的客户)提供云服务(例如,IaaS服务)。基于客户订阅的服务,为客户供应CSPI 1600的资源(例如,计算、存储器和联网资源)的子集。然后,客户可以使用由CSPI 1600提供的物理计算、存储器和联网资源构建其自己的基于云的(即,CSPI托管的)可定制且私有的虚拟网络。如前面所指示的,这些客户网络被称为虚拟云网络(VCN)。客户可以在这些客户VCN上部署一个或多个客户资源,诸如计算实例。计算实例可以是虚拟机、裸金属实例等形式。CSPI 1600提供基础设施和互补云服务的集合,这使客户能够在高度可用的托管环境中构建和运行广泛的应用和服务。
在图16中描绘的示例实施例中,CSPI 1600的物理组件包括一个或多个物理主机机器或物理服务器(例如,1602、1606、1608)、网络虚拟化设备(NVD)(例如,1610、1612)、架顶式(TOR)交换机(例如,1614、1616)和物理网络(例如,1618)、以及物理网络1618中的交换机。物理主机机器或服务器可以托管和执行参与VCN的一个或多个子网的各种计算实例。计算实例可以包括虚拟机实例和裸金属实例。例如,图15中描绘的各种计算实例可以由图16中描绘的物理主机机器托管。VCN中的虚拟机计算实例可以由一个主机机器或多个不同的主机机器执行。物理主机机器也可以托管虚拟主机机器、基于容器的主机或功能等。图15中描绘的VNIC和VCN VR可以由图16中描绘的NVD执行。图15中描绘的网关可以由图16中描绘的主机机器和/或由NVD执行。
主机机器或服务器可以执行在主机机器上创建和启用虚拟化环境的管理程序(也称为虚拟机监视器或VMM)。虚拟化或虚拟化环境促进了基于云的计算。一个或多个计算实例可以由主机机器上的管理程序在该主机机器上创建、执行和管理。主机机器上的管理程序使主机机器的物理计算资源(例如,计算、存储器和联网资源)能够在由主机机器执行的各种计算实例之间共享。
例如,如图16中所描绘的,主机机器1602和1608分别执行管理程序1660和1666。这些管理程序可以使用软件、固件或硬件或其组合来实现。通常,管理程序是位于主机机器的操作系统(OS)之上的进程或软件层,OS进而在主机机器的硬件处理器上执行。管理程序通过使主机机器的物理计算资源(例如,诸如处理器/核之类的处理资源、存储器资源、联网资源)能够在由主机机器执行的各种虚拟机计算实例之间共享来提供虚拟化环境。例如,在图16中,管理程序1660可以位于主机机器1602的OS之上并使主机机器1602的计算资源(例如,处理、存储器和联网资源)能够在由主机机器1602执行的计算实例(例如,虚拟机)之间共享。虚拟机可以具有其自己的操作系统(称为访客操作系统),其可以与主机机器的OS相同或不同。由主机机器执行的虚拟机的操作系统可以与由同一主机机器执行的另一个虚拟机的操作系统相同或不同。因此,管理程序使多个操作系统能够彼此一起执行,同时共享主机机器的相同计算资源。图16中描绘的主机机器可以具有相同或不同类型的管理程序。
计算实例可以是虚拟机实例或裸金属实例。在图16中,主机机器1602上的计算实例1668和主机机器1608上的计算实例1674是虚拟机实例的示例。主机机器1606是提供给客户的裸金属实例的示例。
在某些情况下,可以向单个客户供应整个主机机器,并且由该主机机器托管的全部一个或多个计算实例(或者虚拟机或者裸金属实例)都属于该同一客户。在其它情况下,主机机器可以在多个客户(即,多个租户)之间共享。在这种多租赁场景中,主机机器可以托管属于不同客户的虚拟机计算实例。这些计算实例可以是不同客户的不同VCN的成员。在某些实施例中,裸金属计算实例由没有管理程序的裸金属服务器托管。当供应裸金属计算实例时,单个客户或租户维护对托管该裸金属实例的主机机器的物理CPU、存储器和网络接口的控制,并且主机机器不与其他客户或租户共享。
如前所述,作为VCN的一部分的每个计算实例都与使该计算实例能够成为VCN的子网的成员的VNIC相关联。与计算实例相关联的VNIC促进去往和来自计算实例的分组或帧的通信。VNIC在创建计算实例时与该计算实例相关联。在某些实施例中,对于由主机机器执行的计算实例,与该计算实例相关联的VNIC由连接到主机机器的NVD执行。例如,在图16中,主机机器1602执行与VNIC 1676相关联的虚拟机计算实例1668,并且VNIC 1676由连接到主机机器1602的NVD 1610执行。作为另一个示例,由主机机器1606托管的裸金属实例1672与由连接到主机机器1606的NVD 1612执行的VNIC 1680相关联。作为又一个示例,VNIC 1684与由主机机器1608执行的计算实例1674相关联,并且VNIC 1684由连接到主机机器1608的NVD1612执行。
对于由主机机器托管的计算实例,连接到该主机机器的NVD还执行与计算实例是其成员的VCN对应的VCN VR。例如,在图16中描绘的实施例中,NVD 1610执行与计算实例1668是其成员的VCN对应的VCN VR 1677。NVD 1612还可以执行与VCN对应的一个或多个VCNVR 1683,该VCN与由主机机器1606和1608托管的计算实例对应。
主机机器可以包括使主机机器能够连接到其它设备的一个或多个网络接口卡(NIC)。主机机器上的NIC可以提供使主机机器能够通信地连接到另一个设备的一个或多个端口(或接口)。例如,主机机器可以使用在主机机器上和NVD上提供的一个或多个端口(或接口)连接到NVD。主机机器也可以连接到其它设备(诸如另一个主机机器)。
例如,在图16中,主机机器1602使用链路1620连接到NVD 1610,链路1620在由主机机器1602的NIC 1632提供的端口1634与NVD 1610的端口1636之间延伸。主机机器1606使用链路1624连接到NVD 1612,链路1624在由主机机器1606的NIC 1644提供的端口1646与NVD1612的端口1648之间延伸。主机机器1608使用链路1626连接到NVD 1612,链路1626在由主机机器1608的NIC 1650提供的端口1652与NVD 1612的端口1654之间延伸。
NVD进而经由通信链路连接到架顶式(TOR)交换机,这些交换机连接到物理网络1618(也称为交换机架构)。在某些实施例中,主机机器和NVD之间以及NVD和TOR交换机之间的链路是以太网链路。例如,在图16中,NVD 1610和1612分别使用链路1628和1630连接到TOR交换机1614和1616。在某些实施例中,链路1620、1624、1626、1628和1630是以太网链路。连接到TOR的主机机器和NVD的集合有时称为机架(rack)。
物理网络1618提供使TOR交换机能够彼此通信的通信架构。物理网络1618可以是多层网络。在某些实施方式中,物理网络1618是交换机的多层Clos网络,其中TOR交换机1614和1616表示多层和多节点物理交换网络1618的叶级节点。不同的Clos网络配置是可能的,包括但不限于2层网络、3层网络、4层网络、5层网络和一般的“n”层网络。Clos网络的示例在图19中描绘并在下面进行描述。
主机机器和NVD之间可能存在各种不同的连接配置,诸如一对一配置、多对一配置、一对多配置等。在一对一配置实施方式中,每个主机机器连接到自己单独的NVD。例如,在图16中,主机机器1602经由主机机器1602的NIC 1632连接到NVD 1610。在多对一配置中,多个主机机器连接到一个NVD。例如,在图16中,主机机器1606和1608分别经由NIC 1644和1650连接到同一个NVD 1612。
在一对多配置中,一个主机机器连接到多个NVD。图17示出了CSPI 1700内的示例,其中主机机器连接到多个NVD。如图17中所示,主机机器1702包括网络接口卡(NIC)1704,其包括多个端口1706和1708。主机机器1700经由端口1706和链路1720连接到第一NVD 1710,并经由端口1708和链路1722连接到第二NVD 1712。端口1706和1708可以是以太网端口并且主机机器1702与NVD 1710和1712之间的链路1720和1722可以是以太网链路。NVD 1710进而连接到第一TOR交换机1714并且NVD 1712连接到第二TOR交换机1716。NVD 1710和1712之间以及TOR交换机1714和1716之间的链路可以是以太网链路。TOR交换机1714和1716表示多层物理网络1718中的层0交换设备。
图17中描绘的布置提供了物理交换机网络1718与主机机器1702之间的两条单独的物理网络路径:第一条路径穿过TOR交换机1714到NVD 1710再到主机机器1702,并且第二条路径穿过TOR交换机1716到NVD 1712再到主机机器1702。单独的路径提供了主机机器1702的增强的可用性(称为高可用性)。如果以下中的一者出现问题:路径(例如,路径之一中的链路断开)或设备(例如,特定NVD未运行),那么另一条路径可以被用于去往/来自主机机器1702的通信。
在图17中描绘的配置中,主机机器使用由主机机器的NIC提供的两个不同端口连接到两个不同的NVD。在其它实施例中,主机机器可以包括使主机机器能够连接到多个NVD的多个NIC。
返回参考图16,NVD是执行一个或多个网络和/或存储虚拟化功能的物理设备或组件。NVD可以是具有一个或多个处理单元(例如,CPU、网络处理单元(NPU)、FPGA、分组处理流水线等)、存储器(包括高速缓存)和端口的任何设备。各种虚拟化功能可以由NVD的一个或多个处理单元执行的软件/固件来执行。
NVD可以以各种不同的形式实现。例如,在某些实施例中,NVD被实现为称为smartNIC的接口卡或具有板载嵌入式处理器的智能NIC。smartNIC是独立于主机机器上的NIC的设备。在图16中,NVD 1610和1612可以被实现为分别连接到主机机器1602以及主机机器1606和1608的smartNIC。
但是,smartNIC只是NVD实施方式的一个示例。各种其它实施方式是可能的。例如,在一些其它实施方式中,NVD或由NVD执行的一个或多个功能可以结合到一个或多个主机机器、一个或多个TOR交换机以及CSPI 1600的其它组件中或由其执行。例如,NVD可以在主机机器中实施,其中由NVD执行的功能由主机机器执行。作为另一个示例,NVD可以是TOR交换机的一部分,或者TOR交换机可以被配置为执行由NVD执行的功能,这使TOR交换机能够执行用于公共云的各种复杂分组转换。执行NVD的功能的TOR有时被称为智能TOR。在向客户供应虚拟机(VM)实例而非裸金属(BM)实例的另外其它实施方式中,由NVD执行的功能可以在主机机器的管理程序内部实现。在一些其它实施方式中,NVD的功能中的一些功能可以被卸载到运行在一组主机机器上的集中式服务。
在某些实施例中,诸如当实现为如图16中所示的smartNIC时,NVD可以包括使其能够连接到一个或多个主机机器以及一个或多个TOR交换机的多个物理端口。NVD上的端口可以被分类为面向主机的端口(也称为“南端口”),或者面向网络或面向TOR的端口(也称为“北端口”)。NVD的面向主机的端口是用于将NVD连接到主机机器的端口。图16中面向主机的端口的示例包括NVD 1610上的端口1636以及NVD 1612上的端口1648和1654。NVD的面向网络的端口是用于将NVD连接到TOR交换机的端口。图16中面向网络的端口的示例包括NVD1610上的端口1656和NVD 1612上的端口1658。如图16中所示,NVD 1610使用从NVD 1610的端口1656延伸到TOR交换机1614的链路1628连接到TOR交换机1614。类似地,NVD 1612使用从NVD 1612的端口1658延伸到TOR交换机1616的链路1630连接到TOR交换机1616。
NVD经由面向主机的端口从主机机器接收分组和帧(例如,由主机机器托管的计算实例生成的分组和帧),并且在执行必要的分组处理之后,可以经由NVD的面向网络的端口将分组和帧转发到TOR交换机。NVD可以经由NVD的面向网络的端口从TOR交换机接收分组和帧,并且在执行必要的分组处理之后,可以经由NVD的面向主机的端口将分组和帧转发到主机机器。
在某些实施例中,在NVD和TOR交换机之间可以存在多个端口和相关联的链路。可以聚合这些端口和链路以形成多个端口或链路的链路聚合体组(称为LAG)。链路聚合允许将两个端点之间(例如,NVD和TOR交换机之间)的多条物理链路视为单条逻辑链路。给定LAG中的所有物理链路都可以以相同的速度在全双工模式下操作。LAG有助于增加两个端点之间的连接的带宽和可靠性。如果LAG中的物理链路中的一条物理链路发生故障,那么流量将动态且透明地重新指派到LAG中的其它物理链路中的一条物理链路。聚合的物理链路比每条单独的链路递送更高的带宽。与LAG相关联的多个端口被视为单个逻辑端口。流量可以在LAG的多条物理链路之间进行负载平衡。可以在两个端点之间配置一个或多个LAG。这两个端点可以位于NVD和TOR交换机之间、主机机器和NVD之间,等等。
NVD实现或执行网络虚拟化功能。这些功能由NVD执行的软件/固件执行。网络虚拟化功能的示例包括但不限于:分组封装和解封装功能;用于创建VCN网络的功能;用于实现网络策略的功能,诸如VCN安全性列表(防火墙)功能;促进分组去往VCN中的计算实例和来自该计算实例的路由和转发的功能等。在某些实施例中,在接收到分组后,NVD被配置为执行分组处理流水线用于处理分组并确定如何转发或路由分组。作为这个分组处理流水线的一部分,NVD可以执行与覆盖网络相关联的一个或多个虚拟功能,诸如执行与VCN中的计算实例相关联的VNIC、执行与VCN相关联的虚拟路由器(VR)、分组的封装和解封装以促进虚拟网络中的转发或路由、某些网关(例如,本地对等网关)的执行、安全性列表的实施、网络安全组、网络地址转换(NAT)功能(例如,逐个主机地将公共IP转换为私有IP)、节流功能和其它功能。
在某些实施例中,NVD中的分组处理数据路径可以包括多个分组流水线,每个分组流水线由一系列分组变换级(stage)组成。在某些实施方式中,在接收到分组后,分组被解析并分类到单个流水线。然后以线性方式处理分组,一个级接一个级,直到分组被丢弃或者通过NVD的接口被发送出去为止。这些级提供基本的功能性分组处理构建块(例如,验证报头、强制执行节流、插入新的层2报头、强制执行L4防火墙、VCN封装/解封装等),以便可以通过组合现有级来构建新的流水线,并且可以通过创建新级并将它们插入现有流水线来添加新的功能。
NVD可以执行与VCN的控制平面和数据平面对应的控制平面功能和数据平面功能两者。控制平面功能包括用于配置控制数据如何转发的网络的功能(例如,设置路由和路由表、配置VNIC等)。在某些实施例中,提供了VCN控制平面,它集中计算所有覆盖到基板映射并将它们发布到NVD和虚拟网络边缘设备(诸如各种网关,诸如DRG、SGW、IGW等)。防火墙规则也可以使用相同的机制发布。在某些实施例中,NVD仅获得与该NVD相关的映射。数据平面功能包括基于使用控制平面设置的配置来实际路由/转发分组的功能。VCN数据平面是通过在客户的网络分组穿过基板网络之前对其进行封装来实现的。封装/解封装功能在NVD上实现。在某些实施例中,NVD被配置为拦截进出主机机器的所有网络分组并执行网络虚拟化功能。
如上面所指示的,NVD执行各种虚拟化功能,包括VNIC和VCN VR。NVD可以执行与连接到VNIC的一个或多个主机机器托管的计算实例相关联的VNIC。例如,如图16中所描绘的,NVD 1610执行与由连接到NVD 1610的主机机器1602托管的计算实例1668相关联的VNIC1676的功能。作为另一个示例,NVD 1612执行与由主机机器1606托管的裸金属计算实例1672相关联的VNIC 1680,并执行与由主机机器1608托管的计算实例1674相关联的VNIC1684。主机机器可以托管属于不同VCN(属于不同客户)的计算实例,并且连接到主机机器的NVD可以执行与计算实例对应的VNIC(即,执行VNIC相关功能)。
NVD还执行与计算实例的VCN对应的VCN虚拟路由器。例如,在图16中描绘的实施例中,NVD 1610执行与计算实例1668所属的VCN对应的VCN VR 1677。NVD 1612执行与由主机机器1606和1608托管的计算实例所属的一个或多个VCN对应的一个或多个VCN VR 1683。在某些实施例中,与该VCN对应的VCN VR由连接到托管属于该VCN的至少一个计算实例的主机机器的所有NVD执行。如果主机机器托管属于不同VCN的计算实例,那么连接到该主机机器的NVD可以执行与这些不同VCN对应的VCN VR。
除了VNIC和VCN VR之外,NVD还可以执行各种软件(例如,守护进程)并且包括一个或多个硬件组件,这些组件促进由NVD执行的各种网络虚拟化功能。为了简单起见,这些各种组件被分组在一起作为图16中所示的“分组处理组件”。例如,NVD 1610包括分组处理组件1686并且NVD 1612包括分组处理组件1688。例如,用于NVD的分组处理组件可以包括分组处理器,该分组处理器被配置为与NVD的端口和硬件接口交互以监视由NVD接收和使用NVD传送的所有分组并存储网络信息。网络信息例如可以包括识别由NVD处置的不同网络流的网络流信息和每个流信息(例如,每个流统计信息)。在某些实施例中,网络流信息可以以每个VNIC为基础进行存储。分组处理器可以执行逐分组的操纵以及实现有状态的NAT和L4防火墙(FW)。作为另一个示例,分组处理组件可以包括被配置为将由NVD存储的信息复制到一个或多个不同的复制目标存储库的复制代理。作为又一个示例,分组处理组件可以包括被配置为执行NVD的日志记录功能的日志记录代理。分组处理组件还可以包括用于监视NVD的性能和健康状况并且还可能监视连接到NVD的其它组件的状态和健康状况的软件。
图15示出了示例虚拟或覆盖网络的组件,包括VCN、VCN内的子网、部署在子网上的计算实例、与计算实例相关联的VNIC、用于VCN的VR、以及为VCN配置的网关的集合。图15中描绘的覆盖组件可以由图16中描绘的物理组件中的一个或多个执行或托管。例如,VCN中的计算实例可以由图16中描绘的一个或多个主机机器执行或托管。对于由主机机器托管的计算实例,与该计算实例相关联的VNIC通常由连接到该主机机器的NVD执行(即,VNIC功能由连接到该主机机器的NVD提供)。用于VCN的VCN VR功能由连接到托管或执行作为该VCN的一部分的计算实例的主机机器的所有NVD执行。与VCN相关联的网关可以由一种或多种不同类型的NVD执行。例如,某些网关可以由smartNIC执行,而其它网关可以由一个或多个主机机器或NVD的其它实施方式执行。
如上所述,客户VCN中的计算实例可以与各种不同的端点进行通信(其中端点可以与源计算实例在同一子网内、与源计算实例在不同子网中但在同一VCN内),或者与位于源计算实例的VCN外部的端点进行通信。使用与计算实例相关联的VNIC、VCN VR以及与VCN相关联的网关来促进这些通信。
对于VCN中同一子网上的两个计算实例之间的通信,使用与源和目的地计算实例相关联的VNIC促进通信。源和目的地计算实例可以由同一主机机器或不同主机机器托管。源自源计算实例的分组可以从托管源计算实例的主机机器转发到连接到该主机机器的NVD。在NVD上,使用分组处理流水线处理分组,这可以包括与源计算实例相关联的VNIC的执行。由于用于分组的目的地端点位于同一子网内,因此与源计算实例相关联的VNIC的执行导致分组被转发到执行与目的地计算实例相关联的VNIC的NVD,然后NVD处理分组并将其转发到目的地计算实例。与源和目的地计算实例相关联的VNIC可以在同一NVD上执行(例如,当源和目的地计算实例两者由同一个主机机器托管时)或在不同NVD上执行(例如,当源和目的地计算实例由连接到不同NVD的不同主机机器托管时)。VNIC可以使用由NVD存储的路由/转发表来确定分组的下一跳。
对于要从子网中的计算实例传送到同一VCN中不同子网中的端点的分组,源自源计算实例的分组从托管源计算实例的主机机器传送到连接到该主机机器的NVD。在NVD上,使用分组处理流水线处理分组,这可以包括一个或多个VNIC以及与VCN相关联的VR的执行。例如,作为分组处理流水线的一部分,NVD执行或调用与和源计算实例相关联的VNIC的功能(也称为执行VNIC)。由VNIC执行的功能可以包括查看分组上的VLAN标记。由于分组的目的地在子网外部,因此接下来由NVD调用和执行VCN VR功能。然后,VCN VR将分组路由到执行与目的地计算实例相关联的VNIC的NVD。与目的地计算实例相关联的VNIC然后处理分组并将分组转发到目的地计算实例。与源和目的地计算实例相关联的VNIC可以在同一NVD上执行(例如,当源和目的地计算实例两者由同一主机机器托管时)或在不同NVD上执行(例如,当源和目的地计算实例由连接到不同NVD的不同主机机器托管时)。
如果用于分组的目的地在源计算实例的VCN外部,那么源自源计算实例的分组从托管源计算实例的主机机器传送到连接到该主机机器的NVD。NVD执行与源计算实例相关联的VNIC。由于分组的目的地端点在VCN外部,因此分组随后由该VCN的VCN VR处理。NVD调用VCN VR功能,这可能导致分组被转发到执行与VCN相关联的适当网关的NVD。例如,如果目的地是客户的本地部署网络内的端点,那么分组可以由VCN VR转发到执行为VCN配置的DRG网关的NVD。VCN VR可以在与执行与源计算实例相关联的VNIC的NVD相同的NVD上执行,或者由不同的NVD执行。网关可以由NVD执行,NVD可以是smartNIC、主机机器或其它NVD实施方式。然后,分组由网关处理并转发到下一跳,该下一跳促进将分组传送到其预期的目的地端点。例如,在图16中描绘的实施例中,源自计算实例1668的分组可以通过链路1620(使用NIC1632)从主机机器1602传送到NVD 1610。在NVD 1610上,调用VNIC 1676,因为它是与源计算实例1668相关联的VNIC。VNIC 1676被配置为检查分组中封装的信息,并确定用于转发分组的下一跳,目的是促进将分组传送到其预期的目的地端点,然后将分组转发到确定的下一跳。
部署在VCN上的计算实例可以与各种不同端点通信。这些端点可以包括由CSPI1600托管的端点和CSPI 1600外部的端点。由CSPI 1600托管的端点可以包括同一VCN或其它VCN中的实例,这些VCN可以是客户的VCN,或者是不属于客户的VCN。由CSPI 1600托管的端点之间的通信可以通过物理网络1618执行。计算实例还可以与不由CSPI 1600托管的端点或在CSPI 1600外部的端点进行通信。这些端点的示例包括客户的本地部署网络或数据中心内的端点,或者通过公共网络(诸如互联网)可访问的公共端点。与CSPI 1600外部的端点的通信可以使用各种通信协议通过公共网络(例如,互联网)(图16中未示出)或私有网络(图16中未示出)来执行。
图16中描绘的CSPI 1600的体系架构仅仅是示例并且不旨在限制。在替代实施例中,变化、替代方案和修改是可能的。例如,在一些实施方式中,CSPI 1600可以具有比图16中所示的系统或组件更多或更少的系统或组件,可以组合两个或更多个系统,或者可以具有不同的系统配置或布置。图16中描绘的系统、子系统和其它组件可以在由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)中实现、使用硬件实现、或根据其组合实现。软件可以存储在非暂态存储介质上(例如,存储器设备上)。
图18描绘了根据某些实施例的主机机器和NVD之间的连接,用于提供I/O虚拟化以支持多租赁。如图18中所描绘的,主机机器1802执行提供虚拟化环境的管理程序1804。主机机器1802执行两个虚拟机实例:属于客户/租户#1的VM1 1806和属于客户/租户#2的VM21808。主机机器1802包括经由链路1814连接到NVD 1812的物理NIC 1810。每个计算实例都附接到由NVD 1812执行的VNIC。在图18中的实施例中,VM1 1806附接到VNIC-VM1 1820并且VM2 1808附接到VNIC-VM2 1822。
如图18中所示,NIC 1810包括两个逻辑NIC:逻辑NIC A1816和逻辑NIC B 1818。每个虚拟机附接到其自己的逻辑NIC并被配置为与其自己的逻辑NIC一起工作。例如,VM11806附接到逻辑NIC A 1816并且VM2 1808附接到逻辑NIC B 1818。虽然主机机器1802仅包括由多个租户共享的一个物理NIC 1810,但由于逻辑NIC,每个租户的虚拟机都相信他们具有自己的主机机器和网卡。
在某些实施例中,每个逻辑NIC被指派有其自己的VLAN ID。因此,特定的VLAN ID被指派给用于租户#1的逻辑NIC A 1816,并且分离的VLAN ID被指派给用于租户#2的逻辑NIC B 1818。当分组从VM1 1806传送时,由管理程序将指派给租户#1的标记(tag)附接到分组,然后分组通过链路1814从主机机器1802传送到NVD 1812。以类似的方式,当分组从VM21808被传送时,指派给租户#2的标记由管理程序附接到分组,然后分组通过链路1814从主机机器1802传送到NVD 1812。因而,从主机机器1802传送到NVD 1812的分组1824具有识别特定租户和相关联的VM的相关联的标记1826。在NVD上,对于从主机机器1802接收到的分组1824,与该分组相关联的标记1826被用于确定分组是由VNIC-VM1 1820还是由VNIC-VM21822处理。分组随后由对应的VNIC处理。图18中描述的配置使每个租户的计算实例能够相信他们拥有其自己的主机机器和NIC。图18中描述的设置提供了I/O虚拟化以支持多租赁。
图19描绘了根据某些实施例的物理网络1900的简化框图。图19中描绘的实施例被结构化为Clos网络。Clos网络是特定类型的网络拓扑,其被设计为提供连接冗余性,同时维持高对分带宽和最大资源利用率。Clos网络是一种无阻塞、多级或多层交换网络,其中级数或层数可以是二、三、四、五等。图19中描绘的实施例是3层网络,包括层1、层2和层3。TOR交换机1904表示Clos网络中的层0交换机。一个或多个NVD连接到TOR交换机。层0交换机也被称为物理网络的边缘设备。层0交换机连接到也称为叶交换机的层1交换机。在图19中描绘的实施例中,“n”个层0TOR交换机的集合连接到“n”个层1交换机的集合并且一起形成群聚(pod)。群聚中的每个层0交换机都互连到该群聚中的所有层1交换机,但群聚之间没有交换机的连接性。在某些实施方式中,两个群聚被称为块。每个块由“n”个层2交换机(有时称为主干交换机)的集合提供服务或连接到该交换机的集合。物理网络拓扑中可以存在若干个块。层2交换机进而连接到“n”个层3交换机(有时称为超级主干交换机)。物理网络1900之上的分组的通信通常使用一种或多种层3通信协议来执行。通常,物理网络的所有层(TOR层除外)都是n向冗余的,因此允许高可用性。可以为群聚和块指定策略,以控制交换机在物理网络中彼此的可见性,从而启用物理网络的扩展(scale)。
Clos网络的特征是从一个层0交换机到达另一个层0交换机(或从连接到层0交换机的NVD到达连接到层0交换机的另一个NVD)的最大跳数是固定的。例如,在3层Clos网络中,分组从一个NVD到达另一个NVD最多需要七跳,其中源和目标NVD连接到Clos网络的叶层。同样,在4层Clos网络中,分组从一个NVD到达另一个NVD最多需要九跳,其中源和目标NVD连接到Clos网络的叶层。因此,Clos网络体系架构在整个网络中维持一致的时延,这对于数据中心内部和数据中心之间的通信是重要的。Clos拓扑在水平上伸缩并且具有成本效益。通过在各个层添加更多交换机(例如,更多叶交换机和骨干交换机)以及通过增加相邻层的交换机之间的链路数量,可以轻松增加网络的带宽/吞吐量容量。
在某些实施例中,CSPI内的每个资源都被指派唯一标识符(称为云标识符(CID))。这个标识符作为资源的信息的一部分包括在内并且可以用于(例如经由控制台或通过API)管理资源。用于CID的示例语法是:
ocid1.<RESOURCE TYPE>.<REALM>.[REGION][.FUTURE USE].<UNIQUE ID>
其中,
ocid1:指示CID的版本的文字串;
resource type:资源的类型(例如,实例、卷、VCN、子网、用户、组等);
realm:资源所在的领域。示例值为用于商业领域的“c1”、用于政府云领域的“c2”、或者用于联邦政府云领域的“c3”等。每个领域可以有其自己的域名;
region:资源所在的地区。如果该地区不适用于该资源,那么这个部分可能为空;
future use:保留以备将来使用。
Unique ID:ID的唯一部分。格式可以因资源或服务的类型而异。
虽然已经描述了本公开的具体实施例,但是各种修改、变更、替代构造和等效形式也包含在本公开的范围内。本公开的实施例不限于在某些特定数据处理环境内操作,而是可以在多个数据处理环境内自由操作。此外,虽然已经使用特定系列的事务和步骤描述了本公开的实施例,但是本领域技术人员应该清楚本公开的范围不限于所描述系列的事务和步骤。上述实施例的各种特征和方面可以单独或联合使用。
另外,虽然已经使用硬件和软件的特定组合描述了本公开的实施例,但是应当认识到硬件和软件的其它组合也在本公开的范围内。本公开的实施例可以仅用硬件、或仅用软件、或使用它们的组合来实现。本文描述的各种处理可以以任何组合在相同的处理器或在不同的处理器上实现。相应地,在组件或模块被描述为被配置为执行某些操作的情况下,可以通过例如设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作,或其任何组合来完成这样的配置。处理可以使用多种技术进行通信,包括但不限于用于处理间通信的常规技术,并且不同的处理对可以使用不同的技术,或者同一对处理可以在不同时间使用不同的技术。
相应地,说明书和附图被认为是说明性的而不是限制性的。但是,显然可以对其进行添加、减少、删除和其它修改和改变而不背离权利要求中阐述的更广泛的精神和范围。因此,虽然已经描述了具体的公开实施例,但这些并不旨在进行限制。各种修改和等效形式都在以下权利要求的范围内。
在描述所公开的实施例的上下文中(尤其在以下权利要求的上下文中)使用术语“一”和“一个”和“该”以及类似的指称要被解释为涵盖单数和复数,除非本文另有指示或与上下文明显矛盾。除非另有说明,否则术语“包括”、“具有”、“包含(including)”和“包含(containing)”要被解释为开放式术语(即,意思是“包括但不限于”)。术语“连接”应被解释为部分或全部包含在、附加到或连接在一起,即使中间存在一些东西。除非本文另有指示,否则本文中值范围的列举仅旨在用作个别引用落入该范围内的每个单独值的速记方法,并且每个单独值被并入说明书中,就好像它在本文中个别列举一样。除非本文另有指示或与上下文明显矛盾,否则本文所述的所有方法都可以以任何合适的顺序执行。本文提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地阐明本公开的实施例并且不对本公开的范围构成限制,除非另有声明。说明书中的任何语言都不应被解释为指示任何未要求保护的元素对于本公开的实践是必不可少的。
析取语言,诸如短语“X、Y或Z中的至少一个”,除非另有明确说明,否则旨在在一般用于表示项目、术语等的上下文中理解,可以是X、Y或Z,或它们的任何组合(例如,X、Y和/或Z)。因此,这种析取语言通常不旨在也不应暗示某些实施例需要X中的至少一个、Y中的至少一个或Z中的至少一个各自存在。
本文描述了本公开的优选实施例,包括已知用于实施本公开的最佳模式。那些优选实施例的变型对于本领域普通技术人员在阅读上述描述后会变得显而易见。普通技术人员应该能够适当地采用这样的变型并且可以以不同于本文具体描述的方式来实践本公开。相应地,本公开包括在适用法律允许的情况下对所附权利要求中记载的主题的所有修改和等效形式。此外,除非在本文中另有指示,否则本公开包括在其所有可能的变化中的上述元素的任何组合。
本文引用的所有参考文献,包括出版物、专利申请和专利,均以相同的程度通过引用并入本文,就好像每个参考文献个别且具体地指示通过引用并入并在本文中全文阐述一样。
在前述的说明书中,本公开的各方面参考其具体实施例进行了描述,但本领域技术人员将认识到的是,本公开不限于此。上述公开的各个特征和方面可以被单独或联合使用。此外,在不脱离本说明书的更广泛精神和范围的情况下,实施例可以在除本文所述的那些之外的任何数量的环境和应用中被使用。相应地,本说明书和附图应当被认为是说明性而不是限制性的。

Claims (20)

1.一种系统包括:
网络头端设备,其中网络头端设备被配置为:
接收由客户供给的第一密钥;
接收从所述客户的设备发送的第一数据分组;以及
使用第一密钥解密第一数据分组以获得信息;以及
网络虚拟化设备,其中网络虚拟化设备被配置为:
在第一数据分组被解密之后,接收来自所述网络头端设备的所述信息;
确定所述信息要被发送到虚拟云网络中的虚拟机;
确定所述虚拟云网络中的数据被配置为要被加密;
用第二密钥加密所述信息以生成第二数据分组;以及
将第二数据分组路由到所述虚拟机。
2.如权利要求1所述的系统,其中所述系统由主机维护,并且所述主机无权访问第一密钥或第二密钥。
3.如权利要求1或2中的任一项所述的系统,其中,所述网络头端设备被配置作为在所述网络头端设备和客户设备之间形成的互联网协议安全性(IPSec)隧道的终止点。
4.如权利要求1至3中的任一项所述的系统,其中,第一数据分组被路由通过公共互联网。
5.如权利要求1至3中的任一项所述的系统,其中,第一数据分组被路由通过一组私有链路,而不使用公共互联网中的链路。
6.如权利要求1至5中的任一项所述的系统,其中,所述网络虚拟化设备支持所述虚拟云网络中的所述虚拟机的实例。
7.如权利要求1至6中的任一项所述的系统,其中,所述网络头端设备是网络接口卡。
8.如权利要求1至6中的任一项所述的系统,其中,所述网络头端设备在网络接口卡上并且所述网络虚拟化设备是所述网络接口卡的一部分。
9.如权利要求1至6中的任一项所述的系统,其中,所述网络头端设备和所述网络虚拟化设备在同一服务器中。
10.如权利要求1至6中的任一项所述的系统,其中,所述网络头端设备专用于客户,使得主机的其他客户不会使用所述网络头端设备。
11.如权利要求1至10中的任一项所述的系统,其中,所述网络虚拟化设备与密钥管理服务通信以获得第二密钥。
12.如权利要求1至11中的任一项所述的系统,其中,所述客户使用密钥管理服务在所述网络头端设备中供给第一密钥。
13.如权利要求1至12中的任一项所述的系统,其中,所述网络头端设备是第一网络头端设备并且所述系统还包括第二网络头端设备,第二网络头端设备被配置为解密来自所述客户的数据。
14.如权利要求1至13中的任一项所述的系统,其中:
所述网络虚拟化设备是第一网络虚拟化设备;
所述虚拟云网络是第一虚拟云网络;
所述系统还包括第二网络虚拟化设备;并且
第二网络虚拟化设备被配置为接收来自所述网络头端设备的数据并使用第三密钥为第二虚拟云网络加密从所述网络头端设备接收的所述数据。
15.如权利要求14所述的系统,其中,第一网络虚拟化设备和第二网络虚拟化设备是同一网络接口卡的部分。
16.如权利要求1至15中的任一项所述的系统,其中,所述网络头端设备被配置为在主机认证所述客户之后从所述客户接收第一密钥。
17.一种方法,包括:
使用网络头端设备接收由客户供给的第一密钥;
在所述网络头端设备处接收从所述客户的设备发送的第一数据分组;
使用第一密钥解密第一数据分组以获得信息;
使用网络虚拟化设备接收来自所述网络头端设备的所述信息;
确定所述信息要被发送到虚拟云网络中的虚拟机;
使用第二密钥使用所述网络虚拟化设备对所述信息进行加密,以生成第二数据分组;以及
将第二数据分组路由到所述虚拟机。
18.如权利要求17所述的方法,其中,所述方法包括:在使用第二密钥加密所述信息之前,确定所述虚拟云网络中的数据被配置为要被加密。
19.一种非暂态计算机可读存储器,存储能够由一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行处理的指令,所述处理包括:
使用网络头端设备接收由客户供给的第一密钥;
在所述网络头端设备处接收从所述客户的设备发送的第一数据分组;
使用第一密钥解密第一数据分组以获得信息;
使用网络虚拟化设备接收来自所述网络头端设备的所述信息;
确定所述信息要被发送到虚拟云网络中的虚拟机;
使用第二密钥使用所述网络虚拟化设备对所述信息进行加密,以生成第二数据分组;以及
将第二数据分组路由到所述虚拟机。
20.如权利要求19所述的非暂态计算机可读存储器,其中,所述多个指令还包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行包括以下处理的指令:通过公共互联网接收第一数据分组。
CN202180092566.XA 2020-12-23 2021-12-16 使用客户管理的密钥从客户本地部署网络到客户虚拟云网络的端到端网络加密 Pending CN116897338A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/133,523 US11848918B2 (en) 2020-12-23 2020-12-23 End-to-end network encryption from customer on-premise network to customer virtual cloud network using customer-managed keys
US17/133,523 2020-12-23
PCT/US2021/063715 WO2022140143A1 (en) 2020-12-23 2021-12-16 End-to-end network encryption from customer on-premise network to customer virtual cloud network using customer-managed keys

Publications (1)

Publication Number Publication Date
CN116897338A true CN116897338A (zh) 2023-10-17

Family

ID=80112338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180092566.XA Pending CN116897338A (zh) 2020-12-23 2021-12-16 使用客户管理的密钥从客户本地部署网络到客户虚拟云网络的端到端网络加密

Country Status (5)

Country Link
US (2) US11848918B2 (zh)
EP (1) EP4268072A1 (zh)
JP (1) JP2024504007A (zh)
CN (1) CN116897338A (zh)
WO (1) WO2022140143A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117407864A (zh) * 2023-12-13 2024-01-16 苏州元脑智能科技有限公司 一种可信域扩展方法、系统、装置、设备及计算机介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220286429A1 (en) * 2021-03-08 2022-09-08 Zscaler, Inc. Cloud-based 5G security network architectures with secure edge steering
US11853100B2 (en) * 2021-04-12 2023-12-26 EMC IP Holding Company LLC Automated delivery of cloud native application updates using one or more user-connection gateways
WO2024073113A1 (en) * 2022-09-30 2024-04-04 Som Sikdar System and method for creating a private service access network
CN117395084B (zh) * 2023-12-11 2024-04-09 中国联合网络通信集团有限公司 云存储资源访问方法、装置、设备及存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8923307B2 (en) 2003-07-14 2014-12-30 Broadcom Corporation Method and system for an integrated dual port gigabit ethernet controller chip
US8898452B2 (en) 2005-09-08 2014-11-25 Netapp, Inc. Protocol translation
US8503468B2 (en) 2008-11-05 2013-08-06 Fusion-Io, Inc. PCI express load sharing network interface controller cluster
US8739177B2 (en) 2010-06-21 2014-05-27 Intel Corporation Method for network interface sharing among multiple virtual machines
US8954704B2 (en) 2011-08-12 2015-02-10 International Business Machines Corporation Dynamic network adapter memory resizing and bounding for virtual function translation entry storage
US20140019745A1 (en) 2012-07-12 2014-01-16 David S. Dodgson Cryptographic isolation of virtual machines
US9197551B2 (en) * 2013-03-15 2015-11-24 International Business Machines Corporation Heterogeneous overlay network translation for domain unification
US9934057B2 (en) 2014-04-21 2018-04-03 Oracle International Corporation Shadow VNICs for the control and observability of IO virtual functions
US9979704B2 (en) * 2014-12-17 2018-05-22 Cisco Technology, Inc. End-to-end security for virtual private service chains
US9578008B2 (en) 2015-05-11 2017-02-21 Intel Corporation Technologies for secure bootstrapping of virtual network functions
US10326744B1 (en) * 2016-03-21 2019-06-18 EMC IP Holding Company LLC Security layer for containers in multi-tenant environments
US10693732B2 (en) * 2016-08-03 2020-06-23 Oracle International Corporation Transforming data based on a virtual topology
US10771439B2 (en) 2017-06-28 2020-09-08 Microsoft Technology Licensing, Llc Shielded networks for virtual machines
US10614028B2 (en) * 2017-09-14 2020-04-07 Microsoft Technology Licensing, Llc Network traffic routing in distributed computing systems
US11687654B2 (en) 2017-09-15 2023-06-27 Intel Corporation Providing isolation in virtualized systems using trust domains
US10721072B2 (en) * 2017-09-29 2020-07-21 Xilinx, Inc. Network interface device and method
US10545883B2 (en) * 2017-09-29 2020-01-28 Intel Corporation Verification bit for one-way encrypted memory
US10708247B2 (en) * 2018-09-27 2020-07-07 Intel Corporation Technologies for providing secure utilization of tenant keys
US11044238B2 (en) * 2018-10-19 2021-06-22 International Business Machines Corporation Secure communications among tenant virtual machines in a cloud networking environment
LU101362B1 (en) 2019-08-26 2021-03-12 Microsoft Technology Licensing Llc Computer device including process isolated containers with assigned virtual functions
US11934330B2 (en) * 2020-05-08 2024-03-19 Intel Corporation Memory allocation for distributed processing devices
WO2022015881A1 (en) * 2020-07-14 2022-01-20 Oracle International Corporation Virtual layer-2 network
US20220164451A1 (en) * 2020-11-23 2022-05-26 Verizon Patent And Licensing Inc. Smart network interface card-based inline secure communication service

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117407864A (zh) * 2023-12-13 2024-01-16 苏州元脑智能科技有限公司 一种可信域扩展方法、系统、装置、设备及计算机介质
CN117407864B (zh) * 2023-12-13 2024-02-27 苏州元脑智能科技有限公司 一种可信域扩展方法、系统、装置、设备及计算机介质

Also Published As

Publication number Publication date
US20220200972A1 (en) 2022-06-23
EP4268072A1 (en) 2023-11-01
JP2024504007A (ja) 2024-01-30
US20240129280A1 (en) 2024-04-18
WO2022140143A1 (en) 2022-06-30
US11848918B2 (en) 2023-12-19

Similar Documents

Publication Publication Date Title
US11856097B2 (en) Mechanism to provide customer VCN network encryption using customer-managed keys in network virtualization device
US11848918B2 (en) End-to-end network encryption from customer on-premise network to customer virtual cloud network using customer-managed keys
US11968080B2 (en) Synchronizing communication channel state information for high flow availability
US11777897B2 (en) Cloud infrastructure resources for connecting a service provider private network to a customer private network
US20230041806A1 (en) Location-independent programming data plane for packet processing
US11671355B2 (en) Packet flow control in a header of a packet
US20230109231A1 (en) Customizable network virtualization devices using multiple personalities
US20230031821A1 (en) Overlay network based techniques for enabling communication between on-premises and cloud hosted data centers
US11637770B2 (en) Invalidating cached flow information in a cloud infrastructure
US20240097973A1 (en) Secure bi-directional network connectivity system between private networks
US20230396579A1 (en) Cloud infrastructure resources for connecting a service provider private network to a customer private network
US20230246956A1 (en) Invalidating cached flow information in a cloud infrastructure
US20230133380A1 (en) Transparent mounting of external endpoints between private networks
CN116746136A (zh) 同步通信信道状态信息以实现高流量可用性
KR20240099366A (ko) 사설 네트워크들 사이의 보안 양방향 네트워크 연결성 시스템
KR20240100378A (ko) 사설 네트워크들 사이의 외부 엔드포인트들의 투명 마운팅
WO2024039520A1 (en) Dual top-of-rack switch implementation for dedicated region cloud at customer
CN116897527A (zh) 用于将服务提供商私有网络连接到客户私有网络的云基础设施资源
WO2024039519A1 (en) Multiple top-of-rack (tor) switches connected to a network virtualization device
WO2024039522A1 (en) Network architecture for dedicated region cloud at customer
CN116848827A (zh) 使云基础设施中高速缓存的流信息失效

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