JP2015076874A - 論理ルータ - Google Patents

論理ルータ Download PDF

Info

Publication number
JP2015076874A
JP2015076874A JP2014034696A JP2014034696A JP2015076874A JP 2015076874 A JP2015076874 A JP 2015076874A JP 2014034696 A JP2014034696 A JP 2014034696A JP 2014034696 A JP2014034696 A JP 2014034696A JP 2015076874 A JP2015076874 A JP 2015076874A
Authority
JP
Japan
Prior art keywords
mpre
host
network
address
physical
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.)
Granted
Application number
JP2014034696A
Other languages
English (en)
Other versions
JP5925820B2 (ja
Inventor
ガネサン チャンドラシェカー,
Chandrashekhar Ganesan
ガネサン チャンドラシェカー,
ラフル コリヴィ サブラマニヤム,
Korivi Subramaniyam Rahul
ラフル コリヴィ サブラマニヤム,
ラム ドゥラー シング,
Dular Singh Ram
ラム ドゥラー シング,
ヴィヴェク アガルワル,
Agarwal Vivek
ヴィヴェク アガルワル,
ハワード ワン,
Wang Howard
ハワード ワン,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nicira Inc
Original Assignee
Nicira Inc
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 Nicira Inc filed Critical Nicira Inc
Publication of JP2015076874A publication Critical patent/JP2015076874A/ja
Application granted granted Critical
Publication of JP5925820B2 publication Critical patent/JP5925820B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed 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/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • 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/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
    • 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]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】VMを実行することができるすべてのホストでL3パケットを転送するための分散型ルータを提供する。
【解決手段】いくつかの実施形態は、いくつかの仮想マシンをホストするためのいくつかのホストマシンと、ホストマシンを相互接続するための物理ネットワークとを含むシステムを提供する。各ホストマシンは、ホストマシン上で動作する仮想マシンのセットとの間のパケットのリンク層転送を実行するための、いくつかのポートを含む管理される物理スイッチング要素(MPSE)を含む。各ポートは、ユニークなメディアアクセス制御(MAC)アドレスと関連付けられる。各ホストマシンは、MPSEのポートからのデータパケットを受信し、第1のネットワークセグメントの第1の仮想マシンから受信したデータパケットを、第2のネットワークセグメントの第2の仮想マシンに転送するために、ネットワーク層ルーティングを実行するための、管理されるルーティング要素(MPRE)を含む。
【選択図】図1

Description

