JP2023535149A - Vlanスイッチングおよびルーティングサービスのためのシステムおよび方法 - Google Patents

Vlanスイッチングおよびルーティングサービスのためのシステムおよび方法 Download PDF

Info

Publication number
JP2023535149A
JP2023535149A JP2023502767A JP2023502767A JP2023535149A JP 2023535149 A JP2023535149 A JP 2023535149A JP 2023502767 A JP2023502767 A JP 2023502767A JP 2023502767 A JP2023502767 A JP 2023502767A JP 2023535149 A JP2023535149 A JP 2023535149A
Authority
JP
Japan
Prior art keywords
network
packet
vsrs
instance
destination
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
JP2023502767A
Other languages
English (en)
Inventor
ブラール,ジャグウィンダー・シング
クレーガー-スティクルズ,ルーカス・マイケル
ベイカー,シェーン
ボックマン,ブライス・ユージーン
ジョーンズ,ピーター・クロフト
Original Assignee
オラクル・インターナショナル・コーポレイション
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 オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2023535149A publication Critical patent/JP2023535149A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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]
    • 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
    • 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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based 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/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/18End to end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • 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/166Implementing security features at a particular protocol layer at the transport layer
    • 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
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

本明細書は、VLANスイッチングおよびルーティングサービス(VSRS)を実行するためのシステムおよび方法を開示する。この方法は、VSRSのインスタンスのためのテーブルを生成することを含むことができ、VSRSは、第1の仮想レイヤ2ネットワーク(VLAN)を第2のネットワークに接続する。テーブルは、仮想レイヤ2ネットワーク内のインスタンスのIPアドレス、MACアドレス、および仮想インターフェイス識別子を特定するための情報を含むことができる。この方法は、VSRSを用いて、仮想レイヤ2ネットワーク内の第1のインスタンスから第2のインスタンスに配信されるパケットを受信することと、VSRSを用いて、パケットと共に受信した情報およびテーブルに含まれた情報に基づいて、パケットを配信するための仮想レイヤ2ネットワーク内の第2のインスタンスを特定することと、特定された第2のインスタンスにパケットを配信することとを含むことができる。

Description

関連出願の相互参照
本願は、以下の出願、すなわち、(1)2020年7月14日に出願され、「仮想クラウド環境におけるVLANスイッチングおよびルーティングサービスならびにレイヤ2仮想ネットワーキング」と題される米国仮出願第63/051728号、および(2)2020年12月30日に出願され、「仮想クラウド環境におけるレイヤ2仮想ネットワーキング」と題される米国仮出願第63/132377号の優先権を主張している。上記で言及した仮出願の全ての内容は、あらゆる目的で参照により本開示に組み込まれる。
また、本願は、2021年7月14日に出願され、「仮想レイヤ2ネットワーク」と題される米国出願第17/375999号(代理人整理番号088325-1203134-276500US)、および2021年7月14日に出願され、「レイヤ2ネットワーク内のインターフェイスベースのACL」と題される米国出願第17/376004号(代理人整理番号088325-1256549-276520US)に関連しており、各々の関連する出願の全ての内容は、あらゆる目的で参照により本開示に組み込まれる。
背景
クラウドコンピューティングは、コンピューティングリソースのオンデマンド利用可能性を提供する。クラウドコンピューティングは、ユーザがインターネットを介して利用可能なデータセンタに基づくことができる。クラウドコンピューティングは、IaaS(Infrastructure as a Service)を提供することができる。仮想ネットワークは、ユーザによる使用のために作成されてもよい。しかしながら、これらの仮想ネットワークは、その機能性および価値を制限するような限界がある。したがって、さらなる改善が望まれる。
概要
本開示の一態様は、コンピュータ実装方法に関する。この方法は、仮想化クラウド環境において、基礎物理ネットワークによってホストされている仮想レイヤ3ネットワークを提供することと、仮想化クラウド環境において、基礎物理ネットワークによってホストされている仮想レイヤ2ネットワークを提供することとを含む。
いくつかの実施形態において、仮想レイヤ2ネットワークは、仮想ローカルエリアネットワーク(VLAN)であってもよい。いくつかの実施形態において、VLANは、複数のエンドポイントを含む。いくつかの実施形態において、複数のエンドポイントは、複数の計算インスタンスであってもよい。いくつかの実施形態において、VLANは、複数のL2仮想ネットワークインターフェイスカード(L2VNIC)と、複数のスイッチとを含む。
いくつかの実施形態において、複数の計算インスタンスの各々は、固有のL2仮想ネットワークインターフェイスカード(L2VNIC)と固有のスイッチとを含むペアに通信可能に接続されている。いくつかの実施形態において、複数のスイッチは共に、分散スイッチを形成することができる。いくつかの実施形態において、複数のスイッチの各々は、スイッチとペアリングされたL2VNICから受信したマッピングテーブルに従って、アウトバウンドトラフィックをルーティングする。いくつかの実施形態において、マッピングテーブルは、VLAN内のエンドポイントのインターフェイス対MACアドレスマッピングを特定する。
いくつかの実施形態において、方法は、固有のL2VNICと固有のスイッチとを含むペアをネットワーク仮想化装置(NVD)上でインスタンス化することをさらに含む。いくつかの実施形態において、方法は、複数の計算インスタンスのうちの1つの固有のL2VNIC上で、VLAN内の別のエンドポイントから、複数の計算インスタンスのうちの1つにアドレス指定されたパケットを受信することと、複数の計算インスタンスのうちの1つの固有のL2VNICを用いて、別のエンドポイントのマッピングを学習することとを含む。いくつかの実施形態において、別のエンドポイントのマッピングは、別のエンドポイントのインターフェイス対MACアドレスマッピングを含む。
いくつかの実施形態において、方法は、複数の計算インスタンスのうちの1つの固有のL2VNICを用いて、受信したパケットをデカプセル化することと、デカプセル化されたパケットを複数の計算インスタンスのうちの1つに転送することとを含む。いくつかの実施形態において、方法は、複数の計算インスタンスのうちの1つを用いて、別のエンドポイントのIPアドレス対MACアドレスマッピングを学習することを含む。
いくつかの実施形態において、方法は、VLAN内の第1の計算インスタンスから、VLAN内の第2の計算インスタンスの宛先IPアドレスを含むIPパケットを送信することと、第1の計算インスタンスに関連する第1のL2VNIC上でIPパケットを受信することと、第1のL2VNIC上でIPパケットをカプセル化することと、第1のスイッチを介してIPパケットを第2の計算インスタンスに転送することとを含む。いくつかの実施形態において、第1のスイッチおよび第1のL2VNICは、ペアで第1の計算インスタンスに通信可能に接続される。いくつかの実施形態において、方法は、第2の計算インスタンスに関連する第2のVNIC上でIPパケットを受信することと、第2のVNIC上でIPパケットをデカプセル化することと、IPパケットを第2のVNICから第2の計算インスタンスに転送することとをさらに含む。
いくつかの実施形態において、仮想レイヤ2ネットワークは、複数の仮想ローカルエリアネットワーク(VLAN)を含む。いくつかの実施形態において、複数のVLANの各々は、複数のエンドポイントを含む。いくつかの実施形態において、複数のVLANは、第1のVLANおよび第2のVLANを含む。いくつかの実施形態において、第1のVLANは、複数の第1のエンドポイントを含み、第2のVLANは、複数の第2のエンドポイントを含む。いくつかの実施形態において、複数のVLANの各々は、固有の識別子を有する。いくつかの実施形態において、第1のVLAN内の複数の第1のエンドポイントのうちの1つは、第2のVLAN内の複数の第2のエンドポイントのうちの1つと通信する。
本開示の一態様は、物理ネットワークを含むシステムに関する。物理ネットワークは、少なくとも1つのホストマシンと、少なくとも1つのネットワーク仮想化装置とを含む。物理ネットワークは、仮想化クラウド環境において、基礎物理ネットワークによってホストされている仮想レイヤ3ネットワークを提供することができ、仮想化クラウド環境において、基礎物理ネットワークによってホストされている仮想レイヤ2ネットワークを提供することができる。
本開示の一態様は、1つ以上のプロセッサによって実行可能な複数の命令を記憶する非一時的なコンピュータ可読記憶媒体に関する。複数の命令は、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、仮想化クラウド環境において、基礎物理ネットワークによってホストされている仮想レイヤ3ネットワークを提供させ、仮想化クラウド環境において、基礎物理ネットワークによってホストされている仮想レイヤ2ネットワークを提供させる。
本開示の一態様は、VLANスイッチングおよびルーティングサービス(VSRS)のインスタンスのためのテーブルを生成することを含む方法に関し、VSRSは、第1の仮想レイヤ2ネットワークを第2のネットワークに接続する。いくつかの実施形態において、テーブルは、第1の仮想レイヤ2ネットワーク内のインスタンスのIPアドレス、MACアドレス、および仮想インターフェイス識別子を特定するための情報を含む。この方法は、VSRSを用いて、仮想レイヤ2ネットワーク内の第1のインスタンスから第2のインスタンスに配信されるパケットを受信することと、VSRSを用いて、パケットと共に受信した情報およびテーブルに含まれた情報に基づいて、パケットを配信するための仮想レイヤ2ネットワーク内の第2のインスタンスを特定することと、特定された第2のインスタンスにパケットを配信することとを含む。
いくつかの実施形態において、第1の仮想レイヤ2ネットワークは、複数のインスタンスを含む。いくつかの実施形態において、第1の仮想レイヤ2ネットワークは、複数のL2仮想ネットワークインターフェイスカード(L2VNIC)と、複数のスイッチとを含む。いくつかの実施形態において、複数のインスタンスの各々は、固有のL2仮想ネットワークインターフェイスカード(L2VNIC)と固有のスイッチとを含むペアに通信可能に接続されている。
いくつかの実施形態において、VSRSを用いて、パケットと共に受信した情報およびテーブルに含まれた情報に基づいて、パケットを配信するための第1の仮想レイヤ2ネットワーク内の第2のインスタンスを特定することは、VSRSを用いて、テーブルが第2のインスタンスのマッピング情報を含まないと判断することと、VSRSによるパケットの配信を保留することと、VSRSを用いて、ARP要求を第1の仮想レイヤ2ネットワーク内のVNICにブロードキャストすることとを含み、ARP要求は、第2のインスタンスのIPアドレスを含み、VSRSを用いて、第2のインスタンスのL2VNICからARP応答を受信することを含む。
いくつかの実施形態において、方法は、受信したARP応答に基づいて、テーブルを更新することをさらに含む。いくつかの実施形態において、第1のインスタンスは、第1の仮想レイヤ2ネットワークの外部に配置され、第2のネットワークの内部に配置される。いくつかの実施形態において、第2のネットワークは、L3ネットワークであってもよい。いくつかの実施形態において、第2のネットワークは、第2の仮想レイヤ2ネットワークであってもよい。いくつかの実施形態において、テーブルは、VSRSによって受信された情報に基づいて生成される。
いくつかの実施形態において、方法は、VSRSを複数のハードウェアノード上のサービスとしてインスタンス化することを含む。いくつかの実施形態において、方法は、ハードウェアノードの間にテーブルを配布することを含む。いくつかの実施形態において、ハードウェアノードの間に配布されたテーブルは、別のVSRSインスタンス化によって利用可能である。いくつかの実施形態において、第1のインスタンスは、第1の仮想レイヤ2ネットワークの内部にある。
いくつかの実施形態において、方法は、VSRSを用いて、第1の仮想レイヤ2ネットワーク内の第3のインスタンスからパケットを受信することを含む。いくつかの実施形態において、パケットは、第1の仮想レイヤ2ネットワークの外部の第4のインスタンスに配信される。いくつかの実施形態において、方法は、VSRSを用いて、第1の仮想レイヤ2ネットワーク内の第3のインスタンスからパケットを受信することを含む。いくつかの実施形態において、パケットは、第1の仮想レイヤ2ネットワーク内の第3のインスタンスによって使用されるサービスに配信される。いくつかの実施形態において、サービスは、DHCP、NTP、およびDNSのうちの少なくとも1つであってもよい。
いくつかの実施形態において、方法は、VSRSを用いて、第1の仮想レイヤ2ネットワーク内の第3のインスタンスからパケットを受信することを含む。いくつかの実施形態において、パケットは、第2の仮想レイヤ2ネットワーク内の第4のインスタンスに配信される。いくつかの実施形態において、この方法は、高い信頼性および高い拡張性のVSRSインスタンス化を提供するために、レイヤ2およびレイヤ3ネットワーク情報を有するVSRSのインスタンスのためのテーブルを複数のサービスノードにわたって配布することをさらに含む。いくつかの実施形態において、方法は、VSRSを用いて、第1の仮想レイヤ2ネットワーク内の第3のインスタンスからパケットを受信することと、VSRSを用いて、第3のインスタンスのマッピングを学習することとを含む。
本開示の一態様は、システムに関する。システムは、物理ネットワークを含む。物理ネットワークは、少なくとも1つのプロセッサと、ネットワーク仮想化装置とを含む。少なくとも1つのプロセッサは、VLANスイッチングおよびルーティングサービス(VSRS)のインスタンスをインスタンス化することができ、このVSRSは、第1の仮想レイヤ2ネットワークを第2のネットワークに接続し、少なくとも1つのプロセッサは、VSRSのインスタンスのためのテーブルを生成することができる。いくつかの実施形態において、テーブルは、第1の仮想レイヤ2ネットワーク内のインスタンスのIPアドレス、MACアドレス、および仮想インターフェイス識別子を特定するための情報を含む。少なくとも1つのプロセッサは、VSRSを用いて、仮想レイヤ2ネットワーク内の第1のインスタンスから第2のインスタンスに配信されるパケットを受信し、VSRSを用いて、パケットと共に受信した情報およびテーブルに含まれた情報に基づいて、パケットの配信のために第1の仮想レイヤ2ネットワーク内の第2のインスタンスを特定し、特定された第2のインスタンスにパケットを配信することができる。
本開示の一態様は、1つ以上のプロセッサによって実行可能な複数の命令を記憶するコンピュータ可読記憶媒体に関する。複数の命令は、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、VLANスイッチングおよびルーティングサービス(VSRS)のインスタンスをインスタンス化させ、VSRSは、第1の仮想レイヤ2ネットワークを第2のネットワークに接続し、VSRSのインスタンスのためのテーブルを生成させる。いくつかの実施形態において、テーブルは、第1の仮想レイヤ2ネットワーク内のインスタンスのIPアドレス、MACアドレス、および仮想インターフェイス識別子を特定するための情報を含む。複数の命令は、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、VSRSを用いて、仮想レイヤ2ネットワーク内の第1のインスタンスから第2のインスタンスに配信されるパケットを受信させ、パケットと共に受信した情報およびテーブルに含まれた情報に基づいて、パケットを配信するための仮想レイヤ2ネットワーク内の第2のインスタンスを特定させ、特定された第2のインスタンスに当該パケットを配信させる。
本開示の一態様は、方法に関する。この方法は、第1の仮想レイヤ2ネットワーク内の宛先L2仮想ネットワークインターフェイスカード(宛先L2VNIC)を介して、仮想ネットワーク内のソース計算インスタンスから宛先計算インスタンスにパケットを送信することと、ソース仮想ネットワークインターフェイスカード(ソースVNIC)を用いてパケットのアクセス制御リスト(ACL)を評価することと、パケットに関連するACL情報をパケットに埋め込むことと、第1の仮想レイヤ2ネットワーク(VLAN)を第2のネットワークに接続するための仮想スイッチングおよびルーティングサービス(VSRS)にカプセル化されたパケットを転送することと、VSRSを用いて、パケットと共に受信した情報およびマッピングテーブルに含まれたマッピング情報に基づいて、パケットを配信するための第1の仮想レイヤ2ネットワーク内の宛先L2VNICを特定することと、VSRSを用いて、パケットからACL情報を入手することと、入手したACL情報をパケットに適用することとを含む。
いくつかの実施形態において、パケットは、IPパケットを含む。いくつかの実施形態において、ソース計算インスタンスは、仮想L3ネットワークに配置される。いくつかの実施形態において、ソース計算インスタンスは、第2の仮想レイヤ2ネットワークに配置される。
いくつかの実施形態において、方法は、ソースVNICを用いて、パケットをカプセル化することを含む。いくつかの実施形態において、方法は、VSRSを用いて、パケットを受信およびデカプセル化することを含む。いくつかの実施形態において、VSRSを用いて、パケットと共に受信した情報およびマッピングテーブルに含まれたマッピング情報に基づいて、パケットを配信するための第1の仮想レイヤ2ネットワーク内の宛先L2VNICを特定することは、VSRSを用いて、マッピングテーブルが宛先計算インスタンスのマッピング情報を含まないと判断することと、VSRSを用いて、パケットの転送を保留することと、VSRSを用いて、宛先計算インスタンスのIPアドレスを含むARP要求を第1の仮想レイヤ2ネットワーク内のL2VNICにブロードキャストすることと、VSRSを用いて、宛先計算インスタンスのL2VNICからARP応答を受信することとを含む。いくつかの実施形態において、L2VNICのうちの1つは、宛先計算インスタンスのL2VNICである。
いくつかの実施形態において、方法は、受信したARP応答に基づいてテーブルを更新することを含む。いくつかの実施形態において、VSRSを用いて、パケットと共に受信した情報およびマッピングテーブルに含まれたマッピング情報に基づいて、パケットを配信するための第1の仮想レイヤ2ネットワーク内の宛先L2VNICを特定することは、マッピングテーブルが宛先計算インスタンスのマッピング情報を含むことを判断することと、マッピングテーブルに含まれたマッピング情報に基づいて宛先L2VNICを特定することとを含む。いくつかの実施形態において、パケットに関連するACL情報をパケットに埋め込むことは、ACL情報をメタデータとしてパケットに格納することを含む。いくつかの実施形態において、VSRSを用いてパケットのACL情報を入手することは、パケット内のACL情報を含むメタデータを抽出することを含む。
いくつかの実施形態において、入手したACL情報をパケットに適用することは、ACL情報が宛先L2VNICに関連しないと判断することを含む。いくつかの実施形態において、入手したACL情報をパケットに適用することは、宛先L2VNICを介してパケットを宛先計算インスタンスに転送することをさらに含む。いくつかの実施形態において、入手したACL情報をパケットに適用することは、VSRSを用いて、ACL情報が宛先L2VNICに関連すると判断することを含む。いくつかの実施形態において、入手したACL情報をパケットに適用することは、VSRSを用いて、宛先L2VNICがACL情報に準拠すると判断することと、VSRSを用いて、宛先L2VNICを介してパケットを宛先計算インスタンスに転送することとをさらに含む。
いくつかの実施形態において、入手したACL情報をパケットに適用することは、VSRSを用いて、宛先L2VNICがACL情報に準拠しないと判断することを含み、当該VSRSはパケットを破棄する。いくつかの実施形態において、入手したACL情報をパケットに適用することは、VSRSを用いて、パケットの破棄を示す応答をソース計算インスタンスに送信することをさらに含む。
本開示の一態様は、物理ネットワークを含むシステムに関する。物理ネットワークは、少なくとも1つの第1のプロセッサと、ネットワーク仮想化装置と、少なくとも1つの第2のプロセッサとを含む。少なくとも1つのプロセッサは、物理ネットワーク上でインスタンス化された第1の仮想レイヤ2ネットワーク内の宛先L2仮想ネットワークインターフェイスカード(宛先L2VNIC)を介して、パケットを物理ネットワーク上でインスタンス化された仮想ネットワーク内のソース計算インスタンスから宛先計算インスタンスに送信することができる。ネットワーク仮想化装置は、ソースVNICをインスタンス化することができる。ソースVNICは、パケットのアクセス制御リスト(ACL)を評価し、パケットに関連するACL情報をパケットに埋め込み、パケットを仮想スイッチングおよびルーティングサービス(VSRS)に転送することができ、VSRSは、第1の仮想レイヤ2ネットワーク(VLAN)を第2のネットワークに接続する。少なくとも1つの第2のプロセッサは、VSRSをインスタンス化することができる。VSRSは、パケットと共に受信した情報およびマッピングテーブルに含まれるマッピング情報に基づいて、パケットを配信するための宛先L2VNICを特定し、パケットからACL情報を入手し、入手したACL情報をパケットに適用することができる。
いくつかの実施形態において、入手したACL情報をパケットに適用することは、ACL情報が宛先L2VNICに関連することを判断することと、宛先L2VNICがACL情報に準拠することを判断することと、VSRSを用いて、宛先L2VNICを介してパケットを宛先計算インスタンスに転送することとを含む。
本開示の一態様は、1つ以上のプロセッサによって実行可能な複数の命令を記憶するコンピュータ可読記憶媒体に関する。複数の命令は、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、第1の仮想レイヤ2ネットワーク内の宛先L2仮想ネットワークインターフェイスカード(宛先L2VNIC)を介して、パケットを仮想ネットワーク内のソース計算インスタンスから宛先計算インスタンスに送信させ、ソース仮想ネットワークインターフェイスカード(ソースVNIC)を用いて、パケットのアクセス制御リスト(ACL)を評価させ、パケットに関連するACL情報をパケットに埋め込め、第1の仮想レイヤ2ネットワーク(VLAN)を第2のネットワークに接続するための仮想スイッチングおよびルーティングサービス(VSRS)にパケットを転送させ、VSRSを用いて、パケットと共に受信した情報およびマッピングテーブルに含まれるマッピング情報に基づいて、パケットを配信するための第1の仮想レイヤ2ネットワーク内の宛先L2VNICを特定させ、VSRSを用いて、パケットからACL情報を入手させ、入手したACL情報をパケットに適用させる。
特定の実施形態に従って、クラウドサービスプロバイダインフラストラクチャによってホストされている仮想またはオーバーレイクラウドネットワークを示す分散環境のハイレベル図である。 特定の実施形態に従って、CSPI内の物理ネットワークの物理要素を示すアーキテクチャ概略図である。 特定の実施形態に従って、ホストマシンが複数のネットワーク仮想化装置(NVD)に接続されているCSPIの例示的な配置を示す図である。 特定の実施形態に従って、ホストマシンとマルチテナント機能をサポートするためのI/O仮想化を提供するNVDとの間の接続を示す図である。 特定の実施形態に従って、CSPIによって提供された物理ネットワークを示す概略ブロック図である。 コンピューティングネットワークの一実施形態を示す概略図である。 仮想ローカルエリアネットワーク(VLAN)の論理およびハードウェア概略図である。 複数の接続されたL2VLANを示す論理概略図である。 複数の接続されたL2VLANおよびサブネットを示す論理概略図である。 VLAN内のVLAN域内通信(intra-VLAN communication)および学習の一実施形態を示す概略図である。 VLAN実装の一実施形態を示す概略図である。 VLAN域内通信を行うためのプロセスの一実施形態を示すフローチャートである。 VLAN域内通信を行うためのプロセスを示す概略図である。 仮想L2ネットワーク内のVLAN間通信(inter-VLAN communication)を行うためのプロセスの一実施形態を示すフローチャートである。 VLAN間通信を行うためのプロセスを示す概略図である。 受信パケットフローを行うためのプロセスの一実施形態を示すフローチャートである。 受信通信を行うためのプロセスを示す概略図である。 VLANからの送信パケットフローを行うためのプロセスの一実施形態を示すフローチャートである。 送信パケットフローを行うためのプロセスを示す概略図である。 遅延アクセス制御リスト(ACL)分類を行うためのプロセスの一実施形態を示すフローチャートである。 ACLの早期分類を行うためのプロセスの一実施形態を示すフローチャートである。 送信者ベースのネクストホップルーティングを行うためのプロセスの一実施形態を示すフローチャートである。 遅延ネクストホップルーティングを行うためのプロセスの一実施形態を示すフローチャートである。 少なくとも1つの実施形態に従って、クラウドインフラストラクチャをサービスシステムとして実装するための1つのパターンを示すブロック図である。 少なくとも1つの実施形態に従って、サービスシステムとしてクラウドインフラストラクチャを実装するための別のパターンを示すブロック図である。 少なくとも1つの実施形態に従って、クラウドインフラストラクチャをサービスシステムとして実装するための別のパターンを示すブロック図である。 少なくとも1つの実施形態に従って、クラウドインフラストラクチャをサービスシステムとして実装するための別のパターンを示すブロック図である。 少なくとも1つの実施形態に従って、例示的なコンピュータシステムを示すブロック図である。
詳細な説明
以下の説明において、説明の目的で、特定の詳細が特定の実施形態の完全な理解を提供するために記載される。しかしながら、様々な実施形態がこれらの具体的な詳細なしに実施され得ることは明らかであろう。図面および説明は、限定的であることを意図しない。「例示的」という用語は、本開示において、「例示、事例または図示として機能する」ことを意味するために使用される。本開示において「例示的」として記載されたいかなる実施形態または設計は、必ずしも他の実施形態または設計よりも好ましいまたは有利であると解釈されるべきではない。
仮想ネットワークアーキテクチャの例
クラウドサービスという用語は、一般的に、クラウドサービスプロバイダ(CSP)が、システムおよびインフラストラクチャ(クラウドインフラストラクチャ)を用いて、ユーザまたは顧客がオンデマンドで(例えば、サブスクリプションモデルを介して)利用できるサービスを指す。通常、CSPのインフラストラクチャを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムから離れている。したがって、顧客は、サービス用のハードウェアおよびソフトウェア資源を別途購入することなく、CSPによって提供されるクラウドサービスを利用することができる。クラウドサービスは、サービスを提供するために使用されるインフラストラクチャの調達に顧客が投資する必要がなく、アプリケーションおよび計算リソースへの容易且つ拡張可能なアクセスを加入している顧客に提供するように設計されている。
いくつかのクラウドサービスプロバイダ(CSP)は、様々な種類のクラウドサービスを提供する。クラウドサービスは、SaaS(Software-as-a-Service)、PaaS(Platform-as-a-Service)、IaaS(Infrastructure-as-a-Service)などの様々な異なる種類またはモデルを含む。
顧客は、CSPによって提供される1つ以上のクラウドサービスに加入することができる。顧客は、個人、組織、企業などの任意のエンティティであってもよい。顧客がCSPによって提供されるサービスに加入または登録すると、その顧客のテナントまたはアカウントが作成される。その後、顧客は、このアカウントを介して、アカウントに関連する1つ以上の加入済みクラウドリソースにアクセスすることができる。
上述したように、IaaS(Infrastructure as a Service)は、1つの特定種類のクラウドコンピューティングサービスである。IaaSモデルにおいて、CSPは、顧客が自身のカスタマイズ可能なネットワークを構築し、顧客リソースを展開するために使用できるインフラストラクチャ(クラウドサービスプロバイダインフラストラクチャまたはCSPIと呼ばれる)を提供する。したがって、顧客のリソースおよびネットワークは、CSPによって提供されたインフラストラクチャによって分散環境にホストされる。これは、顧客のインフラストラクチャが顧客のリソースおよびネットワークをホストする従来のコンピューティングとは異なる。
CSPIは、基板ネットワークまたはアンダーレイネットワークとも呼ばれる物理ネットワークを形成する、様々なホストマシン、メモリリソース、およびネットワークリソースを含む相互接続された高性能の計算リソースを含んでもよい。CSPIのリソースは、1つ以上の地理的な地域にわたって地理的に分散されている1つ以上のデータセンタに分散されてもよい。仮想化ソフトウェアは、これらの物理リソースによって実行され、仮想化分散環境を提供することができる。仮想化は、物理ネットワーク上に(ソフトウェアベースネットワーク、ソフトウェア定義ネットワーク、または仮想ネットワークとも呼ばれる)オーバーレイネットワークを作成する。CSPI物理ネットワークは、物理ネットワークの上に1つ以上のオーバーレイまたは仮想ネットワークを作成するための基礎を提供する。物理ネットワーク(または基板ネットワークまたはアンダーレイネットワーク)は、物理スイッチ、ルータ、コンピュータおよびホストマシンなどの物理ネットワーク装置を含む。オーバーレイネットワークは、物理的な基板ネットワーク上で動作する論理(または仮想)ネットワークである。所定の物理ネットワークは、1つ以上のオーバーレイネットワークをサポートすることができる。オーバーレイネットワークは、典型的には、カプセル化技術を用いて、異なるオーバーレイネットワークに属するトラフィックを区別する。仮想ネットワークまたはオーバーレイネットワークは、仮想クラウドネットワーク(VCN)とも呼ばれる。仮想ネットワークは、ソフトウェア仮想化技術(例えば、ハイパーバイザ、ネットワーク仮想化装置(NVD)(例えば、スマートNIC)によって実装される仮想化機能、トップオブラック(TOR)スイッチ、NVDによって実行される1つ以上の機能を実装するスマートTOR、および他のメカニズム)を用いて実装され、物理ネットワークの上で実行できるネットワーク抽象化層を作成する。仮想ネットワークは、ピアツーピアネットワーク、IPネットワークなどの様々な形態をとることができる。仮想ネットワークは、典型的には、レイヤ3IPネットワークまたはレイヤ2VLANのいずれかである。このような仮想ネットワークまたはオーバーレイネットワークは、しばしば仮想レイヤ3ネットワークまたはオーバーレイレイヤ3ネットワークと呼ばれる。仮想ネットワークのために開発されたプロトコルの例は、IP-in-IP(またはGRE(Generic Routing Encapsulation))、仮想拡張可能LAN(VXLAN-IETF RFC7348)、仮想プライベートネットワーク(VPN)(例えば、MPLSレイヤ3仮想プライベートネットワーク(RFC4364))、VMware NSX、GENEVE(Generic Network Virtualization Encapsulation)などを含む。
IaaSの場合、CSPによって提供されたインフラストラクチャ(CSPI)は、パブリックネットワーク(例えば、インターネット)を介して仮想化計算リソースを提供するように構成されてもよい。IaaSモデルにおいて、クラウドコンピューティングサービスプロバイダは、インフラストラクチャ要素(例えば、サーバ、記憶装置、ネットワークノード(例えば、ハードウェア)、展開ソフトウェア、プラットフォーム仮想化(例えば、ハイパーバイザ層)など)をホストすることができる。場合によっては、IaaSプロバイダは、それらのインフラストラクチャ要素に付随する様々なサービス(例えば、課金、監視、ロギング、セキュリティ、負荷分散およびクラスタリングなど)を提供することができる。これらのサービスがポリシー駆動型であるため、IaaSユーザは、負荷分散を駆動するためのポリシーを実装することによって、アプリケーションの可用性および性能を維持することができる。CSPIは、インフラストラクチャおよび一連の補完的なクラウドサービスを提供する。これによって、顧客は、可用性の高いホスト型分散環境で幅広いアプリケーションおよびサービスを構築し、実行することができる。CSPIは、顧客オンプレミスネットワークなどの様々なネットワーク拠点から安全にアクセスできる柔軟な仮想ネットワーク上で高性能の計算リソースおよび能力ならびに記憶容量を提供する。顧客がCSPによって提供されたIaaSサービスに加入または登録すると、その顧客のために作成されたテナンシは、CSPIから安全に分離されたパーティションとなり、顧客は、クラウドリソースを作成、整理、管理することができる。
顧客は、CSPIによって提供された計算リソース、メモリリソース、およびネットワーキングリソースを使用して、独自の仮想ネットワークを構築することができる。これらの仮想ネットワーク上に、計算インスタンスなどの1つ以上の顧客リソースまたはワークロードを展開することができる。例えば、顧客は、CSPIによって提供されたリソースを使用して、仮想クラウドネットワーク(VCN)と呼ばれる1つ以上のカスタマイズ可能なプライベート仮想ネットワークを構築することができる。顧客は、顧客VCN上で1つ以上の顧客リソース、例えば計算インスタンスを展開することができる。計算インスタンスは、仮想マシン、ベアメタルインスタンスなどであってもよい。したがって、CSPIは、顧客が可用性の高い仮想ホスト環境において様々なアプリケーションおよびサービスを構築および実行することを可能にするインフラストラクチャおよび一連の相補的なクラウドサービスを提供する。顧客は、CSPIによって提供された基礎的な物理リソースを管理または制御しないが、オペレーティングシステム、記憶、および展開されたアプリケーションを制御し、場合によっては一部のネットワーキングコンポーネント(例えば、ファイアウォール)を限定的に制御する。
CSPは、顧客およびネットワーク管理者がCSPIリソースを使用してクラウドに展開されたリソースを構成、アクセス、および管理することを可能にするコンソールを提供することができる。特定の実施形態において、コンソールは、CSPIを利用および管理するために使用することができるウェブベースのユーザインターフェイスを提供する。いくつかの実施形態において、コンソールは、CSPによって提供されたウェブベースのアプリケーションである。
CSPIは、シングルテナンシアーキテクチャまたはマルチテナンシアーキテクチャをサポートすることができる。シングルテナンシアーキテクチャにおいて、ソフトウェア(例えば、アプリケーション、データベース)またはハードウェア要素(例えば、ホストマシンまたはサーバ)は、単一の顧客またはテナントにサービスを提供する。マルチテナンシアーキテクチャにおいて、ソフトウェアまたはハードウェア要素は、複数の顧客またはテナントにサービスを提供する。したがって、マルチテナンシアーキテクチャにおいて、CSPIリソースは、複数の顧客またはテナントの間で共有される。マルチテナンシ環境において、各テナントのデータが分離され、他のテナントから見えないようにするために、CSPIには予防措置および保護措置が講じられる。
物理ネットワークにおいて、ネットワークエンドポイント(エンドポイント)は、物理ネットワークに接続され、接続されているネットワークと双方向に通信するコンピューティング装置またはシステムを指す。物理ネットワークのネットワークエンドポイントは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、または他の種類の物理ネットワークに接続されてもよい。物理ネットワークの従来のエンドポイントの例は、モデム、ハブ、ブリッジ、スイッチ、ルータ、および他のネットワーキング装置、物理コンピュータ(またはホストマシン)などを含む。物理ネットワークの各物理装置は、当該装置と通信するために使用できる固定ネットワークアドレスを有する。この固定ネットワークアドレスは、レイヤ2アドレス(例えば、MACアドレス)、固定レイヤ3アドレス(例えば、IPアドレス)などであってもよい。仮想化環境または仮想ネットワークにおいて、エンドポイントは、物理ネットワークの要素によってホストされている(例えば、物理ホストマシンによってホストされている)仮想マシンなどの様々な仮想エンドポイントを含むことができる。仮想ネットワークのこれらのエンドポイントは、オーバーレイレイヤ2アドレス(例えば、オーバーレイMACアドレス)およびオーバーレイレイヤ3アドレス(例えば、オーバーレイIPアドレス)などのオーバーレイアドレスによってアドレス指定される。ネットワークオーバーレイは、ネットワーク管理者がソフトウェア管理を用いて(例えば、仮想ネットワークの制御プレーンを実装するソフトウェアを介して)ネットワークエンドポイントに関連付けられたオーバーレイアドレスを移動できるようにすることによって柔軟性を実現する。したがって、物理ネットワークとは異なり、仮想ネットワークにおいて、ネットワーク管理ソフトウェアを使用して、オーバーレイアドレス(例えば、オーバーレイIPアドレス)を1つのエンドポイントから別のエンドポイントに移動することができる。仮想ネットワークが物理ネットワーク上に構築されているため、仮想ネットワークおよび基礎物理ネットワークの両方は、仮想ネットワークの要素間の通信に関与する。このような通信を容易にするために、CSPIの各要素は、仮想ネットワークのオーバーレイアドレスを基板ネットワークの実際の物理アドレスにまたは基板ネットワークの実際の物理アドレスを仮想ネットワークのオーバーレイアドレスにマッピングするマッピングを学習および記憶するように構成されている。これらのマッピングは、通信を容易にするために使用される。仮想ネットワークのルーティングを容易にするために、顧客トラフィックは、カプセル化される。
したがって、物理アドレス(例えば、物理IPアドレス)は、物理ネットワークの要素に関連付けられ、オーバーレイアドレス(例えば、オーバーレイIPアドレス)は、仮想ネットワークのエンティティに関連付けられる。物理IPアドレスは、基板ネットワークまたは物理ネットワーク内の物理装置(例えば、ネットワーク装置)に関連するIPアドレスである。例えば、各NVDは、関連する物理IPアドレスを有する。オーバーレイIPアドレスは、オーバーレイネットワーク内のエンティティ、例えば顧客の仮想クラウドネットワーク(VCN)内の計算インスタンスなどに関連するオーバーレイアドレスである。各々のプライベートVCNを有する2つの異なる顧客またはテナントは、互いに知らなくても、それらのVCNにおいて同じオーバーレイIPアドレスを潜在的に使用することができる。物理IPアドレスとオーバーレイIPアドレスは、いずれも実IPアドレスである。これらは、仮想IPアドレスとは別物である。仮想IPアドレスは、典型的には、複数の実IPアドレスを表すまたは複数の実IPアドレスにマッピングされる単一のIPアドレスである。仮想IPアドレスは、仮想IPアドレスと複数の実IPアドレスとの間の1対多マッピングを提供する。例えば、ロードバランサは、VIPを用いて、複数のサーバにマッピングするまたはそれを表すことができ、各サーバは、それ自体の実際のIPアドレスを有する。
クラウドインフラストラクチャまたはCSPIは、世界中の1つ以上の地域の1つ以上のデータセンタにおいて物理的にホストされている。CSPIは、物理ネットワークまたは基板ネットワークの要素と、物理ネットワーク要素上に構築された仮想ネットワークの仮想化要素(例えば、仮想ネットワーク、計算インスタンス、仮想マシン)とを含んでもよい。特定の実施形態において、CSPIは、レルム(realm)、地域(region)、および利用可能なドメイン(domain)において編成およびホストされている。地域は、典型的には、1つ以上のデータセンタを含む局所的な地理領域である。地域は、一般的に互いに独立しており、例えば、国または大陸を跨ぐ広大な距離によって分離されてもよい。例えば、第1の地域は、オーストラリアにあってもよく、別の地域は、日本にあってもよく、さらに別の地域は、インドにあってもよい。CSPIリソースは、各地域が独立したCSPIリソースのサブセットを有するようにこれらの地域間で分割される。各地域は、一連のコアインフラストラクチャサービスおよびリソース、例えば、計算リソース(例えば、ベアメタルサーバ、仮想マシン、コンテナおよび関連インフラストラクチャ)、記憶リソース(例えば、ブロックボリューム記憶、ファイル記憶、オブジェクト記憶、アーカイブ記憶)、ネットワーキングリソース(例えば、仮想クラウドネットワーク(VCN)、負荷分散リソース、オンプレミスネットワークへの接続)、データベースリソース、エッジネットワーキングリソース(例えば、DNS)、アクセス管理、および監視リソースなどを提供することができる。各地域は、一般的に、当該地域をレルム内の他の地域に接続するための複数の経路を持つ。
一般的に、アプリケーションは、近くのリソースを使用する場合に遠くのリソースを使用することよりも速いため、最も多く使用される地域に展開される(すなわち、その地域に関連するインフラストラクチャ上に展開される)。また、アプリケーションは、大規模な気象システムまたは地震などの地域全体のイベントのリスクを軽減するための冗長性、法的管轄、税金ドメイン、および他のビジネスまたは社会的基準に対する様々な要件を満たすための冗長性など、様々な理由で異なる地域に展開されてもよい。
地域内のデータセンタは、さらに編成され、利用可能なドメイン(availability domain:AD)に細分化されてもよい。利用可能なドメインは、ある地域に配置された1つ以上のデータセンタに対応してもよい。地域は、1つ以上の利用可能なドメインによって構成されてもよい。このような分散環境において、CSPIリソースは、仮想クラウドネットワーク(VCN)などの地域に固有なものまたは計算インスタンスなどの利用可能なドメインに固有なものである。
1つの地域内のADは、フォールトトレラント(fault tolerant)になるように互いに分離され、同時に故障する可能性が非常に低くなるように構成されている。これは、1つの地域内の1つのADの障害が同じ地域内の他のADの可用性に影響を与えることが殆どないように、ネットワーキング、物理ケーブル、ケーブル経路、ケーブル入口などの重要なインフラストラクチャリソースを共有しないように、ADを構成することによって達成される。同じ地域内のADを低遅延広帯域のネットワークで互いに接続することによって、他のネットワーク(例えば、インターネット、顧客オンプレミスネットワーク)への高可用性接続を提供し、複数のADにおいて高可用性および災害復旧の両方のための複製システムを構築することができる。クラウドサービスは、複数のADを利用して、高可用性を確保すると共に、リソースの障害から保護する。IaaSプロバイダによって提供されたインフラストラクチャが成長するにつれて、追加の容量と共により多くの地域およびADを追加してもよい。利用可能なドメイン間のトラフィックは、通常、暗号化される。
特定の実施形態において、地域は、レルムにグループ化される。レルムは、地域の論理集合である。レルムは、互いに隔離されており、いかなるデータを共有しない。同じレルム内の地域は、互いに通信することができるが、異なるレルム内の地域は、通信することができない。CSPの顧客のテナンシまたはアカウントは、単一のレルムに存在し、その単一のレルムに属する1つ以上の地域を跨ることができる。典型的には、顧客がIaaSサービスに加入すると、レルム内の顧客指定地域(「ホーム」地域と呼ばれる)に、その顧客のテナンシまたはアカウントが作成される。顧客は、顧客のテナンシをレルム内の1つ以上の他の地域に拡張することができる。顧客は、顧客のテナンシが存在するレルム内に存在していない地域にアクセスすることができない。
IaaSプロバイダは、複数のレルムを提供することができ、各レルムは、特定の組の顧客またはユーザに対応する。例えば、商用レルムは、商用顧客のために提供されてもよい。別の例として、レルムは、特定の国のためにまたはその国の顧客のために提供されてもよい。さらに別の例として、政府用レルムは、例えば政府のために提供されてもよい。例えば、政府用レルムは、特定の政府のために作成されてもよく、商用レルムよりも高いセキュリティレベルを有してもよい。例えば、オラクル(登録商標)クラウドインフラストラクチャ(OCI)は、現在、商用領域向けのレルムと、政府クラウド領域向けの2つのレルム(例えば、FedRAMP認可およびIL5認可)とを提供する。
特定の実施形態において、ADは、1つ以上の障害ドメイン(fault domain)に細分化することができる。障害ドメインは、反親和性(anti-affinity)を提供するために、AD内のインフラストラクチャリソースをグループ化したものである。障害ドメインは、計算インスタンスを分散することができる。これによって、計算インスタンスは、1つのAD内の同じ物理ハードウェア上に配置されない。これは、反親和性として知られている。障害ドメインは、1つの障害点を共有するハードウェア要素(コンピュータ、スイッチなど)の集合を指す。計算プールは、障害ドメインに論理的に分割される。このため、1つの障害ドメインに影響を与えるハードウェア障害または計算ハードウェア保守イベントは、他の障害ドメインのインスタンスに影響を与えない。実施形態によっては、各ADの障害ドメインの数は、異なってもよい。例えば、特定の実施形態において、各ADは、3つの障害ドメインを含む。障害ドメインは、AD内の論理データセンタとして機能する。
顧客がIaaSサービスに加入すると、CSPIからのリソースは、顧客にプロビジョニングされ、顧客のテナンシに関連付けられる。顧客は、これらのプロビジョニングされたリソースを使用して、プライベートネットワークを構築し、これらのネットワーク上にリソースを展開することができる。CSPIによってクラウド上でホストされている顧客ネットワークは、仮想クラウドネットワーク(VCN)と呼ばれる。顧客は、顧客用に割り当てられたCSPIリソースを使用して、1つ以上の仮想クラウドネットワーク(VCN)を構成することができる。VCNとは、仮想またはソフトウェア定義のプライベートネットワークである。顧客のVCNに配備された顧客リソースは、計算インスタンス(例えば、仮想マシン、ベアメタルインスタンス)および他のリソースを含むことができる。これらの計算インスタンスは、アプリケーション、ロードバランサ、データベースなどの様々な顧客作業負荷を表してもよい。VCN上に配備された計算インスタンスは、インターネットなどのパブリックネットワークを介して公的にアクセス可能なエンドポイント(パブリックエンドポイント)と通信することができ、同じVCNまたは他のVCN(例えば、顧客の他のVCN、または顧客に属さないVCN)内の他のインスタンスと通信することができ、顧客オンプレミスデータセンタまたはネットワークと通信することができ、サービスエンドポイントと通信することができ、および他の種類のエンドポイントと通信することができる。
CSPは、CSPIを用いて様々なサービスを提供することができる。場合によっては、CSPIの顧客自身は、サービスプロバイダのように振る舞い、CSPIリソースを使用してサービスを提供することができる。サービスプロバイダは、識別情報(例えば、IPアドレス、DNS名およびポート)によって特徴付けられるサービスエンドポイントを公開することができる。顧客のリソース(例えば、計算インスタンス)は、サービスによって公開されたその特定のサービスのサービスエンドポイントにアクセスすることによって、特定のサービスを消費することができる。これらのサービスエンドポイントは、一般的に、ユーザがエンドポイントに関連付けられたパブリックIPアドレスを使用して、インターネットなどのパブリック通信ネットワークを介して公的にアクセス可能なエンドポイントである。公的にアクセス可能なネットワークエンドポイントは、パブリックエンドポイントと呼ばれることもある。
特定の実施形態において、サービスプロバイダは、(サービスエンドポイントと呼ばれることもある)サービスのエンドポイントを介してサービスを公開することができる。サービスの顧客は、このサービスエンドポイントを使用してサービスにアクセスすることができる。特定の実施形態において、サービスのために提供されたサービスエンドポイントは、そのサービスを消費しようとする複数の顧客によってアクセスすることができる。他の実装形態において、専用のサービスエンドポイントを顧客に提供してもよい。したがって、その顧客のみは、その専用サービスエンドポイントを使用してサービスにアクセスすることができる。
特定の実施形態において、VCNは、作成されると、そのVCNに割り当てられたプライベートオーバーレイIPアドレス範囲(例えば、10.0/16)であるプライベートオーバーレイクラスレスドメイン間ルーティング(Classless Inter-Domain Routing:CIDR)アドレス空間に関連付けられる。VCNは、関連するサブネット、ルートテーブル、およびゲートウェイを含む。VCNは、単一の地域内に存在するが、地域の1つ以上または全ての利用可能なドメインに拡張することができる。ゲートウェイは、VCN用に構成され、VCNとVCN外部の1つ以上のエンドポイントとの間のトラフィック通信を可能にする仮想インターフェイスである。VCNの1つ以上の異なる種類のゲートウェイを構成することによって、異なる種類のエンドポイント間の通信を可能にすることができる。
VCNは、1つ以上のサブネットなどの1つ以上のサブネットワークに細分化されてもよい。したがって、サブネットは、VCN内で作成され得る構成単位または区画である。VCNは、1つ以上のサブネットを持つことができる。VCN内の各サブネットは、当該VCN内の他のサブネットと重複せず、当該VCNのアドレス空間のアドレス空間サブセットを表すオーバーレイIPアドレス(例えば、10.0.0.0/24および10.0.1.0/24)の連続範囲に関連付けられる。
各計算インスタンスは、仮想ネットワークインターフェイスカード(VNIC)に関連付けられる。これによって、各計算インスタンスは、VCNのサブネットに参加することができる。VNICは、物理ネットワークインターフェイスカード(NIC)の論理表現である。一般的に、VNICは、エンティティ(例えば、計算インスタンス、サービス)と仮想ネットワークとの間のインターフェイスである。VNICは、サブネットに存在し、1つ以上の関連するIPアドレスと、関連するセキュリティルールまたはポリシーとを有する。VNICは、スイッチ上のレイヤ2ポートに相当する。VNICは、計算インスタンスと、VCN内のサブネットとに接続されている。計算インスタンスに関連付けられたVNICは、計算インスタンスがVCNのサブネットの一部であることを可能にし、計算インスタンスが、計算インスタンスと同じサブネット上にあるエンドポイントと、VCN内の異なるサブネット内のエンドポイントと、またはVCN外部のエンドポイントと通信する(例えば、パケットを送信および受信する)ことを可能にする。したがって、計算インスタンスに関連するVNICは、計算インスタンスがVCNの内部および外部のエンドポイントとどのように接続しているかを判断する。計算インスタンスのVNICは、計算インスタンスが作成され、VCN内のサブネットに追加されるときに作成され、その計算インスタンスに関連付けられる。サブネットは、計算インスタンスのセットからなる場合、計算インスタンスのセットに対応するVNICを含み、各VNICは、コンピュータインスタンスのセット内の計算インスタンスに接続されている。
計算インスタンスに関連するVNICを介して、各計算インスタンスにはプライベートオーバーレイIPアドレスが割り当てられる。このプライベートオーバーレイIPアドレスは、計算インスタンスの作成時に計算インスタンスに関連するVNICに割り当てられ、計算インスタンスのトラフィックをルーティングするために使用される。特定のサブネット内の全てのVNICは、同じルートテーブル、セキュリティリスト、およびDHCPオプションを使用する。上述したように、VCN内の各サブネットは、当該VCN内の他のサブネットと重複せず、当該VCNのアドレス空間のアドレス空間サブセットを表すオーバーレイIPアドレス(例えば、10.0.0.0/24および10.0.1.0/24)の連続範囲に関連付けられる。VCNの特定のサブネット上のVNICの場合、VNICに割り当てられたオーバーレイIPアドレスは、サブネットに割り当てられたオーバーレイIPアドレスの連続範囲からのアドレスである。
特定の実施形態において、必要に応じて、計算インスタンスには、プライベートオーバーレイIPアドレスに加えて、追加のオーバーレイIPアドレス、例えば、パブリックサブネットの場合に1つ以上のパブリックIPアドレスを割り当てることができる。これらの複数のアドレスは、同じVNIC、または計算インスタンスに関連付けられた複数のVNICに割り当てられる。しかしながら、各インスタンスは、インスタンス起動時に作成され、インスタンスに割り当てられたオーバーレイプライベートIPアドレスに関連付けられたプライマリVNICを有する。このプライマリVNICは、削除することができない。セカンダリVNICと呼ばれる追加のVNICは、プライマリVNICと同じ利用可能なドメイン内の既存のインスタンスに追加することができる。全てのVNICは、インスタンスと同じ利用可能なドメインにある。セカンダリVNICは、プライマリVNICと同じVCNのサブネットにあってもよく、または同じVCNまたは異なるVCNの異なるサブネットにあってもよい。
計算インスタンスは、パブリックサブネットにある場合、オプションでパブリックIPアドレスを割り当てられることができる。サブネットを作成するときに、当該サブネットをパブリックサブネットまたはプライベートサブネットのいずれかとして指定することができる。プライベートサブネットとは、当該サブネット内のリソース(例えば、計算インスタンス)および関連するVNICがパブリックオーバーレイIPアドレスを持つことができないことを意味する。パブリックサブネットとは、サブネット内のリソースおよび関連するVNICがパブリックIPアドレスを持つことができることを意味する。顧客は、地域またはレルム内の単一の利用可能なドメインまたは複数の利用可能なドメインにわたって存在するサブネットを指定することができる。
上述したように、VCNは、1つ以上のサブネットに細分化されてもよい。特定の実施形態において、VCNのために構成された仮想ルータ(VCN VRまたは単にVRと呼ばれる)は、VCNのサブネット間の通信を可能にする。VCN内のサブネットの場合、VRは、サブネット(すなわち、当該サブネット上の計算インスタンス)と、VCN内部の他のサブネット上のエンドポイントおよびVCN外部の別のエンドポイントとの通信を可能にする当該サブネットの論理ゲートウェイを表す。VCN VRは、VCN内のVNICと、VCNに関連する仮想ゲートウェイ(ゲートウェイ)との間のトラフィックをルーティングするように構成された論理エンティティである。ゲートウェイは、図1に関して以下でさらに説明される。VCN VRは、レイヤ3/IPレイヤの概念である。一実施形態において、1つのVCNに対して1つのVCN VRが存在する。このVCN VRは、IPアドレスによってアドレス指定された無制限の数のポートを潜在的に有し、VCNの各サブネットに対して1つのポートを有する。このようにして、VCN VRは、VCN VRが接続されているVCNの各サブネットに対して異なるIPアドレスを有する。また、VRは、VCNのために構成された様々なゲートウェイに接続されている。特定の実施形態において、サブネットのオーバーレイIPアドレス範囲からの特定のオーバーレイIPアドレスは、そのサブネットのVCN VRのポートに保留される。例えば、関連するアドレス範囲10.0/16および10.1/16を各々有する2つのサブネットを有するVCNを考える。アドレス範囲10.0/16を有するVCNの第1のサブネットの場合、この範囲からのアドレスは、そのサブネットのVCN VRのポートに保留される。場合によっては、この範囲からの第1のIPアドレスは、VCN VRに保留されてもよい。例えば、オーバーレイIPアドレス範囲10.0/16を有するサブネットの場合、IPアドレス10.0.0.1は、そのサブネットのVCN VRのポートに保留されてもよい。同じVCN内のアドレス範囲10.1/16を有する第2のサブネットの場合、VCN VRは、IPアドレス10.1.0.1を有する第2のサブネットのポートを有してもよい。VCN VRは、VCN内の各サブネットに対して異なるIPアドレスを有する。
いくつかの他の実施形態において、VCN内の各サブネットは、VRに関連付けられた保留またはデフォルトIPアドレスを使用してサブネットによってアドレス指定可能な、それ自身に関連するVRを有してもよい。保留またはデフォルトIPアドレスは、例えば、そのサブネットに関連付けられたIPアドレスの範囲からの第1のIPアドレスであってもよい。サブネット内のVNICは、このデフォルトまたは保留IPアドレスを使用して、サブネットに関連付けられたVRと通信(例えば、パケットを送信および受信)することができる。このような実施形態において、VRは、そのサブネットの着信/送信ポイントである。VCN内のサブネットに関連付けられたVRは、VCN内の他のサブネットに関連付けられた他のVRと通信することができる。また、VRは、VCNに関連付けられたゲートウェイと通信することができる。サブネットのVR機能は、サブネット内のVNICのVNIC機能を実行する1つ以上のNVD上で実行され、またはそれによって実行される。
ルートテーブル、セキュリティルール、およびDHCPオプションは、VCNのために構成されてもよい。ルートテーブルは、VCNの仮想ルートテーブルであり、ゲートウェイまたは特別に構成されたインスタンスを経由して、トラフィックをVCN内部のサブネットからVCN外部の宛先にルーティングするためのルールを含む。VCNとの間でパケットの転送/ルーティングを制御するために、VCNのルートテーブルをカスタマイズすることができる。DHCPオプションは、インスタンスの起動時にインスタンスに自動的に提供される構成情報を指す。
VCNのために構成されたセキュリティルールは、VCNのオーバーレイファイアウォールルールを表す。セキュリティルールは、受信ルールおよび送信ルールを含むことができ、(例えば、プロトコルおよびポートに基づいて)VCN内のインスタンスに出入りすることを許可されるトラフィックの種類を指定することができる。顧客は、特定の規則をステートフルまたはステートレスにするかを選択することができる。例えば、顧客は、ソースCIDR0.0.0.0/0および宛先TCPポート22を含むステートフル受信ルールを設定することによって、任意の場所から1組のインスタンスへの着信SSHトラフィックを許可することができる。セキュリティルールは、ネットワークセキュリティグループまたはセキュリティリストを使用して実装されてもよい。ネットワークセキュリティグループは、そのグループ内のリソースのみに適用されるセキュリティルールのセットからなる。一方、セキュリティリストは、そのセキュリティリストを使用するサブネット内の全てのリソースに適用されるルールを含む。VCNは、デフォルトセキュリティルールとデフォルトセキュリティリストを含んでもよい。VCNのために構成されたDHCPオプションは、VCN内のインスタンスが起動するときに自動的に提供される構成情報を提供する。
特定の実施形態において、VCNの構成情報は、VCN制御プレーンによって決定され、記憶される。VCNの構成情報は、例えば、VCNに関連するアドレス範囲、VCN内のサブネットおよび関連情報、VCNに関連する1つ以上のVR、VCN内の計算インスタンスおよび関連VNIC、VCNに関連する種々の仮想化ネットワーク機能(例えば、VNIC、VR、ゲートウェイ)を実行するNVD、VCNの状態情報、および他のVCN関連情報を含んでもよい。特定の実施形態において、VCN配信サービスは、VCN制御プレーンによって記憶された構成情報またはその一部をNVDに公開する。配信された情報を用いて、NVDによって記憶および使用される情報(例えば、転送テーブル、ルーティングテーブルなど)を更新することによって、VCN内の計算インスタンスとの間でパケットを転送することができる。
特定の実施形態において、VCNおよびサブネットの作成は、VCN制御プレーン(CP)によって処理され、計算インスタンスの起動は、計算制御プレーンによって処理される。計算制御プレーンは、計算インスタンスの物理リソースを割り当て、次にVCN制御プレーンを呼び出して、VNICを作成し、計算インスタンスに接続するように構成される。また、VCN CPは、パケットの転送およびルーティング機能を実行するように構成されたVCNデータプレーンに、VCNデータマッピングを送信する。特定の実施形態において、VCN CPは、更新をVCNデータプレーンに提供するように構成された配信サービスを提供する。VCN制御プレーンの例は、図24、25、26、および27(参照番号2416、2516、2616、および2716を参照)に示され、以下に説明される。
顧客は、CSPIによってホストされているリソースを用いて、1つ以上のVCNを作成することができる。顧客VCN上に展開された計算インスタンスは、異なるエンドポイントと通信することができる。これらのエンドポイントは、CSPIによってホストされているエンドポイントおよびCSPL外部のエンドポイントを含むことができる。
CSPIを用いてクラウドベースのサービスを実装するための様々な異なるアーキテクチャは、図1、2、3、4、5、24、25、26、および28に示され、以下に説明される。図1は、特定の実施形態に従って、CSPIによってホストされているオーバーレイVCNまたは顧客VCNを示す分散環境100のハイレベル図である。図1に示された分散環境は、オーバーレイネットワーク内の複数の要素を含む。図1に示された分散環境100は、単なる例であり、特許請求された実施形態の範囲を不当に限定することを意図していない。多くの変形例、代替例、および修正例が可能である。例えば、いくつかの実装形態において、図1に示された分散環境は、図1に示されたものより多いまたは少ないシステムまたは要素を有してもよく、2つ以上のシステムを組み合わせてもよく、または異なるシステムの構成または配置を有してもよい。
図1の例に示されるように、分散環境100は、顧客が加入して仮想クラウドネットワーク(VCN)を構築するために使用することができるサービスおよびリソースを提供するCSPI101を含む。特定の実施形態において、CSPI101は、加入顧客にIaaSサービスを提供する。CSPI101内のデータセンタは、1つ以上の地域に編成されてもよい。図1は、地域の一例である「US地域」102を示す。顧客は、地域102に対して顧客VCN104を構成している。顧客は、VCN104上に様々な計算インスタンスを展開することができ、計算インスタンスは、仮想マシンまたはベアメタルインスタンスを含むことができる。インスタンスの例は、アプリケーション、データベース、ロードバランサなどを含む。
図1に示された実施形態において、顧客VCN104は、2つのサブネット、すなわち、「サブネット-1」および「サブネット-2」を含み、各サブネットは、各自のCIDR IPアドレス範囲を有する。図1において、サブネット-1のオーバーレイIPアドレス範囲は、10.0/16であり、サブネット-2のアドレス範囲は、10.1/16である。VCN仮想ルータ105は、VCN104のサブネット間の通信およびVCN外部の別のエンドポイントとの通信を可能にするVCNの論理ゲートウェイを表す。VCN VR105は、VCN104内のVNICとVCN104に関連するゲートウェイとの間でトラフィックをルーティングするように構成される。VCN VR105は、VCN104の各サブネットにポートを提供する。例えば、VR105は、IPアドレス10.0.0.1を有するポートをサブネット-1に提供することができ、IPアドレス10.1.0.1を有するポートをサブネット-2に提供することができる。
各サブネット上に複数の計算インスタンスを展開することができる。この場合、計算インスタンスは、仮想マシンインスタンスおよび/またはベアメタルインスタンスであってもよい。サブネット内の計算インスタンスは、CSPI101内の1つ以上のホストマシンによってホストされてもよい。計算インスタンスは、当該計算インスタンスに関連するVNICを介してサブネットに参加する。例えば、図1に示すように、計算インスタンスC1は、当該計算インスタンスに関連するVNICを介したサブネット-1の一部である。同様に、計算インスタンスC2は、C2に関連するVNICを介したサブネット-1の一部である。同様に、仮想マシンインスタンスまたはベアメタルインスタンスであり得る複数の計算インスタンスは、サブネット-1の一部であってもよい。各計算インスタンスには、関連するVNICを介して、プライベートオーバーレイIPアドレスおよび媒体アクセス制御アドレス(MACアドレス)が割り当てられる。例えば、図1において、計算インスタンスC1は、オーバーレイIPアドレス10.0.0.2およびMACアドレスM1を有し、計算インスタンスC2は、プライベートオーバーレイIPアドレス10.0.0.3およびMACアドレスM2を有する。計算インスタンスC1およびC2を含むサブネット-1内の各計算インスタンスは、サブネット-1のVCN VR105のポートのIPアドレスであるIPアドレス10.0.0.1を使用して、VCN VR105へのデフォルトルートを有する。
サブネット-2には、仮想マシンインスタンスおよび/またはベアメタルインスタンスを含む複数の計算インスタンスを展開することができる。例えば、図1に示すように、計算インスタンスDlおよびD2は、それぞれの計算インスタンスに関連するVNICを介したサブネット-2の一部である。図1に示す実施形態において、計算インスタンスD1は、オーバーレイIPアドレス10.1.0.2およびMACアドレスMM1を有し、計算インスタンスD2は、プライベートオーバーレイIPアドレス10.1.0.3およびMACアドレスMM2を有する。計算インスタンスD1およびD2を含むサブネット-2内の各計算インスタンスは、サブネット-2のVCN VR105のポートのIPアドレスであるIPアドレス10.1.0.1を使用して、VCN VR105へのデフォルトルートを有する。
また、VCN A104は、1つ以上のロードバランサを含んでもよい。例えば、ロードバランサは、サブネットに対して提供されてもよく、サブネット上の複数の計算インスタンス間でトラフィックをロードバランスするように構成されてもよい。また、ロードバランサは、VCN内のサブネット間でトラフィックをロードバランスするように提供されてもよい。
VCN104上に展開された特定の計算インスタンスは、様々な異なるエンドポイントと通信することができる。これらのエンドポイントは、CSPI200によってホストされているエンドポイントと、CSPI200外部のエンドポイントとを含んでもよい。CSPI101によってホストされているエンドポイントは、特定の計算インスタンスと同じサブネット上のエンドポイント(例えば、サブネット-1の2つの計算インスタンス間の通信)、異なるサブネットにあるが同じVCN内のエンドポイント(例えば、サブネット-1の計算インスタンスとサブネット-2の計算インスタンスとの間の通信)、同じ地域の異なるVCN内のエンドポイント(例えば、サブネット-1の計算インスタンスと、同じ地域106または110のVCN内のエンドポイントとの間の通信、サブネット-1内の計算インスタンスと、同じ地域のサービスネットワーク110内のエンドポイントとの間の通信)、または異なる地域のVCN内のエンドポイント(例えば、サブネット-1の計算インスタンスと、異なる地域108のVCN内のエンドポイントとの間の通信)を含んでもよい。また、CSPI101によってホストされているサブネット内の計算インスタンスは、CSPI101によってホストされていない(すなわち、CSPI101の外部にある)エンドポイントと通信することができる。これらの外部のエンドポイントは、顧客オンプレミスネットワーク116内のエンドポイント、他のリモートクラウドホストネットワーク118内のエンドポイント、インターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイント114、および別のエンドポイントを含む。
同じサブネット上の計算インスタンス間の通信は、ソース計算インスタンスおよび宛先計算インスタンスに関連するVNICを使用して促進される。例えば、サブネット-1内の計算インスタンスC1は、サブネット-1内の計算インスタンスC2にパケットを送信したいことがある。ソース計算インスタンスから送信され、その宛先が同じサブネット内の別の計算インスタンスであるパケットの場合、このパケットは、まず、ソース計算インスタンスに関連するVNICによって処理される。ソース計算インスタンスに関連するVNICによって実行される処理は、パケットヘッダからパケットの宛先情報を決定することと、ソース計算インスタンスに関連するVNICに対して構成された任意のポリシー(例えば、セキュリティリスト)を特定することと、パケットのネクストホップ(next hop)を決定することと、必要に応じて任意のパケットのカプセル化/デカプセル化機能を実行することと、パケットの意図した宛先への通信を容易にするためにパケットをネクストホップに転送/ルーティングすることとを含んでもよい。宛先計算インスタンスがソース計算インスタンスと同じサブネットにある場合、ソース計算インスタンスに関連するVNICは、宛先計算インスタンスに関連するVNICを特定し、処理するためのパケットをそのVNICに転送するように構成されている。次いで、宛先計算インスタンスに関連するVNICは、実行され、パケットを宛先計算インスタンスに転送する。
サブネット内の計算インスタンスから同じVCNの異なるサブネット内のエンドポイントにパケットを通信する場合、通信は、ソース計算インスタンスおよび宛先計算インスタンスに関連するVNICと、VCN VRとによって促進される。例えば、図1のサブネット-1の計算インスタンスC1がサブネット-2の計算インスタンスD1にパケットを送信したい場合、パケットは、まず、計算インスタンスC1に関連するVNICによって処理される。計算インスタンスC1に関連するVNICは、VCN VRのデフォルトルートまたはポート10.0.0.1を使用して、パケットをVCN VR105にルーティングするように構成されている。VCN VR105は、ポート10.1.0.1を使用してパケットをサブネット-2にルーティングするように構成されている。その後、パケットは、D1に関連するVNICによって受信および処理され、VNICは、パケットを計算インスタンスD1に転送する。
VCN104内の計算インスタンスからVCN104の外部のエンドポイントにパケットを通信するために、通信は、ソース計算インスタンスに関連するVNIC、VCN VR105、およびVCN104に関連するゲートウェイによって促進される。1つ以上の種類のゲートウェイをVCN104に関連付けることができる。ゲートウェイは、VCNと別のエンドポイントとの間のインターフェイスであり、別のエンドポイントは、VCNの外部にある。ゲートウェイは、レイヤ3/IPレイヤ概念であり、VCNとVCNの外部のエンドポイントとの通信を可能にする。したがって、ゲートウェイは、VCNと他のVCNまたはネットワークとの間のトラフィックフローを容易にする。異なる種類のエンドポイントとの異なる種類の通信を容易にするために、様々な異なる種類のゲートウェイをVCNに設定することができる。ゲートウェイによって、通信は、パブリックネットワーク(例えば、インターネット)またはプライベートネットワークを介して行われてもよい。これらの通信には、様々な通信プロトコルを使用してもよい。
例えば、計算インスタンスC1は、VCN104の外部のエンドポイントと通信したい場合がある。パケットは、まず、ソース計算インスタンスC1に関連するVNICによって処理されてもよい。VNIC処理は、パケットの宛先がClのサブネット-1の外部にあると判断する。C1に関連するVNICは、パケットをVCN104のVCN VR105に転送することができる。次いで、VCN VR105は、パケットを処理し、処理の一部として、パケットの宛先に基づいて、VCN104に関連する特定のゲートウェイをパケットのネクストホップとして決定する。その後、VCN VR105は、パケットを特定のゲートウェイに転送することができる。例えば、宛先が顧客のオペプレミスネットワーク内のエンドポイントである場合、パケットは、VCN VR105によって、VCN104のために構成された動的ルーティングゲートウェイ(DRG)122に転送されてもよい。その後、パケットは、ゲートウェイからネクストホップに転送され、意図した最終の宛先へのパケットの通信を容易にすることができる。
VCNのために様々な異なる種類のゲートウェイを構成してもよい。VCNのために構成され得るゲートウェイの例は、図1に示され、以下に説明される。VCNに関連するゲートウェイの例は、図24、25、26、および27(例えば、参照番号2434、2436、2438、2534、2536、2538、2634、2636、2638、2734、2736、および2738によって示されたゲートウェイ)にも示され、以下に説明される。図1に示された実施形態に示されるように、動的ルーティングゲートウェイ(DRG)122は、顧客VCN104に追加されてもよく、またはそれに関連付けられてもよい。DRG122は、顧客VCN104と別のエンドポイントとの間のプライベートネットワークトラフィック通信を行うための経路を提供する。別のエンドポイントは、顧客オンプレミスネットワーク116、CSPI101の異なる地域内のVCN108、またはCSPI101によってホストされていない他のリモートクラウドネットワーク118であってもよい。顧客オンプレミスネットワーク116は、顧客のリソースを用いて構築された顧客ネットワークまたは顧客データセンタであってもよい。顧客オンプレミスネットワーク116へのアクセスは、一般的に厳しく制限される。顧客オンプレミスネットワーク116と、CSPI101によってクラウドに展開またはホストされる1つ以上のVCN104との両方を有する顧客の場合、顧客は、オンプレミスネットワーク116およびクラウドベースのVCN104が互いに通信できることを望む場合がある。これによって、顧客は、CSPI101によってホストされている顧客のVCN104とオンプレミスネットワーク116とを含む拡張ハイブリッド環境を構築することができる。DRG122は、このような通信を可能にする。このような通信を可能にするために、通信チャネル124が設定される。この場合、通信チャネルの一方のエンドポイントは、顧客オンプレミスネットワーク116に配置され、他方のエンドポイントは、CSPI101に配置され、顧客VCN104に接続されている。通信チャネル124は、インターネットなどのパブリック通信ネットワーク、またはプライベート通信ネットワークを経由することができる。インターネットなどのパブリック通信ネットワーク上のIPsec VPN技術、パブリックネットワークの代わりにプライベートネットワークを使用するオラクル(登録商標)のFastConnect技術などの様々な異なる通信プロトコルを使用することができる。通信チャネル124の1つのエンドポイントを形成する顧客オンプレミスネットワーク116内の装置または機器は、図1に示されたCPE126などの顧客構内機器(CPE)と呼ばれる。CSPI101側のエンドポイントは、DRG122を実行するホストマシンであってもよい。
特定の実施形態において、リモートピアリング接続(RPC)をDRGに追加することができる。これによって、顧客は、1つのVCNを別の地域内の別のVCNとピアリングすることができる。このようなRPCを使用して、顧客VCN104は、DRG122を使用して、別の地域内のVCN108に接続することができる。また、DRG122は、CSPI101によってホストされていない他のリモートクラウドネットワーク118、例えば、マイクロソフト(登録商標)Azureクラウド、アマゾン(登録商標)AWSクラウドと通信するために使用されてもよい。
図1に示すように、顧客VCN104上の計算インスタンスがインターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイント114と通信することを可能にするように、顧客VCN104にインターネットゲートウェイ(IGW)120を構成することができる。IGW120は、VCNをインターネットなどのパブリックネットワークに接続するためのゲートウェイである。IGW120は、VCN104などのVCN内のパブリックサブネット(パブリックサブネット内のリソースは、パブリックオーバーレイIPアドレスを有する)がインターネットなどのパブリックネットワーク114上のパブリックエンドポイント112に直接アクセスすることを可能にする。IGW120を使用して、VCN104内のサブネットからまたはインターネットからの接続を開始することができる。
顧客VCN104にネットワークアドレス変換(NAT)ゲートウェイ128を構成することができる。NATゲートウェイ128は、顧客VCN内の専用のパブリックオーバーレイIPアドレスを有しないクラウドリソースを、直接着信インターネット接続(例えば、L4-L7接続)に曝すことなくインターネットにアクセスすることを可能にする。これによって、VCN104のプライベートサブネット-1などのVCN内のプライベートサブネットがインターネット上のパブリックエンドポイントにプライベートアクセスすることを可能にする。NATゲートウェイにおいて、プライベートサブネットからパブリックインターネットに接続を開始することができるが、インターネットからプライベートサブネットに接続を開始することができない。
特定の実施形態において、顧客VCN104にサービスゲートウェイ(SGW)126を構成することができる。SGW126は、VCN104とサービスネットワーク110にサポートされているサービスエンドポイントとの間のプライベートネットワークトラフィックの経路を提供する。特定の実施形態において、サービスネットワーク110は、CSPによって提供されてもよく、様々なサービスを提供することができる。このようなサービスネットワークの例は、顧客が使用できる様々なサービスを提供するオラクル(登録商標)サービスネットワークである。例えば、顧客VCN104のプライベートサブネット内の計算インスタンス(例えば、データベースシステム)は、パブリックIPアドレスまたはインターネットへのアクセスを必要とすることなく、サービスエンドポイント(例えば、オブジェクト記憶装置)にデータをバックアップすることができる。いくつかの実施形態において、VCNは、1つのみのSGWを有することができ、VCN内のサブネットのみから接続を開始することができ、サービスネットワーク110から接続を開始することができない。VCNを他のVCNにピアリングする場合、他のVCN内のリソースは、通常SGWにアクセスすることができない。FastConnectまたはVPN ConnectでVCNに接続されているオンプレミスネットワーク内のリソースも、そのVCNに構成されたサービスゲートウェイを使用することができる。
いくつかの実装形態において、SGW126は、サービスクラスレスドメイン間ルーティング(CIDR)ラベルを使用する。CIDRラベルは、関心のあるサービスまたはサービスのグループに対する全ての地域公開IPアドレス範囲を表す文字列である。顧客は、SGWおよび関連するルーティングルールを設定する際に、サービスCIDRラベルを使用してサービスへのトラフィックを制御する。顧客は、サービスのパブリックIPアドレスが将来に変化する場合、セキュリティルールを調整する必要なく、セキュリティルールを設定するときにオプションとしてサービスCIDRラベルを使用することができる。
ローカルピアリングゲートウェイ(LPG)132は、顧客VCN104に追加可能なゲートウェイであり、VCN104が同じ地域内の別のVCNとピアリングすることを可能にするものである。ピアリングとは、トラフィックがインターネットなどのパブリックネットワークを経由することなく、または顧客オンプレミスネットワーク116を通してトラフィックをルーティングすることなく、VCNがプライベートIPアドレスを使用して通信することを意味する。好ましい実施形態において、VCNは、確立した各ピアリングに対して個別のLPGを有する。ローカルピアリングまたはVCNピアリングは、異なるアプリケーション間またはインフラストラクチャ管理機能間のネットワーク接続を確立するために使用される一般的な慣行である。
サービスネットワーク110のサービスのプロバイダなどのサービスプロバイダは、異なるアクセスモデルを使用してサービスへのアクセスを提供することができる。パブリックアクセスモデルによれば、サービスは、インターネットなどのパブリックネットワークを介して顧客VCN内の計算インスタンスによって公的にアクセス可能なパブリックエンドポイントとして公開されてもよく、またはSGW126を介してプライベートにアクセスされてもよい。特定のプライベートアクセスモデルによれば、サービスは、顧客VCN内のプライベートサブネット内のプライベートIPエンドポイントとしてアクセスされてもよい。これは、プライベートエンドポイント(PE)アクセスと呼ばれ、サービスプロバイダがそのサービスを顧客のプライベートネットワーク内のインスタンスとして公開することを可能にする。プライベートエンドポイントリソースは、顧客VCN内のサービスを表す。各PEは、顧客が顧客VCN内のサブネットから選択したVNIC(PE-VNICと呼ばれ、1つまたは複数のプライベートIPを持つ)として現れる。従って、PEは、VNICを使用して顧客のプライベートVCNサブネット内でサービスを提供する方法を提供する。エンドポイントがVNICとして公開されるため、PE VNICは、VNICに関連する全ての機能、例えば、ルーティングルールおよびセキュリティリストなどを利用することができる。
サービスプロバイダは、サービスを登録することによって、PEを介したアクセスを可能にする。プロバイダは、顧客テナントへのサービスの表示を規制するポリシーをサービスに関連付けることができる。プロバイダは、特にマルチテナントサービスの場合、単一の仮想IPアドレス(VIP)の下に複数のサービスを登録することができる。(複数のVCNにおいて)同じサービスを表すプライベートエンドポイントが複数存在する場合もある。
その後、プライベートサブネット内の計算インスタンスは、PE VNICのプライベートIPアドレスまたはサービスDNS名を用いて、サービスにアクセスすることができる。顧客VCN内の計算インスタンスは、顧客VCN内のPEのプライベートIPアドレスにトラフィックを送信することによって、サービスにアクセスすることができる。プライベートアクセスゲートウェイ(PAGW)130は、顧客サブネットプライベートエンドポイントから/への全てのトラフィックの受信ポイント/送信ポイントとして機能するサービスプロバイダVCN(例えば、サービスネットワーク110内のVCN)に接続できるゲートウェイリソースである。PAGW130によって、プロバイダは、内部IPアドレスリソースを利用することなく、PE接続の数を拡張することができる。プロバイダは、単一のVCNに登録された任意の数のサービスに対して1つのPAGWを設定するだけでよい。プロバイダは、1人以上の顧客の複数のVCNにおいて、サービスをプライバシーエンドポイントとして示すことができる。顧客の観点から、PE VNICは、顧客のインスタンスに接続されているのではなく、顧客が対話したいサービスに接続されているように見える。プライベートエンドポイントに向けられたトラフィックは、PAGW130を介してサービスにルーティングされる。これらは、顧客対サービスプライベート接続(C2S接続)と呼ばれる。
また、PE概念を用いて、トラフィックがFastConnect/IPsecリンクおよび顧客VCN内のプライベートエンドポイントを通って流れることを可能にすることで、サービスのプライベートアクセスを顧客オンプレミスネットワークおよびデータセンタに拡張することもできる。また、トラフィックがLPG132および顧客VCN内のPE間を通って流れることを可能にすることで、サービスのプライベートアクセスを顧客ピアリングVCNに拡張することもできる。
顧客は、サブネットレベルでVCNのルーティングを制御することができるため、VCN104などの顧客VCNにおいて各ゲートウェイを使用するサブネットを指定することができる。VCNのルートテーブルを用いて、特定のゲートウェイを介してトラフィックをVCNの外部にルーティングできるか否かを判断することができる。例えば、特定の事例において、顧客VCN104内のパブリックサブネットのルートテーブルは、IGW120を介して非ローカルトラフィックを送信することができる。同じ顧客VCN104内のプライベートサブネットのルートテーブルは、SGW126を介してCSPサービスへのトラフィックを送信することができる。残りの全てのトラフィックは、NATゲートウェイ128を介して送信されてもよい。ルートテーブルは、VCNから出るトラフィックのみを制御する。
VCNに関連するセキュリティリストは、インバウンド接続およびゲートウェイを介してVCNに入来するトラフィックを制御するために使用される。サブネット内の全てのリソースは、同じミュートテーブルおよびセキュリティリストを使用する。セキュリティリストは、VCNのサブネット内のインスタンスに出入りする特定の種類のトラフィックを制御するために使用されてもよい。セキュリティリストルールは、受信(インバウンド)ルールと、送信(アウトバウンド)ルールとを含んでもよい。例えば、受信ルールは、許可されたソースアドレス範囲を指定することができ、送信ルールは、許可された宛先アドレス範囲を指定することができる。セキュリティルールは、特定のプロトコル(例えば、TCP、ICMP)、特定のポート(例えば、SSHの場合ポート22、ウィンドウズ(登録商標)RDPの場合ポート3389)などを指定することができる。特定の実装形態において、インスタンスのオペレーティングシステムは、セキュリティリストルールと一致する独自のファイアウォールルールを実施することができる。ルールは、ステートフル(例えば、接続が追跡され、応答トラフィックに対する明示的なセキュリティのリストルールなしで応答が自動的に許可される)またはステートレスであってもよい。
顧客VCN(すなわち、VCN104上に展開されたリソースまたは計算インスタンス)からのアクセスは、パブリックアクセス、プライベートアクセス、または専用アクセスとして分類されてもよい。パブリックアクセスは、パブリックIPアドレスまたはNATを用いてパブリックエンドポイントにアクセスするためのアクセスモデルを指す。プライベートアクセスは、プライベートIPアドレス(例えば、プライベートサブネット内のリソース)を持つVCN104内の顧客ワークロードが、インターネットなどのパブリックネットワークを経由することなく、サービスにアクセスすることを可能にする。特定の実施形態において、CSPI101は、プライベートIPアドレスを持つ顧客VCNワークロードが、サービスゲートウェイを使用して、サービスのパブリックサービスエンドポイントにアクセスすることを可能にする。したがって、サービスゲートウェイは、顧客VCNと顧客プライベートネットワークの外部に存在するサービスのパブリックエンドポイントとの間に仮想リンクを確立することによって、プライベートアクセスモデルを提供する。
さらに、CSPIは、FastConnectパブリックピアリングなどの技術を使用する専用パブリックアクセスを提供することができる。この場合、顧客オンプレミスインスタンスは、インターネットなどのパブリックネットワークを経由することなく、FastConnect接続を用いて顧客VCN内の1つ以上のサービスにアクセスすることができる。また、CSPIは、FastConnectプライベートピアリングを使用する専用プライベートアクセスを提供することもできる。この場合、プライベートIPアドレスを持つ顧客オンプレミスインスタンスは、FastConnect接続を用いて顧客VCNワークロードにアクセスすることができる。FastConnectは、パブリックインターネットを用いて顧客オンプレミスネットワークをCSPIおよびそのサービスに接続する代わりに使用されるネットワーク接続である。FastConnectは、インターネットベースの接続と比較して、より高い帯域幅オプションと信頼性の高い一貫したネットワーキング体験を持つ専用のプライベート接続を、簡単、柔軟且つ経済的に作成する方法を提供する。
図1および上記の添付の説明は、例示的な仮想ネットワークにおける様々な仮想化要素を説明する。上述したように、仮想ネットワークは、基礎物理ネットワークまたは基板ネットワーク上に構築される。図2は、特定の実施形態に従って、仮想ネットワークの基盤を提供するCSPI200内の物理ネットワーク内の物理要素を示す簡略化アーキテクチャ図である。図示のように、CSPI200は、クラウドサービスプロバイダ(CSP)によって提供された要素およびリソース(例えば、計算リソース、メモリリソース、およびネットワーキングリソース)を含む分散環境を提供する。これらの要素およびリソースは、加入している顧客、すなわち、CSPによって提供された1つ以上のサービスに加入している顧客にクラウドサービス(例えば、IaaSサービス)を提供するために使用される。顧客が加入しているサービスに基づいて、CSPI200は、一部のリソース(例えば、計算リソース、メモリリソース、およびネットワーキングリソース)を顧客に提供する。その後、顧客は、CSPI200によって提供された物理的な計算リソース、メモリリソース、およびネットワーキングリソースを使用して、独自のクラウドベースの(すなわち、CSPIホスト型)カスタマイズ可能なプライベート仮想ネットワークを構築することができる。前述したように、これらの顧客ネットワークは、仮想クラウドネットワーク(VCN)と呼ばれる。顧客は、これらの顧客VCNに、計算インスタンスなどの1つ以上の顧客リソースを展開することができる。計算インスタンスは、仮想マシン、ベアメタルインスタンスなどであってもよい。CSPI200は、顧客が高可用性のホスト環境において広範なアプリケーションおよびサービスを構築および実行することを可能にする、インフラストラクチャおよび一連の補完的なクラウドサービスを提供する。
図2に示す例示的な実施形態において、CSPI200の物理要素は、1つ以上の物理ホストマシンまたは物理サーバ(例えば、202、206、208)、ネットワーク仮想化装置(NVD)(例えば、210、212)、トップオブラック(TOR)スイッチ(例えば、214、216)、物理ネットワーク(例えば、218)、および物理ネットワーク218内のスイッチを含む。物理ホストマシンまたはサーバは、VCNの1つ以上のサブネットに参加している様々な計算インスタンスをホストし、実行することができる。計算インスタンスは、仮想マシンインスタンスおよびベアメタルインスタンスを含んでもよい。例えば、図1に示された様々な計算インスタンスは、図2に示された物理的ホストマシンによってホストされてもよい。VCN内の仮想マシン計算インスタンスは、1つのホストマシンによって実行されてもよく、または複数の異なるホストマシンによって実行されてもよい。また、物理ホストマシンは、仮想ホストマシン、コンテナベースのホストまたは機能などをホストすることができる。図1に示されたVICおよびVCN VRは、図2に示されたFTVDによって実行されてもよい。図1に示されたゲートウェイは、図2に示されたホストマシンおよび/またはNVDによって実行されてもよい。
ホストマシンまたはサーバは、ホストマシン上で仮想化環境を作成するおよび可能にするハイパーバイザ(仮想マシンモニタまたはVMMとも呼ばれる)を実行することができる。仮想化または仮想化環境は、クラウドベースコンピューティングを容易にする。1つ以上の計算インスタンスは、ホストマシン上のハイパーバイザによって、ホストマシン上で作成され、実行され、管理されてもよい。ホストマシン上のハイパーバイザは、ホストマシンの物理的な計算リソース(例えば、計算リソース、メモリリソース、およびネットワーキングリソース)をホストマシン上で実行される様々な計算インスタンス間で共有させることができる。
例えば、図2に示すように、ホストマシン202および208は、ハイパーバイザ260および266をそれぞれ実行する。これらのハイパーバイザは、ソフトウェア、ファームウエア、ハードウェア、またはそれらの組み合わせを使用して実装されてもよい。典型的には、ハイパーバイザは、ホストマシンのオペレーティングシステム(OS)に常駐するプロセスまたはソフトウェア層であり、OSは、ホストマシンのハードウェアプロセッサ上で実行される。ハイパーバイザは、ホストマシンの物理的な計算リソース(例えば、プロセッサ/コア、メモリリソース、ネットワーキングリソースなどの処理リソース)を、ホストマシンによって実行される様々な仮想マシン計算インスタンスの間で共有させる仮想化環境を提供する。例えば、図2において、ハイパーバイザ260は、ホストマシン202のOSに常駐し、ホストマシン202の計算リソース(例えば、処理リソース、メモリリソース、およびネットワーキングリソース)を、ホストマシン202によって実行されるコンピューティングインスタンス(例えば、仮想マシン)間で共有させることができる。仮想マシンは、独自のOS(ゲストOSと呼ばれる)を持つことができる。このゲストOSは、ホストマシンのOSと同じであってもよく、異なってもよい。ホストマシンによって実行される仮想マシンのOSは、同じホストマシンによって実行される他の仮想マシンのOSと同じであってもよく、異なってもよい。したがって、ハイパーバイザは、ホストマシンの同じ計算リソースを共有させながら、複数のOSを並行して実行することができる。図2に示されたホストマシンは、同じ種類のハイパーバイザを有してもよく、異なる種類のハイパーバイザを有してもよい。
計算インスタンスは、仮想マシンインスタンスまたはベアメタルインスタンスであってもよい。図2において、ホストマシン202上の計算インスタンス268およびホストマシン208上の計算インスタンス274は、仮想マシンインスタンスの一例である。ホストマシン206は、顧客に提供されるベアメタルインスタンスの一例である。
特定の例において、ホストマシンの全体は、単一の顧客に提供されてもよく、そのホストマシンによってホストされている1つ以上の計算インスタンス(仮想マシンまたはベアメタルインスタンスのいずれか)は、全て同じ顧客に属してもよい。他の例において、ホストマシンは、複数の顧客(すなわち、複数のテナント)間で共有されてもよい。このようなマルチテナントシナリオにおいて、ホストマシンは、異なる顧客に属する仮想マシン計算インスタンスをホストすることができる。これらの計算インスタンスは、異なる顧客の異なるVCNのメンバであってもよい。特定の実施形態において、ベアメタル計算インスタンスは、ハイパーバイザを設けていないベアメタルサーバによってホストされている。ベアメタル計算インスタンスが提供される場合、単一の顧客またはテナントは、ベアメタルインスタンスをホストするホストマシンの物理CPU、メモリ、およびネットワークインターフェイスの制御を維持し、ホストマシンは、他の顧客またはテナントに共有されない。
前述したように、VCNの一部である各計算インスタンスは、計算インスタンスがVCNのサブネットのメンバになることを可能にするVNICに関連付けられる。計算インスタンスに関連付けられたVNICは、計算インスタンスとの間のパケットまたはフレームの通信を容易にする。VNICは、計算インスタンスが作成されるときに当該計算インスタンスに関連付けられる。特定の実施形態において、ホストマシンによって実行される計算インスタンスについて、その計算インスタンスに関連付けられたVNICは、ホストマシンに接続されたNVDによって実行される。例えば、図2において、ホストマシン202は、VNIC276に関連付けられた仮想マシン計算インスタンス268を実行し、VNIC276は、ホストマシン202に接続されたNVD210によって実行される。別の例として、ホストマシン206によってホストされているベアメタルインスタンス272は、ホストマシン206に接続されたNVD212によって実行されるVNIC280に関連付けられる。さらに別の例として、VNIC284は、ホストマシン208によって実行される計算インスタンス274に関連付けられ、VNIC284は、ホストマシン208に接続されているNVD212によって実行される。
ホストマシンによってホストされている計算インスタンスについて、そのホストマシンに接続されたNVDは、計算インスタンスがメンバであるVCNに対応するVCN VRを実行する。例えば、図2に示された実施形態において、NVD210は、計算インスタンス268がメンバであるVCNに対応するVCN VR277を実行する。また、NVD212は、ホストマシン206および208によってホストされている計算インスタンスに対応するVCNに対応する1つ以上のVCN VR283を実行することができる。
ホストマシンは、当該ホストマシンを他の装置に接続するための1つ以上のネットワークインターフェイスカード(NIC)を含むことができる。ホストマシン上のNICは、ホストマシンを別の装置に通信可能に接続するための1つ以上のポート(またはインターフェイス)を提供することができる。例えば、ホストマシンおよびNVDに設けられた1つ以上のポート(またはインターフェイス)を用いて、当該ホストマシンを当該NVDに接続することができる。また、ホストマシンを他のホストマシンなどの他の装置に接続することもできる。
例えば、図2において、ホストマシン202は、ホストマシン202のNIC232によって提供されるポート234とNVD210のポート236との間に延在するリンク220を使用してNVD210に接続されている。ホストマシン206は、ホストマシン206のNIC244によって提供されるポート246とNVD212のポート248との間に延在するリンク224を使用してNVD212に接続されている。ホストマシン208は、ホストマシン208のNIC250によって提供されるポート252とNVD212のポート254との間に延在するリンク226を使用してNVD212に接続されている。
同様に、NVDは、通信リンクを介して、(スイッチファブリックとも呼ばれる)物理ネットワーク218に接続されているトップオブラック(TOR)スイッチに接続されている。特定の実施形態において、ホストマシンとNVDとの間のリンクおよびNVDとTORスイッチとの間のリンクは、イーサネット(登録商標)リンクである。例えば、図2において、NVD210および212は、リンク228および230を介して、TORスイッチ214および216にそれぞれ接続される。特定の実施形態において、リンク220、224、226、228、および230は、イーサネットリンクである。TORに接続されているホストマシンおよびNVDの集合は、ラックと呼ばれることがある。
物理ネットワーク218は、TORスイッチの相互通信を可能にする通信ファブリックを提供する。物理ネットワーク218は、多層ネットワークであってもよい。特定の実装形態において、物理ネットワーク218は、スイッチの多層Closネットワークであり、TORスイッチ214および216は、多層およびマルチノード物理スイッチングネットワーク218のリーフレベルノードを表す。2層ネットワーク、3層ネットワーク、4層ネットワーク、5層ネットワーク、および一般的に「n」層ネットワークを含むがこれらに限定されない異なるClosネットワーク構成は、可能である。CIosネットワークの一例は、図5に示され、以下に説明される。
ホストマシンとN個のVDとの間には、1対1構成、多対1構成、および1対多構成などの様々な異なる接続構成が可能である。1対1構成の実装例において、各ホストマシンは、それ自体の別個のNVDに接続されている。例えば、図2において、ホストマシン202は、ホストマシン202のNIC232を介してNVD210に接続されている。多対1の構成において、複数のホストマシンは、1つのNVDに接続されている。例えば、図2において、ホストマシン206および208は、それぞれNIC244および250を介して同じNVD212に接続されている。
1対多の構成において、1つのホストマシンは、複数のNVDに接続されている。図3は、ホストマシンが複数のNVDに接続されているCSPI300内の一例を示す。図3に示すように、ホストマシン302は、複数のポート306および30Sを含むネットワークインターフェイスカード(NIC)304を備える。ホストマシン300は、ポート306およびリンク320を介して第1のNVD310に接続され、ポート308およびリンク322を介して第2のNVD312に接続されている。ポート306および308は、イーサネット(登録商標)ポートであってもよく、ホストマシン302とNVD310および312との間のリンク320および322は、イーサネット(登録商標)リンクであってもよい。NVD310は、第1のTORスイッチ314に接続され、NVD312は、第2のTORスイッチ316に接続されている。NVD310および312とTORスイッチ314および316との間のリンクは、イーサネット(登録商標)リンクであってもよい。TORスイッチ314および316は、多層物理ネットワーク318内の層(Tier)-0スイッチング装置を表す。
図3に示す構成は、物理スイッチネットワーク318からホストマシン302への2つの別々の物理ネットワーク経路、すなわち、TORスイッチ314からNVD310を経由してホストマシン302への第1の経路と、TORスイッチ316からNVD312を経由してホストマシン302への第2の経路とを提供する。別々の経路は、ホストマシン302の強化された可用性(高可用性と呼ばれる)を提供する。経路の一方に問題がある(例えば、経路の一方のリンクが故障する)場合または装置に問題がある(例えば、特定のNVDが機能していない)場合、ホストマシン302との間の通信に他方の経路を使用することができる。
図3に示された構成において、ホストマシンは、ホストマシンのNICによって提供された2つの異なるポートを用いて2つの異なるNVDに接続されている。他の実施形態において、ホストマシンは、ホストマシンと複数のNVDとの接続を可能にする複数のNICを含んでもよい。
再び図2を参照して、NVDは、1つ以上のネットワーク仮想化機能および/または記憶仮想化機能を実行する物理装置または要素である。NVDは、1つ以上の処理ユニット(例えば、CPU、ネットワーク処理ユニット(NPU)、FPGA、パケット処理パイプライン)、キャッシュを含むメモリ、およびポートを有する任意の装置であってもよい。様々な仮想化機能は、NVDの1つ以上の処理ユニットによって実行されるソフトウェア/ファームウエアによって実行されてもよい。
NVDは、様々な異なる形で実装されてもよい。例えば、特定の実施形態において、NVDは、内蔵プロセッサを搭載したスマートNICまたはインテリジェントNICと呼ばれるインターフェイスカードとして実装される。スマートNICは、ホストマシン上のNICとは別個の装置である。図2において、NVD210は、ホストマシン202に接続されているスマートNICとして実装されてもよく、NVD212は、ホストマシン206および208に接続されているスマートNICとして実装されてもよい。
しかしながら、スマートNICは、NVD実装の一例にすぎない。様々な他の実装が可能である。例えば、いくつかの他の実装例において、NVDまたはNVDによって実行される1つ以上の機能は、CSPI200の1つ以上のホストマシン、1つ以上のTORスイッチ、および他の要素に組み込まれてもよく、またはそれらによって実行されてもよい。例えば、NVDは、ホストマシンに統合されてもよい。この場合、NVDによって実行される機能は、ホストマシンによって実行される。別の例として、NVDは、TORスイッチの一部であってもよく、またはTORスイッチは、TORスイッチがパブリッククラウドに使用される様々な複雑なパケット変換を実行することを可能にするNVDによって実行される機能を実行するように構成されてもよい。NVDの機能を実行するTORは、スマートTORと呼ばれることがある。ベアメタル(BM)インスタンスではなく仮想マシン(VM)インスタンスを顧客に提供するさらに他の実装形態において、NVDによって提供される機能は、ホストマシンのハイパーバイザの内部に実装されてもよい。いくつかの他の実装形態において、NVDの機能の一部は、一組のホストマシン上で動作する集中型サービスにオフロードされてもよい。
図2に示すように、スマートNICとして実装される場合などの特定の実施形態において、NVDは、当該NVDを1つ以上のホストマシンおよび1つ以上のTORスイッチに接続することを可能にする複数の物理ポートを備えてもよい。NVD上のポートは、ホスト向きポート(「サウスポート」(south port)とも呼ばれる)またはネットワーク向きもしくはTOR向きポート(「ノースポート」(north port)とも呼ばれる)に分類することができる。NVDのホスト向きポートは、NVDをホストマシンに接続するために使用されるポートである。図2においてホスト向きポートの例は、NVD210のポート236、およびNVD212のポート248および254を含む。NVDのネットワーク向きポートは、NVDをTORスイッチに接続するために使用されるポートである。図2のネットワーク向きポートの例は、NVD210のポート256、およびNVD212のポート258を含む。図2に示すように、NVD210は、NVD210のポート256からTORスイッチ214まで延びるリンク228を介してTORスイッチ214に接続されている。同様に、NVD212は、NVD212のポート258からTORスイッチ216まで延びるリンク230を介してTORスイッチ216に接続されている。
NVDは、ホスト向きポートを介して、ホストマシンからパケットおよびフレーム(例えば、ホストマシンによってホストされている計算インスタンスによって生成されたパケットおよびフレーム)を受信し、必要なパケット処理を実行した後、NVDのネットワーク向きポートを介してパケットおよびフレームをTORスイッチに転送することができる。NVDは、NVDのネットワーク向きポートを介してTORスイッチからパケットおよびフレームを受信し、必要なパケット処理を実行した後、NVDのホスト向きポートを介してパケットおよびフレームをホストマシンに転送することができる。
特定の実施形態において、NVDとTORスイッチとの間に複数のポートおよび関連するリンクを設けてもよい。これらのポートおよびリンクを集約することによって、複数のポートまたはリンクのリンクアグリゲータグループ(LAGと称される)を形成することができる。リンクの集約は、2つのエンドポイント間(例えば、NVDとTORスイッチとの間)の複数の物理リンクを単一の論理リンクとして扱うことを可能にする。所定のLAG内の全ての物理リンクは、同じ速度で全二重モードで動作することができる。LAGは、2つのエンドポイント間の接続の帯域幅および信頼性を高めるのに役立つ。LAG内の物理リンクのうちの1つが故障した場合、トラフィックは、LAG内の別の物理リンクに動的かつ透過的に再割り当てされる。集約された物理リンクは、個々のリンクよりも高い帯域幅を提供する。LAGに関連付けられた複数のポートは、単一の論理ポートとして扱われる。トラフィックをLAGの複数の物理リンクに負荷分散することができる。2つのエンドポイント間に1つ以上のLAGを構成することができる。2つのエンドポイントは、例えば、NVDとTORスイッチとの間にあってもよく、ホストマシンとNVDとの間にであってもよい。
NVDは、ネットワーク仮想化機能を実装または実行する。これらの機能は、NVDによって実行されるソフトウェア/ファームウエアによって実行される。ネットワーク仮想化機能の例は、限定されないが、パケットのカプセル化およびデカプセル化機能、VCNネットワークを作成するための機能、VCNセキュリティリスト(ファイアウォール)機能などのネットワークポリシーを実装するための機能、VCN内の計算インスタンスとの間のパケットのルーティングおよび転送を容易にするための機能などを含む。特定の実施形態において、パケットを受信すると、NVDは、パケットを処理し、パケットをどのように転送またはルーティングするかを判断するパケット処理パイプラインを実行するように構成されている。このパケット処理パイプラインの一部として、NVDは、オーバーレイネットワークに関連する1つ以上の仮想機能の実行、例えば、VCN内の計算インスタンスに関連するVNICの実行、VCNに関連する仮想ルータ(VR)の実行、仮想ネットワーク内の転送またはルーティングを容易にするためのパケットのカプセル化およびデカプセル化、特定のゲートウェイ(例えば、ローカルピアリングゲートウェイ)の実行、セキュリティリストの実装、ネットワークセキュリティグループ、ネットワークアドレス変換(NAT)機能(例えば、ホスト毎にパブリックIPからプライベートIPへの変換)、スロットリング機能、および他の機能を提供する。
いくつかの実施形態において、NVD内のパケット処理データ経路は、複数のパケットパイプラインを含んでもよい。各々のパケットパイプラインは、一連のパケット変換ステージから構成される。いくつかの実装形態において、パケットを受信すると、当該パケットは、解析され、単一のパイプラインに分類される。次いで、パケットは、破棄されるまたはNVDのインターフェイスを介して送出されるまで、線形方式でステージ毎に処理される。これらのステージは、基本機能のパケット処理ビルディングブロック(例えば、ヘッダの検証、スロットルの実行、新しいレイヤ2ヘッダの挿入、L4ファイアウォールの実行、VCNカプセル化/デカプセル化)を提供し、その結果、既存のステージを組み立てることによって新しいパイプラインを構築することができ、新しいステージを作成して既存のパイプラインに挿入することによって新しい機能を追加することができる。
NVDは、VCNの制御プレーンおよびデータプレーンに対応する制御プレーン機能およびデータプレーン機能の両方を実行することができる。VCN制御プレーンの例は、図24、25、26、および27(参照番号2416、2516、2616、および2716参照)に示され、以下に説明される。VCNデータプレーンの例は、図24、25、26、および27(参照番号2418、2518、2618、および2718参照)に示され、以下に説明される。制御プレーン機能は、データをどのように転送するかを制御するためのネットワークの構成(例えば、ルートおよびルートテーブルの設定、VNICの構成)に使用される機能を含む。特定の実施形態において、全てのオーバーレイと基板とのマッピングを集中的に計算し、NVDおよび仮想ネットワークエッジ装置(例えば、DRG、SGW、IGWなどの様々なゲートウェイ)に公開するVCN制御プレーンが提供される。また、同じメカニズムを使用してファイアウォールルールを公開することができる。特定の実施形態において、NVDは、当該NVDに関連するマッピングのみを取得する。データプレーン機能は、制御プレーンを使用して設定された構成に基づいて、パケットの実際のルーティング/転送を行う機能を含む。VCNデータプレーンは、顧客のネットワークパケットが基幹ネットワークを通過する前に、当該ネットワークパケットをカプセル化することによって実装される。カプセル化/デカプセル化機能は、NVDに実装される。特定の実施形態において、NVDは、ホストマシンに出入りする全てのネットワークパケットを傍受し、ネットワーク仮想化機能を実行するように構成されている。
上述したように、NVDは、VNICおよびVCN VRを含む様々な仮想化機能を実行する。NVDは、VNICに接続された1つ以上のホストマシンによってホストされている計算インスタンスに関連するVNICを実行することができる。例えば、図2に示すように、NVD210は、NVD210に接続されたホストマシン202によってホストされている計算インスタンス268に関連するVNIC276の機能を実行する。別の例として、NVD212は、ホストマシン206によってホストされているベアメタル計算インスタンス272に関連するVNIC280を実行し、ホストマシン208によってホストされている計算インスタンス274に関連するVNIC284を実行する。ホストマシンは、異なる顧客に属する異なるVCNに属する計算インスタンスをホストすることができる。ホストマシンに接続されたNVDは、計算インスタンスに対応するVNICを実行する(すなわち、VNICに関連する機能を実行する)ことができる。
また、NVDは、計算インスタンスのVCNに対応するVCN仮想ルータを実行する。例えば、図2に示された実施形態において、NVD210は、計算インスタンス268が属するVCNに対応するVCN VR277を実行する。NVD212は、ホストマシン206および208にホストされている計算インスタンスが属する1つ以上のVCNに対応する1つ以上のVCN VR283を実行する。特定の実施形態において、VCNに対応するVCN VRは、そのVCNに属する少なくとも1つの計算インスタンスをホストするホストマシンに接続された全てのNVDによって実行される。ホストマシンが異なるVCNに属する計算インスタンスをホストする場合、そのホストマシンに接続されたNVDは、異なるVCNに対応するVCN VRを実行することができる。
VNICおよびVCN VRに加えて、NVDは、様々なソフトウェア(例えば、デーモン)を実行し、NVDによって実行される様々なネットワーク仮想化機能を容易にする1つ以上のハードウェア要素を含むことができる。簡略化のために、これらの様々な要素は、図2に示す「パケット処理要素」としてグループ化される。例えば、NVD210は、パケット処理要素286を含み、NVD212は、パケット処理要素288を含む。例えば、NVDのパケット処理要素は、NVDのポートおよびハードワーキングインターフェイスと相互作用することによって、NVDを使用して受信され、通信される全てのパケットを監視し、ネットワーク情報を記憶するように構成されたパケットプロセッサを含んでもよい。ネットワーク情報は、例えば、NVDによって処理される異なるネットワークフローを特定するためのネットワークフロー情報および各フローの情報(例えば、各フローの統計情報)を含んでもよい。特定の実施形態において、ネットワークフロー情報は、VNIC単位で記憶されてもよい。別の例として、パケット処理要素は、NVDによって記憶された情報を1つ以上の異なる複製ターゲットストアに複製するように構成された複製エージェント(replication agent)を含むことができる。さらに別の例として、パケット処理要素は、NVDのロギング機能を実行するように構成されたロギングエージェント(logging agent)を含んでもよい。また、パケット処理要素は、NVDの性能および健全性を監視し、場合によっては、NVDに接続されている他の要素の状態および健全性を監視するためのソフトウェアを含んでもよい。
図1は、VCNと、VCN内のサブネットと、サブネット上に展開された計算インスタンスと、計算インスタンスに関連付けられたVNICと、VCNのVRと、VCNのために構成された一組のゲートウェイとを含む例示的な仮想またはオーバーレイネットワークの要素を示す。図1に示されたオーバーレイ要素は、図2に示された物理的要素のうちの1つ以上によって実行またはホストされてもよい。例えば、VCN内の計算インスタンスは、図2に示された1つ以上のホストマシンによって実行またはホストされてもよい。ホストマシンによってホストされている計算インスタンスの場合、その計算インスタンスに関連するVNICは、典型的には、そのホストマシンに接続されたNVDによって実行される(すなわち、VNIC機能は、そのホストマシンに接続されたNVDによって提供される)。VCNのVCN VR機能は、そのVCNの一部である計算インスタンスをホストまたは実行するホストマシンに接続されている全てのNVDによって実行される。VCNに関連するゲートウェイは、1つ以上の異なる種類のNVDによって実行されてもよい。例えば、いくつかのゲートウェイは、スマートNICによって実行されてもよく、他のゲートウェイは、1つ以上のホストマシンまたはNVDの他の実装形態によって実行されてもよい。
上述したように、顧客VCN内の計算インスタンスは、様々な異なるエンドポイントと通信することができる。これらのエンドポイントは、ソース計算インスタンスと同じサブネットにあってもよく、異なるサブネット内であるがソース計算インスタンスと同じVCNにあってもよく、またはソース計算インスタンスのVCN外部のエンドポイントを含んでもよい。これらの通信は、計算インスタンスに関連付けられたVNIC、VCN VR、およびVCNに関連付けられたゲートウェイを用いて促進される。
VCN内の同じサブネット上の2つの計算インスタンス間の通信は、ソース計算インスタンスおよび宛先計算インスタンスに関連付けられたVNICを用いて促進される。ソース計算インスタンスおよび宛先計算インスタンスは、同じホストマシンによってホストされてもよく、異なるホストマシンによってホストされてもよい。ソース計算インスタンスから発信されたパケットは、ソース計算インスタンスをホストするホストマシンから、そのホストマシンに接続されたNVDに転送されてもよい。NVDにおいて、パケットは、パケット処理パイプラインを用いて処理され、このパイプラインは、ソース計算インスタンスに関連するVNICの実行を含むことができる。パケットの宛先エンドポイントが同じサブネットにあるため、ソース計算インスタンスに関連付けられたVNICの実行により、パケットは、宛先計算インスタンスに関連付けられたVNICを実行するNVDに転送され、NVDは、パケットを処理し、宛先計算インスタンスに転送する。ソース計算インスタンスおよび宛先計算インスタンスに関連するVNICは、(例えば、ソース計算インスタンスと宛先計算インスタンスの両方が同じホストマシンによってホストされている場合)同じNVD上で実行されてもよく、または(例えば、ソース計算インスタンスおよび宛先計算インスタンスが異なるNVDに接続された異なるホストマシンによってホストされている場合)異なるNVD上で実行されてもよい。VNICは、NVDによって記憶されたルーティング/転送テーブルを使用して、パケットのネクストホップを決定することができる。
サブネット内の計算インスタンスから同じVCN内の異なるサブネット内のエンドポイントにパケットを通信する場合、ソース計算インスタンスから発信されたパケットは、ソース計算インスタンスをホストするホストマシンから、そのホストマシンに接続されたNVDに通信される。NVDにおいて、パケットは、1つ以上のVNICの実行を含むことができるパケット処理パイプラインおよびVCNに関連するVRを用いて処理される。例えば、NVDは、パケット処理パイプラインの一部として、ソース計算インスタンスに関連するVNICに対応する機能を実行または呼び出す(VNICを実行するとも呼ばれる)。VNICによって実行される機能は、パケット上のVLAN識別子を検索することを含んでもよい。パケットの宛先がサブネットの外部にあるため、VCN VR機能は、呼び出され、NVDによって実行される。その後、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によって実行されてもよい。ゲートウェイは、スマートNIC、ホストマシン、または他のNVD実装であるNVDによって実行されてもよい。次いで、パケットは、ゲートウェイによって処理され、意図した宛先エンドポイントへのパケットの通信を容易にするためのネクストホップに転送される。例えば、図2に示された実施形態において、計算インスタンス268から発信されたパケットは、(NIC232を用いて)リンク220を介してホストマシン202からNVD210に通信されてもよい。NVD210上のVNIC276は、ソース計算インスタンス268に関連するVNICであるため、呼び出される。VNIC276は、パケット内のカプセル化情報を検査し、意図した宛先エンドポイントへのパケットの通信を容易にする目的でパケットを転送するためのネクストホップを決定し、決定したネクストホップにパケットを転送するように構成されている。
VCN上に展開された計算インスタンスは、様々な異なるエンドポイントと通信することができる。これらのエンドポイントは、CSPI200によってホストされているエンドポイントと、CSPI200外部のエンドポイントとを含んでもよい。CSPI200によってホストされているエンドポイントは、(顧客VCN、または顧客に属さないVCNであり得る)同じVCNまたは他のVCN内のインスタンスを含んでもよい。CSPI200によってホストされているエンドポイント間の通信は、物理ネットワーク218を介して実行されてもよい。また、計算インスタンスは、CSPI200によってホストされていないまたはCSPI200の外部にあるエンドポイントと通信することもできる。これらのエンドポイントの例は、顧客オンプレミスネットワークまたはデータセンタ内のエンドポイント、またはインターネットなどのパブリックネットワークを介してアクセス可能なパブリックエンドポイントを含む。CSPI200外部のエンドポイントとの通信は、様々な通信プロトコルを用いて、パブリックネットワーク(例えば、インターネット)(図2に図示せず)またはプライベートネットワーク(図2に図示せず)を介して実行されてもよい。
図2に示されたCSPI200のアーキテクチャは、単なる一例であり、限定することを意図していない。代替的な実施形態において、変形、代替、および修正が可能である。例えば、いくつかの実装形態において、CSPI200は、図2に示されたものよりも多いまたは少ないシステムまたは要素を有してもよく、2つ以上のシステムを組み合わせてもよく、または異なるシステム構成または配置を有してもよい。図2に示されたシステム、サブシステム、および他の要素は、それぞれのシステムの1つ以上の処理ユニット(例えば、プロセッサ、コア)によって実行されるソフトウェア(例えば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実装されてもよい。ソフトウェアは、非一時的な記憶媒体(例えば、メモリ装置)に記憶されてもよい。
図4は、特定の実施形態に従って、マルチテナント機能をサポートするためのI/O仮想化を提供するためのホストマシンとNVDとの間の接続を示す図である。図4に示すように、ホストマシン402は、仮想化環境を提供するハイパーバイザ404を実行する。ホストマシン402は、2つの仮想マシンインスタンス、すなわち、顧客/テナント#1に属するVM1 406と、顧客/テナント#2に属するVM2 408とを実行する。ホストマシン402は、リンク414を介してNVD412に接続されている物理NIC410を含む。計算インスタンスの各々は、NVD412によって実行されるVNICに接続されている。図4の実施形態において、VM1 406は、VNIC-VM1 420に接続され、VM2 408は、VNIC-VM2 422に接続されている。
図4に示すように、NIC410は、2つの論理NIC、すなわち、論理NIC A 416および論理NIC B 418を含む。各仮想マシンは、それ自身の論理NICに接続され、それ自身の論理NICと共に動作するように構成される。例えば、VM1 406は、論理NIC A 416に接続され、VM2 408は、論理NIC B 418に接続されている。ホストマシン402が複数のテナントによって共有されている1つの物理NIC410のみからなるにもかかわらず、論理NICにより、各テナントの仮想マシンは、自分自身のホストマシンおよびNICを所有していると信じている。
特定の実施形態において、各論理NICには、それ自身のVLAN IDが割り当てられる。したがって、テナント#1の論理NIC A 416には特定のVLAN IDが割り当てられ、テナント#2の論理NIC B 418には別のVLAN IDが割り当てられる。VM1 406からパケットが通信されると、ハイパーバイザは、テナント#1に割り当てられたタグをパケットに取り付けた後、リンク414を介してパケットをホストマシン402からNVD412に通信する。同様に、VM2 408からパケットが通信されると、ハイパーバイザは、テナント#2に割り当てられたタグをパケットに取り付けた後、リンク414を介してパケットをホストマシン402からNVD412に通信する。したがって、ホストマシン402からNVD412に通信されたパケット424は、特定のテナントおよび関連するVMを特定する関連タグ426を有する。NVD上でホストマシン402からパケット424を受信した場合、当該パケットに関連するタグ426を用いて、当該パケットがVNIC-VM1 420によって処理されるべきか、VNIC-VM2 422によって処理されるべきかを判断する。そして、パケットは、対応するVNICによって処理される。図4に示された構成は、各テナントの計算インスタンスが、自分自身のホストマシンおよびNICを所有していると信じることを可能にする。図4に示された構成は、マルチテナント機能をサポートするためのI/O仮想化を提供する。
図5は、特定の実施形態に従って、物理ネットワーク500を示す概略ブロック図である。図5に示された実施形態は、Closネットワークとして構築される。Closネットワークは、高い二分割帯域幅および最大リソース利用率を維持しながら、接続冗長性を提供するように設計された特定の種類のネットワークトポロジである。Closネットワークは、一種の非ブロッキング、多段または多層スイッチングネットワークであり、段または層の数は、2、3、4、5などであってもよい。図5に示された実施形態は、層1、2および3を含む3層ネットワークである。TORスイッチ504は、Closネットワークの層-0スイッチを表す。1つ以上のNVDは、TORスイッチに接続されている。層-0スイッチは、物理ネットワークのエッジ装置とも呼ばれる。層-0スイッチは、リーフスイッチとも呼ばれる層-1スイッチに接続されている。図5に示された実施形態において、「n」個の層-0 TORスイッチは、「n」個の層-1スイッチに接続され、ポッドを形成する。ポッド内の各層-0スイッチは、ポッド内の全ての層-1スイッチに相互接続されるが、ポッド間のスイッチは、接続されない。特定の実装例において、2つのポッドは、ブロックと呼ばれる。各ブロックは、「n」個の層-2スイッチ(スパインスイッチとも呼ばれる)によってサービスを提供されるまたはそれに接続されている。物理ネットワークトポロジは、複数のブロックを含んでもよい。同様に、層-2スイッチは、「n」個の層-3スイッチ(スーパースパインスイッチとも呼ばれる)に接続されている。物理ネットワーク500を介したパケットの通信は、典型的には、1つ以上のレイヤ3通信プロトコルを使用して実行される。典型的には、TOR層を除く物理ネットワークの全ての層は、nウェイ冗長であり、したがって高い可用性を実現することができる。ポッドおよびブロックにポリシーを指定して、物理ネットワークのスイッチの相互可視性を制御することによって、物理ネットワークを拡張することができる。
Closネットワークの特徴は、ある層-0スイッチから別の層-0スイッチに到達する(または、層-0スイッチに接続されたNVDから層-0スイッチに接続された別のNVDに到達する)最大ホップカウントが一定であることである。例えば、3層のClosネットワークにおいて、パケットが1つのNVDから別のNVDに到達するために最大7つのホップが必要とされる。この場合、ソースNVDおよびターゲットNVDは、Closネットワークのリーフ層に接続されている。同様に、4層のClosネットワークにおいて、パケットが1つのNVDから別のNVDに到達するために最大9つのホップが必要とされる。この場合、ソース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の部分である。このフォーマットは、リソースまたはサービスの種類によって異なる場合がある。
L2仮想ネットワーク
オンプレミスアプリケーションをクラウドサービスプロバイダ(CSP)が提供したクラウド環境に移行する企業顧客の数は、急速に増加し続けている。しかしながら、これらの顧客の多くは、クラウド環境に移行することがかなり難しく、クラウド環境で動作するように既存のアプリケーションを再設計および再構築する必要があるとすぐに認識している。これは、オンプレミス環境で開発されたアプリケーションは、監視、可用性、および拡張性の面で物理ネットワークの機能に依存することが多いからである。このようなオンプレミス環境のアプリケーションは、クラウド環境で動作させる前に、再設計および再構築を行う必要がある。
オンプレミスアプリケーションをクラウド環境に容易に移行できない理由はいくつかある。主な理由の1つは、現在のクラウド仮想ネットワークが、OSIモデルのレイヤ3、例えばIPレイヤで動作するため、アプリケーションに必要とされるレイヤ2機能を提供できないことである。レイヤ3ベースのルーティングまたは転送は、パケットのレイヤ3ヘッダに含まれる情報に基づいて、例えばパケットのレイヤ3ヘッダに含まれる宛先IPアドレスに基づいて、パケットをどこに(例えば、どの顧客インスタンスに)送信すべきかを決定することを含む。これを容易にするために、仮想化クラウドネットワーク内のIPアドレスの位置は、集中制御およびオーケストレーションシステムまたはコントローラを介して決定される。この位置は、例えば、仮想化クラウド環境内の顧客エンティティまたはリソースに関連するIPアドレスを含んでもよい。
多くの顧客は、現在のクラウドサービスおよびIaaSサービスプロバイダによって対処されていないレイヤ2ネットワーク機能に対する厳しい要件を有するオンプレミス環境上で、アプリケーションを実行している。例えば、現在のクラウドサービスのトラフィックは、レイヤ3ヘッダを使用するレイヤ3プロトコルを用いてルーティングされ、アプリケーションに必要されたレイヤ2機能は、サポートされていない。これらのレイヤ2機能は、アドレス解決プロトコル(ARP:Address Resolution Protocol)処理、媒体アクセス制御(MAC)アドレス学習、およびレイヤ2ブロードキャスト機能、レイヤ2(MACベース)転送、レイヤ2ネットワーキング構成などの機能を含んでもよい。本開示に記載されているように、仮想化クラウドネットワークにおいて仮想化レイヤ2ネットワーキング機能を提供することによって、顧客は、実質的な再設計または再構築を必要とせずに、レガシーアプリケーションをクラウド環境に円滑に移行することができる。例えば、本開示に記載されている仮想化レイヤ2ネットワーキング機能は、このようなアプリケーション(例えば、VMware vSphere、vCenter、vSAN、NSX-Tコンポーネント)がオンプレミス環境と同様にレイヤ2で通信することを可能にする。これらのアプリケーションは、パブリッククラウド上で同じバージョンおよび構成で実行できるため、顧客は、レガシーアプリケーションに関連する既存の知識、ツールおよびプロセスを含むレガシーオンプレミスアプリケーションを使用することができる。また、顧客は、(例えば、VMwareソフトウェア定義データセンタ(SDDC)を使用して)自分のアプリケーションからネイティブクラウドサービスにアクセスすることもできる。
別の例として、いくつかのレガシーオンプレミスアプリケーション(例えば、企業クラスタ化ソフトウェアアプリケーション、ネットワーク仮想アプライアンス)は、フェイルオーバ(failover)に対応するために、レイヤ2ブロードキャストサポートを必要とする。例示的なアプリケーションは、Fortinet FortiGate、IBM(登録商標)QRadar、Palo Altoファイアウォール、Cisco ASA、Juniper SRX、およびOracle(登録商標)RAC(Real Application Clustering)を含む。本開示に記載されているように、仮想化パブリッククラウドにおいて仮想化レイヤ2ネットワーキングを提供することによって、これらのアプリケーションは、変更されることなく、仮想化パブリッククラウド環境において動作することができる。本開示に記載されているように、オンプレミスに匹敵する仮想化レイヤ2ネットワーキング機能が提供される。本開示に記載された仮想化レイヤ2ネットワーキング機能は、従来のレイヤ2ネットワーキングをサポートする。これは、顧客定義VLANのサポートと共に、ユニキャストレイヤ2トラフィック機能のサポート、ブロードキャストレイヤ2トラフィック機能のサポート、およびマルチキャストレイヤ2トラフィック機能のサポートを含む。レイヤ2ベースのパケットのルーティングおよび転送は、例えば、レイヤ2プロトコルおよびパケットのレイヤ2ヘッダに含まれる情報を用いて、レイヤ2ヘッダに含まれる宛先MACアドレスに基づいて、パケットをルーティングまたは転送することを含む。企業アプリケーション(例えば、クラスタリングソフトウェアアプリケーション)によって使用されるプロトコル、例えば、ARP(アドレス解決プロトコル:Address Resolution Protocol)、GARP(Gratuitous ARP)、およびRARP(逆アドレス解決プロトコル:Reverse ARP)は、現在、クラウド環境でも動作することができる。
従来の仮想化クラウドインフラストラクチャが仮想化レイヤ3ネットワークをサポートし、レイヤ2ネットワークをサポートしない理由は、いくつかある。レイヤ2ネットワークは、通常、レイヤ3ネットワークと同様に拡張できない。レイヤ2ネットワーク制御プロトコルは、拡張に要求された高度なレベルを有していない。例えば、レイヤ3ネットワークでは、レイヤ2ネットワークが取り組むべきパケットルーピングを心配する必要がない。IPパケット(すなわち、レイヤ3パケット)は、有効時間(TTL)を有するが、レイヤ2パケットは、それを有しない。レイヤ3パケット内に含まれたIPアドレスは、サブネットおよびCIDR範囲などのトポロジを有するが、レイヤ2アドレス(例えば、MACアドレス)は、それを有しない。レイヤ3IPネットワークには、トラブルシューティングを容易にするためのツール、例えば、経路情報を見つけるためのping、トレースルートなどが内蔵されている。このようなツールは、レイヤ2には利用できない。レイヤ3ネットワークは、レイヤ2では利用できないマルチパスをサポートする。レイヤ2ネットワークは、特にネットワーク内のエンティティ間で情報を交換するための高度な制御プロトコル(例えば、BGP(境界ゲートウェイプロトコル:Border Gateway Protocol)およびOSPF(開放型最短経路優先:Open Shortest Path First))を持ってないため、ネットワークを学習するためにブロードキャストおよびマルチキャストに頼らなければならず、ネットワークの性能に悪影響を与える可能性がある。また、ネットワークが変化すると、レイヤ2では学習プロセスを繰り返す必要があるが、レイヤ3では学習プロセスを繰り返す必要がない。これらの理由および他の理由から、クラウドIaaSサービスプロバイダが、レイヤ2ではなくレイヤ3で動作するインフラストラクチャを提供することがより望ましい。
しかしながら、その複数の欠点にもかかわらず、多くのオンプレミスアプリケーションは、レイヤ2機能を必要とする。例えば、インスタンスが計算インスタンス(例えば、ベアメタル、仮想マシンまたはコンテナ)またはサービスインスタンス(例えば、ロードバランサ、nfsマウントポイント、または他のサービスインスタンス)であり得る仮想ネットワーク「V」において、顧客(顧客1)が2つのインスタンス、すなわち、IP1を持つインスタンスAおよびIP2を持つインスタンスBを含む仮想化クラウド構成を仮定する。仮想ネットワークVは、他の仮想ネットワークおよび基礎物理ネットワークから隔離された別個のアドレス空間である。この隔離は、例えばパケットカプセル化またはNATを含む様々な技術を用いて達成することができる。このため、顧客の仮想ネットワーク内のインスタンスのIPアドレスは、当該インスタンスをホストしている物理ネットワーク内のアドレスとは異なる。全ての仮想IPアドレスの物理IPおよび仮想インターフェイスを把握する集中型SDN(ソフトウェア定義ネットワーキング)制御プレーンが提供される。仮想ネットワークVにおいてパケットをインスタンスAから宛先のIP2に送信する場合、仮想ネットワークSDNスタックは、IP2の位置を知る必要がある。仮想ネットワークSDNスタックは、仮想ネットワークVの仮想IPアドレスIP2をホストしている物理ネットワークのIPにパケットを送信することができるように、IP2の位置を事前に知っておく必要がある。クラウド上で仮想IPアドレスの位置を変更することができるため、物理IPと仮想IPアドレスとの間の関係を変更することもできる。仮想IPアドレスを移動する(例えば、仮想マシンに関連するIPアドレスを別の仮想マシンに移動する、または仮想マシンを新しい物理ホストに移行する)度に、パケットプロセッサ(データプレーン)を含むSDNスタック内の全ての参加者を更新できるように、IPを移動したことをコントローラに知らせるAPIコールをSDN制御プレーンに対して行わなければならない。しかしながら、このようなAPIコールを行わない種類のアプリケーションもある。例として、様々なオンプレミスアプリケーション、様々な仮想化ソフトウェアベンダによって提供されるアプリケーション、例えばVmwareなどが挙げられる。仮想化クラウド環境において仮想レイヤ2ネットワークを容易にする有用性は、APIコールを行うようにプログラムされていないアプリケーションのサポート、または非IPレイヤ3およびMAC学習のサポートなど、他のレイヤ2ネットワーキング機能に依存するアプリケーションのサポートを可能にすることである。
仮想レイヤ2ネットワークは、ブロードキャストドメインを作成し、ブロードキャストドメインのメンバは、学習する。仮想レイヤ2ドメインにおいて、任意のIPがこのレイヤ2ドメイン内の任意のホスト上の任意のMAC上に存在することができ、システムは、標準的なレイヤ2ネットワーキングプロトコルを使用して学習し、システムは、集中コントローラがその仮想レイヤ2ネットワークに存在するMACおよびIPの位置を明示的に知らせる必要なく、これらのネットワーキングプリミティブを仮想化する。これは、低遅延フェイルオーバ(failover)を必要とするアプリケーション、複数のノードへのブロードキャストまたはマルチキャストプロトコルをサポートする必要があるアプリケーション、およびIPアドレスおよびMACアドレスの位置を決定するためにSDN制御プレーンまたはAPIエンドポイントへのAPIコールを行う方法を知らないレガシーアプリケーションを実行することを可能にする。したがって、仮想化クラウド環境においてレイヤ2ネットワーキング機能を提供することは、IPレイヤ3レベルでは利用不可能な機能をサポートするために必要である。
仮想化クラウド環境において仮想レイヤ2を提供することの別の技術的利点は、非IPプロトコルを含む様々な異なるレイヤ3プロトコル(IPV4、IPV6など)をサポートできることである。例えば、IPX、AppleTalk(登録商標)などの様々な非IPプロトコルをサポートすることができる。既存のクラウドIaaSプロバイダは、仮想化クラウドネットワークにおいてレイヤ2機能を提供していないため、これらの非IPプロトコルをサポートすることができない。本開示に記載されているようにレイヤ2ネットワーキング機能を提供することによって、レイヤ3プロトコルにおよびレイヤ2レベル機能の可用性を必要し、それに依存するアプリケーションにサポートを提供することができる。
本開示に記載されている技術を使用して、仮想化クラウドインフラストラクチャにおいて、レイヤ3およびレイヤ2の両方の機能を提供する。前述したように、レイヤ3ベースのネットワーキングは、レイヤ2ネットワーキングによって提供されていない特定の能力、特に拡張に適する能力を提供する。レイヤ3機能に加えてレイヤ2機能を提供することにより、より拡張可能な方法でレイヤ2機能を提供すると共に、(例えば、より拡張可能なソリューションを提供するように)レイヤ3によって提供された能力を活用することができる。例えば、レイヤ3を仮想化することは、学習のためにブロードキャストを使用しなければならないことを回避する。レイヤ3能力を提供すると同時に、レイヤ2機能を必要とするアプリケーションおよびレイヤ2機能を持たないと機能しないアプリケーションを可能にし、非IPプロトコルなどをサポートするための仮想化レイヤ2を提供することによって、仮想化クラウド環境の完全な柔軟性を顧客に提供することができる。
顧客自身は、レイヤ3環境と共にレイヤ2環境が存在するハイブリッド環境を持っており、仮想化クラウド環境は、これらの環境の両方をサポートすることができる。顧客は、サブネットなどのレイヤ3ネットワークおよび/またはVLANなどのレイヤ2ネットワークを持つことができ、これらの2つの環境は、仮想化クラウド環境内で互いに会話することができる。
また、仮想化クラウド環境は、マルチテナンシをサポートする必要がある。マルチテナンシは、レイヤ3機能およびレイヤ2機能の両方を同じ仮想化クラウド環境にプロビジョニングすることを技術的に困難かつ複雑にする。例えば、レイヤ2ブロードキャストドメインは、クラウドプロバイダのインフラストラクチャ内の多くの異なる顧客にわたって管理されなければならない。本開示に記載されている実施形態は、これらの技術的問題を克服する。
仮想化プロバイダ(例えばVmware)の場合、物理レイヤ2ネットワークをエミュレートする仮想化レイヤ2ネットワークは、ワークロードを変更せずに実行することができる。このような仮想化プロバイダによって提供されたアプリケーションは、クラウドインフラストラクチャによって提供された仮想化レイヤ2ネットワーク上で動作することができる。例えば、このようなアプリケーションは、レイヤ2ネットワーク上で動作する必要がある一組のインスタンスを含む場合がある。顧客がこのようなアプリケーションを自分自身のオンプレミス環境から仮想化クラウド環境にリフトおよびシフトしたい場合、クラウド環境にこれらのアプリケーションを実行することができない。なぜなら、これらのアプリケーションは、現在の仮想化クラウドプロバイダによって提供されていない基礎レイヤ2ネットワーク(例えば、仮想マシンをMACおよびIPアドレスが存在する場所に移行するまたは移動するために使用されるレイヤ2ネットワーク機能)に依存するからである。これらの理由により、このようなアプリケーションは、仮想化クラウド環境においてネイティブに動作することができない。クラウドプロバイダは、本開示に記載されている技術を用いて、仮想化レイヤ3ネットワークを提供するだけでなく、仮想化レイヤ2ネットワークも提供する。これによって、このようなアプリケーションスタックは、変更されることなくクラウド環境に動作することができ、クラウド環境にネスト化した仮想化を実行することができる。顧客は、クラウド上で自分自身のレイヤ2アプリケーションを実行および管理することができる。アプリケーションプロバイダは、これを容易にするためにソフトウェアに変更を加える必要がない。これによって、このようなレガシーアプリケーションまたはワークロード(例えば、レガシーロードバランサ、レガシーアプリケーション、KVM、Openstack、クラスタリングソフトウェア)は、変更されることなく、仮想化クラウド環境に実行されてもよい。
本開示に記載されているように仮想化レイヤ2機能を提供することによって、仮想化クラウド環境は、非IPプロトコルを含む様々なレイヤ3プロトコルをサポートすることができる。イーサネット(登録商標)を例にすると、様々な非IPプロトコルを含む様々な異なるイーサタイプ(送信されるレイヤ3パケットの種類または期待されるレイヤ3プロトコルを含むレイヤ2ヘッダのフィールド)をサポートすることができる。イーサタイプは、イーサネットフレーム内の2オクテットフィールド(two-octet field)である。イーサタイプは、どのプロトコルがフレームのペイロードにカプセル化されているかを示すために使用され、ペイロードをどのように処理するかを決定するためにデータリンクレイヤによって受信端で使用される。イーサタイプは、イーサネットトランクを介して他のVLANトラフィックとの多重化送信を行うため、VLANからのパケットをタグ付け、カプセル化する802.1Q VLANの基礎として使用される。イーサタイプの例は、IPV4、IPV6、アドレス解決プロトコル(ARP)、AppleTalk(登録商標)、IPXなどを含む。レイヤ2プロトコルをサポートするクラウドネットワークは、任意のレイヤ3プロトコルをサポートすることができる。同様に、クラウドインフラストラクチャは、レイヤ3プロトコルをサポートする場合、TCP、UDP、ICMPなどの様々なレイヤ4プロトコルをサポートすることができる。ネットワークは、レイヤ3で仮想化された場合、レイヤ4プロトコルに依存しない。同様に、ネットワークは、レイヤ2で仮想化された場合、レイヤ3プロトコルに依存しない。この技術は、FDDI、インフィニバンド(登録商標)などを含む任意のレイヤ2ネットワークをサポートするように拡張することができる。
したがって、物理ネットワーク用に作成された多くのアプリケーション、特にブロードキャストドメインを共有するコンピュータノードのクラスタで動作するアプリケーションは、L3仮想ネットワークによってサポートされていないレイヤ2機能を使用する。以下の6つの例は、レイヤ2ネットワーキング機能を提供しないことから生じ得る複雑さを強調するものである。
(1)先行するAPIコールなしでMACおよびIPの割り当て。ネットワーク装置およびハイパーバイザ(例えば、Vmware)は、仮想クラウドネットワーク用に構築されたものではなかった。これらは、MACが固有である限りMACを使用することができ、DHCPサーバから動的アドレスを取得するか、またはクラスタに割り当てられた任意のIPを使用することができると仮定する。これらのレイヤ2アドレスおよびレイヤ3アドレスの割り当てを制御プレーンに通知するように構成できる機構は、しばしば存在しない。MACおよびIPがどこにあるか分からない場合、レイヤ3仮想ネットワークは、トラフィックをどこに送信するかを知らない。
(2)高可用性およびライブマイグレーション(live migration)のためのMACおよびIPの低遅延再割り当て。多くのオンプレミスアプリケーションは、高可用性のために、ARPを使用してIPおよびMACを再割り当てる。クラスタまたはHAペア内のインスタンスが応答しなくなる時に、新しくアクティブになったインスタンスは、GARP(Gratuitous ARP)を送信することによってサービスIPをそのMACに再割り当てる、またはRARP(Reverse ARP)を送信することによってサービスMACをそのインターフェイスに再割り当てる。これは、ハイパーバイザ上でインスタンスをライブマイグレーションするときにも重要である。ゲストが移行されると、ゲストトラフィックが新しいホストに送信されるように、新しいホストは、RARPを送信しなければならない。この割り当ては、APIコールなしで行われるだけでなく、非常に低い遅延(ミリ秒未満)で行われる必要もある。これは、RESTエンドポイントへのHTTPSコールでは達成できない。
(3)MACアドレスによるインターフェイス多重化。ハイパーバイザが単一のホスト上で複数の仮想マシンをホストし、全ての仮想マシンが同じネットワーク上にある場合、ゲストインターフェイスは、MACによって区別される。このため、同じ仮想インターフェイス上で複数のMACをサポートする必要がある。
(4)VLANのサポート。単一の物理仮想マシンホストは、VLANタグを使用して示されたように、複数のブロードキャストドメイン上に配置される必要がある。例えば、Vmware ESXは、VLANを使用してトラフィックを分ける(例えば、ゲスト仮想マシンは、1つのVLAN上で通信することができ、別のVLAN上で記憶することができ、さらに別のVLAN上で仮想マシンをホストすることができる)。
(5)ブロードキャストおよびマルチキャストトラフィックの使用。ARPは、L2ブロードキャストを必要とし、例示的なオンプレミスアプリケーションは、クラスタおよびHA用途でブロードキャストおよびマルチキャストトラフィックを使用する。
(6)非IPトラフィックのサポート。L3ネットワークは、通信にIPv4またはIPv6ヘッダを必要とするため、IP以外のL3プロトコルを使用すると動作しない。L2仮想化により、VLAN内のネットワークは、L3プロトコルに依存しなくなる。この場合、L3ヘッダは、IPv4、IPv6、IPX、または他の何かであってもよく、全く存在しなくてもよい。
本開示に記載されているように、クラウドネットワーク内にレイヤ2(L2)ネットワークを作成することができる。この仮想L2ネットワークは、1つ以上の仮想L2VLAN(本開示ではVLANと呼ぶ)を含む。各VLANは、複数の計算インスタンスを含むことができ、各計算インスタンスは、少なくとも1つのL2仮想インターフェイス(例えば、L2VNIC)およびローカルスイッチに関連付けることができる。いくつかの実施形態において、各対のL2VNICおよびスイッチは、NVD上でホストされている。NVDは、複数のこのような対をホストすることができ、各対は、異なる計算インスタンスに関連付けられる。ローカルスイッチの集合は、エミュレートされたVLANの単一スイッチを表す。L2VNICは、エミュレートされた単一スイッチ上のポートの集合を表す。VLANは、本開示では実仮想ルータ(RVR)またはL2VSRSとも呼ばれるVLANスイッチングおよびルーティングサービス(VSRS)を介して、他のVLAN、レイヤ3(L3)ネットワーク、オンプレミスネットワーク、および/または他のネットワークに接続することができる。
図6を参照して、図6は、一実施形態のコンピューティングネットワークの概略図を示している。VCN602は、CSPI601に常駐する。VCN602は、VCN602を他のネットワークに接続するための複数のゲートウェイを含む。これらのゲートウェイは、例えば、VCN602をオンプレミスデータセンタ606などのオンプレミスネットワークに接続することができるDRG604を含む。ゲートウェイは、例えば、VCN602を別のVCNに接続するためのLPG、および/またはVCN602をインターネットに接続するためのIGWおよび/またはNATゲートウェイを含み得るゲートウェイ600をさらに含むことができる。VCN602のゲートウェイは、VCN602をサービスネットワーク612に接続するためのサービスゲートウェイ610をさらに含むことができる。サービスネットワーク612は、例えば、自律データベース614および/またはオブジェクトストア616を含む1つ以上のデータベースおよび/またはストアを含むことができる。サービスネットワークは、例えばパブリックIP範囲であり得るIP範囲の集合を含む概念ネットワークを含むことができる。いくつかの実施形態において、これらのIP範囲は、CSPI601プロバイダによって提供されるパブリックサービスの一部または全部をカバーすることができる。これらのサービスは、例えば、インターネットゲートウェイまたはNATゲートウェイを介してアクセスすることができる。いくつかの実施形態において、サービスネットワークは、サービスにアクセスするための専用ゲートウェイ(サービスゲートウェイ)を介して、ローカル地域からサービスネットワーク内のサービスにアクセスするための方法を提供する。いくつかの実施形態において、これらのサービスのバックエンド(backend)は、例えば、それ自体のプライベートネットワークに実装することができる。いくつかの実施形態において、サービスネットワーク612は、さらなる追加のデータベースを含むことができる。
VCN602は、複数の仮想ネットワークを含むことができる。これらのネットワークの各々は、各ネットワーク内で、ネットワーク間で、またはVCN602の外部で通信することができる1つ以上の計算インスタンスを含むことができる。VCN602の仮想ネットワークの1つは、L3サブネット620である。L3サブネット620は、VCN602内で作成された構成単位または区画である。サブネット620は、VCN602の仮想化クラウド環境内の仮想レイヤ3ネットワークを含むことができ、このVCN602は、CPSI601の基礎物理ネットワーク上でホストされている。図6は、1つのみのサブネット620を示しているが、VCN602は、1つ以上のサブネットを含むことができる。VCN602内の各サブネットは、当該VCN内の他のサブネットと重複せず、当該VCNのアドレス空間のアドレス空間サブセットを表すオーバーレイIPアドレス(例えば、10.0.0.0/24および10.0.1.0/24)の連続範囲に関連付けられることができる。いくつかの実施形態において、このIPアドレス空間は、CPSI601に関連付けられたアドレス空間から隔離することができる。
サブネット620は、1つ以上の計算インスタンス、具体的には、第1の計算インスタンス622-Aおよび第2の計算インスタンス622-Bを含む。計算インスタンス622-Aおよび622-Bは、サブネット620内で互いに通信することができ、またはサブネット620の外部の他のインスタンス、装置および/またはネットワークと通信することができる。仮想ルータ(VR)624は、サブネット620の外部の通信を可能にする。VR624は、サブネット620とVCN602の他のネットワークとの間の通信を可能にする。サブネット620の場合、VR624は、サブネット620(すなわち、計算インスタンス622-Aおよび622-B)がVCN602内の他のネットワーク上のエンドポイントと、VCN602の外部の別のエンドポイントとの通信を可能にする論理ゲートウェイを表す。
VCN602は、追加のネットワークをさらに含むことができ、具体的には、仮想L2ネットワークの一例である1つ以上のL2VLAN(本開示ではVLANと呼ばれる)を含むことができる。これらの1つ以上のVLANの各々は、VCN602のクラウド環境に配置され、および/またはCPSI601の基礎物理ネットワークによってホストされている仮想レイヤ2ネットワークを含むことができる。図6の実施形態において、VCN602は、VLAN A630およびVLAN B640を含む。VCN602内の各VLAN630、640は、当該VCN内の他のサブネットまたはVLANなどの他のネットワークと重複せず、当該VCNのアドレス空間のアドレス空間サブセットを表すオーバーレイIPアドレス(例えば、10.0.0.0/24および10.0.1.0/24)の連続範囲に関連付けられることができる。いくつかの実施形態において、このVLANのIPアドレス空間は、CPSI601に関連付けられたアドレス空間から隔離することができる。
VLAN630、640の各々は、1つ以上の計算インスタンスを含むことができる。具体的には、VLAN A630は、例えば、第1の計算インスタンス632-Aおよび第2の計算インスタンス632-Bを含むことができる。いくつかの実施形態において、VLAN A630は、追加の計算インスタンスを含むことができる。VLAN B640は、例えば、第1の計算インスタンス642-Aおよび第2の計算インスタンス642-Bを含むことができる。計算インスタンス632-A、632-B、642-Aおよび642-Bの各々は、IPアドレスおよびMACアドレスを持つことができる。これらのアドレスは、任意の所望の方法で割り当てられてもよく、または生成されてもよい。いくつかの実施形態において、これらのアドレスは、計算インスタンスのVLANのCIDR内にあってもよい。いくつかの実施形態において、これらのアドレスは、任意のアドレスであってもよい。VLANの計算インスタンスがVLANの外部のエンドポイントと通信する実施形態において、これらのアドレスの一方または両方は、VLAN CIDRからのものであるが、全ての通信がVLAN域内通信である場合、これらのアドレスは、VLAN CIDR内のアドレスに限定されない。アドレスが制御プレーンによって割り当てられるネットワークとは対照的に、VLAN内の計算インスタンスのIPアドレスおよび/またはMACアドレスは、そのVLANのユーザ/顧客によって割り当てられてもよく、これらのIPアドレスおよび/またはMACアドレスは、後述の学習プロセスに従って、VLAN内の計算インスタンスによって発見および/または学習されてもよい。
VLANの各々は、VLANスイッチングおよびルーティングサービス(VSRS)を含むことができる。具体的には、VLAN A630は、VSRS A634を含み、VLAN B640は、VSRS B644を含む。各VSRS634、644は、VLAN内のレイヤ2スイッチングおよびローカル学習に参加し、ARP、NDPおよびルーティングを含む全ての必要なレイヤ3ネットワーク機能を実行する。VSRSは、IPをMACにマッピングする必要があるため、(レイヤ2プロトコルである)ARPを実行する。
これらのクラウドベースのVLANにおいて、各仮想インターフェイスまたは仮想ゲートウェイは、1つ以上の媒体アクセス制御(MAC)アドレスと関連付けられてもよく、1つ以上のMACアドレスは、仮想MACアドレスであってもよい。例えば、ベアメタル、VM、またはコンテナであり得るVLAN内の1つ以上の計算インスタンス632-A、632-B、642-A、642-B、および/または1つ以上のサービスインスタンスは、仮想スイッチを介して互いに直接に通信することができる。他のVLANまたはL3ネットワークとのVLANの外部の通信は、VSRS634、644を介して可能になる。VSRS634、644は、IPルーティングなどのレイヤ3機能をVLANネットワークに提供する分散型サービスである。いくつかの実施形態において、VSRS634、644は、IPネットワークおよびL2ネットワークの交差点に配置され、クラウドベースのL2ドメイン内でIPルーティングおよびL2学習に参加することができ、水平に拡張可能な高可用性のルーティングサービスである。
VSRS634、644は、インフラストラクチャ内の複数のノードにわたって分散されてもよい。VSRS634、644機能は、拡張可能であり、具体的には水平に拡張可能である。いくつかの実施形態において、VSRS634、644の機能を実装するノードの各々は、ルータおよび/またはスイッチの機能を互いに共有し、複製する。また、これらのノードは、VLAN630、640内の全てのインスタンスに対して、単一のVSRS634、644として自分自身を提示することができる。VSRS634、644は、CSPI601内の任意の仮想化装置に、具体的には仮想ネットワークに実装されてもよい。したがって、いくつかの実施形態において、VSRS634、644は、NIC、スマートNIC、スイッチ、スマートスイッチまたは汎用計算ホストを含む任意の仮想ネットワーク仮想化装置上で実装されてもよい。
VSRS634、644は、1つ以上のハードウェアノード、例えば1つ以上のx86サーバなどの1つ以上のサーバ、または1つ以上のネットワーキング装置、例えば1つ以上のNIC、特に1つ以上のスマートNIC上に常駐し、クラウドネットワークをサポートするサービスであってもよい。いくつかの実施形態において、VSRS634、644は、サーバ群上で実装されてもよい。したがって、VSRS634、644は、ノード群にわたって分散されるサービスであってもよい。このノード群は、ルーティングおよびセキュリティポリシーを評価すると共にL2およびL3学習に参加および共有し、集中管理されている仮想ネットワーキングエンフォーサ群であってもよく、または仮想ネットワーキングエンフォーサ群のエッジに分散されてもよい。いくつかの実施形態において、VSRSインスタンスの各々は、1つのVSRSインスタンスによって学習された新しいマッピング情報で他のVSRSインスタンスを更新することができる。例えば、1つのVSRSインスタンスがVLAN内の1つ以上のCIのIP、インターフェイス、および/またはMACマッピングを学習すると、当該VSRSインスタンスは、その更新情報をVCN内の他のVSRSインスタンスに提供することができる。この相互更新を介して、第1のVLANに関連付けられたVSRSインスタンスは、他のVLANのCI、いくつかの実施形態においてVCN602内の他のVLANのCIのIP、インターフェイス、および/またはMACマッピングを含むマッピングを知ることができる。VSRSがサーバ群上に常駐する場合および/またはノード群にわたって分散される場合、これらの更新を大幅に加速することができる。
いくつかの実施形態において、VSRS634、644は、DHCPリレー、DHCP(ホスティング)、DHCPv6、IPv6近隣発見プロトコルなどの近隣発見プロトコル、DNS、ホスティングDNSv6、IPv6用のSLAAC、NTP、メタデータサービス、およびブロックストアマウントポイントを含むがこれらに限定されないネットワーキングに必要な1つ以上のより高レベルサービスをホストすることができる。いくつかの実施形態において、VSRSは、ネットワークアドレス空間を変換するための1つ以上のネットワークアドレス変換(NAT)機能をサポートすることができる。いくつかの実施形態において、VSRSは、なりすまし防止、MACなりすまし防止、IPv4のARPキャッシュ中毒保護、IPv6ルート広告(RA)防御、DHCP防御、アクセス制御リスト(ACL)を使用したパケットフィルタリング、および/または逆パス転送チェックを組み込むことができる。VSRSは、例えば、ARP、GARP、パケットフィルタ(ACL)、DHCPリレー、および/またはIPルーティングプロトコルを含む機能を実装することができる。VSRS634、644は、例えば、MACアドレスの学習、期限切れのMACアドレスの無効化、MACアドレスの移動処理、MACアドレス情報の取得、MAC情報のフラッディング処理、ストーム制御処理、ループ防止、例えばクラウド内のIGMPなどのプロトコルを介したレイヤ2マルチキャスト、SNMPを使用したログおよび統計を含む統計の収集、および/またはブロードキャスト、総トラフィック、ビット、スパニングツリーパケットなどの統計の監視、収集および使用を行うことができる。
仮想ネットワークにおいて、VSRS634、644は、異なるインスタンス化として現れることができる。いくつかの実施形態において、これらのVSRSインスタンス化の各々は、VLAN630、640に関連付けることができ、いくつかの実施形態において、各VLAN630、640は、VSRS634、644のインスタンス化を有することができる。いくつかの実施形態において、VSRS634、644の各インスタンス化は、VSRS634、644のインスタンス化が関連付けられたVLAN630、640に対応する1つ以上の固有のテーブルを有することができる。VSRS634、644の各インスタンス化は、VSRS634、644のインスタンス化に関連する固有のテーブルを生成および/またはキュレートすることができる。したがって、単一のサービスが1つ以上のクラウドネットワークに対してVSRS634、644機能を提供することができるが、クラウドネットワーク内のVSRS634、644の個々のインスタンス化は、固有のレイヤ2転送テーブルおよびレイヤ3転送テーブルを有することができ、このような複数の顧客ネットワークは、オーバーラップしたレイヤ2転送テーブルおよびレイヤ3転送テーブルを有することができる。
いくつかの実施形態において、VSRS634、644は、複数のテナントにわたって競合するVLANおよびIP空間をサポートすることができる。これは、同じVSRS634、644上に複数のテナントを有することを含むことができる。いくつかの実施形態において、これらのテナントの一部または全部は、同じIPアドレス空間、同じMAC空間、および同じVLAN空間のうちの一部または全部を選択して使用することができる。これにより、アドレスを選択するユーザに極めて高い柔軟性を提供することができる。いくつかの実施形態において、このマルチテナンシは、各テナントに別個の仮想ネットワークを提供することによってサポートされ、この仮想ネットワークは、クラウドネットワーク内のプライベートネットワークである。各仮想ネットワークには固有の識別子が与えられる。同様に、いくつかの実施形態において、各ホストは、固有の識別子を有することができ、および/または各仮想インターフェイスもしくは仮想ゲートウェイは、固有の識別子を有することができる。いくつかの実施形態において、これらの固有の識別子、具体的にはテナントの仮想ネットワークの固有の識別子を各通信に符号化することができる。各仮想ネットワークに固有の識別子を与え、これを通信に含めることによって、VSRS634、644の単一のインスタンス化は、重複するアドレスおよび/または名前空間を有する複数のテナントにサービスを提供することができる。
VSRS634、644は、これらのスイッチング機能および/またはルーティング機能を実行することによって、VLAN630、640内のL2ネットワークの作成および/または当該L2ネットワークとの通信を容易にするおよび/または可能にすることができる。VLAN630、640は、クラウドコンピューティング環境に、より具体的には、当該クラウドコンピューティング環境内の仮想ネットワークに配置されてもよい。
例えば、VLAN630、640の各々は、複数の計算インスタンス632-A、632-B、642-A、および642-Bを含む。VSRS634、644は、1つのVLAN630またはVLAN640内の計算インスタンスと、別のVLAN630、VLAN640またはサブネット620内の計算インスタンスとの間の通信を可能にする。いくつかの実施形態において、VSRS634、644は、1つのVLAN630またはVLAN640内の計算インスタンスと、別のVCN、インターネット、オンプレミスデータセンタなどを含むVCNの外部の別のネットワークとの間の通信を可能にする。このような実施形態において、例えば、計算インスタンス632-Aなどの計算インスタンスは、VLANの外部のエンドポイント、この例ではL2VLAN A630の外部のエンドポイントに情報を送信することができる。計算インスタンス(632-A)は、VSRS A634に情報を送信することができ、VSRS A634は、情報を、所望のエンドポイントに通信可能に接続されたルータ624、644またはゲートウェイ604、608、610に送信することができる。所望のエンドポイントに通信可能に接続されたルータ624、644またはゲートウェイ604、608、610は、計算インスタンス(632-A)から情報を受信し、所望のエンドポイントに送信することができる。
図7を参照して、図7は、VLAN700の論理およびハードウェア概略図を示している。図示のように、VLAN700は、複数のエンドポイントを含み、具体的には複数の計算インスタンスおよびVSRSを含む。複数の計算インスタンス(CI)は、1つ以上のホストマシン上でインスタンス化されている。いくつかの実施形態において、これは、各CIが固有のホストマシン上でインスタンス化されるという1対1の関係であってもよく、および/またはいくつかの実施形態において、これは、複数のCIが単一の共通ホストマシン上でインスタンス化されるという多対1の関係であってもよい。様々な実施形態において、CIは、L2プロトコルを使用して互いに通信するように構成されたレイヤ2CIであってもよい。図7は、いくつかのCIが固有のホストマシン上でインスタンス化され、いくつかのCIが共通のホストマシンを共有するシナリオを示している。図7に示すように、インスタンス1(CI1)704-Aは、ホストマシン1 702-A上でインスタンス化され、インスタンス2(CI2)704-Bは、ホストマシン2 702-B上でインスタンス化され、インスタンス3(CI3)704-Cおよびインスタンス4(CI4)704-Dは、共通ホストマシン702-C上でインスタンス化される。
CI704-A、704-B、704-C、および704-Dの各々は、VLAN700内の他のCI704-A、704-B、704-C、および704-Dに通信可能に接続され、VSRS714に通信可能に接続されている。具体的には、CI704-A、704-B、704-C、および704-Dの各々は、L2VNICおよびスイッチを介して、VLAN700内の他のCI704-A、704-B、704-C、および704-Dに接続され、VSRS714に接続されている。各CI704-A、704-B、704-C、および704-Dは、固有のL2VNICおよびスイッチに関連付けられる。スイッチは、ローカルであり、L2VNICに一意に関連付けられ、L2VNICのために展開されたL2仮想スイッチであってもよい。具体的には、CI1 704-Aは、L2VNIC 1 708-Aおよびスイッチ1 710-Aに関連付けられ、CI2 704-Bは、L2VNIC 2 708-Bおよびスイッチ710-Bに関連付けられ、CI3 704-Cは、L2VNIC 3 708-Cおよびスイッチ3 710-Cに関連付けられ、CI4 704-Dは、L2VNIC4 708-Dおよびスイッチ4 710-Dに関連付けられる。
いくつかの実施形態において、各L2VNIC708および関連するスイッチ710は、NVD706上でインスタンス化されてもよい。このインスタンス化は、単一のL2VNIC708および関連するスイッチ710が固有のNVD706上でインスタンス化されるという1対1の関係であってもよく、またはこのインスタンス化は、複数のL2VNIC708および関連するスイッチ710が単一の共通のNVD706上でインスタンス化されるという多対1の関係であってもよい。具体的には、L2VNIC1 708-Aおよびスイッチ1 710-Aは、NVD1 706-A上でインスタンス化され、L2VNIC2 708-Bおよびスイッチ2 710-Bは、NVD2上でインスタンス化され、L2VNIC3 708-Cおよびスイッチ3 710-CとL2VNIC4 708-Dおよびスイッチ710-Dとの両方は、共通のNVD、すなわち、NVD 706-C上でインスタンス化される。
いくつかの実施形態において、VSRS714は、複数のテナントにわたって競合するVLANおよびIP空間をサポートすることができる。これは、同じVSRS714上に複数のテナントを有することを含むことができる。いくつかの実施形態において、これらのテナントの一部または全部は、同じIPアドレス空間、同じMAC空間、および同じVLAN空間のうちの一部または全部を選択して使用することができる。これは、アドレスを選択する際にユーザに極めて高い柔軟性を提供することができる。いくつかの実施形態において、このマルチテナンシは、各テナントに別個の仮想ネットワークを提供することによってサポートされ、この仮想ネットワークは、クラウドネットワーク内のプライベートネットワークである。各仮想ネットワーク(例えば、各VLANまたはVCN)には、VLAN識別子であり得るVCN識別子などの固有の識別子が与えられる。この固有の識別子は、例えば、制御プレーンによって、具体的には、CSPIの制御プレーンによって選択されてもよい。いくつかの実施形態において、この固有の識別子は、パケットカプセル化に含まれ得るおよび/または使用され得る1つ以上のビットを含むことができる。
同様に、いくつかの実施形態において、各ホストは、固有の識別子を有することができ、および/または各仮想インターフェイスもしくは仮想ゲートウェイは、固有の識別子を有することができる。いくつかの実施形態において、これらの固有の識別子、具体的にはテナントの仮想ネットワークの固有の識別子を各通信に符号化することができる。各仮想ネットワークに固有の識別子を与え、これを通信内に含めることによって、VSRSの単一のインスタンス化は、重複するアドレスおよび/または名前空間を有する複数のテナントにサービスを提供することができる。
いくつかの実施形態において、VSRS714は、通信に関連付けられたVCN識別子および/またはVLAN識別子に基づいて、具体的には通信のVCNヘッダ内のVCN識別子および/またはVLAN識別子に基づいて、パケットがどのテナントに属するかを判断することができる。本開示に開示された実施形態において、VLANに出入りする通信は、VLAN識別子を含み得るVCNヘッダを有することができる。VLAN識別子を含むVCNヘッダに基づいて、VSRSは、テナントを決定することができる。言い換えれば、受信VSRSは、通信をどのVLANおよび/またはどのテナントに送信するかを決定することができる。
また、VLANに属する各計算インスタンス(例えば、L2計算インスタンス)には、当該計算インスタンスに関連するL2VNICを特定する固有のインターフェイス識別子が与えられる。インターフェイス識別子は、コンピュータインスタンスからのトラフィックおよび/またはコンピュータインスタンスへのトラフィック(例えば、フレームのヘッダ)に含まれてもよく、計算インスタンスに関連するL2VNICを特定するためにNVDによって使用されてもよい。言い換えれば、インターフェイス識別子は、計算インスタンスおよび/またはそれに関連するL2VNICを一意に示すことができる。図7に示すように、スイッチ710-A、710-B、710-C、および710-Dは、共に、本開示では分散スイッチ712とも呼ばれるL2分散スイッチ712を形成することができる。顧客の観点から、L2分散スイッチ712内の各スイッチ710-A、710-B、710-C、および710-Dは、VLAN内の全てのCIに接続されている単一スイッチである。しかしながら、単一スイッチのユーザ体験をエミュレートする分散スイッチは、無限に拡張可能であり、ローカルスイッチの集合体(例えば、図7の例示において、スイッチ710-A、710-B、710-C、および710-D)を含む。図7に示すように、各CIは、NVDに接続されているホストマシン上で動作する。NVDに接続されているホスト上の各CIについて、NVDは、計算インスタンスに関連するレイヤ2VNICおよびローカルスイッチ(例えば、NVDにローカルに配置され、レイヤ2VNICに関連付けられ、L2分散スイッチ712の1つのメンバまたは構成要素であるL2仮想スイッチ)をホストする。レイヤ2VNICは、レイヤ2VLAN内の計算インスタンスのポートを表す。ローカルスイッチは、L2VNICを、レイヤ2VLAN内の他の計算インスタンスに関連する他のL2VNIC(例えば、他のポート)に接続する。
CI704-A、704-B、704-C、および704-Dの各々は、VLAN700内のCI704-A、704-B、704-C、および704-Dの他のものと通信することができ、またはVSRS714と通信することができる。CI704-A、704-B、704-C、および704-Dのうちの1つは、パケットを、CI704-A、704-B、704-C、および704-Dのうちの1つの受信CIのMACアドレスおよびインターフェイスまたはVSRS714に送信することによって、パケットをCI704-A、704-B、704-C、および704-Dのうちの別のものにまたはVSRS714に送信する。MACアドレスおよびインターフェイス識別子は、パケットのヘッダに含まれてもよい。上記で説明したように、インターフェイス識別子は、CI704-A、704-B、704-C、および704-Dのうちの1つの受信CIのL2VNIC、またはVSRS714のL2VNICを示すことができる。
一実施形態において、CI1 704-Aは、ソースC1であってもよく、L2VNIC708-Aは、ソースVNICであってもよく、スイッチ710-Aは、ソーススイッチであってもよい。この実施形態において、CI3 704-Cは、宛先CIであってもよく、L2VNIC3 708-Cは、宛先VNICであってもよい。ソースCIは、ソースMACアドレスおよび宛先MACアドレスを含むパケットを送信することができる。このパケットは、ソースVNICおよびソーススイッチをインスタンス化するNVD706-Aによって傍受されてもよい。
VLAN700のL2VNIC708-A、708-B、708-C、および708-Dの各々は、L2VNICのMACアドレス対インターフェイス識別子マッピングを学習することができる。このマッピングは、VLAN700から受信したパケットおよび/または情報に基づいて学習することができる。ソースVNICは、この予め決定したマッピングに基づいて、VLAN内の宛先CIに関連する宛先インターフェイスのインターフェイス識別子を決定することができ、パケットをカプセル化することができる。いくつかの実施形態において、このカプセル化は、GENEVEカプセル化、具体的には、パケットのL2(イーサネット(登録商標))ヘッダのカプセル化を含むL2GENEVEカプセル化を含むことができる。カプセル化されたパケットは、宛先MAC、宛先インターフェイス識別子、ソースMAC、およびソースインターフェイス識別子を特定することができる。
ソースVNICは、カプセル化されたパケットをソーススイッチに送信することができ、ソーススイッチは、パケットを宛先VNICに送信することができる。パケットを受信すると、宛先VNICは、パケットをデカプセル化した後、パケットを宛先CIに提供することができる。
図8を参照して、複数の接続されたL2VLAN800の論理概略図が示される。図8に示す特定の実施形態において、両方のVLANは、同じVCNに配置されている。図示のように、接続されている複数のL2VLAN800は、第1のVLANであるVLAN A802-Aと、第2のVLANであるVLAN B802-Bとを含むことができる。これらのVLAN802-A、802-Bの各々は、1つ以上のCIを含むことができ、各CIは、関連するL2VNICおよび関連するL2仮想スイッチを有することができる。また、これらのVLAN802-A、802-Bの各々は、VSRSを含むことができる。
具体的には、VLAN A 802-Aは、L2VNIC1 806-Aおよびスイッチ1 808-Aに接続されたインスタンス1 804-Aと、L2VNIC2 806-Bおよびスイッチ808-Bに接続されたインスタンス2 804-Bと、L2VNIC3 806-Cおよびスイッチ3 808-Cに接続されたインスタンス3 804-Cとを含むことができる。VLAN B 802-Bは、L2VNIC4 806-Dおよびスイッチ4 808-Dに接続されたインスタンス4 804-Dと、L2VNIC5 806-Eおよびスイッチ808-Eに接続されたインスタンス5 804-Eと、L2VNIC6 806-Fおよびスイッチ3 808-Fに接続されたインスタンス6 804-Fとを含むことができる。また、VLAN A 802-Aは、VSRS A 810-Aを含むことができ、VLAN B 802-Bは、VSRS B 810-Bを含むことができる。VLAN A 802-AのCI804-A、804-B、804-Cの各々は、VSRS A 810-Aに通信可能に接続されてもよく、VLAN B 802-BのCIS804-D、804-E、804-Fの各々は、VSRS B 810-Bに通信可能に接続されてもよい。
VLAN A 802-Aは、対応するVSRS810-A、810-Bを介してVLAN B 802-Bに通信可能に接続されてもよい。同様に、各VSRSは、ゲートウェイ812に接続されてもよく、ゲートウェイ812は、各VLAN802-A、802-B内のCI804-A、804-B、804-C、804-D、804-E、および804-Fから、VLAN802-A、802-Bが配置されているVCNの外部の他のネットワークへのアクセスを提供することができる。いくつかの実施形態において、これらのネットワークは、例えば、1つ以上のオンプレミスネットワーク、別のVCN、サービスネットワーク、インターネットなどのパブリックネットワークを含むことができる。
VLAN A 802-A内のCI804-A、804-B、804-Cの各々は、各VLAN802-A、802-BのVSRS810-A、810-Bを介して、VLAN B 802-B内のCI804-D、804-E、804-Fと通信することができる。例えば、VLAN802-A、802-Bのうちの一方に配置されているCI804-A、804-B、804-C、804-D、804-E、804-Fのうちの1つは、パケットを、VLAN802-A、802-Bのうちの他方に配置されているCI804-A、804-B、804-C、804-D、804-E、804-Fに送信することができる。このパケットは、ソースVLANのVSRSを介してソースVLANから送信され、宛先VLANによって受信され、宛先VSRSを介して宛先CIに転送されてもよい。
一実施形態において、C1 1 804-Aは、ソースC1であってもよく、L2VNIC 806-Aは、ソースVNICであってもよく、スイッチ808-Aは、ソーススイッチであってもよい。この実施形態において、C1 5 804-Eは、宛先CIであってもよく、L2VNIC5 806-Eは、宛先VNICであってもよい。VSRS A 810-Aは、SVSRSとして識別されるソースVSRSであってもよく、VSRS B 810-Bは、DVSRSとして識別される宛先VSRSであってもよい。
ソースCIは、MACアドレスを含むパケットを送信することができる。このパケットは、ソースVNICをインスタンス化するNVDおよびソーススイッチによって傍受されてもよい。ソースVNICは、パケットをカプセル化する。いくつかの実施形態において、このカプセル化は、Geneveカプセル化、具体的にはL2Geneveカプセル化を含むことができる。カプセル化されたパケットは、宛先CIの宛先アドレスを特定することができる。いくつかの実施形態において、この宛先アドレスは、宛先VSRSの宛先アドレスを含むこともできる。宛先CIの宛先アドレスは、宛先IPアドレス、宛先CIの宛先MAC、および/または宛先CIの宛先VNICの宛先インターフェイス識別子を含むことができる。宛先VSRSの宛先アドレスは、宛先VSRSのIPアドレス、宛先VSRSに関連する宛先VNICのインターフェイス識別子、および/または宛先VSRSのMACアドレスを含むことができる。
ソースVSRSは、ソーススイッチからパケットを受信することができ、宛先IPアドレスであり得るパケットの宛先アドレスからVNICマッピングを検索することができ、パケットを宛先VSRSに転送することができる。宛先VSRSは、パケットを受信することができる。パケットに含まれる宛先アドレスに基づいて、宛先VSRSは、パケットを宛先VNICに転送することができる。宛先VNICは、パケットを受信してデカプセル化した後、パケットを宛先CIに提供することができる。
図9を参照して、図9は、接続された複数のL2VLANおよびサブネット900の論理概略図を示している。図9に示す特定の実施形態において、VLANとサブネットの両方は、同じVCNに配置されている。これは、VLANおよびサブネットの両方の仮想ルータおよびVSRSが、ゲートウェイを介して接続されるのではなく、直接に接続されていることを示す。
図示のように、これは、第1のVLANであるVLAN A 902-A、第2のVLANであるVLAN B 902-B、およびサブネット930を含むことができる。これらのVLAN902-A、902-Bの各々は、1つ以上のCIを含むことができ、各CIは、関連するL2VNICおよび関連するL2スイッチを含むことができる。また、これらのVLAN902-A、902-Bの各々は、VSRSを含むことができる。同様に、L3サブネットであり得るサブネット930は、1つ以上のCIを含むことができ、各CIは、関連するL3 VNICを含むことができ、L3サブネット930は、仮想ルータ916を含むことができる。
具体的には、VLAN A 902-Aは、L2VNIC1 906-Aおよびスイッチ1 908-Aに接続されたインスタンス1 904-Aと、L2VNIC2 906-Bおよびスイッチ908-Bに接続されたインスタンス2 904-Bと、L2VNIC3 906-Cおよびスイッチ3 908-Cに接続されたインスタンス3 904-Cとを含むことができる。VLAN B 902-Bは、L2VNIC4 906-Dおよびスイッチ4 908-Dに接続されたインスタンス4 904-Dと、L2VNIC5 906-Eおよびスイッチ908-Eに接続されたインスタンス5 904-Eと、L2VNIC6 906-Fおよびスイッチ3 908-Fに接続されたインスタンス6 904-Fとを含むことができる。VLAN A 902-Aは、VSRS A 910-Aをさらに含むことができ、VLAN B 902-Bは、VSRS B 910-Bを含むことができる。VLAN A 902-AのCI904-A、904-B、904-Cの各々は、VSRS A 910-Aに通信可能に接続されてもよく、VLAN B 902-BのCIS904-D、904-E、904-Fの各々は、VSRS B 910-Bに通信可能に接続されてもよい。L3サブネット930は、1つ以上のCIを含むことができ、具体的には、L3 VNIC7 906-Gに通信可能に接続されているインスタンス7 904-Gを含むことができる。L3サブネット930は、仮想ルータ916を含むことができる。
VLAN A 902-Aは、対応するVSRS910-A、910-Bを介してVLAN B 902-Bに通信可能に接続されてもよい。L3サブネット930は、仮想ルータ916を介してVLAN A 902-AおよびVLAN B 902-Bに通信可能に接続されてもよい。同様に、仮想ルータ916およびVSRSインスタンス910-A、910-Bの各々は、ゲートウェイ912に接続されてもよく、ゲートウェイ912は、各VLAN902-A、902-Bおよびサブネット930内のCI904-A、904-B、904-C、904-D、904-E、904-F、904-Gから、VLAN902-A、902-Bおよびサブネット930が配置されているVCNの外部の他のネットワークへのアクセスを提供することができる。いくつかの実施形態において、これらのネットワークは、例えば、1つ以上のオンプレミスネットワーク、別のVCN、サービスネットワーク、インターネットなどの公衆ネットワークを含むことができる。
各VSRSインスタンス910-A、910-Bは、関連するVLAN902-A、902-Bを出るパケットの送信経路と、関連するVLAN902-A、902-Bに入るパケットの受信経路とを提供することができる。パケットは、VLAN902-A、902-BのVSRSインスタンス910-A、910-Bから、同じVCN、異なるVCNまたはネットワーク上の別のVLAN内のL2エンドポイント、例えばL2 CI、および/または同じVCN、異なるVCNまたはネットワーク上のサブネット内のL3エンドポイント、例えばL3 CIを含む任意の所望のエンドポイントに送信されてもよい。
一実施形態において、CI1 904-Aは、ソースC1であってもよく、L2VNIC906-Aは、ソースVNICであってもよく、スイッチ908-Aは、ソーススイッチであってもよい。この実施形態において、CI7 904-Gは、宛先CIであってもよく、VNIC7 906-Gは、宛先VNICであってもよい。VSRS A 910-Aは、SVSRSとして識別されるソースVSRSであってもよく、仮想ルータ(VR)916は、宛先VRであってもよい。
ソースCIは、MACアドレスを含むパケットを送信することができる。このパケットは、ソースVNICをインスタンス化するNVDおよびソーススイッチによって傍受されてもよい。ソースVNICは、パケットをカプセル化する。いくつかの実施形態において、このカプセル化は、Geneveカプセル化、具体的にはL2Geneveカプセル化を含むことができる。カプセル化パケットは、宛先CIの宛先アドレスを特定することができる。いくつかの実施形態において、この宛先アドレスは、ソースCIのVLANのVSRSの宛先アドレスを含むこともできる。宛先CIの宛先アドレスは、宛先IPアドレス、宛先CIの宛先MAC、および/または宛先CIの宛先VNICの宛先インターフェイス識別子を含むことができる。
ソースVSRSは、ソーススイッチからパケットを受信することができ、宛先IPアドレスであり得るパケットの宛先アドレスからVNICマッピングを検索することができ、パケットを宛先VRに転送することができる。宛先VRは、パケットを受信することができる。パケットに含まれる宛先アドレスに基づいて、宛先VRは、パケットを宛先VNICに転送することができる。宛先VNICは、パケットを受信してデカプセル化した後、パケットを宛先CIに提供することができる。
仮想L2ネットワーク内の学習
図10を参照して、VLAN1000内のVLAN域内通信(intra-VLAN communication)および学習の一実施形態の概略図が示される。この学習は、L2VNIC、VSRS VNICおよび/またはL2仮想スイッチが、MACアドレスとL2VNIC/VSRS VNICとの間(より具体的には、L2計算インスタンスまたはVSRSに関連付けられたMACアドレスと、これらのL2計算インスタンスのL2VNICSに関連付けられたまたはVSRS VNICに関連付けられたインターフェイス識別子との間)の関連付けを学習する方法に関する具体的なものである。一般的に、学習は、受信トラフィック(ingress traffic)に基づく。インターフェイス対MACアドレス学習の態様の場合、この学習は、L2計算インスタンスが宛先MACアドレスを学習するために実施する学習プロセス(例えば、ARPプロセス)とは異なる。(例えば、L2VNIC/L2仮想スイッチおよびL2計算インスタンスの)2つの学習プロセスは、図12において共同で実施されるように示されている。
図示のように、VLAN1000は、L2VNIC1 1002-AおよびL2スイッチ1 1004-Aをインスタンス化するNVD1 1001-Aに通信可能に接続された計算インスタンス1 1000-Aを含む。また、VLAN1000は、L2VNIC2 1002-BおよびL2スイッチ2 1004-Aをインスタンス化するNVD2 1001-Bに通信可能に接続された計算インスタンス2 1000-Bを含む。さらに、VLAN1000は、サーバ群上で動作し、VSRS VNIC1002-CおよびVSRSスイッチ1004-Cを含むVSRS1010を含む。スイッチ1004-A、1004-B、1004-Cの全ては、共に分散スイッチを形成する。VSRS1010は、エンドポイント1008に通信可能に接続されている。エンドポイント1008は、ゲートウェイを含むことができ、具体的には、例えば別のVSRSの形にしたL2/L3ルータ、または例えば仮想ルータの形にしたL3ルータを含むことができる。
VLAN1000をホストしているVCNの制御プレーン1001は、VLAN1000上の各L2VNICおよびL2VNICのネットワーク配置を特定するための情報を保持する。例えば、この情報は、L2VNICに関連するインターフェイス識別子、および/またはL2VNICをホストしているNVDの物理IPアドレスを含むことができる。制御プレーン1001は、この情報を用いて、VLAN1000内のインターフェイスを更新する(例えば、周期的に更新するまたはオンデマンドで更新する)。したがって、VLAN内の各L2VNIC1002-A、1002-B、1002-Cは、VLAN内のインターフェイスを特定するための情報を制御プレーン1001から受信し、この情報をテーブルに入力する。L2VNICによって入力されたテーブルは、L2VNICをホストしているNVDにローカルに記憶されてもよい。L2VNIC1002-A、1002-B、1002-Cが既に現在のテーブルを含む場合、L2VNIC1002-A、1002-B、1002-Cは、L2VNIC1002-A、1002-B、1002-Cの現在のテーブルと制御プレーン1001から受信した情報/テーブルとの間の不一致を判断することができる。いくつかの実施形態において、L2VNIC1002-A、1002-B、1002-Cは、制御プレーン1001から受信した情報と一致するようにテーブルを更新することができる。
図10に示すように、パケットは、L2スイッチ1004-A、1004-B、1004-Cを介して送信され、受信L2VNIC1002-A、1002-B、1002-Cによって受信される。パケットがL2VNIC1002-A、1002-B、1002-Cによって受信されると、そのVNICは、そのパケットのソースインターフェイス(ソースVNIC)およびソースMACアドレスのマッピングを学習する。制御プレーン1010から受信した情報のテーブルに基づいて、VNICは、(本開示ではフレームとも呼ばれる受信パケットからの)ソースMACアドレスを、ソースVNICのインターフェイス識別子、当該VNICのIPアドレス、および/または当該VNICをホストしているNVDのIPアドレス(インターフェイス識別子およびIPアドレスは、テーブルから入手可能である)にマッピングすることができる。したがって、L2VNIC1002-A、1002-B、1002-Cは、受信した情報および/またはパケットに基づいて、インターフェイス識別子対MACアドレスマッピングを学習し、L2VNIC1002-A、1002-B、1002-Cは、この学習したマッピング情報を用いて、テーブル、すなわち、L2転送テーブル1006-A、1006-B、1006-Cを更新することができる。いくつかの実施形態において、L2転送テーブルは、MACアドレスを含み、MACアドレスをインターフェイス識別子または物理IPアドレスのうちの少なくとも1つに関連付ける。このような実施形態において、MACアドレスは、L2計算インスタンスに割り当てられたアドレスであり、L2計算インスタンスに関連するL2VNICによってエミュレートされたポートに対応する。インターフェイス識別子は、L2VNICおよび/またはL2計算インスタンスを一意に特定することができる。仮想IPアドレスは、L2VNICの仮想IPアドレスであってもよい。また、物理IPアドレスは、L2VNICをホストしているNVDのIPアドレスであってもよい。L2VNICによって更新されたL2転送テーブルは、L2VNICをホストしているNVD上にローカルに記憶され、L2VNICに関連するL2仮想スイッチによって使用され、フレームを送信することができる。いくつかの実施形態において、共通VLAN内のL2VNICは、マッピングテーブルの全部または一部を共有することができる。
以下、上述したネットワークアーキテクチャを参照して、トラフィックフローを説明する。説明を明確にするために、計算インスタンス2 1000-B、L2VNIC2 10002-B、L2スイッチ2 1004-B、およびNVD2 1001-Bに関連して、トラフィックフローを説明する。この説明は、他の計算インスタンスへのトラフィックフローおよび/または他の計算インスタンスからのトラフィックフローに同様に適用する。
上述したように、VLANは、VCNにおいてL3物理ネットワーク上のオーバーレイL2ネットワークとして実装される。VLANのL2計算インスタンスは、オーバーレイMACアドレス(仮想MACアドレスとも呼ばれる)をソースMACアドレスおよび宛先MACアドレスとして含むL2フレームを送信または受信することができる。また、L2フレームは、オーバーレイIPアドレス(仮想IPアドレスとも呼ばれる)をソースIPアドレスおよび宛先IPアドレスとして含むパケットをカプセル化することができる。いくつかの実施形態において、計算インスタンスのオーバーレイIPアドレスは、VLANのCIDR範囲に属することができる。他のオーバーレイIPアドレスは、CIDR範囲内に位置する(この場合、L2フレームは、VLAN内に流れる)またはCIDR範囲外に位置する(この場合、L2フレームは、他のネットワークに送信されるまたは他のネットワークから受信される)ことができる。L2フレームは、VLANを一意に特定するためのVLANタグを含むことができる。このVLANタグを用いて、同じNVD上の複数のL2VNICを区別することができる。L2フレームは、トンネルを介して、NVDによってカプセル化されたパケットとして計算インスタンスのホストマシンから、別のNVDから、またはVSRSをホストするサーバ群から受信されてもよい。これらの異なる場合において、カプセル化されたパケットは、物理ネットワーク上で送信されたL3パケットであってもよく、ソースIPアドレスおよび宛先IPアドレスは、物理IPアドレスである。Geneveカプセル化を含む異なる種類のカプセル化が可能である。NVDは、受信したパケットをデカプセル化してL2フレームを抽出することができる。同様に、NVDは、L2フレームを送信するために、当該L2フレームをL3パケットにカプセル化し、物理基板上で送信することができる。
計算インスタンス2 1000-BからのVLAN域内送信トラフィックの場合、NVD2 1001-Bは、イーサネット(登録商標)リンクを介して、インスタンス2 1000-Bのホストマシンからフレームを受信する。フレームは、L2VNIC2 1000-Bを特定するためのインターフェイス識別子を含む。このフレームは、計算インスタンス2 1000-BのオーバーレイMACアドレス(例えば、M.2)をソースMACアドレスとして含み、計算インスタンス1 1000-AのオーバーレイMACアドレス(例えば、M.1)を宛先MACアドレスとして含む。インターフェイス識別子が与えられると、NVD2 1001-Bは、さらなる処理のためにフレームをL2VNIC2 1002-Bに渡す。L2VNIC2 1002-Bは、フレームをL2スイッチ2 1004-Bに転送する。L2スイッチ2 1004-Bは、L2転送テーブル1006-Bに基づいて、宛先MACアドレスが既知であるか否か(例えば、L2転送テーブル1006-B内のエントリと一致するか否か)を判断する。
既知である場合、L2スイッチ2 1004-Bは、L2VNIC1 1002-Aが関連するトンネルエンドポイントであると決定し、フレームをL2VNIC1 1002-Aに転送する。この転送は、フレームをパケットにカプセル化することおよびパケットをデカプセル化すること(例えば、Geneveカプセル化およびデカプセル化)を含むことができ、パケットは、フレームと、宛先アドレスとしてのNVD1 1001-Aの物理IPアドレス(例えば、IP.1)と、ソースアドレスとしてのNVD2 1001-Bの物理IPアドレス(例えば、IP.2)とを含む。
未知である場合、L2スイッチ2 1004-Bは、フレームを(例えば、VLANのL2VNIC1 1002-Aおよび任意の他のL2VNICを含む)VLANの様々なL2VNICにブロードキャストする。ブロードキャストされたフレームは、関連するNVD間で処理(例えば、カプセル化、送信、デカプセル化)される。いくつかの実施形態において、このブロードキャストは、物理ネットワークにおいて実行され、より具体的にはエミュレートされる。この物理ネットワークは、フレームをVLANのVSRSを含む各L2VNICにカプセル化することができる。したがって、ブロードキャストは、一連の複製ユニキャストパケットを介して、物理ネットワークにおいてエミュレートされる。その後、各L2VNICは、フレームを受信し、L2VNIC2 1002-Bのインターフェイス識別子とソースMACアドレス(例えば、M.2)およびソース物理IPアドレス(例えば、IP.2)との間の関連付けを学習する。
計算インスタンス1 1000-Aから計算インスタンス2 1000-BへのVLAN域内受信トラフィックの場合、NVD2 1001-Bは、NVD1からパケットを受信する。パケットは、ソースアドレスとしてのIP.1およびフレームを有し、フレームは、宛先MACアドレスとしてのM.2およびソースMACアドレスとしてのM.1を含む。また、フレームは、L2VNIC1 1002-Aのネットワーク識別子を含む。デカプセル化の時に、L2VNIC2は、フレームを受信し、このインターフェイス識別子がM.1および/またはIP.1と関連していることを学習し、以前に未知である場合、後の送信トラフィックのために、この学習した情報をスイッチ2のL2転送テーブル1006-Bに記憶する。代替的には、デカプセル化の時に、L2VNIC2は、フレームを受信し、このインターフェイス識別子がM.1および/またはIP.1に関連していることを学習し、この情報が既知である場合、有効期限をリフレッシュする。
VLAN1000内のインスタンス2 1000-Bから別のVLAN内のインスタンスに送信された送信トラフィックの場合、VSRS VNICおよびVSRSスイッチを使用することを除いて、フローは、上述した送信トラフィックのフローと同様である。具体的には、宛先MACアドレスは、VLAN1000のL2ブロードキャスト内に位置していない(他のL2VLAN内に位置する)。したがって、宛先インスタンスのオーバーレイ宛先IPアドレス(例えば、IP.A)を使用して、この送信トラフィックを送信する。例えば、L2VNIC2 1002-Bは、IP.AがVLAN1000のCIDR範囲外に位置すると判断する。したがって、L2VNIC2 1002-Bは、宛先MACアドレスをデフォルトゲートウェイMACアドレス(例えば、M.DG)に設定する。L2スイッチ2 1004-Bは、M.DGに基づいて、(例えば、トンネルを介して、適切なエンドツーエンドカプセル化で)送信トラフィックをVSRS VNICに送信する。VSRS VNICは、送信トラフィックをVSRSスイッチに転送する。VSRSスイッチは、ルーティング機能を実行する。VLAN1000のVSRSスイッチは、オーバーレイ宛先IPアドレス(例えば、IP.A)に基づいて、(例えば、これらの2つのVLAN間の仮想ルータを介して、適切なエンドツーエンドカプセル化で)送信トラフィックを他のVLANのVSRSスイッチに送信する。次に、他のVLANのVSRSスイッチは、IP.AがこのVLANのCIDR範囲内に位置すると判断してスイッチング機能を実行し、IP.Aに基づいてARPキャッシュを検索することによって、IP.Aに関連する宛先MACアドレスを決定する。ARPキャッシュに一致するものが存在しない場合、ARP要求を他のVLANの異なるL2VNICに送信することによって、宛先MACアドレスを決定する。そうでない場合、VSRSスイッチは、(例えば、トンネルを介して、適切なカプセル化で)送信トラフィックを関連するVNICに送信する。
別のVLAN内のインスタンスからVLAN1000内のインスタンスへの受信トラフィックの場合、トラフィックフローは、逆方向で行われることを除いて、上記と同様である。VLAN1000内のインスタンスからL3ネットワークへの送信トラフィックの場合、トラフィックフローは、VLAN1000のVSRSスイッチが(例えば、パケットを別のVSRSスイッチを介してルーティングすることなく)仮想ルータを介してパケットを仮想L3ネットワーク内の宛先VNICに直接にルーティングすることを除いて、上記と同様である。仮想L3ネットワークからVLAN1000内のインスタンスへの受信トラフィックの場合、トラフィックフローは、VLAN内でパケットをフレームとして送信したVLAN1000AのVSRSスイッチが当該パケットを受信することを除いて、上記と同様である。VLAN1000と他のネットワークとの間の(送信または受信)トラフィックについても、VSRSスイッチは、同様に、送信トラフィックの場合にそのルーティング機能を用いて、適切なゲートウェイ(例えば、IGW、NGW、DRG、SGW、LPG)を介してパケットを送信し、受信トラフィックの場合にそのスイッチング機能を用いて、VLAN1000内でフレームを送信する。
図11を参照して、一実施形態のVLAN1100(例えば、クラウドベースの仮想L2ネットワーク)の概略図が示されており、具体的にはVLANの実装図が示されている。
本開示において上述したように、VLANは、各々がホストマシン上で動作する「n」個の計算インスタンス1102-A、1102-B、1102-Nを含むことができる。前述したように、計算インスタンスとホストマシンとの間に1対1の関連付けがあってもよく、または複数の計算インスタンスと単一のホストマシンとの間に多対1の関連付けがあってもよい。各計算インスタンス1102-A、1102-B、1102-Nは、L2計算インスタンスであってもよく、少なくとも1つの仮想インターフェイス(例えば、L2VNIC)1104-A、1104-B、1104-Nおよびスイッチ1106-A、1106-B、1106-Nに関連付けられる。スイッチ1106-A、1106-B、1106-Nは、L2仮想スイッチであり、共にL2分散スイッチ1107を形成する。
ホストマシン上の計算インスタンス1102-A、1102-B、1102-Nに関連するL2VNIC1104-A、1104-B、1104-Nおよびスイッチ1106-A、1106-B、1106-Nのペアは、ホストマシンに接続されたNVD1108-A、1108-B、1108-N上のソフトウェアモジュールのペアである。各L2VNIC1104-A、1104-B、1104-Nは、顧客が認識した単一スイッチ(本開示ではvスイッチと呼ぶ)のL2ポートを表す。一般的に、ホストマシン「i」は、計算インスタンス「i」を実行し、NVD「i」に接続される。同様に、NVD「i」は、L2VNIC「i」およびスイッチ「i」を実行する。L2VNIC「i」は、vスイッチのL2ポート「i」を表す。iは、1~nの正整数である。ここでも、1対1の関連付けを説明したが、他の種類の関連付けも可能である。例えば、単一のNVDを複数のホストに接続することができ、各ホストは、VLANに属する1つ以上の計算インスタンスを実行する。この場合、NVDは、各々が計算インスタンスのうちの1つに対応する複数のペアのL2VNICおよびスイッチをホストする。
VLANは、VSRS1110のインスタンスを含むことができる。VSRS1110は、スイッチングおよびルーティング機能を実行し、VSRS VNIC1112およびVSRSスイッチ1114のインスタンスを含む。VSRS VNIC1112は、vスイッチ上のポートを表し、このポートは、仮想ルータを介して、vスイッチを他のネットワークに接続する。図示のように、VSRS1110は、サーバ群1116上でインスタンス化されてもよい。
制御プレーン1118は、VLAN内のL2VNIC1104-A、1104-B、1104-Nおよびそれらの配置を特定するための情報を追跡することができる。また、制御プレーン1110は、この情報をVLAN内のインターフェイス1104-A、1104-B、1104-Nに提供することができる。
図11に示すように、VLANは、物理ネットワーク1120上で構築され得るクラウドベースの仮想L2ネットワークであってもよい。いくつかの実施形態において、この物理ネットワーク1120は、NVD1108-A、1108-B、1108-Nを含むことができる。
一般的に、VLANの第1のL2計算インスタンス(例えば、計算インスタンス1 1102-A)は、L2プロトコルを使用してVLANの第2の計算インスタンス(例えば、計算インスタンス2 1102-B)と通信することができる。例えば、フレームは、VLANを介して、2つのL2計算インスタンス間に送信されてもよい。それにもかかわらず、フレームは、基礎物理ネットワーク1120を介して送信されるように、カプセル化され、トンネル化され、ルーティングされ、および/または他の処理によって処理されてもよい。
例えば、計算インスタンス1 1102-Aは、フレームを計算インスタンス2 1102-Bに送信する。ホストマシン1とNVD1との間のネットワーク接続、NVD1と物理ネットワーク1120との間のネットワーク接続、物理ネットワーク1120とNVD2との間のネットワーク接続、およびNVD2とホストマシン2との間のネットワーク接続(例えば、TCP/IP接続、イーサネット(登録商標)接続、トンネリング接続)に応じて、フレームに異なる種類の処理を適用することができる。例えば、フレームは、NVD1によって受信され、カプセル化され、計算インスタンス2に到達するまで、このような処理が繰り返される。この処理は、フレームが基礎物理リソース間で送信できるように仮定され、簡潔かつ明瞭にするために、その説明は、VLANおよび関連するL2動作の説明から省略される。
仮想L2ネットワークの通信
仮想L2ネットワーク内にまたは仮想L2ネットワーク間に、複数の種類の通信を行うことができる。これらの通信は、VLAN域内通信を含むことができる。このような実施形態において、ソース計算インスタンスは、パケットを当該ソース計算インスタンス(CI)と同じVLANにある宛先計算インスタンスに送信することができる。通信は、パケットをソースCIのVLANの外部のエンドポイントに送信することをさらに含むことができる。通信は、例えば、第1のVLAN内のソースCIから第2のVLAN内の宛先CIへの通信、第1のVLAN内のソースCIからL3サブネット内の宛先CIへの通信、および/または第1のVLAN内のソースCIからソースCIのVLANを含むVCNの外部の宛先CIへの通信を含むことができる。通信は、例えば、宛先CIが宛先CIのVLANの外部のソースCIから情報を受信することをさらに含むことができる。このソースCIは、別のVLAN内、L3サブネット内、またはソースCIのVLANを含むVCNの外部に配置されてもよい。
VLAN内の各CIは、トラフィックフローにおいて積極的な役割を果たすことができる。これは、本開示ではインターフェイス対MACアドレスとも呼ばれるインターフェイス識別子対MACアドレスの学習、VLAN内のL2転送テーブルを維持するためのVLAN内のインスタンスのマッピング、および通信パケットの送信および/または受信を含む。VSRSは、VLAN内の通信およびVLANの外部のソースCIまたは宛先CIとの通信において、積極的な役割を果たすことができる。VSRSは、L2ネットワーク内およびL3ネットワークに存在し、送受信を可能にすることができる。
VLAN域内通信
図12を参照して、図12は、VLAN域内通信を行うためのプロセス1200の一実施形態を示すフローチャートである。いくつかの実施形態において、プロセス1200は、共通VLAN内の計算インスタンスによって実行されてもよい。このプロセスは、具体的には、ソースCIがパケットをVLAN内の宛先CIに送信するが、その宛先CIのIP対MACアドレスマッピングを知らない場合に実行される。これは、例えば、ソースCIがVLAN内のIPアドレスを有する宛先CIにパケットを送信するが、ソースCIがそのIPアドレスのMACアドレスを知らない場合に発生し得る。この場合、ARPプロセスを実行することによって、宛先MACアドレスおよびIP対MACアドレスマッピングを学習することができる。
ソースCIがIP対MACアドレスマッピングを知っている場合、ソースCIは、パケットを宛先CIに直接に送信することができ、ARPプロセスを実行する必要がない。いくつかの実施形態において、このパケットは、ソースVNICによって傍受されてもよい。このソースVNICは、VLAN域内通信時にL2VNICである。ソースVNICは、宛先MACアドレスのインターフェイス対MACアドレスマッピングを知っている場合、例えばL2カプセル化を用いてパケットをカプセル化することができ、カプセル化されたパケットを宛先VNICに転送することができる。この宛先VNICは、VLAN域内通信時に宛先MACアドレスに対してL2VNICである。
ソースVNICは、MACアドレスのインターフェイス対MACアドレスマッピングを知らない場合、一態様のインターフェイス対MACアドレスの学習プロセスを実行することができる。この学習プロセスは、ソースVNICがパケットをVLAN内の全てのインターフェイスに送信することを含むことができる。いくつかの実施形態において、このパケットは、ブロードキャストを介してVLAN内の全てのインターフェイスに送信されてもよい。いくつかの実施形態において、このブロードキャストは、シリアルユニキャストの形で物理ネットワークに実装されてもよい。このパケットは、宛先MACアドレス、宛先IPアドレス、ソースVNICのインターフェイス、MACアドレスおよびIPアドレスを含むことができる。VLAN内のVNICの各々は、このパケットを受信することができ、ソースVNICのインターフェイス対MACアドレスマッピングを学習することができる。
さらに、受信VNICの各々は、パケットをデカプセル化し、デカプセル化されたパケットを関連するCIに転送することができる。各CIは、転送されたパケットを評価することができるネットワークインターフェイスを含むことができる。転送されたパケットを受信したCIが宛先MACおよび/またはIPアドレスに一致しないとネットワークインターフェイスが判断した場合、当該パケットは、破棄される。転送されたパケットを受信したCIが宛先MACおよび/またはIPアドレスに一致するとネットワークインターフェイスが判断した場合、当該パケットは、CIによって受信される。いくつかの実施形態において、パケットの宛先MACおよび/またはIPアドレスに一致するMACおよび/またはIPアドレスを有するCIは、応答をソースCIに送信することができ、それによって、ソースVNICは、宛先CIのインターフェイス対MACアドレスマッピングを学習することができ、したがって、ソースCIは、宛先CIのIP対MACアドレスマッピングを学習することができる。
ソースCIがIP対MACアドレスマッピングを知らない場合、またはソースCIの宛先CIに対するIP対MACアドレスマッピングが古い場合、プロセス1200を実行することができる。
したがって、IP対MACアドレスマッピングが既知である場合、ソースCIは、パケットを送信することができる。IP対MACアドレスマッピングが未知である場合、プロセス1200を実行することができる。インターフェイス対MACアドレスマッピングが未知である場合、上記に概説したインターフェイス対MACアドレス学習プロセスを実行することができる。インターフェイス対MACアドレスマッピングが既知である場合、VNICは、パケットを宛先CIに送信することができる。
プロセス1200は、ブロック1202から始まる。ブロック1202において、ソースCIは、宛先CIのIP対MACアドレスマッピングがソースCIに対して未知であると判断する。いくつかの実施形態において、これは、ソースCIがパケットの宛先IPアドレスを判断することと、当該宛先IPアドレスがソースCIのマッピングテーブルに記憶されたMACアドレスに関連付けられていないことを判断することとを含んでもよい。代替的には、ソースCIは、宛先CIのIP対MACアドレスマッピングが古いと判断することができる。いくつかの実施形態において、マッピングが一定の制限時間に更新および/または検証されていない場合、当該マッピングが古いと判断されてもよい。ソースCIに対して宛先CIのIP対MACアドレスマッピングが未知であるおよび/または古いと判断すると、ソースCIは、宛先IPのためのARP要求を開始し、ARP要求をイーサネットブロードキャストに送信する。
ブロック1204において、本開示ではソースインターフェイスとも呼ばれるソースVNICは、ソースCIからARP要求を受信する。ソースインターフェイスは、VLAN上の全てのインターフェイスを特定し、ARP要求をVLANブロードキャストドメインの全てのインターフェイスに送信する。前述したように、制御プレーンは、VLAN上のインターフェイスの全てを知っており、その情報をVLAN上のインターフェイスに提供するため、ソースインターフェイスは、同様に、VLAN内の全てのインターフェイスを知っており、ARP要求をVLAN内の各インターフェイスに送信することができる。このため、ソースインターフェイスは、ARP要求を複製し、VLAN上の各インターフェイスのためにARP要求をカプセル化する。各カプセル化されたARP要求は、ソースCIのインターフェイス識別子、ソースCIのMACアドレス、ソースCIのIPアドレス、ターゲットIPアドレス、および宛先CIのインターフェイス識別子を含む。ソースCIインターフェイスは、複製およびカプセル化されたARP要求を、シリアルユニキャストとしてVLAN内の各インターフェイスに1つずつ送信することによって、イーサネットブロードキャストを複製する。
ブロック1206において、VLANブロードキャストドメイン内の全てのインターフェイスは、パケットを受信し、デカプセル化する。パケットがソースCIのMACアドレス、IPアドレスおよびインターフェイス識別子を特定するため、パケットを受信したVLANブロードキャストドメイン内の各インターフェイスは、ソースCIのソースVNICのインターフェイス対MACアドレスマッピング(例えば、ソースインターフェイスのインターフェイス識別子対ソースCIのMACアドレスのマッピング)を学習する。ソースCIのインターフェイス対MACアドレスマッピングの学習の一部として、各インターフェイスは、マッピングテーブル(例えば、L2転送テーブル)を更新することができ、更新されたマッピングを関連するスイッチおよび/またはCIに提供することができる。VSRSを除く各受信インターフェイスは、デカプセル化されたパケットを関連するCIに転送することができる。転送およびデカプセル化されたパケットを受信したCI、具体的には当該CIのネットワークインターフェイスは、パケットのターゲットIPアドレスが当該CIのIPアドレスと一致するか否かを判断することができる。いくつかの実施形態において、インターフェイスに関連するCIのIPアドレスが受信したパケットに指定された宛先CIのIPアドレスと一致しない場合、当該CIは、パケットを破棄し、それ以上の動作を行わない。VSRSの場合、VSRSは、パケットのターゲットIPアドレスがVSRSのIPアドレスと一致するか否かを判断することができる。いくつかの実施形態において、VSRSのIPアドレスが受信したパケットに指定されたターゲットIPアドレスと一致しない場合、VSRSは、パケットを破棄し、それ以上の動作を行わない。
受信したパケットに指定された宛先CIのIPアドレスが受信インターフェイスに関連するCI(宛先CI)のIPアドレスと一致すると判断された場合、ブロック1208に示すように、宛先CIは、ユニキャストARP応答であり得る応答をソースインターフェイスに送信する。この応答は、宛先CIのMACアドレスおよびIPアドレスと、ソースCIのIPアドレスおよびMACアドレスとを含む。後述するように、VSRSは、ターゲットIPアドレスがVSRSのIPアドレスと一致すると判断した場合、ARP応答を送信することができる。
ブロック1210に示すように、この応答は、ユニキャストARP応答をカプセル化するための宛先インターフェイスによって受信される。いくつかの実施形態において、このカプセル化は、Geneveカプセル化を含むことができる。宛先インターフェイスは、宛先スイッチを介して、カプセル化されたパケットをソースインターフェイスに転送することができる。カプセル化されたパケットは、宛先CIのMACアドレス、IPアドレスおよびインターフェイス識別子と、ソースCIのMACアドレス、IPアドレスおよびインターフェイス識別子とを含む。
ブロック1212において、ソースインターフェイスは、ARP応答を受信およびデカプセル化する。また、ソースインターフェイスは、カプセル化におよび/またはカプセル化されたパケットに含まれる情報に基づいて、宛先CIのインターフェイス対MACアドレスマッピングを学習することができる。いくつかの実施形態において、ソースインターフェイスは、ARP応答をソースCIに転送することができる。
ブロック1214において、ソースCIは、ARP応答を受信する。いくつかの実施形態において、ソースCIは、ARP応答に含まれる情報に基づいてマッピングテーブルを更新することができ、具体的には、宛先CIのMACおよびIPアドレスに基づいてIP対MACアドレスマッピングを反映するようにマッピングテーブルを更新することができる。その後、ソースCIは、IPパケット、具体的にはIPv4またはIPv6パケットを含む任意のパケットであり得るパケットを宛先CIに送信することができる。このパケットは、ソースCIのMACアドレスおよびIPアドレスをパケットのソースMACアドレスおよびソースIPアドレスとして含み、宛先CIのMACアドレスおよびIPアドレスをパケットの宛先MACアドレスおよび宛先IPアドレスとして含むことができる。
ブロック1216において、ソースインターフェイスは、ソースCIからパケットを受信することができる。ソースインターフェイスは、パケットをカプセル化することができ、いくつかの実施形態において、Geneveカプセル化を用いてパケットをカプセル化することができる。ソースインターフェイスは、カプセル化されたパケットを宛先CIに、具体的には宛先インターフェイスに転送することができる。カプセル化されたパケットは、ソースCIのIPアドレス、MACアドレスおよびインターフェイス識別子をソースMACアドレス、ソースIPアドレス、およびソースインターフェイス識別子として含むことができ、宛先CIのMACアドレス、IPアドレスおよびインターフェイス識別子を宛先MACアドレス、宛先IPアドレス、および宛先インターフェイス識別子として含むことができる。
ブロック1218において、宛先インターフェイスは、ソースインターフェイスからパケットを受信する。宛先インターフェイスは、パケットをデカプセル化することができ、その後、パケットを宛先CIに転送することができる。ブロック1220において、宛先CIは、宛先インターフェイスからパケットを受信する。
図13を参照して、図13は、VLAN域内通信を行うためのプロセス1200を示す概略図1300である。図示のように、VLAN A 1302は、10.0.3.0/24を持つVLAN CIDRを有する。VLAN A 1302は、1つ以上のハードウェア上でインスタンス化することができ、具体的にはサーバ群1306上でインスタンス化することができるVSRS VNIC(VRVI)1304を含む。VRVI1304は、IPアドレス10.0.3.1を有することができる。VLANは、IPアドレス10.0.3.2を有し、L2VNIC1(VI1)1314およびL2スイッチ1をインスタンス化することができるNVD1(SN1)1312に通信可能に接続された計算インスタンス1(CI1)1310を含むことができる。VLANは、IPアドレス10.0.3.3を有し、L2VNIC2(VI2)1324およびL2スイッチ2をインスタンス化することができるNVD2(SN2)1322に通信可能に接続された計算インスタンス2(CI2)1320を含むことができる。VLANは、IPアドレス10.0.3.4を有し、L2VNIC3(VI3)1334およびL2スイッチ3をインスタンス化することができるNVD3(SN3)1332に通信可能に接続された計算インスタンス3(CI3)1330を含むことができる。
図13の例に図12の方法1200を適用すると、CI3 1330は、ソースCIであり、VI3 1334は、ソースインターフェイスである。また、CI2 1320は、宛先CIであり、VI2 1324は、宛先インターフェイスである。CI3が宛先IPアドレス(10.0.3.3)のIP対MACマッピングを有しないと判断すると、CI3 1330は、ARP要求を送信する。ARP要求は、既知のアドレスに対するものであってもよく、具体的には、CI2 1320の既知のIPアドレスに対するものであってもよい。したがって、いくつかの実施形態において、ARP要求は、10.0.3.3に対するものであってもよい。
このARP要求は、SN3 1332およびVI3 1334によって受信される。VI3 1334は、ARP要求を複製することによって、VLAN1302内の各CIのARP要求を作成する。VI3 1334は、各ARP要求をカプセル化し、ARP要求をVLAN内の各インターフェイスに送信する。これらのカプセル化されたARP要求は、ソースCI(CI3)のMACアドレス、ソースインターフェイス(VI3)のインターフェイス識別子、および宛先MACアドレスを特定するための情報を含むことができる。これらの要求は、矢印1350で示すように、VLAN内の各インターフェイスに送信されてもよい。VLANにおいて、これらの要求は、ブロードキャストARP要求であってもよい。
VLAN内のインターフェイスは、カプセル化されたARP要求を受信し、ARP要求をデカプセル化する。ARP要求に含まれる情報および/またはARP要求に関連する情報に基づいて、VLAN内のインターフェイスは、それらのマッピングを更新する。具体的には、例えば、VI1 1314、VI2 1324およびVRVI1304の各々は、CI3 1330からARP要求を受信し、ARP要求をデカプセル化し、ソースCIのインターフェイス対MACアドレスマッピングを学習する。ソースCIのインターフェイス識別子およびMACアドレスの両方は、カプセル化されたパケットに含まれる。さらに、VRVI1304は、カプセル化されたパケットに含まれる情報に基づいて、ソースCIのIP対MACアドレスマッピングを更新することができる。
矢印1352で示すように、要求されたIPアドレスを有するCIを有するVLAN内のインターフェイスは、ARP応答をCI3 1330に送信することができる。具体的には、図13に示すように、VI2 1324は、CI2 1320のインターフェイスであり、ARP応答を送信することができる。CI2からのARP応答は、VI2によって受信され、カプセル化され、ARPユニキャストとして要求インターフェイス、具体的にはVI3に送信される。本願で前述したように、このARP応答の送信は、カプセル化されたARP応答を関連するスイッチに提供することを含み、関連するスイッチは、カプセル化されたARP応答をVI3に送信することができる。
ARP応答は、VI3によって受信されてもよく、デカプセル化されてもよい。VI3は、受信したARP応答に基づいてCI2のインターフェイス対MACマッピングを学習することができ、学習したマッピングをVI3に関連するスイッチに提供することができる。デカプセル化されたパケットは、CI3に提供されてもよい。CI3は、デカプセル化されたパケットに基づいて、CI2 1320のIP対MACアドレスマッピングを学習することができる。CI3は、パケットをCI2に送信することができる。このパケットは、IPv4またはIPv6パケットなどのIPパケットであってもよい。このパケットは、CI3のMACおよびIPアドレスをソースアドレスとして含み、CI2のIPおよびMACアドレスを宛先アドレスとして含むことができる。
CI3によって送信されたパケットは、VI3によって受信されてもよい。VI3は、パケットをカプセル化し、パケットをインターフェイスVI2に転送することができる。VI2は、パケットを受信することができ、パケットをデカプセル化することができ、パケットをCI2に転送することができる。
VLAN間通信
次に図14を参照して、図14は、仮想L2ネットワーク内のVLAN間通信を行うためのプロセス1400の一実施形態を示すフローチャートである。プロセス1400は、2つの接続されたVLAN、例えば図8に示すように複数の接続されたL2VLAN800の全てまたは一部によって実行されてもよい。いくつかの実施形態において、プロセス1400は、第1のVLAN(ソースVLAN)内の計算インスタンス(ソースCI)が第2のVLAN(宛先VLAN)内の宛先計算インスタンス(宛先CI)にパケットを送信するときに実行されてもよい。いくつかの実施形態において、ソースCIは、宛先CIのIPアドレスに基づいて、宛先CIがソースVLANの外部にあると判断することができる。例えば、ソースCIは、宛先IPがソースVLAN CIDRの外部にあると判断することができる。このような場合、ソースCIは、ソースVLANのVSRSを介してIPパケットを宛先CIに送信することを決定することができる。ソースCIが第1のVLANのVSRS(ソースVSRS)のマッピングを既に知っている場合、ソースCIは、パケットをソースVSRSに直接に送信することができる。ソースCIがソースVSRSのマッピングを知らない場合、ソースCIおよび関連するVNIC(ソースインターフェイスまたはソースVNIC)は、まずソースVSRSのマッピングを学習する。VLAN間通信の実施形態において、ソースVNICと宛先VNICの両方は、L2VNICである。プロセス1400の第1のステップ1402~1410は、ソースVNICおよびソースCIによるソースVSRSマッピングの学習に関する。
プロセス1400は、ブロック1402から始まる。ブロック1402において、宛先IPアドレスを有するソースCIは、ARP要求を開始する。ARP要求を用いて、ソースVSRSのIP対MACアドレスマッピングを決定する。ソースCIは、ARP要求をイーサネットブロードキャストに送信する。ARP要求は、ソースCIのIPアドレスをソースIPアドレスおよびMACアドレスとして含む。
ブロック1404において、ソースVNICは、ARP要求を受信し、ARP要求を複製する。具体的には、ソースVNICは、ソースCIからARP要求を受信し、VLAN上の全てのインターフェイスを特定し、ARP要求をVLANブロードキャストドメイン上の全てのインターフェイスに送信する。前述したように、制御プレーンは、VLAN上の全てのインターフェイスを知っており、その情報をVLAN内のインターフェイスに提供するため、ソースインターフェイスは、同様に、VLAN内の全てのインターフェイスを知っており、ARP要求をVLAN内の各インターフェイスに送信することができる。このため、ソースインターフェイスは、ARP要求を複製し、VLAN上の各インターフェイスのARP要求をカプセル化する。各カプセル化されたARP要求は、ソースCIのインターフェイス識別子およびソースCIのIPアドレスおよびMACアドレスをソースアドレスとして含み、宛先CIのインターフェイス識別子およびIPアドレスを宛先アドレスとして含む。ソースCIインターフェイスは、シリアルユニキャストを介して、複製およびカプセル化されたARP要求をVLAN内の各インターフェイスに送信することにより、イーサネットブロードキャストを実現する。いくつかの実施形態において、ソースVNICは、Geneveカプセル化を用いて、ARP要求をカプセル化することができる。
ブロック1406において、VLANブロードキャストドメイン内の全てのインターフェイスは、パケットを受信し、デカプセル化する。パケットがソースCIのMACアドレス、IPアドレスおよびソースインターフェイス識別子を特定するため、パケットを受信したVLANブロードキャストドメイン内の各インターフェイスは、ソースCIのソースVNICのインターフェイス対MACアドレスマッピングを学習する。ソースCIのインターフェイス対MACアドレスマッピングの学習の一部として、各インターフェイスは、対応するマッピングテーブルを更新することができ、更新されたマッピングテーブルを関連するスイッチおよび/またはCIに提供することができる。VSRSを除く各受信インターフェイスは、デカプセル化されたパケットを関連するCIに転送する。転送されたデカプセル化されたパケットを受信したCI、具体的には当該CIのネットワークインターフェイスは、パケットのターゲットIPアドレスが当該CIのIPアドレスと一致するか否かを判断することができる。そのインターフェイスに関連するCIのIPアドレスが受信したパケットに指定された宛先CIのIPアドレスと一致しない場合、それ以上の動作を行わない。
ソースVSRSは、ターゲットIPアドレスがソースVSRSのIPアドレスと一致すると判断した場合、ブロック1408に示すように、ユニキャストARP応答であり得る応答をカプセル化し、ソースインターフェイスに送信する。この応答は、ソースCIのMACアドレス、IPアドレス、およびソースCIのインターフェイス識別子を宛先アドレスとして含む。さらに、この応答は、ソースVSRSのMACアドレス、IPアドレス、およびVSRSのインターフェイス識別子をソースアドレスとして含む。いくつかの実施形態において、ARP応答のカプセル化は、Geneveカプセル化を含んでもよい。
ブロック1410において、ソースインターフェイスは、ARP応答を受信し、デカプセル化する。また、ソースインターフェイスは、カプセル化におよび/またはカプセル化されたパケットに含まれる情報に基づいて、ソースVSRSのインターフェイス対MACアドレスマッピングを学習することができる。いくつかの実施形態において、ソースインターフェイスは、ARP応答をソースCIに転送することができる。
ブロック1412において、ソースCIは、ARP応答を受信する。いくつかの実施形態において、ソースCIは、ARP応答に含まれる情報に基づいて、具体的には、ソースVSRSのMACアドレスおよびIPアドレスに基づいて、マッピングテーブルを更新することができる。いくつかの実施形態において、例えば、ソースCIは、マッピングテーブルを更新して、ソースVSRSのIP対MACアドレスマッピングを反映することができる。次いで、ソースCIは、IPパケット、具体的にはIPv4またはIPv6パケットを含む任意のパケットであり得るパケットをソースVSRSに送信することができる。いくつかの実施形態において、これは、宛先CIのIPアドレスを宛先アドレスとして含むIPパケットを送信することを含むことができる。いくつかの実施形態において、宛先CIのIPアドレスは、パケットのヘッダ、例えば、パケットのL3ヘッダに含まれてもよい。このヘッダは、パケットの別のヘッダ、例えばパケットのL2ヘッダ内のソースVSRSのMACアドレスをさらに含んでもよい。パケットは、ソースCIのMACアドレスおよびソースCIのIPアドレスを、ソースMACアドレスおよびソースIPアドレスとしてさらに含むことができる。
ブロック1414において、ソースインターフェイスは、ソースCIからパケットを受信することができる。ソースインターフェイスは、パケットをカプセル化することができる。ソースインターフェイスは、カプセル化パケットをソースVSRSに、具体的にはソースVSRSのVNICに転送することができる。カプセル化されたパケットは、パケットのアドレスに加えて、ソースCIのMACアドレスおよびインターフェイス識別子をソースMACアドレスおよびソースインターフェイス識別子として含み、ソースVSRSのMACアドレスおよびインターフェイス識別子を宛先MACアドレスおよび宛先インターフェイス識別子として含むことができる。
ブロック1416において、ソースVSRSは、カプセル化されたパケットを受信する。ソースVSRSは、パケットをデカプセル化し、ソースVSRSに関連する任意のアドレス情報(例えば、ソースVSRSのIPアドレス、MACアドレスおよび/またはソースVSRSのインターフェイス識別子を含む)をパケットから除去する。ソースVSRSは、パケットの宛先CIを特定する。いくつかの実施形態において、ソースVSRSは、パケットに含まれる宛先CIのIPアドレスに基づいて、パケットの宛先CIを特定する。ソースVSRSは、パケット内の宛先IPアドレスのマッピングを検索する。IPアドレスがVCNのIPアドレス空間内にある場合、ソースVSRSは、VCNのIPアドレス空間においてパケットの宛先IPアドレスのマッピングを検索する。次いで、ソースVSRSは、L3カプセル化を用いてパケットを再カプセル化する。いくつかの実施形態において、このL3カプセル化は、例えば、MPLSoUDP L3カプセル化を含むことができる。その後、ソースVSRSは、パケットを宛先VLANのVSRS(宛先VSRS)に転送する。いくつかの実施形態において、ソースVSRSは、宛先VSRSがパケットのトンネルエンドポイント(TEP)となるように、パケットを宛先VSRSに転送することができる。L3カプセル化されたパケットは、ソースCIのIPアドレスおよびMACアドレスと、宛先CIのIPアドレスとを含む。
ブロック1418において、宛先VSRSは、パケットを受信し、パケットをデカプセル化する。いくつかの実施形態において、このデカプセル化は、L3カプセル化を除去することを含むことができる。宛先VSRSは、宛先CIのIP対MACおよびMAC対インターフェイスマッピングを知っている場合、宛先VLAN内の宛先CIのインターフェイスおよびMACアドレスを特定する。代替的には、宛先VSRSが宛先CIのマッピングを知らない場合、プロセス1600のステップ1612からステップ1622を実行することができる。
ブロック1420において、宛先VSRSは、パケットを宛先CIの宛先インターフェイスに転送する。いくつかの実施形態において、これは、L2カプセル化を用いてパケットをカプセル化することを含むことができる。いくつかの実施形態において、パケットは、ソースCIのIPアドレスおよびMACアドレス、および/または宛先VSRSのMACアドレスおよびインターフェイス識別子を含むことができる。いくつかの実施形態において、パケットは、宛先CIのMACアドレスおよびインターフェイス識別子をさらに含むことができる。
ブロック1422において、宛先インターフェイスは、パケットを受信し、デカプセル化する。具体的には、宛先VNICは、L2カプセル化を除去する。いくつかの実施形態において、宛先VNICは、パケットを宛先CIに転送する。ブロック1424において、宛先CIは、パケットを受信する。
図15を参照して、図15は、VLAN間通信を行うためのプロセス1400を示す概略図1500である。図示のように、VLAN A 1502-Aは、10.0.3.0/24を持つVLAN CIDRを有する。VLAN A 1502-Aは、1つ以上のハードウェア上でインスタンス化することができ、具体的にはサーバ群1506上でインスタンス化することができるVSRS VNIC A(VRVI A)1504-Aを含む。VRVI A 1504-Aは、IPアドレス10.0.3.1を有することができる。VLANは、IPアドレス10.0.3.2を有し、L2VNIC1(VI1)1514およびL2スイッチ1をインスタンス化することができるNVD1(SN1)1512に通信可能に接続された計算インスタンス1(CI1)1510を含むことができる。VLANは、IPアドレス10.0.3.3を有し、L2VNIC2(VI2)1524およびL2スイッチ2をインスタンス化することができるNVD2(SN2)1522に通信可能に接続された計算インスタンス2(CI2)1520を含むことができる。VLANは、IPアドレス10.0.3.4を有し、L2VNIC3(VI3)1534およびL2スイッチ3をインスタンス化することができるNVD3(SN3)1532に通信可能に接続された計算インスタンス3(CI3)1530を含むことができる。
VLAN B 1502-Bは、10.0.34.0/24を持つVLAN CIDRを有する。VLAN B 1502-Bは、1つ以上のハードウェア上でインスタンス化することができ、具体的にはサーバ群1506上でインスタンス化することができるVSRS VNIC B(VRVI B)1504-Bを含む。VRVI B 1504-Bは、IPアドレス10.0.4.1を有することができる。VLANは、IPアドレス10.0.4.2を有し、L2VNIC4(VI3)1544およびL2スイッチ4をインスタンス化することができるNVD4(SN4)1542に通信可能に接続された計算インスタンス4(CI4)1540を含むことができる。
図15の例に図14の方法1400を適用すると、CI3 1530は、ソースCIであり、VI3 1534は、ソースインターフェイスである。また、CI4 1540は、宛先CIであり、VI4 1544は、宛先インターフェイスである。CI3がVRVI A 1504-AのIP-MACマッピングを有しないと判断すると、CI3 1530は、ARP要求を送信する。ARP要求は、アドレスに対するものであってもよく、具体的には、VRVI A 1504-Aの既知のIPアドレスに対するものであってもよい。したがって、いくつかの実施形態において、ARP要求は、10.0.3.1に対するものであってもよい。
このARP要求は、SN3 1532およびVI3 1534によって受信される。VI3 1534は、ARP要求を複製することによって、VLAN1502-A内の各CIのARP要求を作成する。VI3 1534は、L2カプセル化を用いて各ARP要求をカプセル化し、ARP要求をVLAN内の各インターフェイスに送信する。これらのカプセル化されたARP要求は、ソースCI(CI3)のMACアドレスおよびIPアドレス、ソースインターフェイス(VI3)のインターフェイス識別子、およびターゲットIPアドレスを特定するための情報を含むことができる。これらの要求は、矢印1550で示すように、VLAN内の各インターフェイスに送信されてもよく、具体的には、VLAN内の各インターフェイスがARP要求を受信するように、シリアルユニキャストとして送信されてもよい。
VLAN内のインターフェイスは、カプセル化されたARP要求を受信し、ARP要求をデカプセル化する。ARP要求に含まれる情報および/またはARP要求に関連する情報に基づいて、VLAN内のインターフェイスは、それらのマッピングを更新する。具体的には、例えば、VI1 1514、VI2 1524およびVRVI A 1504-Aの各々は、CI3 1530からユニキャストARP要求を受信し、ユニキャストARP要求をデカプセル化し、ソースCIのインターフェイス対MACアドレスマッピングを学習する。インターフェイス識別子およびMACアドレスの両方は、カプセル化されたパケットに含まれる。
矢印1552で示すように、VRVI A 1504-Aは、そのIPアドレスが要求されたIPアドレスに一致すると判断すると、ARP応答をCI3 1530に送信する。例えば、VRVI A 1504-Aは、L2カプセル化を用いてVRVI A 1504-AからのARP応答をカプセル化することができ、ARPユニキャストとして要求インターフェイスに、具体的にはVI3に送信することができる。本願で前述したように、このARP応答の送信は、カプセル化されたARP応答をVRVI A 1504-Aに関連するスイッチに提供することを含むことができ、関連するスイッチは、カプセル化されたARP応答をVI3に送信することができる。
ARP応答は、VI3によって受信されてもよく、デカプセル化されてもよい。VI3は、受信したARP応答に基づいてVRVI A 1504-Aのインターフェイス対MACマッピングを学習することができ、学習したマッピングをVI3に関連するスイッチに提供することができる。デカプセル化されたパケットは、CI3に提供されてもよい。CI3は、VRVI A 1504-AのIP対MACアドレスマッピングを学習することができ、パケットを送信することができる。このパケットは、IPv4またはIPv6パケットなどのIPパケットであってもよい。このパケットは、CI3のMACアドレスおよびIPアドレスをソースアドレスとして含むことができる。このパケットはさらに、宛先CI(CI4 1540)のIPアドレスを宛先アドレスとして含むことができ、VRVI A 1504-AのMACアドレスおよびIPアドレスを含むことができる。
VI3は、CI3によって送信されたパケットを受信することができ、VI3は、パケットをカプセル化し、パケットをVRVI A 1504-Aに転送することができる。VRVI A 1504-Aは、パケットを受信し、パケットをデカプセル化し、パケットの宛先IPアドレス(CI4のIPアドレス)のマッピングを検索することができる。いくつかの実施形態において、パケットのデカプセル化は、パケットからL2ヘッダを除去すること、言い換えれば、ヘッダからVLAN A 1502-Aに関連する情報除去することを含むことができる。除去された情報は、例えば、CI3のMACアドレス、インターフェイスVI3のインターフェイス識別子、および/またはVRVI A 1504-AのMACアドレスおよびインターフェイス識別子を含むことができる。いくつかの実施形態において、VSRS、したがってVRVI A 1504-Aは、L2ネットワークおよびL3ネットワークの両方に常駐することができる。L2ネットワーク、したがってVLANにおいて、VSRSは、L2通信プロトコルを利用することができるが、L3ネットワークと通信するときにL3通信プロトコルを利用することができる。VLANにおいて行われた学習とは対照的に、VSRSは、制御プレーンからL3ネットワーク内のエンドポイントのマッピングを学習することができる。いくつかの実施形態において、例えば、制御プレーンは、L3ネットワーク内のインスタンスのIPアドレスおよび/またはMACアドレスのマッピング情報を提供することができる。
VRVI A 1504-Aは、パケットに含まれるIP宛先アドレスのマッピングを検索することができ、言い換えれば、宛先CIのIPアドレスのマッピングを検索することができる。いくつかの実施形態において、このマッピングを検索することは、VRVI B 1504-BをVLAN B 1502-BのVSRSとして特定することを含むことができる。VRVI A 1504-Aは、パケットをカプセル化し、カプセル化されたパケットをVRVI B 1504-Bに転送することができる。VRVI B 1504-Bは、宛先VLANおよび/または宛先インターフェイスのトンネルエンドポイント(TEP)であってもよい。このカプセル化されたパケットの転送は、ブロック1556によって示される。この転送されたパケットは、ソースCI(CI3)のIPアドレスをソースアドレスとして含み、宛先CI(CI4)のIPアドレスを宛先アドレスとして含むことができる。
VRVI B 1504-Bは、パケットを受信し、デカプセル化することができる。VRVI B 1504-Bはさらに、宛先IPアドレスに対応するVLAN B 1502-B内のインターフェイスを特定することができる。VRVI B 1504-Bは、パケットをカプセル化し、VLAN B 1504-B内にトンネリングするためにL2ヘッダを追加することができる。次いで、VRVI B 1504-Bは、パケットを宛先CIに転送することができる。宛先インターフェイスVI4 1544は、パケットを受信し、デカプセル化した後、イーサネット(登録商標)フレームまたはパケットを宛先CI1540に転送することができる。
受信パケットフロー
図16を参照して、図16は、受信パケットフローを行うためのプロセス1600の一実施形態を示すフローチャートである。具体的には、図16は、サブネットからパケットを受信するためのプロセス1600の一実施形態を示す。このプロセスは、システム600の全部または一部によって実行されてもよく、具体的には、VLANのエンティティ、および(VLANに対して)外部のソースCIによって実行されてもよい。外部のソースCIは、L3サブネットに常駐することができる。
プロセス1600は、ブロック1602から始まる。ブロック1602において、ソースL3 CIは、パケットを宛先CIに、具体的にはVLAN内の宛先IPアドレスに送信することを決定する。ソースL3 CIは、マッピングを知らないため、ソースL3 CIを含むサブネットの仮想ルータのMACアドレスのためのARP要求を送信する。いくつかの実施形態において、このARP要求の送信は、ARP要求をイーサネットブロードキャストに送信することを含むことができる。ブロック1604において、ソースL3 CIのソースインターフェイスは、VRのMACアドレスでARP要求に応答する。いくつかの実施形態において、ソースインターフェイスは、ソースインターフェイスによってアクセスされるマッピング情報に基づいて、VRのMACアドレスを決定することができる。
ソースインターフェイスからARP応答を受信すると、ブロック1606に示すように、ソースL3 C1は、IPパケットをVRに送信する。いくつかの実施形態において、これは、ソースL3 CIがパケットを送信することと、ソースL3インターフェイスがこのパケットを受信し、カプセル化し、転送することとを含むことができる。いくつかの実施形態において、ソースL3インターフェイスは、L3カプセル化を用いてパケットをカプセル化することができる。L3カプセル化は、L3ヘッダから始まる元のパケットを含む。ソースL3インターフェイスは、パケットをVRに転送することができる。このIPパケットは、VR MACアドレスおよびVRインターフェイスに送信されてもよく、ソースL3 CIのMACアドレスをMACアドレスとして含み、ソースL3 CIのインターフェイス識別子をソースインターフェイス識別子として含むことができる。
VRは、パケットを受信し、デカプセル化する。次いで、VRは、パケット内の宛先IPアドレスのVNICマッピングを検索することができる。VRは、パケットがVLAN CIDR内にあると判断することができ、次いで、パケットをカプセル化し、カプセル化されたパケットを、宛先CIを含むVLANのVSRSに転送することができる。いくつかの実施形態において、VRは、L3カプセル化を用いてパケットをカプセル化することができる。カプセル化されたパケットは、VSRSの宛先IPアドレス、MACアドレスおよびインターフェイス識別子と、ソースIPアドレスとを含むことができる。
ブロック1610に示すように、VSRSは、パケットを受信し、デカプセル化する。VSRSは、宛先CIのマッピング、具体的には受信パケットにおける宛先IPアドレスのマッピングを知っている場合、宛先IPアドレスに対応するCIのTEPにIPパケットを転送する。これは、宛先CIのMACアドレスに対応する宛先MACと、宛先インターフェイスに対応する宛先インターフェイス識別子とを有するL2パケットを生成し、カプセル化することを含むことができる。受信パケットフローの実施形態において、宛先インターフェイスは、L2VNICである。
VSRSが宛先CIマッピングを知らない場合、プロセス1600は、ブロック1612に進み、VSRSは、IPパケットを受信し、デカプセル化する。
VSRSは、宛先MACアドレス対VNICマッピングを知らない場合、インターフェイス対MACアドレス学習プロセスを実行することができる。これは、VSRSがパケットをVLAN内の全てのインターフェイスに送信することを含むことができる。いくつかの実施形態において、このパケットは、ブロードキャストを介して、VLAN内の全てのインターフェイスに送信されてもよい。このパケットは、宛先MACおよびIPアドレスと、VSRSのインターフェイス識別子およびMACアドレスと、ソースCIのIPアドレスとを含むことができる。VLAN内の各VNICは、このパケットを受信することができ、VSRSのインターフェイス対MACアドレスマッピングを学習することができる。
各受信VNICはさらに、パケットをデカプセル化し、デカプセル化されたパケットを関連するCIに転送することができる。各CIは、転送されたパケットを評価することができるネットワークインターフェイスを含むことができる。転送されたパケットを受信したCIが宛先MACおよび/またはIPアドレスと一致しないとネットワークインターフェイスが判断した場合、パケットは、破棄される。転送されたパケットを受信したCIが宛先MACおよび/またはIPアドレスと一致するとネットワークインターフェイスが判断した場合、パケットは、CIによって受信される。いくつかの実施形態において、パケットの宛先MACおよび/またはIPアドレスと一致するMACおよび/またはIPアドレスを有するCIは、応答をVSRSに送信することができる。これによって、VSRSは、宛先CIのインターフェイス対MACアドレスマッピングおよびIP対MACアドレスマッピングを学習することができる。
代替的には、VSRSは、宛先CIマッピングを知らない場合、具体的には宛先IPアドレス対MACアドレスマッピングを知らない場合、IPパケットを保留する。次いで、VSRSは、VLANブロードキャストドメイン内のVSRSの全てのインターフェイスに宛先IPアドレスに対するARP要求を生成する。このARP要求は、VSRS MACをソースMACとして含み、VSRSインターフェイスのインターフェイス識別子をソースインターフェイスとして含み、宛先IPアドレスをターゲットIPアドレスとして含む。いくつかの実施形態において、このARP要求は、VLAN内の全てのインターフェイスにブロードキャストすることができる。
ブロック1614において、VLANブロードキャストドメイン内の全てのインターフェイスは、パケットを受信し、デカプセル化する。パケットがVSRSのMACアドレスおよびインターフェイス識別子を特定するため、パケットを受信したVLANブロードキャストドメイン内の各インターフェイスは、VSRSのインターフェイス対MACアドレスマッピングを学習する。VSRSのインターフェイス対MACアドレスマッピングを学習することの一部として、各インターフェイスは、マッピングテーブルを更新することができ、更新したマッピングテーブルを関連するスイッチおよび/またはCIに提供することができる。
各受信インターフェイスは、デカプセル化されたパケットを関連するCIに転送することができる。転送されたデカプセル化されたパケットを受信したCI、具体的には当該CIのネットワークインターフェイスは、パケットの宛先IPアドレスが当該CIのIPアドレスと一致するか否かを判断することができる。インターフェイスに関連するCIのIPアドレスが受信したパケットに指定された宛先CIのIPアドレスと一致しない場合、それ以上の動作を行わない。
受信したパケットに指定された宛先CIのIPアドレスが受信インターフェイス(宛先CI)に関連するCIのIPアドレスと一致すると判断された場合、ブロック1616に示すように、宛先CIは、ユニキャストARP応答であり得る応答をソースインターフェイスに送信する。この応答は、宛先CIのMACアドレスおよびIPアドレスと、VSRSのMACアドレスおよびIPアドレスとを含む。ブロック1618に示すように、この応答は、ユニキャストARP応答をカプセル化する宛先インターフェイスによって受信される。宛先インターフェイスは、宛先スイッチを介して、カプセル化されたパケットをVSRSに転送することができる。カプセル化されたパケットは、宛先CIのMACアドレス、IPアドレスおよびインターフェイス識別子と、VSRSのMACアドレス、IPアドレスおよびインターフェイス識別子とを含む。
ブロック1620において、VSRS、具体的にはVSRSインターフェイスは、ARP応答を受信し、デカプセル化する。VSRS、具体的にはVSRSインターフェイスはさらに、カプセル化におよび/またはカプセル化されたパケットに含まれた情報に基づいて、宛先CIのインターフェイス対MACアドレスマッピングを学習することができる。
ブロック1622において、VSRSは、L2ヘッダをカプセル化し、以前に保留されたIPパケットに追加することができ、その後、以前に保留されたIPパケットを宛先CIに、具体的には宛先インターフェイスに転送することができる。宛先インターフェイスは、パケットをデカプセル化し、デカプセル化されたパケットを宛先CIに提供することができる。VSRSによって転送されたこのパケットは、VSRSのMACアドレスおよびインターフェイス識別子をソースMACアドレスおよびソースインターフェイス識別子として含み、宛先CIのMACアドレスおよびインターフェイス識別子を宛先MACアドレスおよび宛先インターフェイス識別子として含むことができる。このパケットは、宛先CIのIPアドレスおよびソースCIのIPアドレスをさらに含むことができる。
宛先インターフェイスは、VSRSからパケットを受信し、パケットをデカプセル化する。このデカプセル化は、VSRSによって追加されたヘッダを除去することを含むことができる。ヘッダは、VCNヘッダであってもよい。次いで、宛先インターフェイスは、パケットを宛先CIに転送することができ、宛先CIは、宛先インターフェイスからパケットを受信することができる。
図17を参照して、図17は、受信通信を行うためのプロセス1600を示す概略図1700である。図示のように、VLAN A 1502-Aは、10.0.3.0/24を持つVLAN CIDRを有する。VLAN A 1502-Aは、1つ以上のハードウェア上でインスタンス化することができ、具体的にはサーバ群1506上でインスタンス化することができるVSRS VNIC A(VRVI A)1504-Aを含む。VRVI A 1504-Aは、IPアドレス10.0.3.1を有することができる。VLANは、IPアドレス10.0.3.2を有し、L2VNIC1(VI1)1514およびL2スイッチ1をインスタンス化することができるNVD1(SN1)1512に通信可能に接続された計算インスタンス1(CI1)1510を含むことができる。VLANは、IPアドレス10.0.3.3を有し、L2VNIC2(VI2)1524およびL2スイッチ2をインスタンス化することができるNVD2(SN2)1522に通信可能に接続された計算インスタンス2(CI2)1520を含むことができる。VLANは、IPアドレス10.0.3.4を有し、L2VNIC3(VI3)1534およびL2スイッチ3をインスタンス化することができるNVD3(SN3)1532に通信可能に接続された計算インスタンス3(CI3)1530を含むことができる。
L3計算インスタンス4(CI4)1744であり得る計算インスタンスは、VLAN A 1702-Aの外部のサブネット1739上に常駐することができる。CI4は、IPアドレス10.0.4.4を有することができ、L3 VNIC4(VI4)1744をインスタンス化することができるNVD4(SN4)1742と通信可能に接続することができる。
図17の例に図16の方法1600を適用すると、CI4 1740は、ソースCIであり、VI4 1744は、ソースインターフェイスである。また、CI3 1730は、宛先CIであり、VI3 1734は、宛先インターフェイスである。CI4は、パケットをCI3に送信するマッピングを知らないと判断する。したがって、CI4は、サブネット仮想ルータのIPアドレスに対してARP要求を送信する。この要求に応答して、いくつかの実施形態において、サブネット仮想ルータのインスタンスを含むNVD上に存在し得るVI4は、VRのIPアドレスを用いてCI4に直接に応答する。CI4は、VRのIPアドレスを学習し、パケットをVRに送信する。VRは、パケットを受信し、マッピング情報に基づいて、パケットをカプセル化し、矢印1748で示すように、パケットをVSRSに転送する。
VSRSは、パケットを受信し、VSRSが宛先CIへのマッピング、具体的にはIP対MACアドレスマッピングを知らない場合、VSRSは、パケットを保留し、ARP要求をVLAN A 1704-Aの全てのインターフェイスに送信する。このARP要求は、VSRSのMACアドレスおよびインターフェイス識別子を含む。VLAN A 1704-A内の各受信インターフェイスは、ARP要求に基づいて、VSRSのマッピングを学習する。同様に、各インターフェイスは、パケットをデカプセル化し、パケットをそのCIに送信する。デカプセル化されたパケットを受信すると、CI3は、それがパケットに指定されたCIであると判断し、そのMACアドレスで応答するARP応答を生成する。VI3は、ARP応答を受信してカプセル化し、カプセル化されたARP応答をVSRSに転送する。カプセル化されたARP応答は、VSRSのMACアドレスおよびインターフェイス識別子と、CI3のインターフェイスのMACアドレスおよびインターフェイス識別子とを含む。
VSRSは、ARP応答を受信し、CI3のIPアドレス対MACアドレスマッピングおよびMACアドレス対インターフェイスマッピングを学習する。次いで、VSRSは、以前に保留されたパケットをCI3に転送する。このパケットは、VI3によって受信され、デカプセル化され、CI3に転送される。
送信パケットフロー
次に図18を参照して、図18は、VLANからの送信パケットフローを行うためのプロセス1800の一実施形態を示すフローチャートである。いくつかの実施形態において、パケットは、VLANから、別のVLANに、サブネットに、または別のネットワークに送信することができる。プロセス1800は、システム600の全てまたは一部によって実行されてもよく、具体的には、VLANのエンティティによって実行されてもよい。いくつかの実施形態において、プロセスの一部は、(VLANに対して)外部のソースCIによって実行されてもよい。外部のソースCIは、L3サブネットに常駐することができる。
いくつかの実施形態において、プロセス1800は、VLAN(ソースVLAN)内の計算インスタンス(ソースCI)がVLANの外部の宛先計算インスタンス(宛先CI)にパケットを送信するときに実行されてもよい。ソースCIは、第1のVLANのVSRS(ソースVSRS)のマッピングを既に知っている場合、パケットをソースVSRSに直接に送信することができる。ソースCIがソースVSRSのマッピングを知らない場合、ソースCIおよび関連するVNIC(ソースインターフェイスまたはソースVNIC)は、まずソースVSRSのマッピング、具体的にはソースVSRSのIP対MACアドレスマッピングを学習する。L2VLANからの送信パケットフローの実施形態において、ソースVNICは、L2VNICである。プロセス1800の第1のステップ1802~1810は、ソースVNICおよびソースCIによるソースVSRSマッピングの学習に関する。
プロセス1800は、ブロック1802から始まる。ブロック1802において、ソースCIは、ARP要求を開始する。ARP要求は、ソースVSRSのIP対MACアドレスマッピングを決定するために使用される。ARP要求は、ソースCIによってイーサネットブロードキャストに送信される。ARP要求は、ソースCIのMACアドレス、IPアドレスおよびインターフェイス識別子をソースアドレスおよびソースインターフェイス識別子として含む。ARP要求はさらに、ソースVSRSのIPアドレスを含む。
ブロック1804において、ソースVNICは、ARP要求を受信し、ARP要求を複製する。具体的には、ソースVNICは、ソースCIからARP要求を受信し、VLAN上の全てのインターフェイスを特定し、ARP要求をVLANブロードキャストドメイン上の全てのインターフェイスに送信する。前述したように、制御プレーンは、VLAN上のインターフェイスの全てを知り、その情報をVLAN内のインターフェイスに提供するため、ソースインターフェイスは、同様に、VLAN内のインターフェイスの全てを知り、VLAN内の各インターフェイスにARP要求を送信することができる。これを行うために、ソースインターフェイスは、ARP要求を複製し、VLAN上の各インターフェイスのために、ARP要求のうちの1つをカプセル化する。各カプセル化されたARP要求は、ソースCIのインターフェイス識別子およびソースCIのMACおよび/またはIPアドレスをソースアドレスとして含み、宛先CIインターフェイス識別子を宛先アドレスとして含む。ソースCIのインターフェイスは、シリアルユニキャストを介して複製およびカプセル化されたARP要求を送信することによって、イーサネットブロードキャストを複製する。いくつかの実施形態において、ソースVNICは、Geneveカプセル化を用いてARP要求をカプセル化することができる。
ブロック1806において、VLANブロードキャストドメイン内の全てのインターフェイスは、パケットを受信し、デカプセル化する。パケットがソースCIのMACアドレスおよびインターフェイス識別子を特定するため、パケットを受信したVLANブロードキャストドメイン内の各インターフェイスは、ソースCIのインターフェイス対MACアドレスマッピングを学習する。これに加えて、VSRSは、ソースCIのIP対MACアドレスマッピングを学習する。ソースCIのインターフェイス対MACアドレスマッピングを学習することの一部として、各インターフェイスは、マッピングテーブルを更新することができ、更新されたマッピングテーブルを関連するスイッチおよび/またはCIに提供することができる。VSRSを除く各受信インターフェイスは、デカプセル化されたパケットを関連するCIに転送することができる。転送されたデカプセル化されたパケットを受信したCI、具体的には当該CIのネットワークインターフェイスは、パケットの宛先IPアドレスがCIのIPアドレスと一致するか否かを判断することができる。インターフェイスに関連するCIのIPアドレスが受信したパケットに指定された宛先CIのIPアドレスと一致しない場合、それ以上の動作を行わない。
ソースVSRSは、宛先IPアドレスがソースVSRSのIPアドレスと一致すると判断する場合、ブロック1808に示すように、ユニキャストARP応答であり得る応答をカプセル化し、ソースインターフェイスに送信する。この応答は、ソースCIのMACアドレスおよびIPアドレスを宛先アドレスとして含み、ソースCIのインターフェイス識別子を宛先インターフェイス識別子として含む。この応答はさらに、ソースVSRSのMACアドレスおよびIPアドレスをソースアドレスとして含み、ソースVSRSのインターフェイス識別子をソースインターフェイス識別子として含む。
ブロック1810において、ソースインターフェイスは、ARP応答を受信し、デカプセル化する。ソースインターフェイスはさらに、カプセル化におよび/またはカプセル化されたパケットに含まれる情報に基づいて、ソースVSRSのインターフェイス対MACアドレスマッピングを学習することができる。いくつかの実施形態において、ソースインターフェイスは、ARP応答をソースCIに転送することができる。
ブロック1812において、ソースCIは、ARP応答を受信する。いくつかの実施形態において、ソースCIは、ARP応答に含まれる情報に基づいて、具体的には、ソースVSRSのMACアドレスおよびソースVSRSのIPアドレスに基づいて、マッピングテーブルを更新することができる。次いで、ソースCIは、IPパケット、具体的にはIPv4またはIPv6パケットを含む任意のパケットであり得るパケットをソースVSRSに送信することができる。いくつかの実施形態において、これは、ソースVSRSのMACアドレスおよびソースVSRSのIPアドレスの宛先アドレスを有するIPパケットを送信することを含むことができる。パケットは、ソースCIのMACアドレスおよびIPアドレスをソースアドレスとしてさらに含むことができる。
ブロック1814において、ソースインターフェイスは、ソースCIからパケットを受信する。ソースインターフェイスは、パケットをカプセル化する。ソースインターフェイスは、カプセル化されたパケットをソースVSRSに、具体的にはソースVSRSのVNICに転送することができる。カプセル化されたパケットは、ソースCIのMACアドレスおよびインターフェイス識別子をソースMACアドレスおよびソースインターフェイス識別子として含み、ソースVSRSのMACアドレスおよびインターフェイス識別子を宛先MACアドレスおよび宛先インターフェイス識別子として含むことができる。カプセル化されたパケットは、ソースCIのIPアドレスおよびソースVSRSのIPアドレスをさらに含むことができる。
ブロック1816において、ソースVSRSは、カプセル化されたパケットを受信する。ソースVSRSは、パケットの宛先CIを特定する。いくつかの実施形態において、ソースVSRSは、パケットに含まれる宛先CIのIPアドレスに基づいて、パケットの宛先CIを特定する。ソースVSRSは、パケットの宛先IPアドレスのマッピングを検索する。IPアドレスがVCNのIPアドレス空間内にある場合、ソースVSRSは、VCNのIPアドレス空間においてパケットの宛先IPアドレスのマッピングを検索する。次いで、ソースVSRSは、L3カプセル化を用いてパケットを再カプセル化する。
次いで、ソースVSRSは、パケットを宛先CIに転送する。いくつかの実施形態において、これは、宛先CIを含むサブネットに関連するVRにカプセル化されたパケットを転送すること、および/またはパケットがVCNから出ることを可能にするようにパケットをゲートウェイに転送することを含むことができる。いくつかの実施形態において、パケットを宛先CIに転送することは、宛先CIに関連するTEPにパケットを転送することを含むことができる。L3カプセル化されたパケットは、ソースCIのIPアドレスをソースアドレスとして含み、宛先CIのIPアドレスを宛先アドレスとして含む。
ブロック1820において、宛先インターフェイスは、パケットを受信し、デカプセル化する。いくつかの実施形態において、宛先VNICは、パケットを宛先CIに転送する。ブロック1822において、宛先CIは、パケットを受信する。
図19を参照して、図19は、送信パケットフローを行うためのプロセス1800を示す概略図1900である。図示のように、VLAN A 1502-Aは、10.0.3.0/24を持つVLAN CIDRを有する。VLAN A 1502-Aは、1つ以上のハードウェア上でインスタンス化することができ、具体的にはサーバ群1506上でインスタンス化することができるVSRS VNIC A(VRVI A)1504-Aを含む。VRVI A 1504-Aは、IPアドレス10.0.3.1を有することができる。VLANは、IPアドレス10.0.3.2を有し、L2VNIC1(VI1)1514およびL2スイッチ1をインスタンス化することができるNVD1(SN1)1512に通信可能に接続された計算インスタンス1(CI1)1510を含むことができる。VLANは、IPアドレス10.0.3.3を有し、L2VNIC2(VI2)1524およびL2スイッチ2をインスタンス化することができるNVD2(SN2)1522に通信可能に接続された計算インスタンス2(CI2)1520を含むことができる。VLANは、IPアドレス10.0.3.4を有し、L2VNIC3(VI3)1534およびL2スイッチ3をインスタンス化することができるNVD3(SN3)1532に通信可能に接続された計算インスタンス3(CI3)1530を含むことができる。
L3計算インスタンス4(CI4)1944であり得る計算インスタンスは、VLAN A1902-Aの外部のサブネット1939上に常駐することができる。CI4は、IPアドレス10.0.4.4を有することができ、L3 VNIC4(VI4)1944をインスタンス化することができるNVD4(SN4)1942と通信可能に接続することができる。サブネット1939は、仮想ルータ(VR)1948を含むことができる。VR1948は、IPアドレス10.0.4.1を有することができる。VR1948は、例えば、スマートNIC、サーバ、サーバ群上でインスタンス化されてもよい。
図19の例に図18の方法1800を適用すると、CI3 1930は、ソースCIであり、VI3 1934は、ソースインターフェイスである。また、CI4 1940は、宛先CIであり、VI4 1944は、宛先インターフェイスである。CI3がVRVI A 1904-AのIP対MACマッピングを有しないと判断すると、CI3 1930は、ARP要求を送信する。ARP要求は、既知のアドレスに対するものであってもよく、具体的には、VRVI A 1904-Aの既知のIPアドレスに対するものであってもよい。したがって、いくつかの実施形態において、ARP要求は、10.0.3.1に対するものであってもよい。
このARP要求は、SN3 1932およびVI3 1934によって受信される。VI3 1934は、ARP要求を複製することによって、VLAN1902-A内の各CIのARP要求を作成する。VI3 1934は、L2カプセル化を用いて各ARP要求をカプセル化し、ARP要求をVLAN内の各インターフェイスに送信する。これらのカプセル化されたARP要求は、ソースCI(CI3)のMACアドレス、ソースインターフェイス識別子VI3、およびターゲットIPアドレスを特定するための情報を含むことができる。これらの要求は、矢印1950で示すように、VLAN内の各インターフェイスに送信されてもよく、具体的には、VLAN内の各インターフェイスがARP要求を受信するようにブロードキャストされてもよい。
VLAN内のインターフェイスは、カプセル化されたARP要求を受信し、ARP要求をデカプセル化する。ARP要求に含まれる情報および/またはARP要求に関連する情報に基づいて、VLAN内のインターフェイスは、それらのマッピングを更新する。具体的には、例えば、VI1 1914、VI2 1924およびVRVI A 1904-Aの各々は、CI3 1930からユニキャストARP要求を受信し、ユニキャストARP要求をデカプセル化し、ソースCIのインターフェイス対MACアドレスマッピングを学習する。インターフェイス識別子およびMACアドレスの両方は、カプセル化されたパケットに含まれる。
矢印1952で示すように、VRVI A 1904-Aは、そのIPアドレスが要求されたIPアドレスに一致すると判断し、ARP応答をCI3 1930に送信する。VRVI A 1904-AからのARP応答は、例えば、VRVI A 1904-Aによってカプセル化されてもよく、ARPユニキャストとして要求インターフェイスに、具体的にはVI3に送信されてもよい。本願で前述したように、このARP応答の送信は、カプセル化されたARP応答をVRVI A 1904-Aに関連するスイッチに提供することを含むことができ、関連するスイッチは、カプセル化されたARP応答をVI3に送信することができる。
ARP応答は、VI3によって受信されてもよく、デカプセル化されてもよい。VI3は、受信したARP応答に基づいてVRVI A 1904-Aのインターフェイス対MACマッピングを学習することができ、学習したマッピングをVI3に関連するスイッチに提供することができる。デカプセル化されたパケットは、CI3に提供されてもよい。CI3は、受信したパケットに基づいて、IP対MACアドレスマッピングを学習することができる。CI3は、パケットを送信することができ、このパケットは、IPv4またはIPv6パケットなどのIPパケットであってもよい。このパケットは、CI3のMACアドレスおよびIPアドレスをソースアドレスとして含むことができ、宛先CI(CI4 1940)のIPアドレスを宛先アドレスとして含むことができる。いくつかの実施形態において、宛先アドレスは、VRVI A 1904-AのMACアドレスをさらに含むことができる。
CI3によって送信されたパケットは、VI3によって受信することができ、VI3は、パケットをカプセル化し、パケットをVRVI A 1904-Aに転送することができる。VRVI A 1904-Aは、パケットを受信し、パケットをデカプセル化し、パケットの宛先IPアドレス(CI4のIPアドレス)のマッピングを検索することができる。いくつかの実施形態において、VSRS、したがってVRVI A 1904-Aは、L2ネットワークおよびL3ネットワークの両方に常駐することができる。L2ネットワーク、したがってVLANにおいて、VSRSは、L2通信プロトコルを利用することができるが、L3ネットワークと通信するときにL3通信プロトコルを利用することができる。VLANにおいて行われた学習とは対照的に、VSRSは、L3制御プレーンからL3ネットワーク内のエンドポイントのマッピングを学習することができる。いくつかの実施形態において、例えば、L3制御プレーンは、L3ネットワーク内のインスタンスのIPアドレス、MACアドレス、および/またはインターフェイス識別子をマッピングする情報を提供することができる。
VRVI A 1904-Aは、パケットに含まれるIP宛先アドレスのマッピングを検索することができ、言い換えれば、宛先CIのIPアドレスのマッピングを検索することができる。いくつかの実施形態において、このマッピングを検索することは、CI4 1940が常駐するサブネット1939を特定すること、および/またはCI4が常駐するサブネット1939に関連するVRを特定することを含むことができる。VRVI A 1904-Aは、パケットをカプセル化し、カプセル化されたパケットをVR1948に転送することができる。VR1948は、サブネット1939および/または宛先CI1940のトンネルエンドポイント(TEP)であってもよい。このカプセル化されたパケットの転送は、ブロック1956によって示される。
VR1948は、パケットを受信し、デカプセル化することができる。VR1948はさらに、宛先IPアドレスに対応するサブネット1939内のインターフェイスを特定することができる。いくつかの実施形態において、VR1948は、宛先インターフェイスVI4 1944と同じNVD上に配置されてもよい。したがって、VR1948は、パケットを宛先CIに、具体的にはブロック1958によって示されるようにCI4 1940に直接に転送することができる。
インターフェイスベースのアクセス制御リストフィルタリング
VSRSは、インターフェイスベースのアクセス制御リスト(ACL)フィルタリングを提供することができる。これは、VLANの受信セキュリティポリシーを評価することを含むことができる。これはまた、VSRSが受信パケットをどこに送信すべきかを判断するときに、学習したVLANのインターフェイス対MACアドレスおよびIPアドレスのマッピングに基づいて、VSRSの送信者の送信セキュリティポリシーを評価することを含むことができる。これは、ACLの分類の遅延をもたらし得る。
いくつかの実施形態において、ACLは、システム内のオブジェクトに関連する許可リストを含むことができる。これらのオブジェクトは、物理ネットワーク内のハードウェアを含むことができ、このハードウェアは、例えば、1つ以上のサーバ、スマートNIC、ホストマシンなどを含むことができる。これらのオブジェクトは、仮想ネットワーク内の1つ以上の仮想オブジェクトを含むことができる。これらの仮想オブジェクトは、例えば、1つ以上のインターフェイス、計算インスタンス、IPアドレスおよび/またはMACアドレスなどのアドレスを含むことができる。いくつかの実施形態において、ACLは、オブジェクトへのアクセスを許可されたユーザ、オブジェクトおよび/またはシステムプロセス、および/または所定のオブジェクトに対して許可された動作を指定することができる。
ACLは、1つ以上のCIに対して固有であってもよい。したがって、いくつかの実施形態において、CIの一部または全ては、固有のACLを持つことができ、および/または固有のACLを保持することができる。いくつかの実施形態において、CIのACLは、CIがパケットを送信できるインターフェイスおよび/またはアドレス(MACアドレスまたはIPアドレスのいずれか)、CIがパケットを送信できないインターフェイスおよび/またはアドレス(MACアドレスまたはIPアドレスのいずれか)、CIが1種以上のパケットを送信できる1つ以上のインターフェイスおよび/またはアドレス、および/またはCIが1種以上のパケットを送信できない1つ以上のインターフェイスを指定することができる。いくつかの実施形態において、CIのACLは、ACLを実施できる1つ以上のVRまたはVSRSなどの他のエンティティを含む、ネットワーク内の他のエンティティによってアクセス可能な場所に格納されてもよい。
例えば、VLAN内の1つ以上の意図された受信者のためにIPネットワークから通信を受信するとき、VSRSは、その通信の送信者のACLに基づいて、通信のフィルタリングおよび/または配信制限を決定し、適用することができる。いくつかの実施形態において、これは、例えば、(1)VSRSが送信者のACLのコピーにアクセスすることに基づいて通信決定を行うことによって、または(2)VSRSが受信した通信のパケットメタデータに符号化された情報に基づいて通信決定を行うことによって、達成することができる。
図20を参照して、図20は、遅延アクセス制御リスト(ACL)分類を行うためのプロセス2000の一実施形態を示すフローチャートである。プロセス2000は、システム600の全てまたは一部によって実行されてもよく、具体的には、VSRS624、634によって実行されてもよい。
プロセス2000は、ブロック2002から始まる。ブロック2002において、ソースCIは、パケットを宛先MACまたはIPアドレスに送信する。いくつかの実施形態において、ソースCIは、パケットが送信される宛先MACアドレスまたはIPアドレスを含むVLANの外部にあってもよい。
ブロック2006において、宛先MACまたはIPアドレスを含むVLANのVSRSは、パケットを受信する。いくつかの実施形態において、パケットは、L2カプセル化を用いてカプセル化されてもよく、いくつかの実施形態において、パケットは、L3カプセル化を用いてカプセル化されてもよい。ブロック2008に示すように、VSRSは、パケットをデカプセル化し、ソースCIを特定することができる。ソースCIを特定すると、VSRSは、ソースCIのACLを入手することができる。いくつかの実施形態において、例えば、ソースCIのACLは、VSRSによってアクセス可能な場所に格納されてもよい。いくつかの実施形態において、ソースCIのACLにアクセスすることは、ソースCIのACL内の情報を取得することを含むことができる。この情報は、例えば、パケットの配信に対する1つ以上の制限を特定することができる。いくつかの実施形態において、この情報は、1つ以上のIPアドレス、MACアドレス、ソースおよび宛先のTCPおよび/またはUDPポート、イーサタイプなどに基づく1つ以上のルールを含むことができる。
ブロック2010において、VSRSは、パケットの宛先インターフェイスを特定する。VSRSが宛先アドレスのマッピングを有しない実施形態において、VSRSは、図16のプロセス1600のステップ1612から1620を参照して上述したように、マッピング情報を決定することができる。以前にマッピングを学習した実施形態、またはプロセス1600のステップ1612から1620のうちの一部または全てを実行することによってマッピングを学習した実施形態において、VSRSは、VLAN内のVSRSのインターフェイスとの通信を介してVSRSが学習したマッピングに基づいて、宛先インターフェイスを特定することができる。いくつかの実施形態において、宛先インターフェイスを特定することは、宛先アドレス、具体的にはパケットの宛先IPアドレスおよび/またはMACアドレスに基づいて、宛先インターフェイスを検索することを含むことができる。
ブロック2012において、VSRSは、ソースCIのACLを宛先インターフェイスに適用する。これは、ソースCIのACLの任意の部分が宛先インターフェイスに関連するか否かを判断することと、関連がある場合、その部分のソースCIのACLを適用することとを含むことができる。ブロック2014において、宛先インターフェイスがソースCIのACLに準拠する場合、言い換えれば、ソースCIのACLがソースCIから宛先インターフェイスへのパケットの送信を許可する場合、VSRSは、パケットを宛先インターフェイスに転送する。いくつかの実施形態において、このパケットの転送は、パケットをカプセル化することを含むことができる。いくつかの実施形態において、パケットは、例えば、L2Geneveカプセル化などのL2カプセル化に従ってカプセル化されてもよい。VSRSは、パケットを宛先インターフェイスに、より具体的には、宛先インターフェイスをTEPとして有する宛先CIに転送することができる。宛先インターフェイスは、パケットを受信し、パケットをデカプセル化し、パケットを宛先CIに転送することができる。
代替的には、ブロック2016において、宛先インターフェイスがソースCIのACLに準拠しない場合、言い換えれば、ソースCIのACLがソースCIから宛先インターフェイスへのパケットの送信を許可しない場合、VSRSは、パケットを破棄する。いくつかの実施形態において、VSRSは、パケットの破棄を示したソースCI、および/またはパケットの破棄の理由を示したソースCIに応答することができる。いくつかの実施形態において、VSRSは、ACL決定を反映するために、送信インターフェイスに関連する動作メトリック/統計を更新することができる。
図21を参照して、図21は、ACLを早期分類し、その分類をメタデータに組み込むためのプロセス2100の一実施形態を示すフローチャートである。プロセス2100は、システム600の全てまたは一部によって実行されてもよく、具体的には、ソースC1およびVSRS624、634によって実行されてもよい。
ブロック2102において、ソースCIは、パケットを宛先CIに送信することを決定する。いくつかの実施形態において、これは、ソースCIが宛先CIのMACアドレスおよび/またはIPアドレスにパケットを送信することを決定することを含むことができる。ソースVNICは、ブロック2104に示すようにパケットを送信することができる。ソースVNICは、パケットを受信することができ、パケットのACLを評価することができ、パケットに関連するACL情報をパケットの一部に埋め込むことができる。いくつかの実施形態において、この情報は、1つ以上のIPアドレス、MACアドレス、ソースおよび宛先のTCPおよび/またはUDPポート、イーサタイプなどに基づく1つ以上のルールを含むことができる。ソースVNICはさらに、パケットをカプセル化することができる。いくつかの実施形態において、ACLは、メタデータとしてカプセル化されたパケットに格納されてもよく、具体的には、パケットのヘッダに格納されてもよい。いくつかの実施形態において、ソースCIは、パケットが送信される宛先CIを含むVLANの外部にあってもよい。
ブロック2106において、宛先MACまたはIPアドレスを含むVLANのVSRSは、パケットを受信する。いくつかの実施形態において、パケットは、L2カプセル化を用いてカプセル化することができ、いくつかの実施形態において、パケットは、L3カプセル化を用いてカプセル化されてもよい。VSRSは、パケットをデカプセル化することができる。いくつかの実施形態において、VSRSは、パケットから、パケットの宛先を特定する情報、具体的には宛先IPアドレスを特定する情報を抽出することができる。
ブロック2108において、VSRSは、パケットの宛先インターフェイスを特定する。VSRSが宛先アドレスのマッピングを有しない実施形態において、VSRSは、図16のプロセス1600のステップ1612から1620を参照して上述したように、マッピング情報を決定することができる。以前にマッピングを学習した実施形態、またはプロセス1600のステップ1612から1620のうちの一部または全てを実行することによってマッピングを学習した実施形態において、VSRSは、VLAN内のVSRSのインターフェイスとの通信を介してVSRSによって学習されたマッピングに基づいて、宛先インターフェイスを特定することができる。したがって、いくつかの実施形態において、VSRSは、宛先アドレスのマッピング情報を有することを決定し、このマッピング情報に基づいて宛先インターフェイスを特定することができる。いくつかの実施形態において、宛先インターフェイスを特定することは、宛先アドレス、具体的にはパケットの宛先IPアドレスおよび/またはMACアドレスに基づいて、宛先インターフェイスを検索することを含むことができる。
ブロック2110において、VSRSは、パケットの一部に含まれるACL情報を入手する。いくつかの実施形態において、これは、パケットからメタデータを抽出すること、具体的には、パケットヘッダからメタデータを抽出することを含むことができる。いくつかの実施形態において、これは、パケットヘッダのパケットメタデータに符号化された情報を復号することを含むことができる。
ブロック2112において、VSRSは、パケットの一部から取り出されたACL情報を適用する。具体的には、これは、符号化されたセキュリティ情報を宛先インターフェイスに適用することを含むことができる。これは、宛先インターフェイスに関連するACL情報の任意の部分を判断することと、関連がある場合、その部分のACL情報を適用することとを含むことができる。ブロック2114において、宛先インターフェイスがACL情報および/またはACL情報の1つ以上のルールに準拠する場合、言い換えれば、ACL情報がパケットをソースCIから宛先インターフェイスに送信することを許可する場合、VSRSは、パケットを宛先インターフェイスに転送する。いくつかの実施形態において、このパケットの転送は、パケットをカプセル化することを含むことができる。いくつかの実施形態において、パケットは、例えば、L2Geneveカプセル化などのL2カプセル化に従ってカプセル化されてもよい。VSRSは、パケットを宛先インターフェイスに、より具体的には、宛先インターフェイスをTEPとして有する宛先CIに転送することができる。宛先インターフェイスは、パケットを受信し、パケットをデカプセル化し、パケットを宛先CIに転送することができる。
代替的には、ブロック2116において、宛先インターフェイスがACL情報に準拠しない場合、言い換えれば、ACL情報がパケットをソースCIから宛先インターフェイスに送信することを許可しない場合、VSRSは、パケットを破棄する。いくつかの実施形態において、VSRSは、パケットの破棄を示したソースCI、および/またはパケットの破棄の理由を示したソースCIに応答することができる。
ネクストホップルーティング
VSRSのいくつかの実施形態は、ネクストホップルーティングを容易にすることができ、具体的には、VSRSが通信を受信するまでネクストホップの評価を遅延させることができる。VLAN外部の通信の送信者は、VLAN内のインスタンスの更新された仮想IPアドレスを知らないことがあるため、VLAN外部の送信者は、ネクストホップルーティングを正確に指定することができない。
いくつかの実施形態において、VSRSは、ネクストホップルーティング仕様を容易にすることができる。いくつかの実施形態において、これは、例えば、(1)送信者が通信を行うためのネクストホップルーティングの初期指定を行い、VSRSが通信を受信すると、ネクストホップ指定を再評価すること、または(2)VSRSが通信を受信するまでネクストホップ指定を遅延させることによって達成することができる。
図22を参照して、図22は、送信者ベースのネクストホップルーティングを行うためのプロセス2200の一実施形態を示すフローチャートである。いくつかの実施形態において、これは、ネクストホップルートの評価とネクストホップルートの仕様とを分離することを含むことができる。これは、ソースCIがルートポリシーを評価し、ネクストホップルートを通信の仮想パケットヘッダのパケットメタデータに符号化することをもたらすことができる。このような実施形態において、パケットは、ネクストホップ宛先の意図した仮想IPアドレスを含むことができ、ネクストホップルートは、パケットメタデータに符号化することができる。
この通信は、VSRSによって受信され、VSRSは、パケットメタデータ内に符号化されたネクストホップルートを使用して、通信を受信するVLAN内のインスタンスと、当該インスタンスの宛先仮想IPアドレスとを決定する。VSRSによって生成および/またはキュレート(curate)されたテーブルを用いて、具体的には、仮想IPアドレス、MACアドレス、および/または仮想インターフェイスIDをリンクするテーブルを用いて、このインスタンスを決定することができる。これらのテーブルを用いて、VSRSは、意図されたネクストホップ宛先のMACアドレスおよび/または仮想インターフェイスIDに対応する仮想IPアドレスを特定することができる。いくつかの実施形態において、VSRSがパケットメタデータに含まれる符号化されたネクストホップルートに基づく受信者インスタンスを特定することは、VSRSが、パケット内の仮想IPアドレスによって示され、パケットの送信者によって指定されたネクストホップ宛先とは異なる宛先仮想IPアドレスに通信を送信することをもたらすことができる。
プロセス2200は、システム600の全てまたは一部によって実行されてもよく、具体的には、ソースCIおよびVSRS624、634によって実行されてもよい。
プロセスは、ブロック2202から始まる。ブロック2202において、ソースCIは、パケットを送信することができる。いくつかの実施形態において、ソースCIは、パケットが送信される宛先MACアドレスまたはIPアドレスを含むVLANの外部にあってもよい。
ブロック2204において、ソースVNICは、1つ以上のルーティングルールに基づいて、ルーティング決定を行うことができる。いくつかの実施形態において、これは、ソースVNICが1つ以上のルーティングルールを検索および/または入手し、これらのルーティングルールに基づいてルーティング決定を行うことを含むことができる。いくつかの実施形態において、このルーティング決定は、パケットのネクストホップルーティング決定であってもよい。いくつかの実施形態において、これらのルーティングルールは、例えば、ソースCIのネットワーク内のルートテーブルに格納することができる。いくつかの実施形態において、これは、例えば、サブネットルートテーブルを含むことができる。
ブロック2206において、ソースVNICは、ルーティング決定をパケットの一部に埋め込むことができる。いくつかの実施形態において、これは、パケットをカプセル化することと、ルーティング決定をパケットのメタデータに埋め込むこととを含むことができる。メタデータは、例えば、パケットのヘッダに符号化されてもよい。パケットをカプセル化し、ルーティング決定をカプセル化されたパケットに埋め込んだ後、ソースVNICは、カプセル化されたパケットをVSRSに転送することができる。
ブロック2208において、宛先MACアドレスまたはIPアドレスを含むVLAN内のVSRSは、パケットを受信する。いくつかの実施形態において、パケットは、L2カプセル化を用いてカプセル化されてもよく、いくつかの実施形態において、パケットは、L3カプセル化を用いてカプセル化されてもよい。いくつかの実施形態において、VSRSがパケットを受信することは、パケットをデカプセル化することを含むことができる。いくつかの実施形態において、VSRSがパケットを受信することは、パケットの一部に埋め込まれたルーティング決定を抽出することを含むことができる。いくつかの実施形態において、これは、ルーティング決定を含む符号化されたメタデータを復号することを含むことができる。
ブロック2210において、VSRSは、ルーティング決定をVSRSルーティング情報に適用することによって、パケットの宛先インターフェイスを決定する。いくつかの実施形態において、これは、復号されたルーティング決定をVSRSルーティング情報に適用することによって、ルーティング情報に対応するVLAN内の宛先CIを決定することを含むことができる。ブロック2212において、VSRSは、パケットを決定されたVLAN内のCIに送信する。いくつかの実施形態において、これは、VSRSがパケットを宛先インターフェイスに転送することを含むことができる。いくつかの実施形態において、このパケットの転送は、パケットをカプセル化することを含むことができ、カプセル化は、例えば、L2Geneveカプセル化などのL2カプセル化に従って行われてもよい。VSRSは、パケットを宛先インターフェイスに、より具体的には、宛先インターフェイスをTEPとして有する宛先CIに転送することができる。宛先インターフェイスは、パケットを受信し、パケットをデカプセル化し、パケットを宛先CIに転送することができる。
図23を参照して、遅延ネクストホップルーティングを行うためのプロセス2300の一実施形態を示すフローチャートが示されている。プロセス2300は、システム600の全てまたは一部によって実行されてもよく、具体的には、ソースVNICおよびVSRS624、634によって実行されてもよい。
いくつかの実施形態において、例えば、ソースVNICは、ルーティングテーブルに含まれ得るルーティングルールに基づいて、VLANを通過する通信のルーティング決定を行うことができる。この通信は、VSRSによって受信され、このVSRSは、ネクストホップ仕様を再評価することができ、同じルーティングテーブルのコピーに照会することによってルーティングルールを特定することができる。このルーティングルールに基づいて、VSRSは、ルーティングルールに対応するVLAN内のインスタンスおよび当該インスタンスの仮想IPアドレスを決定し、通信を当該インスタンスに送信する。ルーティングルールに対応するインスタンスの決定は、VSRSが仮想IPアドレス、MACアドレス、および/または仮想インターフェイスIDをリンクするテーブルから情報を取得することと、意図したネクストホップ宛先である仮想インターフェイスおよび/またはインスタンスに関連する仮想IPアドレスを決定することとを含むことができる。
プロセス2300は、ブロック2302から始まる。ブロック2302において、ソースCIは、パケットを送信することができる。いくつかの実施形態において、これは、ソースCIがパケットを宛先CIのMACアドレスおよび/またはIPアドレスに送信することを含むことができる。いくつかの実施形態において、ソースCIは、パケットが送信される宛先MACアドレスまたはIPアドレスを含むVLANの外部にあってもよい。
ブロック2204において、ソースVNICは、パケットを受信することができる。次いで、ソースVNICは、1つ以上のルーティングルールに基づいてルーティング決定を行うことができる。いくつかの実施形態において、これは、ソースVNICが1つ以上のルーティングルールを検索および/または入手し、それらのルーティングルールに基づいてルーティング決定を行うことを含むことができる。いくつかの実施形態において、このルーティング決定は、パケットのネクストホップルーティング決定であってもよい。いくつかの実施形態において、これらのルーティングルールは、例えば、ソースCIのネットワーク内のルートテーブルに格納することができる。いくつかの実施形態において、これは、例えば、サブネットルートテーブルを含むことができる。ソースVNICは、パケットをカプセル化することができ、パケットをVSRSに送信することができる。
ブロック2206において、宛先MACまたはIPアドレスを含むVLAN内のVSRSは、パケットを受信する。いくつかの実施形態において、パケットは、L2カプセル化を用いてカプセル化されてもよく、いくつかの実施形態において、パケットは、L3カプセル化を用いてカプセル化されてもよい。いくつかの実施形態において、VSRSがパケットを受信することは、パケットをデカプセル化することを含むことができる。
ブロック2308において、VSRSは、パケットに関連するルーティング情報を取得する。いくつかの実施形態において、これは、ルーティングテーブルおよび/または受信したパケットに関連するルーティングテーブルの一部を取得することを含むことができる。いくつかの実施形態において、このルーティングテーブルは、例えば、制御プレーンから受信することができる。ルーティング情報を受信すると、VSRSは、受信したパケットに関連するルーティングルールを特定する。
ブロック2310において、VSRSは、ルーティングルールをVSRSルーティング情報に適用することによって、パケットのVLANの宛先インターフェイスを決定する。いくつかの実施形態において、これは、ルーティングルールをVSRSルーティング情報に適用することによって、ルーティング情報に対応するVLANの宛先CIを決定することを含むことができる。ブロック2312において、VSRSは、決定されたVLANのCIにパケットを送信する。いくつかの実施形態において、これは、VSRSがパケットを宛先インターフェイスに転送することを含むことができる。いくつかの実施形態において、このパケットの転送は、パケットをカプセル化することを含むことができ、カプセル化は、例えば、L2Geneveカプセル化などのL2カプセル化に従って行われてもよい。VSRSは、パケットを宛先インターフェイスに、より具体的には、宛先インターフェイスをTEPとして有する宛先CIに転送することができる。宛先インターフェイスは、パケットを受信し、パケットをデカプセル化し、パケットを宛先CIに転送することができる。
例示的な実装
上述したように、IaaS(Infrastructure as a Service)は、1つの特定の種類のクラウドコンピューティングである。IaaSは、パブリックネットワーク(例えば、インターネット)を介して仮想化計算リソースを提供するように構成されてもよい。IaaSモデルにおいて、クラウドコンピューティングプロバイダは、インフラストラクチャ要素(例えば、サーバ、記憶装置、ネットワークノード(例えば、ハードウェア)、展開ソフトウェア、プラットフォーム仮想化(例えば、ハイパーバイザ層)など)をホストすることができる。場合によっては、IaaSプロバイダは、インフラストラクチャ要素に付随する様々なサービス(例えば、課金、監視、ロギング、負荷分散およびクラスタリングなど)を提供することができる。したがって、これらのサービスがポリシー駆動型であり得るため、IaaSユーザは、アプリケーションの可用性および性能を維持するために、負荷分散を駆動するためのポリシーを実装することができる。
いくつかの例において、IaaS顧客は、インターネットなどの広域ネットワーク(WAN)を介してリソースおよびサービスにアクセスすることができ、クラウドプロバイダのサービスを使用してアプリケーションスタックの残りの要素をインストールすることができる。例えば、ユーザは、IaaSプラットフォームにログインして、仮想マシン(VM)を作成し、各VMにオペレーティングシステム(OS)をインストールし、データベースなどのミドルウエアを展開し、ワークロードおよびバックアップの記憶バケットを作成し、VMに企業ソフトウェアをインストールすることができる。顧客は、プロバイダのサービスを使用して、ネットワークトラフィックのバランシング、アプリケーションのトラブルシューティング、パフォーマンスの監視、災害復旧の管理などを含む様々な機能を実行することができる。
殆どの場合、クラウドコンピューティングモデルは、クラウドプロバイダの参加を必要とする。クラウドプロバイダは、IaaSの提供(例えば、オファー、レンタル、販売)に特化した第3者サービスであってもよいが、その必要はない。また、企業は、プライベートクラウドを配置し、インフラストラクチャサービスを提供するプロバイダになることもできる。
いくつかの例において、IaaSの配置は、用意したアプリケーションサーバなどに新しいアプリケーションまたは新しいバージョンのアプリケーションを配置するプロセスである。IaaSの配置は、サーバを用意する(例えば、ライブラリ、デーモンなどをインストールする)プロセスを含んでもよい。IaaSの配置は、多くの場合、クラウドプロバイダによって、ハイパーバイザ層(例えば、サーバ、記憶装置、ネットワークハードウェア、および仮想化)の下で管理される。したがって、顧客は、OS、ミドルウエア、および/またはアプリケーションの展開(例えば、セルフサービス仮想マシン(例えば、オンデマンドでスピンアップできるもの)などを行うことができる。
いくつかの例において、IaaSのプロビジョニングは、使用されるコンピュータまたは仮想ホストを取得すること、およびコンピュータまたは仮想ホスト上に必要なライブラリまたはサービスをインストールすることを含んでもよい。殆どの場合、配置は、プロビジョニングを含まず、まずプロビジョニングを実行する必要がある。
場合によっては、IaaSのプロビジョニングには2つの異なる課題がある。第1に、何かを実行する前に、インフラストラクチャの初期セットをプロビジョニングするという課題がある。第2に、全てのものをプロビジョニングした後に、既存のインフラストラクチャを進化させる(例えば、新しいサービスの追加、サービスの変更、サービスの削除)という課題がある。場合によっては、インフラストラクチャの構成を宣言的に定義することを可能にすることによって、これらの2つの課題に対処することができる。言い換えれば、インフラストラクチャ(例えば、どの要素が必要とされるか、およびこれらの要素がどのように相互作用するか)は、1つ以上の構成ファイルによって定義されてもよい。したがって、インフラストラクチャの全体的なトポロジ(例えば、どのリソースがどれに依存し、どのように連携するか)は、宣言的に記述することができる。いくつかの例において、トポロジが定義されると、構成ファイルに記述された異なる要素を作成および/または管理するためのワークフローを生成することができる。
いくつかの例において、インフラストラクチャは、多くの相互接続された要素を含むことができる。例えば、コアネットワークとしても知られている1つ以上の仮想プライベートクラウド(VPC)(例えば、構成可能な計算リソースおよび/または共有されている計算リソースの潜在的なオンデマンドプール)が存在してもよい。いくつかの例において、ネットワークのインバウンドトラフィックおよび/またはアウトバウンドトラフィックをどのように設定するかを定義するためにプロビジョニングされる1つ以上のインバウンドトラフィックおよび/またはアウトバウンドトラフィックグループルールと、1つ以上の仮想マシン(VM)とが存在する可能性がある。ロードバランサ、データベースなどの他のインフラストラクチャ要素もプロビジョニングされてもよい。ますます多くのインフラストラクチャ要素が望まれるおよび/または追加されるにつれて、インフラストラクチャは、漸進的に進化することができる。
いくつかの例において、様々な仮想コンピューティング環境にわたってインフラストラクチャコードの展開を可能にするために、連続展開技法を採用してもよい。また、記載された技法は、これらの環境内のインフラストラクチャ管理を可能にすることができる。いくつかの例において、サービスチームは、1つ以上の、通常多くの異なる生産環境(例えば、時には全世界に及ぶ種々の異なる地理的場所にわたって)に展開されることが望まれるコードを書き込むことができる。しかしながら、いくつかの例において、コードを展開するためのインフラストラクチャを最初に設定しなければならない。いくつかの例において、プロビジョニングは、手動で行うことができ、プロビジョニングツールを用いてリソースをプロビジョニングすることができ、および/またはインフラストラクチャをプロビジョニングした後に、展開ツールを用いてコードを展開することができる。
図24は、少なくとも1つの実施形態に従って、IaaSアーキテクチャの例示的なパターンを示すブロック図2400である。サービスオペレータ2402は、仮想クラウドネットワーク(VCN)2406およびセキュアホストサブネット2408を含み得るセキュアホストテナンシ2404に通信可能に接続されてもよい。いくつかの例において、サービスオペレータ2402は、1つ以上のクライアントコンピューティング装置を使用することができる。1つ以上のクライアントコンピューティング装置は、例えば、Microsoft Windows Mobile(登録商標)のようなソフトウェア、および/またはiOS、Windowsフォン、アンドロイド(登録商標)、ブラックベリー8およびパームOSなどのさまざまなモバイルオペレーティングシステムを実行することができ、インターネット、電子メール、ショートメッセージサービス(SMS)、ブラックベリー(登録商標)または他の通信プロトコルが有効化された手持ち式携帯装置(例えば、iPhone(登録商標)、携帯電話、iPad(登録商標)、タブレット、携帯情報端末(PDA)またはウエアラブル装置(Google(登録商標)Glass(登録商標)ヘッドマウントディスプレイ)であってもよい。クライアントコンピューティング装置は、例示として、Microsoft Windows(登録商標)オペレーティングシステム、Apple Macintosh(登録商標)オペレーティングシステムおよび/またはLinux(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む汎用のパーソナルコンピュータであってもよい。代替的には、クライアントコンピューティング装置は、例えば、さまざまなGNU/Linuxオペレーティングシステム、例えば、Google Chrome(登録商標)OSを含むがこれに限定されない市販のUNIX(登録商標)またはUNIXに類似するさまざまなオペレーティングシステムを実行するワークステーションコンピュータであってもよい。代替的にまたは追加的には、クライアントコンピューティング装置は、VCN2406および/またはインターネットにアクセスできるネットワークを介して通信可能な他の電子機器、例えば、シンクライアントコンピュータ、インターネット対応のゲームシステム(例えば、Kinect(登録商標)ジェスチャ入力装置を備えるまたは備えないMicrosoft Xbox(登録商標)ゲームコンソール)、および/またはパーソナルメッセージング装置であってもよい。
VCN2406は、SSH VCN2412に含まれるLPG2410を介して、セキュアシェル(SSH)VCN2412に通信可能に接続できるローカルピアリングゲートウェイ(LPG)2410を含むことができる。SSH VCN2412は、SSHサブネット2414を含むことができ、SSH VCN2412は、制御プレーンVCN2416に含まれるLPG2410を介して、制御プレーンVCN2416に通信可能に接続されてもよい。また、SSH VCN2412は、LPG2410を介して、データプレーンVCN2418に通信可能に接続されてもよい。制御プレーンVCN2416およびデータプレーンVCN2418は、IaaSプロバイダによって所有および/または運営され得るサービステナンシ2419に含まれてもよい。
制御プレーンVCN2416は、境界ネットワーク(例えば、企業イントラネットと外部ネットワークとの間の企業ネットワークの部分)として機能する制御プレーンDMZ(demilitarized zone)層2420を含むことができる。DMZベースのサーバは、特定の信頼性を有し、セキュリティ侵害を封じ込めることができる。さらに、DMZ層2420は、1つ以上のロードバランサ(LB)サブネット2422と、アプリサブネット2426を含むことができる制御プレーンアプリ層2424と、データベース(DB)サブネット2430(例えば、フロントエンドDBサブネットおよび/またはバックエンドDBサブネット)を含むことができる制御プレーンデータ層2428とを含むことができる。制御プレーンDMZ層2420に含まれたLBサブネット2422は、制御プレーンアプリ層2424に含まれるアプリサブネット2426と制御プレーンVCN2416に含まれ得るインターネットゲートウェイ2434とに通信可能に接続されてもよく、アプリサブリ2426は、制御プレーンデータ層2428に含まれるDBサブネット2430と、サービスゲートウェイ2436と、ネットワークアドレス変換(NAT)ゲートウェイ2438とに通信可能に接続されてもよい。制御プレーンVCN2416は、サービスゲートウェイ2436およびNATゲートウェイ2438を含むことができる。
制御プレーンVCN2416は、データプレーンミラーアプリ層2440を含むことができ、データプレーンミラーアプリ層2440は、アプリサブネット2426を含むことができる。データプレーンミラーアプリ層2440に含まれたアプリサブネット2426は、計算インスタンス2444を実行することができる仮想ネットワークインターフェイスコントローラ(VNIC)2442を含むことができる。計算インスタンス2444は、データプレーンミラーアプリ層2440のアプリサブネット2426を、データプレーンアプリ層2446に含まれ得るアプリサブネット2426に通信可能に接続することができる。
データプレーンVCN2418は、データプレーンアプリ層2446と、データプレーンDMZ層2448と、データプレーンデータ層2450とを含むことができる。データプレーンDMZ層2448は、データプレーンアプリ層2446のアプリサブネット2426およびデータプレーンVCN2418のインターネットゲートウェイ2434に通信可能に接続され得るLBサブネット2422を含むことができる。アプリサブネット2426は、データプレーンVCN2418のサービスゲートウェイ2436およびデータプレーンVCN2418のNATゲートウェイ2438に通信可能に接続されてもよい。また、データプレーンデータ層2450は、データプレーンアプリ層2446のアプリサブネット2426に通信可能に接続され得るDBサブネット2430を含むことができる。
制御プレーンVCN2416のインターネットゲートウェイ2434およびデータプレーンVCN2418のインターネットゲートウェイ2434は、パブリックインターネット2454に通信可能に接続され得るメタデータ管理サービス2452に通信可能に接続されてもよい。パブリックインターネット2454は、制御プレーンVCN2416のNATゲートウェイ2438およびデータプレーンVCN2418のNATゲートウェイ2438に通信可能に接続されてもよい。制御プレーンVCN2416のサービスゲートウェイ2436およびデータプレーンVCN2418のサービスゲートウェイ2436は、クラウドサービス2456に通信可能に接続されてもよい。
いくつかの例において、制御プレーンVCN2416またはデータプレーンVCN2418のサービスゲートウェイ2436は、パブリックインターネット2454を経由することなく、クラウドサービス2456へのアプリケーションプログラミングインターフェイス(API)呼び出しを行うことができる。サービスゲートウェイ2436からのクラウドサービス2456へのAPI呼び出しは、一方向であり得る。サービスゲートウェイ2436は、クラウドサービス2456へのAPI呼び出しを行うことができ、クラウドサービス2456は、要求データをサービスゲートウェイ2436に送信することができる。しかしながら、クラウドサービス2456は、サービスゲートウェイ2436へのAPI呼び出しを開始しないことがある。
いくつかの例において、セキュアホストテナンシ2404は、孤立であり得るサービステナンシ2419に直接に接続されてもよい。セキュアホストサブネット2408は、孤立のシステムとの双方向通信を可能にするLPG2410を介して、SSHサブネット2414と通信することができる。セキュアホストサブネット2408をSSHサブネット2414に接続することによって、セキュアホストサブネット2408は、サービステナンシ2419内の他のエンティティにアクセスすることができる。
制御プレーンVCN2416は、サービステナンシ2419のユーザが所望のリソースを設定またはプロビジョニングすることを可能にする。制御プレーンVCN2416においてプロビジョニングされた所望のリソースは、データプレーンVCN2418において展開または使用されてもよい。いくつかの例において、制御プレーンVCN2416は、データプレーンVCN2418から隔離されてもよく、制御プレーンVCN2416のデータプレーンミラーアプリ層2440は、データプレーンミラーアプリ層2440およびデータプレーンアプリ層2446に含まれ得るVNIC2442を介して、データプレーンVCN2418のデータプレーンアプリ層2446と通信することができる。
いくつかの例において、システムのユーザまたは顧客は、要求をメタデータ管理サービス2452に通信することができるパブリックインターネット2454を介して、例えば、作成、読み取り、更新、または削除(CRUD)操作などの要求を行うことができる。メタデータ管理サービス2452は、インターネットゲートウェイ2434を介して、要求を制御プレーンVCN2416に通信することができる。要求は、制御プレーンDMZ層2420に含まれるLBサブネット2422によって受信されてもよい。LBサブネット2422は、要求が有効であると判断することができ、この判断に応答して、LBサブネット2422は、要求を制御プレーンアプリ層2424に含まれるアプリサブネット2426に送信することができる。要求が検証され、パブリックインターネット2454への呼び出しを必要とする場合、パブリックインターネット2454への呼び出しを、パブリックインターネット2454への呼び出しを行うことができるNATゲートウェイ2438に送信することができる。要求を記憶するためのメモリは、DBサブネット2430に格納されてもよい。
いくつかの例において、データプレーンミラーアプリ層2440は、制御プレーンVCN2416とデータプレーンVCN2418との間の直接通信を容易にすることができる。例えば、構成に対する変更、更新、または他の適切な修正は、データプレーンVCN2418に含まれるリソースに適用されることが望ましい場合がある。制御プレーンVCN2416は、VNIC2442を介してデータプレーンVCN2418に含まれるリソースと直接に通信することができるため、構成に対する変更、更新、または他の適切な修正を実行することができる。
いくつかの実施形態において、制御プレーンVCN2416およびデータプレーンVCN2418は、サービステナンシ2419に含まれてもよい。この場合、システムのユーザまたは顧客は、制御プレーンVCN2416またはデータプレーンVCN2418のいずれかを所有または操作しなくてもよい。代わりに、IaaSプロバイダは、制御プレーンVCN2416およびデータプレーンVCN2418を所有または操作してもよく、これらの両方は、サービステナンシ2419に含まれてもよい。この実施形態は、ネットワークの隔離を可能にすることによって、ユーザまたは顧客が他のユーザのリソースまたは他の顧客のリソースと対話することを防止できる。また、この実施形態は、システムのユーザまたは顧客が、記憶するための所望のレベルの脅威防止を有しない可能性のあるパブリックインターネット2454に依存する必要なく、データベースをプライベートに記憶することを可能にすることができる。
他の実施形態において、制御プレーンVCN2416に含まれるLBサブネット2422は、サービスゲートウェイ2436から信号を受信するように構成されてもよい。この実施形態において、制御プレーンVCN2416およびデータプレーンVCN2418は、パブリックインターネット2454を呼び出すことなく、IaaSプロバイダの顧客によって呼び出されるように構成されてもよい。顧客が使用するデータベースは、IaaSプロバイダによって制御され、パブリックインターネット2454から隔離され得るサービステナンシ2419に格納され得るため、IaaSプロバイダの顧客は、この実施形態を望む場合がある。
図25は、少なくとも1つの実施形態に従って、IaaSアーキテクチャの別の例示的なパラメータを示すブロック図2500である。サービスオペレータ2502(例えば、図24のサービスオペレータ2402)は、仮想クラウドネットワーク(VCN)2506(例えば、図24のVCN2406)およびセキュアホストサブネット2508(例えば、図24のセキュアホストサブネット2408)を含み得るセキュアホストテナンシ2504(例えば、図24のセキュアホストテナンシ2404)に通信可能に接続されてもよい。VCN2506は、SSH VCN2512に含まれるLPG2410を介してセキュアシェル(SSH)VCN2512(例えば、図24のSSH VCN2412)に通信可能に接続され得るローカルピアリングゲートウェイ(LPG)2510(例えば、図24のLPG2410)を含むことができる。SSH VCN2512は、SSHサブネット2514(例えば、図24のSSHサブネット2414)を含むことができ、SSH VCN2512は、制御プレーンVCN2516に含まれるLPG2510を介して制御プレーンVCN2524(例えば、図24の制御プレーンVCN2416)に通信可能に接続することができる。制御プレーンVCN2524は、サービステナンシ2519(例えば、図24のサービステナンシ2419)に含まれてもよく、データプレーンVCN2518(例えば、図24のデータプレーンVCN2418)は、システムのユーザまたは顧客によって所有または運営され得る顧客テナンシ2521に含まれてもよい。
制御プレーンVCN2516は、LBサブネット2522(例えば、図24のLBサブネット2422)を含むことができる制御プレーンDMZ層2520(例えば、図24の制御プレーンDMZ層2420)と、アプリサブネット2526(例えば、図24のアプリサブネット2426)を含むことができる制御プレーンアプリ層2516(例えば、図24の制御プレーンアプリ層2424)と、データベース(DB)サブネット2530(例えば、図24のDBサブネット2430と同様)を含むことができる制御プレーンデータ層2528(例えば、図24の制御プレーンデータ層2428)とを含むことができる。制御プレーンDMZ層2520に含まれるLBサブネット2522は、制御プレーンアプリ層2516に含まれるアプリサブネット2526と、制御プレーンVCN2516に含まれ得るインターネットゲートウェイ2534(例えば、図24のインターネットゲートウェイ2434)とに通信可能に接続されてもよい。アプリサブネット2526は、制御プレーンデータ層2528に含まれるDBサブネット2530、サービスゲートウェイ2536(例えば、図24のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ2538(例えば、図24のNATゲートウェイ2438)に通信可能に接続されてもよい。制御プレーンVCN2516は、サービスゲートウェイ2536およびNATゲートウェイ2538を含むことができる。
制御プレーンVCN2516は、アプリサブネット2526を含むことができるデータプレーンミラーアプリ層2540(例えば、図24のデータプレーンミラーアプリ層2440)を含むことができる。データプレーンミラーアプリ層2540に含まれるアプリサブネット2526は、(例えば、図24の計算インスタンス2444と同様の)計算インスタンス2544を実行することができる仮想ネットワークインターフェイスコントローラ(VNIC)2542(例えば、VNIC2442)を含むことができる。計算インスタンス2544は、データプレーンミラーアプリ層2540に含まれるVNIC2542およびデータプレーンアプリ層2546に含まれるVNIC2542を介して、データプレーンミラーアプリ層2540のアプリサブネット2526と、データプレーンアプリ層2546(例えば、図24のデータプレーンアプリ層2446)に含まれ得るアプリサブネット2526との間の通信を促進することができる。
制御プレーンVCN2516に含まれるインターネットゲートウェイ2534は、パブリックインターネット2554(例えば、図24のパブリックインターネット2454)に通信可能に接続され得るメタデータ管理サービス2552(例えば、図24のメタデータ管理サービス2452)に通信可能に接続されてもよい。パブリックインターネット2554は、制御プレーンVCN2516に含まれるNATゲートウェイ2538に通信可能に接続されてもよい。制御プレーンVCN2516に含まれるサービスゲートウェイ2536は、クラウドサービス2556(例えば、図24のクラウドサービス2456)に通信可能に接続されてもよい。
いくつかの例において、データプレーンVCN2518は、顧客テナンシ2521に含まれてもよい。この場合、IaaSプロバイダは、顧客ごとに制御プレーンVCN2516を提供することができ、IaaSプロバイダは、顧客ごとに、サービステナンシ2519に含まれる固有の計算インスタンス2544を構成することができる。各計算インスタンス2544は、サービステナンシ2519に含まれる制御プレーンVCN2516と、顧客テナンシ2521に含まれるデータプレーンVCN2518との間の通信を許可することができる。計算インスタンス2544は、サービステナンシ2519に含まれる制御プレーンVCN2516においてプロビジョニングされるリソースを、顧客テナンシ2521に含まれるデータプレーンVCN2518に展開することまたは使用することを許可することができる。
他の例において、IaaSプロバイダの顧客は、顧客テナンシ2521に存在するデータベースを有することができる。この例において、制御プレーンVCN2516は、アプリサブネット2526を含むことができるデータプレーンマイナーアプリ層2540を含むことができる。データプレーンミラーアプリ層2540は、データプレーンVCN2518に存在してもよいが、データプレーンミラーアプリ層2540は、データプレーンVCN2518に存在しなくてもよい。すなわち、データプレーンミラーアプリ層2540は、顧客テナンシ2521にアクセスすることができるが、データプレーンミラーアプリ層2540は、データプレーンVCN2518に存在しなくてもよく、IaaSプロバイダの顧客によって所有または運営されなくてもよい。データプレーンミラーアプリ層2540は、データプレーンVCN2518への呼び出しを行うように構成されてもよいが、制御プレーンVCN2516に含まれる任意のエンティティへの呼び出しを行うように構成されなくてもよい。顧客は、制御プレーンVCN2516にプロビジョニングされたデータプレーンVCN2518内のリソースを展開することまたは使用することを望むことができ、データプレーンミラーアプリケーション階層2540は、顧客のリソースの所望の展開または他の使用を促進することができる。
いくつかの実施形態において、IaaSプロバイダの顧客は、フィルタをデータプレーンVCN2518に適用することができる。この実施形態において、顧客は、データプレーンVCN2518がアクセスできるものを決定することができ、顧客は、データプレーンVCN2518からのパブリックインターネット2554へのアクセスを制限することができる。IaaSプロバイダは、データプレーンVCN2518から任意の外部ネットワークまたはデータベースへのアクセスにフィルタを適用するまたは制御することができない場合がある。顧客が顧客テナンシ2521に含まれるデータプレーンVCN2518にフィルタおよび制御を適用することは、データプレーンVCN2518を他の顧客およびパブリックインターネット2554から隔離することを支援することができる。
いくつかの実施形態において、クラウドサービス2556は、サービスゲートウェイ2536によって呼び出されて、パブリックインターネット2554上に、制御プレーンVCN2516上に、またはデータプレーンVCN2518上に存在していない可能性があるサービスにアクセスすることができる。クラウドサービス2556と制御プレーンVCN2516またはデータプレーンVCN2518との間の接続は、ライブまたは連続的でなくてもよい。クラウドサービス2556は、IaaSプロバイダによって所有または運営されている別のネットワーク上に存在してもよい。クラウドサービス2556は、サービスゲートウェイ2536から呼び出しを受信するように構成されてもよく、パブリックインターネット2554から呼び出しを受信しないように構成されてもよい。いくつかのクラウドサービス2556は、他のクラウドサービス2556から隔離されてもよく、制御プレーンVCN2516は、制御プレーンVCN2516と同じ地域に配置していない可能性があるクラウドサービス2556から隔離されてもよい。例えば、制御プレーンVCN2516は、「地域1」に配置されてもよく、クラウドサービス「展開24」は、「地域1」および「地域2」に配置されてもよい。展開24への呼び出しが地域1に配置された制御プレーンVCN2516に含まれるサービスゲートウェイ2536によって行われる場合、この呼び出しは、地域1内の展開24に送信されてもよい。この例において、制御プレーンVCN2516または地域1の展開24は、地域2の展開24と通信可能に接続されなくてもよい。
図26は、少なくとも1つの実施形態に従って、IaaSアーキテクチャの別の例示的なパターンを示すブロック図2600である。サービスオペレータ2602(例えば、図24のサービスオペレータ2402)は、仮想クラウドネットワーク(VCN)2606(例えば、図24のVCN2406)およびセキュアホストサブネット2608(例えば、図24のセキュアホストサブネット2408)を含み得るセキュアホストテナンシ2604(例えば、図24のセキュアホストテナンシ2404)に通信可能に接続されてもよい。VCN2606は、SSH VCN2612に含まれるLPG2610を介してSSH VCN2612(例えば、図24のSSH VCN2412)に通信可能に接続され得るLPG2610(例えば、図24のLPG2410)を含むことができる。SSH VCN2612は、SSHサブネット2614(例えば、図24のSSHサブネット2414)を含むことができ、SSH VCN2612は、制御プレーンVCN2616に含まれるLPG2610を介して制御プレーンVCN2616(例えば、図24の制御プレーンVCN2416)に通信可能に接続されてもよく、データプレーンVCN2618に含まれるLPG2610を介してデータプレーンVCN2618(例えば、図24のデータプレーン2418)に通信可能に接続されてもよい。制御プレーンVCN2616およびデータプレーンVCN2618は、サービステナンシ2619(例えば、図24のサービステナント2419)に含まれてもよい。
制御プレーンVCN2616は、ロードバランサ(LB)サブネット2622(例えば、図24のLBサブネット2422)を含むことができる制御プレーンDMZ層2620(例えば、図24の制御プレーンDMZ層2420)と、アプリサブネット2626(例えば、図24のアプリサブネット2426と同様)を含むことができる制御プレーンアプリ層2624(例えば、図24の制御プレーンアプリ層2424)と、DBサブネット2630を含むことができる制御プレーンデータ層2628(例えば、図24の制御プレーンデータ層2428)とを含むことができる。制御プレーンDMZ層2620に含まれるLBサブネット2622は、制御プレーンアプリ層2624に含まれるアプリサブネット2626と、制御プレーンVCN2616に含まれ得るインターネットゲートウェイ2634(例えば、図24のインターネットゲートウェイ2434)とに通信可能に接続されてもよい。アプリサブネット2626は、制御プレーンデータ層2628に含まれるDBサブネット2630と、サービスゲートウェイ2636(例えば、図24のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ2638(例えば、図24のNATゲートウェイ2438)とに通信可能に接続されてもよい。制御プレーンVCN2616は、サービスゲートウェイ2636およびNATゲートウェイ2638を含むことができる。
データプレーンVCN2618は、データプレーンアプリ層2646(例えば、図24のデータプレーンアプリ層2446)と、データプレーンDMZ層2648(例えば、図24のデータプレーンDMZ層2448)と、データプレーンデータ層2650(例えば、図24のデータプレーンデータ階層2450)とを含むことができる。データプレーンDMZ層2648は、データプレーンVCN2618に含まれるデータプレーンアプリ層2646およびインターネットゲートウェイ2634の信頼できるアプリサブネット2660および信頼できないアプリサブネット2662に通信可能に接続され得るLBサブネット2622を含むことができる。信頼できるアプリサブネット2660は、データプレーンVCN2618に含まれるサービスゲートウェイ2636、データプレーンVCN2618に含まれるNATゲートウェイ2638、およびデータプレーンデータ層2650に含まれるDBサブネット2630に通信可能に接続されてもよい。信頼できないアプリサブネット2662は、データプレーンVCN2618に含まれるサービスゲートウェイ2636、およびデータプレーンデータ層2650に含まれるDBサブネット2630に通信可能に接続されてもよい。データプレーンデータ層2650は、データプレーンVCN2618に含まれるサービスゲートウェイ2636に通信可能に接続され得るDBサブネット2630を含むことができる。
信頼できないアプリサブネット2662は、テナント仮想マシン(VM)2666(1)~(N)に通信可能に接続され得る1つ以上のプライマリVNIC2664(1)~(N)を含むことができる。各テナントVM2666(1)~(N)は、それぞれの顧客テナンシ2670(1)~(N)に含まれ得るそれぞれのコンテナ送信VCN2668(1)~(N)に含まれ得るそれぞれのアプリサブネット2667(1)~(N)に通信可能に接続されてもよい。それぞれのセカンダリVNIC2672(1)~(N)は、データプレーンVCN2618に含まれる信頼できないアプリサブネット2662と、コンテナ送信VCN2668(1)~(N)に含まれるアプリサブネットとの間の通信を促進することができる。各コンテナ送信VCN2668(1)~(N)は、パブリックインターネット2654(例えば、図24のパブリックインターネット2454)に通信可能に接続され得るNATゲートウェイ2638を含むことができる。
制御プレーンVCN2616に含まれるインターネットゲートウェイ2634およびデータプレーンVCN2618に含まれるインターネットゲートウェイ2634は、パブリックインターネット2654に通信可能に接続され得るメタデータ管理サービス2652(例えば、図24のメタデータ管理システム2452)に通信可能に接続されてもよい。パブリックインターネット2654は、制御プレーンVCN2616に含まれるNATゲートウェイ2638およびデータプレーンVCN2618に含まれるNATゲートウェイ2638に通信可能に接続されてもよい。制御プレーンVCN2616に含まれるサービスゲートウェイ2636およびデータプレーンVCN2618に含まれるサービスゲートウェイ2636は、クラウドサービス2656に通信可能に接続されてもよい。
いくつかの実施形態において、データプレーンVCN2618は、顧客テナンシ2670に統合されてもよい。この統合は、コードを実行するときにサポートを望む場合がある場合などのいくつかの場合において、IaaSプロバイダの顧客にとって有用または望ましい場合がある。顧客は、実行すると、破壊的であり得る、他の顧客リソースと通信し得る、または望ましくない影響を引き起こし得るコードを提供することがある。従って、IaaSプロバイダは、顧客がIaaSプロバイダに提供したコードを実行するか否かを判断することができる。
いくつかの例において、IaaSプロバイダの顧客は、一時的なネットワークアクセスをIaaSプロバイダに許可することができ、データプレーンアプリ層2646に追加する機能を要求することができる。機能を実行するためのコードは、VM2666(1)~(N)で実行されてもよいが、データプレーンVCN2618上の他の場所で実行されるように構成されることができない。各VM2666(1)~(N)は、1つの顧客テナンシ2670に接続されてもよい。VM2666(1)~(N)に含まれるそれぞれのコンテナ2671(1)~(N)は、コードを実行するように構成されてもよい。この場合、二重の隔離(例えば、コンテナ2671(1)~(N)は、コードを実行し、コンテナ2671(1)~(N)は、少なくとも、信頼できないアプリサブネット2662に含まれるVM2666(1)~(N)に含まれ得る)が存在してもよく、これは、誤ったコードまたは望ましくないコードがIaaSプロバイダのネットワークに損傷を与えること、または異なる顧客のネットワークに損傷を与えることを防止することを支援することができる。コンテナ2671(1)~(N)は、顧客テナンシ2670に通信可能に接続されてもよく、顧客テナンシ2670からデータを送信または受信するように構成されてもよい。コンテナ2671(1)~(N)は、データプレーンVCN2618内の任意の他のエンティティからデータを送信または受信するように構成されなくてもよい。コードの実行が完了すると、IaaS提供者は、コンテナ2671(I)~(N)をキルするまたは廃棄することができる。
いくつかの実施形態において、信頼できるアプリサブネット2660は、IaaSプロバイダによって所有または運営され得るコードを実行することができる。この実施形態において、信頼できるアプリサブネット2660は、DBサブネット2630に通信可能に接続され、DBサブネット2630においてCRUD操作を実行するように構成されてもよい。信頼できないアプリサブネット2662は、DBサブネット2630に通信可能に接続され得るが、この実施形態において、信頼できないアプリサブネットは、DBサブネット2630内で読み取り操作を実行するように構成されてもよい。各顧客のVM2666(1)~(N)に含まれ、顧客からのコードを実行することができるコンテナ2671(1)~(N)は、DBサブネット2630と通信可能に接続されなくてもよい。
他の実施形態において、制御プレーンVCN2616およびデータプレーンVCN2618は、通信可能に直接に結合されなくてもよい。この実施形態において、制御プレーンVCN2616とデータプレーンVCN2618との間に直接的な通信は、存在しないことがある。しかしながら、少なくとも1つの方法による間接的な通信は、存在してもよい。制御プレーンVCN2616とデータプレーンVCN2618との間の通信を容易にすることができるLPG2610が、IaaSプロバイダによって確立されてもよい。別の例において、制御プレーンVCN2616またはデータプレーンVCN2618は、サービスゲートウェイ2636を介してクラウドサービス2656への呼び出しを行うことができる。例えば、制御プレーンVCN2616からクラウドサービス2656への呼び出しは、データプレーンVCN2618と通信することができるサービスの要求を含むことができる。
図27は、少なくとも1つの実施形態に従って、IaaSアーキテクチャの別の例示的なパラメータを示すブロック図2700である。サービスオペレータ2702(例えば、図24のサービスオペレータ2402)は、仮想クラウドネットワーク(VCN)2706(例えば、図24のVCN2406)およびセキュアホストサブネット2708(例えば、図24のセキュアホストサブネット2408)を含み得るセキュアホストテナンシ2704(例えば、図24のセキュアホストテナンシ2404)に通信可能に接続されてもよい。VCN2706は、SSH VCN2712に含まれるLPG2710を介してSSH VCN2712(例えば、図24のSSH VCN2412)に通信可能に接続され得るLPG2710(例えば、図24のLPG2410)を含むことができる。SSH VCN2712は、SSHサブネット2714(例えば、図24のSSHサブネット2414)を含むことができ、SSH VCN2712は、制御プレーンVCN2716に含まれるLPG2710を介して制御プレーンVCN2716(例えば、図24の制御プレーンVCN2416)に通信可能に接続されてもよく、データプレーンVCN2718に含まれるLPG2710を介してデータプレーンVCN2718(例えば、図24のデータプレーン2418)に通信可能に接続されてもよい。制御プレーンVCN2716およびデータプレーンVCN2718は、サービステナンシ2719(例えば、図24のサービステナンシ2419)に含まれてもよい。
制御プレーンVCN2716は、LBサブネット2722(例えば、図24のLBサブネット2422)を含み得る制御プレーンDMZ層2720(例えば、図24の制御プレーンDMZ層2420)、アプリサブネット2726(例えば、図24のアプリサブネット2426)を含み得る制御プレーンアプリ層2724(例えば、図24の制御プレーンアプリ層2424)、DBサブネット2730(例えば、図26のDBサブネット2630)を含み得る制御プレーンデータ層2728(例えば、図24の制御プレーンデータ層2428)を含むことができる。制御プレーンDMZ層2720に含まれるLBサブネット2722は、制御プレーンアプリ層2724に含まれるアプリサブネット2726と、制御プレーンVCN2716に含まれ得るインターネットゲートウェイ2734(例えば、図24のインターネットゲートウェイ2434)とに通信可能に接続されてもよい。アプリサブネット2726は、制御プレーンデータ層2728に含まれるDBサブネット2730と、サービスゲートウェイ2736(例えば、図24のサービスゲートウェイ)およびネットワークアドレス変換(NAT)ゲートウェイ2738(例えば、図24のNATゲートウェイ2438)とに通信可能に接続されてもよい。制御プレーンVCN2716は、サービスゲートウェイ2736およびNATゲートウェイ2738を含むことができる。
データプレーンVCN2718は、データプレーンアプリ層2746(例えば、図24のデータプレーンアプリ層2446)、データプレーンDMZ層2748(例えば、図24のデータプレーンDMZ層2448)、およびデータプレーンデータ層2750(例えば、図24のデータプレーンデータ層2450)を含むことができる。データプレーンDMZ層2748は、データプレーンアプリ層2746の信頼できるアプリサブネット2760(例えば、図26の信頼できるアプリサブネット2660)および信頼できないアプリサブネット2762(例えば、図26の信頼できないアプリサブネット2662)およびデータプレーンVCN2718に含まれるインターネットゲートウェイ2734に通信可能に接続され得るLBサブネット2722を含むことができる。信頼できるアプリサブネット2760は、データプレーンVCN2718に含まれるサービスゲートウェイ2736、データプレーンVCN2718に含まれるNATゲートウェイ2738、およびデータプレーンデータ層2750に含まれるDBサブネット2730に通信可能に接続されてもよい。信頼できないアプリサブネット2762は、データプレーンVCN2718に含まれるサービスゲートウェイ2736、およびデータプレーンデータ層2750に含まれるDBサブネット2730に通信可能に接続されてもよい。データプレーンデータ層2750は、データプレーンVCN2718に含まれるサービスゲートウェイ2736に通信可能に接続され得るDBサブケット2730を含むことができる。
信頼できないアプリサブネット2762は、信頼できないアプリサブネット2762に常駐するテナント仮想マシン(VM)2766(1)~(N)に通信可能に接続され得るプライマリYNIC2764(1)~(N)を含むことができる。各テナントVM2766(1)~(N)は、それぞれのコンテナ2767(1)~(N)においてコードを実行することができ、コンテナ送信VCN2768に含まれ得るデータプレーンアプリ層2746に含まれ得るアプリサブネット2726に通信可能に接続されてもよい。各セカンダリVNIC2772(1)~(N)は、データプレーンVCN2718に含まれる信頼できないアプリサブネット2762とコンテナ送信VCN2768に含まれるアプリサブネットとの間の通信を促進することができる。コンテナ送信VCNは、パブリックインターネット2754(例えば、図24のパブリックインターネット2454)に通信可能に接続することができるNATゲートウェイ2738を含むことができる。
制御プレーンVCN2716に含まれるインターネットゲートウェイ2734およびデータプレーンVCN2718に含まれるインターネットゲートウェイ2734は、パブリックインターネット2754に通信可能に接続され得るメタデータ管理サービス2752(例えば、図24のメタデータ管理システム2452)に通信可能に接続されてもよい。パブリックインターネット2754は、制御プレーンVCN2716に含まれるインターネットゲートウェイ2734およびデータプレーンVCN2718に含まれるNATゲートウェイ2738に通信可能に接続されてもよい。制御プレーンVCN2716に含まれるインターネットゲートウェイ2734およびデータプレーンVCN2718に含まれるサービスゲートウェイ2736は、クラウドサービス2756に通信可能に接続されてもよい。
いくつかの例において、図27のブロック図2700のアーキテクチャによって示されたパターンは、図26のブロック図2600のアーキテクチャによって示されたパターンの例外と考えられ、IaaSプロバイダが顧客と直接に通信できない(例えば、非接続地域)場合、IaaSプロバイダの顧客にとって望ましいことがある。顧客は、各顧客のVM2766(1)~(N)に含まれるそれぞれのコンテナ2767(1)~(N)にリアルタイムでアクセスすることができる。コンテナ2767(1)~(N)は、コンテナ送信VCN2768に含まれ得るデータプレーンアプリ層2746のアプリサブネット2726に含まれるそれぞれのセカンダリVNIC2772(1)~(N)を呼び出すように構成されてもよい。セカンダリVNIC2772(1)~(N)は、パブリックインターネット2754に呼び出しを送信することができるNATゲートウェイ2738に呼び出しを送信することができる。この例において、顧客がリアルタイムでアクセスできるコンテナ2767(1)~(N)は、制御プレーンVCN2716から隔離されてもよく、データプレーンVCN2718に含まれる他のエンティティから隔離されてもよい。また、コンテナ2767(1)~(N)は、他の顧客のリソースから隔離されてもよい。
他の例において、顧客は、コンテナ2767(1)~(N)を使用して、クラウドサービス2756を呼び出すことができる。この例では、顧客は、コンテナ2767(1)~(N)において、クラウドサービス2756からサービスを要求するコードを実行することができる。コンテナ2767(1)~(N)は、要求をパブリックインターネット2754に送信することができるNATゲートウェイに要求を送信することができるセカンダリVNIC2772(1)~(N)にこの要求を送信することができる。パブリックインターネット2754は、インターネットゲートウェイ2734を介して、制御プレーンVCN2716に含まれるLBサブネット2722にこの要求を送信することができる。要求が有効であるとの判断に応答して、LBサブネットは、この要求をアプリサブネット2726に送信することができ、アプリサブネット2726は、サービスゲートウェイ2736を介して、この要求をクラウドサービス2756に要求を送信することができる。
なお、図示されたIaaSアーキテクチャ2400、2500、2600および2700は、図示されたもの以外の要素を含んでもよい。また、図示された実施形態は、本開示の実施形態を組み込むことができるクラウドインフラストラクチャシステムの一部の例に過ぎない。他のいくつかの実施形態において、IaaSシステムは、図示されたものよりも多いまたは少ない要素を有してよく、2つ以上の要素を組み合わせてよく、または要素の異なる構成または配置を有してよい。
特定の実施形態において、本開示に記載されたIaaSシステムは、セルフサービス、サブスクリプションベース、柔軟な拡張可能性、信頼性、高可用性、および安全な方法で顧客に提供されるアプリケーション、ミドルウエア、およびデータベースサービスのスイートを含むことができる。このようなIaaSシステムの一例は、本出願人によって提供されたオラクル(登録商標)クラウドインフラストラクチャ(OCI)である。
図28は、様々な実施形態が実装され得る例示的なコンピュータシステム2800を示す。システム2800は、上述したコンピュータシステムのいずれかを実装するために使用されてもよい。図示のように、コンピュータシステム2800は、バスサブシステム2802を介して多数の周辺サブシステムと通信する処理ユニット2804を含む。これらの周辺サブシステムは、処理加速ユニット2806、I/Oサブシステム2808、記憶サブシステム2818、および通信サブシステム2824を含んでもよい。記憶サブシステム2818は、有形のコンピュータ可読記憶媒体2822およびシステムメモリ2810を含む。
バスサブシステム2802は、コンピュータシステム2800の様々な構成要素およびサブシステムを意図したように相互に通信させるための機構を提供する。バスサブシステム2802は、単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は、複数のバスを利用してもよい。バスサブシステム2802は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含む、いくつかの種類のバス構造のいずれかであってもよい。例えば、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)、バス拡張ISA(EISA)バス、ビデオ電子標準協会(VESA)ローカルバス、およびIEEE P1386.1標準に準拠して製造されたメザニンバスとして実装できる周辺機器相互接続(PCI)バスなどを含むことができる。
1つ以上の集積回路(例えば、従来のマイクロプロセッサまたはマイクロコントローラ)として実装され得る処理ユニット2804は、コンピュータシステム2800の動作を制御する。処理ユニット2804は、1つ以上のプロセッサを含んでもよい。これらのプロセッサは、シングルコアまたはマルチコアプロセッサを含んでもよい。いくつかの実施形態において、処理ユニット2804は、各処理ユニットに含まれるシングルコアまたはマルチコアプロセッサを有する1つ以上の独立した処理ユニット2832および/または2834として実装されてもよい。他の実施形態において、処理ユニット2804は、2つのデュアルコアプロセッサを単一のチップに統合することによって形成されたクワッドコア(quad-core)処理ユニットとして実装されてもよい。
様々な実施形態において、処理ユニット2804は、プログラムコードに応答して様々なプログラムを実行することができ、同時に実行する複数のプログラムまたはプロセスを維持することができる。任意の時点で、実行されるプログラムコードの一部または全部は、プロセッサ2804および/または記憶サブシステム2818に常駐することができる。プロセッサ2804は、適切なプログラミングを通して、上述した様々な機能性を提供することができる。コンピュータシステム2800は、デジタル信号プロセッサ(DSP)、専用プロセッサおよび/または同種のものを含むことができる処理加速ユニット2806をさらに含んでもよい。
I/Oサブシステム2808は、ユーザインターフェイス入力装置と、ユーザインターフェイス出力装置とを含むことができる。ユーザインターフェイス入力装置は、キーボード、マウスまたはトラックボールなどのポインティング装置、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声命令認識システムを備える音声入力装置、マイクロフォン、および他の種類の入力装置を含んでもよい。また、ユーザインターフェイス入力装置は、例えば、Microsoft Kinect(登録商標)モーションセンサのようなモーション検知および/またはジェスチャ認識装置を含んでもよい。Microsoft Kinect(登録商標)モーションセンサは、ジェスチャおよび音声命令を利用する自然ユーザインターフェイス(NUI)を介して、Microsoft Xbox(登録商標)360ゲームコントローラなどの入力装置を制御することができ、それと対話することができる。また、ユーザインターフェイス入力装置は、Google Glass(登録商標)瞬き検出器のような眼球ジェスチャ認識装置を含むことができる。Google Glass(登録商標)瞬き検出器は、ユーザの眼球活動(例えば、写真を撮るときおよび/またはメニューを選択するときの「瞬き」)を検出し、眼球活動を入力装置(例えば、Google Glass(登録商標))に入力する入力に変換する。さらに、ユーザインターフェイス入力装置は、音声命令を介してユーザと音声認識システム(例えば、Siri(登録商標)ナビゲータ)との対話を可能にする音声認識検出装置を含んでもよい。
また、ユーザインターフェイス入力装置は、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッド、グラフィックタブレット、スピーカなどのオーディオ/ビジュアル装置、デジタルカメラ、デジタルビデオカメラ、ポータブルメディアプレーヤ、ウェブカメラ、イメージスキャナ、指紋スキャナ、バーコードリーダ、3Dスキャナ、3Dプリンタ、レーザ距離計、および視線追跡装置を含むがこれらに限定されない。さらに、ユーザインターフェイス入力装置は、例えば、コンピュータ断層撮影装置、磁気共鳴像装置、超音波放射断層撮影装置、および医療用超音波装置などのような医用画像入力装置を含んでもよい。また、ユーザインターフェイス入力装置は、例えば、MIDIキーボードおよび電子楽器などの音声入力装置を含んでもよい。
ユーザインターフェイス出力装置は、ディスプレイサブシステム、インジケータライト、またはオーディオ出力装置などの非視覚ディスプレイを含んでもよい。ディスプレイサブシステムは、例えば、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するフラットパネル装置、投射装置またはタッチスクリーンであってもよい。一般的に、「出力装置」という用語を使用する場合、コンピュータシステム2800から情報をユーザまたは他のコンピュータに出力するための全ての可能な種類の装置および機構を含むことを意図している。例えば、ユーザインターフェイス出力装置は、文字、画像およびオーディオ/ビデオ情報を視覚的に伝達するさまざまな表示装置、例えば、モニタ、プリンタ、スピーカ、ヘッドフォン、カーナビゲーションシステム、プロッタ、音声出力装置、およびモデムを含むがこれらに限定されない。
コンピュータシステム2800は、記憶サブシステム2818を含むことができる。記憶サブシステム2818は、ソフトウェア要素を備え、図示では、これらのソフトウェア要素は、システムメモリ2810内に配置されている。システムメモリ2810は、処理ユニット2804にロード可能かつ実行可能なプログラム命令、およびこれらのプログラムの実行により生成されたデータを記憶することができる。
コンピュータシステム2800の構成およびタイプに応じて、システムメモリ2810は、揮発性メモリ(例えば、ランダムアクセスメモリ(random access memory:RAM))であってもよく、および/または、不揮発性メモリ(例えば、読取り専用メモリ(read-only memory:ROM)、フラッシュメモリ)であってもよい。一般的に、RAMは、処理ユニット2804がすぐにアクセス可能なデータおよび/またはプログラムモジュール、および/または、処理ユニット2804によって現在操作および実行されているデータおよび/またはプログラムモジュールを収容する。いくつかの実現例では、システムメモリ2810は、スタティックランダムアクセスメモリ(static random access memory:SRAM)またはダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)などの複数の異なるタイプのメモリを含み得る。いくつかの実現例では、始動中などにコンピュータシステム2800内の要素間で情報を転送することを助ける基本ルーチンを含む基本入力/出力システム(basic input/output system:BIOS)が、一般的にROMに格納され得る。一例としておよび非限定的に、システムメモリ2810は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(relational database management system:RDBMS)などを含み得るアプリケーションプログラム2812、プログラムデータ2814およびオペレーティングシステム2816も示す。一例として、オペレーティングシステム2816は、マイクロソフトウィンドウズ(登録商標)、Apple Macintosh(登録商標)および/もしくはLinux(登録商標)オペレーティングシステムのさまざまなバージョン、さまざまな市販のUNIX(登録商標)もしくはUNIXライクオペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むが、これらに限定されるものではない)、および/または、iOS、Windows(登録商標)フォン、アンドロイド(登録商標)OS、ブラックベリー(登録商標)10 OSおよびパーム(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
また、記憶サブシステム2818は、いくつかの実施例の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形のコンピュータ可読記憶媒体を提供することができる。プロセッサによって実行されたときに上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、記憶サブシステム2818に記憶されてもよい。これらのソフトウェアモジュールまたは命令は、処理ユニット2804によって実行されてもよい。また、記憶サブシステム2818は、本開示に従って使用されるデータを記憶するためのリポジトリを提供することができる。
また、記憶サブシステム2810は、コンピュータ可読記憶媒体2822にさらに接続可能なコンピュータ可読記憶媒体リーダ2828を含むことができる。コンピュータ可読記憶媒体2822は、システムメモリ2810と共に、または必要に応じてシステムメモリ2810と組み合わせて、コンピュータ可読情報を一時的におよび/または永久に収容、格納、送信および検索するための記憶媒体に加えて、リモート記憶装置、ローカル記憶装置、固定的な記憶装置および/または取外し可能な記憶装置を包括的に表すことができる。
また、コードまたはコードの一部を含むコンピュータ可読記憶媒体2822は、当該技術分野において公知のまたは使用される任意の適切な媒体を含んでもよい。当該媒体は、情報の格納および/または送信のための任意の方法または技術において実現される揮発性および不揮発性の、取外し可能および取外し不可能な媒体などであるが、これらに限定されるものではない記憶媒体および通信媒体を含む。これは、RAM、ROM、電子的消去・プログラム可能ROM(electronically erasable programmable ROM:EEPROM)、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(digital versatile disk:DVD)、または他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他の有形のコンピュータ可読媒体などの有形のコンピュータ可読記憶媒体を含むことができる。また、これは、データ信号、データ送信などの無形のコンピュータ可読媒体、または、所望の情報を送信するために使用可能であり且つコンピュータシステム2800によってアクセス可能なその他の媒体を含むことができる。
一例として、コンピュータ可読記憶媒体2822は、取外し不可能な不揮発性磁気媒体から読取るまたは当該媒体に書込むハードディスクドライブ、取外し可能な不揮発性磁気ディスクから読取るまたは当該ディスクに書込む磁気ディスクドライブ、ならびに、CD ROM、DVDおよびブルーレイ(登録商標)ディスクまたは他の光学式媒体などの取外し可能な不揮発性光学ディスクから読取るまたは当該ディスクに書込む光学式ディスクドライブを含んでもよい。コンピュータ可読記憶媒体2822は、ジップ(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(universal serial bus:USB)フラッシュドライブ、セキュアデジタル(secure digital:SD)カード、DVDディスク、デジタルビデオテープなどを含み得るが、これらに限定されるものではない。また、コンピュータ可読記憶媒体2822は、フラッシュメモリベースのSSD、企業向けフラッシュドライブ、ソリッドステートROMなどの不揮発性メモリに基づくソリッドステートドライブ(solid-state drive:SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(magnetoresistive RAM:MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDを含んでもよい。ディスクドライブおよびそれらの関連のコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの不揮発性記憶装置をコンピュータシステム2800に提供することができる。
通信サブシステム2824は、他のコンピュータシステムおよびネットワークとのインターフェイスを提供する。通信サブシステム2824は、他のシステムからデータを受信し、コンピュータシステム2800から他のシステムにデータを送信するためのインターフェイスの役割を果たす。例えば、通信サブシステム2824は、コンピュータシステム2800がインターネットを介して1つ以上の装置に接続することを可能にし得る。いくつかの実施例では、通信サブシステム2824は、(例えば3G、4GまたはEDGE(enhanced data rates for global evolution)などの携帯電話技術、高度データネットワーク技術を用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(radio frequency:RF)トランシーバ構成要素、WiFi(IEEE1602.11ファミリ標準または他のモバイル通信技術またはそれらの任意の組み合わせ)、全地球測位システム(global positioning system:GPS)レシーバ構成要素、および/または、他の構成要素を含んでもよい。いくつかの実施例では、通信サブシステム2824は、無線インターフェイスに加えて、または無線インターフェイスの代わりに、有線ネットワーク接続(例えばイーサネット)を提供することができる。
また、いくつかの実施例において、通信サブシステム2824は、コンピュータシステム2800を使用し得る1人以上のユーザを代表して、構造化されたおよび/または構造化されていないデータフィード2826、イベントストリーム2828、イベント更新2830などの形態で入力通信を受信することができる。
一例として、通信サブシステム2824は、ツイッター(登録商標)フィード、フェースブック(登録商標)更新、リッチ・サイト・サマリ(Rich Site Summary:RSS)フィードなどのウェブフィードなどのデータフィード2826をリアルタイムでソーシャルネットワークおよび/または他の通信サービスのユーザから受信し、および/または、1つ以上の第三者情報源からリアルタイム更新を受信するように構成されてもよい。
また、通信サブシステム2824は、連続的なデータストリームの形態でデータを受信するように構成され得て、当該データは、連続的である場合もあれば本質的に明確な端部を持たない状態で境界がない場合もあるリアルタイムイベントのイベントストリーム2828および/またはイベント更新2830を含んでもよい。連続的なデータを生成するアプリケーションの例としては、例えばセンサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(例えばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリングなどを含んでもよい。
また、通信サブシステム2824は、構造化されたおよび/または構造化されていないデータフィード2826、イベントストリーム2828、イベント更新2830などを、コンピュータシステム2800に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成されてもよい。
コンピュータシステム2800は、手持ち式携帯機器(例えば、iPhone(登録商標)携帯電話、iPad(登録商標)計算タブレット、PDA)、ウエアラブル装置(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラックまたはその他のデータ処理システムを含む様々な種類のうちの1つであってもよい。
コンピュータおよびネットワークが絶え間なく進化し続けるため、図示されたコンピュータシステム2800の説明は、特定の例として意図されているにすぎない。図示されたシステムよりも多くのまたは少ない数の構成要素を有する多くの他の構成も可能である。例えば、ハードウェア、ファームウエア、(アプレットを含む)ソフトウェア、または組み合わせにおいて、カスタマイズされたハードウェアも使用されてもよく、および/または、特定の要素が実装されてもよい。さらに、ネットワーク入力/出力装置などの他の計算装置への接続が利用されてもよい。本開示において提供される開示および教示に基づいて、当業者は、様々な実施例を実現するための他の手段および/または方法を理解するであろう。
本開示の特定の実施形態を説明してきたが、さまざまな変更、改変、代替構成、および同等物も本開示の範囲内に包含される。本開示の実施形態は、特定のデータ処理環境内で動作するのに限定されず、複数のデータ処理環境内で自由に動作することができる。さらに、一連の特定の処置およびステップを用いて本開示の実施形態を説明してきたが、本開示の範囲が説明された一連の処置およびステップに限定されないことは、当業者にとって明らかであろう。上述した実施形態のさまざまな特徴および態様は、個別にまたは共同で使用することができる。
さらに、ハードウェアおよびソフトウェアの特定の組み合わせを用いて本開示の実施形態を説明してきたが、ハードウェアおよびソフトウェアの他の組み合わせも本開示の範囲内に含まれることを認識すべきである。ハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせを用いて、本開示の実施形態を実現することができる。本開示に記載されたさまざまなプロセスは、同一のプロセッサまたは任意の組み合わせの異なるプロセッサ上で実行することができる。したがって、特定の処理を実行するように構成要素またはモジュールを構成すると説明する場合、その構成は、例えば、その処理を実行するように電子回路を設計することによって、その処理を実行するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの組み合わせによって実現することができる。プロセスは、プロセス間の通信を行う従来技術を含むがこれに限定されないさまざまな技術を用いて通信を行うことができる。異なる対のプロセスは、異なる技術を使用することができ、または同一対のプロセスは、異なる時間で異なる技術を使用することができる。
したがって、明細書および図面は、限定的な意味ではなく例示的な意味であるとみなすべきである。しかしながら、特許請求の範囲により定められた幅広い主旨および範囲から逸脱することなく、追加、削減、削除および他の修飾および変更を行ってもよいことは、明らかであろう。したがって、本開示の特定の実施形態を説明したが、これらの実施形態は、限定することを意図していない。さまざまな変更およびその等価物は、添付の特許請求の範囲に含まれる。
本開示を説明する文脈に(特に特許請求の範囲の文脈に)使用された不定冠詞「a」/「an」、定冠詞「the」および同様の参照は、本開示に特に明記しない限りまたは内容上明らかに他の意味を示す場合を除き、単数および複数の両方を含むように解釈すべきである。用語「含む(comprising)」、「有する(having)」、「含む(including)」、および「含有する(containing)」は、特に明記しない限り、非限定的な用語(すなわち、「含むがこれに限定されない」という意味)として解釈されるべきである。「接続されている」という用語は、たとえ何かが介在していても、その一部または全部が内部に含まれている、取り付けられている、または一緒に結合されていると解釈されるべきである。本開示において、値の範囲の列挙は、単にその範囲内に含まれる各個別の値を各々言及する速記方法として意図され、本開示に特に明記しない限り、各個別の値は、本開示に個別に記載されるように、本開示に組み込まれる。本開示に特に明記しない限りまたは内容上明らかに他の意味を示す場合を除き、本開示に記載の全ての方法は、任意の適切な順序で行うことができる。本開示において、任意の例および全ての例または例示的な言語(例えば、「~のような」)の使用は、本開示の実施形態をより明瞭にするよう意図されており、特に明記しない限り、本開示の範囲を限定するものではない。明細書内の用語は、本開示の実施に不可欠な任意の非請求要素を示すものと解釈すべきではない。
句「X、Y、またはZの少なくとも1つ」というフレーズのような選言的言語は、特に断らない限り、項目、用語などがX、YもしくはZ、またはそれらの任意の組み合わせ(例えば、X、Y、および/またはZ)のいずれかであってもよいことを示すために一般的に用いられるものとして文脈内で理解されることを意図している。したがって、このような選言的言語は、特定の実施形態が、Xの少なくとも1つ、Yの少なくとも1つ、またはZの少なくとも1つが存在することを必要とすることを一般的に意図しておらず、また、それを暗示していない。
本開示を実施するために知られている最良の形態を含み、本開示の好ましい実施形態が本明細書に記載されている。これらの好ましい実施形態の変形形態は、前述の説明を読めば当業者には明らかになるであろう。当業者は、適宜、このような変形例を採用することができ、本開示は、本明細書に具体的に記載されている以外の方法で実施されてもよい。したがって、本開示は、適用される法律によって許可され、本明細書に添付された請求項に記載された主題の全ての変形および等価物を含む。さらに、その全ての可能な変形における上記の要素の任意の組み合わせは、本明細書において別段の指示がない限り、本開示に包含される。
本明細書に引用された刊行物、特許出願、および特許を含む全ての参考文献は、各文献が参照により組み込まれることが個別にかつ明確に示され、その全体が本明細書に記載された場合と同じ程度に、参照により組み込まれるものとする。
前述の明細書において、本開示の態様は、その特定の実施形態を参照して説明されているが、当業者は、本開示がそれに限定されないことを認識するであろう。上述の開示の様々な特徴および態様は、個々にまたは共同で使用されてもよい。さらに、実施形態は、本明細書のより広い精神および範囲から逸脱することなく、本明細書に説明されるものを超える任意の数の環境および用途において利用されることができる。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。

Claims (21)

  1. 方法であって、
    VLANスイッチングおよびルーティングサービス(VSRS)のインスタンスのためのテーブルを生成することを含み、前記VSRSは、第1の仮想レイヤ2ネットワーク(VLAN)を第2のネットワークに接続し、前記テーブルは、前記仮想レイヤ2ネットワーク内のインスタンスのIPアドレス、MACアドレス、および仮想インターフェイス識別子を特定するための情報を含み、
    前記VSRSを用いて、前記仮想レイヤ2ネットワーク内の第1のインスタンスから第2のインスタンスに配信されるパケットを受信することと、
    前記VSRSを用いて、前記パケットと共に受信した情報および前記テーブルに含まれた情報に基づいて、前記パケットを配信するための前記仮想レイヤ2ネットワーク内の前記第2のインスタンスを特定することと、
    特定された前記第2のインスタンスに前記パケットを配信することとを含む、方法。
  2. 前記第1の仮想レイヤ2ネットワークは、複数のインスタンスを含む、請求項1に記載の方法。
  3. 前記VLANは、複数のL2仮想ネットワークインターフェイスカード(VNIC)と、複数のスイッチとを備え、
    前記複数のインスタンスの各々は、固有のL2仮想ネットワークインターフェイスカード(VNIC)と固有のスイッチとを含むペアに通信可能に接続されている、請求項2に記載の方法。
  4. 前記VSRSを用いて、前記パケットと共に受信した情報および前記テーブルに含まれた情報に基づいて、前記パケットを配信するための前記仮想レイヤ2ネットワーク内の前記第2のインスタンスを特定することは、
    前記VSRSを用いて、前記テーブルが前記第2のインスタンスのマッピング情報を含まないと判断することと、
    前記VSRSを用いて、前記パケットの配信を保留することと、
    前記VSRSを用いて、ARP要求を前記VLAN内のVNICにブロードキャストすることとを含み、前記ARP要求は、前記第2のインスタンスのIPアドレスを含み、
    前記VSRSを用いて、前記第2のインスタンスの前記VNICからARP応答を受信することを含む、請求項1から3のいずれか一項に記載の方法。
  5. 前記受信したARP応答に基づいて、前記テーブルを更新することをさらに含む、請求項4に記載の方法。
  6. 前記第1のインスタンスは、前記仮想レイヤ2ネットワークの外部に配置され、前記第2のネットワークの内部に配置される、請求項2または3に記載の方法。
  7. 前記第2のネットワークは、L3ネットワークを含む、請求項6に記載の方法。
  8. 前記第2のネットワークは、第2の仮想レイヤ2ネットワークを含む、請求項6に記載の方法。
  9. 前記テーブルは、前記VSRSによって受信された情報に基づいて生成される、請求項2または3に記載の方法。
  10. 前記VSRSを複数のハードウェアノード上のサービスとしてインスタンス化することをさらに含む、請求項9に記載の方法。
  11. 前記ハードウェアノードの間に前記テーブルを配布することをさらに含む、請求項10に記載の方法。
  12. 前記ハードウェアノードの間に配布された前記テーブルは、別のVSRSインスタンス化によって入手可能である、請求項11に記載の方法。
  13. 前記第1のインスタンスは、前記第1の仮想レイヤ2ネットワークの内部にある、請求項1から3のいずれか一項に記載の方法。
  14. 前記VSRSを用いて、前記仮想レイヤ2ネットワーク内の第3のインスタンスからパケットを受信することをさらに含み、前記パケットは、前記仮想レイヤ2ネットワークの外部の第4のインスタンスに配信され、
    前記パケットを前記第4のインスタンスに転送することをさらに含む、請求項1から13のいずれか一項に記載の方法。
  15. 前記VSRSを用いて、前記仮想レイヤ2ネットワーク内の第3のインスタンスからパケットを受信することをさらに含み、
    前記パケットは、前記仮想レイヤ2ネットワーク内の前記第3のインスタンスによって使用されるサービスに配信される、請求項1から13のいずれか一項に記載の方法。
  16. 前記サービスは、DHCP、NTP、およびDNSのうちの少なくとも1つを含む、請求項15に記載の方法。
  17. 前記VSRSを用いて、1つの仮想レイヤ2ネットワーク内の第3のインスタンスからパケットを受信することをさらに含み、
    前記パケットは、第2の仮想レイヤ2ネットワーク内の第4のインスタンスに配信される、請求項1から13のいずれか一項に記載の方法。
  18. 高い信頼性および高い拡張性のVSRSインスタンス化を提供するために、レイヤ2およびレイヤ3ネットワーク情報を有する前記VSRSの前記インスタンスのための前記テーブルを複数のサービスノードにわたって配布することをさらに含む、請求項1から9のいずれか一項に記載の方法。
  19. 前記VSRSを用いて、前記第1の仮想レイヤ2ネットワーク内の第3のインスタンスからパケットを受信することと、
    前記VSRSを用いて、前記第3のインスタンスのマッピングを学習することとをさらに含む、請求項1に記載の方法。
  20. システムであって、
    少なくとも1つのプロセッサと、ネットワーク仮想化装置とを含む物理ネットワークを備え、
    前記少なくとも1つのプロセッサは、以下の動作を実行するように構成され、
    前記動作は、
    VLANスイッチングおよびルーティングサービス(VSRS)のインスタンスをインスタンス化することを含み、前記VSRSは、第1の仮想レイヤ2ネットワークを第2のネットワークに接続し、
    前記VSRSの前記インスタンスのためのテーブルを生成することを含み、前記テーブルは、前記仮想レイヤ2ネットワーク内のインスタンスのIPアドレス、MACアドレス、および仮想インターフェイス識別子を特定するための情報を含み、
    前記VSRSを用いて、前記仮想レイヤ2ネットワーク内の第1のインスタンスから第2のインスタンスに配信されるパケットを受信することと、
    前記VSRSを用いて、前記パケットと共に受信した情報および前記テーブルに含まれた情報に基づいて、前記パケットを配信するための前記仮想レイヤ2ネットワーク内の前記第2のインスタンスを特定することと、
    特定された前記第2のインスタンスに前記パケットを配信することとを含む、システム。
  21. 1つ以上のプロセッサによって実行可能な複数の命令を記憶するための非一時的なコンピュータ可読記憶媒体であって、前記複数の命令は、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに以下の動作を実行させ、
    前記動作は、
    VLANスイッチングおよびルーティングサービス(VSRS)のインスタンスをインスタンス化することを含み、前記VSRSは、第1の仮想レイヤ2ネットワークを第2のネットワークに接続し、
    前記VSRSの前記インスタンスのためのテーブルを生成することを含み、前記テーブルは、前記仮想レイヤ2ネットワーク内のインスタンスのIPアドレス、MACアドレス、および仮想インターフェイス識別子を特定するための情報を含み、
    前記VSRSを用いて、前記仮想レイヤ2ネットワーク内の第1のインスタンスから第2のインスタンスに配信されるパケットを受信することと、
    前記VSRSを用いて、前記パケットと共に受信した情報および前記テーブルに含まれた情報に基づいて、前記パケットを配信するための前記仮想レイヤ2ネットワーク内の前記第2のインスタンスを特定することと、
    特定された前記第2のインスタンスに前記パケットを配信することとを含む、非一時的なコンピュータ可読記憶媒体。
JP2023502767A 2020-07-14 2021-07-14 Vlanスイッチングおよびルーティングサービスのためのシステムおよび方法 Pending JP2023535149A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063051728P 2020-07-14 2020-07-14
US63/051,728 2020-07-14
US202063132377P 2020-12-30 2020-12-30
US63/132,377 2020-12-30
PCT/US2021/041678 WO2022015883A1 (en) 2020-07-14 2021-07-14 Systems and methods for a vlan switching and routing service

Publications (1)

Publication Number Publication Date
JP2023535149A true JP2023535149A (ja) 2023-08-16

Family

ID=77227143

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2023502776A Pending JP2023535150A (ja) 2020-07-14 2021-07-14 レイヤ2ネットワーク内のインターフェイスベースのacl
JP2023502784A Pending JP2023535152A (ja) 2020-07-14 2021-07-14 仮想レイヤ2ネットワーク
JP2023502767A Pending JP2023535149A (ja) 2020-07-14 2021-07-14 Vlanスイッチングおよびルーティングサービスのためのシステムおよび方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2023502776A Pending JP2023535150A (ja) 2020-07-14 2021-07-14 レイヤ2ネットワーク内のインターフェイスベースのacl
JP2023502784A Pending JP2023535152A (ja) 2020-07-14 2021-07-14 仮想レイヤ2ネットワーク

Country Status (5)

Country Link
US (5) US11831544B2 (ja)
EP (3) EP4183121B1 (ja)
JP (3) JP2023535150A (ja)
CN (3) CN116235482A (ja)
WO (3) WO2022015881A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11689455B2 (en) 2020-05-28 2023-06-27 Oracle International Corporation Loop prevention in virtual layer 2 networks
US11831544B2 (en) 2020-07-14 2023-11-28 Oracle International Corporation Virtual layer-2 network
US11671351B2 (en) * 2020-12-04 2023-06-06 Juniper Networks, Inc. Maintaining a set of links associated with a link aggregation group to facilitate provisioning or updating of a customer edge device
US11856097B2 (en) 2020-12-23 2023-12-26 Oracle International Corporation Mechanism to provide customer VCN network encryption using customer-managed keys in network virtualization device
US11848918B2 (en) * 2020-12-23 2023-12-19 Oracle International Corporation End-to-end network encryption from customer on-premise network to customer virtual cloud network using customer-managed keys
US11765080B2 (en) 2020-12-30 2023-09-19 Oracle International Corporation Layer-2 networking span port in a virtualized cloud environment
US11463312B2 (en) * 2021-01-21 2022-10-04 Cisco Technology, Inc. Secure onboarding of network devices
US11671355B2 (en) 2021-02-05 2023-06-06 Oracle International Corporation Packet flow control in a header of a packet
US11777897B2 (en) 2021-02-13 2023-10-03 Oracle International Corporation Cloud infrastructure resources for connecting a service provider private network to a customer private network
US11463558B2 (en) * 2021-02-23 2022-10-04 Gigamon Inc. Tool port aware stateful protocol visibility for packet distribution
US11949589B2 (en) * 2021-05-20 2024-04-02 Pensando Systems Inc. Methods and systems for service state replication using original data packets
US11792883B2 (en) * 2021-07-29 2023-10-17 Verizon Patent And Licensing Inc. Ethernet PDU service for 5G networks
KR20230021506A (ko) * 2021-08-05 2023-02-14 한국전자통신연구원 사용자 정의 기반의 가상 네트워크 설정 방법
US20230244625A1 (en) * 2022-01-31 2023-08-03 Avago Technologies International Sales Pte. Limited Logical message interface for configuring and managing a physical device in single and multi-host systems
US20230269201A1 (en) * 2022-02-18 2023-08-24 Microsoft Technology Licensing, Llc Pooling smart nics for network disaggregation
EP4283946A1 (en) * 2022-05-23 2023-11-29 Telia Company AB Managing an establishment of a communication connection
US11902161B1 (en) * 2022-08-17 2024-02-13 Cisco Technology, Inc. Virtual network for virtual phone applications

Family Cites Families (226)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628624B1 (en) 1998-12-09 2003-09-30 Cisco Technology, Inc. Value-added features for the spanning tree protocol
US6801506B1 (en) 1999-03-31 2004-10-05 Cisco Technology, Inc. Method and apparatus for providing fast spanning tree re-starts
US6987740B1 (en) 2000-09-11 2006-01-17 Cisco Technology, Inc. STP root guard
US6857027B1 (en) 2000-11-14 2005-02-15 3Com Corporation Intelligent network topology and configuration verification using a method of loop detection
US20020120769A1 (en) 2000-12-21 2002-08-29 Ammitzboell Benny Loenstrup Multicast traffic control protocol pruning in a layer 2 switch
US7127523B2 (en) 2001-07-27 2006-10-24 Corrigent Systems Ltd. Spanning tree protocol traffic in a transparent LAN
US7177946B1 (en) 2001-12-06 2007-02-13 Cisco Technology, Inc. Optimal sync for rapid spanning tree protocol
US7061875B1 (en) 2001-12-07 2006-06-13 Cisco Technology, Inc. Spanning tree loop guard
JP3967141B2 (ja) 2002-01-28 2007-08-29 富士通株式会社 フレーム中継システムおよびフレーム中継装置
US7941558B2 (en) 2002-06-04 2011-05-10 Alcatel-Lucent Usa Inc. Loop elimination in a communications network
US8462668B2 (en) 2002-10-01 2013-06-11 Foundry Networks, Llc System and method for implementation of layer 2 redundancy protocols across multiple networks
JP3799010B2 (ja) 2002-12-19 2006-07-19 アンリツ株式会社 メッシュ型ネットワーク用ブリッジ
US20040210623A1 (en) * 2003-03-06 2004-10-21 Aamer Hydrie Virtual network topology generation
US7627654B2 (en) 2003-06-09 2009-12-01 Foundry Networks, Inc. System and method for multiple spanning tree protocol domains in a virtual local area network
US7480258B1 (en) 2003-07-03 2009-01-20 Cisco Technology, Inc. Cross stack rapid transition protocol
US8165136B1 (en) 2003-09-03 2012-04-24 Cisco Technology, Inc. Virtual port based SPAN
US7478173B1 (en) * 2003-12-18 2009-01-13 Wmware, Inc. Method and system for sharing a network connection in a virtual computer system
US7706382B2 (en) 2004-01-30 2010-04-27 Hewlett-Packard Development Company, L.P. Method and system for managing a network having multiple domains
US8130644B2 (en) 2004-02-18 2012-03-06 Fortinet, Inc. Mechanism for enabling load balancing to be achieved in a loop-free switching path, reverse path learning network
US20050222815A1 (en) * 2004-03-31 2005-10-06 Kevin Tolly System and method for testing and certifying products
JP4128974B2 (ja) 2004-03-31 2008-07-30 富士通株式会社 レイヤ2ループ検知システム
US7463597B1 (en) 2004-08-27 2008-12-09 Juniper Networks, Inc. Spanning tree protocol synchronization within virtual private networks
US7515589B2 (en) 2004-08-27 2009-04-07 International Business Machines Corporation Method and apparatus for providing network virtualization
US7564779B2 (en) 2005-07-07 2009-07-21 Alcatel Lucent Ring rapid spanning tree protocol
JP4532253B2 (ja) 2004-12-20 2010-08-25 富士通株式会社 フレーム転送装置及びフレームのループ抑止方法
GB0501131D0 (en) 2005-01-20 2005-02-23 Siemens Ag A method of operating a node in a network
US8565124B2 (en) 2005-03-04 2013-10-22 Nec Corporation Node, network, correspondence relationship generation method and frame transfer program
CN101199165A (zh) 2005-06-14 2008-06-11 艾利森电话股份有限公司 用于网络中的故障处理的方法和配置
US8325629B2 (en) 2005-07-15 2012-12-04 Cisco Technology, Inc. System and method for assuring the operation of network devices in bridged networks
US7746783B1 (en) * 2005-09-14 2010-06-29 Oracle America, Inc. Method and apparatus for monitoring packets at high data rates
EP1935145B1 (en) 2005-10-11 2011-12-21 Telefonaktiebolaget LM Ericsson (publ) Method of generating spanning trees
JP4799118B2 (ja) 2005-10-14 2011-10-26 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理システム、通信中継装置および通信制御方法
TWI297988B (en) 2005-11-29 2008-06-11 Inst Information Industry Multiple spanning tree protocol compatible methods, systems and switches for the same
US7756066B2 (en) 2006-01-10 2010-07-13 Cisco Technology, Inc. Seamless spanning tree restart of a single supervisor
US7801061B2 (en) 2006-01-10 2010-09-21 Cisco Technology, Inc. Seamless spanning tree upgrade of a linecard
WO2007094520A1 (ja) 2006-02-16 2007-08-23 Nec Corporation ノード、ネットワークシステム、フレーム転送方法及びフレーム転送プログラム
US8437352B2 (en) 2006-05-30 2013-05-07 Broadcom Corporation Method and system for power control based on application awareness in a packet network switch
US20070280238A1 (en) 2006-05-30 2007-12-06 Martin Lund Method and system for passive loop detection and prevention in a packet network switch
DE102007015226A1 (de) 2006-09-28 2008-04-03 Siemens Ag Verfahren zum Rekonfigurieren eines Kommunikationsnetzwerks
US7903586B2 (en) 2006-11-01 2011-03-08 Alcatel Lucent Ring rapid multiple spanning tree protocol system and method
US7995499B2 (en) 2006-11-23 2011-08-09 Cisco Technology, Inc. Minimizing spanning-tree protocol event processing and flooding in distribution networks
CN100525312C (zh) 2006-11-29 2009-08-05 华为技术有限公司 Mac帧转发的方法及设备
US8121051B2 (en) * 2007-02-26 2012-02-21 Hewlett-Packard Development Company, L.P. Network resource teaming on a per virtual network basis
US9344356B2 (en) 2007-02-28 2016-05-17 Hewlett Packard Enterprise Development Lp Transmitting a packet from a distributed trunk switch
US7792056B2 (en) 2007-05-11 2010-09-07 The Boeing Company Lightweight node based network redundancy solution leveraging rapid spanning tree protocol (RSTP)
US8615008B2 (en) 2007-07-11 2013-12-24 Foundry Networks Llc Duplicating network traffic through transparent VLAN flooding
US7864712B2 (en) 2007-07-20 2011-01-04 Cisco Technology, Inc. Preventing loops in networks operating different protocols to provide loop-free topology
US20090063706A1 (en) 2007-08-30 2009-03-05 International Business Machines Corporation Combined Layer 2 Virtual MAC Address with Layer 3 IP Address Routing
US7729296B1 (en) 2007-09-07 2010-06-01 Force 10 Networks, Inc. Distributed BPDU processing for spanning tree protocols
US7860121B2 (en) 2007-10-31 2010-12-28 Cortina Systems, Inc. Forwarding loop prevention apparatus and methods
US20090164522A1 (en) 2007-12-20 2009-06-25 E-Fense, Inc. Computer forensics, e-discovery and incident response methods and systems
EP2079196B1 (en) 2008-01-08 2010-03-17 Alcatel Lucent Method for protecting a network configuration set up by a spanning tree protocol
US7835306B2 (en) 2008-01-23 2010-11-16 Cisco Technology, Inc. Translating MST instances between ports of a bridge in a computer network
US8325630B2 (en) 2008-02-29 2012-12-04 Cisco Technology, Inc. Distributed spanning tree protocol on a multi chassis port channel
US8279867B2 (en) 2008-03-02 2012-10-02 Jeffrey Alan Carley Method and apparatus for reducing flood traffic in switches
US7873711B2 (en) * 2008-06-27 2011-01-18 International Business Machines Corporation Method, system and program product for managing assignment of MAC addresses in a virtual machine environment
US8315157B2 (en) 2008-07-02 2012-11-20 Cisco Technology, Inc. Graceful removal and/or insertion of a network element
US7983257B2 (en) 2008-07-18 2011-07-19 Emulex Design & Manufacturing Corporation Hardware switch for hypervisors and blade servers
US7962647B2 (en) 2008-11-24 2011-06-14 Vmware, Inc. Application delivery control module for virtual network switch
US8441942B1 (en) 2008-12-03 2013-05-14 Tellabs Operations Inc. Method and apparatus for link level loop detection
WO2010066300A1 (en) 2008-12-11 2010-06-17 Telefonaktiebolaget Lm Ericsson (Publ) Communications network
ES2361545B1 (es) 2009-02-24 2012-05-08 Universidad De Alcala De Henares Procedimiento de encaminamiento de tramas de datos y puente de red.
US8509618B2 (en) 2009-05-06 2013-08-13 Ciena Corporation Photonic routing systems and methods for loop avoidance
EP2430799B1 (en) 2009-05-13 2016-01-06 Telefonaktiebolaget L M Ericsson (PUBL) Methods and arrangements for configuring the l2gps in a first stp domain connected towards a second stp domain
US8416692B2 (en) * 2009-05-28 2013-04-09 Microsoft Corporation Load balancing across layer-2 domains
US8107482B2 (en) 2009-08-07 2012-01-31 International Business Machines Corporation Multipath discovery in switched ethernet networks
US8675644B2 (en) * 2009-10-16 2014-03-18 Oracle America, Inc. Enhanced virtual switch
US9054996B2 (en) 2009-12-24 2015-06-09 Juniper Networks, Inc. Dynamic prioritized fair share scheduling scheme in over-subscribed port scenario
US8345540B2 (en) 2010-04-13 2013-01-01 Calix, Inc. Virtual snooping bridge in computer networks
US8625466B2 (en) 2010-05-11 2014-01-07 Calix, Inc. Multi-card network device appearing as single entity in spanning tree network
US8407366B2 (en) * 2010-05-14 2013-03-26 Microsoft Corporation Interconnecting members of a virtual network
JP5617137B2 (ja) 2010-05-28 2014-11-05 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 仮想レイヤ2およびそれをスケーラブルにするための機構
EP2583211B1 (en) * 2010-06-15 2020-04-15 Oracle International Corporation Virtual computing infrastructure
RU2551814C2 (ru) * 2010-06-29 2015-05-27 Хуавей Текнолоджиз Ко., Лтд. Инкапсуляция адреса асимметричной сети
WO2012077126A1 (en) 2010-12-09 2012-06-14 Tejas Networks Limited A method and system for loop avoidance in a communication network
US20120182993A1 (en) * 2011-01-14 2012-07-19 International Business Machines Corporation Hypervisor application of service tags in a virtual networking environment
US8582462B2 (en) * 2011-01-14 2013-11-12 International Business Machines Corporation Network communications over shared links in a virtualized environment
US8804748B2 (en) 2011-03-31 2014-08-12 Nokia Siemens Networks Ethernet Solutions Ltd. Hitless node insertion for Ethernet networks
US8635614B2 (en) 2011-05-14 2014-01-21 International Business Machines Corporation Method for providing location independent dynamic port mirroring on distributed virtual switches
US9154327B1 (en) * 2011-05-27 2015-10-06 Cisco Technology, Inc. User-configured on-demand virtual layer-2 network for infrastructure-as-a-service (IaaS) on a hybrid cloud network
US8761187B2 (en) * 2011-06-14 2014-06-24 Futurewei Technologies, Inc. System and method for an in-server virtual switch
US8935457B2 (en) * 2011-07-29 2015-01-13 International Business Machines Corporation Network filtering in a virtualized environment
CN102291300A (zh) 2011-08-09 2011-12-21 华为技术有限公司 将mstp中的桥加入域的方法、系统及交换机
US8958298B2 (en) 2011-08-17 2015-02-17 Nicira, Inc. Centralized logical L3 routing
US8867403B2 (en) * 2011-08-18 2014-10-21 International Business Machines Corporation Virtual network overlays
US8856518B2 (en) 2011-09-07 2014-10-07 Microsoft Corporation Secure and efficient offloading of network policies to network interface cards
CN102347881A (zh) 2011-09-30 2012-02-08 华为技术有限公司 以太环网故障倒换时恢复单播转发业务流的方法及装置
CN102347865B (zh) 2011-11-04 2015-02-25 华为技术有限公司 一种以太网环路定位方法、交换设备及系统
US9176763B2 (en) 2011-11-28 2015-11-03 Ravello Systems Ltd. Apparatus and method thereof for efficient execution of a guest in a virtualized environment
US8918608B2 (en) 2012-01-09 2014-12-23 Ravello Systems Ltd. Techniques for handling memory accesses by processor-independent executable code in a multi-processor environment
US10560283B2 (en) * 2012-01-23 2020-02-11 The Faction Group Llc System and method for a multi-tenant datacenter with layer 2 interconnection and cloud storage
US8660129B1 (en) 2012-02-02 2014-02-25 Cisco Technology, Inc. Fully distributed routing over a user-configured on-demand virtual network for infrastructure-as-a-service (IaaS) on hybrid cloud networks
US9083484B2 (en) 2012-02-13 2015-07-14 Ciena Corporation Software defined networking photonic routing systems and methods
US9306832B2 (en) 2012-02-27 2016-04-05 Ravello Systems Ltd. Virtualized network for virtualized guests as an independent overlay over a physical network
CN103297257B (zh) 2012-02-27 2016-10-19 北京东土科技股份有限公司 一种冗余网络的实现方法
US8824297B2 (en) 2012-04-26 2014-09-02 Cisco Technology, Inc. Adaptive storm control
US9504089B2 (en) 2012-05-14 2016-11-22 Broadcom Corporation System and method for wireless station bridging
WO2013176607A1 (en) 2012-05-21 2013-11-28 Telefonaktiebolaget Lm Ericsson (Publ) Method and first network node for managing an ethernet network
US9059868B2 (en) 2012-06-28 2015-06-16 Dell Products, Lp System and method for associating VLANs with virtual switch ports
FI20125761A (fi) 2012-06-29 2013-12-30 Tellabs Oy Menetelmä ja laite datakehysmyrskyjen lähteiden ilmaisemiseksi
US9225549B2 (en) 2012-08-06 2015-12-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Multi-chassis link aggregation in a distributed virtual bridge
US9477505B2 (en) 2012-08-14 2016-10-25 Oracle International Corporation Method for reducing the overhead associated with a virtual machine exit when handling instructions related to descriptor tables
CN103780486B (zh) 2012-10-26 2017-03-08 杭州华三通信技术有限公司 一种trill网络中的镜像报文传输方法和设备
US9008097B2 (en) 2012-12-31 2015-04-14 Mellanox Technologies Ltd. Network interface controller supporting network virtualization
US9083611B2 (en) * 2013-02-21 2015-07-14 Oracle International Corporation Method and system for virtual network interface cards (VNICs) over aggregation spanning multiple switches
CN104022953B (zh) 2013-02-28 2018-02-09 新华三技术有限公司 基于开放流Openflow的报文转发方法和装置
US9565099B2 (en) * 2013-03-01 2017-02-07 Brocade Communications Systems, Inc. Spanning tree in fabric switches
US9432287B2 (en) * 2013-03-12 2016-08-30 International Business Machines Corporation Virtual gateways and implicit routing in distributed overlay virtual environments
US9571338B2 (en) 2013-03-14 2017-02-14 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Scalable distributed control plane for network switching systems
US9225483B2 (en) 2013-05-01 2015-12-29 Globalfoundries Inc. Virtual data center bridging exchange (vDCBX) protocol
US20140376550A1 (en) * 2013-06-24 2014-12-25 Vmware, Inc. Method and system for uniform gateway access in a virtualized layer-2 network domain
US9325630B2 (en) 2013-07-05 2016-04-26 Red Hat, Inc. Wild card flows for switches and virtual switches based on hints from hypervisors
US9344349B2 (en) * 2013-07-12 2016-05-17 Nicira, Inc. Tracing network packets by a cluster of network controllers
US9426060B2 (en) 2013-08-07 2016-08-23 International Business Machines Corporation Software defined network (SDN) switch clusters having layer-3 distributed router functionality
US10009371B2 (en) 2013-08-09 2018-06-26 Nicira Inc. Method and system for managing network storm
US9531676B2 (en) * 2013-08-26 2016-12-27 Nicira, Inc. Proxy methods for suppressing broadcast traffic in a network
US9641389B2 (en) * 2013-09-09 2017-05-02 Vmware, Inc. Method and system for recovering from network disconnects by cloning a virtual port
US9680772B2 (en) 2013-09-09 2017-06-13 Vmware, Inc. System and method for managing configuration of virtual switches in a virtual machine network
US9405568B2 (en) * 2013-09-13 2016-08-02 Microsoft Technology Licensing, Llc Multi-tenant network stack
US9575782B2 (en) 2013-10-13 2017-02-21 Nicira, Inc. ARP for logical router
US9374294B1 (en) 2013-11-05 2016-06-21 Cisco Technology, Inc. On-demand learning in overlay networks
US9548922B2 (en) * 2013-11-07 2017-01-17 Cisco Technology, Inc. Enabling scalable virtual machine tracking in a data center fabric
US11075948B2 (en) 2014-01-10 2021-07-27 Arista Networks, Inc. Method and system for virtual machine aware policy management
US9281954B2 (en) 2014-04-29 2016-03-08 Arista Networks, Inc. Method and system for protocol independent multicasting in multichassis link aggregation domains
US9648121B2 (en) 2014-05-27 2017-05-09 Ravello Systems Ltd. Source-destination network address translation (SDNAT) proxy and method thereof
US9467385B2 (en) 2014-05-29 2016-10-11 Anue Systems, Inc. Cloud-based network tool optimizers for server cloud networks
JP6388433B2 (ja) 2014-07-04 2018-09-12 アライドテレシスホールディングス株式会社 ネットワーク機器、通信方法、プログラム、記録媒体
US9858104B2 (en) 2014-09-24 2018-01-02 Pluribus Networks, Inc. Connecting fabrics via switch-to-switch tunneling transparent to network servers
US9900263B2 (en) 2014-09-29 2018-02-20 Alcatel-Lucent Usa Inc. Non-overlay resource access in datacenters using overlay networks
US9971619B2 (en) 2014-10-15 2018-05-15 Keysight Technologies Singapore (Holdings) Pte Ltd Methods and systems for forwarding network packets within virtual machine host systems
US10348621B2 (en) 2014-10-30 2019-07-09 AT&T Intellectual Property I. L. P. Universal customer premise equipment
US9900238B2 (en) 2014-11-25 2018-02-20 Electronics And Telecommunications Research Institute Overlay network-based original packet flow mapping apparatus and method therefor
CN105704020B (zh) 2014-11-25 2019-05-17 华为技术有限公司 环路避免方法,设备和系统
JP2016116029A (ja) 2014-12-12 2016-06-23 富士通株式会社 ネットワーク監視方法、中継装置、および、ネットワーク監視システム
US9860309B2 (en) 2014-12-22 2018-01-02 Vmware, Inc. Hybrid cloud network monitoring system for tenant use
US9621461B2 (en) * 2015-01-27 2017-04-11 Vmware, Inc. Media access control (MAC) address table protection in a virtualized computing environment
KR20170109603A (ko) 2015-01-28 2017-09-29 닛본 덴끼 가부시끼가이샤 가상 네트워크 기능 관리 장치, 시스템, 힐링 방법 및 프로그램
US9535737B2 (en) 2015-01-30 2017-01-03 Bladelogic, Inc. Dynamic virtual port provisioning
US10178073B2 (en) * 2015-02-20 2019-01-08 Toucanh Llc Method to split data operational function among system layers
US9948579B1 (en) 2015-03-30 2018-04-17 Juniper Networks, Inc. NIC-based packet assignment for virtual networks
US9558029B2 (en) 2015-05-17 2017-01-31 Nicira, Inc. Logical processing for containers
US10044606B2 (en) 2015-06-01 2018-08-07 Ciena Corporation Continuity check systems and methods using hardware native down maintenance end points to emulate hardware up maintenance end points
JP6464932B2 (ja) 2015-06-05 2019-02-06 株式会社デンソー 中継装置
US10708173B2 (en) 2015-06-12 2020-07-07 Telefonaktiebolaget Lm Ericsson (Publ) Multipath forwarding in an overlay network
US9923811B2 (en) * 2015-06-27 2018-03-20 Nicira, Inc. Logical routers and switches in a multi-datacenter environment
US10078526B2 (en) 2015-11-01 2018-09-18 Nicira, Inc. Securing a managed forwarding element that operates within a data compute node
US10567261B2 (en) 2015-11-26 2020-02-18 Mitsubishi Electric Corporation Relay device and communication network
JP2017108231A (ja) 2015-12-08 2017-06-15 富士通株式会社 通信制御プログラム、通信制御方法及び情報処理装置
US10063469B2 (en) 2015-12-16 2018-08-28 Nicira, Inc. Forwarding element implementation for containers
CN106936777B (zh) 2015-12-29 2020-02-14 中移(苏州)软件技术有限公司 基于OpenFlow的云计算分布式网络实现方法、系统
CN108293022B (zh) * 2015-12-30 2020-10-09 华为技术有限公司 一种报文传输的方法、装置和系统
US10348847B2 (en) * 2016-01-28 2019-07-09 Oracle International Corporation System and method for supporting proxy based multicast forwarding in a high performance computing environment
WO2017160306A1 (en) 2016-03-18 2017-09-21 Hewlett Packard Enterprise Development Lp Responses to loops in networks having a ring topology
US10057112B2 (en) 2016-03-24 2018-08-21 Ca, Inc. Fault detection of service chains in a SDN/NFV network environment
US10230628B2 (en) 2016-04-18 2019-03-12 Cisco Technology, Inc. Contract-defined execution of copy service
US10333849B2 (en) 2016-04-28 2019-06-25 Nicira, Inc. Automatic configuration of logical routers on edge nodes
US10484331B1 (en) 2016-06-28 2019-11-19 Amazon Technologies, Inc. Security appliance provisioning
US10182035B2 (en) 2016-06-29 2019-01-15 Nicira, Inc. Implementing logical network security on a hardware switch
US10491502B2 (en) 2016-06-29 2019-11-26 Nicira, Inc. Software tap for traffic monitoring in virtualized environment
US10164910B2 (en) * 2016-07-13 2018-12-25 Futurewei Technologies, Inc. Method and apparatus for an information-centric MAC layer
US10110469B2 (en) 2016-07-21 2018-10-23 Cisco Technology, Inc. Detecting and preventing network loops
US10264040B2 (en) 2016-08-03 2019-04-16 Big Switch Networks, Inc. Systems and methods to manage multicast traffic
US10681131B2 (en) 2016-08-29 2020-06-09 Vmware, Inc. Source network address translation detection and dynamic tunnel creation
US10135726B2 (en) * 2016-10-27 2018-11-20 Vmware, Inc. Virtualization port layer including physical switch port and logical switch port
US10782992B2 (en) 2016-11-01 2020-09-22 Nutanix, Inc. Hypervisor conversion
US10887361B2 (en) 2016-11-01 2021-01-05 Nicira, Inc. Port mirroring in overlay networks
JP6605713B2 (ja) * 2016-11-09 2019-11-13 華為技術有限公司 クラウドコンピューティングシステムにおけるパケット処理方法、ホスト及びシステム
CN108156014B (zh) 2016-12-06 2021-08-13 华为技术有限公司 一种环路故障处理方法和交换机
US10423434B2 (en) 2016-12-22 2019-09-24 Nicira, Inc. Logical port authentication for virtual machines
US10432426B2 (en) 2017-02-21 2019-10-01 Nicira, Inc. Port mirroring in a virtualized computing environment
EP3586482B1 (en) 2017-02-21 2020-11-25 Telefonaktiebolaget LM Ericsson (Publ) Mechanism to detect data plane loops in an openflow network
US10243840B2 (en) * 2017-03-01 2019-03-26 Juniper Networks, Inc. Network interface card switching for virtual networks
US10379981B2 (en) 2017-03-10 2019-08-13 Nicira, Inc. Diagnosing distributed virtual network malfunction
US10277535B2 (en) * 2017-03-31 2019-04-30 Hewlett Packard Enterprise Development Lp Network switch systems including logical switches
CN108696434B (zh) * 2017-04-11 2022-01-14 华为技术有限公司 一种转发数据报文的方法、设备和系统
US11006311B2 (en) 2017-05-16 2021-05-11 Qualcomm Incorporated Ethernet over cellular
US10855805B2 (en) 2017-05-26 2020-12-01 Dell Products L.P. Centralized storage-connected switch port auto-configuration system
US10296370B2 (en) 2017-05-30 2019-05-21 Nicira, Inc. Port mirroring in a virtualized computing environment
US10454809B2 (en) 2017-06-08 2019-10-22 Vmware, Inc. Automatic network topology detection for merging two isolated networks
US10904101B2 (en) * 2017-06-16 2021-01-26 Cisco Technology, Inc. Shim layer for extracting and prioritizing underlying rules for modeling network intents
US10511548B2 (en) 2017-06-22 2019-12-17 Nicira, Inc. Multicast packet handling based on control information in software-defined networking (SDN) environment
US10237230B2 (en) * 2017-07-19 2019-03-19 Arista Networks, Inc. Method and system for inspecting network traffic between end points of a zone
US10757076B2 (en) 2017-07-20 2020-08-25 Nicira, Inc. Enhanced network processing of virtual node data packets
US10432420B2 (en) 2017-07-28 2019-10-01 Cisco Technology, Inc. Methods, devices, and computer-readable media for preventing broadcast loops during a site merge
US10911397B2 (en) * 2017-07-31 2021-02-02 Nicira, Inc. Agent for implementing layer 2 communication on layer 3 underlay network
US10542577B2 (en) * 2017-08-16 2020-01-21 Nicira, Inc. Connectivity checks in virtualized computing environments
US10572289B2 (en) * 2017-08-28 2020-02-25 Red Hat Israel, Ltd. Guest-initiated announcement of virtual machine migration
US10560380B2 (en) 2017-08-31 2020-02-11 Nicira, Inc. Method for improving throughput for encapsulated network traffic
US10673761B2 (en) 2017-09-29 2020-06-02 Vmware, Inc. Methods and apparatus to improve packet flow among virtualized servers
US10425325B2 (en) 2017-10-30 2019-09-24 Dell Products Lp Optimizing traffic paths to orphaned hosts in VXLAN networks using virtual link trunking-based multi-homing
US10348683B2 (en) 2017-11-02 2019-07-09 Nicira Inc. Network packet filtering via media access control (MAC) address learning
US11522763B2 (en) * 2017-11-29 2022-12-06 Nicira, Inc. Agent-based network scanning in software-defined networking (SDN) environments
US11025537B2 (en) 2017-12-04 2021-06-01 Is5 Communications, Inc. Multiple RSTP domain separation
US10880112B2 (en) 2017-12-31 2020-12-29 Arista Networks, Inc. Multicast traffic in a virtual extensible local area network (VXLAN)
US10454824B2 (en) * 2018-03-01 2019-10-22 Nicira, Inc. Generic communication channel for information exchange between a hypervisor and a virtual machine
CN110661733B (zh) 2018-06-29 2021-07-30 智邦科技股份有限公司 网络接口卡、交换卡及线路卡
KR102543905B1 (ko) 2018-08-13 2023-06-15 삼성전자 주식회사 5G Ethernet service를 제공하는 방법 및 장치
US10715449B2 (en) 2018-08-24 2020-07-14 Dell Products L.P. Layer 2 load balancing system
US10944667B2 (en) 2018-08-27 2021-03-09 Hewlett Packard Enterprise Development Lp Loop check packets
US10855531B2 (en) 2018-08-30 2020-12-01 Juniper Networks, Inc. Multiple networks for virtual execution elements
US10728145B2 (en) 2018-08-30 2020-07-28 Juniper Networks, Inc. Multiple virtual network interface support for virtual execution elements
US10516599B1 (en) 2018-08-31 2019-12-24 Hewlett Packard Enterprise Development Lp Link priority for loop-protect
US10708082B1 (en) * 2018-08-31 2020-07-07 Juniper Networks, Inc. Unified control plane for nested clusters in a virtualized computing infrastructure
US11310241B2 (en) 2018-09-18 2022-04-19 Microsoft Technology Licensing, Llc Mirroring virtual network traffic
US11159366B1 (en) 2018-09-28 2021-10-26 Juniper Networks, Inc. Service chaining for virtual execution elements
US11316822B1 (en) * 2018-09-28 2022-04-26 Juniper Networks, Inc. Allocating external IP addresses from isolated pools
US11171834B1 (en) * 2018-11-16 2021-11-09 Juniper Networks, Inc. Distributed virtualized computing infrastructure management
US10848457B2 (en) * 2018-12-04 2020-11-24 Arista Networks, Inc. Method and system for cross-zone network traffic between different zones using virtual network identifiers and virtual layer-2 broadcast domains
US10880210B2 (en) 2018-12-26 2020-12-29 Juniper Networks, Inc. Cloud network having multiple protocols using virtualization overlays across physical and virtualized workloads
US11184295B2 (en) 2018-12-28 2021-11-23 Vmware, Inc. Port mirroring based on remote direct memory access (RDMA) in software-defined networking (SDN) environments
US11070470B2 (en) * 2019-01-22 2021-07-20 Vmware, Inc. Host router in a virtual computing instance
US11349715B2 (en) * 2019-02-01 2022-05-31 Arista Networks, Inc. Method and system for consistent policy enforcement through fabric offloading
US11115379B2 (en) 2019-02-28 2021-09-07 Vmware, Inc. Management of endpoint address discovery in a software defined networking environment
US10841226B2 (en) 2019-03-29 2020-11-17 Juniper Networks, Inc. Configuring service load balancers with specified backend virtual networks
US10778465B1 (en) * 2019-04-02 2020-09-15 Fortinet, Inc. Scalable cloud switch for integration of on premises networking infrastructure with networking services in the cloud
US11669468B2 (en) 2019-06-28 2023-06-06 Hewlett Packard Enterprise Development Lp Interconnect module for smart I/O
US11593140B2 (en) 2019-06-28 2023-02-28 Hewlett Packard Enterprise Development Lp Smart network interface card for smart I/O
US11316738B2 (en) 2019-08-19 2022-04-26 Juniper Networks, Inc. Vendor agnostic profile-based modeling of service access endpoints in a multitenant environment
US11095557B2 (en) 2019-09-19 2021-08-17 Vmware, Inc. L3 underlay routing in a cloud environment using hybrid distributed logical router
US11729218B2 (en) 2019-11-07 2023-08-15 Red Hat, Inc. Implementing a service mesh in the hypervisor
US11343152B2 (en) 2020-04-07 2022-05-24 Cisco Technology, Inc. Traffic management for smart network interface cards
US11689455B2 (en) 2020-05-28 2023-06-27 Oracle International Corporation Loop prevention in virtual layer 2 networks
US11831544B2 (en) 2020-07-14 2023-11-28 Oracle International Corporation Virtual layer-2 network
US11477116B2 (en) 2020-08-20 2022-10-18 Nokia Solutions And Networks Oy Loop detection in ethernet packets
US11451634B2 (en) 2020-11-06 2022-09-20 Arista Networks, Inc. Systems and method for using DCI-ESI to build highly scalable EVPN DCI networks
US11765080B2 (en) 2020-12-30 2023-09-19 Oracle International Corporation Layer-2 networking span port in a virtualized cloud environment

Also Published As

Publication number Publication date
CN116210204A (zh) 2023-06-02
EP4183121B1 (en) 2024-04-17
US11818040B2 (en) 2023-11-14
US20240080269A1 (en) 2024-03-07
US20230097386A1 (en) 2023-03-30
CN116235484A (zh) 2023-06-06
WO2022015884A1 (en) 2022-01-20
CN116235482A (zh) 2023-06-06
EP4183120B1 (en) 2024-04-24
US20220021610A1 (en) 2022-01-20
EP4183119A1 (en) 2023-05-24
EP4183121A1 (en) 2023-05-24
US11876708B2 (en) 2024-01-16
EP4183120A1 (en) 2023-05-24
WO2022015881A1 (en) 2022-01-20
US20220021556A1 (en) 2022-01-20
US11463355B2 (en) 2022-10-04
WO2022015883A1 (en) 2022-01-20
US11831544B2 (en) 2023-11-28
JP2023535150A (ja) 2023-08-16
US20220021678A1 (en) 2022-01-20
JP2023535152A (ja) 2023-08-16

Similar Documents

Publication Publication Date Title
US11818040B2 (en) Systems and methods for a VLAN switching and routing service
JP2023527999A (ja) 仮想l2ネットワークのループ防止
US11652743B2 (en) Internet group management protocol (IGMP) of a layer-2 network in a virtualized cloud environment
US20240031282A1 (en) Layer-2 networking span port in a virtualized cloud environment
US20240121186A1 (en) Layer-2 networking using access control lists in a virtualized cloud environment
JP2024503322A (ja) 仮想化されたクラウド環境におけるレイヤ2ネットワーキングストーム制御
WO2022146587A1 (en) Internet group management protocol (igmp) of a layer 2 network in a virtualized cloud environment
JP2024503319A (ja) 仮想化されたクラウド環境におけるレイヤ2ネットワーキング情報
CN116648691A (zh) 在虚拟化的云环境中使用访问控制列表的层2网络