先願の利益の主張
本出願は、2013年10月13日に出願された米国仮特許出願第61/890,309号の利益を主張する。米国仮特許出願第61/890,309号は、参照により本明細書に組み込まれる。
ネットワーク仮想化環境では、ハイパーバイザ上で展開されるより一般的なアプリケーションの1つは、3階層アプリケーションであり、3階層アプリケーションでは、ウェブ層、データベース層、及びアプリケーション層が、異なるL3サブネット上にある。これは、最初にL3ルータに到着し、次に宛先仮想マシン(VM)に転送されるように、1つのサブネット内の1つのVMから、別のサブネット内の別のVMに横断するIPパケットを必要とする。これは、宛先VMが、発信VMと同じホストマシン上でホストされる場合でも、同様である。これは、不要なネットワークトラフィックを発生し、より高いレイテンシとより低いスループットとを引き起こし、ハイパーバイザ上で動作するアプリケーションの性能を著しく低下させる。一般的に言えば、任意の2つのVMが、互いに通信する2つの異なるIPサブネットであるときはいつも、この性能低下が発生する。
図1は、ネットワーク仮想化インフラストラクチャ上に実装された論理ネットワーク100を示し、論理ネットワーク100では、異なるセグメント又はサブネット上の仮想マシン(VM)が、共有ルータ110を介して通信する。図に示すように、VM121〜129は、ホストマシン131〜133上で動作しており、ホストマシン131〜133は、物理ネットワーク105によって通信可能にリンクされた物理マシンである。
VMは、ネットワークの異なるセグメント内にある。具体的にはVM121〜125は、ネットワークのセグメントA内にあり、VM126〜129は、ネットワークのセグメントB内にある。ネットワークの同じセグメント内のVMは、リンク層(L2)プロトコルを用いて互いに通信することができ、ネットワークの異なるセグメント内のVMは、リンク層プロトコルを用いて互いに通信することができず、ネットワーク層(L3)ルータ又はゲートウェイを用いて互いに通信しなければならない。異なるホストマシン内で動作するVMは、それらが、同じネットワークセグメント内にあるか否かにかかわらず、物理ネットワーク105内のネットワークトラフィックを介して互いに通信する。
ホストマシン131〜133は、ソフトウェアスイッチを実装するハイパーバイザを実行しており、同じホストマシン内の同じセグメント内のVMが、物理ネットワーク105を経由せずに、ローカルに互いに通信することを可能にする。しかしながら、異なるセグメントに属するVMは、共有ルータ110のようなL3ルータを経由しなければならず、これは物理ネットワークの後ろでしか到達することができない。これは、同じホストマシン内で動作しているVM間でも同様である。例えば、VM125及びVM126間のトラフィックは、両方ともホストマシン132上で動作しているにもかかわらず、物理ネットワーク105及び共有ルータ110を経由しなければならない。
必要なのは、VMを実行することができるすべてのホストでL3パケットを転送するための分散型ルータである。分散型ルータは、送信元VM及び宛先VM間に正確に1つのホップが存在するように、データパケットをローカルに(すなわち、送信元ハイパーバイザで)転送することができるようにすべきである。
仮想化ネットワーク環境内のホストマシン上で動作する論理ネットワークの仮想マシン(VM)間のL3パケット転送を容易にするために、いくつかの実施形態は、論理ネットワークのための論理ルータ又は論理ルーティング要素(LRE)を定義する。いくつかの実施形態では、LREは、仮想分散型ルータ(VDR)として、その論理ネットワークのホストマシン間で分散して動作し、ここで、各ホストマシンは、LREのそれ自体のローカルインスタンスを、そのホスト上で動作するVMのためのL3パケット転送を実行するための管理される物理ルーティング要素(MPRE)として動作する。いくつかの実施形態では、MPREは、同じホストマシン上で動作するVM間のパケットのL3転送が、物理ネットワークを経由する必要なしに、ホストマシンでローカルに実行されることを可能にする。いくつかの実施形態は、異なるテナントのための異なるLREを定義し、ホストマシンは、複数のMPREとして、異なるLREを動作させることができる。いくつかの実施形態では、同じホストマシン上で動作する異なるテナントのための異なるMPREは、管理される物理スイッチング要素(MPSE)上の同じポート及び同じL2MACアドレスを共有する。
いくつかの実施形態では、LREは、1つ又は複数の論理インタフェース(LIF)を含み、LIFの各々は、ネットワークの特定のセグメントへのインタフェースとして機能する。いくつかの実施形態では、各LIFは、自身のIPアドレスによってアドレス指定可能であり、ネットワークのその特定のセグメントのネットワークノード(例えば、VM)のためのデフォルトゲートウェイ又はARPプロキシとして機能する。各ネットワークセグメントは、LREに対する自身の論理インタフェースを有し、各LREは、自身の論理インタフェースのセットを有する。各論理インタフェースは、ネットワーク仮想化インフラストラクチャ内でユニークな自身の識別子(例えば、IPアドレス又はオーバレイネットワーク識別子)を有する。
いくつかの実施形態では、このような論理ルータを用いる論理ネットワークは、異なるホストマシンで動作するMPREを、すべてのVMに同じように見えるようにすることによって、ネットワーク仮想化をさらに強化する。これらの実施形態のいくつかでは、各LREは、システム内のすべてのLREについて同じである仮想MACアドレス(VMAC)によって、L2データリンク層でアドレス指定可能である。各ホストマシンは、ユニークな物理MACアドレス(PMAC)に関連付けられる。特定のLREを実装する各MPREは、物理ネットワーク上の他のホストマシンによって、そのホストマシンのユニークなPMACによってユニークにアドレス指定可能である。いくつかの実施形態では、MPREを離れる各パケットは、VMACを送信元アドレスとして有し、ホストマシンは、パケットがPNICに入り、物理ネットワークのホストを離れる前に、送信元アドレスをユニークなPMACに変更することになる。いくつかの実施形態では、MPREに入る各パケットは、VMACを宛先アドレスとして有し、ホストは、宛先アドレスが、ホストに関連付けられたユニークなPMACアドレスである場合、宛先MACアドレスを一般的なVMACに変更することになる。いくつかの実施形態では、ネットワークセグメントのLIFは、そのネットワークセグメント内のVMのためのデフォルトゲートウェイとして機能する。そのLIFの1つのためのARPクエリを受信するMPREは、クエリを他のホストマシンに転送することなく、ローカルにクエリに応答する。
仮想化ソフトウェアを実行しない、又はMPREを動作させない物理ホストマシンのL3層ルーティングを実行するために、いくつかの実施形態は、これらの非VDRホストマシンのそれぞれのための専用ルーティングエージェント(指定されたインスタンス又は指定されたMPRE)として機能するように、ホストマシン上で動作するMPREを指定する。いくつかの実施形態では、仮想マシンから物理ホストへのデータトラフィックは、個々のMPREによって行われ、物理ホストから仮想マシンへのデータトラフィックは、指定されたMPREを経由しなければならない。
いくつかの実施形態では、ホストマシン内の少なくとも1つのMPREは、ブリッジングMPREとして構成され、このようなブリッジは、ルーティングではなくブリッジングのために構成された論理インタフェースを含む。ルーティングのために構成された論理インタフェース(ルーティングLIF)は、L3層ネットワークアドレスをL2MACアドレスに解決することによって、論理ネットワークの異なるセグメント間のL3レベルルーティングを実行する。ブリッジングのために構成された論理インタフェース(ブリッジングLIF)は、MACアドレスをネットワークセグメント識別子(例えば、VNI)又は論理インタフェースと結合することによって、ブリッジングを実行する。
いくつかの実施形態では、上述したようにホストマシン内で動作するLREは、コントローラのクラスタによって生成される構成データセットによって構成される。いくつかの実施形態でのコントローラは、異なるテナント又はユーザによって作成及び指定される論理ネットワークに基づいて、これらの構成データセットを生成する。いくつかの実施形態では、ネットワーク仮想化インフラストラクチャのネットワークマネージャは、ユーザが、ネットワーク仮想化インフラストラクチャ上に実装することができる異なる論理ネットワークを生成することを可能にし、次に、コントローラが、LREのための構成データを含むホストマシンの特定の構成データセットを生成することができるように、これらの論理ネットワークのパラメータをコントローラにプッシュする。いくつかの実施形態では、ネットワークマネージャは、LREのための構成データを取得するために、ホストマシンに命令を与える。
いくつかの実施形態は、LREのルーティング情報を動的に収集し、配信する。いくつかの実施形態では、エッジVMは、他のルータからのネットワークルートを学習し、学習したルートを、コントローラのクラスタに送信し、コントローラのクラスタは、学習したルートを、ホストマシンで動作するLREに伝播する。
前述の概要は、本発明のいくつかの実施形態への簡単な導入として役立つことを意図している。それは、この文書に開示されたすべての発明の主題の導入又は概観であることを意味しない。以下の詳細な説明、及び、詳細な説明で参照される図面は、概要に記載された実施形態、並びに他の実施形態をさらに説明することになる。したがって、この文書によって説明されるすべての実施形態を理解するために、概要、詳細な説明、及び図面の完全なレビューが必要とされる。さらに、特許請求された主題は、主題の要旨から逸脱することなく、他の特定の形態で具体化されてよいため、特許請求された主題は、概要、詳細な説明、及び図面の例示的な詳細に限定されるべきではなく、添付の特許請求の範囲によって定義されるべきである。
本発明の新規な特徴は、添付の特許請求の範囲に記載される。しかしながら、説明の目的のため、本発明のいくつかの実施形態は、以下の図面に記載される。
異なるセグメント又はサブネット上の仮想マシン(VM)が、共有ルータを介して通信する、ネットワーク仮想化インフラストラクチャ上に実装された論理ネットワークを示す。 ホストマシン内でMPREとしてローカルに動作するLREによって実行されるパケット転送動作を示す。 LREのためのMPREを動作させる仮想化ソフトウェアを実行するホストマシンを示す。 MPSEによるL2転送動作を示す。 MPSEと協働するMPREによるL3ルーティング動作を示す。 MPSEと協働するMPREによるL3ルーティング動作を示す。 ホストの外部からのパケットに対してMPREによって実行されるL3ルーティング動作を示す。 ホストの外部からのパケットに対してMPREによって実行されるL3ルーティング動作を示す。 異なるホストマシンにまたがってMPREによって実装されるLREを有する論理ネットワークを概念的に示す。 ネットワーク仮想化インフラストラクチャのホストマシン内のMPREの物理的実装を示す。 異なるセグメントの仮想マシンからのデータパケットが、どのようにホスト内の異なる論理インタフェースに向けられるかを示す。 ホストマシンで動作する例示的なMPREのブロック図を示す。 MPSEからのデータパケットを処理する際にMPREによって実行されるプロセスを概念的に示す。 いくつかの実施形態に関する共通VMAC及びユニークなPMACによってアドレス指定可能なMPREを有する論理ネットワークを示す。 共通VMAC及びユニークなPMACを使用する例示的なルーティングされたL3ネットワークトラフィックを示す。 アップリンクモジュールによって実行される前処理動作のプロセスを概念的に示す。 アップリンクモジュールによって実行される後処理動作のプロセスを概念的に示す。 論理ネットワーク内のLREの論理インタフェースのARPクエリ動作を示す。 いくつかの実施形態に関するMPREが開始するARPクエリを示す。 MPREが解決することができるARP問い合わせに対して応答するためのプロキシとして機能するMPREを示す。 送信者MPREと同じホストマシン内にある仮想マシンに対するARP問い合わせ内のユニークなPMACの使用を示す。 MPREがそれらの解決テーブルを更新した後の、異なるセグメントのVM間のメッセージ受渡し動作を示す。 MPREがそれらの解決テーブルを更新した後の、異なるセグメントのVM間のメッセージ受渡し動作を示す。 MPREを使用することによって着信データパケットのためのアドレス解決を処理するためのプロセスを概念的に示す。 物理ホストとの間のパケットのL3ルーティングを処理するためのMPREを指定する論理ネットワークを示す。 論理ネットワーク内の非VDR物理ホストによって開始されるARP動作を示す。 異なるホスト上の仮想マシンから物理ホストへのパケットのルーティングのための指定されたMPREの使用を示す。 物理ホストから異なるホスト上の仮想マシンへのパケットのルーティングのための指定されたMPREの使用を示す。 物理ホストから異なるホスト上の仮想マシンへのパケットのルーティングのための指定されたMPREの使用を示す。 非VDR物理ホストからのL3層トラフィックを処理するためのプロセスを概念的に示す。 非VDR物理ホストへのL3層トラフィックを処理するためのプロセス2800を概念的に示す。 異なるオーバレイネットワーク間のブリッジとして機能するブリッジLIFを含むLREを示す。 その少なくとも1つが、ブリッジLIFとして構成された論理インタフェースを有するMPREを有するホストマシンである、複数のホストマシンを含む論理ネットワークを示す。 MPREによるMACアドレスの学習を示す。 MPREによって以前に学習されたMAC−VNIペアリングを使用する、2つの異なるオーバレイネットワーク上の2つのVM間のブリッジングを示す。 ブリッジングMPREと同じホストで動作していない2つのVM間のブリッジングを示す。 宛先MACアドレスが、ブリッジングテーブル内に一致するエントリを持たず、MPREが、ペアリングを探すためにネットワークをフラッディングしなければならないブリッジング動作を示す。 フラッディングに対する応答からのMACアドレスペアリングの学習を示す。 MPREでブリッジングを実行するためのプロセスを概念的に示す。 論理ネットワークの仕様が、ホストマシン内のLREの構成に変換される、ネットワーク仮想化インフラストラクチャを示す。 ネットワークマネージャから、個々のホストマシン内で動作するLREへの、構成データの配信を概念的に示す。 個々のホストマシンに配信される構成データセットの構造を示す。 LREのMPREへの動的ルーティング情報の収集及び配信を示す。 本発明のいくつかの実施形態を実装する電子システムを概念的に示す。
以下の説明では、多くの詳細が、説明の目的のために記載される。しかしながら、当業者は、本発明が、これらの特定の詳細を使用せずに実施され得ることを理解するであろう。他の例では、不必要な詳細で本発明の説明を曖昧にしないために、周知の構造及びデバイスは、ブロック図の形式で示される。
仮想化ネットワーク環境内のホストマシン上で動作する論理ネットワークの仮想マシン(VM)間のL3パケット転送を容易にするために、いくつかの実施形態は、論理ネットワークのための論理ルータ又は論理ルーティング要素(LRE)を定義する。いくつかの実施形態では、LREは、仮想分散型ルータ(VDR)として、その論理ネットワークのホストマシン間で分散して動作し、ここで、各ホストマシンは、LREのそれ自体のローカルインスタンスを、そのホスト上で動作するVMのためのL3パケット転送を実行するための管理される物理ルーティング要素(MPRE)として動作する。いくつかの実施形態では、MPREは、同じホストマシン上で動作するVM間のパケットのL3転送が、物理ネットワークを経由する必要なしに、ホストマシンでローカルに実行されることを可能にする。いくつかの実施形態は、異なるテナントのための異なるLREを定義し、ホストマシンは、複数のMPREとして、異なるLREを動作させることができる。いくつかの実施形態では、同じホストマシン上で動作する異なるテナントのための異なるMPREは、管理される物理スイッチング要素(MPSE)上の同じポート及び同じL2MACアドレスを共有する。
いくつかの実施形態に関して、図2は、ホストマシンでローカルにMPREとして動作するLREによって実行されるパケット転送動作を示す。各ホストマシンは、1つ又は複数のVMをホストするために、仮想化機能を実行し、VMがネットワーク仮想化インフラストラクチャ内で互いに通信できるように、スイッチング機能を実行する。2つのVMが、異なるネットワークセグメントに属する場合であっても、同じホストマシン上の2つのVM間のトラフィックが、常にローカルに行われることになるように、各MPREは、そのホストマシン内でローカルにL3ルーティング動作を実行する。
図2は、VM221〜229間のネットワーク通信のための論理ネットワーク200の実装を示す。論理ネットワーク200は、物理ネットワーク205によって相互接続されるコンピューティング及びストレージリソースの集合上に仮想化されるネットワークである。相互接続されるコンピューティング及びストレージリソースのこの集合、並びに物理ネットワークは、ネットワーク仮想化インフラストラクチャを形成する。VM221〜229は、ホストマシン231〜233によってホストされ、ホストマシン231〜233は、物理ネットワーク205によって通信可能にリンクされる。ホストマシン231〜233の各々は、いくつかの実施形態では、VMを作成及びホストすることができるオペレーティングシステム(例えば、Linux(登録商標))によって管理されるコンピューティングデバイスである。VM221〜229は、ネットワークアドレス(例えば、L2のためのMACアドレス、L3のためのIPアドレス、など)のセットがそれぞれ割り当てられ、他のVMのような他のネットワーク要素との間でネットワークデータを送受信することができる仮想マシンである。
VMは、ホストマシン231〜233上で動作する仮想化ソフトウェア(図示せず)によって管理される。仮想化ソフトウェアは、あるいは、仮想マシン技術の分野で「仮想マシンモニタ」、「ハイパーバイザ」、又は仮想化カーネルとして知られる1つ又は複数のソフトウェア構成要素を含む、1つ又は複数のソフトウェア構成要素及び/又は層を含むことができる。仮想化の専門用語は、時間と共に進化してきており、まだ完全には標準化されていないため、これらの用語は、ソフトウェア層と、それらが参照する構成要素との間の明確な区別を、必ずしも提供しない。本明細書で使用される「仮想化ソフトウェア」という用語は、一般的に、仮想マシンとホストプラットフォームとの間に論理的に介在するソフトウェア層又は構成要素を指す。
図2の例では、各VMは、論理ネットワーク200の2つのセグメントのうちの一方で動作する。VM221〜225は、セグメントAで動作し、VM226〜229は、セグメントBで動作する。いくつかの実施形態では、ネットワークセグメントは、ネットワークの一部であり、ネットワーク内では、ネットワーク要素が、IPサブネットのようなリンク層L2プロトコルによって、互いに通信する。いくつかの実施形態では、ネットワークセグメントは、VXLAN又はVLANのようなカプセル化オーバレイネットワークである。
いくつかの実施形態では、ネットワークの同じセグメント内のVMは、リンク層(L2)プロトコルで(例えば、各VMのL2MACアドレスにしたがって)互いに通信することができ、ネットワークの異なるセグメント内のVMは、リンク層プロトコルでは互いに通信することができず、ネットワーク層(L3)ルータ又はゲートウェイを介して互いに通信しなければならない。いくつかの実施形態では、VM間のL2レベルトラフィックは、各ホストマシン内でローカルに動作するMPSE(図示せず)によって処理される。したがって、例えば、VM223からVM224へのネットワークトラフィックは、ホスト231内で動作する第1のMPSEを通過することになり、第1のMPSEは、そのポートの1つからデータを受信し、ホストマシン232で動作する第2のMPSEに、物理ネットワーク205を介してデータを送信し、第2のMPSEは、次に、そのポートの1つを介してVM224にデータを送信することになる。同様に、VM228からVM229への同じセグメントのネットワークトラフィックは、ホスト233で動作する単一のMPSEを通過することになり、単一のMPSEは、ある仮想ポートから別の仮想ポートに、ホスト233内でローカルにトラフィックを転送することになる。
その実装が、異なるネットワークセグメント間のトラフィックを処理する(標準的な物理ルータ、特にルーティング機能を実行するためのVM、などとして実装することができる)外部L3ルータに依存する図1の論理ネットワーク100とは異なり、図2の論理ネットワーク200の実装は、それぞれホストマシン231〜233内でローカルにL3ルーティング機能を実行するために、MPRE241〜243を使用する。異なるホストマシン内のMPREは、論理ネットワーク200内のVMのための論理L3ルータの機能を共同で実行する。いくつかの実施形態では、LREは、それらのMPREとなるように異なるホストマシン間で複製又はインスタンス化されるデータ構造として実装される。図2の例では、LREは、ホストマシン231〜233内で、MPRE241〜243としてインスタンス化される。
図2の例では、VM222から発信され、VM227に宛てられたネットワークトラフィックのL3ルーティングは、MPRE241によって処理され、MPRE241は、VM222をホストするホストマシン231上でローカルに動作するLREインスタンシエイションである。MPRE241は、ルーティングされたデータパケットを、物理ネットワーク205を介してVM227に送信する前に、L3層ルーティング動作(例えば、リンク層アドレス解決)を、ホスト231内でローカルに実行する。これは、外部の共有L3ルータなしで行われる。同様に、VM225から発信される、VM226宛のネットワークトラフィックのL3ルーティングは、MPRE242によって処理され、MPRE242は、VM225をホストするホストマシン232上でローカルに動作するLREインスタンシエイションである。MPRE242は、L3層ルーティング動作を、ホスト232内でローカルに実行し、ルーティングされたデータパケットを、同様にホスト232によってホストされるVM226に直接送信する。したがって、2つのVM225及び226間のトラフィックは、物理ネットワーク205又は外部ルータを介して送信される必要はない。
本発明のいくつかのより詳細な実施形態を、以下に説明する。セクションIは、LREベースのMPREを実装するVDR及びホストのアーキテクチャを説明する。セクションIIは、パケット処理のためのVDRの様々な使用を説明する。セクションIIIは、VDRの制御及び構成を説明する。最後に、セクションIVは、本発明のいくつかの実施形態が実装される電子システムを説明する。
I.VDRのアーキテクチャ
いくつかの実施形態では、LREは、仮想化ソフトウェア(例えば、ハイパーバイザ、仮想マシンモニタ、など)内で動作し、仮想化ソフトウェアは、(例えば、マルチテナントデータセンタ内の)1つ又は複数のVMをホストするホストマシン上で動作する。仮想化ソフトウェアは、VMの動作、並びに、ホストマシンの物理リソース及びネットワークリソースへのそれらのアクセスを管理し、LREのローカルインスタンシエイションは、ホストマシン内で、そのローカルMPREとして動作する。いくつかの実施形態について、図3は、LREのMPREを含む仮想化ソフトウェア305を実行するホストマシン300を示す。ホストマシンは、例えば、物理ネットワーク390を介して他の同様のホストマシンに接続する。この物理ネットワーク390は、いくつかの実施形態では、様々な物理スイッチ及びルータを含むことができる。
図示のように、ホストマシン300は、物理NIC(PNIC)395を介して物理ネットワーク390へのアクセスを有する。ホストマシン300は、また、仮想化ソフトウェア305を実行し、VM311〜314をホストする。仮想化ソフトウェア305は、ホストされるVMと、物理NIC395(並びに、プロセッサ及びメモリのような他の物理リソース)との間のインタフェースとして機能する。VMの各々は、仮想化ソフトウェア305を介してネットワークにアクセスするための仮想NIC(VNIC)を含む。VM内の各VNICは、VM及び仮想化ソフトウェア305間のパケットの交換に関与する。いくつかの実施形態では、VNICは、仮想NICエミュレータによって実装される物理NICのソフトウェア抽象化である。
仮想化ソフトウェア305は、VM311〜314の動作を管理し、(いくつかの実施形態では、VMが接続する論理ネットワークを実装することによって)物理ネットワークへのVMのアクセスを管理するためのいくつかの構成要素を含む。図示のように、仮想化ソフトウェアは、MPSE320、MPRE330、コントローラエージェント340、VTEP350、及び、アップリンクパイプライン370のセットを含む、様々な構成要素を含む。
コントローラエージェント340は、コントローラ、又はコントローラのクラスタから、制御プレーンメッセージを受信する。いくつかの実施形態では、これらの制御プレーンメッセージは、(MPSE320及びMPRE330のような)仮想化ソフトウェアの様々な構成要素、並びに/又は仮想マシンを構成するための構成データを含む。図3に示す例では、コントローラエージェント340は、コントローラクラスタ360から物理ネットワーク390からの制御プレーンメッセージを受信し、受信した構成データを、MPSE320を経由せずに、制御チャネルを介してMPRE330に提供する。しかしながら、いくつかの実施形態では、コントローラエージェント340は、物理ネットワーク390とは独立した直接データコンジット(図示せず)から制御プレーンメッセージを受信する。いくつかの他の実施形態では、コントローラエージェントは、MPSE320から制御プレーンメッセージを受信し、構成データを、MPSE320を介してルータ330に転送する。仮想化ソフトウェアのコントローラエージェント及び構成を、以下のセクションIIIでさらに説明する。
VTEP(VXLANトンネルエンドポイント)350は、ホスト300が、論理ネットワークトラフィック(例えば、VXLANトラフィック)のためのトンネルエンドポイントとして機能することを可能にする。VXLANは、オーバレイネットワークカプセル化プロトコルである。VXLANカプセル化によって作成されるオーバレイネットワークは、時には、VXLANネットワーク、又は単にVXLANと呼ばれる。ホスト300上のVMが、同じVXLANネットワーク内だが異なるホスト上の別のVMにデータパケット(例えば、イーサネット(登録商標)フレーム)を送信する場合、VTEPは、パケットを物理ネットワークに送信する前に、VXLANネットワークのVNI及びVTEPのネットワークアドレスを使用して、データパケットをカプセル化することになる。パケットは、物理ネットワークを介して宛先ホストにトンネリングされる(すなわち、カプセル化は、介在するネットワーク要素に対して、基になるパケットを透明にする)。宛先ホストでのVTEPは、パケットのカプセル化を解除し、元の内部のデータパケットのみを宛先VMに転送する。いくつかの実施形態では、VTEPモジュールは、VXLANカプセル化のためのコントローラインタフェースとしてのみ機能し、VXLANパケットのカプセル化及びカプセル化解除は、アップリンクモジュール370で成し遂げられる。
MPSE320は、物理ネットワーク390をインタフェースする物理NIC395との間で、ネットワークデータを配信する。MPSEは、また、物理NICをVM311〜314、MPRE330、及びコントローラエージェント340と通信可能に相互接続するいくつかの仮想ポート(vPort)を含む。各仮想ポートは、いくつかの実施形態では、ユニークなL2MACアドレスと関連付けられる。MPSEは、その仮想ポートに接続された任意の2つのネットワーク要素間のL2リンク層パケット転送を実行する。MPSEは、また、その仮想ポートの任意のものに接続された任意のネットワーク要素と、物理ネットワーク390上の到達可能なL2ネットワーク要素(例えば、別のホスト上で動作する別のVM)との間のL2リンク層パケット転送を実行する。いくつかの実施形態では、MPSEは、論理スイッチング要素(LSE)のローカルインスタンシエイションを実装し、LSEは、異なるホストマシン間で動作し、同じホストマシン上又は異なるホストマシン上のVM間のL2パケットスイッチングを実行することができ、又は、MPSEは、いくつかの論理ネットワークのためのいくつかのこのようなLSEを実装する。
MPRE330は、MPSE320上の仮想ポートから受信したデータパケットに、(例えば、L3IPアドレスからL2MACアドレスへの解決を実行することによって)L3ルーティングを実行する。それぞれのルーティングされたデータパケットは、次に、解決されたL2MACアドレスにしたがってその宛先に転送されるように、MPSE320に送り返される。この宛先は、MPSE320の仮想ポートに接続された別のVM、又は、物理ネットワーク390上の到達可能なL2ネットワーク要素(例えば、別のホスト上で動作する別のVM、物理的な非仮想化マシン、など)であってよい。
上述したように、いくつかの実施形態では、MPREは、論理ルーティング要素(LRE)のローカルインスタンシエイションであり、LREは、異なるホストマシン間で動作し、同じホストマシン上又は異なるホストマシン上のVM間のL3パケット転送を実行することができる。いくつかの実施形態では、ホストマシンは、単一のMPSEに接続された複数のMPREを有することができ、ホストマシン内の各MPREは、異なるLREを実装する。MPRE及びMPSEは、MPRE及びMPSEが、いくつかの実施形態ではソフトウェアで実装されているとしても、「論理」ルーティング/スイッチング要素と区別するために、「物理」ルーティング/スイッチング要素と呼ばれる。いくつかの実施形態では、MPREは、「ソフトウェアルータ」と呼ばれ、MPSEは、「ソフトウェアスイッチ」と呼ばれる。いくつかの実施形態では、LRE及びLSEは、総じて、論理転送要素(LFE)と呼ばれ、MPRE及びMPSEは、総じて、管理される物理転送要素(MPFE)と呼ばれる。
いくつかの実施形態では、MPRE330は、1つ又は複数の論理インタフェース(LIF)を含み、各LIFは、ネットワークの特定のセグメントに対するインタフェースとして機能する。いくつかの実施形態では、各LIFは、それ自体のIPアドレスによってアドレス指定可能であり、ネットワークのその特定のセグメントのネットワークノード(例えば、VM)のためのデフォルトゲートウェイ又はARPプロキシとして機能する。以下に詳細に説明するように、いくつかの実施形態では、異なるホストマシン内のMPREのすべては、同じ「仮想」MACアドレスによってアドレス指定可能であり、各MPREには、どのホストマシンでMPRE動作を行うのかを示すために、「物理」MACアドレスも割り当てられる。
アップリンクモジュール370は、MPSE320及び物理NIC395間でデータを中継する。アップリンクモジュール370は、それぞれ動作のいくつかを実行する出口チェーン及び入口チェーンを含む。これらの動作のいくつかは、MPRE330のための前処理及び/又は後処理動作である。アップリンクモジュール370の動作を、図14〜15を参照して以下にさらに説明する。
図3によって示すように、仮想化ソフトウェア305は、複数の異なるLREからの複数のMPREを有する。マルチテナント環境では、ホストマシンは、複数の異なるユーザ又はテナントからの(すなわち、異なる論理ネットワークに接続された)仮想マシンを動作させることができる。いくつかの実施形態では、各ユーザ又はテナントは、そのL3ルーティングを処理するための、ホスト内の対応するMPREインスタンシエイションを有する。いくつかの実施形態では、異なるMPREが、異なるテナントに属するにもかかわらず、それらは、すべて、MPSE320上の同じvPort、したがって同じL2MACアドレスを共有する。いくつかの他の実施形態では、異なるテナントに属するそれぞれの異なるMPREは、MPSEに対するそれ自体のポートを有する。
MPSE320及びMPRE330は、データパケットが、(異なるテナントのVMとして、同じ論理ネットワークに接続されたVMが、互いに分離される限り)外部の物理ネットワーク390を介して送信されることなく、VM311〜314間で転送されることを可能にする。
図4は、MPSE320によるL2転送動作を示す。「1」とラベル付けされた動作は、完全にホストマシン300内で生じる、VM311とVM312の間のネットワークトラフィックを表す。これは、VM313と、別のホストマシン上の別のVMとの間のネットワークトラフィックを表す、「2」とラベル付けされた動作と対比される。他のホストマシンに到達するために、MPSE320は、NIC395を介して物理ネットワーク390上にパケットを送信する。
図5a〜bは、MPSE320と協働するMPRE330によるL3ルーティング動作を示す。MPRE330は、関連するMACアドレスを有し、VM311〜314の任意のものからL2レベルトラフィックを受信することができる。図5aは、その宛先がMPRE330と同じホスト内のパケットのための第1のL3ルーティング動作を示す。「1」とラベル付けされた動作では、VM312は、MPREのMACアドレスを使用することによって、データパケットをMPRE330に送信する。「2」とラベル付けされた動作では、MPRE330は、その宛先L3レベルIPアドレスをL2レベル宛先MACアドレスに解決することによって、受信したデータパケットにL3ルーティング動作を実行する。これは、以下に詳細に説明するように、アドレス解決プロトコル(ARP)要求を送信することをMPRE330に要求する可能性がある。ルーティングされたパケットは、次に、「3」とラベル付けされた動作でMPSE320に送り返される。宛先MACアドレスは、ホストマシン300内のVM(すなわち、VM311)に対するものであるため、動作「3」でのMPSE320は、ルーティングされたパケットを、パケットが決して物理ネットワーク390に到達することなく、宛先VMに直接転送する。
図5bは、その宛先が、物理ネットワークによってのみ到達することができるリモートホスト内にあるパケットのための第2のL3ルーティング動作を示す。動作「4」及び「5」は、「1」及び「2」の類似の動作であり、その間、VM312は、データパケットをMPRE330に送信し、MPRE330は、受信したデータパケットにL3ルーティング動作(複数可)を実行し、ルーティングされたパケットをMPSE320(再び、ことによると、宛先IPアドレスをMACアドレスに解決するために、ARP要求を送信する)に送り返す。動作「6」の間、MPSE320は、ルーティングされたパケットを、宛先のL2MACアドレスに基づいて、物理NIC395を介して物理ネットワーク外に送信する。
図5a〜bは、MPREと同じホストマシン内のVMのためのL3ルーティング動作を示す。いくつかの実施形態では、MPREは、MPREのホストマシン外のエンティティのためのL3ルーティング動作を実行するためにも使用されてよい。例えば、いくつかの実施形態では、ホストマシンのMPREは、それ自体のMPREを持たない別のホストマシンのためのL3ルーティングを実行するための「指定されたインスタンス」として機能することができる。「指定されたインスタンス」として機能するMPREの例を、以下のセクションII.Cでさらに説明する。
図6a〜bは、物理ネットワーク390からホスト300に入るパケットのための、MPRE330によって実行されるL3ルーティング動作を示す。それ自体のMPREも動作させるホスト上のVMから送信されるパケットは、MPREによってルーティングされていることになるが、パケットは、それ自体はVDR MPREを動作させない他のホストからVM311〜314に送信されてもよい。図6aは、動作「1」〜「3」での、物理ネットワークから受信され、ホスト300内の仮想マシンに送信されるパケットのためのルーティング動作を示す。動作「1」では、外部のエンティティが、MPREのMACアドレスを指定することによって、物理ネットワークを介して、MPRE330へのMPSE320にパケットを送信する。「2」とラベル付けされた動作では、MPRE330は、その宛先L3レベルIPアドレスをL2レベル宛先MACアドレスに解決することによって、受信したデータパケットにL3ルーティング動作を実行する。ルーティングされたパケットは、次に、「3」とラベル付けされた動作で、MPSE320を介して宛先仮想マシンに送信される。
図6bは、動作「4」〜「6」での、外部のエンティティから別の外部のエンティティ(例えば、別のホストマシン内の仮想マシン)に送信されるパケットのためのルーティング動作を示す。動作「4」及び「5」は、「1」及び「2」の類似の動作であり、その間、MPRE330は、物理ネットワーク及びMPSE320からパケットを受信し、受信したデータパケットにL3ルーティング動作を実行する。動作「6」では、MPRE330は、MPSE320にデータパケットを送り返し、MPSE320は、解決されたMACアドレスに基づいて、別のホストマシン内の別の仮想マシンにパケットを送信する。以下に説明するように、これは、MPRE330が、LREを動作させない外部のホストとの通信のためのLREの指定されたインスタンシエイションである場合、生じる可能性がある。
いくつかの実施形態では、ホストマシン300は、論理ネットワークをサポートすることができるネットワーク仮想化インフラストラクチャを形成するための物理ネットワークによって相互接続された多くのホストマシンのうちの1つである。このようなネットワーク仮想化インフラストラクチャは、1つ又は複数のユーザ指定された論理ネットワークを同時に実装することによって、複数のテナントをサポートすることができる。このような論理ネットワークは、仮想マシン間のL3レベルルーティングを実行するための1つ又は複数の論理ルータを含むことができる。いくつかの実施形態では、論理ルータは、複数のホストマシン間でインスタンス化されたMPREによって、集団的に実装される。
図7は、異なるホストマシンにわたってMPREによって実装される論理ルータを有する論理ネットワーク701及び702を概念的に示す。論理ネットワーク701及び702は、物理ネットワークによって相互接続されたいくつかのホストマシンを含むネットワーク仮想化インフラストラクチャ上に同時に実装される。図に示すように、第1の論理ネットワーク701は、テナントXのためのものであり、第2の論理ネットワーク702は、テナントYのためのものである。各テナントの論理ネットワークは、いくつかの仮想マシンを含む。テナントXの仮想マシンは、セグメントA、B、C、及びDに分割される。テナントYの仮想マシンは、セグメントE、F、G、及びHに分割される。いくつかの実施形態では、セグメント内の仮想マシンは、論理スイッチ上のL2リンク層プロトコルを使用して互いに通信することができる。いくつかの実施形態では、少なくともいくつかのセグメントは、VXLANネットワークのようなカプセル化オーバレイネットワークである。いくつかの実施形態では、セグメントの各々は、異なるIPサブネットを形成する。
各論理ネットワークは、それ自体の論理ルータを有する。テナントXのための論理ネットワーク701は、セグメントA、B、C、及びD間のルーティングのための論理ルータとして、LRE711を有する。テナントYのための論理ネットワーク702は、セグメントE、F、G、及びH間のルーティングのための論理ルータとして、LRE712を有する。各論理ルータは、異なるホストマシン間でインスタンス化されたMPREによって、ネットワーク仮想化インフラストラクチャ内に実装される。LRE711内のいくつかのMPREインスタンシエイションは、LRE712内のいくつかのMPREインスタンシエイションと同じホストマシンで動作している。
各ネットワークセグメントは、論理ルータに対するそれ自体の論理インタフェースを有し、各論理ルータは、論理インタフェースのそれ自体のセットを有する。図示のように、論理ルータ711は、それぞれセグメントA、B、C、及びDのための論理インタフェースLIF A、LIF B、LIF C、及びLIF Dを有し、論理ルータ712は、それぞれセグメントE、F、G、及びHのための論理インタフェースLIF E、LIF F、LIF G、及びLIF Hを有する。各論理インタフェースは、ネットワーク仮想化インフラストラクチャ内でユニークなそれ自体の識別子(例えば、IPアドレス、又はオーバレイネットワーク識別子)である。結果として、テナントXのネットワークトラフィックを、テナントYのネットワークトラフィックから完全に分離することができる。
図8は、ネットワーク仮想化インフラストラクチャのホストマシン内の論理ルータの物理的実装を示す。具体的には、図は、ホストマシン801及び802内の論理ネットワーク701及び702の(部分的)実装を示す。図示のように、ホストマシン801は、仮想マシン811〜815をホストしており、ホストマシン802は、仮想マシン821〜826をホストしている。これらの中で、仮想マシン811〜812及び821〜823は、テナントXの仮想マシンであり、仮想マシン813〜816及び824〜826は、テナントYの仮想マシンである。
各ホストマシンは、異なる2つのテナントのための2つのMPREを含む。ホストマシン801は、それぞれテナントX及びYのためのMPRE841及び842を有する。ホストマシン802は、それぞれテナントX及びYのためのMPRE843及び844を有する。ホスト801は、仮想マシン811〜816及びMPRE841〜842間のL2層パケット転送を実行するためのMPSE851を動作させ、ホスト801は、仮想マシン821〜826及びMPRE843〜844間のL2層パケット転送を実行するためのMPSE852を動作している。
各MPREは、そのホストマシン上で動作する仮想マシンとインタフェースするための論理インタフェースのセットを有する。MPRE841及び843は、テナントXのためのMPREであり、それらは、テナントXのネットワークセグメント(すなわち、セグメントA、B、C、及びD)のための論理インタフェースのみを有することができ、テナントYのMPRE842及び844は、テナントYのネットワークセグメント(すなわち、セグメントE、F、G、及びH)のための論理インタフェースのみを有することができる。各論理インタフェースは、ネットワークIPアドレスと関連付けられる。MPREに取り付けられた論理インタフェースのIPアドレスは、MPREを、そのローカルホスト上で動作するVMによってアクセス可能にすることを可能にする。例えば、VM811は、ホスト801上で動作するセグメントAの仮想マシンであり、1.1.1.253であるLIF AのIPアドレスを使用することによって、そのL3ルータとしてMPRE841を使用する。いくつかの実施形態では、MPREは、非アクティブであるように構成されたLIFを含むことができる。例えば、MPRE841のLIF Dは、ホスト801が、セグメントD内のどのVMも動作させないため、非アクティブである。すなわち、いくつかの実施形態では、特定のLREのための各MPREは、LREの論理インタフェースのすべてを使用して構成されるが、LREの異なるローカルインスタンシエイション(すなわち、MPRE)は、ローカルLREインスタンシエイションを有するホストマシン上で動作するVMに基づいて非アクティブな異なるLIFを有することができる。
いくつかの実施形態では、同じセグメントのためのLIFが、これらのLIFが異なるホスト内の異なるMPREに取り付けられている場合でも、同じIPアドレスを有することは、注目に値する。例えば、ホスト801上のMPRE842は、セグメントEのための論理インタフェース(LIF E)を有し、ホスト802上のMPRE844もそうである。MPRE842のLIF Eは、MPRE844のLIF Eと同じIPアドレス4.1.1.253を共有する。すなわち、VM814(ホスト801上で動作するセグメントE内のVM)及びVM824(ホスト802上で動作するセグメントE内のVM)の両方は、それらの個々のMPREにアクセスするために、同じIPアドレス4.1.1.253を使用する。
上述したように、いくつかの実施形態では、同じホストマシン上で動作する異なるMPREは、MPSE上の同じポートを共有し、これは、同じホスト上で動作するすべてのMPREが、L2MACアドレスを共有することを意味する。いくつかの実施形態では、データパケットを、異なるテナント及び異なるデータネットワークセグメントから分離するために、論理インタフェースのユニークなIPアドレスが使用される。いくつかの実施形態では、異なるネットワークセグメントからのデータパケットを、異なる論理インタフェースに向けるために、他の識別メカニズムが使用される。いくつかの実施形態は、パケットを異なるセグメントから分離するために、異なるセグメントのためのユニークな識別子を使用する。サブネットであるセグメントについて、いくつかの実施形態は、パケットが正しいサブネットからのものであるかどうかを確認するために、パケット内のIPアドレスを使用する。オーバレイネットワークに対応するセグメントについて、いくつかの実施形態は、データパケットを、その対応する論理インタフェースに向けるために、ネットワークセグメント識別子を使用する。いくつかの実施形態では、ネットワークセグメント識別子は、論理ネットワークのセグメントであるオーバレイネットワークの識別子(例えば、VNI、VXLAN ID、又はVLANタグ若しくはID)である。いくつかの実施形態では、論理ネットワークの各セグメントは、そのタイプに関係なく、セグメントの識別子としてVNIが割り当てられる。
図9は、異なるセグメントの仮想マシンからのデータパケットが、どのように、ホスト801内の異なる論理インタフェースの方に向けられるのかを示す。図示のように、VM811〜816は、MPSE851の異なるポートに接続され、テナントXのMPRE841、及び、テナントYのMPRE842は、MACアドレス「01:23:45:67:89:ab」(この説明のために、「VMAC」と呼ぶ)を有するポートに接続される。セグメントAのVM811からのパケット901、及び、セグメントGのVM815からのパケット902は、MPSE851に送信される。MPSE851は、今度は、パケット901及び902を、両方のパケットのための宛先MACアドレス「VMAC」に基づいて、MPRE841及び842の仮想ポートに向ける。パケット901は、セグメントAのためのVNI(「VNI A」)を担持し、パケット902は、セグメントGのためのVNI(「VNI G」)を担持する。MPRE841の論理インタフェース「LIF A」は、パケット901を、そのネットワークセグメント識別子「VNI A」に基づいて受け入れ、MPRE842の論理インタフェース「LIF G」は、パケット902を、そのネットワークセグメント識別子「VNI G」に基づいて受け入れる。テナントは、同じネットワークセグメントを共有せず、したがって、VNIを共有しないため、異なるテナントからのデータパケットは、互いに安全に分離される。
この図は、パケットを正しい論理ルータ及び論理ルータインターフェイスに分離するために、パケットのVNI(ネットワーク識別子タグ)を使用することを示しているが、異なる実施形態は、他の識別子を使用することができる。例えば、いくつかの実施形態は、(パケットが、送信元VMと同じネットワークプレフィックスを有するLIFを介して送信されることを保証するために)パケットの送信元IPアドレスを使用し、又は、送信元IP及びネットワーク識別子タグの組み合わせを使用する。
いくつかの実施形態について、図10は、ホストマシン内で動作する例示的なMPREインスタンシエイション1000のブロック図を示す。図示のように、MPRE1000は、仮想ポート1053でMPSE1050に接続される。MPSE1050は、MPRE1000と同じホスト内で動作する仮想マシンに接続され、並びに、アップリンクモジュール1070及び物理NIC1090を介して物理ネットワークに接続される。MPRE1000は、データリンクモジュール1010及びルーティングプロセッサ1005、論理インタフェースデータストレージ1035、ルックアップテーブルストレージ1040、並びに、構成データストレージ1045を含む。ルーティングプロセッサ1005は、入口パイプライン1020、出口パイプライン1025、シーケンサ1030を含む。
データリンクモジュール1010は、MPRE1000のためのMPSE1050とのリンク層(L2)インタフェースである。これは、ポート1053に割り当てられたMACアドレス(図示の例では、「01:23:45:67:89:ab」)にアドレスされた入力データパケットを受け入れる。これは、また、出力データパケットをMPSE
1050に送信する。いくつかの実施形態では、データリンクモジュールは、ブロードキャストアドレス(「ff.ff.ff.ff.ff.ff」)及び/又はマルチキャストアドレスを有するデータパケットも受け入れる。
入口パイプライン1020は、入力データパケットを、それらがルーティングシーケンサ1030によって順次に処理される前にキューアップするためのものである。いくつかの実施形態では、入口パイプラインは、入力データパケットに異なる処理動作を実行するいくつかのパイプラインステージも含む。いくつかの実施形態では、これらの入口処理動作は、(アクセス制御リストACLにしたがう)入口アクセス制御、及び、送信元ネットワークアドレス変換(NAT)を含む。いくつかの実施形態では、これらの動作の少なくともいくつかは、ルックアップテーブルストレージ1040及び論理インタフェースデータストレージ1035に格納されたデータに基づくルーティング又はブリッジング動作である。いくつかの実施形態では、入口パイプラインは、入力パケットのためのインバウンドLIFとして識別される論理インタフェースのための指定されたデータにしたがってアクションを実行する。
出口パイプライン1025は、ルーティングシーケンサ1030によって生成された出力データパケットを、それらがデータリンクモジュール1010によって、MPSE1050を介して送出される前にキューアップするためのものである。いくつかの実施形態では、出口パイプラインは、出力データパケットに異なる処理動作を実行するいくつかのパイプラインステージも含む。いくつかの実施形態では、これらの出口処理動作は、(アクセス制御リストACLにしたがう)出口アクセス制御、及び、宛先ネットワークアドレス変換(NAT)を含む。いくつかの実施形態では、これらの動作の少なくともいくつかは、ルックアップテーブルストレージ1040及び論理インタフェースデータストレージ1035に格納されたデータに基づくルーティング又はブリッジング動作である。いくつかの実施形態では、出口パイプラインは、出力パケットのためのアウトバウンドLIFとして識別される論理インタフェースのための指定されたデータにしたがってアクションを実行する。
シーケンサ1030は、入口パイプライン1020及び出口パイプライン1025間の連続した動作を実行する。いくつかの実施形態では、ルーティングシーケンサは、ARP動作及びブリッジング動作のような順次動作を実行する。いくつかの実施形態では、ルーティングシーケンサは、ARPクエリ及び応答を生成するように、必要なときに新しいパケットを作成し、ネットワークに注入する。これは、前処理されたデータパケットを入口パイプライン1020から取得し、後処理のための出口パイクラインに出力パケットを格納する。
いくつかの実施形態のルーティングプロセッサ1005は、最初に入力データパケットを様々な論理インタフェースに分類することによって、そのルーティング決定を行う。ルーティングプロセッサ1005は、また、各論理インタフェースの現在の状態を更新し、論理インタフェースデータストレージ1035に格納する。例えば、ルーティングプロセッサ1005は、データパケットが、第2の論理インタフェースに取り付けられた第2のネットワークセグメント内の第2の仮想マシンから、第3の論理インタフェースに取り付けられた第3のネットワークセグメント内の第3の仮想マシンに進む間、論理インタフェースの現在の状態に基づいて、第1の論理インタフェースに取り付けられた第1のネットワークセグメント内の第1の仮想マシンへのARP応答を生成する。第1、第2、及び第3の論理インタフェースの現在の状態は、次に、それに応じて更新され、論理インタフェースデータストレージ1035に格納される。いくつかの実施形態では、ルーティングプロセッサ1005は、また、特定の論理インタフェースの代わりに、再び、その特定の論理インタフェースの現在の状態に基づいて、(例えば、ARP要求のための)新しいデータパケットを生成する。
ルーティングプロセッサ1005は、また、ルックアップテーブルストレージ1040の内容に基づいて、そのルーティング決定を行う。いくつかの実施形態では、ルックアップテーブルストレージ1040は、(例えば、ネットワーク層IPアドレスからリンク層MACアドレスへの)L3及びL2アドレス解決のための解決テーブル(又は、ARPテーブル)を格納する。いくつかの実施形態では、ルーティングシーケンサは、(例えば、あるIPサブネットから別のIPサブネットへの)L3レベルルーティングを実行するだけでなく、同じIPサブネット内で動作する(VXLANネットワーク及びVLANネットワーク間のような)異なるオーバレイネットワーク間のブリッジングも実行する。これらの実施形態のいくつかでは、ルックアップテーブルストレージ1040は、ネットワークセグメント識別子(VNI)をMACアドレスと結びつけるために必要なブリッジングテーブルを格納する。ルーティングプロセッサ1005は、また、入力パケットから学習することによって、ブリッジングテーブル及びARPテーブル内のエントリを更新する。
MPRE1000は、構成データストレージ1045も含む。ストレージ1045は、MPRE1000の内部の様々なモジュールを構成するためのデータを格納する。例えば、いくつかの実施形態では、ストレージ1045内の構成データは、いくつかの論理インタフェース、並びに、各論理インタフェースの(そのIPアドレス、関連するネットワークセグメント、アクティブ/非アクティブ状態、LIFタイプ、などのような)パラメータを指定する。いくつかの実施形態では、構成データは、MPRE1000をアドレス指定するために同じホストマシン内の仮想マシンによって使用される仮想MACアドレス(VMAC)、及び、MPRE1000をアドレス指定するために他のホストマシンによって使用されるその物理MACアドレス(PMAC)のような、他のパラメータも指定する。いくつかの実施形態では、構成データは、ACL、NAT、及び/又はファイアウォール動作のためのデータも含む。いくつかの実施形態では、構成データストレージ1000内のデータは、(図3のコントローラエージェント340のような)ホストマシン内のコントローラエージェントを介して、コントローラクラスタから受信される。構成データ及び制御プレーン動作を、以下のセクションIIIでさらに説明する。
図11は、MPSEからのデータパケットを処理する際にMPREによって実行されるいくつかの実施形態のプロセス1100を概念的に示す。いくつかの実施形態では、プロセス1100は、ルーティングプロセッサ1005によって実行される。プロセス1100は、MPREが、MPSEからデータパケットを受信すると、開始する。プロセスは、(1110で)例えば、ネットワークセグメント識別子(例えば、VNI)に基づいて、インバウンドデータパケットのための論理インタフェース(インバウンドLIF)を識別する。
プロセスは、次に、(1120で)インバウンドLIFが、ブリッジングのための論理インタフェース(ブリッジLIF)、又はL3ルーティングを実行するための論理インタフェース(ルーティングLIFの)のどちらであるかを判定する。いくつかの実施形態では、論理インタフェースは、ルーティングLIF又はブリッジLIFのいずれかとして構成される。識別されたLIFがブリッジLIFである場合、プロセスは、1123に進む。識別されたLIFがルーティングLIFである場合、プロセスは、1135に進む。
1123では、プロセスは、送信元MACと、入力パケットのネットワークセグメント識別子(例えば、VNI)との間のペアリングを学習する。送信元MACは、VNIによって識別されるネットワークセグメント内にあることが確実であるため、この情報は、その宛先アドレスとして同じMACアドレスを有するパケットをブリッジングするために有用である。この情報は、いくつかの実施形態では、このMACアドレスとそのVNIとの間のペアリングを提供するために、ブリッジテーブルに格納される。
次に、プロセスは、(1125で)入力データパケット内の宛先MACが、ブリッジングを必要とするMACであるかどうかを判定する。ブリッジングを必要とする宛先MACは、送信元ネットワークセグメント内の既知の宛先を持たないMACであり、(例えば、送信元VNIと同じIPサブネット上にあるため)ルーティングされることができない。宛先MACがブリッジングを要求する場合、プロセスは1130に進み、そうでない場合、プロセスは終了する。
1130では、プロセスは、ブリッジングテーブルにしたがって、未知の宛先MACをVNIと結びつけることによって、ブリッジング動作を実行する。いくつかの実施形態では、このようなエントリを見つけることができない場合、プロセスは、未知の宛先MACのための一致するVNIを見つけるために、MPREに取り付けられたすべての他のブリッジLIFをフラッディングする。いくつかの実施形態では、プロセスは、ファイアウォールがこのブリッジLIFのために有効になっている場合、ブリッジングを実行しないことになる。ブリッジング動作を、以下のセクションII.Dでさらに説明する。いくつかの実施形態では、動作1130は、シーケンサ1030のようなシーケンシャルモジュールによって実行される一連の動作である。ブリッジングを実行した後、プロセスは、1150に進む。
1135では、プロセスは、入力データパケット内の宛先MACが、MPREにアドレスされているかどうかを判定する。いくつかの実施形態では、すべてのMPREは、宛先としての一般的(包括的、generic)な仮想MACアドレス(VMAC)に応答する。いくつかの実施形態では、MPRE内の個々のLIFは、宛先としてのそれら自身のLIF MAC(LMAC)に応答する。宛先MACアドレスが、MPRE(又は、LIF)のためのものである場合、プロセスは、1140に進む。そうでない場合、プロセス1100は終了する。
1140では、プロセスは、入力データパケット内の宛先IPアドレスを解決する(1140)。いくつかの実施形態では、MPREは、最初に、ARPテーブル内のIPアドレスをルックアップすることによって、IPアドレスをローカルに解決することを試みる。一致するエントリがARPテーブル内に見つからない場合、プロセスは、ARPクエリを開始し、宛先MACアドレスを取得することになる。ARP動作を、以下のセクションII.Bでさらに説明する。いくつかの実施形態では、動作1140は、シーケンサ1030のようなシーケンシャルモジュールによって実行される一連の動作である。
プロセスは、次に、入力パケット(又は、この時点でより適切には、出力パケット)のためのアウトバウンドLIFを識別する(1150)。ブリッジLIFであるインバウンドLIFを通って来るデータパケットに関して、アウトバウンドLIFは、ブリッジ結合によって提供されるVNIによって識別されるブリッジLIFである。ルーティングLIFであるインバウンドLIFを通って来るデータパケットに関して、いくつかの実施形態は、宛先IPアドレスを調べることよって、アウトバウンドLIFを識別する。いくつかの実施形態では、アウトバウンドLIFは、ARP解決テーブルによって提供されるVNIによって識別されるルーティングLIFである。
アウトバウンドLIFを識別した後、プロセスは、アウトバウンドLIFを使用することによって、出力パケットを正しい宛先セグメントに送信する(1160)。いくつかの実施形態では、アウトバウンドLIFは、例えば、出力パケットに、宛先セグメントのネットワークセグメント識別子をタグ付けすることによって、宛先セグメントのためのパケットを準備する。次に、プロセス1100は、終了する。
II.VDRパケット処理動作
A.ローカル及びリモートにMPREにアクセスする
前述のように、セクションIで上述したLREは、仮想分散型ルータ(VDR)である。これは、MPREと異なるホスト内のLREの異なるインスタンシエイション間で、ルーティング動作(L3層ルーティングか、ブリッジングかどうかにかかわらす)を分散する。いくつかの実施形態では、VDRを用いる論理ネットワークは、MPREのすべてを仮想マシンのすべてに同じように見えるようにすることによって、ネットワークの仮想化をさらに強化する。これらの実施形態のいくつかでは、各MPREは、システム内のMPREのすべてについて同じであるMACアドレス(VMAC)によって、L2データリンク層でアドレス指定可能である。これは、本明細書では仮想MACアドレス(VMAC)と呼ばれる。VMACは、特定の論理ネットワーク内のMPREのすべてが、仮想マシン及び論理ネットワークのユーザ(例えば、ネットワーク管理者)に1つの連続した論理ルータのように見られることを可能にする。
しかしながら、いくつかの実施形態では、MPREは、互いに、他のホストマシンと、又は、他のホストマシン内のネットワーク要素(例えば、他のホストマシン内のMPRE及び/又はVM)と通信することを必要とする。これらの実施形態のいくつかでは、VMACに加えて、各MPREは、物理ネットワーク上の他のホストマシンからの物理MACアドレス(PMAC)によってユニークにアドレス指定可能である。いくつかの実施形態では、MPREをアドレス指定するために使用されるこのユニークなPMACアドレスは、MPREを動作させるホストマシンに割り当てられるプロパティである。いくつかの実施形態は、MPREは、そのホストマシンのPMACによって、それ自体の論理ネットワーク内でユニークにアドレス指定可能であるため、ホストマシンのこのユニークなPMACを、MPREのユニークなPMACと呼ぶ。いくつかの実施形態では、異なるテナントのための異なる論理ネットワークは、ホストマシン内で互いに安全に分離されるため、同じホストマシン上で動作する異なるテナントのための異なるMPREは、すべて、(他のホストマシンからアクセス可能となるために)そのホストマシンの同じPMACアドレスを使用することができる。いくつかの実施形態では、各MPREがそのホストマシンのPMACと関連付けられるだけでなく、各論理インタフェースが、LMACと呼ばれるそれ自体のユニークなMACアドレスと関連付けられる。
いくつかの実施形態では、MPREを離れる各パケットは、送信元アドレスとしてMPREのVMACを有するが、ホストマシンは、パケットが、PNICに入り、物理ネットワークのためのホストを離れる前に、送信元アドレスを、ホストマシンのユニークなPMACに変更することになる。いくつかの実施形態では、MPREに入る各パケットは、その宛先アドレスとして、MPREのVMACを持たなければならない。物理ネットワークからホストに到達するパケットについて、ホストは、宛先アドレスがホストマシンのユニークなPMACアドレスである場合、宛先MACアドレスを一般的なVMACに変更することになる。いくつかの実施形態では、ホストマシンのPMACは、そのアップリンクモジュール(例えば、370)のプロパティとして実装され、アップリンクモジュールは、出力パケットの送信元MACアドレスを、一般的なVMACから、そのユニークなPMACに変更し、入力パケットの宛先アドレスを、そのユニークなPMACから、一般的なVMACに変更する。
図12は、いくつかの実施形態に関する、共通VMAC及びユニークなPMACによってアドレス指定可能なMPREを有する論理ネットワーク1200を示す。図示のように、論理ネットワーク1200は、2つの異なるホストマシン1201及び1202を含む。ホストマシン1201は、MPRE1211、MPSE1221、及びいくつかの仮想マシン1231を含む。ホストマシン1202は、MPRE1212、MPSE1222、及びいくつかの仮想マシン1232を含む。2つのホストマシンは、物理ネットワーク1290によって相互接続される。MPSE1222は、PNIC1282及びアップリンクモジュール1242を介して、物理ホストからデータを受信する。
ホスト1201内のMPRE1211は、VMACアドレス12:34:56:78:90:abを使用することによって、VM1231によってアドレス指定可能である。MPRE1211及びMPRE1212が、異なるホストマシン内の(同じLREのための)異なるMPREであっても、ホスト1202内のMPRE1212も、同じVMACアドレス12:34:56:78:90:abを使用することによって、VM1232によってアドレス指定可能である。図示しないが、いくつかの実施形態では、異なるテナントのための異なる論理ネットワーク内のMPREは、同じVMACアドレスを使用することもできる。
MPRE1211及びMPRE1212は、また、他のホストマシン内の他のネットワークエンティティによって、物理ネットワークからのそれ自体のユニークなPMACアドレスによって、それぞれアドレス指定可能である。図示のように、MPRE1211は、それ自体のユニークなPMACアドレス11:11:11:11:11:11(PMAC1)と関連付けられ、MPRE1212は、それ自体のユニークなPMACアドレス22:22:22:22:22:22(PMAC2)と関連付けられる。
図12は、別のホストマシン上のリモートMPREに送信されるデータトラフィックの一例も示す。リモートMPREは、MPREとは異なり、物理ネットワークから入ってくるパケットのための一般的なVMACによって直接アドレスされることができない。リモートホスト内のMPREは、リモートMPREのユニークなPMACアドレスによってのみアドレスされることが可能である。リモートホスト内で動作する仮想化ソフトウェアは、いくつかの実施形態では、L2スイッチングを実行する前に、ユニークなPMACアドレスを一般的なVMACに変更し戻す。
図12は、「1」、「2」、「3」、及び「4」とラベル付けされた4つの動作での、ホスト1201内のMPRE1211からホスト1202内のMPRE1212へのトラフィックを示す。動作「1」では、VM1231は、一般的なVMACアドレスを使用して、パケットをそのMPRE1211に送信する。このパケットは、トラフィックのための意図された宛先に対応する宛先IPアドレス(図示せず)も有することになる。動作「2」では、ホスト1201のMPRE1211は、宛先アドレスとしてMPRE1212のユニークな物理MAC「PMAC2」を使用することによって、ホスト1202のMPRE1212にパケットを送信する。この変換を実行するために、いくつかの実施形態では、MPRE1211は、宛先IPアドレスに対応する宛先MACアドレス(PMAC2)を識別するために、そのARPテーブル内でルックアップしている(又は、ARPを実行している)ことになる。
動作「3」では、データパケットは、その物理NICを介してホスト1202に到達し、アップリンクモジュール1242(ホスト1202上で動作する仮想化ソフトウェアの一部)に到着する。アップリンクモジュール1242は、今度は、MPRE1212のユニークなPMAC(「PMAC2」)を、宛先アドレスとして一般的なVMACに変換する。動作「4」では、データパケットは、MPSE1222に到達し、MPSE1222は、一般的なVMACに基づいて、パケットをMPRE1212に転送する。
図13は、1つのVMから、共通VMAC及びネットワーク1200のためのユニークなPMACを使用する別のVMにルーティングされるL3ネットワークトラフィックの一例を示す。ネットワークトラフィックは、ホストマシン1201内のVM1331から発信される、ホストマシン1202内のVM1332宛のデータパケットである。例示的なルーティングされるL3トラフィックは、「1」〜「4」とラベル付けされた4つの動作に示される。動作「1」の間、リンク層L2アドレス「MAC1」を有するVM1331は、宛先アドレスとしてMPREの共通VMACを使用することによって、データパケットをMPRE1211に送信する。動作「2」の間、MPRE1211は、宛先IPアドレスを、リンク層L2アドレス「MAC2」を有する宛先VMのための宛先MACアドレスに解決することによって、L3レベルルーティングを実行する。MPRE1211は、また、VM1331のMACアドレス「MAC1」を、送信元MACアドレスとしてそれ自体のユニークな物理リンク層アドレス「PMAC1」(11:11:11:11:11:11)に置き換える。動作3では、ルーティングされたパケットは、MPSE1222に到達し、MPSE1222は、宛先MACアドレス「MAC2」にしたがって、データパケットを宛先VM1232に転送する。動作「4」では、データパケットは、宛先仮想マシン1232に到達する。いくつかの実施形態では、VM1332は、標準的な(非ARP)データトラフィックのための送信元MACアドレスを無視するため、ユニークなPMACが送信元アドレスである場合、ユニークなPMAC(この場合、「PMAC1」)を一般的なVMACに変更する必要はない。
上述したように、アップリンクモジュールは、PNICからMPSEへの入力データに前処理を実行し、MPSEからPNICへの出力データに後処理を実行するモジュールである、図14は、(1242のような)アップリンクモジュールによって実行される前処理動作のためのプロセス1400を概念的に示す。いくつかの実施形態では、プロセス1400の動作は、PNICからホストマシンに入る入口パイプラインとして実装される。
プロセスは、(1410で)PNICから(すなわち、外部の物理ネットワークから)パケットを受信すると開始する。プロセスは、データが、VXLAN又はVLANのようなオーバレイネットワークのためのものである場合、(1420で)オーバレイネットワーク処理を実行する。リモートホスト上のVMが、同じVXLANネットワーク内であるがこのホスト上ではないVMにデータパケットを送信する場合、プロセスは、MPSEを介してVMにパケットを転送させる前に、パケットのカプセル化を解除することになる。この動作を実行することによって、アップリンクモジュールは、ホストが、VXLANのためのトンネルエンドポイント(例えば、VTEP)として機能することを可能にする。
次に、プロセスは、(1430で)入力データパケット内の宛先MACが、ユニークな物理MAC(PMAC)であるかどうかを判定する。いくつかの実施形態では、ユニークなPMACアドレスは、特定のホストにデータパケットを導くために使用されるが、(MPSEは、MPREのためのポートを、PMACではなくVMACと関連付けるため)ホストのMPREにパケットを送り込むためには使用され得ない。宛先MACがユニークなPMACである場合、プロセスは1445に進む。そうでない場合、プロセスは1435に進む。
1435では、プロセスは、入力データパケット内の宛先MACが、ブロードキャストMAC(例えば、ff.ff.ff.ff.ff.ff)であるかどうかを判定する。いくつかの実施形態では、ホストは、ブロードキャストMACを受け入れることになるが、いくつかのブロードキャストパケットは、MPSEに接続されたすべてのVMに送信されるのではなく、最初にMPREによって処理されなければならない。宛先MACが、ブロードキャストMACである場合、プロセスは、ブロードキャストパケットがMPREに進む必要があるかどうかを確認するために、1440に進む。そうでない場合、プロセスは、パケットが、宛先MACを変更することなく、MPSEに進むことを可能にするために、1450に進む。
1440では、プロセスは、ブロードキャストMACを有するパケットが、MPREに転送される必要があるかどうかを判定する。いくつかの実施形態では、特定のタイプのブロードキャストメッセージのみが、MPREが関心を持つものであり、これらのタイプのブロードキャストメッセージのみが、そのブロードキャストMACアドレスを一般的なVMACに変更しておく必要がある。例えば、ブロードキャストARPクエリメッセージは、MPREが関心を持つものであり、その宛先MACアドレスをVMACに変更しておくことによって、MPREに転送されることになる。ブロードキャストパケットが、MPREに対する対象である場合、プロセスは1445に進む。そうでない場合、プロセスは1450に進む。
1445では、プロセスは、宛先MAC(PMACか、ブロードキャストかにかかわらず)を一般的なVMACに置き換え、これらの宛先MACを有するパケットがMPREによって処理されることを確実にする。プロセスは、次に、パケットが、変更された宛先MACを有するMPSEに進むことを可能にするために、1450に進む。次に、プロセス1400は終了する。
図15は、アップリンクモジュールによって実行される後処理動作のためのプロセス1500を概念的に示す。いくつかの実施形態では、プロセス1500の動作は、PNICを介してホストマシンから離れるパケットのための出口パイプラインとして実装される。プロセスは、(1510で)MPSEからアップリンクモジュールでパケットを受信すると開始する。プロセスは、次に、(1520で)パケットがリモートホストのためのものであるかどうかを判定する。パケットの宛先アドレスが、ローカルホストマシン内(例えば、MPRE、又はVMの1つ)のポートを示す場合、プロセスは、パケットを無視し、終了する。そうでない場合、プロセスは1530に進む。
1530では、プロセスは、送信元MACアドレスが、一般的なVMACであるかどうか、すなわち、パケットが、MPREからのものであるかどうかを判定する。そうである場合、プロセスは1540に進む。そうでない場合、プロセスは1550に進む。1540では、プロセスは、送信元MACアドレスとして、VMACを、MPREのユニークなPMACに置き換える。これは、パケットの受信側が、そのユニークなPMACアドレスを使用することによって、送信側MPREを正確に識別できることを保証する。
プロセスは、次に、データが、VXLAN又はVLANのようなオーバレイネットワークのためのものである場合、(1550で)オーバレイネットワーク処理を実行する。ホスト上のVMが、同じVXLANネットワーク内だが別のホスト上の別のVMにデータパケットを送信する場合、プロセスは、VXLANネットワークのVNIを使用して物理ネットワークに注入する前に、フエームをカプセル化する。この動作を実行することによって、アップリンクモジュールは、ホストが、VXLANの下のトンネルエンドポイント(VTEP)として機能することを可能にする。次に、プロセスは、(1560で)パケットを物理NICに転送する。次に、プロセス1500は終了する。
B.アドレス解決を実行するためにVDRを使用する
上述したように、各LREは、ネットワークセグメントのそれぞれの中の仮想マシンとインタフェースするための論理インタフェースのセットを有する。いくつかの実施形態では、仮想マシンからみて、ネットワークセグメントの論理インタフェースは、ネットワークセグメント内の仮想マシンのためのデフォルトゲートウェイとしても機能する。LREは各ホストマシン内のMPREを動作させるため、いくつかの実施形態では、(デフォルトゲートウェイのためのARPのような)その論理インタフェースの1つのためのARPクエリを受信するMPREは、クエリを他のホストマシンに転送することなく、クエリにローカルに応答する。
図16は、論理ネットワーク1600内のVDR/LRE MPREの論理インタフェースのためのARPクエリ動作を示す。論理ネットワーク1600は、少なくとも2つのホストマシン1601及び1602間に分散される。ホストマシン1601は、MPRE1611を有し、ホストマシン1602は、MPRE1612を有する。各MPREは、論理ネットワークのセグメントAのための論理インタフェース(LIF A)、及び、セグメントBのための論理インタフェース(LIF B)を有する。(MPRE1611は、LIF A1621及びLIF B1631を有し、MPRE1612は、LIF A1622及びLIF B1632を有する。)ホストマシン1601は、MPRE1611のLIF Aを使用するセグメントA VM1629を有する。ホストマシン1602は、MPRE1612のLIF Bを使用するセグメントB VM1639を有する。
各LIFは、IPアドレスと関連付けられる。しかしながら、図示のように、MPRE1611のLIF A1621、及び、MPRE1612のLIF A1622は、両方とも同じIPアドレス(10.1.1.253)を有する。これは、セグメントA(サブネット10.1.1.x)のデフォルトゲートウェイのIPアドレスである。同様に、MPRE1611のLIF B1631、及び、MPRE1612のLIF B1632は、両方とも同じIPアドレス(10.1.2.253)を有する。これは、セグメントB(サブネット10.1.2.x)のデフォルトゲートウェイのIPアドレスである。
図は、「1」〜「6」とラベル付けされた動作で、VM1629及び1639によって形成される2つのARPクエリを示す。動作「1」では、セグメントAの仮想マシン1629は、そのセグメントのデフォルトゲートウェイのためのARPクエリを作成する。ARPクエリメッセージは、宛先IPアドレスとしてLIF AのIPアドレス(10.1.1.253)を使用し、宛先MACアドレスとしてブロードキャストMACを使用する。動作「2」の間に、LIF A1621は、IPアドレス「10.1.1.253」をすべてのMPREのためのVMACアドレスに解決することによって、ARPクエリに応答する。さらに、LIF A1621は、ARPクエリメッセージを物理ネットワークに渡さない。これは、他のホストマシン内の他のVDR/LRE MPRE上のLIF A(例えば、ホストマシン1602上のLIF A1622)のような、LIF Aと同じIPアドレス「10.1.1.253」を有するネットワーク内の他のエンティティが応答するのを防ぐ。動作「3」では、VM1629は、ARP応答メッセージを受信し、その解決テーブルを更新し、デフォルトゲートウェイのIPアドレスをMACアドレス「VMAC」に解決する。この応答メッセージの宛先MACアドレスは、元の問い合わせ元のMACアドレス(すなわち、VM1629のための「MAC1」)であり、送信元MACアドレスは、MPREの新たに解決されたMACアドレス「VMAC」である。VM1629は、次に、その後に送信するルーティングする必要があるパケットをアドレス指定するために、MPRE1611にその後にアクセスするために、このエントリを、その解決テーブルに格納する。動作「4」、「5」、及び「6」は、動作「1」、「2」、及び「3」の類似した動作であり、MPRE1612のLIF B1632は、ARPクエリメッセージを物理ネットワークに渡すことなく、セグメントB VM1639によるARP要求に応答する。VM1639によるARP要求は、異なるMPRE上の異なるLIFに送信されるが、同じアドレス「VMAC」が、ARP応答で使用される。
仮想マシンが、デフォルトゲートウェイのMACアドレスを一旦知ると、MPREの論理インタフェースをアドレス指定するためにVMACを使用することによって、データパケットを他のネットワークセグメントに送り込むことができる。しかしながら、MPREが、(例えば、宛先仮想マシンのための)宛先IPアドレスが解決される先のリンク層MACアドレスを知らない場合、MPREは、このアドレスを解決する必要がある。いくつかの実施形態では、MPREは、このようなアドレス解決情報を、他のホストマシン内の同じLREの他のMPREから、又は、コントロールクラスタから得ることができる。いくつかの実施形態では、MPREは、そのMACアドレスを決定するために、宛先仮想マシンのネットワークセグメント内で、それ自体のARPクエリを開始することができる。このようなARP要求を行う場合、MPREは、物理ネットワーク上で他のMPREに送信されるパケットのための送信元アドレスとして、一般的なVMACアドレスではなく、それ自体のユニークなPMACアドレスを使用する。
図17は、いくつかの実施形態のMPREが開始したARPクエリを示す。具体的には、図は、MPREが、それ自体のARPクエリを開始するためにそれ自体のPMACアドレスを使用する、論理ネットワーク1700の実装を示す。図示のように、論理ネットワーク1700の実装は、少なくとも2つのホストマシン1701及び1702を含む。ホストマシン1701上にあるのは、セグメントA内のVM1731、セグメントAのための論理インタフェース1721を有するMPRE1711、及び、物理ネットワークからデータを受信するためのアップリンクモジュール1741である。ホストマシン1702上には、セグメントB内のVM1732、セグメントBのための論理インタフェース1722を有するMPRE1712、及び、物理ネットワークからデータを受信するためのアップリンクモジュール1742が存在している。一般的なVMACに加えて、MPRE1711は、ユニークな物理MACアドレス「PMAC1」を有し、MPRE1712は、ユニークな物理MACアドレス「PMAC2」を有する。
「1」〜「8」とラベル付けされた動作では、図は、セグメントB内のVM1732のための、ホストマシン1701からMPRE1711によって開始されたARPクエリを示す。動作「1」の間に、(セグメントA内の)IPアドレス10.1.1.1を有するVM1731は、パケットを、(セグメントB内の)宛先ネットワーク層アドレス10.1.2.1に送信し、宛先ネットワーク層アドレス10.1.2.1は、そのMPRE1711によるL3ルーティングを要求する。VM1731は、そのデフォルトゲートウェイのL2リンク層アドレスが「VMAC」であることを(例えば、以前のARPクエリから)すでに知っており、したがって、宛先IPアドレスが別のセグメント内であるため、VM1731は、VMACを使用することによって、データパケットを直接MPRE1711に送信する。
動作「2」の間に、MPRE1711は、宛先VM1732のためのL2リンク層アドレスを有していないことを(例えば、そのアドレス解決テーブルをチェックすることによって)判定し、したがって、宛先IP「10.1.2.1」のためのARPクエリを開始する。このARPクエリは、送信元MACアドレスとして、MPRE1711のユニークな物理MACアドレス(「PMAC1」)を使用し、宛先MACとしてブロードキャストMACアドレスを使用する。MPRE1711は、宛先IP「10.1.2.1」がセグメントB内であることを判定するために、パケットにL3ルーティングも実行しており、したがって、送信元IPを「10.1.2.253」(すなわち、LIF BのIPアドレス)に変更する。ブロードキャストARPメッセージは、ホスト1702に到達するために、物理ネットワークを横断する。いくつかの実施形態では、論理ネットワークが、追加のホスト(すなわち、MPREのような追加のローカルLREインスタンシエイションを有する追加のホスト)にまたがる場合、ARPメッセージは、同様にこれらの他のホストに送信されることになる。
動作「3」の間、ブロードキャストARPクエリは、ホスト1702上で動作するアップリンクモジュール1742に到着し、アップリンクモジュール1742は、ブロードキャストMACアドレス(「ffffffffffff」)を、MPREのすべてに一般的な「VMAC」に置き換え、そのため、ホスト1702内のMPSEは、ARPクエリパケットをMPRE1712に転送することになる。送信元アドレス「PMAC1」は、送信側MACアドレス1711に対してユニークであるが、修正されたARPクエリ内にとどまる。
動作「4」の間、ホスト1702のMPRE1712は、VMACが宛先アドレスであることを理解するため、ARPクエリを受信する。MPRE1712は、宛先IPアドレス10.1.2.1を解決することができず、そこで、VM1732を含むセグメントB上にあるホスト1702の任意のローカルVMへのブロードキャスト(宛先「ffffffffffff」)として、LIF B1722を介してARPクエリを転送する。ARPクエリは、VM1732のための(セグメントBのための)アウトバウンドLIF1722を介して、MPRE1712を出て行く。
動作「5」の間、送信元MACアドレスとして「VMAC」を有するブロードキャストARPクエリは、VM1732に到達し、VM1732は、ARPクエリに対する応答メッセージを、LIF B1722を介してMPRE1712に送信する。応答メッセージでは、VM1732は、L3ネットワーク層アドレス「10.1.2.1」に対応するL2レベルリンクアドレスが、そのアドレス「MAC2」であることを示し、応答が、一般的なMACアドレス「VMAC」を使用して、要求側のMPRE1712に送信されるべきであることを示す。MPRE1712は、また、それ自体のARP解決テーブル1752を、「10.1.2.1」について更新し、そのため、将来的にARPプロキシとして機能することができる。
動作「6」の間、MPRE1712は、応答している(IP10.1.1.253がMAC「PMAC1」に解決することを示している)対象のARPクエリからのMPRE1712によって格納された情報に基づいて、宛先MACアドレスとして「PMAC1」を使用することによって、問い合わせ側MPRE1711に応答パケットを転送する。動作「7」の間、ホスト1702のためのアップリンクモジュール1741は、ホスト1701のMPSEが、パケットをローカルにMPRE1711に転送することになるように、ユニークな「PMAC1」を一般的な「VMAC」に変換する。最終的に、動作「8」では、応答メッセージは、元の問い合わせ側MPRE1711に到達し、MPRE1711は、IPアドレス10.1.2.1のためのアドレス解決(すなわち、「MAC2」)をそれ自体の解決テーブル1751に格納することになり、そのため、VM1731からのパケットをVM1732に転送することができることになる。この時点で、VM1731によって最初に送信されたデータパケットを、VM1732への配信のためにルーティングすることができ、ホスト1702に向けて物理ネットワーク上に送信することができる。
MPRE1712は、VM1732のためのアドレスをそれ自体によって解決することができなかったため、ARP問い合わせを伝達しなければならない。しかしながら、一旦MPRE1712が、VM1732からのARP応答を受信すると、アドレス10.1.2.1に関する後続のARPクエリに対して、それ自体によって、ARP問い合わせを伝達する必要なく、応答することができる。図18は、MPRE1712が解決することができるARP問い合わせに応答するためのプロキシとして機能する、ネットワーク1700内のMPRE1712を示す。
図18は、前の図からのホスト1702、並びに別のホストマシン1703を有するネットワーク1700を示す。ホスト1702内のMPRE1712のARP解決テーブル1752は、VM1732のためのIPアドレス10.1.2.1を解決するためのエントリをすでに有する。ホスト1703上には、論理ネットワークのセグメントD上のVM1733、セグメントDのための論理インタフェース1724を有するMPRE1713、及び、物理ネットワークからのデータを受信するためのアップリンクモジュール1743が存在している。一般的なVMACに加えて、MPRE1713は、ユニークな物理MACアドレス「PMAC3」を有する。「1」〜「6」とラベル付けされた動作では、図は、セグメントB内のVM1732のための、ホストマシン1703からMPRE1713によって開始されたARPクエリを示す。
動作「1」の間、(セグメントD内の)IPアドレス10.1.5.1を有するVM1733は、パケットを(セグメントB内の)宛先ネットワーク層アドレス10.1.2.1に送信し、これは、そのMPRE1713によるL3ルーティングを必要とする。VM1733は、そのデフォルトゲートウェイのL2リンク層アドレスが「VMAC」であることを(例えば、以前のARPクエリから)すでに知っており、したがって、宛先IPアドレスが別のセグメント内であるため、VM1733は、VMACを使用することによって、データパケットを直接MPRE1713に送信する。
動作「2」の間に、MPRE1713は、宛先VM1732のためのL2リンク層アドレスを有していないことを(例えば、そのアドレス解決テーブルをチェックすることによって)認識し、したがって、宛先IP「10.1.2.1」のためのARPクエリを開始する。このARPクエリは、送信元MACアドレスとして、MPRE1713のユニークな物理MACアドレス(「PMAC3」)を使用し、宛先MACとしてブロードキャストMACアドレスを使用する。MPRE1713は、宛先IP「10.1.2.1」がセグメントB内であることを判定するために、パケットにL3ルーティングも実行しており、したがって、送信元IPを「10.1.2.253」(すなわち、LIF BのIPアドレス)に変更する。このブロードキャストARPメッセージは、ホスト1702に到達するために、物理ネットワークを横断する。加えて、図示しないが、ホスト1701は、MPRE1711を有するため、ブロードキャストARPメッセージは、このホスト1701にも到達することになる。
動作「3」の間、ブロードキャストARPクエリは、ホスト1702上で動作するアップリンクモジュール1742に到着し、アップリンクモジュール1742は、ブロードキャストMACアドレス(「ffffffffffff」)を、MPREのすべてに一般的な「VMAC」に置き換え、そのため、ホスト1702内のMPSEは、ARPクエリをMPRE1712に転送することになる。送信元アドレス「PMAC3」は、送信側MPRE1713に対してユニークであるが、修正されたARPクエリ内にとどまる。
動作「4」の間、MPRE1712は、それ自体の解決テーブル1752を調べ、IPアドレス10.1.2.1をMAC2に解決することができることを認識する。MPREは、したがって、ARPクエリをそのセグメントBのすべてのVMに転送するのではなく、物理ネットワークを介して宛先アドレス「PMAC3」にARP応答を送信する。LIF B1722及びVM1732は、この場合では、ARP応答動作に関与しない。
動作「5」の間、ホスト1703のためのアップリンクモジュール1743は、ホスト1703のMPSEが、パケットをローカルにMPRE1713に転送することになるように、ユニークな「PMAC3」を一般的な「VMAC」に変換する。最終的に、動作「6」では、応答メッセージは、元の問い合わせ側MPRE1713に到達し、MPRE1713は、IPアドレス10.1.2.1のためのアドレス解決(すなわち、「MAC2」)をそれ自体の解決テーブル1753に格納することになり、そのため、VM1733からのパケットをVM1732に転送することができることになる。この時点で、VM1733によって最初に送信されたデータパケットを、VM1732への配信のためにルーティングすることができ、ホスト1702に向けて物理ネットワーク上に送信することができる。
図17及び18は、送信側MPREと異なるホストマシン内にある仮想マシンのためのARP問い合わせでのユニークなPMACの使用を示す。しかしながら、いくつかの実施形態では、このARPメカニズムは、送信側MPREと同じホストマシン内で動作している仮想マシンのアドレスを解決するのとちょうど同じように動作する。図19は、送信側MPREと同じホストマシン内にある仮想マシンのためのARP問い合わせでのユニークなPMACの使用を示す。
図19は、図17のネットワーク1700内で行われる別のARP問い合わせを示す。図19に示すように、ホスト1702内には、MPRE1712に加えて、別のセグメントBのVM1734及びセグメントCのVM1735も存在している。MPRE1712は、VM1735のようなセグメントC内のVMとインタフェースするための論理インタフェース1723を有する。図19は、MPRE1712によって開始されるARP動作を示す。このARP動作は、MPRE1712が、両方がホスト1702上に存在するセグメントC内のVM1735からセグメントB内のVM1734にパケットをルーティングシなければならないため、開始される。開始側MPRE1711が、別のホストマシン内のVMに関して問い合わせしている、図17に示すARP動作とは異なり、図19に示すARP動作は、開始側MPRE1712と同じホストマシン内に位置するVMのためのものである。
「1」〜「9」とラベル付けされた動作では、図は、セグメントB内のVM1734のための、MPRE1712によって開始されたARPクエリを示す。動作「1」の間、(セグメントC内の)IPアドレス10.1.3.1を有するVM1731は、パケットを(セグメントB内の)宛先ネットワーク層アドレス10.1.2.2に送信し、これは、そのMPRE1712によるL3ルーティングを必要とする。VM1735は、そのデフォルトゲートウェイのL2リンク層アドレスが「VMAC」であることを(例えば、以前のARPクエリから)すでに知っており、したがって、宛先IPアドレスが別のセグメント内であるため、VM1735は、VMACを使用することによって、データパケットを直接MPRE1712に送信する。
動作「2」の間、MPRE1712は、宛先VM1734のためのL2リンク層アドレスを有していないことを(例えば、そのアドレス解決テーブルをチェックすることによって)判定し、したがって、ネットワークセグメントB内の宛先IP10.1.2.1のためのARPクエリを開始する。ARPクエリは、セグメントB上のホスト1702、並びに、(ホスト1701のような)他のホストのすべてのローカルVMにブロードキャストされることになる。
動作「3」の間、MPRE1712は、ARPクエリを、VM1734を含むすべてのローカルセグメントBのVMに、LIF B1722を介してブロードキャストする。このブロードキャストは、ホスト1702内のローカルであるため、送信元アドレスは、一般的なVMACのままである。動作「4」の間、ホスト1702内の(セグメントBで)ローカルにブロードキャストされたARPクエリは、VM1734に到達し、VM1734は、ARPクエリに対する応答メッセージを送信する。
動作「3」及び「4」と同時に、MPRE1712は、動作「5」の間、ARP要求を他のホストにもブロードキャストする。このブロードキャストメッセージは、その宛先MACとしてブロードキャストMACアドレスを使用し、送信元MACアドレスとして(例えば、物理NICに送信される前にアップリンクによって修正されるような)MPRE1712のユニークなPMAC「PMAC2」を使用する。MPRE1712は、宛先IP「10.1.2.2」がセグメントB内であることを判定するために、パケットにL3ルーティングも実行し、したがって、送信元IPを「10.1.2.253」(すなわち、LIF BのIPアドレス)に変更する。動作「6」で、ブロードキャストARPは、そのアップリンクモジュール1741が宛先MACをそのMPRE1711のための一般的なVMACに変更したホスト1701に到達する。しかしながら、(いくつかの実施形態では、これらのホストが、それらのセグメントBのVMにARPを転送するが)IP10.1.2.2に対応するものがないため、他のホストからのARP応答はない。
動作「7」の間、VM1734は、動作「4」の間に受信したARPクエリに対する応答メッセージを生成する。応答メッセージは、L2アドレス「MAC4」が、要求されたL3ネットワーク層アドレス「10.1.2.2」に対応することを示し、応答が、その一般的なMACアドレス「VMAC」を使用して、要求側のMPREに送信されるべきであることを示す。動作「8」の間、VM1734によって生成されたARP応答は、LIF B1722を介してMPRE1712に入る。最終的に、動作「9」では、VM1735からの(最初に送信されたデータパケットを含む)パケットをVM1734に転送することができるように、MPRE1712は、IPアドレス10.1.2.2のためのアドレス解決(すなわち、「MAC4」)を、それ自体の解決テーブル1752に格納する。
図20及び21は、MPREが、それらの解決テーブルを更新した後の、異なるセグメントのVM間でデータトラフィックを送信するための動作を示す。具体的には、図20及び21は、ホスト1701のMPRE1711、及びMPRE1712が、図17及び19に示すように、以前のARPクエリによってそれらの解決テーブルを更新した後の、VM1731、1732、及び1735間のネットワーク1700に関するデータトラフィックを示す。
図20は、セグメントAのVM1731及びセグメントCのVM1735から、セグメントBのVM1732へのデータパケットのルーティングを示す。ルーティングは、MPRE1711及び1712内で行われ、MPRE1711及び1712は、それぞれ、送信側VM1731及び送信側VM1735のためのMPREである。MPRE1711は、ルーティングルックアップのための解決テーブル1751を使用し、MPRE1712は、ルーティングルックアップのための解決テーブル1752を使用する。
動作「1」〜「3」は、セグメントAのVM1731からセグメントBのVM1732へのデータパケットのルーティングを示す。動作「1」の間、VM1731は、一般的なVMACを使用して、MPRE1711のLIF A1721にパケットを送信する。パケットは、IPアドレス10.1.2.1を宛先とし、IPアドレス10.1.2.1は、VM1731(IPアドレス10.1.1.1)とは異なるネットワークセグメント内であり、したがって、L3層ルーティングを必要とする。動作「2」の間、MPRE1711は、(図17に示す動作によって学習されるように)解決テーブル1751内のエントリを使用することによって、IPアドレス10.1.2.1をL2アドレス「MAC2」及びセグメントBに解決する。MPRE1711は、それ自体のユニークなL2アドレス「PMAC1」を、物理ネットワークに送出されたパケットのための送信元アドレスとして使用する。MPRE1711は、また、LIF B1725をアウトバウンドLIFとして識別しており、(セグメントBのネットワーク識別子をタグ付けされた)物理ネットワークを介してホスト1702にパケットを送信するために、このLIFを使用する。動作「3」の間、ルーティングされたパケットは、物理ネットワークを横断し、L2アドレスが「MAC2」の宛先VM1732に到着している。
動作「4」〜「6」は、データパケットがホスト1702を離れる必要がない、セグメントCのVM1735からセグメントBのVM1732へのデータパケットのルーティングを示す。動作「4」の間、VM1735は、一般的なVMACをパケットの宛先MACとして使用して、MPRE1712のLIF C1723にパケットを送信する。パケットは、IPアドレス10.1.2.1を宛先とし、IPアドレス10.1.2.1は、VM1735(IPアドレス10.1.3.1)とは異なるネットワークセグメント内であり、したがって、L3ルーティングを必要とする。動作「5」の間、MPRE1712は、解決テーブル1752内のエントリを使用することによって、IPアドレス10.1.2.1をL2アドレス「MAC2」に解決する。MPRE1712は、また、このパケットは、物理ネットワークのためのホスト1702を決して離れないため、送信元L2MACアドレスとしてVMACを使用する。MPRE1712は、また、LIF B1722をアウトバウンドLIFとして識別しており、ローカルセグメントBのVM1732にパケットを送信するためにこのLIFを使用する。動作「6」の間、データパケットは、MACアドレスが「MAC2」の宛先VM1732に到着する。
図21は、セグメントBのVM1732からセグメントAのVM1731及びセグメントCのVM1735に送信されたデータパケットのルーティングを示す。ルーティングは、MPRE1712内で行われ、MPRE1712は、送信側VM1732のためのローカルルータインスタンスである。MPRE1712は、上述したように、ルーティングルックアップのために解決テーブル1752に依存する。MPRE1712は、VM1732のようなセグメントB内のVMとインタフェースするための論理インタフェース1722(LIF B)を有する。MPRE1712は、VM1735のようなセグメントC内のVMとインタフェースするための論理インタフェース1723(LIF C)を有する。MPRE1712は、VM1731のようなセグメントA内のVMとインタフェースするための論理インタフェース1725(LIF A)も有する。
動作「1」〜「3」は、セグメントBのVM1732からセグメントAのVM1731へのデータパケットのルーティングを示す。動作「1」の間、VM1732は、一般的なVMACを宛先MACとして使用して、MPRE1712のLIF B1722にパケットを送信する。パケットは、IPアドレス10.1.1.1を宛先とし、IPアドレス10.1.1.1は、VM1732(IPアドレス10.1.2.1)とは異なるネットワークセグメント内であり、したがって、L3層ルーティングを必要とする。データパケットは、LIF B1722をインバウンドLIFとして使用して、MPRE1712に入る。動作「2」の間、MPRE1712は、解決テーブル1752内のエントリを使用することによって、IPアドレス10.1.1.1をL2アドレス「MAC1」に解決する。MPRE1711は、また、LIF A1726をアウトバウンドLIFとして識別しており、(セグメントAのVNIをタグ付けされた)物理ネットワークを介してホスト1701にパケットを送信するために、LIF Aを使用する。いくつかの実施形態では、MPRE1711は、また、送信元MACアドレスとして、一般的な「VMAC」をそれ自体のユニークなL2アドレス「PMAC2」に置き換える。動作「3」の間、ルーティングされたパケットは、MACアドレスが「MAC1」の宛先VM1731に到着する。
動作「4」〜「6」は、セグメントBのVM1732からセグメントCのVM1735へのデータパケットのルーティングを示す。動作「4」の間、VM1732は、一般的なVMACをパケットの宛先MACアドレスとして使用して、MPRE1712のLIF B1722にパケットを送信する。パケットは、IPアドレス10.1.3.1を宛先とし、IPアドレス10.1.3.1は、VM1732(IPアドレス10.1.2.1)とは異なるネットワークセグメント内であり、したがって、L3ルーティングを必要とする。動作「5」の間、MPRE1712は、解決テーブル1752内のエントリを使用することによって、IPアドレス10.1.3.1をL2アドレス「MAC3」に解決する。宛先L2アドレス「MAC3」は、MPRE1712と同じホストマシン(ホスト1702)で動作する仮想マシンを示すため、いくつかの実施形態では、MPREは、物理ネットワークにデータパケットを送信しないことになる。MPRE1712は、また、このパケットは、物理ネットワークのためのホスト1702を決して離れないため、送信元L2MACアドレスとしてVMACを使用する。MPRE1712は、また、LIF C1723をアウトバウンドLIFとして識別しており、ローカルセグメントCのVM1735にパケットを送信するためにこのLIFを使用する。動作「6」の間、パケットは、MACアドレスが「MAC3」の宛先VM1735に到着する。
いくつかの実施形態に関して、図22は、入力データパケットのためのアドレス解決を処理するための、いくつかの実施形態のMPREインスタンシエイションによって実行されるプロセス2200を概念的に示す。プロセス2200は、(2210で)データパケットを(例えば、MPSEから)受信すると開始する。このデータパケットは、転送若しくはルーティングする必要がある通常のデータパケットであってよく、又は、応答を必要とするARPクエリであってよい。次に、プロセスは、(2220で)受信したパケットがARPクエリであるかどうかを判定する。データパケットがARPクエリである場合、プロセスは2225に進む。そうでない場合、プロセスは2235に進む。
2225では、プロセスは、ARPクエリのための宛先アドレスを解決することができるかどうかを判定する。いくつかの実施形態では、プロセスは、パケットのネットワーク層IPアドレスを解決するための対応するエントリが存在するかどうかを判定するために、それ自体のARP解決テーブルを調べる。プロセスがアドレスを解決することができる場合、2260に進む。プロセスがアドレスを解決することができない場合、2230に進む。
2230では、プロセスは、ARPクエリを転送する。ARP要求が、物理ネットワークから来る場合、プロセスは、ARPクエリを、ローカルホストマシン内のVMに転送する。ARP要求が、ローカルホストマシン内のVMから来る場合、プロセスは、要求を、ローカルホストマシン内の他のVMに転送すると共に、他のホストマシン内のMPREによって処理するために、物理ネットワークに転送する。プロセスは、次に、待機し、(2250で)ARP応答を受信し、応答メッセージに基づいて、そのARP解決テーブルを更新する。プロセス2200は、次に、(2260で)ARPクエリメッセージに応答し、終了する。
2235では、プロセスは、入力データパケットのための宛先アドレスを解決することができるかどうかを判定する。プロセスが、(例えば、一致するARP解決テーブルエントリを有する)宛先アドレスを解決することができる場合、プロセスは2245に進む。そうでない場合、プロセスは2240に進む。
2240では、プロセスは、ARPクエリを生成し、リモートホストマシン並びにローカル仮想マシンに、それ自体のアウトバウンドLIFを介してブロードキャストする。プロセスは、次に、(2242で)そのARPクエリのための応答を受信し、そのARPテーブルを更新する。プロセス2200は、次に、(2245で)解決したMACアドレスにしたがってデータパケットを転送し、終了する。
C.非VDRホストマシンのためのルーティングエージェントとしてのVDR
いくつかの実施形態では、基礎的な物理ネットワーク上のネットワークトラフィックを生成し、受け入れるホストマシンのすべてが、仮想化ソフトウェアを実行し、VDRを動作させるというわけではない。いくつかの実施形態では、これらのホストのうちの少なくともいくつかは、仮想化ソフトウェアをまったく実行せず、どのような仮想マシンもホストしない物理ホストマシンである。これらの非VDR物理ホストマシンのいくつかは、基礎的な物理ネットワークに組み込まれた(ファイラ又は別の非ハイパーバイザ/非VMネットワークスタックのような)レガシネットワーク要素であり、L3層ルーティングのための独立型のルータに依存するように使用される。これらの非VDR物理ホストマシンのためのL3層ルーティングを実行するために、いくつかの実施形態は、これらの非VDRホストマシンのための専用ルーティングエージェント(指定されたインスタンス又は指定されたMPRE)として機能するためにホストマシン上で動作するローカルLREインスタンシエイション(すなわち、MPRE)を指定する。いくつかの実施形態では、このような非VDR物理ホストとの間のL2トラフィックは、指定されたMPREを経由する必要なく、ホストマシン内のMPSE(例えば、320)のローカルインスタンスによって処理される。
図23は、物理ホストとの間のパケットのL3ルーティングを処理するためのMPREを指定する論理ネットワーク2300の実装を示す。図示のように、ネットワーク2300は、ホストマシン2301〜2309を含む。ホストマシン2301及び2302は、それぞれ、MPRE2311及び2312を動作させる仮想化ソフトウェアを実行している(MPRE2313〜2318を実行する他のホストマシン2303〜2308は、図示されない)。両方のホストマシン2301及び2302は、いくつかの仮想マシンをホストしており、各ホストマシンは、MPREを動作させている。これらのMPREの各々は、論理ネットワーク2300のセグメントA、B、及びCのための論理インタフェース(LIF A、LIF B、及びLIF C)を有する。すべてのMPREは、それ自体のホスト内の仮想マシンによってアドレスされる場合、一般的な「VMAC」を共有する。両方のMPRE2311及び2312は、それら自体のユニークなPMAC(「PMAC1」及び「PMAC2」)も有する。
ホストマシン2309は、仮想化ソフトウェアを実行せず、L3層ルーティングのためのそれ自体のMPREを持たない物理ホストである。物理ホスト2309は、IPアドレス10.1.2.7と関連付けられ、MACアドレス「MAC7」を有する(すなわち、物理ホスト2309は、ネットワークセグメントB内にある)。物理ホスト2309からのデータを、別のネットワークセグメント上の仮想マシンに送信するために、物理ホストは、データを(物理ネットワーク及びL2スイッチを介して)、物理ホスト2309のための指定されたMPREであるMPRE2312に送信しなければならない。
図24は、論理ネットワーク2300内の非VDR物理ホスト2309によって開始されるARP動作を示す。図示のように、論理ネットワーク2300内のホストマシン2301〜2304の各々は、MPRE(それぞれ、2311〜2314)を有し、各MPREは、ユニークなPMACアドレス(MPRE2313のための「PMAC3」、MPRE2314のための「PMAC4」)を有する。各MPREは、IPアドレス10.1.2.253を有するセグメントBのための論理インタフェース(LIF B)を有する。しかしながら、ホストマシン2302内のMPRE2312のみが、「指定されたインスタンス」であり、それのみが、物理ホスト2309からのARPクエリブロードキャストメッセージに応答することになる。
ARP動作は、動作「1」、「2」、「3」、及び「4」で示される。動作「1」の間、物理ホスト2309は、そのデフォルトゲートウェイ「10.1.2.253」のためのARPクエリメッセージを物理ネットワーク上にブロードキャストする。上述したように、IPアドレス「10.1.2.253」は、MPRE2311〜2314のすべてに存在するLIF Bに関連付けられている。しかしながら、ホスト2302のMPRE2312のみが、物理ホスト2309のための指定されたインスタンスであり、MPRE2312のみが、ARPクエリに応答することになる。いくつかの実施形態では、セクションIIIで後述するように、コントローラ(又は、コントローラのクラスタ)が、特定のセグメントのための指定されたインスタンスとして、MPREの1つを指定する。
動作「2」の間、MPRE2312は、物理ホスト2309からARPクエリメッセージを受信し、将来のルーティングのために物理ホストのMACアドレスを解決テーブル2342に記録する。物理ホスト2309のための指定されたインスタンスではないすべての他のMPRE(2301、2302、及び2303)は、ARPを無視する。いくつかの実施形態では、これらの他のMPREは、それにもかかわらず、物理ホストのMACアドレスをそれら自体の解決テーブルに記録することになる。
動作「3」の間、MPRE2312は、ARP応答メッセージを物理ホスト2309に送信する。非VDR物理ホストへのこの応答では、送信元MACアドレスは、一般的なVMACではなく、MPRE2312自体のユニークな物理MACアドレス(「PMAC2」)である。これは、物理ホスト2309が、他のMPREインスタンシエイションのいずれかではなく、L3ルーティングのためのMPRE2312のみと通信することを知るようにするためである。最終的に、動作「4」では、物理ホスト2309は、そのデフォルトゲートウェイのユニークな物理MACアドレス(「PMAC2」)を、それ自体の解決テーブル2349に記録する。一旦、指定されたインスタンス及び物理ホスト2309が互いのMACアドレスを有すると、物理ホストと、論理ネットワーク2300の残りの部分との間で、メッセージ交換を開始することができる。
図25は、仮想マシン2321及び2322から物理ホスト2309へのパケットのルーティングのための指定されたMPRE2312の使用を示す。図示のように、IPアドレス10.1.1.1(セグメントA)及びMACアドレス「MAC1」を有するVM2321は、ホスト2301上で動作しており、IPアドレス10.1.3.2(セグメントC)及びMACアドレス「MAC4」を有するVM2322は、ホスト2302上で動作している。物理ホスト2309は、IPアドレス10.1.2.7(セグメントB)及びMACアドレス「MAC7」を有する。物理ホスト2309、VM2321、及びVM2322は、すべてネットワークの異なるセグメント内にあるため、VM2321及び2322から物理ホスト2309に横断するデータパケットは、MPREによるL3ルーティングを受けなければならない。VM2322のためのMPREは、物理ホスト2309のための指定されたMPRE(MPRE2312)であり、VM2321のためのMPRE(MPRE2311)ではないことに注意することが重要である。
図25は、「1」、「2」、及び「3」とラベル付けされた3つの動作での、VM2322から物理ホスト2309へのパケットのルーティングを示す。動作「1」の間、セグメントCのVM2322は、そのLIF C2334を介してMPRE2312にパケットを送信する。データパケットは、パケットをMPRE2312に転送するために、ホスト2302上のMPSEのための宛先MACアドレスとして、一般的な「VMAC」を使用する。宛先IPアドレスは、物理ホスト2309のIPアドレスである10.1.2.7である。
動作「2」の間、MPRE2312は、宛先IPアドレス10.1.2.7を、物理ホスト2309のMACアドレス「MAC7」に解決するために、そのアドレス解決テーブル2342のエントリを使用する。データパケットが、ホストマシンから物理ネットワーク上に送信される時、MPRE2312は、また、送信元MACアドレスとして、一般的な「VMAC」とは対照的に、それ自体のユニークな物理MACアドレス「PMAC2」を使用する。動作「3」では、MPRE2312は、セグメントBのためのその論理インタフェース(LIF B2332)を使用してデータパケットを送信する。ルーティングされたデータパケットは、その解決されたL2MACアドレス(すなわち、「MAC7」)を使用して、(物理ネットワーク及びL2スイッチを介して)物理ホスト2309に転送される。パケットが物理ホスト2309に到着すると、送信元MACアドレスは、「PMAC2」、すなわち、指定されたインスタンスのユニークな物理MACのままであることは、注目に値する。いくつかの実施形態では、物理ホストは、一般的な「VMAC」を知らないことになり、代わりに、指定されたMPREの「PMAC2」のみと通信する。
図25は、また、「4」、「5」、及び「6」とラベル付けされた動作での、VM2321から物理ホスト2309へのパケットのルーティングを示す。VM2322とは異なり、VM2321のMPRE(2311)は、指定されたインスタンスではない。それにもかかわらず、いくつかの実施形態では、そのMPREが物理ホストの指定されたインスタンスではない仮想マシンは、ルーティングされたパケットを物理ホストに送信するためのそれ自体のMPREを依然として使用する。
動作「4」の間、セグメントAのVM2321は、そのLIF A2333を介して、MPRE2311にパケットを送信する。データパケットは、パケットをMPRE2311にルーティングするために、仮想ルータのためのMACアドレスとして、一般的な「VMAC」を使用する。宛先IPアドレスは、物理ホスト2309のIPアドレスである10.1.2.7である。
動作「5」の間、MPRE2311は、宛先IPアドレス10.1.2.7が物理ホストのためのものであること、及び、それが物理ホスト2309のための指定されたMPREではないことを判定する。いくつかの実施形態では、各MPREインスタンシエイションは、その論理インタフェースの構成の一部として、各々の特定のLIFのための指定されたインスタンスであるかどうかを認識している。いくつかの実施形態では、構成は、また、どのMPREインスタンシエイションが、指定されたインスタンスであるのかを識別する。結果として、MPRE2311は、指定されたMPRE2312から解決情報を取得しようとすることになる。いくつかの実施形態では、所与の物理ホストのための指定されたインスタンスではないMPREは、指定されたMPREを有するホストにクエリを(例えば、UDPチャネルを介して)送信し、IPアドレスの解決を要求することになる。指定されたインスタンスが解決情報を有する場合、解決情報を問い合わせ元のMPREに(例えば、同じUDPチャネルを介して)送り返すことになる。指定されたMPREが、それ自体の物理ホストのIPアドレスを解決することができない場合、物理ホストのIPのためのARP要求を開始し、解決を問い合わせ元のMPREに送り返すことになる。この例では、MPRE2311は、問い合わせメッセージをホスト2302に(すなわち、MPRE2312に)送信することになり、ホスト2302は、(その解決テーブル2342からの)物理ホスト2309のための解決されたMACアドレスをMPRE2311に送り返すことになる。
動作「6」の間、MPRE2311は、そのLIF B2331を介して物理ホスト2309にデータパケットを送信するために、解決された宛先MACアドレスを使用する。いくつかの実施形態では、MPRE2311は、また、物理ホストのための解決されたアドレスIP10.1.2.7を、そのアドレス解決テーブルに格納する。データパケットのための送信元MACアドレスは、MPRE2311のユニークなPMAC(「PMAC1」)であり、一般的なMACでも、指定されたインスタンスのPMACでもない。これは、ARPパケットではなく、データトラフィックパケットであるため、物理ホストは、セグメントBのVMのためのパケットを送信する先のMACアドレスとして、PMAC1を格納しないことになる。ルーティングされたデータパケットは、その解決されたL2MACアドレス(「MAC7」)を使用して(物理ネットワーク及びL2スイッチを介して)物理ホスト2309に転送される。
図26a〜bは、物理ホスト2309から仮想マシン2321及び2322へのパケットのルーティングのための指定されたMPRE2312の使用を示す。上述したように、(セグメントBのIPアドレス10.1.2.7を有する)物理ホスト2309は、仮想マシン2321及び2322とは異なるセグメント上にあり、そのため、物理ホストからこれらの仮想マシンへのデータパケットは、ネットワーク層でルーティングされなければならない。いくつかの実施形態では、特定の物理ホストのための指定されたMPREは、その特定の物理ホストからのパケットへの、又は、特定のセグメント上のすべてのホストのためのL3ルーティングを実行するために、常に使用される。この例では、MPRE2312は、VM2322のみが、指定されたMPRE2312と同じホストマシン2302内で動作しているにもかかわらず、物理ホスト2309を含むセグメントB上の任意の物理ホストからVM2321及び2322の両方へのデータパケットをルーティングするための指定されたMPREである。
図26aは、「1」、「2」、及び「3」とラベル付けされた3つの動作での、物理ホスト2309からVM2322へのデータパケットのルーティングを示す。動作「1」では、物理ホスト2309は、パケットをホスト2302に送信する。このパケットは、セグメントC内にあるIPアドレス10.1.3.2を有するVM2322を宛先とする。(図24のARP動作によって作成された)その解決テーブル2349内のエントリに基づいて、MPREは、デフォルトゲートウェイのIPアドレス10.1.2.253を、MPRE2312のユニークな物理MACアドレスである「PMAC2」として解決する。パケットは、物理ネットワークを介して、ホスト2302のアップリンクモジュール2352に到着する。
動作「2」では、アップリンクモジュール2352は、ユニークな「PMAC2」を一般的なVMACに変更し、そのため、パケットは、ホスト2302内で一度適切に転送されることが可能である。パケットは、次に、MPRE2312に到着し、MPRE2312のLIF B2332によって処理される。
動作「3」では、MPRE2312は、そのアドレス解決テーブル内の情報を使用して、IPアドレス10.1.3.2をVM2322のための「MAC4」として解決し、データパケットをVM2322に送信する。MPRE2312は、また、物理ホスト2309の送信元MACアドレス「MAC7」を一般的なVMACに置き換える。
図26bは、「4」、「5」、及び「6」とラベル付けされた3つの動作での、物理ホスト2309からVM2321へのデータパケットのルーティングを示す。動作「4」では、物理ホスト2309は、物理ネットワークを介して、パケットを、指定されたMPRE2312を動作させるホスト2302に送信する。このパケットは、セグメントA内にあるIPアドレス10.1.1.1を有するVM2321を宛先とする。パケットは、解決テーブル2349内のエントリに基づいて、指定されたMPRE2312のユニークな物理MACアドレスであるL2MACアドレス「PMAC2」にアドレスされる。宛先VM2321が、それ自体のMPRE2311を有するホストマシン2301上にあることは、注目に値する。しかしながら、MPRE2311ではなくMPRE2312が、物理ホストのための指定されたインスタンスであるため、物理ホスト2309は、依然として最初にMPRE2312にパケットを送信する。パケットは、物理ネットワークを介して、ホスト2302のアップリンクモジュール2352に到着する。
動作「5」では、アップリンクモジュール2352は、ユニークな「PMAC2」を一般的なVMACに変更し、そのため、パケットは、ホスト2302内で一度適切に転送されることが可能である。パケットは、次に、MPRE2312に到着し、MPRE2312のLIF B2332によって処理される。
動作「6」では、MPRE2312は、IPアドレス10.1.1.1を、VM2321のための「MAC1」として解決し、そのLIF A2335を使用して、データパケットをVM2321に送信する。ルーティングされたパケットは、送信元MACアドレスが、指定されたMPRE2312の「PMAC2」であることを示す。MPRE2312及び宛先VM2321は、異なるホストマシン上にあるため、パケットは、実際には、VM2321に到着する前に、ホスト2302上のMPSEを、次に、物理ネットワークを、次に、ホスト2301上のMPSEを介して送信される。
図25及び26を参照して上述したように、仮想マシンから物理ホストへのデータトラフィックのためのルーティングは、個々のMPREによって実行され、物理ホストから仮想マシンへのデータトラフィックは、指定されたMPREを通過しなければならない。すなわち、物理ホストへのネットワークトラフィックは、ポイントツーポイントであり、物理ホストからのネットワークトラフィックは、分散される。図23〜30の論理ネットワーク2300には示されていないが、いくつかの実施形態での論理ネットワークの実装は、複数の非VDR物理ホストを有することができる。いくつかの実施形態では、これらの非VDR物理ホストの各々は、ホストマシンのうちの1つの中の対応する指定されたMPREを有する。いくつかの実施形態では、特定のMPREが、非VDR物理ホストの一部又はすべてのための指定されたインスタンスとして機能することになる。例えば、いくつかの実施形態は、特定のセグメント上のすべての物理ホストのための特定のMPREを指定した。
いくつかの実施形態に関して、図27は、非VDR物理ホストからのL3層トラフィックを処理するためのプロセス2700を概念的に示す。いくつかの実施形態では、プロセス2700は、ホストマシン上で動作する仮想化ソフトウェア内のMPREモジュールによって実行される。いくつかの実施形態では、このプロセスは、図26a〜bに示す動作の間に、MPRE2311及び2312によって実行される。
プロセス2700は、ホストが、L3ルーティングを必要とするデータパケット(すなわち、ネットワークのあるセグメントから来るが、ネットワークの別のセグメントを宛先とするパケット)を受信すると開始する。プロセス2700は、(2710で)パケットが、非MPRE物理ホストからのものであるかどうかを判定する。いくつかの実施形態では、MPREは、この判定を、物理ホスト及びそれらのIPアドレスのリストに対してデータパケット内のIPアドレスを調べることによって行う。いくつかの実施形態では、このようなリストは、ネットワークのコントローラからの構成データのセットの一部である。パケットが既知の物理ホストからのものではない場合、プロセスは2740に進む。
2720では、プロセスは、MPREが、データパケットを送信する物理ホストのための指定されたインスタンスであるかどうかを判定する。いくつかの実施形態では、各MPREは、ネットワークコントローラによって構成され、MPREのいくつかは、物理ホストのための指定されたインスタンスとして構成される。これらの実施形態のいくつかでのMPREは、データパケット内で示されるように、物理ホストのための指定されたインスタンスであるかどうかを確認するために、それ自体の構成データを調べることになる。いくつかの他の実施形態では、各MPREは、物理ホストの又はそれ自体のユニークな識別子(例えば、IPアドレス)をハッシュすることによって、示された物理ホストのための指定されたインスタンスであるかどうかを、ローカルに判定する。MPREが、特定の物理ホストのための指定されたインスタンスではない場合、プロセスは、(2725で)物理ホストからのデータパケットを無視し、終了する。そうでない場合、プロセスは2730に進む。
2730では、プロセスは、入力データパケットがARPクエリであるかどうかを判定する。そうである場合、プロセスは、(例えば、図24内のMPRE2312によって実行されるように)(2735で)MPREのユニークな物理MACを有するARPクエリに応答し、終了する。そうでない場合、プロセスは2740に進む。
2740では、プロセスは、例えば、(ARPクエリを発行することによって、又は、その解決テーブルからの格納されたARP結果を使用することによって)宛先のL3IPアドレスをそのL2MACアドレスに解決することによって、データパケットにL3ルーティングを実行する。プロセスは、次に、(2750で)解決された宛先MACアドレスに基づいて、ルーティングされたデータパケットを宛先仮想マシンに転送する。宛先VMが、MPREと同じホストマシン上にある場合、データパケットは、ホスト上のMPSEを介してVMに転送されることになる。宛先VMが、異なるホスト上にある場合、データパケットは、物理ネットワークを介して他のホストに転送されることになる。パケットを転送した後、プロセス2700は終了する。
いくつかの実施形態に関して、図28は、非VDR物理ホストへの(例えば、プロセスを実行するMPREと同じホスト上のVMから受信した)L3トラフィックを処理するためのプロセス2800を概念的に示す。いくつかの実施形態では、このプロセスは、図25に示す動作の間にMPRE2311及び2312によって実行される。
プロセス2800は、ホストが、L3ルーティングを必要とするデータパケットを受信すると開始する。プロセス2800は、(2810で)パケットが、非VDR物理ホストを宛先とするかどうかを判定する。パケットが、このような物理ホストを宛先としない場合、プロセスは2840に進む。パケットが、このような物理ホストを宛先とする場合、プロセスは2820に進む。
2820では、プロセスは、MPREが、(例えば、物理ホストが属するセグメントに基づいて)データパケットが送信される先の物理ホストのための指定されたインスタンスであるかどうかを判定する。そうである場合、プロセスは2825に進む。MPREが指定されたインスタンスではない場合、プロセスは2830に進む。
2830では、プロセスは、指定されたインスタンスからのアドレス解決情報を要求し、取得する。いくつかの実施形態では、これは、UDPチャネルを介して、指定されたインスタンスに要求メッセージを送信し、応答メッセージ内のアドレス解決情報を受信することによって達成される。いくつかの実施形態では、指定されたインスタンスではないMPREは、物理ホストのためのアドレス解決情報を格納せず、物理ホストに送信される各パケットのために、UDPチャネルを介して要求を送信する。他の実施形態では、アドレス解決情報を受信した後、MPREは、将来のパケットをルーティングする際に使用するためにこの情報を格納する。
2825では、プロセスは、指定されたインスタンスとして、物理ホストのためのアドレスを解決することができるかどうかを判定する。いくつかの実施形態では、プロセスは、物理ホストのための一致するエントリが存在するかどうかを確認するために、それ自体のARPテーブルを調べる。プロセスがアドレスを解決することができる場合、プロセスは2840に進む。そうでない場合、プロセスは、(2735で)物理ホストのアドレスのためのARP要求を実行し、ARP応答に応じてそのARPテーブルを更新する。いくつかの実施形態では、指定されたインスタンスのみが、物理ホストのためのルーティング情報を保持する。プロセスは、次に2840に進む。
2840では、プロセスは、例えば、物理ホストのIPアドレスをそのMACアドレスに解決することによって、データパケットにL3ルーティングを実行する。プロセスは、また、MPREが、データパケット内で示される物理ホストのための指定されたインスタンスであろうとなかろうと、送信元MACアドレスを、MPREのユニークなPMACに設定する。プロセスは、次に、(2850で)解決された宛先MACアドレスに基づいて、ルーティングされたデータパケットを物理ホストに転送する。パケットを転送した後、プロセス2800は終了する。
D.異なるオーバレイネットワーク間のブリッジとしてVDRを使用する
いくつかの実施形態では、ホストマシンでのLRE動作は、(例えば、あるIPサブネットから別のIPサブネットへの)L3ルーティングだけでなく、同じサブネット内の(VXLANネットワーク及びVLANネットワーク間のような)異なるオーバレイネットワーク間のブリッジングも実行する。いくつかの実施形態では、2つの異なるオーバレイネットワークは、同じIPサブネット内にあるVMを有することが可能である。これらの状況では、あるオーバレイネットワークから別のオーバレイネットワークにデータパケットを送信するために、L3ルーティングは使用されない。代わりに、転送は、ブリッジングに依存し、ブリッジングは、ネットワークセグメント識別子(例えば、VNI、又はその関連する論理インタフェース)、及び、リンク層アドレス(例えば、MACアドレス)間の結びつけ又はペアリングに基づく。
いくつかの実施形態では、ホストマシン内の少なくとも1つのローカルLREインスタンシエイションは、ルーティングMPREではなく、ブリッジングMPREとして構成される。ブリッジングMPREは、ルーティング用ではなくブリッジング用に構成された論理インタフェースを含むMPREである。ルーティング用に構成された論理インタフェース(ルーティングLIF)は、IPをMACアドレスに解決することによって、論理ネットワークの異なるセグメント間のL3ルーティングを実行する。ブリッジング用に構成された論理インタフェース(ブリッジングLIF)は、MACアドレスをネットワークセグメント識別子(例えば、VNI)又は論理インタフェースと結びつけ、あるネットワークセグメントから別のネットワークセグメントにパケットを送信する際、パケットのネットワークセグメント識別子を変更することによって、ブリッジングを実行する。
図29は、異なるオーバレイネットワーク間のブリッジとして機能するためのブリッジLIFを含むLRE2900を示す。LRE2900の論理インタフェース2901〜2904は、ブリッジLIFとして構成される。具体的には、ブリッジLIF2901は、オーバレイネットワーク「VLAN10」内のMACアドレスを学習し、ブリッジングするためのものであり、ブリッジLIF2902は、オーバレイネットワーク「VLAN20」内のMACアドレスを学習し、ブリッジングするためのものであり、ブリッジLIF2901は、オーバレイネットワーク「VXLAN100」内のMACアドレスを学習し、ブリッジングするためのものであり、ブリッジLIF2901は、オーバレイネットワーク「VXLAN200」内のMACアドレスを学習し、ブリッジングするためのものである。図示のように、異なるオーバレイネットワーク内のVMのうちの少なくともいくつかは、同じIPサブネット「192.168.1.x」内にある。
図30は、ブリッジLIF及びルーティングLIFの両方を含む論理ネットワーク3000の実装を示す。図示のように、論理ネットワーク3000は、複数のホストマシン3001〜3009を含み、各ホストマシンは、LREの分散されたインスタンスを動作させる。LREは、VLAN10、VLAN20、VXLAN100、VXLAN200とインタフェースするための論理インタフェースを有する。これらのホストマシン内のローカルLREインスタンスは、ルーティングLIFのみを有するため、LREは、ホスト3001及び3003内で、ルーティングMPRE3011及び3013として動作している。対照的に、その論理インタフェースのすべてが、ブリッジLIFとして構成されるため、LREは、ホスト3002内で、ブリッジングMPRE3012として動作している。図示しないが、いくつかの実施形態では、ホストマシン内で動作するローカルLREインスタンス(すなわち、MPRE)は、B−LIF及びR−LIFの両方を有することができ、したがって、ブリッジングMPRE及びルーティングMPREの両方として機能することができる。したがって、このようなホストマシン上のVMは、依然として、そのローカルMPREを介して他のIPサブネット内の宛先にパケットを送信することができる。
いくつかの実施形態では、ローカルLREインスタンスは、1つのホストマシンのみでブリッジングMPREとして機能する(すなわち、ブリッジングLIFのみを有する)ように構成される。いくつかの実施形態では、複数のホストマシンが、ブリッジングMPREとして構成されたそれらのローカルLREインスタンスを有する。いくつかの実施形態では、ブリッジングLIFのセットを有するブリッジングMPREは、また、ブリッジLIFとの間でデータパケットをルーティングするための少なくとも1つのルーティングLIFを有する。いくつかの実施形態では、ブリッジLIFを有するLREインスタンスは、また、ルーティング用の沈降(sedimented)LIF(S−LIF)を有し、S−LIFは、他のLIFとは異なり、分散されず、論理ネットワーク内の1つのホスト内のみでアクティブである。S−LIFによってルーティングされるべきすべてのパケットは、アクティブなS−LIFを有するホストマシンに送信されることになる。
いくつかの実施形態では、ブリッジングMPREは、それらが特定のMACアドレスを最初に知る論理インタフェース(又は、関連するネットワークセグメント識別子)を学習し、ブリッジングテーブル(又は、学習テーブル)内でその論理インタフェースをそのMACアドレスと関連付ける。ブリッジが、その後、そのブリッジングテーブル内のエントリと一致する宛先MACアドレスを有するデータフレーム又はパケットを受信すると、ブリッジは、ブリッジングテーブル内の一致するエントリによって示される論理インタフェースにフレームを送出する。いくつかの実施形態では、ブリッジが、パケットの宛先MACアドレスをまだ知らない場合、ブリッジは、データパケットを受信した論理インタフェース以外のすべてのアクティブな論理インタフェースにパケットをフラッドする。パケットを特定のブリッジングインタフェース上に送出する場合、いくつかの実施形態のブリッジングMPREは、関連するネットワークセグメントに関する適切なネットワークセグメント識別子(例えば、8ビットVLANタグ、24ビットVXLAN ID、MPLSラベル、など)を有するようにパケットを修正する。いくつかの実施形態では、ブリッジングMPREを有するホストに障害が発生した場合、ネットワークのコントローラが、ブリッジングMPREとして機能するように別のホストマシン内で動作するMPREを迅速に選択することができるように、ブリッジングテーブルの内容は、あるホストから別のホストに転送されてよい。
図31は、ブリッジングMPREによるMACアドレスの学習を示す。図示のように、ホスト3100は、VM3111〜3114及びブリッジングMPRE3130とインタフェースするポートを有するMPSE3120を有する。MPSE3120は、物理NIC3190及び物理ネットワークに接続されたアップリンク(図示せず)を有する。ブリッジングMPRE3130は、それぞれ、オーバレイネットワーク「VLAN10」、「VLAN20」、「VXLAN100」、及び「VXLAN200」のためのブリッジLIF3141〜3144を有する。
一般的なVMACにアドレスされたパケットのみを受け入れるルーティングLIFと異なり、ブリッジLIFは、MPSEとのポートを介して知るどのようなMACアドレスも学習することになる。いくつかの実施形態では、MPSEは、送信元MACアドレスのネットワークセグメント又はオーバレイネットワーク内で知ることができない宛先MACアドレスを有するデータパケットのような、スイッチがどのように転送するのかを知らないどのようなデータパケットも、ソフトウェアブリッジに送信することになる。このようなデータパケットは、ブリッジングのためのブリッジングMPREに送信され、ブリッジングMPREは、送信元MACアドレスに関連付けられたネットワークセグメント識別子又は論理インタフェースを学習することになる。
図31は、3つの動作「1」、「2」、及び「3」でのこの学習プロセスを示す。動作「1」の間、「VXLAN200」の送信元アドレス「MAC200」及び送信元VNI(本明細書では、任意のネットワークセグメント識別子を表すために使用されるVNI)を有するパケット3170が、物理NIC3190からVM3112に送信されている。このパケットは、VXLAN200とは異なるネットワークセグメント上にある宛先アドレスも有し、したがって、スイッチ3120は、パケットを、ブリッジングのためのブリッジングMPRE3130に転送する。
動作「2」では、ブリッジングMPRE3130は、パケットを知り、その送信元MACアドレス(「MAC200」)及びそのネットワーク識別子(「VXLAN200」)を学習する。いくつかの実施形態では、ネットワーク「VXLAN200」をインタフェースするための論理インタフェース3144が、パケットのMACアドレス及びVNIを学習するために使用される。動作「3」では、学習されたMACアドレス及びVNIのペアリングが、ブリッジングテーブル3150のエントリ内に格納される。ブリッジングテーブル3150は、「MAC20」とVNI「VLAN20」のペアリングをすでに学習している。図示していないが、ブリッジングMPRE3130は、また、このパケットを、MACアドレスのための適切なネットワークセグメント識別子を有する正しいブリッジLIFに送出することになる。その後の3つの図で示すように、ブリッジングMPRE3130のブリッジングテーブルが、この宛先MACとブリッジLIFのうちの1つとの間の結びつきを知っている場合、ブリッジLIFは、正しいVNIを含むようにパケットを修正し、次に、識別されたLIFを介してパケットを送出することになる。そうでない場合、図34を参照して以下に説明するように、ブリッジは、L2学習を実行するために、LIFをフラッドすることになる。
図32は、ホスト3100及びブリッジングMPRE3120による、以前に学習したMAC−VNIペアリングを使用する、2つの異なるオーバレイネットワーク上の2つのVM間のブリッジングを示す。図は、3つの動作「1」、「2」、及び「3」でのこのブリッジングプロセスを示す。動作「1」の間、VM3113は、宛先アドレス「MAC20」を有するオーバレイネットワーク「VLAN10」からパケットを送信するが、「MAC20」は、オーバレイネットワーク「VLAN10」内で見つかるアドレスではなく、したがって、パケットは、ブリッジBDR3130に送信される。動作「2」の間、VLAN10のためのブリッジLIF3141は、パケットを受信し、「MAC20」がVNI「VLAN20」と関連付けられていることを以前に学習しているブリッジングテーブル3150内のMACアドレス「MAC20」のためのエントリをルックアップする。したがって、動作「3」の間、(VNI「VLAN20」と関連付けられた)ブリッジLIF3142は、データパケットを、VLAN20内にあり、MACアドレス「MAC20」を有するVM3111に送出する。これらの2つのLIF間のブリッジングを実行するために、いくつかの実施形態のブリッジングMPRE3130は、最初に、VLAN10のためのVNI(すなわち、このVLANのためのVLANタグ)を取り除き、次に、VLAN20のためのVNI(すなわち、このVLANのためのVLANタグ)を追加する。いくつかの実施形態では、ブリッジングMPRE3130は、コントローラクラスタからの構成データの一部として、異なるオーバレイネットワークのためのVNIをどのように除去し、追加するのかについての命令を受信する。
図33は、ブリッジングMPRE3130を動作させているホスト3100内で動作していない2つのVM間のブリッジングを示す。上述したように、いくつかの実施形態では、必ずしもすべてのホストマシンが、ブリッジとして構成されたそのLIFインスタンスを有しているわけではない。これらの実施形態のいくつかでは、ブリッジングMPREは、他のホストマシン内の2つのリモートVM間、又は、ローカルVM(すなわち、VM3111〜3114のうちの1つ)及び別のホストマシン内のリモートVM間のブリッジング機能を提供する。
図は、3つの動作「1」、「2」、及び「3」でのこのブリッジングプロセスを示す。動作「1」の間、ホスト3100は、物理NIC3190を介してリモートVMからパケットを受信する。パケットは、宛先アドレス「MAC200」を有するオーバレイネットワーク「VXLAN100」からのものであるが、「MAC200」は、オーバレイネットワーク「VXLAN100」内で見つかるアドレスではない。動作「2」の間、VXLAN100のためのブリッジLIF3143は、パケットを受信し、「MAC200」がVNI「VXLAN200」と関連付けられていることを以前に学習しているブリッジングテーブル3150内のMACアドレス「MAC200」のためのエントリをルックアップする。動作「3」の間、(VNI「VXLAN200」と関連付けられた)ブリッジLIF3144は、データパケットを、オーバレイネットワーク「VXLAN200」内のMACアドレス「MAC200」を有するリモートVMのための物理ネットワークに送出する。これらの2つのLIF間のブリッジングを実行するために、いくつかの実施形態のブリッジングMPRE3130は、最初に、VXLAN100のためのVNI(すなわち、24ビットVXLAN ID)を取り除き、次に、VXLAN200のためのVNI(すなわち、24ビットVXLAN ID)を追加する。
これらの場合(図32及び33)の両方で、図示していないが、入力パケットは、送信元MACアドレスを有することになる。図31でのように、いくつかの実施形態のブリッジングMPRE3130は、これらの送信元アドレスの入力LIFとの結びつきを格納することになる。すなわち、図32のパケットの送信元アドレスは、VLAN10のLIFと結び付けられるようにブリッジングテーブル内に格納されることになり、図33のパケットの送信元アドレスは、VXLAN100のLIFと結び付けられるようにブリッジングテーブル内に格納されることになる。
図32及び33は、ブリッジングのペアを以前に学習しており、ブリッジングテーブル内で見つけることができる例を示す。図34aは、宛先MACアドレスが、ブリッジングテーブル内に一致するエントリを持たず、ブリッジングMPRE3130が、ペアリングを探すためにネットワークをフラッドすることになるブリッジング動作を示す。図は、5つの動作「1」、「2」、「3」、「4」、及び「5」でのこのブリッジングプロセスを示す。
動作「1」では、ホスト3100は、物理NIC3190を介してリモートVMからパケットを受信する。パケットは、宛先アドレス「MAC300」を有するオーバレイネットワーク「VLAN10」からのものであるが、「MAC300」は、オーバレイネットワーク「VLAN100」内で見つかるアドレスではなく、したがって、パケットは、正しいオーバレイネットワークへのブリッジングを必要とする。パケットは、また、VLAN10上のVMの「MAC400」の送信元アドレスを有する。
動作「2」の間、VLAN10のためのブリッジLIF3141は、パケットを受信し、ブリッジングテーブル3150内でMACアドレス「MAC300」に関するエントリをルックアップするが、一致するペアリングを見つけることができない(すなわち、ブリッジングMPRE3130は、MAC300が結び付けられるVNIをまだ学習していない)。加えて、図示していないが、「MAC400」のVLAN10への結びつきが格納される。したがって、動作「3」では、ブリッジングMPRE3130は、(依然として宛先アドレス「MAC300」を有する)データパケットを、VLAN10以外のすべてのVNIに送信することによって、すべての他のブリッジLIF(3142〜3144)をフラッドする。MPSE3120は、このとき、パケットをその正しい宛先にもたらすために、オーバレイネットワーク内の標準的なL2動作を担当している。
動作「4」では、異なるVNIにフラッドされたデータパケットは、ホストマシン3100上で動作するVMに到達し、動作「5」では、異なるVNIにフラッドされたデータパケットは、他のホストマシンのための物理NICを介して送出される。いくつかの実施形態では、MPSE3120は、正しいオーバレイネットワークネットワーク上のすべてのVMにパケットをフラッドする。MPSE3120が、MAC300の宛先を知っている場合、パケットをこの知っている宛先に送信することができる。加えて、3つのオーバレイネットワークのすべてに関するパケットが、物理ネットワーク上に送信されるように示されているが、いくつかの実施形態では、MPSEは、宛先アドレスが配置されていない2つのオーバレイネットワークに関するパケットを破棄することになる。
図34bは、フラッディングに対する応答からのMACアドレスペアリングの学習を示す。図は、4つの動作「1」、「2」、及び「3」でのこの応答及び学習プロセスを示す。動作「1」では、「VXLAN100」のためのVNIを有する「MAC300」からの応答が、ホストマシン3100に到着する。いくつかの実施形態では、このような応答は、VMが、VLAN10上のオリジナルのパケットの送信元、「MAC400」にパケットを送り返すと、MACアドレス「MAC300」を有するVM又は他のマシンから来る。
動作「2」では、データパケットは、ブリッジングMPRE3130に入り、「VXLAN100」のためのブリッジLIF3143によって受信される。動作「4」では、ブリッジングMPRE3130は、「MAC300」を「VXLAN100」と結び付けるエントリでブリッジテーブル3150を更新し、パケットをVLAN10にブリッジングする。この時点から、ブリッジングMPRE3130は、フラッディングに頼ることなく、「MAC300」宛のデータパケットをブリッジングすることができる。
いくつかの実施形態に関して、図35は、VDRを用いる論理ネットワークでブリッジングを実行するためのプロセス3500を概念的に示す。いくつかの実施形態では、プロセスは、ブリッジLIFを有するMPRE(すなわち、ブリッジングMPRE)によって実行される。プロセス3500は、ブリッジングMPREが、MPSEに対するそのポートを介してパケットを受信すると開始する。このパケットは、その現在のVNIと一致しない宛先MACアドレスを有することになり、したがって、ブリッジに送信された。プロセスは、(3505で)パケットが、ブリッジングMPREが以前に知ることがなかった送信元MACアドレスを有するかどうか(すなわち、送信元MACアドレスが、特定のインタフェースと結び付けられるようにそれ自体のブリッジテーブルに格納されているかどうか)を判定する。そうである場合、プロセスは3510に進む。ブリッジングMPREが、以前に送信元MACアドレスを知っていた場合、プロセスは3520に進む。
3510では、プロセスは、送信元MACアドレスと、ブリッジングMPREがデータパケットを受信した元のオーバレイネットワーク(又は、ネットワークセグメント)のVNI(すなわち、ブリッジングMPREによる受信時にパケットにタグ付けされたVNI)とをペアリングする新しいエントリで、そのブリッジテーブルを更新する。送信元MACは、VNIによって識別されるネットワークセグメント内にあることが確実であるため、この情報は、その宛先アドレスとして同じMACアドレスを有する将来のパケットをブリッジングするために有用である。この情報は、このMACアドレスとそのVNIとの間のペアリングを提供するために、ブリッジテーブルに格納される。
プロセスは、次に、(3520で)宛先MACアドレスのためのエントリを、そのブリッジングテーブル内に見つけることができるかどうかを判定する。ブリッジングMPREが、このMACアドレスからのパケットを以前にブリッジングしている場合、アドレスは、(ブリッジングMPREがタイムアウトしない限り)MAC:VNIペアリングとしてそのテーブル内に格納されているべきである。
宛先アドレスが、ブリッジングテーブル内にない場合、プロセスは、(3530で)データパケットが受信された元のオーバレイネットワークのブリッジLIF以外のすべてのブリッジLIFにフラッドする。いくつかの実施形態では、プロセスは、異なるVNIを有するが、同じ宛先MACアドレスを有する異なるオーバレイネットワークに同じデータパケットを送信することによって、すべてのブリッジLIFをフラッドする。パケットがその宛先に到達したと仮定すると、ブリッジMPREは、おそらく宛先から応答パケットを受信することになり、その時点で、プロセス3500の別のインスタンシエイションが、(3505で)ブリッジングMPREにMAC:VNIペアリングを学習させることになる。
宛先アドレスが、ブリッジングテーブル内にある場合、プロセスは、(3550で)宛先MACのためのVNIを使用することによって、パケットをその宛先にブリッジする。このVNI−MACペアリングは、ブリッジングテーブル内に見つかり、いくつかの実施形態では、LIF構成は、ブリッジングを実行する方法(すなわち、VNIをパケットに追加する方法)についての命令を含む。パケットをその宛先インタフェースに(又は、フラッディングの場合では、LIFのすべてに)ブリッジングした後、プロセス3500は終了する。
III.VDRの制御及び構成
いくつかの実施形態では、上述したように(ルーティング及び/又はブリッジングのための)MPREとしてホストマシン内でローカルに動作するLREインスタンシエイションは、コントローラのクラスタによって生成される構成データセットによって構成される。いくつかの実施形態でのコントローラは、異なるテナント又はユーザによって作成及び指定された論理ネットワークに基づいて、これらの構成データセットを生成する。いくつかの実施形態では、ネットワーク仮想化インフラストラクチャのネットワークマネージャは、ユーザが、ネットワーク仮想化インフラストラクチャ上で実装することができる異なる論理ネットワークを生成することを可能にし、次に、これらの論理ネットワークのパラメータをコントローラにプッシュし、そのため、コントローラは、LREのための構成データを含むホストマシンの特定の構成データセットを生成することができる。いくつかの実施形態では、ネットワークマネージャは、コントローラからLREに関する構成データを取得するための命令を、ホストマシンに提供する。
いくつかの実施形態に関して、図36は、ネットワーク仮想化インフラストラクチャ3600を示し、ネットワーク仮想化インフラストラクチャ3600では、論理ネットワークの仕様は、ホストマシン内のLREのための構成に(MPRE/ブリッジとなるように)変換される。図示のように、ネットワーク仮想化インフラストラクチャ3600は、ネットワークマネージャ3610、1つ又は複数のコントローラのクラスタ3620、及び、物理ネットワークによって相互接続されたホストマシン3630を含む。ホストマシン3635〜3639は、この図には示されていないが、ホストマシン3630は、ホストマシン3631〜3639を含む。
ネットワークマネージャ3610は、1つ又は複数のユーザ作成論理ネットワークのための仕様を提供する。いくつかの実施形態では、ネットワークマネージャは、ユーザに、ネットワーク仮想化インフラストラクチャ3600上で仮想化することができるユーザ自体の論理ネットワークを指定させるアプリケーションのスイートを含む。いくつかの実施形態では、ネットワークマネージャは、ユーザがプログラミング環境で論理ネットワークを指定するための、アプリケーションプログラミングインタフェース(API)を提供する。ネットワークマネージャは、次に、これらの作成された論理ネットワークを、ホストマシンでの実装のために、コントローラのクラスタ3620にプッシュする。
コントローラクラスタ3620は、ネットワーク仮想化インフラストラクチャ3600内のホストマシン3630の動作を制御するための複数のコントローラを含む。コントローラは、ネットワークマネージャによって作成された論理ネットワークに基づいて、ホストマシンのための構成データセットを作成する。コントローラは、また、構成更新及びルーティング情報を、ホストマシン3631〜3634に動的に提供する。いくつかの実施形態では、コントローラは、特定の制御プレーンノードに障害が発生した場合でも、各ホストマシンが、更新及びルートを依然として受信することができることを保証するために、分散型又は弾力性のある制御プレーンアーキテクチャを提供するために編成される。いくつかの実施形態では、コントローラの少なくともいくつかは、ホストマシン内で動作する仮想マシンである。
ホストマシン3630は、LREを動作させ、LREをMPRE/ブリッジとして構成するための構成データを、コントローラクラスタ3620から受信する。ホストマシンの各々は、コントローラのクラスタ3620から構成データを回収するためのコントローラエージェントを含む。いくつかの実施形態では、各ホストマシンは、VDR制御プレーンにしたがって、そのMPRE転送テーブルを更新する。いくつかの実施形態では、VDR制御プレーンは、最適なルートをアドバタイズ/決定するために、OSPF(開放型最短経路優先)又はBGP(境界ゲートウェイプロトコル)のような標準的なルート交換プロトコルをルーティングピアに使用することによって通信する。
図36は、また、ホストマシン3630内のLREを構成するために、ネットワーク仮想化インフラストラクチャ3600内で行われる動作を示す。動作「1」では、ネットワークマネージャ3610は、LREのための構成を取得するための命令を、ホストマシンに伝達する。いくつかの実施形態では、この命令は、コントローラ3620のクラスタ内の特定の場所を指し示すアドレスを含む。動作「2」では、ネットワークマネージャ3610は、論理ネットワークの仕様を、クラスタ3620内のコントローラに送信し、コントローラは、個々のホストマシン及びLREのための構成データを生成する。
動作「3」では、ホストマシン3630内で動作するコントローラエージェントは、動作「2」で受信した命令に基づいて、コントローラのクラスタ3620からのLRE構成のための要求を送信する。すなわち、コントローラエージェントは、それらがネットワークマネージャ3610によって示されるコントローラと接触する。動作「4」では、コントローラのクラスタ3620は、要求に応じて、ホストマシンにLRE構成を提供する。
図37は、ネットワークマネージャ3610から、個々のホストマシン3631〜3634内で動作するLREへの構成データの配信を概念的に示す。図示のように、ネットワークマネージャ3610は、ユーザの仕様に応じて異なるテナントのための論理ネットワークを作成する。ネットワークマネージャは、作成した論理ネットワーク3710及び3720の記述を、コントローラ3620に配信する。コントローラ3620は、論理ネットワーク記述3710及び3720を、それぞれ、個々のホストマシン3631〜3634に配信するための構成データセット3731〜3734に処理する。他の実施形態では、しかしながら、ネットワークマネージャは、これらの構成データセットを生成し、コントローラは、ホストマシンへの配信を担当するだけである。これらの構成データセットは、次に、個々のホストマシン内でMPREとして動作するように、異なる論理ネットワークのLREを構成するために使用される。
図38は、個々のホストマシンに配信される構成データセットの構造を示す。図は、ホストマシン3631〜3639のための構成データセット3731〜3737を示す。ホストマシンは、2つの異なるテナントX及びYのための2つのLRE3810及び3820を動作させている。ホストマシン3631、3632、3634、及び3637は、それぞれ、(テナントXの)LRE3810のMPREを動作させるように構成され、ホストマシン3632、3633、3634、及び3635は、それぞれ、(テナントYの)LRE3820のMPREを動作させるように構成される。図7を参照して上述したように、異なるテナントの異なる論理ネットワークのための異なるLREが、同じホストマシン内に存在することができることは注目に値する。図38の例では、ホストマシン3632は、テナントXのためのLRE3810及びテナントYのためのLRE3820の両方のためのMPREを動作させている。
テナントXのためのLRE3810は、ネットワークセグメントA、B、及びCのためのLIFを含む。テナントYのためのLRE3820は、ネットワークセグメントD、E、及びFのためのLIFを含む。いくつかの実施形態では、各論理インタフェースは、論理ネットワークに固有のものであり、論理インタフェースは、異なるテナントのための異なるLREに現れることができない。
いくつかの実施形態でのホストのための構成データは、そのVMAC(すべてのホストに関して一般的である)、そのユニークなPMAC、及び、そのホスト上で動作するLREのリストを含む。例えば、ホスト3633のための構成データは、ホスト3633が、LRE3820のためのMPREを動作させていることを示すことになり、ホスト3634のための構成データは、ホスト3634が、LRE3810及びLRE3820のためのMPREを動作させていることを示すことになる。いくつかの実施形態では、所与のホストマシンのテナントXのためのMPRE及びテナントYのためのMPREは、両方とも、ホストマシンに割り当てられた同じユニークなPMACによってアドレス指定可能である。
いくつかの実施形態でのLREのための構成データは、LIFのリスト、ルーティング/転送テーブル、及び、コントローラクラスタ情報を含む。コントローラクラスタ情報は、いくつかの実施形態では、更新された制御及び構成情報をどこで取得するのかをホストに通知する。いくつかの実施形態では、LREのための構成データは、異なるホストマシン間でLREのインスタンシエイション(すなわち、MPRE)のすべてのために複製される。
いくつかの実施形態でのLIFのための構成データは、論理インタフェースの名前(例えば、UUID)、そのIPアドレス、そのMACアドレス(すなわち、LMAC又はVMAC)、そのMTU(最大転送単位)、その宛先情報(例えば、インタフェースするネットワークセグメントのVNI)、特定のホスト上でアクティブであるか非アクティブであるか、及び、ブリッジLIFであるかルーティングLIFであるかを含む。いくつかの実施形態では、論理インタフェースのための構成データセットは、また、ホスト上でそのMPREとして動作するLREが、指定されたインスタンスであり、物理(すなわち、非仮想、非VDR)ホストのためのアドレス解決を実行する必要があるかどうかを示す、外部対面パラメータを含む。
いくつかの実施形態では、LREは、ネットワークマネージャ内で動作するAPIによって構成又は制御される。例えば、いくつかの実施形態は、LREを作成するためのAPI、LREを削除するためのAPI、LIFを追加するためのAPI、及びLIFを削除するためのAPIを提供する。いくつかの実施形態では、コントローラは、ホストマシン内で(MPRE/ブリッジとして)動作するLREを構成するための静的な構成データを提供するだけでなく、静的及び/又は動的なルーティング情報も、MPREとして動作するローカルLREインスタンシエイションに提供する。いくつかの実施形態は、(例えば、LIFのMTU/MAC/IP情報を更新するために)LIFを更新するためのAPIを提供し、所与のLREのためのルートエントリを追加又は修正する。いくつかの実施形態でのルーティングエントリは、宛先IP又はサブネットマスク、ネクストホップ情報、論理インタフェース、メトリック、ルートタイプ(隣接するエントリ、又はネクストホップ、又はインタフェース、など)、ルート制御フラグ、及び(転送、ブラックホール、などのような)アクションのような情報を含む。
いくつかの実施形態は、MPREとして動作するLREのためのルーティング情報を動的に収集し、配信する。図39は、LREのための動的ルーティング情報の収集及び配信を示す。図示のように、ネットワーク仮想化インフラストラクチャ3600は、コントローラのクラスタ3620及びホストマシン3630を含むだけでなく、動的ルーティング情報を収集及び配信するための仮想マシン(「エッジVM」)を動作させるホストマシン3640も含む。いくつかの実施形態では、エッジVM3640は、OSPF又はBGPプロトコルを実行し、別のLAN又は他のネットワークのための外部ルータとして現れる。いくつかの実施形態では、エッジVM3640は、他のルータからのネットワークルートを学習する。それ自体のネットワークセグメント内の学習したルートを検証した後、エッジVM3640は、学習したルートをコントローラクラスタ3620に送信する。コントローラクラスタ3620は、次に、学習したルートを、ホストマシン3630内のMPREに伝播する。
IV.電子システム
上述した特徴及びアプリケーションの多くは、コンピュータ可読記憶媒体(コンピュータ可読媒体とも呼ばれる)に記録された命令のセットとして指定されるソフトウェアプロセスとして実装される。これらの命令が、1つ又は複数の処理ユニット(複数可)(例えば、1つ又は複数のプロセッサ、プロセッサのコア、又は他の処理ユニット)によって実行されると、それらは、処理ユニット(複数可)に、命令で指定されるアクションを実行させる。コンピュータ可読媒体の例は、CD−ROM、フラッシュドライブ、RAMチップ、ハードドライブ、EPROM、などを含むが、これらに限定されない。コンピュータ可読メディアは、無線で又は有線接続を通過する搬送波及び電子信号を含まない。
本明細書では、「ソフトウェア」という用語は、プロセッサによって処理するためにメモリ内に読み込むことができる、読み取り専用メモリ内に存在するファームウェア、又は、磁気ストレージに記憶されたアプリケーションを含むことを意味する。また、いくつかの実施形態では、複数のソフトウェア発明が、別個のソフトウェア発明を維持しながら、より大きいプログラムのサブパーツとして実装されてよい。いくつかの実施形態では、複数のソフトウェア発明が、別々のプログラムとして実装されてもよい。最後に、本明細書に記載のソフトウェア発明を一緒に実装する別々のプログラムのどのような組み合わせも、本発明の範囲内である。いくつかの実施形態では、ソフトウェアプログラムは、1つ又は複数の電子システム上で動作するようにインストールされると、ソフトウェアプログラムの動作を実行する1つ又は複数の特定の機械実装を定義する。
図40は、本発明のいくつかの実施形態を実装する電子システム4000を概念的に示す。電子システム4000は、上述した制御、仮想化、又はオペレーティングシステムアプリケーションのいずれかを実行するために使用されてよい。電子システム4000は、コンピュータ(例えば、デスクトップコンピュータ、パーソナルコンピュータ、タブレットコンピュータ、サーバコンピュータ、メインフレーム、ブレードコンピュータ、など)、電話、PDA、又は、任意の他の種類の電子デバイスであってよい。このような電子システムは、様々なタイプのコンピュータ可読メディア、及び、様々な他のタイプのコンピュータ可読記憶メディアのためのインタフェースを含む。電子システム4000は、バス4005、処理ユニット(複数可)4010、システムメモリ4025、読み取り専用メモリ4030、永久記憶デバイス4035、入力デバイス4040、及び出力デバイス4045を含む。
バス4005は、電子システム4000の多数の内部デバイスを通信可能に接続するすべてのシステムバス、周辺機器バス、及びチップセットバスを集合的に表す。例えば、バス4005は、処理ユニット(複数可)4010を、読み取り専用メモリ4030、システムメモリ4025、及び永久記憶デバイス4035に通信可能に接続する。
これらの様々なメモリユニットから、処理ユニット(複数可)4010は、本発明のプロセスを実行するために、実行する命令及び処理するデータを取り出す。処理ユニット(複数可)は、異なる実施形態では、単一のプロセッサ又はマルチコアプロセッサであってよい。
読み取り専用メモリ(ROM)4030は、処理ユニット(複数可)4010、及び電子システムの他のモジュールによって必要とされる、静的なデータ及び命令を格納する。永久記憶デバイス4035は、他方では、読み書きメモリデバイスである。このデバイスは、電子システム4000がオフの場合でも、命令及びデータを格納する、不揮発性メモリユニットである。本発明のいくつかの実施形態は、(磁気又は光ディスク、及びその対応ディスクドライブのような)大容量記憶デバイスを、永久記憶デバイス4035として使用する。
他の実施形態は、(フロッピー(登録商標)ディスク、フラッシュドライブ、などのような)リムーバブル記憶デバイスを、永久記憶デバイスとして使用する。永久記憶デバイス4035と同様に、システムメモリ4025は、読み書きメモリデバイスである。しかしながら、永久記憶デバイス4035とは異なり、システムメモリは、ランダムアクセスメモリのような揮発性読み書きメモリである。システムメモリは、プロセッサが実行時に必要とする命令及びデータの一部を格納する。いくつかの実施形態では、本発明のプロセスは、システムメモリ4025、永久記憶デバイス4035、及び/又は読み取り専用メモリ4030に格納される。これらの様々なメモリユニットから、処理ユニット(複数可)4010は、いくつかの実施形態のプロセスを実行するために、実行する命令及び処理するデータを取り出す。
バス4005は、入力及び出力デバイス4040及び4045にも接続する。入力デバイスは、ユーザが、電子システムに情報を通信し、コマンドを選択することを可能にする。入力デバイス4040は、英数字キーボード及びポインティングデバイス(「カーソル制御デバイス」とも呼ばれる)を含む。出力デバイス4045は、電子システムによって生成された画像を表示する。出力デバイスは、プリンタ、及び、陰極線管(CRT)又は液晶ディスプレイ(LCD)のような表示デバイスを含む。いくつかの実施形態は、入力及び出力デバイスの両方として機能するタッチスクリーンのようなデバイスを含む。
最後に、図40に示すように、バス4005は、また、電子システム4000を、ネットワークアダプタ(図示せず)を介してネットワーク4065に結合する。このように、コンピュータは、(ローカルエリアネットワーク(「LAN」)のような)コンピュータのネットワーク、ワイドエリアネットワーク(「WAN」)、若しくはインターネット、又は、インターネットのようなネットワークのネットワークの一部であってよい。電子システム4000のいずれか又はすべての構成要素は、本発明と共に使用されてよい。
いくつかの実施形態は、コンピュータプログラム命令を、機械可読又はコンピュータ可読媒体(代わりに、コンピュータ可読記憶メディア、機械可読メディア、又は機械可読記憶メディアとも呼ばれる)に格納する、マイクロプロセッサ、ストレージ、及びメモリのような電子構成要素を含む。このようなコンピュータ可読メディアのいくつかの例は、RAM、ROM、読み取り専用コンパクトディスク(CD−ROM)、追記型コンパクトディスク(CD−R)、書き換え可能コンパクトディスク(CD−RW)、読み取り専用デジタル多用途ディスク(例えば、DVD−ROM、二層DVD−ROM)、様々な追記型/書き換え可能DVD(例えば、DVD−RAM、DVD−RW、DVD+RW、など)、フラッシュメモリ(例えば、SDカード、ミニ−SDカード、マイクロ−SDカード、など)、磁気及び/又は固体ハードドライブ、読み取り専用及び記録可能ブルーレイディスク(登録商標)、超高密度光ディスク、任意の他の光又は磁気メディア、並びにフロッピーディスクを含む。コンピュータ可読メディアは、少なくとも1つの処理ユニットによって実行可能で、様々な動作を実行する命令のセットを含むコンピュータプログラムを格納することができる。コンピュータプログラム又はコンピュータコードの例は、コンパイラによって生成されるような機械コード、及び、インタプリタを使用するコンピュータ、電子構成要素、又はマイクロプロセッサによって実行される、より高いレベルのコードを含むファイルを含む。
上記の説明は、主に、ソフトウェアを実行するマイクロプロセッサ又はマルチコアプロセッサに言及しているが、いくつかの実施形態は、特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)のような、1つ又は複数の集積回路によって実行される。いくつかの実施形態では、このような集積回路は、回路自体に格納された命令を実行する。
本明細書で使用される「コンピュータ」、「サーバ」、「プロセッサ」、及び「メモリ」という用語は、すべて、電子的又は他の技術的デバイスを指す。これらの用語は、人間又は人間のグループを除外する。本明細書の目的のために、表示又は表示するという用語は、電子デバイス上での表示を意味する。本明細書で使用される「コンピュータ可読メディア」、「コンピュータ可読媒体」、及び「機械可読媒体」という用語は、コンピュータによって読み取り可能な形式で情報を格納する有形の物理的物体に完全に限定される。これらの用語は、いかなる無線信号、有線のダウンロード信号、及びいかなる他の一時的な信号も除外する。
本発明を、多数の特定の詳細を参照して説明してきたが、当業者は、本発明が、本発明の要旨から逸脱することなく、他の特定な形態で具体化されてよいことを認識するであろう。加えて、(図11、14、15、22、及び35を含む)多数の図面は、プロセスを概念的に示す。これらのプロセスの特定の動作は、図示及び説明された正確な順序で実行されなくてよい。特定の動作は、ひと続きの動作で実行されなくてよく、異なる特定の動作が、異なる実施形態で実施されてよい。さらに、プロセスは、いくつかのサブプロセスを使用して、又は、より大きいマクロプロセスの一部として実施されてよい。したがって、当業者は、本発明が、上記の例示的な詳細によって限定されず、添付の特許請求の範囲によって定義されるべきであることを理解するであろう。

Claims (27)

  1. 複数の仮想マシンをホストする複数のホストマシンと、前記複数のホストマシンを相互接続する物理ネットワークと、を備えるシステムであって、
    前記ホストマシンのそれぞれは、
    前記ホストマシン上で動作する仮想マシンのセットへの及び前記仮想マシンのセットからのパケットのリンク層での転送を実行するための複数のポートを備え、それぞれのポートは一意の媒体アクセス制御(MAC)アドレスに関連づけられている、仮想スイッチと、
    前記仮想スイッチのポートからのデータパケットを受け取り、第1のネットワークセグメントの第1の仮想マシンから受け取ったデータパケットを第2のネットワークセグメントの第2の仮想マシンへと転送するためにネットワーク層でのルーティングを実行する、仮想ルータと、
    を備えることを特徴とするシステム。
  2. ネットワークセグメントがIP(インターネットプロトコル)サブネットとカプセル化オーバレイネットワークとのうちの1つであることを特徴とする、請求項1に記載のシステム。
  3. 前記ネットワークセグメントの少なくとも1つがカプセル化オーバレイネットワークであることを特徴とする、請求項1に記載のシステム。
  4. 前記第1及び第2のネットワークセグメントが、異なるネットワーク識別子を有する異なるカプセル化オーバレイネットワークであることを特徴とする、請求項1に記載のシステム。
  5. 前記仮想ルータが前記データパケットを受け取る前記ポートが、前記複数のホストマシンのうちの全てのホストマシンに共通な仮想MAC(VMAC)アドレスと関連づけられていることを特徴とする、請求項1に記載のシステム。
  6. それぞれのホストマシンには、当該ホストマシンの仮想ルータを他のホストマシンからアドレス指定するための一意の物理MAC(PMAC)アドレスが割り当てられており、異なるホストマシンには異なるPMACが割り当てられることを特徴とする、請求項5に記載のシステム。
  7. それぞれのホストマシンは、入ってくるデータパケットが前記仮想スイッチに到達する前に、前記物理ネットワークから入ってくる前記データパケットの前記PMACアドレスを前記VMACアドレスに変換することを特徴とする、請求項6に記載のシステム。
  8. それぞれのホストマシンは、出て行くデータパケットが前記仮想スイッチから出た後に、前記物理ネットワークへと出て行く前記データパケットの前記VMACアドレスを前記PMACアドレスに変換することを特徴とする、請求項6に記載のシステム。
  9. 論理ネットワークにおいてホストマシンとして働くコンピューティングデバイスであって、前記コンピューティングデバイスはコンピュータプログラムを実行し、
    前記コンピュータプログラムは、
    前記論理ネットワークの複数の異なるセグメントにある複数の仮想マシンを実行する命令セットと、
    前記論理ネットワークの異なるセグメント間でデータパケットをルーティングする、管理される物理ルーティング要素(MPRE)を動作させる命令セットと、を含み、
    前記MPREは複数の論理インタフェースを備え、
    それぞれの論理インタフェースは前記論理ネットワークの異なるセグメントからデータパケットを受け取るためのものであり、
    前記論理インタフェースのそれぞれはネットワーク層のアドレスによりアドレス指定可能であり、
    前記コンピュータプログラムはさらに、
    宛先アドレスが前記論理インタフェースのうちの1つのネットワークアドレスと一致する場合にアドレス解決プロトコル(ARP)ブロードキャストメッセージを捉える命令セットと、
    前記ARPブロードキャストメッセージに対するARP応答を作成する命令セットと、
    を含むことを特徴とする、コンピューティングデバイス。
  10. 前記ARPブロードキャストメッセージは、前記ホストマシンで動作する仮想マシンによって送られることを特徴とする、請求項9に記載のコンピューティングデバイス。
  11. 前記ARPブロードキャストメッセージは、ブロードキャスト媒体アクセス制御(MAC)アドレスを含み、
    前記ブロードキャストMACアドレスを前記MPREの仮想MAC(VMAC)アドレスで置き換えることを含むことを特徴とする、請求項9に記載のコンピューティングデバイス。
  12. 前記ARP応答の送信元MACアドレスが前記MPREの仮想MAC(VMAC)アドレスに設定され、前記VMACは前記論理ネットワーク内の全てのホストマシンに共通であることを特徴とする、請求項9に記載のコンピューティングデバイス。
  13. 前記論理ネットワークの前記セグメントのうちの少なくとも1つがオーバレイカプセル化ネットワークであることを特徴とする、請求項9に記載のコンピューティングデバイス。
  14. 論理ネットワーク内で複数の仮想マシンをホストする複数のホストマシンと、前記論理ネットワーク内で仮想マシンをホストしない物理ホストマシンと、を備えるシステムであって、
    前記ホストマシンのそれぞれは、前記論理ネットワークの異なるセグメントにある仮想マシン間でデータパケットをルーティングする、管理される物理ルーティング要素(MPRE)を動作させ、
    前記物理ホストマシンから前記複数のホストマシンによってホストされる前記仮想マシンへのデータパケットに対するネットワーク層でのルーティングを実行するために、特定のホストマシンの特定のMPREが選択される
    ことを特徴とするシステム。
  15. 前記物理ホストマシンから前記特定のホストマシン以外のホストマシンへのデータパケットが、前記選択されたMPREによってルーティングされることを特徴とする、請求項14に記載のシステム。
  16. 前記他のホストマシンから前記物理ホストマシンへのデータパケットは前記選択されたMPREによってルーティングされないことを特徴とする、請求項15に記載のシステム。
  17. 前記特定のホストマシンではないホストマシンは、前記特定のホストマシンからの、前記物理ホストについてのアドレス解決情報を要求することを特徴とする、請求項16に記載のシステム。
  18. 前記物理ホストマシンから前記複数のホストマシンへのデータパケットは、前記選択されたルータに関連づけられた一意の物理媒体アクセス制御(PMAC)アドレスを宛先アドレスとして用いることを特徴とする、請求項14に記載のシステム。
  19. 前記複数のホストマシンのそれぞれのホストマシンは、ルーティング前に前記選択されたルータの前記PMACを仮想MAC(VMAC)アドレスで置き換え、前記VMACは前記複数のホストマシンの前記MPREに対して包括的なものであることを特徴とする、請求項18に記載のシステム。
  20. それぞれのホストマシンから前記物理ホストマシンへのデータパケットは、それぞれのホストマシン自身の一意のPMACアドレスを送信元アドレスとして用いることを特徴とする、請求項18に記載のシステム。
  21. ネットワーク仮想化インフラストラクチャ上で複数の論理ネットワークを動作させる方法であって、
    管理される物理スイッチング要素(MPSE)を規定する工程を含み、
    前記MPSEは、複数の仮想マシンへの及び前記複数の仮想マシンからのパケットの転送のための複数のポートを備え、
    それぞれのポートは一意の媒体アクセス制御(MAC)アドレスに関連づけられており、
    前記方法はさらに、複数の異なる論理ネットワークについて複数の管理される物理ルーティング要素(MPRE)を規定する工程を含み、
    それぞれのMPREは前記MPSEの同じポートからデータパケットを受け取るためのものであり、
    それぞれのMPREは異なる論理ネットワークについて規定されており、かつ前記論理ネットワークの異なるセグメント間でデータパケットをルーティングするためのものであり、
    前記方法はさらに、前記規定されたMPSE及び前記規定された複数のMPREを構成データとして複数のホストマシンに提供する工程を含む
    ことを特徴とする方法。
  22. 前記規定されたMPSE及び前記規定された複数のMPREを前記複数のホストマシンに提供する工程は、
    前記構成データを、前記複数のホストマシンを制御するコントローラのクラスタに提供する工程と、
    前記コントローラのクラスタから構成データのセットを取得するためにそれぞれのホストマシンに命令セットを提供する工程と、
    を含むことを特徴とする、請求項21に記載の方法。
  23. それぞれのMPREについて複数の論理インタフェースを規定する工程をさらに含み、それぞれの論理インタフェースは異なるネットワークセグメントに関連づけられることを特徴とする、請求項21に記載の方法。
  24. それぞれの論理インタフェースは異なるインターネットプロトコル(IP)アドレスに関連づけられることを特徴とする、請求項23に記載の方法。
  25. 前記異なる論理ネットワークは、前記異なる論理インタフェースによって互いに隔離されていることを特徴とする、請求項23に記載の方法。
  26. 前記ネットワーク仮想化インフラストラクチャは複数の異なるテナントをサポートし、それぞれの論理ネットワークは異なるテナントについて規定されることを特徴とする、請求項21に記載の方法。
  27. 前記提供された構成データは、前記複数の論理ネットワークについての前記複数のMPREをそれぞれのホストマシンが動作させるためのものであることを特徴とする、請求項21に記載の方法。
JP2014034696A 2013-10-13 2014-02-25 論理ルータ Active JP5925820B2 (ja)

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
US201361890309P 2013-10-13 2013-10-13
US61/890,309 2013-10-13
US201361962298P 2013-10-31 2013-10-31
US61/962,298 2013-10-31
US14/137,877 US9977685B2 (en) 2013-10-13 2013-12-20 Configuration of logical router
US14/137,862 US9785455B2 (en) 2013-10-13 2013-12-20 Logical router
US14/137,877 2013-12-20
US14/137,869 2013-12-20
US14/137,867 2013-12-20
US14/137,867 US9575782B2 (en) 2013-10-13 2013-12-20 ARP for logical router
US14/137,862 2013-12-20
US14/137,869 US9910686B2 (en) 2013-10-13 2013-12-20 Bridging between network segments with a logical router

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016084749A Division JP6266035B2 (ja) 2013-10-13 2016-04-20 論理ルータ

Publications (2)

Publication Number Publication Date
JP2015076874A true JP2015076874A (ja) 2015-04-20
JP5925820B2 JP5925820B2 (ja) 2016-05-25

Family

ID=52813757

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2014034696A Active JP5925820B2 (ja) 2013-10-13 2014-02-25 論理ルータ
JP2016084749A Active JP6266035B2 (ja) 2013-10-13 2016-04-20 論理ルータ
JP2017242829A Active JP6317851B1 (ja) 2013-10-13 2017-12-19 論理ルータ

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2016084749A Active JP6266035B2 (ja) 2013-10-13 2016-04-20 論理ルータ
JP2017242829A Active JP6317851B1 (ja) 2013-10-13 2017-12-19 論理ルータ

Country Status (6)

Country Link
US (7) US9910686B2 (ja)
EP (2) EP3627780B1 (ja)
JP (3) JP5925820B2 (ja)
KR (4) KR102181554B1 (ja)
CN (3) CN105684363B (ja)
WO (1) WO2015054671A2 (ja)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9191360B2 (en) * 2013-01-22 2015-11-17 International Business Machines Corporation Address management in an overlay network environment
US9882713B1 (en) 2013-01-30 2018-01-30 vIPtela Inc. Method and system for key generation, distribution and management
US9531676B2 (en) * 2013-08-26 2016-12-27 Nicira, Inc. Proxy methods for suppressing broadcast traffic in a network
US9910686B2 (en) 2013-10-13 2018-03-06 Nicira, Inc. Bridging between network segments with a logical router
US9876715B2 (en) * 2013-11-05 2018-01-23 Cisco Technology, Inc. Network fabric overlay
US9967199B2 (en) 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
US10158538B2 (en) * 2013-12-09 2018-12-18 Nicira, Inc. Reporting elephant flows to a network controller
US9467478B1 (en) * 2013-12-18 2016-10-11 vIPtela Inc. Overlay management protocol for secure routing based on an overlay network
CN103731353B (zh) * 2013-12-26 2017-07-14 华为技术有限公司 虚拟机的物理地址获取方法
US10200239B2 (en) * 2013-12-27 2019-02-05 Red Hat Israel, Ltd. Normalized management network
US9794128B2 (en) 2013-12-30 2017-10-17 International Business Machines Corporation Overlay network movement operations
KR20150088499A (ko) * 2014-01-24 2015-08-03 한국전자통신연구원 송신 노드의 ip 및 mac 테이블들 및 송신 노드와 연결된 서버의 arp 테이블을 관리하는 방법 및 장치
US10120729B2 (en) 2014-02-14 2018-11-06 Vmware, Inc. Virtual machine load balancing
CN106576075B (zh) 2014-03-27 2021-01-26 Nicira股份有限公司 在网络虚拟化基础设施上操作逻辑网络的方法和系统
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
US9413644B2 (en) 2014-03-27 2016-08-09 Nicira, Inc. Ingress ECMP in virtual distributed routing environment
KR101945886B1 (ko) * 2014-06-27 2019-02-11 노키아 솔루션스 앤드 네트웍스 오와이 계층-2 스위칭에 기초한 초고속 모바일 네트워크
US20160050146A1 (en) * 2014-08-15 2016-02-18 Turbostor, Inc. Accelerated storage appliance using a network switch
US9858100B2 (en) 2014-08-22 2018-01-02 Nicira, Inc. Method and system of provisioning logical networks on a host machine
US20160065503A1 (en) * 2014-08-29 2016-03-03 Extreme Networks, Inc. Methods, systems, and computer readable media for virtual fabric routing
US10560353B1 (en) * 2014-09-16 2020-02-11 Amazon Technologies, Inc. Deployment monitoring for an application
US9501307B2 (en) * 2014-09-26 2016-11-22 Comcast Cable Communications, Llc Systems and methods for providing availability to resources
US10250443B2 (en) 2014-09-30 2019-04-02 Nicira, Inc. Using physical location to modify behavior of a distributed virtual network element
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US9768980B2 (en) 2014-09-30 2017-09-19 Nicira, Inc. Virtual distributed bridging
US10020960B2 (en) * 2014-09-30 2018-07-10 Nicira, Inc. Virtual distributed bridging
US10079779B2 (en) 2015-01-30 2018-09-18 Nicira, Inc. Implementing logical router uplinks
CN106209636B (zh) 2015-05-04 2019-08-02 新华三技术有限公司 从vlan至vxlan的组播数据报文转发方法和设备
CN106209648B (zh) 2015-05-04 2019-06-14 新华三技术有限公司 跨虚拟可扩展局域网的组播数据报文转发方法和设备
CN106209689B (zh) 2015-05-04 2019-06-14 新华三技术有限公司 从vxlan至vlan的组播数据报文转发方法和设备
US10554547B2 (en) * 2015-05-07 2020-02-04 Cisco Technology, Inc. Scalable network address translation at high speed in a network environment
US9558029B2 (en) 2015-05-17 2017-01-31 Nicira, Inc. Logical processing for containers
US9804880B2 (en) * 2015-06-16 2017-10-31 Vmware, Inc. Reservation for a multi-machine application
JP2017011487A (ja) * 2015-06-22 2017-01-12 富士通株式会社 情報処理システム、情報処理システムの制御プログラム及び情報処理システムの制御方法
US10243848B2 (en) * 2015-06-27 2019-03-26 Nicira, Inc. Provisioning logical entities in a multi-datacenter environment
US10348625B2 (en) 2015-06-30 2019-07-09 Nicira, Inc. Sharing common L2 segment in a virtual distributed router environment
WO2017003957A1 (en) 2015-06-30 2017-01-05 Nicira, Inc Intermediate logical interfaces in a virtual distributed router environment
US9992153B2 (en) * 2015-07-15 2018-06-05 Nicira, Inc. Managing link aggregation traffic in edge nodes
US10243914B2 (en) * 2015-07-15 2019-03-26 Nicira, Inc. Managing link aggregation traffic in edge nodes
US10567347B2 (en) * 2015-07-31 2020-02-18 Nicira, Inc. Distributed tunneling for VPN
US10033622B2 (en) * 2015-08-07 2018-07-24 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Controller-based dynamic routing in a software defined network environment
US10078526B2 (en) 2015-11-01 2018-09-18 Nicira, Inc. Securing a managed forwarding element that operates within a data compute node
US10063469B2 (en) 2015-12-16 2018-08-28 Nicira, Inc. Forwarding element implementation for containers
US9980303B2 (en) 2015-12-18 2018-05-22 Cisco Technology, Inc. Establishing a private network using multi-uplink capable network devices
JP6579258B2 (ja) * 2016-03-02 2019-09-25 日本電気株式会社 ネットワークシステム、制御装置、仮想ネットワーク機能の構築方法及びプログラム
US10581793B1 (en) * 2016-04-29 2020-03-03 Arista Networks, Inc. Address resolution in virtual extensible networks
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US10397136B2 (en) 2016-08-27 2019-08-27 Nicira, Inc. Managed forwarding element executing in separate namespace of public cloud data compute node than workload application
US10341371B2 (en) 2016-08-31 2019-07-02 Nicira, Inc. Identifying and handling threats to data compute nodes in public cloud
JP6744985B2 (ja) * 2016-08-27 2020-08-19 ニシラ, インコーポレイテッド ネットワーク制御システムのパブリッククラウドへの拡張
US20180150256A1 (en) 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
CN107094187A (zh) * 2017-04-01 2017-08-25 汕头大学 一种自动查找mac地址的接入交换机端口的方法
WO2019018261A1 (en) * 2017-07-17 2019-01-24 Nicira, Inc. DISTRIBUTED MULTICAST LOGIC ROUTER
US10873473B2 (en) 2017-07-17 2020-12-22 Nicira, Inc. Distributed multicast logical router
US10523455B2 (en) * 2017-07-17 2019-12-31 Nicira, Inc. Distributed multicast logical router
US10218523B2 (en) 2017-07-17 2019-02-26 Nicira, Inc. Using a central controller cluster to configure a distributed multicast logical router
US10567482B2 (en) 2017-08-24 2020-02-18 Nicira, Inc. Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table
US10491516B2 (en) 2017-08-24 2019-11-26 Nicira, Inc. Packet communication between logical networks and public cloud service providers native networks using a single network interface and a single routing table
US10778579B2 (en) 2017-08-27 2020-09-15 Nicira, Inc. Performing in-line service in public cloud
US10623369B2 (en) * 2017-09-13 2020-04-14 Charter Communications Operating, Llc Device and method for discovery and announcement of secondary end-point reachability information
US10116671B1 (en) * 2017-09-28 2018-10-30 International Business Machines Corporation Distributed denial-of-service attack detection based on shared network flow information
US10992636B2 (en) * 2017-09-29 2021-04-27 Cisco Technology, Inc. Mitigating network/hardware address explosion in network devices
CN107579900B (zh) * 2017-10-13 2020-07-28 锐捷网络股份有限公司 从vlan网络接入vxlan网络的方法、装置及系统
KR102352156B1 (ko) * 2017-10-26 2022-01-17 삼성전자주식회사 Arp를 수행하는 슬레이브 장치 및 이의 동작 방법
US10511459B2 (en) 2017-11-14 2019-12-17 Nicira, Inc. Selection of managed forwarding element for bridge spanning multiple datacenters
US10374827B2 (en) 2017-11-14 2019-08-06 Nicira, Inc. Identifier that maps to different networks at different datacenters
US10601705B2 (en) 2017-12-04 2020-03-24 Nicira, Inc. Failover of centralized routers in public cloud logical networks
US10862753B2 (en) 2017-12-04 2020-12-08 Nicira, Inc. High availability for stateful services in public cloud logical networks
CN108471397B (zh) * 2018-01-31 2020-12-15 华为技术有限公司 防火墙配置、报文发送方法和装置
US10536563B2 (en) * 2018-02-06 2020-01-14 Nicira, Inc. Packet handling based on virtual network configuration information in software-defined networking (SDN) environments
US11343229B2 (en) 2018-06-28 2022-05-24 Vmware, Inc. Managed forwarding element detecting invalid packet addresses
US10491466B1 (en) 2018-08-24 2019-11-26 Vmware, Inc. Intelligent use of peering in public cloud
US11374794B2 (en) 2018-08-24 2022-06-28 Vmware, Inc. Transitive routing in public cloud
US11196591B2 (en) 2018-08-24 2021-12-07 Vmware, Inc. Centralized overlay gateway in public cloud
US10992497B2 (en) * 2018-11-26 2021-04-27 Arrcus Inc. Logical router comprising disaggregated network elements
US10735541B2 (en) 2018-11-30 2020-08-04 Vmware, Inc. Distributed inline proxy
CN109873769A (zh) * 2018-12-28 2019-06-11 安徽中瑞通信科技股份有限公司 一种基于5g通信的智能路由器
US11101889B2 (en) * 2019-03-02 2021-08-24 Sealight Technologies, Inc. Virtual optical edge device
US11463398B2 (en) * 2019-07-10 2022-10-04 Vmware, Inc. Address resolution handling at logical distributed routers
US11115324B2 (en) * 2019-08-27 2021-09-07 Nokia Solutions Networks Oy System and method for performing segment routing over an MPLS network
CN113098749A (zh) * 2020-01-08 2021-07-09 华为技术有限公司 报文发送方法、装置及存储介质
US11394634B2 (en) 2020-04-06 2022-07-19 Vmware, Inc. Architecture for stretching logical switches between multiple datacenters
US11088919B1 (en) 2020-04-06 2021-08-10 Vmware, Inc. Data structure for defining multi-site logical network
US11374817B2 (en) 2020-04-06 2022-06-28 Vmware, Inc. Determining span of logical network element
US11496437B2 (en) * 2020-04-06 2022-11-08 Vmware, Inc. Selective ARP proxy
US11777793B2 (en) 2020-04-06 2023-10-03 Vmware, Inc. Location criteria for security groups
US11088902B1 (en) 2020-04-06 2021-08-10 Vmware, Inc. Synchronization of logical network state between global and local managers
US11689455B2 (en) 2020-05-28 2023-06-27 Oracle International Corporation Loop prevention in virtual layer 2 networks
US11962518B2 (en) 2020-06-02 2024-04-16 VMware LLC Hardware acceleration techniques using flow selection
JP2023535152A (ja) 2020-07-14 2023-08-16 オラクル・インターナショナル・コーポレイション 仮想レイヤ2ネットワーク
CN112019527B (zh) * 2020-08-13 2022-05-31 苏州浪潮智能科技有限公司 一种嵌入式设备固定mac地址的设置方法及系统
US11343283B2 (en) 2020-09-28 2022-05-24 Vmware, Inc. Multi-tenant network virtualization infrastructure
US11425044B2 (en) * 2020-10-15 2022-08-23 Cisco Technology, Inc. DHCP layer 2 relay in VXLAN overlay fabric
US11777849B2 (en) 2020-12-04 2023-10-03 Oracle International Corporation Multi-customer (multi-tenants) support with hypervisor based bond implementation
US11757773B2 (en) 2020-12-30 2023-09-12 Oracle International Corporation Layer-2 networking storm control in a virtualized cloud environment
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
US11805101B2 (en) 2021-04-06 2023-10-31 Vmware, Inc. Secured suppression of address discovery messages
US11595296B2 (en) 2021-06-29 2023-02-28 Vmware, Inc. Active-active support of multicast streams in virtualized environment
US11895010B2 (en) 2021-06-29 2024-02-06 VMware LLC Active-active support of multicast streams in virtualized environment
US11784926B2 (en) 2021-11-22 2023-10-10 Vmware, Inc. Optimized processing of multicast data messages in a host

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050182853A1 (en) * 2004-02-13 2005-08-18 Saul Lewites Apparatus and method for a dynamically extensible virtual switch
US20100107162A1 (en) * 2008-03-07 2010-04-29 Aled Edwards Routing across a virtual network
US20100287548A1 (en) * 2009-05-06 2010-11-11 Vmware, Inc. Long Distance Virtual Machine Migration
US20120158997A1 (en) * 2010-12-15 2012-06-21 Industrial Technology Research Institute Network system and method of address resolution
US20130031233A1 (en) * 2011-07-29 2013-01-31 International Business Machines Corporation Network filtering in a virtualized environment
US20130044641A1 (en) * 2011-08-17 2013-02-21 Teemu Koponen Federating interconnection switching element network to two or more levels
US20130103817A1 (en) * 2011-10-25 2013-04-25 Teemu Koponen Chassis controller
WO2013063330A1 (en) * 2011-10-25 2013-05-02 Nicira, Inc. Chassis controllers for converting universal flows
WO2013074827A1 (en) * 2011-11-15 2013-05-23 Nicira, Inc. Architecture of networks with middleboxes
JP2013175075A (ja) * 2012-02-27 2013-09-05 Fujitsu Ltd データ収集方法、情報処理システムおよびプログラム
JP2014230217A (ja) * 2013-05-24 2014-12-08 日本電信電話株式会社 ネットワーク装置、中継管理方法、中継管理プログラムおよび通信システム

Family Cites Families (342)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0737921B1 (en) 1990-09-17 2000-06-28 Cabletron Systems, Inc. System and method for modelling a computer network
US5742760A (en) 1992-05-12 1998-04-21 Compaq Computer Corporation Network packet switch using shared memory for repeating and bridging packets at media rate
SE9402059D0 (sv) 1994-06-13 1994-06-13 Ellemtel Utvecklings Ab Sätt och anordning vid telekommunikation
US5751967A (en) 1994-07-25 1998-05-12 Bay Networks Group, Inc. Method and apparatus for automatically configuring a network device to support a virtual network
US5550816A (en) 1994-12-29 1996-08-27 Storage Technology Corporation Method and apparatus for virtual switching
US6035105A (en) 1996-01-02 2000-03-07 Cisco Technology, Inc. Multiple VLAN architecture system
JP3684262B2 (ja) 1996-01-17 2005-08-17 富士通株式会社 ネットワークシステム及び集線装置
US6108304A (en) 1996-03-08 2000-08-22 Abe; Hajime Packet switching network, packet switching equipment, and network management equipment
JPH09307587A (ja) 1996-05-09 1997-11-28 Fujitsu Ltd 交換機
CA2213984A1 (en) 1996-08-22 1998-02-22 Norand Corporation Enhanced mobility and address resolution in a wireless premises based network
US6456624B1 (en) 1997-10-29 2002-09-24 Enterasys Networks, Inc. Network address resolve blocker
US6172981B1 (en) * 1997-10-30 2001-01-09 International Business Machines Corporation Method and system for distributing network routing functions to local area network stations
JP3609256B2 (ja) 1998-05-19 2005-01-12 株式会社日立製作所 ネットワーク管理装置,ノード装置及びネットワーク管理システム
US6424659B2 (en) 1998-07-17 2002-07-23 Network Equipment Technologies, Inc. Multi-layer switching apparatus and method
EP0978977A1 (en) * 1998-08-07 2000-02-09 International Business Machines Corporation A method and system for improving high speed internetwork data transfers
US6584102B1 (en) 1998-12-21 2003-06-24 At&T Corp. Communication network apparatus and method
US6950428B1 (en) 1998-12-30 2005-09-27 Hewlett-Packard Development Company, L.P. System and method for configuring adaptive sets of links between routers in a system area network (SAN)
US6640251B1 (en) * 1999-03-12 2003-10-28 Nortel Networks Limited Multicast-enabled address resolution protocol (ME-ARP)
US6963585B1 (en) 1999-10-21 2005-11-08 International Business Machines Corporation Method and system for establishing a virtual path capability in a frame relay network
US6680934B1 (en) 1999-12-02 2004-01-20 Nortel Networks Limited System, device and method for expediting control flow in a communication system
US20020013858A1 (en) 2000-02-09 2002-01-31 Anderson Keith R. ARP caching apparatus and method
US7215637B1 (en) * 2000-04-17 2007-05-08 Juniper Networks, Inc. Systems and methods for processing packets
US20020093952A1 (en) 2000-06-30 2002-07-18 Gonda Rumi Sheryar Method for managing circuits in a multistage cross connect
US7389358B1 (en) 2000-09-13 2008-06-17 Fortinet, Inc. Distributed virtual system to support managed, network-based services
US7260648B2 (en) 2001-01-25 2007-08-21 Ericsson, Inc. Extension of address resolution protocol (ARP) for internet protocol (IP) virtual networks
US6999454B1 (en) 2001-02-09 2006-02-14 Nortel Networks Limited Information routing system and apparatus
US6785843B1 (en) 2001-02-23 2004-08-31 Mcrae Andrew Data plane restart without state change in a control plane of an intermediate network node
US7209439B2 (en) 2001-03-20 2007-04-24 Mci, Llc Pool-based resource management in a data network
US7069337B2 (en) 2001-03-20 2006-06-27 Mci, Inc. Policy-based synchronization of per-class resources between routers in a data network
EP1388057A4 (en) * 2001-04-20 2009-07-01 Egenera Inc VIRTUAL NETWORKING SYSTEM AND PROCESS IN A PROCESSING SYSTEM
US7102996B1 (en) 2001-05-24 2006-09-05 F5 Networks, Inc. Method and system for scaling network traffic managers
EP1267529B1 (en) 2001-06-14 2007-11-14 Hitachi Ltd. Data packets acknowledgment system
US20030026271A1 (en) * 2001-07-03 2003-02-06 Erb Guy C. L2/L3 network with LSP-enabled virtual routing
US7126944B2 (en) 2001-07-05 2006-10-24 Intel Corporation Routing packets across multiple forwarding elements
JP2003069609A (ja) 2001-08-23 2003-03-07 Fujitsu Ltd 仮想私設網サービスを提供するシステム
JP3879471B2 (ja) 2001-10-10 2007-02-14 株式会社日立製作所 計算機資源割当方法
US7200144B2 (en) 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
US7133365B2 (en) 2001-11-02 2006-11-07 Internap Network Services Corporation System and method to provide routing control of information over networks
US8095668B2 (en) 2001-11-09 2012-01-10 Rockstar Bidco Lp Middlebox control
US7801155B2 (en) 2002-03-01 2010-09-21 Verizon Business Global Llc Resource allocation in virtual routers
US6941487B1 (en) 2002-03-07 2005-09-06 Riverstone Networks, Inc. Method, system, and computer program product for providing failure protection in a network node
JP3904968B2 (ja) 2002-04-19 2007-04-11 日本電信電話株式会社 Vpnシステムおよびルータ
US7197572B2 (en) 2002-05-06 2007-03-27 Qlogic, Corporation System and method for implementing logical switches in a network system
US6907039B2 (en) 2002-07-20 2005-06-14 Redback Networks Inc. Method and apparatus for routing and forwarding between virtual routers within a single network element
US7339929B2 (en) 2002-08-23 2008-03-04 Corrigent Systems Ltd. Virtual private LAN service using a multicast protocol
US20040073659A1 (en) 2002-10-15 2004-04-15 Carl Rajsic Method and apparatus for managing nodes in a network
US7180899B2 (en) * 2002-10-29 2007-02-20 Cisco Technology, Inc. Multi-tiered Virtual Local area Network (VLAN) domain mapping mechanism
US20040098505A1 (en) 2002-11-20 2004-05-20 Clemmensen Daniel G. Forwarding system with multiple logical sub-system functionality
US7224668B1 (en) 2002-11-27 2007-05-29 Cisco Technology, Inc. Control plane security and traffic flow management
JP4157409B2 (ja) 2003-03-31 2008-10-01 富士通株式会社 仮想パス構築装置および仮想パス構築方法
US7283473B2 (en) 2003-04-10 2007-10-16 International Business Machines Corporation Apparatus, system and method for providing multiple logical channel adapters within a single physical channel adapter in a system area network
EP1625489A2 (en) 2003-04-21 2006-02-15 Netcell Corp. Disk array controller with reconfigurable data path
US7792987B1 (en) 2003-04-21 2010-09-07 Juniper Networks, Inc. Supporting virtual private networks using a first network topology for forwarding and a subset of the first network topology or a smaller topology for signaling
US7710874B2 (en) 2003-06-04 2010-05-04 International Business Machines Corporation System and method for automatic management of many computer data processing system pipes
JP4278445B2 (ja) 2003-06-18 2009-06-17 株式会社日立製作所 ネットワークシステム及びスイッチ
US20050022017A1 (en) 2003-06-24 2005-01-27 Maufer Thomas A. Data structures and state tracking for network protocol processing
US7356818B2 (en) 2003-06-24 2008-04-08 International Business Machines Corporation Virtual machine communicating to external device without going through other virtual machines by using a list of IP addresses managed only by a single virtual machine monitor
US7463579B2 (en) 2003-07-11 2008-12-09 Nortel Networks Limited Routed split multilink trunking
US20050018669A1 (en) 2003-07-25 2005-01-27 International Business Machines Corporation Infiniband subnet management queue pair emulation for multiple logical ports on a single physical port
US7697527B2 (en) 2003-07-30 2010-04-13 Nortel Networks Limited Method and apparatus for direct frame switching using frame contained destination information
US7593346B2 (en) 2003-07-31 2009-09-22 Cisco Technology, Inc. Distributing and balancing traffic flow in a virtual gateway
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7366181B2 (en) 2003-09-06 2008-04-29 Fujitsu Limited Virtual private network (VPN) with channelized ethernet over sonet (EoS) interface and method
US7342916B2 (en) 2003-09-10 2008-03-11 Intel Corporation Method, apparatus and system for optimizing routing of mobile IP packets
WO2005038599A2 (en) 2003-10-14 2005-04-28 Raptor Networks Technology, Inc. Switching system with distributed switching fabric
US8009556B2 (en) 2003-10-17 2011-08-30 Ip Infusion, Inc. System and method for providing redundant routing capabilities for a network node
US7555002B2 (en) 2003-11-06 2009-06-30 International Business Machines Corporation Infiniband general services queue pair virtualization for multiple logical ports on a single physical port
US8146148B2 (en) 2003-11-19 2012-03-27 Cisco Technology, Inc. Tunneled security groups
US8095640B2 (en) 2003-12-12 2012-01-10 Alcatel Lucent Distributed architecture for real-time flow measurement at the network domain level
US7450598B2 (en) 2003-12-15 2008-11-11 At&T Intellectual Property I, L.P. System and method to provision MPLS/VPN network
US7478173B1 (en) 2003-12-18 2009-01-13 Wmware, Inc. Method and system for sharing a network connection in a virtual computer system
US8401024B2 (en) 2004-01-14 2013-03-19 Telefonaktiebolaget Lm Ericsson (Publ) Ethernet address management system
US7391771B2 (en) 2004-01-23 2008-06-24 Metro Packet Systems Inc. Method of sending information through a tree and ring topology of a network system
EP1730892A1 (en) 2004-03-24 2006-12-13 Koninklijke Philips Electronics N.V. Intelligent routing within wireless communication systems
EP1745631A1 (en) 2004-05-12 2007-01-24 Alcatel Automated containment of network intruder
US7502344B2 (en) 2004-06-25 2009-03-10 Fujifilm Corporation Communications terminal, server, playback control method and program
US8422500B2 (en) 2004-07-02 2013-04-16 Rockstar Consortium Us Lp VLAN support of differentiated services
DE602004011928T2 (de) 2004-08-02 2009-02-12 Alcatel Lucent Verfahren zur Steuerung einer gemeinsamen genutzten Ressource durch verschiedene Manager
US7515589B2 (en) * 2004-08-27 2009-04-07 International Business Machines Corporation Method and apparatus for providing network virtualization
US7706302B2 (en) 2004-09-14 2010-04-27 Alcatel Lucent Optimization of routing forwarding database in a network processor
GB2419703A (en) 2004-10-29 2006-05-03 Hewlett Packard Development Co Isolated virtual overlay infrastructures each having an interface to control interaction with others
US8068408B2 (en) 2004-11-01 2011-11-29 Alcatel Lucent Softrouter protocol disaggregation
US9014181B2 (en) 2004-11-01 2015-04-21 Alcatel Lucent Softrouter separate control network
US8458467B2 (en) 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
JP2008524916A (ja) 2004-12-21 2008-07-10 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 通信システムにおけるパケットフローに関する装置及び方法
JP2008527772A (ja) 2004-12-31 2008-07-24 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー コネクションレス通信トラフィックのためのコネクション型通信スキーム
JP4733399B2 (ja) 2005-01-28 2011-07-27 株式会社日立製作所 計算機システム、計算機、ストレージ装置及び管理端末
US8254285B2 (en) 2005-02-25 2012-08-28 Ip Infusion, Inc. Hardware abstraction layer
US7936770B1 (en) 2005-03-08 2011-05-03 Enterasys Networks, Inc. Method and apparatus of virtual class of service and logical queue representation through network traffic distribution over multiple port interfaces
WO2006099296A2 (en) 2005-03-10 2006-09-21 Nexthop Technologies, Inc. Flexible, scalable, wireless data forwarding and mobility for secure wireless networks
FR2883437B1 (fr) 2005-03-16 2007-08-03 Wavestorm Sarl Dispositif et procede de communication dans un reseau
US7529256B2 (en) 2005-07-08 2009-05-05 Cisco Technology, Inc. Communication device client update system and method
US20070201490A1 (en) 2005-07-13 2007-08-30 Mahamuni Atul B System and method for implementing ethernet MAC address translation
US7802000B1 (en) 2005-08-01 2010-09-21 Vmware Virtual network in server farm
US7721299B2 (en) 2005-08-05 2010-05-18 Red Hat, Inc. Zero-copy network I/O for virtual hosts
US8149737B2 (en) 2005-08-09 2012-04-03 Motorola Solutions, Inc. Method and system for data transmission in a wireless network
US8799431B2 (en) 2005-08-15 2014-08-05 Toutvirtual Inc. Virtual systems management
CN100446469C (zh) 2005-09-09 2008-12-24 广东省电信有限公司研究院 一种对软交换网实现分权分域管理的网管系统和方法
US7363404B2 (en) 2005-10-27 2008-04-22 International Business Machines Corporation Creation and management of destination ID routing structures in multi-host PCI topologies
JP2007135109A (ja) 2005-11-11 2007-05-31 Hitachi Ltd 仮想ネットワーク管理方法、仮想ネットワーク管理プログラム、仮想ネットワーク管理システムおよび仮想ネットワーク管理手段
US20070140235A1 (en) * 2005-12-21 2007-06-21 Nortel Networks Limited Network visible inter-logical router links
US8856862B2 (en) 2006-03-02 2014-10-07 British Telecommunications Public Limited Company Message processing methods and systems
US8838756B2 (en) 2009-07-27 2014-09-16 Vmware, Inc. Management and implementation of enclosed local networks in a virtual lab
US8619771B2 (en) * 2009-09-30 2013-12-31 Vmware, Inc. Private allocated networks over shared communications infrastructure
US7839847B2 (en) 2006-05-08 2010-11-23 Cisco Technology, Inc. Methods and apparatus providing VPN traffic matrix construction
US7953089B1 (en) 2006-05-16 2011-05-31 Cisco Technology, Inc. Systems and methods for multicast switching in a private VLAN
US8060875B1 (en) 2006-05-26 2011-11-15 Vmware, Inc. System and method for multiple virtual teams
JP4714081B2 (ja) 2006-06-01 2011-06-29 アラクサラネットワークス株式会社 ネットワーク接続装置
US20070286209A1 (en) 2006-06-12 2007-12-13 Research In Motion Limited System and method for handling address resolution protocol requests
US7706303B2 (en) 2006-06-26 2010-04-27 Cisco Technology, Inc. Port pooling
US7643482B2 (en) 2006-06-30 2010-01-05 Sun Microsystems, Inc. System and method for virtual switching in a host
JP4882555B2 (ja) 2006-07-07 2012-02-22 双葉電子工業株式会社 無線ブリッジ通信機
US7916682B2 (en) 2006-07-14 2011-03-29 Symbol Technologies, Inc. Wireless switch network architecture implementing layer 3 mobility domains
US20080059556A1 (en) 2006-08-31 2008-03-06 Egenera, Inc. Providing virtual machine technology as an embedded layer within a processing platform
US8204982B2 (en) 2006-09-14 2012-06-19 Quova, Inc. System and method of middlebox detection and characterization
US20080069107A1 (en) 2006-09-15 2008-03-20 Siemens Aktiengesellschaft Scalable packet based network
US7643488B2 (en) 2006-09-29 2010-01-05 Nortel Networks Limited Method and apparatus for supporting multiple customer provisioned IPSec VPNs
US7996835B2 (en) 2006-10-10 2011-08-09 International Business Machines Corporation System, method and program for managing communication with multiple configurations for virtual machine
JP5244332B2 (ja) 2006-10-30 2013-07-24 株式会社日立製作所 情報システム、データ転送方法及びデータ保護方法
US7826482B1 (en) 2006-11-17 2010-11-02 Juniper Networks, Inc. Service-specific forwarding in an LDP-RSVP hybrid network
US8223668B2 (en) 2006-12-14 2012-07-17 Rockstar Bidco Lp Method and apparatus for exchanging routing information and the establishment of connectivity across multiple network areas
US20080181243A1 (en) * 2006-12-15 2008-07-31 Brocade Communications Systems, Inc. Ethernet forwarding in high performance fabrics
US7738457B2 (en) 2006-12-20 2010-06-15 Oracle America, Inc. Method and system for virtual routing using containers
US20080159301A1 (en) 2006-12-29 2008-07-03 De Heer Arjan Arie Enabling virtual private local area network services
US20080189769A1 (en) 2007-02-01 2008-08-07 Martin Casado Secure network switching infrastructure
EP2109965B1 (en) 2007-02-02 2015-04-08 Groupe Des Ecoles Des Telecommunications (GET) Institut National Des Telecommunications (INT) Autonomic network node system
US7760735B1 (en) 2007-02-06 2010-07-20 Google Inc. Method and system for discovering network paths
US7796594B2 (en) 2007-02-14 2010-09-14 Marvell Semiconductor, Inc. Logical bridging system and method
US8055789B2 (en) 2007-03-27 2011-11-08 Amazon Technologies, Inc. Configuring intercommunications between computing nodes
US8111707B2 (en) 2007-12-20 2012-02-07 Packeteer, Inc. Compression mechanisms for control plane—data plane processing architectures
US8594085B2 (en) 2007-04-11 2013-11-26 Palo Alto Networks, Inc. L2/L3 multi-mode switch including policy processing
WO2008128194A2 (en) 2007-04-12 2008-10-23 Rutgers, The State University Of New Jersey System and method for controlling a file system
US7903655B2 (en) 2007-04-19 2011-03-08 Hewlett-Packard Development Company, L.P. Marked packet forwarding
JP4740897B2 (ja) 2007-05-24 2011-08-03 株式会社日立製作所 仮想ネットワーク構成方法及びネットワークシステム
US7948874B2 (en) 2007-05-24 2011-05-24 World Wide Packets, Inc. Transitioning a virtual interface from one tunnel to another tunnel
US8031633B2 (en) 2007-08-13 2011-10-04 Honeywell International Inc. Virtual network architecture for space data processing
US8798056B2 (en) 2007-09-24 2014-08-05 Intel Corporation Method and system for virtual port communications
US7751329B2 (en) * 2007-10-03 2010-07-06 Avaya Inc. Providing an abstraction layer in a cluster switch that includes plural switches
JP5427181B2 (ja) 2007-10-03 2014-02-26 ヴァーテラ テクノロジー サーヴィシズ インコーポレイテッド 仮想化アプリケーション加速化インフラストラクチャ
US8539098B2 (en) * 2007-10-17 2013-09-17 Dispersive Networks, Inc. Multiplexed client server (MCS) communications and systems
US8848544B2 (en) 2007-11-08 2014-09-30 Cisco Technology, Inc. Event correlation using network data flow simulation over unmanaged network segments
US7855982B2 (en) 2007-11-19 2010-12-21 Rajesh Ramankutty Providing services to packet flows in a network
US7984123B2 (en) 2007-12-10 2011-07-19 Oracle America, Inc. Method and system for reconfiguring a virtual network path
US7945647B2 (en) 2007-12-10 2011-05-17 Oracle America, Inc. Method and system for creating a virtual network path
US8199750B1 (en) 2007-12-18 2012-06-12 World Wide Packets, Inc. Communicating with a control plane using a forwarding information format and control plane processing of packets devoid of a virtual switch identifier
US8194674B1 (en) 2007-12-20 2012-06-05 Quest Software, Inc. System and method for aggregating communications and for translating between overlapping internal network addresses and unique external network addresses
US9432213B2 (en) 2007-12-31 2016-08-30 Rpx Clearinghouse Llc IP forwarding across a link state protocol controlled ethernet network
CN101232339A (zh) 2008-02-18 2008-07-30 中国网络通信集团公司 动态服务水平协议控制系统及控制方法
GB2458157B (en) 2008-03-07 2012-04-25 Hewlett Packard Development Co Virtual machine liveness check
US8155028B2 (en) 2008-03-17 2012-04-10 Alcatel Lucent Method and apparatus for providing full logical connectivity in MPLS networks
US8146147B2 (en) 2008-03-27 2012-03-27 Juniper Networks, Inc. Combined firewalls
US8429739B2 (en) 2008-03-31 2013-04-23 Amazon Technologies, Inc. Authorizing communications between computing nodes
US20110035494A1 (en) 2008-04-15 2011-02-10 Blade Network Technologies Network virtualization for a virtualized server data center environment
JP2009278261A (ja) 2008-05-13 2009-11-26 Toshiba Corp 情報処理装置および通信制御方法
US8339959B1 (en) 2008-05-20 2012-12-25 Juniper Networks, Inc. Streamlined packet forwarding using dynamic filters for routing and security in a shared forwarding plane
US8195774B2 (en) 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
US8849971B2 (en) 2008-05-28 2014-09-30 Red Hat, Inc. Load balancing in cloud-based networks
US8160063B2 (en) 2008-06-09 2012-04-17 Microsoft Corporation Data center interconnect and traffic engineering
US7787399B2 (en) * 2008-07-25 2010-08-31 Alcatel-Lucent Usa Inc. Automatically configuring mesh groups in data networks
US7885276B1 (en) 2008-09-30 2011-02-08 Emc Corporation Isolating network traffic in multi-tenant virtualization environments
US20120015899A1 (en) 2008-10-25 2012-01-19 Plant Bioscience, Limited Modified plant virus particles and uses therefor
US7962647B2 (en) 2008-11-24 2011-06-14 Vmware, Inc. Application delivery control module for virtual network switch
US8055770B2 (en) 2008-12-15 2011-11-08 At&T Intellectual Property I, L.P. Method and apparatus for providing network virtualization
US8271775B2 (en) 2008-12-17 2012-09-18 Cisco Technology, Inc. Layer two encryption for data center interconnectivity
US8331362B2 (en) 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8054832B1 (en) 2008-12-30 2011-11-08 Juniper Networks, Inc. Methods and apparatus for routing between virtual resources based on a routing location policy
US8255496B2 (en) 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US7995483B1 (en) 2009-01-20 2011-08-09 Juniper Networks, Inc. Simultaneously testing connectivity to multiple remote maintenance endpoints of the same maintenance association
US20100192225A1 (en) 2009-01-28 2010-07-29 Juniper Networks, Inc. Efficient application identification with network devices
US7948986B1 (en) 2009-02-02 2011-05-24 Juniper Networks, Inc. Applying services within MPLS networks
US8553581B2 (en) 2009-02-17 2013-10-08 Tellabs Operations, Inc. Method and apparatus for provisioning a network element
EP2399363B1 (en) 2009-02-19 2019-05-29 Huawei Technologies Co., Ltd. System and method for point to multipoint inter-domain multiprotocol label switching traffic engineering path calculation
US8213336B2 (en) 2009-02-23 2012-07-03 Cisco Technology, Inc. Distributed data center access switch
EP2408155A4 (en) 2009-03-09 2015-01-28 Nec Corp OPENFLOW COMMUNICATION SYSTEM AND OPENFLOW COMMUNICATION METHOD
US8265075B2 (en) 2009-03-16 2012-09-11 International Business Machines Corporation Method and apparatus for managing, configuring, and controlling an I/O virtualization device through a network switch
US9106540B2 (en) * 2009-03-30 2015-08-11 Amazon Technologies, Inc. Providing logical networking functionality for managed computer networks
EP2804350B1 (en) 2009-04-01 2019-07-24 Nicira, Inc. Method and apparatus for implementing and managing virtual switches
US9727508B2 (en) 2009-04-27 2017-08-08 Intel Corporation Address learning and aging for network bridging in a network processor
US8589919B2 (en) 2009-04-28 2013-11-19 Cisco Technology, Inc. Traffic forwarding for virtual machines
US8027354B1 (en) 2009-04-29 2011-09-27 Cisco Technology, Inc. Network consolidation for virtualized servers
US8867349B2 (en) 2009-05-18 2014-10-21 Cisco Technology, Inc. Regulation of network traffic in virtual private networks
US8259726B2 (en) * 2009-05-28 2012-09-04 Force10 Networks, Inc. Method and apparatus for forwarding table reduction
US8644188B1 (en) 2009-06-25 2014-02-04 Amazon Technologies, Inc. Providing virtual networking functionality for managed computer networks
US20110032830A1 (en) 2009-08-06 2011-02-10 Jacobus Van Der Merwe Live Router Migration
US8339994B2 (en) 2009-08-27 2012-12-25 Brocade Communications Systems, Inc. Defining an optimal topology for a group of logical switches
US8619779B2 (en) 2009-09-30 2013-12-31 Alcatel Lucent Scalable architecture for enterprise extension in a cloud topology
US8599864B2 (en) 2009-10-08 2013-12-03 Brocade Communications Systems, Inc. Transit switches in a network of logical switches
US20110085557A1 (en) 2009-10-08 2011-04-14 Brocade Communications Systems, Inc. Partitioning of Switches and Fabrics into Logical Switches and Fabrics
EP2497234B1 (en) 2009-11-02 2018-09-19 Marvell World Trade Ltd. Network device and method based on virtual interfaces
US8442048B2 (en) 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
US8848508B2 (en) 2009-11-16 2014-09-30 Cisco Technology, Inc. Method for the provision of gateway anycast virtual MAC reachability in extended subnets
US7937438B1 (en) 2009-12-07 2011-05-03 Amazon Technologies, Inc. Using virtual networking devices to manage external connections
US20110134931A1 (en) 2009-12-08 2011-06-09 Jacobus Van Der Merwe Virtual router migration
US8705513B2 (en) 2009-12-15 2014-04-22 At&T Intellectual Property I, L.P. Methods and apparatus to communicatively couple virtual private networks to virtual machines within distributive computing networks
US8224971B1 (en) 2009-12-28 2012-07-17 Amazon Technologies, Inc. Using virtual networking devices and routing information to initiate external actions
US7991859B1 (en) 2009-12-28 2011-08-02 Amazon Technologies, Inc. Using virtual networking devices to connect managed computer networks
US7953865B1 (en) 2009-12-28 2011-05-31 Amazon Technologies, Inc. Using virtual networking devices to manage routing communications between connected computer networks
JP5392137B2 (ja) 2010-02-17 2014-01-22 富士通株式会社 通信処理のためのプログラム、コンピュータ及び方法
US8345688B2 (en) 2010-02-23 2013-01-01 Google Inc. System and method for managing flow of packets
CN101808030B (zh) 2010-03-01 2013-01-30 浙江大学 一种基于虚拟路由器的逻辑网络构建方法
US8612627B1 (en) 2010-03-03 2013-12-17 Amazon Technologies, Inc. Managing encoded multi-part communications for provided computer networks
US9413649B2 (en) 2010-03-12 2016-08-09 Force10 Networks, Inc. Virtual network device architecture
US8224931B1 (en) 2010-03-31 2012-07-17 Amazon Technologies, Inc. Managing use of intermediate destination computing nodes for provided computer networks
US8611352B2 (en) 2010-04-20 2013-12-17 Marvell World Trade Ltd. System and method for adapting a packet processing pipeline
US8566257B2 (en) 2010-04-26 2013-10-22 International Business Machines Corporation Address data learning and registration within a distributed virtual bridge
US8504718B2 (en) 2010-04-28 2013-08-06 Futurewei Technologies, Inc. System and method for a context layer switch
US8989186B2 (en) 2010-06-08 2015-03-24 Brocade Communication Systems, Inc. Virtual port grouping for virtual cluster switching
US8625616B2 (en) 2010-05-11 2014-01-07 Brocade Communications Systems, Inc. Converged network extension
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およびそれをスケーラブルにするための機構
US8989187B2 (en) * 2010-06-04 2015-03-24 Coraid, Inc. Method and system of scaling a cloud computing network
US8374183B2 (en) 2010-06-22 2013-02-12 Microsoft Corporation Distributed virtual network gateways
US8549120B2 (en) 2010-06-28 2013-10-01 Cisco Technology, Inc. System and method for location based address assignment in the distribution of traffic in a virtual gateway
CN103270736B (zh) 2010-06-29 2016-08-10 华为技术有限公司 一种网络设备
US9014054B2 (en) 2010-06-29 2015-04-21 Futurewei Technologies, Inc. Layer two over multiple sites
US8239572B1 (en) 2010-06-30 2012-08-07 Amazon Technologies, Inc. Custom routing decisions
US10103939B2 (en) * 2010-07-06 2018-10-16 Nicira, Inc. Network control apparatus and method for populating logical datapath sets
US8447909B2 (en) 2010-07-19 2013-05-21 International Business Machines Corporation Register access in distributed virtual bridge environment
US8456984B2 (en) 2010-07-19 2013-06-04 Ciena Corporation Virtualized shared protection capacity
US8718063B2 (en) * 2010-07-26 2014-05-06 Juniper Networks, Inc. Methods and apparatus related to route selection within a network
US8837281B2 (en) 2010-09-10 2014-09-16 Futurewei Technologies, Inc. Use of partitions to reduce flooding and filtering database size requirements in large layer two networks
US8804747B2 (en) * 2010-09-23 2014-08-12 Cisco Technology, Inc. Network interface controller for virtual and distributed services
US8565108B1 (en) 2010-09-28 2013-10-22 Amazon Technologies, Inc. Network data transmission analysis
CN102457583B (zh) 2010-10-19 2014-09-10 中兴通讯股份有限公司 一种虚拟机移动性的实现方法及系统
CN102075591A (zh) 2010-12-21 2011-05-25 华为技术有限公司 获取介质访问控制地址的方法、装置和系统
WO2012093429A1 (en) 2011-01-05 2012-07-12 Nec Corporation Communication control system, control server, forwarding node, communication control method, and communication control program
US10142218B2 (en) 2011-01-14 2018-11-27 International Business Machines Corporation Hypervisor routing between networks in a virtual networking environment
US8665739B2 (en) 2011-03-16 2014-03-04 Juniper Networks, Inc. Packet loss measurement at service endpoints of a virtual private LAN service
CN103460653A (zh) 2011-03-31 2013-12-18 日本电气株式会社 计算机系统和通信方法
JP5760647B2 (ja) * 2011-04-27 2015-08-12 日本電気株式会社 仮想環境における仮想ルーティング方法及び仮想ルーティングシステム
US20120291024A1 (en) * 2011-05-13 2012-11-15 International Business Machines Corporation Virtual Managed Network
JP5776337B2 (ja) 2011-06-02 2015-09-09 富士通株式会社 パケット変換プログラム、パケット変換装置、及びパケット変換方法
WO2012170016A1 (en) 2011-06-07 2012-12-13 Hewlett-Packard Development Company, L.P. A scalable multi-tenant network architecture for virtualized datacenters
US9229867B2 (en) 2011-06-16 2016-01-05 International Business Machines Corporation Shared network response cache
JP5824911B2 (ja) 2011-06-29 2015-12-02 富士通株式会社 情報処理装置、情報処理プログラムおよび管理方法
US8964563B2 (en) * 2011-07-08 2015-02-24 Telefonaktiebolaget L M Ericsson (Publ) Controller driven OAM for OpenFlow
US9237124B2 (en) 2011-07-14 2016-01-12 Marvell Israel (M.I.S.L) Ltd. Scaling of virtual machine addresses in datacenters
WO2013020126A1 (en) * 2011-08-04 2013-02-07 Midokura Pte. Ltd. System and method for implementing and managing virtual networks
US20130034094A1 (en) 2011-08-05 2013-02-07 International Business Machines Corporation Virtual Switch Data Control In A Distributed Overlay Network
CN106850444B (zh) 2011-08-17 2020-10-27 Nicira股份有限公司 逻辑l3路由
US9124538B2 (en) 2011-08-17 2015-09-01 Nicira, Inc. Dynamic generation of flow entries for last-hop processing
US8867403B2 (en) * 2011-08-18 2014-10-21 International Business Machines Corporation Virtual network overlays
US8762501B2 (en) 2011-08-29 2014-06-24 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3G packet core in a cloud computer with openflow data and control planes
US9167501B2 (en) * 2011-08-29 2015-10-20 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3G packet core in a cloud computer with openflow data and control planes
US8856518B2 (en) 2011-09-07 2014-10-07 Microsoft Corporation Secure and efficient offloading of network policies to network interface cards
US9319459B2 (en) 2011-09-19 2016-04-19 Cisco Technology, Inc. Services controlled session based flow interceptor
US9294351B2 (en) 2011-11-10 2016-03-22 Cisco Technology, Inc. Dynamic policy based interface configuration for virtualized environments
US8819267B2 (en) 2011-11-16 2014-08-26 Force10 Networks, Inc. Network virtualization without gateway function
US8767737B2 (en) * 2011-11-30 2014-07-01 Industrial Technology Research Institute Data center network system and packet forwarding method thereof
US8738756B2 (en) * 2011-12-01 2014-05-27 International Business Machines Corporation Enabling co-existence of hosts or virtual machines with identical addresses
CN104067231B (zh) 2011-12-07 2017-03-29 西里克斯系统公司 使用虚拟交换代理控制网络接口
US8948054B2 (en) 2011-12-30 2015-02-03 Cisco Technology, Inc. System and method for discovering multipoint endpoints in a network environment
US9077640B2 (en) * 2012-01-13 2015-07-07 Board Of Regents, The University Of Texas System Method and system of congestion control in a mobile virtual network
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
US8954964B2 (en) 2012-02-27 2015-02-10 Ca, Inc. System and method for isolated virtual image and appliance communication within a cloud environment
US9313048B2 (en) 2012-04-04 2016-04-12 Cisco Technology, Inc. Location aware virtual service provisioning in a hybrid cloud environment
US8923149B2 (en) 2012-04-09 2014-12-30 Futurewei Technologies, Inc. L3 gateway for VXLAN
CN103379010B (zh) 2012-04-20 2018-09-21 中兴通讯股份有限公司 一种虚拟网络实现方法及系统
US9407450B2 (en) * 2012-05-01 2016-08-02 Cisco Technnology, Inc. Method and apparatus for providing tenant information for network flows
US9504089B2 (en) 2012-05-14 2016-11-22 Broadcom Corporation System and method for wireless station bridging
CN104272668B (zh) * 2012-05-23 2018-05-22 博科通讯系统有限公司 层3覆盖网关
US8811409B2 (en) * 2012-06-04 2014-08-19 Telefonaktiebolaget L M Ericsson (Publ) Routing VLAN tagged packets to far end addresses of virtual forwarding instances using separate administrations
WO2013184941A1 (en) 2012-06-06 2013-12-12 Huawei Technologies Co., Ltd. Method of seamless integration and independent evolution of information-centric networking via software defined networking
US8750288B2 (en) 2012-06-06 2014-06-10 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US8953441B2 (en) 2012-06-06 2015-02-10 Juniper Networks, Inc. Re-routing network traffic after link failure
US20150124612A1 (en) 2012-06-07 2015-05-07 Michael Schlansker Multi-tenant network provisioning
US9304801B2 (en) 2012-06-12 2016-04-05 TELEFONAKTIEBOLAGET L M ERRICSSON (publ) Elastic enforcement layer for cloud security using SDN
US8972602B2 (en) 2012-06-15 2015-03-03 Citrix Systems, Inc. Systems and methods for using ECMP routes for traffic distribution
US20140006585A1 (en) 2012-06-29 2014-01-02 Futurewei Technologies, Inc. Providing Mobility in Overlay Networks
CN102801715B (zh) * 2012-07-30 2015-03-11 华为技术有限公司 一种网络中虚拟机迁移的方法、网关及系统
US9288162B2 (en) 2012-08-03 2016-03-15 Cisco Technology, Inc. Adaptive infrastructure for distributed virtual switch
US9225549B2 (en) 2012-08-06 2015-12-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Multi-chassis link aggregation in a distributed virtual bridge
US9210079B2 (en) * 2012-08-14 2015-12-08 Vmware, Inc. Method and system for virtual and physical network integration
US9172557B2 (en) 2012-08-17 2015-10-27 International Business Machines Corporation Load balancing overlay network traffic using a teamed set of network interface cards
US9602430B2 (en) * 2012-08-21 2017-03-21 Brocade Communications Systems, Inc. Global VLANs for fabric switches
US9215171B2 (en) 2012-08-29 2015-12-15 International Business Machines Corporation Hashing-based routing table management
US9104492B2 (en) 2012-09-04 2015-08-11 Wisconsin Alumni Research Foundation Cloud-based middlebox management system
CN102857416B (zh) 2012-09-18 2016-09-28 中兴通讯股份有限公司 一种实现虚拟网络的方法、控制器和虚拟网络
US9008095B2 (en) 2012-10-02 2015-04-14 Cisco Technology, Inc. System and method for hardware-based learning of internet protocol addresses in a network environment
US8989183B2 (en) 2012-10-10 2015-03-24 Microsoft Technology Licensing, Llc Virtual machine multicast/broadcast in virtual network
US9571507B2 (en) 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
CN103795623B (zh) * 2012-10-26 2017-03-15 杭州华三通信技术有限公司 一种在虚拟设备间实现流量互通的方法和装置
US8931046B2 (en) 2012-10-30 2015-01-06 Stateless Networks, Inc. System and method for securing virtualized networks
US9253140B2 (en) * 2012-11-20 2016-02-02 Cisco Technology, Inc. System and method for optimizing within subnet communication in a network environment
US9036639B2 (en) 2012-11-29 2015-05-19 Futurewei Technologies, Inc. System and method for VXLAN inter-domain communications
EP2932659A4 (en) * 2012-12-12 2016-05-18 Ericsson Telefon Ab L M METHOD AND DEVICE FOR VLAN INTERFACE ROUTING
US9049115B2 (en) 2012-12-13 2015-06-02 Cisco Technology, Inc. Enabling virtual workloads using overlay technologies to interoperate with physical network services
US9014056B2 (en) 2012-12-18 2015-04-21 Qualcomm Incorporated Bridging network devices in a hybrid communication network
US8982703B2 (en) * 2012-12-18 2015-03-17 Mellanox Technologies Ltd. Routing support for lossless data traffic
CN103905283B (zh) 2012-12-25 2017-12-15 华为技术有限公司 基于可扩展虚拟局域网的通信方法及装置
US9008097B2 (en) * 2012-12-31 2015-04-14 Mellanox Technologies Ltd. Network interface controller supporting network virtualization
US9116727B2 (en) * 2013-01-15 2015-08-25 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Scalable network overlay virtualization using conventional virtual switches
US9602334B2 (en) 2013-01-22 2017-03-21 International Business Machines Corporation Independent network interfaces for virtual network environments
US9210082B2 (en) 2013-02-19 2015-12-08 Avago Technologies General Ip (Singapore) Pte. Ltd. High speed network bridging
US9699034B2 (en) 2013-02-26 2017-07-04 Zentera Systems, Inc. Secure cloud fabric to connect subnets in different network domains
US9306837B1 (en) * 2013-03-08 2016-04-05 Cisco Technology, Inc. Source IP-based pruning of traffic toward dually-connected overlay hosts in a data communications environment
US9432287B2 (en) 2013-03-12 2016-08-30 International Business Machines Corporation Virtual gateways and implicit routing in distributed overlay virtual environments
US10355930B2 (en) 2013-03-14 2019-07-16 Fortinet, Inc. System and method of subnetting a virtual network identifier
US9027087B2 (en) 2013-03-14 2015-05-05 Rackspace Us, Inc. Method and system for identity-based authentication of virtual machines
US9967111B2 (en) 2013-03-15 2018-05-08 Rackspace Us, Inc. Software-defined multinetwork bridge
US9197551B2 (en) * 2013-03-15 2015-11-24 International Business Machines Corporation Heterogeneous overlay network translation for domain unification
US9197553B2 (en) 2013-03-29 2015-11-24 Cisco Technology, Inc. Using a virtual internet protocol address to represent dually connected hosts in an internet protocol overlay network
US9225636B2 (en) 2013-04-04 2015-12-29 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for exchanging IP packets among network layer 2 peers
US9559952B2 (en) * 2013-05-06 2017-01-31 Cisco Technology, Inc. Routing internet protocol version 6 link-local addresses in a network environment
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US9203738B2 (en) * 2013-05-21 2015-12-01 Cisco Technology, Inc. Optimal forwarding for trill fine-grained labeling and VXLAN interworking
US9749231B2 (en) 2013-07-02 2017-08-29 Arista Networks, Inc. Method and system for overlay routing with VXLAN on bare metal servers
US9282033B2 (en) * 2013-08-06 2016-03-08 Cisco Technology, Inc. Intelligent handling of virtual machine mobility in large data center environments
US9426060B2 (en) 2013-08-07 2016-08-23 International Business Machines Corporation Software defined network (SDN) switch clusters having layer-3 distributed router functionality
US9621508B2 (en) 2013-08-20 2017-04-11 Arista Networks, Inc. System and method for sharing VXLAN table information with a network controller
US9531676B2 (en) 2013-08-26 2016-12-27 Nicira, Inc. Proxy methods for suppressing broadcast traffic in a network
US9565105B2 (en) * 2013-09-04 2017-02-07 Cisco Technology, Inc. Implementation of virtual extensible local area network (VXLAN) in top-of-rack switches in a network environment
CN103491006B (zh) 2013-09-13 2016-08-17 清华大学 虚拟网络路由器的数据统一转发方法
US9485168B2 (en) 2013-10-03 2016-11-01 International Business Machines Corporation Temperature sensitive routing of data in a computer system
US9596126B2 (en) 2013-10-10 2017-03-14 Nicira, Inc. Controller side method of generating and updating a controller assignment list
US9910686B2 (en) 2013-10-13 2018-03-06 Nicira, Inc. Bridging between network segments with a logical router
US9264330B2 (en) 2013-10-13 2016-02-16 Nicira, Inc. Tracing host-originated logical network packets
US9264362B2 (en) 2013-10-17 2016-02-16 Cisco Technology, Inc. Proxy address resolution protocol on a controller device
US9876715B2 (en) 2013-11-05 2018-01-23 Cisco Technology, Inc. Network fabric overlay
US10951522B2 (en) 2013-11-05 2021-03-16 Cisco Technology, Inc. IP-based forwarding of bridged and routed IP packets and unicast ARP
US9729578B2 (en) 2014-01-10 2017-08-08 Arista Networks, Inc. Method and system for implementing a network policy using a VXLAN network identifier
US9246821B1 (en) 2014-01-28 2016-01-26 Google Inc. Systems and methods for implementing weighted cost multi-path using two-level equal cost multi-path tables
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
CN106576075B (zh) 2014-03-27 2021-01-26 Nicira股份有限公司 在网络虚拟化基础设施上操作逻辑网络的方法和系统
US9413644B2 (en) 2014-03-27 2016-08-09 Nicira, Inc. Ingress ECMP in virtual distributed routing environment
US10826768B2 (en) 2014-03-28 2020-11-03 Hewlett Packard Enterprise Development Lp Controlled node configuration
CN103957160B (zh) 2014-05-12 2017-04-19 华为技术有限公司 一种发送报文的方法及设备
US10019278B2 (en) 2014-06-22 2018-07-10 Cisco Technology, Inc. Framework for network technology agnostic multi-cloud elastic extension and isolation
US10250529B2 (en) 2014-07-21 2019-04-02 Big Switch Networks, Inc. Systems and methods for performing logical network forwarding using a controller
US9858100B2 (en) 2014-08-22 2018-01-02 Nicira, Inc. Method and system of provisioning logical networks on a host machine
US9768980B2 (en) 2014-09-30 2017-09-19 Nicira, Inc. Virtual distributed bridging
US10250443B2 (en) 2014-09-30 2019-04-02 Nicira, Inc. Using physical location to modify behavior of a distributed virtual network element
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US10020960B2 (en) 2014-09-30 2018-07-10 Nicira, Inc. Virtual distributed bridging
WO2016053372A1 (en) 2014-09-30 2016-04-07 Nicira, Inc. Virtual distributed bridging module
US10075337B2 (en) 2015-01-23 2018-09-11 Cisco Technology, Inc. Mechanism for serving hardware resource information to an attached appliance
US10079779B2 (en) 2015-01-30 2018-09-18 Nicira, Inc. Implementing logical router uplinks
US10348625B2 (en) 2015-06-30 2019-07-09 Nicira, Inc. Sharing common L2 segment in a virtual distributed router environment
WO2017003957A1 (en) 2015-06-30 2017-01-05 Nicira, Inc Intermediate logical interfaces in a virtual distributed router environment
US10587514B1 (en) * 2015-12-21 2020-03-10 Amazon Technologies, Inc. Filtering control plane decision requests for forwarding network packets
US10511459B2 (en) 2017-11-14 2019-12-17 Nicira, Inc. Selection of managed forwarding element for bridge spanning multiple datacenters
US10374827B2 (en) 2017-11-14 2019-08-06 Nicira, Inc. Identifier that maps to different networks at different datacenters

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050182853A1 (en) * 2004-02-13 2005-08-18 Saul Lewites Apparatus and method for a dynamically extensible virtual switch
US20100107162A1 (en) * 2008-03-07 2010-04-29 Aled Edwards Routing across a virtual network
US20100287548A1 (en) * 2009-05-06 2010-11-11 Vmware, Inc. Long Distance Virtual Machine Migration
US20120158997A1 (en) * 2010-12-15 2012-06-21 Industrial Technology Research Institute Network system and method of address resolution
US20130031233A1 (en) * 2011-07-29 2013-01-31 International Business Machines Corporation Network filtering in a virtualized environment
US20130044641A1 (en) * 2011-08-17 2013-02-21 Teemu Koponen Federating interconnection switching element network to two or more levels
US20130103817A1 (en) * 2011-10-25 2013-04-25 Teemu Koponen Chassis controller
WO2013063330A1 (en) * 2011-10-25 2013-05-02 Nicira, Inc. Chassis controllers for converting universal flows
WO2013074827A1 (en) * 2011-11-15 2013-05-23 Nicira, Inc. Architecture of networks with middleboxes
JP2013175075A (ja) * 2012-02-27 2013-09-05 Fujitsu Ltd データ収集方法、情報処理システムおよびプログラム
JP2014230217A (ja) * 2013-05-24 2014-12-08 日本電信電話株式会社 ネットワーク装置、中継管理方法、中継管理プログラムおよび通信システム

Also Published As

Publication number Publication date
EP3031178A2 (en) 2016-06-15
US9910686B2 (en) 2018-03-06
CN105684363B (zh) 2020-06-19
US9977685B2 (en) 2018-05-22
US11029982B2 (en) 2021-06-08
JP2016158285A (ja) 2016-09-01
KR20160057433A (ko) 2016-05-23
KR102181554B1 (ko) 2020-11-23
EP3627780B1 (en) 2021-11-03
WO2015054671A3 (en) 2015-06-11
US9575782B2 (en) 2017-02-21
EP3031178B1 (en) 2019-11-20
JP6317851B1 (ja) 2018-04-25
KR20200024343A (ko) 2020-03-06
KR102083749B1 (ko) 2020-03-02
US10528373B2 (en) 2020-01-07
CN111585889B (zh) 2022-08-16
US20180276013A1 (en) 2018-09-27
US20150103839A1 (en) 2015-04-16
KR102251661B1 (ko) 2021-05-12
EP3627780A1 (en) 2020-03-25
CN115174470A (zh) 2022-10-11
WO2015054671A2 (en) 2015-04-16
US20200081728A1 (en) 2020-03-12
CN111585889A (zh) 2020-08-25
JP5925820B2 (ja) 2016-05-25
JP6266035B2 (ja) 2018-01-24
JP2018082449A (ja) 2018-05-24
KR20200131358A (ko) 2020-11-23
KR102084243B1 (ko) 2020-03-03
KR20180073726A (ko) 2018-07-02
US20210294622A1 (en) 2021-09-23
US20150106804A1 (en) 2015-04-16
US9785455B2 (en) 2017-10-10
US20150103843A1 (en) 2015-04-16
US20150103842A1 (en) 2015-04-16
CN105684363A (zh) 2016-06-15

Similar Documents

Publication Publication Date Title
JP6317851B1 (ja) 論理ルータ
US11736394B2 (en) Address resolution using multiple designated instances of a logical router
US11115465B2 (en) Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table
US9413644B2 (en) Ingress ECMP in virtual distributed routing environment
CN106576075B (zh) 在网络虚拟化基础设施上操作逻辑网络的方法和系统

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160325

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160420

R150 Certificate of patent or registration of utility model

Ref document number: 5925820

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250