IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ニシラ, インコーポレイテッドの特許一覧

特開2022-191323複数のルーティング構成要素を用いる論理ルータ
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022191323
(43)【公開日】2022-12-27
(54)【発明の名称】複数のルーティング構成要素を用いる論理ルータ
(51)【国際特許分類】
   H04L 45/42 20220101AFI20221220BHJP
【FI】
H04L45/42
【審査請求】有
【請求項の数】25
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022159673
(22)【出願日】2022-10-03
(62)【分割の表示】P 2021110161の分割
【原出願日】2016-01-29
(31)【優先権主張番号】14/814,469
(32)【優先日】2015-07-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/110,061
(32)【優先日】2015-01-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/814,473
(32)【優先日】2015-07-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/814,477
(32)【優先日】2015-07-30
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】511235548
【氏名又は名称】ニシラ, インコーポレイテッド
(74)【代理人】
【識別番号】100076428
【弁理士】
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100115071
【弁理士】
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100112508
【弁理士】
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100116894
【弁理士】
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【弁理士】
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100177390
【弁理士】
【氏名又は名称】大出 純哉
(72)【発明者】
【氏名】チャン, ロンフア
(72)【発明者】
【氏名】チャンドラシェカー, ガネサン
(72)【発明者】
【氏名】ラヴィンヌーザラ, スリーラム
(72)【発明者】
【氏名】ファン, カイ-ウェイ
(57)【要約】      (修正有)
【課題】ネットワークにおいて論理ルータを実施する方法、方法を実施するプログラムを格納する機械可読媒体、機械媒体を含む電子デバイス及び方法を実施するシステムを提供する。
【解決手段】方法は、ネットワーク要素の組上で実施する論理ルータの定義を受信し、論理ルータのためのいくつかのルーティング構成要素を定義する。定義されたルーティング構成要素のそれぞれは、別個に経路の組と論理インタフェースの組とを割り当てられる。方法は、ネットワークにおいていくつかのルーティング構成要素を実施する。いくつかのルーティング構成要素は、1つの分散化ルーティング構成要素といくつかの集中化ルーティング構成要素とを含む。
【選択図】なし
【特許請求の範囲】
【請求項1】
ネットワークにおいて論理ルータを実施する方法であって、前記方法は、
ネットワーク要素の組上で実施する論理ルータの定義を受信することと、
前記論理ルータに対する複数のルーティング構成要素を定義することであって、前記定義されたルーティング構成要素のそれぞれが別々の経路の組と別々の論理インタフェースの組とを含む、ことと、
前記ネットワークにおいて前記複数のルーティング構成要素を実施することとを含む、方法。
【請求項2】
請求項1に記載の方法であって、前記複数のルーティング構成要素は、1つの分散化ルーティング構成要素と、複数の集中化ルーティング構成要素とを含む、方法。
【請求項3】
請求項2に記載の方法であって、更に、前記分散化ルーティング構成要素と前記複数の集中化ルーティング構成要素との間のトラフィックを論理的に処理する論理スイッチを、自動的に定義することを含む、方法。
【請求項4】
請求項3に記載の方法であって、前記ネットワークにおいて前記複数のルーティング構成要素を実施することは、単一のマシン上で前記集中化ルーティング構成要素のそれぞれを実施することと、前記分散化ルーティング構成要素と論理スイッチとを複数のマシンに跨って実施することとを含む、方法。
【請求項5】
請求項1に記載の方法であって、前記論理ルータの前記定義は、外部ネットワークと接続するための複数のインタフェースの仕様を含み、各インタフェースは、ネットワークアドレスとデータリンクアドレスとを含み、前記複数のルーティング構成要素を定義することは、
前記複数のインタフェースの第1の1つを第1のゲートウェイマシンへ割り当て、前記複数のインタフェースの第2の1つを第2のゲートウェイマシンへ割り当てることと、
前記第1のゲートウェイマシン上で実施する第1の集中化ルーティング構成要素と、前記第2のゲートウェイマシン上で実施する第2の集中化ルーティング構成要素とを定義することとを含む、方法。
【請求項6】
請求項5に記載の方法であって、
前記第1の集中化ルーティング構成要素を定義することは、(i)前記第1のゲートウェイマシンに割り当てられた第1のインタフェースの構成詳細を用いて、前記第1の集中化ルーティング構成要素に対する前記第1のインタフェースを定義し、(ii)分散化ルーティング構成要素と通信するために用いられる前記第2の集中化ルーティング構成要素に対する第2のインタフェースを定義することを含み、
前記第2の集中化ルーティング構成要素を定義することは、(i)前記第2のゲートウェイマシンに割り当てられた第2のインタフェースの構成詳細を用いて、前記第2の集中化ルーティング構成要素に対する第1のインタフェースを定義し、(ii)前記分散化ルーティング構成要素と通信するために用いられる前記第2の集中化ルーティング構成要素に対する第2のインタフェースを定義することを含む、方法。
【請求項7】
請求項6に記載の方法であって、前記第1の集中化ルーティング構成要素の前記第1のインタフェースに対するネットワークアドレスデータは、前記複数のインタフェースの前記第1の1つに対するネットワークアドレスデータに基づき、前記第1の集中化ルーティング構成要素の前記第2のインタフェースに対するネットワークアドレスデータは、前記論理ルータの前記定義の任意の構成詳細とは別に生成される、方法。
【請求項8】
請求項6に記載の方法であって、前記複数のルーティング構成要素を定義することは、更に、前記第1の集中化ルーティング構成要素の前記第2のインタフェースと、前記第2の集中化ルーティング構成要素の前記第2のインタフェースと、前記分散化ルーティング構成要素のインタフェースとの全てに接続するポートを有する論理スイッチを定義することを含む、方法。
【請求項9】
請求項6に記載の方法であって、前記第1の集中化ルーティング構成要素の前記第2のインタフェースと、前記第2の集中化ルーティング構成要素の前記第2のインタフェースとは、異なるネットワークアドレスと異なるデータリンクレイヤアドレスとを有する、方法。
【請求項10】
請求項6に記載の方法であって、前記第1の集中化ルーティング構成要素の前記第2のインタフェースと、前記第2の集中化ルーティング構成要素の前記第2のインタフェースとは、同一のネットワークアドレスと異なるデータリンクレイヤアドレスとを有する、方法。
【請求項11】
請求項1に記載の方法であって、前記論理ルータの前記定義は、アプリケーションプログラミングインタフェース(API)を介して受信される、方法。
【請求項12】
請求項1に記載の方法であって、前記論理ルータは第1の論理ルータであって、前記方法は、更に、前記第1の論理ルータのインタフェースに接続する第2の論理ルータの定義を受信することを含む、方法。
【請求項13】
請求項12に記載の方法であって、前記第1の論理ルータの前記定義は、外部ネットワークと通信するための複数のインタフェースを含み、前記第2の論理ルータは、前記第1の論理ルータを介してのみ前記外部ネットワークと通信する、方法。
【請求項14】
請求項13に記載の方法であって、更に、前記第2の論理ルータのために構成されたステートフルサービスが存在しない場合に、前記第2の論理ルータに対する単一の分散化ルーティング構成要素を定義することを含む、方法。
【請求項15】
請求項13に記載の方法であって、更に、ステートフルサービスが前記第2の論理ルータのために構成される場合に、(i)分散化ルーティング構成要素と、(ii)前記第2の論理ルータに対する2つの集中化ルーティング構成要素とを定義することを含み、前記第2の論理ルータに対する、前記定義されたルーティング構成要素のそれぞれは、別々の経路の組と、別々の論理インタフェースの組とを含む、方法。
【請求項16】
請求項15に記載の方法であって、更に、前記2つの集中化ルーティング構成要素のそれぞれのインタフェースと、前記第1の論理ルータの前記分散化ルーティング構成要素の単一のインタフェースとに接続するポートを有する論理スイッチを定義することを含む、方法。
【請求項17】
請求項15に記載の方法であって、前記第2の論理ルータの前記2つの集中化ルーティング構成要素の第1は、アクティブとして指示され、前記第2の論理ルータの前記2つの集中化ルーティング構成要素の第2は、スタンバイとして指示され、前記第2の論理ルータの前記第1の集中化ルーティング構成要素は、ARPリクエストに応答し、前記第2の論理ルータの前記第2の集中化ルーティング構成要素はARPリクエストに返信しない。
【請求項18】
論理ルータの複数のピア集中化構成要素の1つにおける障害を処理する方法であって、前記方法は、
前記論理ルータの前記ピア集中化構成要素の第1の1つにおいて、前記ピア集中化構成要素の第2の1つが停止したことを検出することと、
前記検出に応じて、前記停止した第2のピアのネットワークレイヤアドレスを自動的に識別することと、
論理ルータの前記ピア集中化構成要素の全てと論理ルータの分散化構成要素とを接続する論理スイッチ上でメッセージをブロードキャストすることにより、前記停止したピアへのデータトラフィックに対する責務を引き受けることであって、前記メッセージは、受信側に、前記識別されたネットワークレイヤアドレスを前記第1のピア集中化構成要素のデータリンクレイヤアドレスと関連付けるように指示する、ことを含む、方法。
【請求項19】
請求項18に記載の方法であって、前記第2のピア集中化構成要素が停止したことを検出することは、前記第1のピア集中化構成要素が動作する第1のマシンと、前記第2のピア集中化構成要素が動作する第2のマシンとの間のトンネルがもはや動作していないことを検出することを含む、方法。
【請求項20】
請求項18に記載の方法であって、前記第2のピア集中化構成要素が停止したことを検出することは、外部ネットワークへの接続性がもはや利用可能でない前記第2のピア集中化構成要素からメッセージを受信することを含む、方法。
【請求項21】
請求項20に記載された方法であって、前記外部ネットワークと動的ルーティング情報を交換することができない場合に、前記第2のピア集中化構成要素はメッセージを送信する、方法。
【請求項22】
請求項20に記載された方法であって、前記外部ネットワークとデータトラフィックをもはや交すことができない場合に、前記第2のピア集中化構成要素はメッセージを送信する、方法。
【請求項23】
請求項18に記載の方法であって、前記方法は、前記第1のピア集中化構成要素と同一のマシン上で動作するローカルネットワークコントローラによって実行される、方法。
【請求項24】
請求項18に記載の方法であって、前記方法は、前記第1のピア集中化構成要素によって実行される、方法。
【請求項25】
請求項18に記載の方法であって、前記論理ルータは、データセンタ内で実施される論理ネットワークと、前記データセンタ外の物理ネットワークとの間の通信を処理するものであり、前記停止した第2のピアの前記識別されたネットワークレイヤアドレスは、前記論理ルータの前記分散化構成要素と通信するインタフェースに対する、ネットワークレイヤアドレスである、方法。
【請求項26】
請求項25に記載の方法であって、前記停止した第2のピアの前記識別されたネットワークレイヤアドレスは、前記論理ルータの前記分散化構成要素と通信する、前記第1のピアのインタフェースに対するネットワークレイヤアドレスと異なる、方法。
【請求項27】
請求項26に記載の方法であって、前記論理ネットワークと前記物理ネットワークとの間の通信を処理するために、前記第1のピア及び前記第2のピアの両方がアクティブとして指示される、方法。
【請求項28】
請求項25に記載の方法であって、前記停止した第2のピアの前記識別されたネットワークレイヤアドレスが、前記論理ルータの前記分散化構成要素と通信する、前記第1のピアのインタフェースに対するネットワークレイヤアドレスと同一である、方法。
【請求項29】
請求項28に記載の方法であって、停止する前に、前記論理ネットワークと前記物理ネットワークの間の通信を処理するために、前記第2のピアがアクティブとして指示され、前記第1のピアは、前記論理ネットワークと前記物理ネットワークの間の通信を処理するために、スタンバイとして指示される、方法。
【請求項30】
論理ルータのゲートウェイ構成要素を定義する方法であって、前記方法は、
前記論理ルータのために構成される複数のアップリンクのそれぞれに、異なるゲートウェイマシンへの前記アップリンクを割り当ていることと、
前記アップリンクの第1の1つに対して、前記第1のアップリンクが割り当てられる第1のゲートウェイマシン上で実施される、前記論理ルータの第1の集中化ゲートウェイ構成要素を定義することと、
前記第1のアップリンクに従って構成される、前記第1の集中化ゲートウェイ構成要素に対する第1のローカルインタフェースを定義することであって、前記第1の集中化ゲートウェイ構成要素に対する前記第1のローカルインタフェースは、前記論理ルータの実施より外側のネットワークへトラフィックをフォワードする、ことと、
前記第2のアップリンクに従って構成される、前記第1の集中化ゲートウェイ構成要素に対する第2のインタフェースを定義することであって、前記第2のインタフェースは、第2の集中化ゲートウェイ構成要素が前記外部ネットワークへ前記トラフィックをフォワードするように、前記第2のアップリンク構成に従って処理されるトラフィックを、第2のゲートウェイマシン上で実施される前記第2の集中化ゲートウェイ構成要素へリダイレクトする、こととを含む方法。
【請求項31】
請求項30に記載の方法であって、更に、前記第1の集中化ゲートウェイ構成要素を、前記外部ネットワークと動的ルーティング情報を交わすように構成することを含み、前記動的ルーティング情報を交わすことを通じて前記第1の集中化ゲートウェイ構成要素によって学習される経路は、前記第1のローカルインタフェースを介した出力のために、前記第1の集中化ゲートウェイ構成要素のルーティング情報ベース(RIB)に組み込まれる、方法。
【請求項32】
請求項31に記載の方法であって、前記第2の集中化ゲートウェイ構成要素も、前記外部ネットワークと動的ルーティング情報を交わし、前記第2の集中化ゲートウェイ構成要素によって学習される経路は、前記第2のインタフェースを介した出力のために、前記第1の集中化ゲートウェイ構成要素のRIBに組み込まれる、方法。
【請求項33】
請求項32に記載の方法であって、前記第1の集中化ゲートウェイ構成要素によって学習される経路は、前記第1の集中化ゲートウェイ構成要素のRIBにおいて、前記第2の集中化ゲートウェイ構成要素によって学習される経路より短い管理上の距離を有する、方法。
【請求項34】
請求項32に記載の方法であって、前記第1の集中化ゲートウェイ構成要素によって学習される経路は、前記第1の集中化ゲートウェイ構成要素によって、前記第2の集中化ゲートウェイ構成要素によって学習される経路よりも選択される、方法。
【請求項35】
請求項30に記載の方法であって、更に、複数のマシンにおける複数の管理フォワーディング要素によって実施される、前記論理ルータの分散化ルーティング構成要素を定義することを含み、前記複数のマシンは、前記アップリンクが割り当てられる、少なくとも前記ゲートウェイマシンを含む、方法。
【請求項36】
請求項35に記載の方法であって、前記第1の集中化ゲートウェイ構成要素は、動的ルーティングプロトコルを用いて前記外部ネットワークからルーティング情報を学習し、前記分散化ルーティング構成要素のRIBへ組み込むために前記ルーティング情報を提供する、方法。
【請求項37】
請求項36に記載の方法であって、前記第1の集中化ゲートウェイ構成要素は、前記分散化ルーティング構成要素のRIBへ組み込むために、前記学習したルーティング情報を集中化ネットワークコントローラへ渡す、方法。
【請求項38】
請求項37に記載の方法であって、前記集中化ネットワークコントローラは、前記RIBを、前記分散化ルーティング構成要素を実施する前記複数のマシンへ分配する、方法。
【請求項39】
請求項35に記載の方法であって、更に、前記第1の集中化ゲートウェイ構成要素に対する第3のインタフェースを定義することを含み、前記第1の集中化ゲートウェイ構成要素に対する前記第3のインタフェースは、前記分散化ルーティング構成要素とトラフィックを交す、方法。
【請求項40】
請求項30に記載の方法であって、前記第1の集中化ゲートウェイ構成要素は、トラフィックを、前記外部ネットワークから前記第1のインタフェースを介して直接受信する、方法。
【請求項41】
請求項30に記載の方法であって、更に、
前記アップリンクの第2の1つに対して、前記第2のアップリンクが割り当てられる前記第2のゲートウェイマシン上で実施される、前記論理ルータの前記第2の集中化ゲートウェイ構成要素を定義することと、
前記第2のアップリンクに従って構成される、前記第2の集中化ゲートウェイ構成要素に対する第1のローカルインタフェースを定義することであって、前記第2の集中化ゲートウェイ構成要素に対する前記第1のローカルインタフェースは、前記外部ネットワークへトラフィックをフォワードする、ことと、
前記第1のアップリンクに従って構成される、前記第2の集中化ゲートウェイ構成要素に対する第2のインタフェースを定義することであって、前記第2のインタフェースは、第1の集中化ゲートウェイ構成要素が前記外部ネットワークへ前記トラフィックをフォワードするように、前記第1のアップリンク構成に従って処理されるトラフィックを、前記第1の集中化ゲートウェイ構成要素へリダイレクトする、こととを含む方法。
【請求項42】
請求項30に記載の方法であって、前記第1のアップリンク及び前記第2のアップリンクは、構成された異なるサービスポリシーを有する、方法。
【請求項43】
請求項30に記載の方法であって、前記第1のアップリンク及び前記第2のアップリンクは、前記外部ネットワークとの異なるL3接続性を有する、方法。
【請求項44】
少なくとも1つの処理ユニットで実行されると、請求項1から43のうちのいずれかに従う方法を実施するプログラムを格納する、機械可読媒体。
【請求項45】
電子デバイスであって、
プロセッシングユニットの組と、
少なくとも1つの処理ユニットで実行されると、請求項1から43のうちのいずれかに従う方法を実施するプログラムを格納する機械可読媒体と、を含む電子デバイス。
【請求項46】
請求項1から43のいずれか1つに従う前記方法を実施する手段を有するシステム。
【発明の詳細な説明】
【背景技術】
【0001】
[0001] 典型的な物理ネットワークは、L3フォワーディング(forwarding)(すなわちルーティング)を実行するための複数の物理ルータを含む。第1のマシンが、異なるIPサブネットに置かれた第2のマシンへパケットを送信しようとする場合、パケットはルータに送信され、当該ルータは、パケットの送信先IPアドレスを用いてどのマシンの物理インタフェースを通じてパケットを送信すべきかを決定する。より大きなネットワークは、ルータの1つが停止した場合に、パケットが第1のマシンと第2のマシンとの間の異なるパスに沿ってルーティングされ得るように、複数のルータを含む。
【0002】
[0002] 論理ネットワークにおいても、異なるサブネットにおけるユーザ定義データ計算ノード(例えば仮想マシン)が、互いに通信することが同様に必要であり得る。この場合、テナント(tenant)は、論理スイッチと論理ルータとの両方を含む、仮想化のためのネットワークを定義し得る。データセンタにおいてこのような仮想化された論理ネットワークを適切に提供する論理ルータを実施する方法が必要とされている。
【発明の概要】
【0003】
[0003] いくつかの実施形態は、ネットワークにおいて(例えばデータセンタにおいて)論理ルータを実施する方法を提供する。ある実施形態では、この方法は、ネットワークを集中的に管理する(例えばネットワークコントローラにおいて実施される)管理プレーンによって実行される。いくつかの実施形態では、この方法は、(例えばアプリケーションプログラミングインタフェース(API)を通じて)論理ルータの定義を受信し、そして論理ルータのためのいくつかのルーティング構成要素を定義する。これらのルーティング構成要素のそれぞれは、別個に経路の組と論理インタフェースの組とを割り当てられる。
【0004】
[0004] いくつかの実施形態では、論理ルータのために定義されたいくつかのルーティング構成要素は、1つの分散化ルーティング構成要素といくつかの集中化ルーティング構成要素とを含む。加えて、いくつかの実施形態の管理プレーンは、論理ルータの内部の構成要素の間の通信を処理するための論理スイッチ(通過論理スイッチとして参照される)を定義する。分散化ルーティング構成要素と通過論理スイッチとは、データセンタ内の多数のマシンによって分散化された態様で実施される一方、集中化ルーティング構成要素はそれぞれが単一のマシン上で実施される。いくつかの実施形態は、様々なマシン上の管理対象フォワーディング構成要素のデータパスにおいて分散化構成要素を実施する一方、集中化ルーティング構成要素はその単一のマシン上の複数のVM(又は他のデータ計算ノード)において実施される。他の実施形態もまた、割り当てられたマシンのデータパスにおいて集中化構成要素を実施する。
【0005】
[0005] ある実施形態では、集中化構成要素はアクティブ-アクティブモード、又はアクティブ-スタンバイモードであるように構成され得る。アクティブ-アクティブモードでは、全ての集中化構成要素が同時に完全に動作し、トラフィックは、(様々な集中化構成要素にわたるトラフィックをバランスする)等価コストマルチパス(equal-cost multi-path)(ECMP)フォワーディング原理を用いる集中化構成要素を通して、論理ネットワークに侵入又は退出することができる。このモードでは、別々の集中化構成要素のそれぞれは、外部ネットワークと通信するための、自身のネットワークレイヤ(例えばIP)アドレスとデータリンクレイヤ(例えばMAC)アドレスとを有する。加えて、別々の集中化構成要素のそれぞれは、分散化ルーティング構成要素へパケットを送信するとともに分散化ルーティング構成要素からパケットを受信するために、通過論理スイッチと接続するための自身のネットワークレイヤアドレスとデータリンクレイヤアドレスとを有する。
【0006】
[0006] いくつかの実施形態では、論理ルータは2層論理ネットワーク(two-tier logical network)構成の一部である。2層構成のいくつかの実施形態は、論理ネットワークをデータセンタの外部のネットワークに接続するための単一の論理ルータ(プロバイダ論理ルータ(provider logical router)(PLR)として参照され、例えばデータセンタの所有者によって管理される)と、単一の論理ルータと接続し、外部ネットワークと個別に通信しない複数の論理ルータ(テナント論理ルータ(tenant logical router)(TLR)として参照され、例えばデータセンタの異なるテナントによって管理される)とを含む。いくつかの実施形態は、可能なときはいつでもアクティブ-アクティブモードにおいてPLRを実施し、ステートフルサービス(stateful service)(例えば、NATファイアウォール、ロードバランサ等)が論理ルータのために構成される場合にのみアクティブ-スタンバイモードを用いる。
【0007】
[0007] PLRに対して、いくつかの実施形態は外部ネットワークと経路交換を可能にする。PLRの集中化構成要素のそれぞれは、論理ネットワークのプレフィックスをアドバタイズし、外部ネットワークへの経路を受信するために動的ルーティングプロトコル処理を実行する。データセンタ内に集中的、及び論理ネットワークを実施するマシン上の両方に置かれたネットワークコントローラのネットワーク制御システムを通して、これらの経路が他の集中化構成要素と分散化ルーティング構成要素とに伝達される。いくつかの実施形態は、外部ネットワークから直接学習した経路と、外部ネットワークから経路を学習した、異なるピアの集中化構成要素から学習した経路とについての、集中化構成要素のルーティング情報ベース(routing information base, RIB)において異なる管理上のメトリックを用いる。従って、集中化構成要素は、論理ルータのピア集中化構成要素を通じたリダイレクションを含む経路よりも、直接学習した経路を選択する。しかしながら、異なる集中化構成要素が、外部ネットワークへの異なるL3の接続性をもって構成されるインタフェースを有する場合、いくつかの実施形態では、第1の集中化構成要素によって処理されるパケットを第2の集中化構成要素を介して外部ネットワークへリダイレクトするために用いられる集中化構成要素上に、ダミーインタフェースを生成する。
【0008】
[0008] 一方、アクティブ-スタンバイモードでは、集中化構成要素のうちの1つのみがその時点で完全に機能(アクティブな構成要素)し、この構成要素のみがトラフィックを引き込むためのメッセージを送信する。いくつかの実施形態では、2つの構成要素は、分散化構成要素と通信するための同一のネットワークレイヤアドレス(しかし異なるデータリンクレイヤアドレス)を使用し、アクティブな構成要素のみが、分散化構成要素からのアドレス解決プロトコル(address resolution protocol, ARP)のリクエストに返信する。更に、アクティブな集中化構成要素のみが、トラフィックを引き込むために外部ネットワークへ経路をアドバタイズする。
【0009】
[0009] 論理ルータがTLRである場合、いくつかの実施形態は、論理ルータに対するステートフルサービス(stateful service)が構成されるときには、アクティブ-スタンバイモードでは、集中化構成要素を用いない或いは2つの集中化構成要素を用いる。TLRは、同一のネットワークレイヤアドレスを有する2つの集中化構成要素のそれぞれと、ARPリクエストに応答するアクティブな構成要素のみを有し、アクティブ-スタンバイモードにおいて内部的にPLRと同様の形態で動作する。PLRと接続するために、いくつかの実施形態はまた、2つの構成要素のそれぞれに同一のネットワークレイヤアドレス(しかし自身の分散化構成要素と接続するために用いられるアドレスとは異なる)を割り当てる。加えて、管理プレーンは、PLRの分散化構成要素とTLRの集中化構成要素との間の通過論理スイッチを定義する。
【0010】
[0010] いくつかの場合、アクティブ-アクティブモードであろうとアクティブ-スタンバイモードであろうと、集中化ルータ構成要素の1つ(又はそれ以上)は停止する。この障害は、構成要素が動作するマシンが完全にクラッシュし、マシンを実施するデータ計算ノード又はデータパスソフトウェアが破損し、外部ネットワークと接続する、或いは論理ネットワークの他の構成要素へのトンネルを通じて接続する構成要素の能力が停止する等によって発生し得る。停止した構成要素が、アクティブ-スタンバイモードにおいてスタンバイである場合、いくつかの実施形態では、取るべきアクションはない。そうでない場合、集中化構成要素の1つが停止したときには、そのピア構成要素の1つが通信を引き継ぐ責務を負う。
【0011】
[0011] アクティブ-スタンバイモードでは、スタンバイの集中化ルータ構成要素が、停止したアクティブな集中化ルータ構成要素に対する引き継ぎの責務を負う。このようにするため、論理ルータがPLRである場合、新しいアクティブな構成要素は、外部ネットワークからのトラフィックを引き込むために、外部ネットワークに対して経路のアドバタイジングを開始する(外部ネットワークへの接続性が維持されている場合、停止した構成要素は、このトラフィックを引き込むことを避けるために、自身の経路のアドバタイズメントを停止する責務を負う)。加えて、新しいアクティブな構成要素は、ネットワークレイヤアドレスの2つの構成要素の間の共有について現時点で責務を負うPLRの分散化構成要素に、メッセージ(例えばグラチュータスARP(gratuitous ARP)(GARP)の返信)を送信する。論理ルータがTLRである場合、この同一のGARPの返信の組が送信される。更に、構成要素が接続するPLRからのトラフィックを引き込むため、新しいアクティブな構成要素は、GARPの返信を、当該構成要素をPLRに接続する通過論理スイッチへ送信する。
【0012】
[0012] いくつかの実施形態のアクティブ-アクティブモードでは、管理プレーンは、論理ルータに対する全ての集中化構成要素を、これらが生成された時点におけるランキングを用いて指定する。このランキングは、停止した構成要素をどのピア構成要素が引き継ぐかを決定するために用いられる。具体的に、ある実施形態では、停止した構成要素のランキングの次に高いランキングを有する集中化構成要素が、停止した構成要素を引き継ぐ。引き継ぐためには、引き継ぐ構成要素が、論理ルータに対する分散化構成要素と通信する、停止した構成要素のネットワークレイヤアドレスを識別し、自身のデータリンクレイヤアドレスを、停止した構成要素のネットワークレイヤアドレスと関連付けるGARPの返信を送信する。
【0013】
[0013] 先行する要約は、本発明のいくつかの実施形態に対する簡単な導入として提供されることを意図するものである。本書面において開示される発明の主題の全ての紹介又は概要を意味するものではない。以下の詳細な説明及び詳細な説明において参照される図面は、他の実施形態と、要約において説明された実施形態を更に説明するであろう。従って、本書面によって説明される全ての実施形態を理解するため、要約、詳細な説明及び図面の十分な確認が必要である。更に、クレームされる主題は、主題の思想から離れることなく他の具体的な形態で具現化することができるため、クレームされる主題は、要約、詳細な説明及び図面における詳細な例によって限定されず、むしろ添付された特許請求の範囲によって定義されるべきである。
【図面の簡単な説明】
【0014】
[0014] 本発明の新規な特徴は添付の特許請求の範囲によって明らかになる。しかしながら、説明の目的のため、本発明のいくつかの実施形態は以下の図において明らかになる。
図1】[0015] 図1は、ユーザによって指示されるような論理ネットワークを表す、論理ルータの構成図を示す。
図2】[0016] 図2は、論理ルータが集中化される態様で実施される場合の、図1の論理ネットワークの管理プレーンビューを示す。
図3】[0017] 図3は、図1の論理ルータの物理的に集中化された実施を示す。
図4】[0018] 図4は、論理ルータが分散化される態様で実施される場合の、図1の論理ネットワークの管理プレーンビューを示す。
図5】[0019] 図5は、図1の論理ルータの物理的に分散化された実施を示す。
図6】[0020] 図6は、論理ルータの2つの層を用いる論理ネットワークを概念的に示す。
図7】[0021] 図7は、論理ネットワーク内のTLRが完全に分散化される場合の、図6の論理トポロジの管理プレーンビューを示す。
図8】[0022] 図8は、論理ネットワーク内のTLRが集中化構成要素を有する場合の、図6の論理トポロジの管理プレーンビューを示す。
図9】[0023] 図9は、管理者によって割り当てられたネットワークアドレスおよびインタフェースを含む、論理ネットワークトポロジのより詳細な構成を概念的に示す。
図10】[0024] 図10は、管理プレーンごとの図9の論理トポロジの構成を示す。
図11】[0025] 図11は、ユーザ仕様に基づいてPLRを構成するいくつかの実施形態の処理を概念的に示す。
図12】[0026] 図12は、ユーザ仕様に基づいてTLRを構成するいくつかの実施形態の処理を概念的に示す。
図13】[0027] 図13は、TLRとPLRの両方がDRに加えてSRを含む、図8に示す2層論理ネットワークを構築する管理プレーンの物理的な実施を概念的に示す。
図14A】、
図14B】[0028] 図14A及び14Bは、論理ルータの単一層を用いる論理トポロジに対する、論理ネットワークから出るトラフィック(ノースバウンドトラフィック(northbound traffic))と論理ネットワークへ入るトラフィック(サウスバウンドトラフィック(southbound traffic))とのそれぞれの例を示す。
図15A】、
図15B】[0029] 図15A及び15Bは、下の(TLR)層で提供される集中化サービスを有しない、2層論理トポロジに対するノースバウンド及びサウスバウンドのトラフィックの例を示す。
図16A】、
図16B】[0030] SRによって下の(TLR)層で提供される集中化サービスを有しない、2層の論理トポロジに対するノースバウンド及びサウスバウンドのトラフィックの例を示す。
図17】[0031] 図17は、いくつかの実施形態のSR処理の様々なステージを概念的に示す。
図18】、
図19】[0032] 図18及び図19は、単一の層のロジカルネットワークトポロジと、ECMPの使用要件を満たすトポロジの管理プレーンビューを示す。
図20】[0033] 図20は、論理ルータがアクティブ-アクティブ(ECMP)モードよりもむしろアクティブ-スタンバイモードで構成される場合の、図18の論理ネットワークトポロジの管理プレーンビューを示す。
図21】[0034] 図21は、特定のPLRに対する3つのreSRをホストする3つのゲートウェイマシンの物理的な実装例を示す。
図22】[0035] 図22は、クラッシュする図21のSRの1つを実施するVMの1つの結果を概念的に示す。
図23】[0036] 図23は、図21のSRの1つをホストするゲートウェイマシン上のMFEにおける、完全なトンネルの障害の結果を概念的に示す。
図24】[0037] 図24は、ピアSRのファイオーバーの場合にSRによって実行される処理を概念的に示す。
図25】[0038] 図25は、本発明のいくつかの実施形態が実装される電子システムを概念的に示す。
【発明を実施するための形態】
【0015】
[0039] いくつかの実施形態は、例えばデータセンタにおける実施のための2層論理ルータ技術を提供する。これらの層は、いくつかの実施形態では、プロバイダ論理ルータ(PLR)の上層(top tier)とテナント論理ルータ(TLR)の下層(lower tier)とを含む。この2層構造は、プロバイダ(例えばデータセンタのオーナー)とテナント(例えばデータセンタのカスタマ、しばしば多数のこのようなカスタマのうちの1つ)との両方が、これら自身のサービスとポリシーの制御を可能にする。いくつかの実施形態では、PLRレイヤは、外部物理ネットワークとインタフェースで接続する論理レイヤであり、従って、動的ルーティングプロトコル(例えばBGP)は、データセンタの外部の物理ルータとルーティング情報を交換することができるように、PLR上に構成され得る。いくつかの実施形態はまた、物理的なネットワークルータが起動しているかを監視するための双方向フォワーディング検出(BFD)又は同様のプロトコルの構成を可能にする。いくつかのデータセンタは複数のテナントを有し得ず、この場合、別個のPLRとTLRに対する必要性は無くなる。このような場合、いくつかの実施形態は、PLRの機能を有する単一の層を用いる、単一層論理ルータトポロジを用い得る。いくつかの実施形態の2層論理トポロジは、2014年3月21日に出願された米国特許出願14/222,557号に、より詳細に説明されており、参照により以下に組み込まれる。
【0016】
[0040] いくつかの実施形態では、PLRとTLRの両方が、ステートフルサービス(例えばファイアウォール)に加えて、ステートレスサービス(例えばアクセス制御リスト(ACL))をサポートする能力を有する。加えて、(VMなどのデータ計算ノードが接続し得る)論理スイッチはPLR又はTLRのいずれかと接続し得る。更に、PLRとTLRの両方は、(例えば、データ計算ノードと直接物理的に接続する第1ホップのMFEで実行される論理ルータ処理を用いて)分散化された態様、又は(ノース-サウストラフィックとイースト-ウェストトラフィックの両方のためのゲートウェイで実行される論理ルータ処理を用いて)集中化された態様のいずれかで実施されることができる。集中化された実施では、分散化された態様で実施される場合であってもPLRが物理ネットワークと相互作用する集中化ゲートウェイに加え、論理ルータの両層は、(例えば等価コストマルチパス(equal-cost multi-path, ECMP)技術を用いて)追加的なスループットを提供するために、障害保護(failure protection)のときと同じように複数の物理的なボックスを用いることによってスケールアウトされ得る。
【0017】
[0041] いくつかの実施形態では、論理ルータが少なくとも部分的に集中化(例えばクラスタ-化)された態様で実施される場合、論理ルータは(論理ルータの実施の間のステート共有に対する必要性を排除するために)ステートフルサービスのみを用い得る。異なる実施形態では、(分散化PLRのための外部ネットワークへの接続を形成するとともに、論理ルータの集中化された側面を提供する)ゲートウェイは、(あるときにはエッジVM(Edge VM)として参照される)仮想マシン、データ計算ノードの他の種別(例えばネームスペース)、又はLinux(登録商標)ベースのデータパス開発キット(DPDK)のパケット処理ソフトウェア(例えば、DPDKベースのデータパスにおけるVRF)として実施され得る。
【0018】
[0042] 以下、明細書において使用される用語及び略語のいくつかを説明する。
・VNI (Virtual/Logical Network Identifier)-論理ドメイン(例えば論理スイッチ)に対する固有の識別子(例えば24ビットの識別子)。
・PLR (Provider Logical Router-上述のように、サービスプロバイダ(例えばデータセンタのオペレータ)が完全な制御権を有し、外部の物理ネットワークと直接的にインタフェースで接続する論理ルータ。
・TLR (Tenant Logical Router)-テナント(例えばデータセンタのカスタマ、企業体内のグループ等)が完全な制御権を有し、外部の物理ネットワークにアクセスするためにPLRと接続する論理ルータ。
・分散化論理ルータ(Distributed Logical Router)-第1ホップルーティングをサポートする論理ルータ、すなわち、データ計算ノードが直接接続する管理対象フォワーディング構成要素内で、論理ルータが実施される。
・集中化論理ルータ(Centralized Logical Router)-第1ホップルーティングをサポートしない論理ルータ。
・サービスルータ(SR)-集中化サービスを提供するために用いられる論理ルータの具体化の一部であり、いくつかの実施形態では、SRは、トラブルシューティングの目的を除いて、ネットワークマネージャーAPIに露出されない。
・分散化ルータ(DR)-第1ホップルーティングを提供するために用いられる論理ルータの具体化の一部。いくつかの実施形態では、DRもまた、トラブルシューティングの目的を除いて、ネットワークマネージャーAPIに露出されない。
・アップリンク-(i)論理ルータ(外部物理ネットワークに向けられている)のノースバウンドインタフェースと、(ii)ゲートウェイのpNlCsの組との両方への参照。
・論理スイッチ-論理L2ブロードキャストドメイン。
・通過論理スイッチ(Transit logical switch)-TLRのSR/DRとDRのDRとを接続するためにネットワークマネージャーによって自動的に生成される論理スイッチであり、いくつかの実施形態では、通過論理スイッチは、接続されるデータ計算ノード(例えばカスタマワークロードVM)を有しない。
更に、いくつかの実施形態では、通過論理スイッチはトラブルシューティングの目的を除いて、ネットワークマネージャーAPIに露出されない。
・コンテキスト-論理ルータのデータパス表現であり、いくつかの実施形態では、コンテキストはVRF、ネームスペース又はVMであり得る。
・トランスポートノード、又はゲートウェイ-ネットワークマネージャーによって定義されたトンネルを終端させるノードであり、様々な実施形態において、当該ノードはハイパーバイザで実施される仮想スイッチ、又はDPDKベースのエッジノードであり得る。いくつかの実施形態では、トランスポートノードはデータパスを用いる相互接続に用いられ得る。
・デプロイコンテナ(Deployment Container、DC)、又はエッジクラスタ(Edge Cluster)-同種のノードの集合、同一のL2接続性を共有するアップリンクであり、いくつかの実施形態では、DC内の全ノードは同一の種別であり且つ同一の障害ドメインに属す。
・エッジノード(Edge Node)-DC内のノードであり、DPDKベースのエッジ又はハイパーバイザで実施される仮想スイッチであり得る。
【0019】
[0043] 上記は2層論理ルータの概念と、いくつかの実施形態の論理ルータの構成及び実施の所定の側面とを説明する。以下、セクションIはいくつかの実施形態の論理ルータの全体的な高レベルの設計に焦点をあて、一方で、セクションIIは様々な論理ルータ構成要素の構成を説明する。そして、セクションIIIは、いくつかの実施形態の様々なパイプラインを通したパケット処理を説明する。次に、セクションIVはアクティブ-アクティブ構成におけるECMP処理を説明し、一方で、セクションVはアクティブ-スタンバイ構成について説明する。そして、セクションVIはSRに対するフェイルオーバー(failover)シナリオについて説明する。最後に、セクションVIIは、本発明のいくつかの実施形態が実装される電子システムを説明する。
【0020】
[0044] I.論理ルータ及び物理的な実施
[0045] 以下の説明は、いくつかの実施形態に対する論理ルータの設計について、いくつかの実施形態のネットワークコントローラによる論理ルータの実施とともに説明する。上述したように、いくつかの実施形態の論理ルータは、分散化した又は集中化した態様のいずれかで実施することができ、論理ルータがステートフル(又はステートレス)サービスを用いて又は用いることなくスケールアウトすることができるように、そして、そのようなサービスがデータパス内のVRFコンテキスト又は仮想マシンコンテキストのいずれかによって提供され得るように、設計される。
【0021】
[0046] いくつかの実施形態では、論理ルータは3つの異なる形態で存在する。3つの形態の1つ目は、APIの図、或いは構成図であり、これは、論理ルータが、データセンタプロバイダ又はテナントのようなユーザによってどのように定義されるか(すなわち受信した論理ルータの定義)についてのものである。2つ目の図は、ネットワークコントローラがどのように内部的に論理ルータを定義するかについての、コントロールプレーン又は管理プレーンのビューである。最後に、3つ目の図は、論理ルータがどのようにデータセンタ内で実際に実施されるかについての論理ルータの物理的な具体化又は実施である。
【0022】
[0047] コントロールプレーンの図では、いくつかの実施形態の論理ルータは、単一のDRと1つ以上のSRとの1つ又は両方を含む。いくつかの実施形態において、DRは、論理ルータに直接若しくは間接に論理的に接続される他のデータ計算ノード又はVMと直接接続する、管理対象フォワーディング構成要素(MFE)に及ぶ。いくつかの実施形態のDRはまた、論理ルータが結合するゲートウェイに及ぶ。上述したように、DRは、論理スイッチ及び、論理ルータと論理的に接続された他の論理ルータの少なくともいずれかの間における、第1ホップの分散ルーティングに対して責務を負う。いくつかの実施形態のSRは、分散化された形態(例えばいくつかのステートフルサービス)で実施されないサービスを配送する責務を負う。
【0023】
[0048] A.集中化論理ルータ
[0049] 図1-3は、集中化論理ルータの実施についての3つの異なる図を示している。図1は、特に、ユーザによって指示されるような論理ネットワーク100を表す、論理ルータの構成図を示す。図示されるように、論理ルータ115は、論理ルータ115と、2つの論理スイッチ105及び110とを含む論理ネットワーク100の一部である。2つの論理スイッチ105と110のそれぞれは、論理ポートに接続するVMを有する。3つの図においてVMとして示すが、いくつかの実施形態において、他の種別のデータ計算ノード(例えばネームスペース等)が論理スイッチと接続することが理解されるべきである。論理ルータ115はまた、外部物理ネットワーク120に接続する2つのポートを含む。
【0024】
[0050] 図2は、論理ネットワーク100の管理プレーンビュー200を示している。論理スイッチ105と110は、この図では構成図と同一であるが、ネットワークコントローラは、論理ルータ115に対して2つのサービスルータ205と210とを生成している。いくつかの実施形態では、これらのSRは、1つのSRがアクティブに動作し、他はスタンバイとして(アクティブなSRが障害である場合に)動作する、アクティブ-スタンバイモードで動作する。論理スイッチ105と110のそれぞれは、SR205と210のそれぞれとの接続を有する。論理ネットワーク100が3つの論理スイッチを含む場合、これらの3つの論理スイッチは、SR205と210との両方にそれぞれ接続される。
【0025】
[0051] 最後に、図3は、論理ルータ100の物理的な集中化実施を示している。図示されるように、論理ネットワーク100における論理スイッチ105と110の1つに接続されるVMのそれぞれは、ホストマシン305上で動作する。これらのホストマシン上で動作するMFE310は、ホストマシン上のハイパーバイザ又は他の仮想化ソフトウェア内で動作する仮想スイッチ(例えばOVS、ESX)である。これらのMFEは、論理ネットワーク100のVMによって送信されるパケットに対し、論理スイッチ105及び110の第1ホップのスイッチングを実行する。MFE310(又はこれらのサブセット)はまた、他の論理ネットワークが、ホストマシン305上に同様に存在するVMを有する場合、他の論理ネットワークのための論理スイッチ(及び分散化論理ルータ)を実施し得る。
【0026】
[0052] 2つのサービスルータ205と210のそれぞれは、異なるゲートウェイマシン315及び320上で動作する。ゲートウェイマシン315と320は、いくつかの実施形態においてホストマシン305と類似するホストマシンであるが、ユーザVMよりむしろホストサービスルータである。いくつかの実施形態では、ゲートウェイマシン315及び320のそれぞれは、MFEが必要な任意の論理スイッチングを処理するように、サービスルータとMFEとを含む。例えば、外部ネットワーク120から送信されたパケットは、ゲートウェイ上のサービスルータの実施によってルーティングされ得、そして同じゲートウェイ上のMFEにより、その後スイッチされる。
【0027】
[0053] SRは、異なる実施形態では、ネームスペース内、仮想マシン内、又はVRFとして実施され得る。SRは、いくつかの実施形態では、任意のステートフルサービス(例えばファイアウォール)が論理ルータ上に構成されるかどうかに応じて、アクティブ-アクティブ又はアクティブ-スタンバイモードで動作し得る。ステートフルサービスが構成される場合、いくつかの実施形態は単一のアクティブSRのみを必要とする。いくつかの実施形態では、アクティブ及びスタンバイのサービスルータは同一の構成で提供されるが、MFE310は、アクティブSR(又はアクティブSRを有するゲートウェイマシン上のMFEへ)へトンネルを介してパケットを送信するように構成される。トンネルがダウンした場合にのみ、MFEがスタンバイのゲートウェイにパケットを送信する。
【0028】
[0054] B. 分散化論理ルータ
[0055] 上述したセクションが論理ルータの集中化された実施について説明するのに対し、いくつかの実施形態は、ゲートウェイに全てのルーティングの機能を集中させるよりむしろ、第1ホップルーティングを可能にする分散化論理ルータの実施を用いる。いくつかの実施形態では、分散化論理ルータの物理的な具体化は、常にDR(すなわち第1ホップルーティング)を有する。分散化論理ルータは、(i)論理ルータがPLRであり、従って外部物理ネットワークに接続する、或いは(ii)分散化された実施を持たないように構成されたサービス(例えば、いくつかの実施形態では、MAT、ロードバランシング、DHCP)を、論理ルータが有する、のいずれかの場合にSRを有する。いくつかの実施形態は、PLR上に構成されるステートフルサービスが無い場合であっても、ECMPの場合の障害の対処に役立てるための実施において、SRを用いる。
【0029】
[0056]
[0057] 図4及び5は、それぞれ、管理プレーンビュー及び分散化論理ルータのための物理的な実施を示している。ユーザによって入力される構成ビューは、集中化ルータのための図1で示したものと同一であり、相違はユーザ(管理者)が論理ルータが分散化するように示すことである。分散化実施のためのコントロールプレーンビュー400は、2つのサービスルータ405と410に加えて、コントロールプレーンが分散化ルータ415と通過論理スイッチ420とを生成することを示している。様々なルータ構成物405-415のノースバウンド及びサウスバウンドの構成と、これらの通過論理スイッチ420との接続は以下で更に詳細に説明される。いくつかの実施形態では、管理プレーンは、ルータ構成物405-415のそれぞれに対して別々のルーティング情報ベース(routing information bases)(RIB)を生成する。これは、管理/コントロールプレーンにおいて生成された別々のオブジェクトを有することに加えて、各ルータ構成物405は別々の経路を有する別々のルータとして扱われる。そして、通過論理スイッチ420は、これらの各ルータに対する論理ポートを有し、各ルータ構成物は通過論理スイッチ420へのインタフェースを有する。
【0030】
[0058] 図5は、論理ルータ100の物理的な分散化実施を示している。集中化実施のように、論理ネットワーク100における論理スイッチ105と110の1つに接続するVMのそれぞれは、ホストマシン505上で動作する。MFE510は、第1ホップスイッチングと論理スイッチ105及び110のためのルーティングと論理ルータ115のためのルーティングとを(スイッチングを実行すること及び/又は他の論理ネットワークへルーティングすることに加えて)実行する。図5に示すように、分散化ルータ415は、ゲートウェイ515及び520に加えてMFE510にわたって実施される。すなわち、データパス(例えば、MFE510において、ゲートウェイ515及び520におけるMFEと同様に、又は、ゲートウェイ上の異なる形態要素で)は、DR415(及び通過論理スイッチ420)に必要な処理パイプラインの全てを含む。いくつかの実施形態のパケット処理は、以下でより詳細に説明される。
【0031】
[0059] C.多層トポロジ(Multi-Tier Topology)
[0060] 前の例は論理ルータの単一層のみを示すものである。論理ルータの多層の論理ネットワークでは、いくつかの実施形態は、各レベルにおいてDRとSRの両方を、又は、上層レベルのDR及びSR(PLR層)と下層レベル(TLR層)のDRのみを、含み得る。図6は、いくつかの実施形態の多層論理ネットワーク600を、論理ネットワークの異なる2つの管理プレーンビューを示す図7及び図8とともに、概念的に示している。
【0032】
[0061] 図6は、論理ルータの2つの層を用いる論理ネットワーク600を概念的に示している。図示されるように、論理ルータ600は、レイヤ3のレベルにおいて、プロバイダの論理ルータ605、いくつかのテナント論理ルータ610-620を含む。第1のテナント論理ルータ610は、論理スイッチのそれぞれに接続する1つ以上のデータ計算ノードとともに、取り付けられた2つの論理スイッチ625及び630を有する。典型的には他のTLR615-620は(データ計算ノードと接続する)取り付けられた論理スイッチを有するが、簡単のために、第1のTLR610に取り付けられた論理スイッチのみを示している。
【0033】
[0062] いくつかの実施形態では、任意の数のTLRが、PLR605のようなPLRに取り付けられ得る。いくつかのデータセンタは、データセンタ内で実施される全てのTLRが取り付けられる単一のPLRのみを有し得るが、他のデータセンタは多数のPLRを有し得る。例えば、大きなデータセンタは異なるテナントに対して異なるPLRポリシーを用いることを望み得るか、全てのTLRを単一のPLRに取り付ける非常に多くの異なるテナントを有し得る。PLRのルーティングテーブルの部分は、そのTLRの論理スイッチドメインの全てに対する経路を含み、従って、PLRに多数のTLRを取り付けることにより、TLRに取り付けたサブネットに基づく各TLRに対するいくつかの経路を生成する。図示されるように、PLR605は外部物理ネットワーク635への接続を提供し、いくつかの実施形態は、データセンタのプロバイダがこの接続を管理することができるように、PLRがそのような接続を提供することを可能にする。別々のTLR610-620のそれぞれは、論理ネットワーク600の部分を通して、独立に構成される(そのように選択すれば単一のテナントが複数のTLRを有することができるが)。
【0034】
[0063] 図7及び8は、TLR605が集中化構成要素を含むか否かに応じて異なる、取り得る論理ネットワーク600の管理プレーンビューを示す。これらの例では、TLR605のルーティングについてはDRを用いて常に分散化される。しかしながら、TLR605の構成がステートフルサービスの提供を含む場合、TLRの管理プレーンビュー(従って物理的実施)は、これらのステートフルサービスのためのアクティブ及びスタンバイのSRを含む。
【0035】
[0064] 従って、図7は、TLR605が完全に分散化される場合の、論理トポロジに対する管理プレーンビュー700を示す。簡単のため、第1のTLR610の詳細のみが示されているが、他のTLRは、いくつかの場合にはSRに加えてそれぞれが自身のDRを有する。図4に示すように、PLR605はDR705と、通過論理スイッチ725によって互いに接続される3つのSRとを含む。PLR605の実施内の通過論理スイッチ725に加えて、管理プレーンはまた、TLRのそれぞれとPLRのDR705との間の別々の通過論理スイッチ730-740を定義する。TLR610が完全に分散化される事例(図7)では、通過論理スイッチ730は、TLR610の構成を実施するDR745と接続する。従って、以下でより詳細に説明されるように、論理スイッチ625に取り付けられるデータ計算ノードによって外部ネットワーク内の宛先に送信されるパケットは、論理スイッチ625、TLR610のDR745、通過論理スイッチ730、PLR605のDR705、通過論理スイッチ725、及びSR710-720の1つ、のパイプラインを通して処理される。いくつかの実施形態では、通過論理スイッチ725及び730-740の存在及び定義は、トラブルシューティングを目的とする例外はあるものの、APIを通してネットワークを設定するユーザ(例えば管理者)には隠される。
【0036】
[0065] 図8は、TLR605が集中化構成要素を有する場合(例えば、分散化することができないステートフルサービスがTLRのために定義されているため)の、論理トポロジ600に対する管理プレーンビュー800を示している。いくつかの実施形態では、ファイアウォール、NAT、ロードバランシング等などのステートフルサービスは、集中化した形態でのみ提供される。しかしながら、他の実施形態は、分散化するサービスのいくつか又は全てを可能にする。前の図のように、第1のTLR610の詳細のみが簡単のために示されており、他のTLRは、同様に定義された構成要素(DR、通過LS、及び2つのSR)、又は図7の例のようにDRのみを有し得る。PLR605は、前の図と同一の態様で、通過論理スイッチ725によって互いに接続されたDR705と3つのSR710を用いて実施される。加えて、前の例のように、管理プレーンは、PLRとTLRのそれぞれとの間に通過論理スイッチ730-740を置く。
【0037】
[0066] TLR610の部分的な集中化実装は、論理スイッチ625及び630が取り付けられるDR805と、2つのSR810及び815とを含む。PLRの実施のように、DRと2つのSRのそれぞれは通過論理スイッチ820へのインタフェースを有する。いくつかの実施形態において、この通過論理スイッチは、スイッチ725と同一の目的を果たす。TLRに対し、いくつかの実施形態は、1つのSRがアクティブ、他がスタンバイに指定されたアクティブ-スタンバイのSRを実施する。従って、アクティブなSRが動作可能な限り、論理スイッチ625及び630の1つに取り付けられるデータ計算ノードによって送信されるパケットは、スタンバイのSRよりむしろアクティブなSRに送信される。
【0038】
[0067] 上図はいくつかの実施形態の論理ルータの管理プレーンビューを示した。いくつかの実施形態では、管理者又は他のユーザは、APIを通して(他の構成情報に加えて)論理トポロジを提供する。このデータは管理プレーンに提供され、それは(例えばDR、SR、通過論理スイッチ等を定義することによって)論理ネットワークトポロジの実施を定義する。加えて、いくつかの実施形態では、ユーザは、各論理ルータ(例えば各PLR又はTLR)をデプロイのために物理マシンの組(例えばデータセンタ内の予め定められたマシンの組)と関連付ける。純粋な分散化ルータについては、図7で実施されるTLR605のように、DRが、論理ネットワークに接続されたデータ計算ノードと共にホスト上に存在する管理フォワーディング構成要素にわたって実施されるため、物理マシンの組は重要ではない。しかしながら、論理ルータの実施がSRを含む場合、これらのSRのそれぞれは特定の物理マシン上にデプロイされる。いくつかの実施形態では、物理マシンのグループは、(ユーザVM又は、論理スイッチに取り付けられるデータ計算ノードとは対照的に)SRをホストする目的のために指定されたマシンの組である。他の実施形態では、SRは、ユーザデータ計算ノードと一緒にマシン上にデプロイされる。
【0039】
[0068] ある実施形態では、論理ルータのユーザ定義は特定の数のアップリンクを含む。以下で説明されるように、アップリンクは、論理トポロジにおける論理ルータのノースバウンドインタフェースである。TLRについては、そのアップリンクはPLRと接続する(一般に、アップリンクの全ては同一のPLRと接続する)。PLRについては、そのアップリンクは外部ルータと接続する。いくつかの実施形態はPLRのアップリンクの全てが同一の外部ルータとの接続性を有することを必要とする一方で、他の実施形態はアップリンクが外部ルータの異なる組と接続することを可能にする。ひとたびユーザが論理ルータのためのマシンのグループを選択すると、SRが論理ルータのために必要である場合には、管理プレーンは、選択されたマシンのグループにある物理マシンに論理ルータのアップリンクのそれぞれを割り当てる。管理プレーンはその後、アップリンクが割り当てられる各マシン上でSRを生成する。いくつかの実施形態では、同一マシンに複数のアップリンクを割り当てることが可能であり、この場合、マシン上のSRは複数のノースバウンドインタフェースを有する。
【0040】
[0069] 上述したように、いくつかの実施形態では、SRは、仮想マシン又は他のコンテナとして、又は、(例えばDPDKベースのSRの実施である場合には)VRFコンテキストとして、実施され得る。いくつかの実施形態では、SRの実施のための選択は、論理ルータのために選択されたサービスと、どのSRの種別がこれらのサービスを最良に提供するかとに基づき得る。
【0041】
[0070] 加えて、いくつかの実施形態の管理プレーンは通過論理スイッチを生成する。通過論理スイッチのそれぞれについて、管理プレーンは、論理スイッチに固有のVNIを割り当て、各SR及びDR上に、通過論理スイッチと接続するポートを生成し、そして、論理スイッチと接続する任意のSR及びDRに対するIPアドレスを割り当てる。いくつかの実施形態は、各通過論理スイッチに割り当てられたサブネットが多数のTLR(例えばネットワークトポロジ600)を有する論理L3ネットワークトポロジ内で固有になることを必要とし、TLRのそれぞれは自身の通過論理スイッチを有し得る。すなわち、図8では、PLRの実施内の通過論理スイッチ725、PLRとTLRの間の通過論理スイッチ730-740、及び通過論理スイッチ820(及び任意の他のTLRの実施内の通過論理スイッチ)のそれぞれは、固有のサブセットを必要とする。更に、いくつかの実施形態では、SRは、論理空間内の例えばHAプロキシのようなVMへの接続を初期化する必要があり得る。戻りのトラフィックが機能することを保証するために、いくつかの実施形態はリンクローカルIPアドレスを使用しないようにする。
【0042】
[0071] いくつかの実施形態は、多層構成において、論理ルータの接続に様々な制限を設ける。例えば、いくつかの実施形態は、任意の数の論理ルータの層(例えば、TLRの多数の層に加えて、外部ネットワークに接続するPLR層)を可能にし、他の実施形態は2層トポロジのみ(PLRに接続する1つのTLRの層)を可能にする。更に、いくつかの実施形態は、各TLRが唯一のPLRに接続することを可能にし、そして、ユーザによって生成された各論理スイッチ(すなわち通過論理スイッチではない)が1つのPLR又は1つのTLRに接続することを可能にする。いくつかの実施形態はまた、論理ルータのサウスバウンドのポートのそれぞれが異なるサブネットになければならないという制約を追加する。従って、2つの論理スイッチは、同一の論理ルータと接続する場合に、同一のサブネットを有しないであろう。最後に、いくつかの実施形態は、PLRの異なるアップリンクが異なるゲートウェイマシン上に存在しなければならないことを必要とする。いくつかの実施形態はこれらの要件のいずれも含まないこと、又は要件の様々な異なる組み合わせを含むことが理解されるべきである。
【0043】
[0072] II.SR及びDRの構成
[0073] ユーザが論理ルータを構成する場合、この構成は、論理ルータのためのSR及びDRを管理プレーンによって構成するために用いられる。例えば、図1の論理ルータ115は4つのインタフェース(2つは論理スイッチへのもの、2つはアップリンク)を有する。しかしながら、図4におけるその分散化された管理プレーンの実施は、それぞれが3つのインタフェースを有するDRと2つのインタフェースを有するSRと(全部で7つのインタフェース)を含む。IP及びMACアドレスと、論理ルータ構成の一部として4つのインタフェースに割り当てられる他の構成の詳細とは、論理ルータの様々な構成要素に対する構成を生成するために用いられる。
【0044】
[0074] 更に、構成の一部として、いくつかの実施形態は、論理ルータ構成要素のそれぞれに対してルーティング情報ベース(routing information base)(RIB)を生成する。すなわち、管理者が単一の論理ルータのみを定義した場合であっても、いくつかの実施形態の管理プレーン及びコントロールプレーンの少なくともいずれかが、DR及びSRのそれぞれのための別々のRIBを生成する。PLRのSRのために、いくつかの実施形態では、管理プレーンが初めにRIBを生成するが、SRの物理的実施もまた、動的なルーティングプロトコル処理(例えばBGP、OSPF等)を実行して局所的にRIBを補う。
【0045】
[0075] いくつかの実施形態は、論理ルータのRIB内、つまりその構成要素ルータのRIB内に複数の種別の経路を含む。いくつかの実施形態では、全ての経路は、大きい値ほど低優先度の経路の種別を示す、優先度を決定するために用いられる管理上の距離値(すなわち、同一のプレフィックスに対する2つの経路が存在する場合、より低い距離値を有する経路が用いられる)を含む。同一のプレフィックスに対する複数の経路が同一の距離値でRIBにある場合、これらのプレフィックスへのトラフィックは当該異なる経路にわたって(例えば、トラフィックを同等にバランスするためのECMP原理を用いて)分散する。
connected (0): 論理ルータのポートに構成されるプレフィックス
static (1): 管理者/ユーザによる構成
management plane internal (10): デフォルト経路-TLRがPLRに接続され
る場合、PLRへ向かうデフォルト経路がTLRのRIBに追加され、論理
スイッチがTLRに接続される場合、ユーザはサブネットを再分散化できる
ようにし、サブネットがNAT化されていなければ、サブネットのTLRへ
向かうデフォルト経路はPLRのRIBに追加される
EBGP (20): 次の4つの種別は動的なルーティングプロトコルを介して学習される
経路である
OSPF internal (30)
OSPF external (110)
IBGP (200)
【0046】
[0076] いくつかの実施形態では、全ての論理ルータがBGPとOSPF経路の両方を含むとは限らず、いくつかの論理ルータが含み得ないことを理解すべきである。例えば、外部ネットワークへの接続を含まない論理ルータは、何らのルーティングプロトコルを使用し得ず、そして、いくつかの論理ルータは、BGP及びOSPFの両方よりむしろ、1つの種別の経路共有プロトコル(route-sharing protocol)のみを実行し得る。
【0047】
[0077] 更に、いくつかの実施形態では、(動的なルーティングプロトコルを用いる)PLRのSRは、集中化コントローラから受信した(静的、接続済み、及び管理プレーンの内部経路を含む)RIBを、(動的ルーティングプロトコルを介して)物理ルータから学習した経路に統合する。SRは、学習済み経路を再計算のために集中化コントローラに送り返すよりむしろ、経路の収束を促進するために、これらの動的経路の統合に基づいて、そのFIBを内部で計算する。DRに対し、いくつかの実施形態の集中化コントローラは、RIB全体を、FIBを計算する内部のコントロールプレーンにプッシュダウン(pushe down)する。
【0048】
[0078] A.DRの構成
[0079] ある実施形態では、DRは、常に論理ルータの実施のサウスバウンド側(すなわち、外部物理ネットワークに接するよりもむしろ、論理ネットワークのデータ計算ノードに接する)に配置される。論理ルータが集中化構成要素を有しないのでなければ、論理ルータのアップリンクはDRに対して構成されず、DRのノースバウンドインタフェースは、代わりに論理ルータの一部である通過論理スイッチに接続する。
【0049】
[0080] 図9は、管理者によって割り当てられたネットワークアドレスおよびインタフェースを含む、論理ネットワークトポロジ900のより詳細な構成を概念的に示す。図示されるように、論理スイッチ905及び910は、それぞれ自身のサブネット、1.1.1.0/24及び1.1.2.0/24に割り当てられ、論理スイッチ905に取り付けられたデータ計算ノードの全ては、対応するサブネット内のIPアドレスを有する。論理ルータ915は、第1の論理スイッチ915へのインタフェースL1を有し、このインタフェースは、サブネット1.1.1.0/24におけるデータ計算ノードに対するデフォルトゲートウェイである、1.1.1.253のIPアドレスを有する。論理ルータ915はまた、第2の論理スイッチ910へのインタフェースL2を有し、このインタフェースは、サブネット1.1.2.0/24におけるデータ計算ノードに対するデフォルトゲートウェイである、1.1.2.253のIPアドレスを有する。
【0050】
[0081] 論理ルータ915のノースバウンド側は2つのアップリンク、U1及びU2を有する。第1のアップリンクU1は、192.168.1.252のIPアドレスを有し、192.168.1.252のIPアドレスを有する第1の物理ルータ920と接続する。第2のアップリンクU2は、192.168.2.253のIPアドレスを有し、192.168.2.252のIPアドレスを有する第2の物理ルータ925と接続する。物理ルータ920及び925は、実際には論理ネットワークの一部ではないが、論理ネットワークを外部ネットワークに接続する。図示した例では、アップリンクのそれぞれは単一の異なる物理ルータに接続するが、いくつかの事例では、アップリンクのそれぞれが複数の物理ルータの同一の組に接続する。すなわち、U1及びU2の両方は、物理ルータ920及び925の両方と両方が接続する。図示された例はそのような事例ではないが、いくつかの実施形態は、アップリンク接続が同一の接続性を提供する各外部ルータを必要とする。代わりに、第1の論理ルータ920はサブネット10.0.0.0/8に接続する一方で、第2のルータ925は両方のサブネット10.0.0.0/8及び11.0.0.0/8に接続する。
【0051】
[0082] 分散化構成要素を有する論理ルータに対し、いくつかの実施形態は以下のようにDRを構成する。サウスバウンドインタフェースは論理ルータのサウスバウンドインタフェースと同様に構成される。これらのインタフェースは、論理トポロジにおける論理スイッチ又は低レベル論理ルータと接続するものである(例えばPLRのサウスバウンドインタフェースはTLRと接続する)。いくつかの実施形態のDRは、単一のノースバウンドインタフェースが割り当てられ、これにはIPアドレスとMACアドレスが割り当てられる。論理ルータが1つ以上のSRを有することを想定した場合、DRのノースバウンドインタフェースは通過論理スイッチと接続する。
【0052】
[0083] DRのRIBは、様々なサウスバウンド及びノースバウンドインタフェース上に構成されたサブネットに基づいて、接続される経路を割り当てられる。(i)論理ルータのDR及びSR構成要素の間に構成される通過論理スイッチ、及び(ii)そのサウスバウンドインタフェース上の任意の論理スイッチ、に対して構成されるサブネットが存在する。サウスバウンドインタフェース上の論理スイッチは、データ計算ノードが接続するユーザ定義の論理ドメイン、又は、PLRのDRとPLRに接続する任意のTLRとの間に配置される通過論理スイッチである。
【0053】
[0084] 更に、論理ルータのアップリンクから出る任意の静的経路は、DRのRIBに含まれるが、これらの経路は、次ホップのIPアドレスがアップリンクのSRのそれに設定されるように修正される。例えば、静的経路「192.168.1.252を介してa.b.c.0/24」(192.168.1.252は外部物理ネットワークルータのアドレス)は、「[SRサウスバウンドインタフェースのIP]を介してa.b.c.0/24」に修正される。反対に、論理ルータのサウスバウンドインタフェースから出る静的経路は、修正されないDRのRIBに含まれる。いくつかの実施形態では、論理ルータの各SRに対して、種別管理プレーン内部のデフォルト経路がDRのRIBに追加される。他の実施形態では、代わりに、特定のSRによって学習される動的経路が、特定のSRのサウスバウンドインタフェースのIPとして修正される次ホップのIPアドレスとともにRIBに追加される。これはデフォルト経路に対する代替であり、これは管理プレーン内部種別がさもなければSRによって学習された動的経路よりも高い優先度を有するためである。しかしながら、いくつかの実施形態では、TLRについて、SRは動的ルーティングプロトコルを実行しないため、アクティブなSRのインタフェースを指す次ホップIPアドレスを有するデフォルト経路が代わりに用いられる。
【0054】
[0085] 図10は、管理プレーンによる論理トポロジ900の構成1000を示している。図示されるように、論理スイッチ905と910とは、ユーザ設定によって指定されたように構成される。前の例のように、論理ルータ915は、DR1005と、2つのSR1010及び1015と、通過論理スイッチ1020とを含む。DRは、論理ルータ905の2つのサウスバウンドインタフェースが割り当てられ、これらは論理スイッチ905及び910に接続する。通過論理スイッチは、サブネット192.168.100.0/24が割り当てられ、これは、論理ルータ905に(直接的に又は間接的に)論理的に接続する論理スイッチのなかで固有であるという要件を満たす必要がある。1005-1015を構築する3つの管理プレーンルータのそれぞれはまた、通過論理スイッチに接続されるインタフェースを含み、当該通過論理スイッチのサブネット内のIPアドレスを有する。ノースバウンドインタフェースU1及びU2は、2つのSR1010及び1015に割り当てられ、その構成は以下で説明する。
【0055】
[0086] RIBの生成のために上述したいくつかの実施形態のルールを使用することにより、DR1005のRIBは以下の経路を含む:
1.1.1.0/24 output to L1
1.1.2.0/24 output to L2
192.168.100.0/24 output to DRP1
192.168.1.0/24 via IP1
192.168.2.0/24 via IP2
10.0.0.0/8 via IP1
10.0.0.0/8 via IP2
11.0.0.0/8 via IP2
0.0.0.0/0 via IP1
0.0.0.0/0 via IP2
【0056】
[0087] 上記経路は、DRに接続された論理スイッチドメイン(1.1.1.0/24、1.1.2.0/24及び192.168.100.0/24)に対する3つの接続された経路を含む。更に、第1のアップリンクが配置されるサブネット(192.168.1.0/24)は、第1のSR1010(IP1)のサウスバウンドインタフェースを介して到達される一方、第2のアップリンクが配置されるサブネット(192.168.2.0/24)は、第2のSR1015(IP2)のサウスバウンドインタフェースを介して到達される。更に、3つの静的経路がユーザによって論理ルータ915に対して追加され、これは管理プレーンが自動的にDR1005のために修正する。具体的に、経路は、両方のSRのサウスバウンドインタフェースを介するネットワーク10.0.0/8と、SR2のサウスバウンドインタフェースを介するネットワーク11.0.0/8とを含む。最後に、これらの同一のサウスバウンドインタフェースを指すデフォルト経路が含まれる。論理ルータのポートに対して管理プレーンによって生成されたIPアドレスIP1、IP2及びIP3は、全てがサブネット192.168.100.0/24にある通過論理スイッチを有するインタフェースを構築する。
【0057】
[0088] DRのRIBを構成することに加えて、管理プレーンはまた、いくつかの実施形態においてDRインタフェースにMACアドレスを割り当てる。いくつかの実施形態では、DR機能を実施する物理ネットワーク内の物理ルーティング構成要素(例えばソフトウェアモジュール)のいくつか又は全ては、単一のMACアドレスをサポートするだけである。この場合、DRポートのMACはユーザに見える論理ルータのポートのMACからのものであるため、これは、管理プレーンが論理ルータのポートに対してどのようにMACアドレスを割り当てるかについての要件を課する。従って、いくつかの実施形態では、ユーザ計算ノード又は接続されたSRを有する任意の論理スイッチに接続する全てのDR/SRポートは、共通のMACアドレスを共有しなければならない。更に、DR/SRポートが他のDR/SR又は物理ネットワークに接続する場合、いくつかの実施形態において、このポートは固有のMACアドレスが割り当てられる(この割り当てルールは、DR/SRポートが他のDR/SRポートに接続しているかを判定する際に通過論理スイッチを無視する)。
【0058】
[0089] B.SRの構成
[0090] 論理ルータのDRと同様、管理プレーンは、別々のRIBとインタフェースを用いて論理ルータの各SRも構成する。上述したように、いくつかの実施形態では、PLRとTLRの両方のSRはサービス(すなわち、NAT、ファイアウォール、ロードバランシング等のような単なるルーティングを超えた機能)を実現し、PLRのためのSRは、論理ネットワークと外部物理ネットワークの間の接続も提供する。ある実施形態では、SRの実施はいくつかの目的を達成するように設計される。第1に、実施は、サービスがスケールアウトすることを保証する。すなわち、論理ルータに割り当てられたサービスは、論理ルータのいくつかのSRのいずれかによって実現され得る。第2に、いくつかの実施形態は、サービスポリシーがルーティング決定に依存し得るように、SRを構成する(例えば、インタフェースベースのNAT)。第3に、(いくつかの実施形態では低下したキャパシティ下で又は最適以下の態様でSRは動作することができるが)論理ルータのSRは、集中化コントロールプレーン又は管理プレーンの関与を要求することなく、自身の障害(例えば、SRが動作する物理マシンの障害、物理マシンへのトンネルの障害等)を扱う機能を有する。最後に、SRは、理想的には、自身の中での不必要なリダイレクトを排除する。すなわち、SRは、内部でパケットを転送する機能を有する場合、パケットを外部物理ネットワークへ転送しなければならず、必要なら異なるSRへのパケットの転送のみを行う。もちろん、SR間での転送はパケットループを回避しなければならない。
【0059】
[0091] 図10に示したように、各SRは、SRとDRの間にある通過論理スイッチ1020へ接続する、1つのサウスバウンドインタフェースを有する。更に、いくつかの実施形態では、各SRは、論理ルータのように同数のノースバウンドインタフェースを有する。すなわち、1つのアップリンクのみがSRの動作する物理マシンに割り当てられ得るが、論理ルータインタフェースの全てがSR上で定義される。しかしながら、これらのインタフェースのいくつかはローカルインタフェースである一方、これらのインタフェースのいくつかはダミーインタフェースと称される。
【0060】
[0092] いくつかの実施形態では、ローカルノースバウンドインタフェースは、パケットがSRから(直接物理ネットワークへ)直接出ることが可能なインタフェースである。SRに割り当てられたアップリンク(又は複数のアップリンクの1つ)に基づいて構成されるインタフェースは、ローカルインタフェースである。一方、異なるSRに割り当てられた論理ルータの他のアップリンクの1つに基づいて構成されるインタフェースは、ダミーインタフェースとして称される。ダミーインタフェースのための構成を有するSRを提供することは、第1ホップのMFEが、アップリンクのいずれかに対するパケットをいずれかのSRに送信できるようにし、このとき、パケットがそのローカルインタフェースを宛先としていない場合であっても、SRはパケットを処理することができる。いくつかの実施形態は、SRの1つにおいてダミーインタフェースに対するパケットを処理した後に、インタフェースがローカルである、適切なSRへパケットを転送して、他のSRが外部物理ネットワークへパケットを送信できるようにする。ダミーインタフェースの使用は、ネットワークを管理する集中化コントローラ(又はコントローラの組)が、ルーティング決定に依存するサービスポリシーを全てのSRにプッシュできるようにし、これによりサービスは任意のSRによって実現できるようになる。
【0061】
[0093] 以下のセクションIVで説明するように、いくつかの実施形態では、SRは(例えば、BFG又はOSPFのような経路アドバタイズメントプロトコルを用いて)物理ネットワークとルーティング情報を交換する。経路交換の1つの目的は、どのSRが物理ネットワークへのパケットをルーティングするかにかかわらず、ルーティング決定が常に、SRのローカルインタフェースか、異なるSR上の論理ルータのアップリンクに対応するダミーインタフェースのいずれかに向けられることである。従って、論理ルータのアップリンクに関連付けられたポリシーは、アップリンクがSRに割り当てられていない場合であっても、当該SRによって適用され得、これはステートフルサービスのスケールアウトを可能にする。いくつかの実施形態では、ピアSRから受信した経路が、物理的な次ホップのルータから直接学習した経路より大きな距離値を有することにより、SRが物理ネットワークルータへ直接パケットを送信できないときにのみ、SRがそのピアSRへパケットを送信することを保証する。
【0062】
[0094] 1つ以上の集中化構成要素を有する論理ルータに対し、いくつかの実施形態は以下のようにSRを構成する。ノースバウンドインタフェースに対して、SRは論理ルータと同数のそのようなインタフェースを有し、これらの各インタフェースは、対応する論理ルータインタフェースのIP及びMACアドレスを継承する。これらのインタフェースのサブセットは(SRに割り当てられるアップリンクのための)ローカルインタフェースとしてマークされる一方、残りのインタフェースはダミーインタフェースとしてマークされる。いくつかの実施形態では、論理ルータのために定義されたサービスポリシーは全てのSRに対して均等にプッシュされる。これはサービスポリシーがネットワーク及びインタフェースの観点から同様に構成されるためである。特定の論理ルータのポート/アップリンクのための動的ルーティング構成は、その特定のアップリンクが割り当てられたSRのローカルインタフェースに転送される。
【0063】
[0095] 述べたように、各SRは、通過論理スイッチに接続する単一のサウスバウンドインタフェース(ローカルインタフェースでもある)を割り当てられ、ここで各SRのサウスバウンドインタフェースは同一の通過論理スイッチに接続されている。これらのサウスバウンドインタフェースのそれぞれのIPアドレスは、DRに割り当てられたノースバウンドインタフェース(通過論理スイッチのそれ)と同一のサブネット内にある。いくつかの実施形態は、SRがアクティブ-アクティブ又はアクティブ-スタンバイモードであるかに応じて、SRの間のIPアドレスの割り当てを異ならせる。アクティブ-アクティブモード(すなわちSRの全てがルーティング目的において平等に扱われる場合)に対しては、異なるIP及びMACアドレスが全てのSRのサウスバウンドインタフェースに割り当てられる。一方、アクティブ-スタンバイモードに対しては、2つのSRのサウスバウンドインタフェースの両方に同一のIPが用いられる一方、インタフェースのそれぞれは異なるMACアドレスが割り当てられる。
【0064】
[0096] DRについての上記サブセクションで示したように、ユーザは論理ルータに対して静的経路を構成し得る。アップリンクから出る論理ルータの静的経路(又は接続された経路)は、SRのRIBにコピーされる。それを出ていくアップリンクの経路がSRに割り当てられる場合、このような経路に対する距離メトリック(metric)は修正されない。しかしながら、SRのアップリンクがダミーインタフェースである場合、いくつかの実施形態は、ダミーインタフェースを通して、異なるSRへパケットをリダイレクトすること無くネットワークに到達できるときに、SRがそのローカルインタフェースから出る経路を優先するように、このメトリックに値を追加する。更に、(トップレベルの論理ルータの)SRは動的経路を学習して、動的経路をRIBに置く(いくつかの実施形態はこれを内部で集中化コントローラを用いることなく実行するが)。いくつかの実施形態では、ピアSRから学習された動的経路は、距離メトリックの調整なしにインストールされる。これは、デフォルトではIBGP(SRからSRピアへ)又はOSPFから学習された経路に対するメトリックが、EBGPから学習された経路に対するメトリックより大きいためである。
【0065】
[0097] 論理ルータのサウスバウンドインタフェースのそれぞれに対し、ある実施形態は、各SRのRIBに対応するネットワークのための経路を追加する。この経路は、その次ホップのIPアドレスとしてノースバウンドのDRインタフェースを指す。更に、サウスバウンドインタフェースから出る、論理ルータのために構成された任意の他の経路は、次ホップのIPアドレスとして同一のノースバウンドのDRインタフェースとともにSRにコピーされる。
【0066】
[0098] 図10の例に戻り、論理ルータ915が2つのアップリンクを有するように、管理プレーンは2つのサービスルータ1010と1015とを定義する。第1のサービスルータ1010は、U1に対するローカルインタフェースと、U2’として称されるU2に対するダミーインタフェースとを有する。同様に、第2のサービスルータ1015は、U2に対するローカルインタフェースと、第1のアップリンクU1に対するダミーインタフェースU1’とを有する。これらのSRのそれぞれには、(SRがアクティブ-アクティブ構成であるように)異なるIPアドレスおよびMACアドレスを有するサウスバウンドインタフェースが割り当てられる。(第1のSR1010に対する)IPアドレスIP1及び(第2のSR1015に対する)IP2は、IP3(DR1005のノースバウンドインタフェース)のように、サブネット192.1.100.0/24にある。
【0067】
[0099] いくつかの実施形態のルールを用いて、かつ、ルーティングプロトコル(例えばBGP)がSRに対して有効化されているとすると、第1のSR1010のRIBは以下の経路を含む。
【0068】
10.0.0.0/8 output to U1 via 192.168.1.252, metric 20 (via EBGP)
10.0.0.0/8 output to U2' via 192.168.2.252, metric 200 (via IBGP)
11.0.0.0/8 output to U2' via 192.168.2.252, metric 200 (via IBGP)
192.168.1.0/24 output to U1, metric 0 (接続済)
192.168.100.0/24 output to SRP1, metric 0 (接続済)
1.1.1.0/24 via IP3, metric 10 (管理プレーン内)
1.1.2.0/24 via IP3, metric 10 (管理プレーン内)
【0069】
[00100] 同様に、第2のSR1015のRIBは以下の経路を含む。
10.0.0.0/8 output to U2 via 192.168.2.252, metric 20 (via EBGP)
10.0.0.0/8 output to U1' via 192.168.1.252, metric 200 (via IBGP)
11.0.0.0/8 output to U2 via 192.168.2.252, metric 20 (via EBGP)
192.168.2.0/24 output to U2, metric 0 (接続済)
192.168.100.0/24 output to SRP2, metric 0 (接続済)
1.1.1.0/24 via IP3, metric 10 (管理プレーン内)
1.1.2.0/24 via IP3, metric 10 (管理プレーン内)
【0070】
[00101] C.管理プレーン処理
[00102] 図11は、ユーザ仕様に基づいてPLRを構成するいくつかの実施形態の処理1100を概念的に示す。いくつかの実施形態では、処理1100は管理プレーン(例えば、データセンタのネットワークを管理する集中化コントローラにおけるモジュールの組)によって実行される。管理プレーンは、構成処理を実行し、その後、コントローラの集中化コントロールプレーン(又は異なるネットワークコントローラ)を用いて、構成された論理ルータを実施する様々なホストマシン上の様々なローカルコントロールプレーンにデータを分散させる。
【0071】
[00103] 図示するように、処理1100はPLRの仕様を(1105において)受信することによって開始する。PLRの仕様(又はPLRの定義)は、PLRを定義する管理者入力(データセンタの所有者によって雇用された管理者)に基づく。いくつかの実施形態では、この仕様は、PLRが提供すべき任意のサービスの定義、PLRがアクティブ-アクティブ又はアクティブ-スタンバイモードで構成されるかどうか(もっとも、いくつかの実施形態はステートフルサービスが構成されない限り自動的にアクティブ-アクティブモードを用いる)、PLRにいくつのアップリンクが構成されるか、アップリンクのIP及びMACアドレス、アップリンクのL2及びL3接続性、PLRの任意のサウスバウンドインタフェースのサブネット(PLRを2層トポロジにする場合は1つのインタフェースであり、ユーザの論理スイッチが1層トポロジで直接接続する場合は任意の数のインタフェース)、PLRのRIBに対する任意の静的経路、及び他のデータを含む。異なる実施形態が、PLRの構成データに列挙されたデータの異なる組み合わせ又は他のデータを含み得ることは理解されるべきである。
【0072】
[00104] そして処理1100は、(1110において)この構成データを用いてDRを定義する。これは、PLRが完全に集中化しない場合には管理プレーンによってDRは生成されないことを想定している。DRのサウスバウンドインタフェースについて、管理プレーンは、PLRのサウスバウンドインタフェース構成を用いる。すなわち、DRのIPアドレスとMACアドレスとは、論理ルータのために特定されたものになる。
【0073】
[00105] 更に(1115において)処理は、PLRのために特定されたアップリンクのそれぞれをゲートウェイマシンに割り当てる。上述したように、いくつかの実施形態は、論理ルータのSRの位置に対する特定の組の物理ゲートウェイマシンを、ユーザが特定できるようにする(或いは特定することを求める)。いくつかの実施形態では、ゲートウェイマシンの組はサーバの特定のラック又はサーバのラックのグループ内、若しくはそうでなければ、組の中で全てのマシンを接続するトンネルと関連付けられて存在する。その後、管理プレーンは、選択された組のゲートウェイマシンの1つに各アップリンクを割り当てる。いくつかの実施形態は、複数のアップリンクが同一のゲートウェイマシンに割り当てられるようにし(論理ルータがアクティブ-スタンバイモードで構成される2つのアップリンクのみを有しない限り)、一方で他の実施形態は、アクティブ-アクティブ又はアクティブ-スタンバイモードであるかに関わらずPLRのためのゲートウェイに対して単一のアップリンクのみが割り当てられるようにする。
【0074】
[00106] ゲートウェイマシンにアップリンクを割り当てた後に、(1120において)処理1100は、各選択されたゲートウェイマシン上にSRを定義する。各SRについて、処理はゲートウェイマシンに対して割り当てられたアップリンクに対する構成を、SRのノースバウンドインタフェースに対する構成として使用する。この構成情報は、任意のアップリンク特有のポリシーに加えて、アップリンクのIP及びMACアドレスを有する。異なるポリシー及びL3の接続性の少なくともいずれかが許容され、異なるアップリンクの間で使用される状況では、いくつかの実施形態はまた、必要に応じてパケットをリダイレクトするためにSR上にダミーインタフェースを構成する、ことが理解されるべきである。
【0075】
[00107] 処理は更に、(1125において)定義されたSR及びDRと接続する通過論理スイッチを定義する。いくつかの実施形態において、管理プレーンは、固有のVNI(論理スイッチ識別子)を通過論理スイッチに割り当てる。更に、いくつかの実施形態は、通過論理スイッチに割り当てられたサブネットが論理ネットワークトポロジ内で固有であることを必要とする。すなわち、通過論理スイッチは、PLRと直接インタフェースを有する任意のユーザ定義の論理スイッチ、PLRに接続される任意のTLRとPLRとの間の通過論理スイッチ、これらのTLR内の全ての通過論理スイッチ、及び、これらのTLRに接続される任意のユーザ定義の論理スイッチと異なるサブネットを用いなくてはならない。
【0076】
[00108] 次に、処理1100は、(1130において)DRにノースバウンドインタフェースを割り当てる。いくつかの実施形態では、ノースバウンドインタフェースは(PLRの構成要素の間で内部的に送信されるパケットに用いられる)MACアドレス及びIPアドレスの両方を割り当てられる。いくつかの実施形態では、IPアドレスは、1125において定義された通過論理スイッチに割り当てられたサブネット内のものである。通過論理スイッチの構成は、このMACアドレスとその論理ポートの1つとの関連を含む。
【0077】
[00109] その後処理は(1135において)、PLRがアクティブ-アクティブモード(或いはアクティブ-スタンバイモード)で構成されるかを判定する。いくつかの実施形態では、上で言及したように、この判定は、PLRに対する構成設定の一部として管理者によってなされる。他の実施形態では、管理プレーンは、ステートフルサービスが設定されていない場合には、PLRに対してSRを自動的にアクティブ-アクティブ構成で定義する。そして、ステートフルサービスが設定されている場合には、SRはアクティブ-スタンバイモードで定義される。
【0078】
[00110] PLRがアクティブ-スタンバイモードで構成される場合、処理は(1140において)、2つのSR(又は、複数のスタンバイがある場合には2つ以上のSR)のそれぞれのサウスバウンドインタフェースを割り当てる。アクティブ-スタンバイの場合、これらの全てのサウスバウンドインタフェースは同一のIPアドレスを有し、これは動作1125において定義される通過論理スイッチのサブネット内にある。2つのインタフェースは同一のIPアドレスを受信するが、いくつかの実施形態は、DRによってルーティングされるノースバウンドのパケットに対する宛先として当該2つを異ならせるように、異なるMACアドレスを割り当てる。他の実施形態では、同一のMACアドレスも、後述のように用いられるフェイルオーバーの場合に異なるマシンで用いられる。
【0079】
[00111] その後処理は(1145において)、SRの1つをアクティブに、SRの1つをスタンバイに割り当てる。いくつかの実施形態は、この決定をランダムに行わせる一方で、他の実施形態はゲートウェイマシンにまたがるSRのアクティブ及びスタンバイの割り当てがバランスするように試みる。より詳細は2014年1月28日に出願された米国特許公報2015/0063364号に記載されており、参照によりここに取り込まれる。アクティブとして割り当てられたSRは、サウスバウンドインタフェースに対するARPリクエストに応答し、ノースバウンドインタフェースから外部物理ネットワークへプレフィックスをアドバタイズする。一方、スタンバイSRは(ノースバウンドのトラフィックを受信することを避けるため)ARPリクエストに対して応答せず、プレフィックスをアドバタイズしない(しかし、アクティブなSRの障害の場合に外部ネットワークから経路を受信するためにBGPセッションを維持する)。
【0080】
[00112] 最後に、処理1100は(1150において)DR及び各SRのための別々のRIBを生成する。別々のRIBは、前のサブセクションとセクションVに示す形式の構成データに基づいて生成される。その後処理は終了する。いくつかの実施形態では、管理プレーンはまたFIBを集中的に算出する一方、他の実施形態では、(ホスト及びゲートウェイマシン上で動作する)ローカルコントロールプレーンは、論理ルータ構成要素による実際のパケットのフォワーディングにおいて用いるためのFIBを生成するためにRIBトラバーサル(RIB traversal)を実行する。いずれの場合も、RIBは外部ネットワークから学習された動的な経路に基づいてSR上で更新され、このデータは中央コントローラを介してDRへ伝達される。いくつかの実施形態の、ネットワークコントローラによるFIBの計算は、2014年3月14日に出願された米国特許出願14/214,545号に、より詳細に説明されており、参照により以下に組み込まれる。
【0081】
[00113] 一方、PLRがアクティブ-アクティブ(EMCP)モードで構成される場合、処理は(1155において)、SRのそれぞれにサウスバウンドインタフェースを割り当てる。アクティブ-アクティブの場合、これらのサウスバウンドインタフェースは、異なるMACアドレスに加えて、動作1125において定義される通過論理スイッチのサブネット内にある異なるIPアドレスが割り当てられる。異なるIPアドレスにより、SRのそれぞれは、ホストマシン内のDRパイプラインによって所定のパケットに対して選択されたIPアドレスに基づいて、ノースバウンドのパケットを処理することができる。
【0082】
[00114] 次に、処理は(1160において)、SRにランクを割り当てる。詳細を以下に示すように、SRは、障害の際に、どのSRが停止したSRの責務を引き継ぐかを決定するためのランクを用いる。いくつかの実施形態では、次に最も高くランクされたSRは、そのサウスバウンドインタフェースを引き継ぐことによって停止したSRを引き継いで、さもなければ停止したSRのIPアドレスへ送信されるノースバウンドのトラフィックを引き込む。
【0083】
[00115] 最後に、処理は(1165において)DR及び各SRのための別々のRIBを生成する。別々のRIBは、前のサブセクションとセクションIVに示す形式の構成データに基づいて生成される。その後処理は終了する。いくつかの実施形態では、管理プレーンはまたFIBを集中的に算出する一方、他の実施形態では、(ホスト及びゲートウェイマシン上で動作する)ローカルコントロールプレーンは、論理ルータ構成要素による実際のパケットのフォワーディングにおいて用いるためのFIBを生成するためにRIBトラバーサルを実行する。いずれの場合も、RIBは外部ネットワークから学習された動的な経路に基づいてSR上で更新され、このデータは中央コントローラを介してDRへ伝達される。
【0084】
[00116] 上記図11の記載は、PLR(上層論理ルータ)のための様々な構成要素を生成するための管理プレーンの動作を示している。図12は、ユーザ仕様に基づいてTLRを構成するいくつかの実施形態の処理1200を概念的に示している。いくつかの実施形態では、処理1200は管理プレーン(例えば、データセンタのネットワークを管理する集中化コントローラにおけるモジュールの組)によって実行される。管理プレーンは、構成処理を実行し、その後、コントローラの集中化コントロールプレーン(又は異なるネットワークコントローラ)を用いて、構成された論理ルータを実施する様々なホストマシン上の様々なローカルコントロールプレーンにデータを分散させる。
【0085】
[00117] 図示するように、処理はTLRの仕様を(1205において)受信することによって開始する。TLRの仕様(又はTLRの定義)は、TLRを定義する管理者入力(データセンタのテナントによって雇用された管理者)に基づく。いくつかの実施形態では、この仕様は、TLRが提供すべき任意のサービスの定義、どのPLRにTLRがそのアップリンクを通じて接続すべきか、TLRに接続する任意の論理スイッチ、TLRのインタフェースのIP及びMACアドレス、TLRのRIBに対する任意の静的経路、及び他のデータを含む。異なる実施形態が、TLRの構成データに列挙されたデータの異なる組み合わせ又は他のデータを含み得ることは理解されるべきである。
【0086】
[00118] そして処理1200は、(1210において)TLRが集中化構成要素を有するかを判定する。いくつかの実施形態では、TLRがステートフルサービスを提供しない場合、そのときはTLRに対するSRが定義されず、これは分散化される形態でのみ実施される。一方、いくつかの実施形態は、この図に示すように、ステートフルサービスが提供される場合、アクティブ-スタンバイモードにおけるSRを必要とする。
【0087】
[00119] TLRがステートフルサービスを提供しない又はそうでなければ集中化構成要素を必要とする場合、処理は(1215において)、サウスバウンド及びノースバウンドインタフェースの両方に対する論理ルータの仕様を用いてDRを定義する。DRは、TLRに接続する論理スイッチがいくつ定義されるかに応じて、多数のサウスバウンドインタフェースを有し得る。一方、いくつかの実施形態は、TLRを、PLRにパケットを送信し及びPLRからパケットを受信する単一のノースバウンドインタフェースに制限する。次に、処理は、(1220において)DRのためのRIBを生成する。DRのためのRIBは、上述のように生成された論理ルータのための経路の全てを含む。
【0088】
[00120] 一方、TLRがステートフルサービスを提供する、又は他の理由で集中化構成要素を要求する場合、処理は(1125において)、受信した構成データを用いてDRを定義する。DRのサウスバウンドインタフェースについて、管理プレーンは、TLRのサウスバウンドインタフェース構成を用いる。すなわち、各サウスバウンドインタフェースに対するIPアドレスとMACアドレスとは、様々な論理スイッチが接続する論理ルータのポートために特定されたものになる。
【0089】
[00121] 更に(1230において)処理は、TLRのために特定されたアップリンクのそれぞれを2つのゲートウェイマシンに割り当てる。いくつかの実施形態はTLRが複数のアップリンクとアクティブ-アクティブモードで動作できるようにするが、処理1200は、アクティブ-スタンバイモードにおいて単一のアップリンクにTLRを制限する実施形態に対するものである。上述したように、いくつかの実施形態は、論理ルータのSRの位置に対する特定の組の物理ゲートウェイマシンを、ユーザが特定できるようにする(或いは特定することを求める)。いくつかの実施形態では、ゲートウェイマシンの組はサーバの特定のラック又はサーバのラックのグループ内、若しくはそうでなければ、組の中で全てのマシンを接続するトンネルと関連付けられて存在する。その後、管理プレーンは、選択された組のゲートウェイマシンの2つにアップリンクを割り当てる。
【0090】
[00122] ゲートウェイマシンにアップリンクを割り当てた後に、(1235において)処理1200は、2つのゲートウェイマシンのそれぞれの上にSRを定義する。各SRについて、管理プレーンは、単一のアップリンクに対する構成を、SRのノースバウンドインタフェースに対する構成として使用する。唯一のノースバウンドインタフェースを有するため、処理はSRの両方に対して同一の構成を適用する。すなわち、同一のIPアドレスが両方のノースバウンドインタフェースに用いられるだけでなく、インタフェース上のサービスも同様の方法で構成される。しかしながら、アクティブSRとスタンバイSRとを異ならせるように、異なるMACアドレスがノースバウンドインタフェースに用いられる。
【0091】
[00123] 処理は更に、(1240において)定義されたSR及びDRと接続する通過論理スイッチを定義する。いくつかの実施形態において、管理プレーンは、固有のVNI(論理スイッチ識別子)を通過論理スイッチに割り当てる。更に、いくつかの実施形態は、通過論理スイッチに割り当てられたサブネットが論理ネットワークトポロジ内で固有であることを求める。すなわち、管理プレーンは、通過論理スイッチに、TLRとインタフェースを有する任意のユーザ定義の論理スイッチと、TLR(又は他のTLR)とPLRとの間の任意の通過論理スイッチと、同一のPLRに接続する他のTLR内の全ての通過論理スイッチと、PLR内の通過論理スイッチと、他のTLRに接続するユーザ定義の論理スイッチと、異なるサブネットを通過論理スイッチに割り当てなければならない。
【0092】
[00124] 次に、処理は、(1245において)DRへのノースバウンドインタフェースを割り当てる。いくつかの実施形態では、このインタフェースは(TLRの構成要素の間で内部的に送信されるパケットに用いられる)MACアドレス及びIPアドレスの両方を割り当てられる。いくつかの実施形態では、IPアドレスは、1140において通過論理スイッチに割り当てられた同一のサブネット内のものである。処理はまた、(1250において)2つのSRのそれぞれのサウスバウンドインタフェースを割り当てる。これはアクティブ-スタンバイ構成であるので、これらのサウスバウンドインタフェースは同一のIPアドレスを有し、これは動作1140において定義される通過論理スイッチのサブネット内にある。2つのインタフェースは同一のIPアドレスを受けつけるが、いくつかの実施形態は、DRによってルーティングされるノースバウンドのパケットに対する宛先として当該2つを異ならせるように、異なるMACアドレスを割り当てる。他の実施形態では、同一のMACアドレスも、後述のように用いられるフェイルオーバーの場合に異なるマシンで用いられる。
【0093】
[00125] その後処理1200は(1255において)、SRの1つをアクティブに、SRの1つをスタンバイに割り当てる。いくつかの実施形態は、この決定をランダムに行わせる一方で、他の実施形態はゲートウェイマシンにまたがるSRのアクティブ及びスタンバイの割り当てがバランスするように試みる。アクティブとして割り当てられたSRは、サウスバウンドインタフェース(このTLRのDRから)及びノースバウンドインタフェース(PLRのDRから)に対するARPリクエストに応答する。一方、スタンバイSRは(ノースバウンド又はサウスバウンドのトラフィックを受信することを避けるため)ARPリクエストに応答しない。
【0094】
[00126] 次に、処理は(1260において)DR及び各SRのための別々のRIBを生成する。別々のRIBは、前のサブセクションとセクションIVに示す形式の構成データに基づいて生成される。いくつかの実施形態では、管理プレーンはまたFIBを集中的に算出する一方、他の実施形態では、(ホスト及びゲートウェイマシン上で動作する)ローカルコントロールプレーンは、論理ルータ構成要素による実際のパケットのフォワーディングにおいて用いるためのFIBを生成するためにRIBトラバーサルを実行する。いずれの場合も、RIBは外部ネットワークから学習された動的な経路に基づいてSR上で更新され、このデータは中央コントローラを介してDRへ伝達される。
【0095】
[00127] TRLがSRを有して生成されたかSRを有しないで生成されたかに関わらず、処理1200は(1265において)、TLRとTLRが接続するPLRとの間に他の通過論理を定義する。この通過論理スイッチは、固有のVNIと、TLRのアップリンクIPアドレスが属すサブネットとを有する。更に、PLRのDR上のインタフェースは、通過論理スイッチに接続するために同一のサブネット内に生成される。その後処理は終了する。
【0096】
[00128] 処理1100及び1200はこれらの様々な動作を実行する特定の順序を示しているが、これらの処理は単なる概念的なものであることが理解されるべきである。様々な異なる実施形態において、管理プレーンは、実際の動作を、様々な異なる順番で又はいくつかの動作を並行して実行し得る。例えば、管理プレーンは、全くSRやDRを定義するより前に、初めに通過論理スイッチを定義し、別々の物理マシンに割り当てる前に完全に論理ルータ構成要素の全てを定義することができる。
【0097】
[00129] III.パケット処理
[00130] 上述のセクションは、管理プレーンによる様々な論理ルータ構成要素を示している。これらの論理ルータ構成要素(論理スイッチに加えて、ユーザに定義されたものと、論理ルータ構成要素を接続するために管理プレーンによって定義されたものとの両方)は、様々な管理フォワーディング要素(MFE)によってデータセンタ内で実施される。図5に示したように、例えば、ユーザ定義論理スイッチに取り付けられたデータ計算ノードは、MFEが第1ホップパケット処理要素として動作する物理ホストマシン上にある。これらのMFEは、いくつかの実施形態において、DRに加え、論理ネットワークの論理スイッチを実施する。
【0098】
[00131] 図13は、TLR610とPLR605の両方がDRに加えてSRを含む、図8に示す2層論理ネットワークを構築する管理プレーンの物理的な実施を概念的に示している。この図はTLR610の実施を示すのみであって、多数の他のホストマシン上で実施され得る多数の他のTLR、及び他のゲートウェイマシン上で実施され得るSRを示していないことが理解されるべきである。
【0099】
[00132] この図は、2つのVMが2つの論理スイッチ625及び630のそれぞれに取り付けられていることが想定されており、これらの論理スイッチは4つの物理ホストマシン1305-1320上にある。これらのホストマシンのそれぞれはMFE1325を含む。これらのMFEは、異なる様々な実施形態において、フローベースのフォワーディングエレメント(例えばOpen vSwitch)又はコードベースのフォワーディングエレメント(例えばESX)若しくはこれら2つの組み合わせであり得る。これらの異なる種別のフォワーディングエレメントは、異なる様々な論理フォワーディングエレメントを実施するが、各場合において、これらはパケットの処理が求められ得る各論理フォワーディングエレメントのパイプラインを実行する。
【0100】
[00133] 従って、図13に示すように、物理ホストマシン上のMFE1325は、論理スイッチ625及び630(LSA及びLSB)の両方と、TLR610のためのDR805及び通過論理スイッチ815と、PLR605のためのDR705及び通過論理スイッチ725とを実施する構成を含む。しかしながら、いくつかの実施形態は、ホストマシンMFE1325上にあるデータ計算ノードに対するTLRが集中化構成要素(すなわちSR)を有しない場合、(データ計算ノードに接続する)ホストマシン上でPLRの分散化構成要素のみを実施する。以降に説明するように、VMから外部ネットワークに送信されるノースバウンドパケットは、通過論理スイッチパイプラインがSRへパケットを送信するように特定されるまで、これらのローカル(第1ホップ)MFEによって処理される。第1のSRがTLRの一部である場合、第1ホップのMFEは何らPLR処理を実行しないため、PLRパイプライン構成が、集中化コントローラによってこれらのMFEにプッシュされる必要はない。しかしながら、TLR615-620の1つが集中化構成要素を有しない可能性のため、いくつかの実施形態は、PLRの分散化的側面(DR及び通過LS)を常にMFEの全てにプッシュする。他の実施形態は、PLRパイプラインのための構成のみを、完全に分散化される(一切のSR無しの)TLRのための構成をも受信するMFEにプッシュする。
【0101】
[00134] 更に、図13に示す物理的実施は、PLR605及びTLR610のSRが割り当てられる4つの物理ゲートウェイマシン1330-1345を含む(いくつかの実施形態ではエッジノードともいわれる)。この場合、PLR605及びTLR610を構成する管理者は、SRのための物理ゲートウェイマシンの同一のグループと、これらの論理ルータの両方に対するSRの1つが第3のゲートウェイマシン1340に割り当てられた管理プレーンとを選択した。図示されるように、PLR605に対する3つのSR710-720はそれぞれ異なるゲートウェイマシン1330-1340に割り当てられ、一方、TLR610に対する2つのSR810及び815もまた、それぞれ異なるゲートウェイマシン1340-1345に割り当てられている。
【0102】
[00135] この図は、ゲートウェイマシン上で動作するMFEとは分離したものとしてSRを示している。上述したように、異なる実施形態はSRを異ならせて実施し得る。いくつかの実施形態は、SRをVMとして実施する(例えば、MFEがゲートウェイマシンの仮想化ソフトウェア内に統合された仮想化スイッチである場合、この場合、SR処理はMFEの外部で実行される。一方、いくつかの実施形態は、SRを、MFEデータパス内のVRFとして実施する(MFEがデータパス処理のためのDPDKを用いる場合)。いずれの場合も、MFEは、SRをデータパスの一部として扱うが、SRがVM(又は他のデータ計算ノード)である場合には、(様々なサービスの実行を含み得る)SRパイプラインによる処理のために別々のSRへパケットを送信する。ホストマシン上のMFE1325と同様に、いくつかの実施形態のMFE1350は、論理ネットワークの分散化処理構成要素の全てを実行するように構成される。
【0103】
[00136] A.単一層トポロジ(Single-Tier Topology)
[00137] 様々な例のパケット処理パイプラインが以降記載される。図14A及び14Bは、論理ルータの単一層を用いる論理トポロジについて、論理ネットワークから出るトラフィック(ノースバウンドトラフィック)と論理ネットワークへ入るトラフィック(サウスバウンドトラフィック)とのそれぞれの例を示す。これらの図は、論理ルータ1405(外部ネットワークへの接続を有する)と、2つの論理スイッチ1410及び1415とを用いる単一層トポロジ1400を示している。上述したように、論理ルータ1405は、DR1420と、2つのSR1425及び1430と、通過論理スイッチ1435とを含む。
【0104】
[00138] いくつかの実施形態では、イースト-ウェストのトラフィック(すなわちLS1上のデータ計算ノードからLS2上のデータ計算ノードへのトラフィックは、はじめに第1ホップのMFE(例えば、送信元データ計算ノードのためのホストマシン上の仮想化ソフトウェアのMFE)において処理され、その後、送信先のMFEへトンネルされる。それ自体、パケットはSRを通過しないため、SRによって提供される任意のサービスを受信しない。しかしながら、他の実施形態は、所定のイースト-ウェストのトラフィックを処理のためにSRへ送信するルーティングポリシーを許容する。
【0105】
[00139] 図14Aに示すように、VM又はマシン上の他のデータ計算ノードがノースバウンドのパケットを送信する場合、MFE上のデータパスは最初に送信元論理スイッチパイプラインを(例えば、パケットを受信する入力ポート、送信元MACアドレス等に基づいて)実行する。送信元MFEにおいて実行されるこのパイプラインは、DR1420へパケットをフォワードするようにパイプラインを特定する。このパイプラインは、次ホップとしてのSR1425及び1430の1つを識別する。アクティブ-スタンバイの場合では、パイプラインはアクティブなSRを識別し、アクティブ-アクティブの場合では、いくつかの実施形態は後述のように、SRの1つを選択するためにECMPを用いる。次に、送信元MFEは、選択されたSRをホストする適切なゲートウェイマシン(エッジノード)へパケットをトンネルすることを特定する、通過論理スイッチ1435のためのパイプラインを実行する。ゲートウェイマシン(例えばゲートウェイマシン上のMFE)は、パケットを受信し、(トンネリングデータを削除するために)パケットにカプセル除去を行い、そして、SRのサウスバウンドインタフェースに対応する送信先MACアドレス及びパケットの論理コンテクスト情報(例えば、通過論理スイッチ1435のVNI)に基づいてSRを識別する。その後(いくつかの実施形態ではMFEによって、他の実施形態ではSRを実施するVMによって)SRパイプラインが実行される。SRパイプラインは物理ネットワークにパケットを送信する。SRパイプラインがローカルインタフェースを特定する場合、パケットは直接的に物理ネットワークに配送され、一方、SRパイプラインがダミーインタフェースを特定する場合、パケットは、特定されたインタフェースがローカルである異なるゲートウェイマシンへトンネルを介してリダイレクトされ得る。
【0106】
[00140] 図14Bは、進入する(サウスバウンド)パケットに対するパケット処理を示している。パケットは、SRが動作するゲートウェイマシンの1つにおいて受信される。ゲートウェイマシンにおけるMFEは、入ってきたパケットのVLAN及び送信先MACアドレスに基づいて送信先SRを識別し、SRパイプラインを実行する(例えば、SRがどのように実施されるかに応じて、SRが動作するVMへパケットを送信、或いはデータパス内で直接パイプラインを実行する)。SRパイプラインはその次ホップとしてDR1420を識別する。その後MFEは、DRへパケットをフォワードする通過論理スイッチ1435パイプラインと、その送信先へパケットをルーティングするDRパイプラインとを実行する。送信先のVMが属すホストマシンのMFEへパケットをトンネルすることを特定する、送信先論理スイッチパイプライン(すなわち、論理スイッチ1410及び1415の1つ)もまた実行される。パケットのカプセル除去の後に、送信先MFEはVMへパケットを配送する。
【0107】
[00141] B.TLRにおける集中化サービスを有しない2層トポロジ
[00142] 図15A及び15Bは、下の(lower)(TLR)層で提供される集中化サービスを有しない、2層論理トポロジに対する、ノースバウンド及びサウスバウンドのトラフィックの例を示す。これらの図は、PLR1505(外部ネットワークへの2つのアップリンクを有する)と、TLR1510と、2つの論理スイッチ1515及び1520とを用いる2層トポロジ1500を示している。PLR1505は、DR1525と、2つのSR1530及び1535と、3つの構成要素を接続する通過論理スイッチ1540とを含む。TLR1510は構成される集中化サービスを有しないため、単一のDR構成要素1545のみを含む。管理プレーンは、TLRのDR1545とPLRのDR1525との間に第2の通過論理スイッチ1550を挿入する。
【0108】
[00143] TLRレベルにおいてステートフルサービスを有しない2層トポロジの処理パイプラインは、第1ホップのMFEにおいて実行される追加パイプラインを除いて単一層トポロジのパイプラインと類似する。図15Aに示すように、VM又はマシン上の他のデータ計算ノードがノースバウンドのパケットを送信する場合、送信元マシンのMFE上のデータパスは最初に送信元論理スイッチパイプラインを(例えば、パケットを受信する入力ポート、送信元MACアドレス等に基づいて)実行する。送信元(第1ホップ)MFEにおいても実行されるこのパイプラインは、TLR1510のDR1545へパケットをフォワードするようにパイプラインを特定する。パイプラインは、その次ホップとしてDR1525のサウスバウンドインタフェースを識別し、その後、送信元MFEは、2つのDRの間に挿入される通過論理スイッチ1550のためのパイプラインを実行する。この論理スイッチパイプラインはパケットをDRポート(上レイヤDR)へ論理的にフォワードし、その後送信元MFEはDR1525のためのパイプラインを実行する。このパイプラインは、パケットの次ホップとしてのSR1530及び1535の1つを識別する。アクティブ-スタンバイの場合では、パイプラインはアクティブなSRを識別し、アクティブ-アクティブの場合では、いくつかの実施形態は後述のように、SRの1つを選択するためにECMPを用いる。
【0109】
[00144] 次に、送信元MFEは、(いくつかの実施形態では、MACアドレスに基づき通過論理スイッチパイプラインによって識別される)選択されたSRをホストする適切なゲートウェイマシン(エッジノード)へパケットをトンネルすることを特定する、PLR1505の内部にある通過論理スイッチ1540のためのパイプラインを実行する。ゲートウェイマシン(例えばゲートウェイマシン上のMFE)は、パケットを受信し、(トンネリング用カプセル化を削除するために)パケットにカプセル除去を行い、そして、SRのサウスバウンドインタフェースに対応する送信先MACアドレス及びパケットの論理コンテクスト情報(例えば、通過論理スイッチ1540のVNI)に基づいてSRを識別する。その後(いくつかの実施形態ではMFEによって、他の実施形態ではSRを実施するVMによって)SRパイプラインが実行される。SRパイプラインは物理ネットワークにパケットを送信する。SRパイプラインがローカルインタフェースを特定する場合、パケットは直接的に物理ネットワークに配送され、一方、SRパイプラインがダミーインタフェースを特定する場合、パケットは、特定されたインタフェースがローカルである異なるゲートウェイマシンへトンネルを介してリダイレクトされ得る。
【0110】
[00145] サウスバウンドトラフィックも単一層の場合と同様に扱われる。図15Bに示すように、サウスバウンドパケットは、PLR1505のSRが動作するゲートウェイマシンの1つにおいて受信される。ゲートウェイマシンにおけるMFEは、入ってきたパケットのVLAN及び送信先MACアドレスに基づいて送信先SR(いくつかの実施形態では、ゲートウェイマシンが様々な異なる論理ルータに対して複数のSRをホストすることができる)を識別し、SRパイプラインを実行する(例えば、SRがどのように実施されるかに応じて、SRが動作するVMへパケットを送信、或いはデータパス内で直接パイプラインを実行する)。SRパイプラインは、その次ホップとしてDR1525を識別して、その後MFEは通過論理スイッチ1540パイプラインを実行し、パケットをDR1525へフォワードする。DR1525パイプラインは、その次ホップとしてTLR DR1545を識別し、これによりエッジノード上のMFEは通過論理スイッチ1550のパイプラインを、その後DR1545のパイプラインを実行する。低レベルDRパイプラインが送信先へパケットをルーティングするため、送信先のVMが属すホストマシンのMFEへパケットをトンネルすることを特定する、送信先論理スイッチパイプライン(すなわち、論理スイッチ1515及び1520の1つ)も実行される。パケットのカプセル除去の後に、送信先MFEはVMへパケットを配送する。
【0111】
[00146] いくつかの実施形態では、イースト-ウェストトラフィックに対して、単一層の場合のように、送信元のMFEが処理の全てを扱う。TLR内で(例えば第1の論理スイッチ1513上のVMから論理スイッチ1520上のVM、単一のDRパイプラインのみ(及び2つの論理スイッチパイプライン)が実行される必要がある。いくつかの実施形態では、TLRにわたって送信されるパケットに対し、送信元のMFEは(送信先TLR-DRと論理スイッチパイプラインが送信元のMFE上で実施される限り)DRパイプラインの3つ全てを実行する。単一層の場合のように、いくつかの実施形態は、イースト-ウェストトラフィックをゲートウェイマシン上のSRへ送信できるようにする一方、他の実施形態は、イースト-ウェストトラフィックのための集中化サービスを有効にしない。
【0112】
[00147] C.TLRにおける集中化サービスを有する2層トポロジ
[00148] 最後に、図16A及び図16Bは、SRによって下の(TLR)層で提供される集中化サービスを有する、2層の論理トポロジに対するノースバウンド及びサウスバウンドのトラフィックの例を示す。これらの図は、PLR1605(外部ネットワークへの2つのアップリンクを有する)と、TLR1610(集中化サービスを有する)と、2つの論理スイッチ1615及び1620とを用いる2層トポロジ1600を示している。PLR1605は、DR1525と、2つのSR1630及び1635と、3つの構成要素を接続する通過論理スイッチ1640とを含む。TLRも、DR1645と、2つのSR1650及び1655と、3つの構成要素を接続する通過論理スイッチ1660とを含む。管理プレーンも、TLR1610のSR1650及び1655と、PLR1610のDR1625との間の、挿入された第3の通過論理スイッチ1665を有する。
【0113】
[00149] 第1ホップにおいてほぼ全てのパケット処理パイプラインが実行される前の例と異なり、論理トポロジ1600のためのパケット処理は、ノースバウンドとサウスバウンドのトラフィックの両方に対して、3つのマシンを跨って広がる。図16Aに示すように、VM又はマシン上の他のデータ計算ノードがノースバウンドのパケットを送信する場合、前の例のように、送信元マシンのMFE上のデータパスは、最初に送信元論理スイッチパイプラインを実行する。送信元(第1ホップ)MFEにおいても実行されるこのパイプラインは、TLR1610のDR1645へパケットをフォワードするようにパイプラインを特定する。このDRパイプラインは、次ホップIPアドレスとしてのSR1650及び1655の1つのサウスバウンドインタフェースを識別する。いくつかの実施形態では、TLR SRは常にアクティブ-スタンバイモードで構成され、このため、SRの両方にとって次ホップは同一であるが、パケットはアクティブSRのMACアドレスへルーティングされる。
【0114】
[00150] 次に、送信元MFEはその後、(通過論理スイッチパイプラインが、DR1645パイプラインによるルーティングの後に、送信先MACアドレスに基づいて識別する)TLR1610の選択されたSRをホストする適切なゲートウェイマシン(エッジノード)へパケットをトンネルすることを特定する、TLR1610の内部にある通過論理スイッチ1660のためのパイプラインを実行する。ゲートウェイマシン(例えばゲートウェイマシン上のMFE)は、パケットを受信し、パケットにカプセル除去を行い、そして、SRのサウスバウンドインタフェースに対応する送信先MACアドレス及びパケットの論理コンテクスト情報(例えば、通過論理スイッチ1660のVNI)に基づいてSRを識別する。SRパイプライン(任意のステートフルサービスを含む)がその後(例えば、MFEによって、又はSRを実施するVMによって)実行され、その次ホップアドレスとしてのDR1625のサウスバウンドインタフェースを特定する。PLR1605のDRパイプラインと同様、通過論理スイッチ1665パイプラインが現在のエッジノード上(図のエッジノード2)で実行される。このDRパイプラインは、前の例で示したものと同一の方法で、パケットの次ホップとしてのSR1630及び1635の1つを識別する。
【0115】
[00151] エッジノードMFEは、(いくつかの実施形態では、MACアドレスに基づき通過論理スイッチパイプラインによって識別される)選択されたSR1630又は1635をホストする適切なゲートウェイマシンへパケットをトンネルすることを特定する、PLR1605の内部にある通過論理スイッチ1640のためのパイプラインを実行する。ゲートウェイマシン(例えばゲートウェイマシン上のMFE)は、パケットを受信し、(トンネリング用カプセル化を削除するために)パケットにカプセル除去を行い、そして、SRのサウスバウンドインタフェースに対応する送信先MACアドレス及びパケットの論理コンテクスト情報(例えば、通過論理スイッチ1640のVNI)に基づいてSRを識別する。その後(いくつかの実施形態ではMFEによって、他の実施形態ではSRを実施するVMによって)SRパイプラインが実行される。SRパイプラインは物理ネットワークにパケットを送信する。SRパイプラインがローカルインタフェースを特定する場合、パケットは直接的に物理ネットワークに配送され、一方、SRパイプラインがダミーインタフェースを特定する場合、パケットは、特定されたインタフェースがローカルである異なるゲートウェイマシンへトンネルを介してリダイレクトされ得る。
【0116】
[00152] サウスバウンドトラフィック処理はまた、(PLR1605のためのSRとTLR1610のためのSRとが同一のゲートウェイマシンに配置されない限り)3つのマシンに跨って分散される。図16Bに示すように、サウスバウンドパケットは、PLR1605のSRが動作するゲートウェイマシンの1つにおいて受信される。ゲートウェイマシンにおけるMFEは、入ってきたパケットのVLAN及び送信先MACアドレスに基づいて送信先SRを識別し、SRパイプラインを実行する(例えば、SRがどのように実施されるかに応じて、SRが動作するVMへパケットを送信、或いはデータパス内で直接パイプラインを実行する)。SRパイプラインは、その次ホップとしてDR1625を識別して、その後MFEは通過論理スイッチ1640パイプラインを実行し、パケットをDR1625へフォワードする。DR1625パイプラインは、その次ホップとしてTLR1610のSR1650及び1655の1つのノースバウンドインタフェースを識別する。アクティブ-スタンバイの場合、アクティブSRが選択される。
【0117】
[00153] 第1のゲートウェイマシン上のMFEはその後、TLR1610のためのステートフルサービスを実行する第2のSRが配置される、第2のゲートウェイマシン(エッジノード2)へパケットをトンネルすることを特定する通過論理スイッチ1665パイプラインを実行する。第2のゲートウェイマシン(例えば第2のゲートウェイマシン上のMFE)はパケットのカプセル除去を行い、パケットのVNIとMACアドレスとに基づいて送信先SRを識別する。MFEは、次ホップとしてDR1645を識別する、(そのデータパス内において、又はゲートウェイマシン上のVMへパケットを送信することによって)SRパイプラインを実行する。その後MFEは、DR1645へパケットをフォワードする通過論理スイッチ1660パイプラインを実行し、その後、同様にこのDRパイプラインを実行する。DRパイプラインが送信先へパケットをルーティングするため、送信先論理スイッチパイプライン(論理スイッチ1615及び1620の1つ)が実行され、パケットは、送信先のVMが属すホストマシンのMFEへパケットをトンネルする。パケットのカプセル除去の後に、送信先MFEはVMへパケットを配送する。
【0118】
[00154] TLR内のイースト-ウェストトラフィックに対し、送信元論理スイッチ、DR、及び送信先論理スイッチパイプラインは、第1ホップのMFEにおいて全て実行され、その後、パケットは送信先MFEへトンネルされる。パケットが集中化サービスによる処理を必要とする場合、送信元論理スイッチDRと通過論理スイッチパイプラインとのみが、SRパイプライン、通過論理スイッチ(再)、DR(再)及び、ゲートウェイマシンで実行される送信先論理スイッチパイプラインを有する、第1ホップのMFEにおいて実行される。クロス-TLRトラフィックは、送信元論理スイッチ、DR、と、SRを選択するための通過論理スイッチパイプラインとを実行する第1ホップMFEを用いて、同一の方法で開始される。選択されたSRが動作するゲートウェイマシンはその後SRパイプラインを実行して、PLRのDR、TLRとPLRとの間の通過論理スイッチパイプライン、(異なるTLRの構成要素として次ホップを識別する)PLRパイプラインのDR、及び、少なくとも、PLRと送信先TLRとの間の通過論理スイッチを識別する。送信先TLRがDRのみを有する場合、その送信先MFEへのパケットをトンネルする前に、送信先論理スイッチとともに、そのパイプラインも第1のゲートウェイマシンにおいて実行される。送信先TLRがSRを有する場合、通過論理スイッチは、送信先TLRの選択されたSRに対し、ゲートウェイマシンへパケットをトンネルするように特定する。その第2のゲートウェイマシンは、送信先MFEへパケットをトンネルする前に、SRパイプライン、送信先TLRの内部の通過論理スイッチパイプライン、そのTLRに対するDRパイプライン、及び、送信先論理スイッチパイプラインを実行する。
【0119】
[00155] 上記例の全てにおいて、可能な限り早期に処理パイプラインを実行するための、同一原理が適用される。従って、所定のパケットに対するパイプラインの全ては、第1ホップのMFE(例えば、ハイパーバイザ上のVMからパケットを受信するハイパーバイザベースの仮想スイッチ)において実行され、パケットがSRパイプラインへ送信される必要があるまで、特定のゲートウェイマシン上にのみ現れる。そのゲートウェイマシンはその後、パケットが物理ネットワーク又は異なるゲートウェイマシン(又はそのイースト-ウェストトラフィックのための送信先)に送出されるまで、可能な処理の全てを実行する。
【0120】
[00156] D. 追加的な論理ルータの振る舞い
[00157] 物理ルータのように、論理ルータは、ルーティングするパケットの生存時間(time to live, TTL)をディクリメント(decrement)し、ARPを実行するような、典型的なルーティング機能を実行するように実施される。いくつかの実施形態では、DR及びSRの両方を有する論理ルータは、パケットに対して動作する第1の構成要素によって、一度だけパケットにディクリメントを行う。従って、ノースバウンド及びイースト-ウェストのトラフィックに対して、DRがTTLをディクリメントし、一方、サウスバウンドトラフィックに対して、SRがTTLをディクリメントする。いくつかの実施形態では、DRの実装は、そのサウスバウンドインタフェースで受信したパケットに対してTTLをディクリメントするのみの命令を有し、SRは、ノースバウンドインタフェースで受信したパケットに対してTTLをディクリメントするのみの類似の命令を有する。パケットに対するTTLのディクリメントを扱う構成要素はまた、TTLがゼロに落ち込んだ場合に、ICMPエラーメッセージの生成を扱う。
【0121】
[00158] いくつかの実施形態の論理ルータは、ブロードキャストパケットをフォワードせず、従って、ディレクテッドブロードキャスト(directed broadcast)(典型的には物理ルータでも無効化される機能)をサポートしない。しかしながら、宛先とされた論理ネットワーク上でIPブロードキャストパケットを受信した場合、いくつかの実施形態の論理ルータは、それ自体をパケットの送信先として取り扱う。
【0122】
[00159] いくつかの実施形態では、ARPに対し、論理ルータは、内部パケット(すなわち、トンネルカプセル化がパケットに付加される前のパケット)のMACアドレスを書き替えて、どのトランスポートノードがARPパケットを送信しているかを示し、ARPレスポンスが正しいトランスポートノードへフォワードされるようにする。トンネルカプセル化については、いくつかの実施形態は、VXLANセマンティクスとともにステートレストランスポートトンネリング(stateless transport tunneling, STT)を用いる。
【0123】
[00160] E.SRによるパケット処理
[00161] 上記説明は、単純な、パケットに対するデータパスの1つの追加論理フォワーディング要素としてのSRによるパケット処理であって、第1ホップにおいて(少なくとも、ノースバウンド又はイースト-ウェストのパケットに対して)実施されないパケット処理について説明した。しかしながら、他の論理フォワーディング要素(論理スイッチ、DR、通過論理スイッチ)が基本的に、入ってくる処理と論理フォワーディングと出てゆく処理(入ってくる及び出てゆく処理はACLを含み得る)とを含む場合、SR処理は、フォワーディング関連の処理に加えてステートフルサービスのような他の機能を含み得る。
【0124】
[00162] 図17は、いくつかの実施形態のSR処理1700の様々な段階を概念的に示している。これらの段階のいくつかは、SRが非フォワーディングサービス(例えばNAT、ステートフルファイアウォール、ロードバランシング等)を含む場合にのみに含まれる。従って、図は、いくつかの段階を示しており、実線よりむしろ一点鎖線の段階では、サービスが構成された場合に、SRだけがこれらの段階を実行することを示す。更に、プレサービス(pre-service)のリダイレクト段階1705は、点線を用いて記載されており、これは、SRがサービスを含み、かつその論理ルータがアクティブ-アクティブモードで構成される場合、SRのみがこの段階を実行することを示す。
【0125】
[00163] 図示するように、SRがパケットを受信した場合(SRがVMとして実施されようと、DPDKベースのデータパス内のVRFとして実施されようと)、第1の段階1705は、プレサービスのリダイレクト動作となる。上述したように、ステートフルサービスが構成される場合にはSRのみがこの段階を実行し、SRは、アクティブ-アクティブモードで動作している。プレサービスのリダイレクト段階1705は、パケットの属す接続(例えばトランスポート接続)のためのオーナーSRへパケットをリダイレクトすることを含む。しかしながら、論理ルータにおいてサービスが構成されていない、又は、SRがアクティブ-スタンバイモードで動作している(この場合、全てのパケットがアクティブSRへ送信される)場合、この段階は必要ではない。いくつかの実施形態では、プレサービスのリダイレクト段階はTTLをデクリメントしない(後の段階でルーティングされた際にパケットが適切にデクリメントされるため)。
【0126】
[00164] プレルーティングサービス段階1710-1715は、ルーティングより前の実行のための、SR上に構成された任意の数のステートフルサービスを含み得る。SRは、何らのリダイレクトも必要ないと判定した場合、又は、異なるSRからリダイレクトを介してパケットを受信した場合に、これらの段階を実行する。勿論、SR上にステートフルサービスが構成されない場合、これらの動作も実行されない。SRの構成、及び、所定のサービスが論理ルータの出る側の論理ポートの決定を必要とするか、に応じて、いくつかのサービスはルーティングの前又は後のいずれかに実行され得る。
【0127】
[00165] 全てのプレルーティングサービスがSRによって実行された後に、SRはルーティング段階1720を実行する。上述したように、SRインスタンスの全てに対するルーティングテーブルは類似する。例えば、複数のSRが同一のネットワークに到達することができる場合、全てのSRは、そのネットワークに対する複数の経路を有し、当該経路は、ダミーインタフェースを指す経路より短い距離メトリックを持った、ローカルインタフェースを指す経路を有する。このため、可能なときはローカルインタフェースが選択される。ルーティング段階1720は、ルーティングの決定をもたらし、この決定は、次ホップのIPアドレスと論理ルータの出る側の論理ポートとを含む(いくつかの実施形態では、出る側の論理ポートは、ノースバウンドパケットに対してDRによって実行されたルーティングに基づいて、既知であり得る)。
【0128】
[00166] ルーティングの後に、パケットは、ポストルーティングサービス段階1725-1730へ進む。これらの段階は、プレルーティングのサービス段階1710-1715のように、ステートフルサービスが論理ルータ上で構成されている場合、SRによってのみ実行される。いくつかの実施形態では、ポストルーティングサービス段階のいくつか又は全ては、ルーティングの決定に依存し得る。例えば、論理ルータのために構成されるインタフェースベースのNATは、論理的な出る側のポートに依存し得る。更に、いくつかの実施形態は、ポストルーティングサービスがルーティングの決定を変更しないことを必要とする(いくつかの場合には、SRによるパケットのドロップを引き起こし得るが)。
【0129】
[00167] 次に、SRは、出る側ACL段階1735を通してパケットを処理する。この段階では、SRは、論理ルータの論理的な出る側ポートに対して構成された任意のセキュリティポリシーを実施する。その後SRは、(段階1740において)ARPを次ホップへ送信して、パケットのための新たな送信先MACアドレスを決定する。SRの出る側のインタフェースがダミーインタフェースである場合、いくつかの実施形態では、論理空間においてDRがARPを実行するのと同一の方法で、ARPが、プロキシを介してL2の送信先に挿入される。ARPが終了した後は、SRは、パケットの送信元及び送信先のMACアドレスを修正する。
【0130】
[00168] 最後に、パケットは出る側の出力段階1745に進む。出る側のインタフェースがローカルである場合、パケットは適切なVLANへ送信される。一方、出る側のインタフェースが遠隔(remote)である場合、SRはパケットをダミーインタフェースのSRへフォワードし、ダミーインタフェースはその後適切なVLANを介してパケットを送出する。いくつかの実施形態では、パケットは正しいピアSRへ送信され、ピアSRはその後ARPを実行してパケットを出力する。しかしながら、この技術は、パケットを次ホップの情報に格納するか、ピアSRがルーティング段階を再実行するかのいずれかを必要とする。いくつかの実施形態では、出る側の出力段階はTTLをディクリメントしない。代わりにTTLは、このSRにおけるルーティング段階か、異なるSRの出力段階におけるリダイレクトを通して受信された場合には、その異なるSRにおけるルーティング段階か、のいずれかによってデクリメントされる。
【0131】
[00169] IV.多層ローカルネットワークにおけるECMPルーティング
[00170] 上述したように、いくつかの実施形態は、PLRのSRに関し、ノースバウンド及びサウスバウンドのパケットの両方に、等コストマルチパスルーティング(equal-cost multi-path routing)技術を用いる。いくつかの実施形態では、ECMPの使用は、物理ネットワーク(例えば、2層トポロジにおけるPLR)とインタフェースを有する論理ルータ上にステートフルサービスが構成されていない場合にのみ許容される。ECMP技術を用いてパケットをフォワードするためには、PLRは複数のアップリンクと有効化されたBGP(又は他の動的なルーティングプロトコル)を必要とする。いくつかの実施形態では、複数のアップリンクは同一のL2ドメイン内に配置され得る。
【0132】
[00171] 以前に説明したように、ユーザ(管理者)は、論理ルータを物理ゲートウェイマシンの特定の組に関連付ける。その後、管理プレーンは、PLRの様々なアップリンクを、物理ゲートウェイマシンのこの組における異なるゲートウェイマシンに割り当てる。いくつかの実施形態は、特定可能な組における様々なゲートウェイマシンが、外部ネットワークへの統一された物理的接続性を有する(例えば、マシンの全てが同じVLANの組へのアクセスを有する)というルールを実施する。ここで、このルールは管理プレーンにおけるロジックを単純化する。管理プレーンがアップリンクを割り当てる各ゲートウェイマシンにおいて、SRが生成される。
【0133】
[00172] いくつかの実施形態は、統一された物理的接続性に対する追加的な要件を設ける。具体的には、いくつかの実施形態では、PLRによって繋がるゲートウェイマシンの全ては同一のL3接続性を有する(すなわち、これらのマシンの全ては物理ルータの同一の組と接続する)更に、BGPが有効化される(ECMPに対する要求)場合、これらの物理的な次ホップ(物理ルータ)は、同一の物理的接続性を有することが必要となる。これは、特定のPLRのための全てのSRが、これらの物理的な次ホップから、非常に高速に消滅するSRの間の通過経路の差の見込みを有する、経路の同一の組を受信することを意味する。この要求の組によって、パケットがアップリンク間でリダイレクトされる必要がないため(全てのアップリンクが同一のポリシーと同一の接続性を有するため)、ダミーアップリンクは必要でなくなる。
【0134】
[00173] 図18及び図19は、単一の層の論理ネットワークトポロジ1800と、上述したECMPの使用要件を満たすトポロジの管理プレーンビューを示す。ネットワークトポロジ1800は、図9のものと類似するが、2つのアップリンクのそれぞれは同一のL3接続性を有する。論理ネットワークトポロジ1800は、論理ルータ1815と接続する、2つの論理スイッチ1805と1810とを含む。これらの構成要素の構成は、アップリンクが接続する物理ルータの構成を除き、ネットワークトポロジ900と同一である。すなわち、論理ルータ1815と論理スイッチ1805及び1810との間のインタフェースは全て同一であり、論理ルータ1815の2つのアップリンクU1及びU2は、同一の次ホップIPアドレスを用いて物理ルータ1820及び1825と接続する。しかしながら、前の例では物理ルータが異なるネットワークへの接続性を提供したが、ここでは、両方の物理ルータがインターネットへの同一のL3接続性を有している。
【0135】
[00174] 従って、図19では、論理ネットワークの管理プレーンビュー1900もほぼ同様である。管理プレーンは再度、論理ルータ1815と、DR構成要素1905と、2つのアップリンクに対する2つのSR1910及び1915と、通過論理スイッチ1920とを定義する。この構成に対する唯一の修正は、SR上にダミーインタフェースが構成されないことであり、これは、2つのアップリンクが同一の構成とRIBを有するために、SRの1つが、2つ目のSRの外にフォワードされる必要のあるパケットを受信すべきでないためである。そうであるなら、前のセクションにおいて示された、リダイレクトのためのRIB内の経路は、これらのSRのRIBには含まれない。
【0136】
[00175] いくつかの実施形態では、ECMPはBGP(又は他の動的なルーティングプロトコル)とともに用いられる。論理ルータの各SRは、接続する1つ以上の物理ルータとBGPセッションを確立する。例えば、図18及び図19の例では、SR1910は物理ルータ1820とのセッションを初期化し、一方SR1915は物理ルータ1825とのセッションを初期化する。いくつかの実施形態では、各アップリンクは両方の物理ルータと接続し得、このため、各アップリンクは2つのルーティングセッションを有し得る。いくつかの実施形態では、SRの実施から分離されたゲートウェイマシン上のモジュールは、ルータとともにBGPセッションを初期化し得る。例えば、VMとしてSRが実施される場合、BGPモジュールは、別々のVM内又は他のデータ計算ノード等における、VMの一部、又はハイパーバイザの一部として動作する別々のモジュールであり得る。これらのセッションの間、SRは、各プレフィックスについての同一のメトリックを用いて、論理スペース内のプレフィックス(例えば、論理スイッチのサブネット1.1.1.0/24又は1.1.2.0/24)を物理ルータにアドバタイズする。いくつかの実施形態のBGP結合技術は、2014年3月14日に出願された米国特許出願14/214,561号で説明されており、参照により以下に組み込まれる。
【0137】
[00176] 物理ルータへ同一の経路をアドバタイズするSRの全てを用いることにより、物理ルータは、SRを、同一コストのルーティングオプションとして扱うことができ、様々なSRを通じてトラフィックを広めることができる。図18及び19に示した例では、各物理ルータは、SRの1つにのみパケットを送信することができる。しかしながら、各物理ルータは同一の接続性を有するため、物理ルータの背後のネットワークから論理ネットワークへ送信されるパケットは、均等に2つのルータ1820及び1825の間に拡散され、従って、均等に2つのSRの間に拡散される。各SRが物理ルータの全てと接続する場合、そのときは当該物理ルータのそれぞれは、トラフィックをそれら自身にあるSRの間に均等に拡散することができる。
【0138】
[00177] ノースバウンドのパケットに対し、いくつかの実施形態のDRは、ノースバウンドのパケットに平等な接続性を提供するECMP技術を用いて、様々なSRの間でパケットを分配する。SRは、BGP(又は異なる動的なルーティングプロトコル)を実行することにより、論理ネットワークのプレフィックスをアドバタイズすることに加えて、物理ルータから経路を学習することができる。上述したように、SRは内部的にこれらの経路を自身のRIBに組み込み、新たに学習した経路に基づいて、自身のFIBを再計算することができる。しかしながら、ECMPを用いるDRについて、これらの経路は、多数のマシンで実施されるDRのRIBにも与えられなければならない。
【0139】
[00178] いくつかの実施形態では、SRは、学習した経路を、(分散化論理フォワーディング構成要素を実施するMFEと)SRを構成し管理する集中化ネットワークコントローラにレポートする。そして集中化コントローラは、それに応じてDRのRIBを更新し、DRを実施するMFEに更新を分配する。異なる実施形態は、最新のRIBの維持と集中化コントローラの処理負荷との間の場望ましいバランスに応じて、異なる割合でDRを更新し得る。いくつかの実施形態は、RIBを分配するよりむしろ、集中化コントローラにおいてFIBを計算し、その後更新したFIBを、DRを実施するMFEに分配する。
【0140】
[00179] 他の実施形態では、経路を継続的に更新するよりもむしろ、集中化コントローラは代わりに、SRの全てを指すデフォルト経路をDRのRIBに追加する。これらの経路は管理プレーンの内部のものとして分類されるため、これらの経路が管理者が入力した静的経路によって破棄されていない場合には、これらの経路はDRによってのみ用いられる。異なるSRに対する経路は同一の管理上の距離メトリックを有するため、DRは、これらを、ECMP技術を用いてSRの間のトラフィックを分割する、等コストのオプションとして扱う。
【0141】
[0180] V. ステートフルサービスのためのアクティブ-スタンバイ
[00181] 上記セクションは、ECMPを用いたアクティブ-アクティブ構成のためのSR(2つ以上のSRの全てが等しいオプションとして扱われる場合)のセットアップについて説明したが、いくつかの実施形態は、2つのSRを用いてアクティブ-スタンバイ構成を用いる。いくつかの実施形態は、ステートフルサービスがSR上に構成された場合に、アクティブ-スタンバイ構成を用いる。この場合、SR間において継続的な状態の共有を避ける利益は、(障害の場合にバックアップのためのスタンバイを用いる間に)複数のSRの間のノースバウンド及びサウスバウンドトラフィックの全てを送信する不利益を上回る。アクティブ-スタンバイの場合には、状態が2つのSR間で定期的に同期されるが、パケット速度ごとになされる必要はない。
【0142】
[00182] いくつかの実施形態では、アクティブ-スタンバイ構成に対し、管理者は、論理ルータを定義する際に2つのアップリンクを構成する必要があるが、このアップリンクは同一のL2ドメインである必要はない。しかしながら、アクティブ及びスタンバイのSRは、DRに対する同等のオプションでなければならない(2つのオプションの望ましい方であるアクティブSRを有する)ため、いくつかの実施形態は、2つのSRが同一のL3接続性を有することを必要とする。これは、両方のSRが1つの次ホップ、TLRが接続するPLRのDR、を有するため、もちろん、アクティブ-スタンバイのSRがステートフルサービスを有するTLRのために構成される場合、問題にはならない。いくつかの実施形態では、アクティブ-スタンバイ構成におけるPLRに対し、2つのアップリンクは同一の接続性で構成されなければならない。更に、PLRに対し、いくつかの実施形態は、SR上での動的ルーティングプロトコル(例えばBGP)の構成を可能にする(或いは必要とする)。
【0143】
[00183] 図20は、論理ルータがアクティブ-アクティブ(ECMP)モードよりもむしろアクティブ-スタンバイモードで構成される場合の、論理ネットワークトポロジ1800の管理プレーンビューを示す。ここで、図19に示したアクティブ-アクティブモードとの構成の唯一の差異は、SR2010及び2015のサウスバウンドインタフェースが、異なるMACアドレスであるが同一のIPアドレスを割り当てられていることである。
【0144】
[00184] 管理プレーンは、DRのサウスバウンド及びノースバウンドのインタフェースへのMAC及びIPアドレスの割り当てに関し、図9及び図10の一般的な場合と同じ方法でDR2005を構成する。RIBを構築する際には、同じ接続されたルータが用いられ、セクションIIで上述したように同一の静的経路のルールが適用される(例えば、ノースバウンドの経路がDRにコピーされるが、その次ホップとしてのSRのIPアドレスを設定するために修正される)。この場合、SRに対するIPアドレスは1つのみであるため、全てのノースバウンドの経路は、次ホップのアドレスとしてこの1つのIPを用いる。同様に、様々な異なるSRのIPアドレスに複数のデフォルト経路を生成するのではなく、次ホップとしてのこの1つのIPアドレスを有する単一のデフォルト経路がDRのRIBに追加される。従って、図20のDR2005に対するRIBは、以下の経路を含む。
1.1.1.0/24 output to L1
1.1.2.0/24 output to L2
192.168.100.0/24 output to DRP1
192.168.1.0/24 via IP1
192.168.2.0/24 via IP1
0.0.0.0/0 via IP1
【0145】
[00185] SR2005のそれぞれは、ほぼ同じ方法で構成される。論理ルータがPLRである場合(又は、例にあるような1層トポロジにおいて)、ノースバウンドインタフェースのIP及びMACアドレスは、PLRに対して構成された2つのアップリンクに割り当てられるものと同一である。一方、論理ルータがTLRである場合、論理ルータは、PLRと接続するように構成される1つのアップリンクのみを有し得る。この場合、2つのノースバウンドインタフェースのIPアドレスは同一であるが、各SRには異なるMACアドレスが割り当てられる。同様に、これらの2つの場合(PLR又はTLR)のいずれかは、2つのSRに対する2つの異なるMACアドレスを有する、2つのサウスバウンドインタフェース(図20に示すように、これらのインタフェースの両方がIP1のIPアドレスを有する)に対して単一のIPアドレスが割り当てられる。
【0146】
[00186] いくつかの実施形態では、コントローラは任意のアップリンク非依存のサービスポリシーを両方のSRに等しくプッシュする。アップリンクに依存する任意のサービスポリシーが許容され、構成される場合、これらは、関連付けられているアップリンクが存在するSRへプッシュされる。更に、論理ルータのポートの任意の動的ルーティング構成がSRのノースバウンドインタフェースへ伝送される。
【0147】
[00187] SRのためのRIBは、一般的な事例に対して上記セクションIIにおいて示したものと類似する。論理ルータのアップリンクから出る静的かつ接続された経路は、修正されること無くSRのRIBに追加される。論理ルータの各サウスバウンドインタフェース(例えば論理スイッチのサブネットのための経路)について、ネットワークのための経路が、次ホップのIPアドレスの組と共にDRのノースバウンドインタフェースに追加される。サウスバウンドインタフェースから出る、論理ルータのRIB内の任意の経路もまた、SRのRIBに、同一の次ホップのIPアドレスと共に追加される。図20の例におけるSR1 2010のRIBは、動的ルーティングプロトコルを介して任意の追加経路を学習する前に、以下の経路を含む。
0.0.0.0/0 output to U1 via 192.168.1.252
192.168.1.0/24 output to U1
192.168.100.0/24 output to SRP1
1.1.1.0/24 via IP3
1.1.2.0/24 via IP3
【0148】
[00188] 更に、いくつかの実施形態では、SRが(アクティブSRよりむしろ)スタンバイSRとして設定される場合、SRはそのサウスバウンドインタフェース上でARPに返答しない。SRのサウスバウンドIPのためのARPパケットは、SR及びDRと接続する通過論理スイッチ上でブロードキャストされ、アクティブSR及びスタンバイSRの両方がそのIPアドレスに応答する。しかしながら、DRが、スタンバイSRよりもアクティブSRのMACアドレスへパケットをルーティングするように、アクティブSRのみがARPリクエストに応答する。にもかかわらず、いくつかの実施形態においてスタンバイSRは、アクティブSRになった場合にその動的ルーティングプロトコルを実行し、最新の経路の組を維持するために、ノースバウンドインタフェースによって受信されるパケットを受け入れる。しかしながら、スタンバイSRは、アクティブにならない限り、外部ネットワークへプレフィックスをアドバタイズしない。
【0149】
[00189] IV.SRのフェイルオーバー
[00190] 上述したように、SRは、VM又は他のデータ計算ノードとして、若しくは、DPDKベースのデータパス内のVRFとして、異なる実施形態で実施され得る。いずれの場合も、異なる種別の障害(部分的なトンネルの障害、完全なトンネルの障害、物理マシンのクラッシュ等)の可能性は、SRのダウンを引き起こし得る。しかしながら、異なるSRの実施は、異なる種別の障害に対し異なる方法で対応する。
【0150】
[00191] A.DPDKベースのSRを用いる障害ハンドリング
[00192] いくつかの実施形態では、述べたように、論理ルータのSRは、DPDKベースのデータパス内のVRFとして、ゲートウェイマシン又はエッジノード上で動作する。これらのゲートウェイマシンは、(例えばデータセンタ内の物理的な位置に応じて)複数の組にグループ化され、特定の論理ルータのための全てのSRをまとめてホストするゲートウェイマシンの組は、トンネルの組(いくつかの実施形態ではトンネルのフルメッシュ(full mesh))によって接続される。従って、トンネルは、SRが動作する全てのゲートウェイマシンの間に存在する。
【0151】
[00193] いくつかの実施形態は、ピアのゲートウェイマシンの生存を監視するために、双方向フォワーディング検出(Bidirectional Forwarding Detection, BFD)セッションを用いて、これらのトンネルを維持する。しかしながら、トンネルエンドポイント間の単一のDFDセッションのみを用いることは、ピアの生存を検出するための単一の情報チャンネルに依存することになるため、いくつかの実施形態はまた、ゲートウェイマシンの各ペアの間で2つ目のチャンネルを用いる。特に、いくつかの実施形態では、別々の管理ネットワークが、(ネットワークコントローラとの通信のための)コントロールデータを送信するゲートウェイの間に存在する。従って、各ゲートウェイは管理ネットワーク内で別々のIPアドレスを有し、これらの接続は、管理ネットワークにわたってハートビート(heartbeat)メッセージを送信するために用いられ得る。これは、両方のゲートウェイマシンが、ピアが実際にはダウンしていない場合に、他方がクラッシュし、混乱を生じさせるアクションを起こさせていると判定した結果として生じる、2つのピア間におけるトンネルの障害の可能性を防止する。代わりに、トンネルの障害の間に、各ノードは、これらのピアマシンが今だ動作しているかを検出することができるため、トンネルが停止したものであり、ピアマシン(及びそのSR)自身が停止したものではないことを結論付けることができる。
【0152】
[00194] いくつかの実施形態では、障害の状態は、PLRのSRのものとTLRのSRのものとで異なる。ユーザのVMが動作するMFE(例えば、ユーザのVMが直接接続する図13のMFE1325)への接続性を提供する、ゲートウェイマシンのトンネルが停止した場合、外部の物理ルータによってPLRへ送信されるトラフィックがブラックホールされる(blackholed)ため、ゲートウェイマシン上の全てのSR(PLRのSRでさえ)は、もはや動作可能でない。一方、ゲートウェイマシンが物理ルータとの接続性を失った場合、ゲートウェイマシン上のTLRのSRは、TLRへのノースバウンドトラフィックが、次ホップとしてのPLRのDRを有するため、すなわち常に利用可能でなければならない(ゲートウェイ上のデータパス内で実施されるため)ため、依然として動作可能として扱われる。しかしながら、論理ネットワークのVMからの任意のノースバウンドトラフィックがブラックホールされるため、PLRのSRはもはや動作可能であると考えられない。PLRのSRをホストするゲートウェイマシンが物理的な接続性(又はそのBGPセッション)を失う場合、いくつかの実施形態では、ゲートウェイマシンは、同一のPLRのSRをホストする他のゲートウェイマシンにメッセージ(例えば、「concatenated path down」のような特定の診断コード)を送信する。
【0153】
[00195] ピアとのトンネル上のBFDセッションと、ピアとの第2(管理)のチャネルにわたるハートビートメッセージの状態と、ピアの物理的接続性がダウンしていることを示すメッセージをピアから受信したか、とに基づいて、第1のゲートウェイマシンは、ピアの第2のゲートウェイマシンについて結論を下し、結論に基づいて所定のアクションをとることができる。例えば、トンネルがアクティブであり、接続性ダウンのメッセージを受信していない場合、第1のゲートウェイマシンは、ピアの第2のゲートウェイマシンが健全であり、継続するパケットの処理が通常であると結論する。しかしながら、ピアへのトンネルが動作しているが接続性ダウンのメッセージを受信した場合、第1のゲートウェイマシンは、ピアは今だアクティブであるが物理的接続性を失ったと結論する。そういうものとして、第1のゲートウェイマシンは、SRがPLRに属す場合には第2のゲートウェイマシン上のSRを(後述するように)引き継ぎ、TLRのSRについてはアクションをとらない。
【0154】
[00196] 第1のゲートウェイマシンとピアの第2のゲートウェイマシンとの間でトンネルがダウン(もはやアクティブでないBFDセッションに基づく)し、しかし第2のチャネルのハートビートメッセージが今だ受信される場合、第1のゲートウェイマシンは、ピアの第2のゲートウェイマシンが健全であり、(必要ならリダイレクションは問題になり得るが)ノースバウンド及びサウスバウンドパケットを処理している、と結論する。しかしながら、トンネルと第2のチャネルとの両方がダウンした場合、第1のゲートウェイは、ピアがダウン(例えばクラッシュ)したと結論する。この場合、第1のゲートウェイマシン上のSRは、SRがPLR又はTLRに属するかに関わらず、第2のゲートウェイマシン上のSRを(後述するように)引き継ぐ。
【0155】
[00197] いくつかの実施形態では、各ゲートウェイマシンは、マシン上で動作する(ある場合にはシャーシコントローラ(chassis controller)として参照される)ローカルネットワークコントローラを有する。いくつかの実施形態のシャーシコントローラは、中央ネットワークコントローラからデータタプル(data tuple)を受信し、マシン上のMFEを構成するためにデータタプルを用いる。いくつかの実施形態では、このシャーシコントローラはまた、そのゲートウェイマシンのヘルス状態(health status)がいつ変化したか、及び、ピアのゲートウェイマシンのヘルス状態がいつ変化したかを判定する責務を有する。ゲートウェイマシン間の通信の3つ指標(トンネルBFDセッション、第2のチャネル、及び物理的接続性ダウンのメッセージ)の1つが(接続性の消失、ゲートウェイマシンのクラッシュ等に基づき)影響を受けた場合、いくつかの実施形態のシャーシコントローラは、これがどのように、そのゲートウェイマシン上でホストされる各SRに影響するかを判定する。
【0156】
[00198] 特定の1つのSRに関してシャーシコントローラがなすアクションは、(i)SRがPLR又はTLRに属すか、(ii)SRがアクティブ-アクティブ又はアクティブ-スタンバイモードで動作するか、(iii)それ自身のローカルヘルス状態、(iv)同一の論理ルータの他のSRをホストするピアのゲートウェイマシンのヘルス状態、に依存する。例えば、シャーシコントローラは、ローカルSRが機能的であると扱われるべきでないことを判定し得、この結果に対する信号を(i)他のゲートウェイマシン、(ii)ユーザVMが属すホストマシン、(iii)物理外部ルータ、の組み合わせに送信し得る。シャーシコントローラはまた、ローカルSRがアクティブになければならないとの判定をなすことができ、SRをアクティブにするためのフェイルオーバー処理を開始し得る。更に、シャーシコントローラは、遠隔のSRがもはや機能的でないことを判定し得、この遠隔のSRの処理をローカルに引き継ぐためにフェイルオーバー手順を開始する。
【0157】
[00199] 障害の条件が検出された場合、様々な実施形態は、状況を部分的に或いは完全に救済するための様々な異なるアクションを取り得る。障害の事例の異なる種別は、完全な或いは部分的なトンネルの障害、ゲートウェイマシン又はMFEのクラッシュ、リンクアグリゲイトグループ(LAG)状態のダウン、BGPセッションの停止、SR間の非統一経路を含む。SRの復活は実際には障害のシナリオではないが、SRを管理するためにゲートウェイマシンのシャーシコントローラによってなされるアクションの結果として生じる。
【0158】
[00200] 1.完全なトンネルの障害
[00201] 完全なトンネルの障害は、ゲートウェイマシンのクラッシュによって、若しくはpNIC又は物理ネットワークの問題によって発生し得る。完全なトンネルの障害が特定のゲートウェイマシン上で発生する場合、(i)ユーザVM又は他のデータ計算ノードを有するホストマシンにおける全てのMFEは、特定のゲートウェイマシンへのトンネルを失い、(ii)他のゲートウェイマシンは、特定のゲートウェイマシンへのトンネルを失い、そして(iii) 特定のゲートウェイマシンは、他のゲートウェイマシンへのトンネルを失う。
【0159】
[00202] ホストマシンにおけるMFEの観点から、特定のゲートウェイマシンへのそのトンネルが停止した場合、PLRのDRは、(PLRによって繋がるゲートウェイマシンの全てが一度に停止していない前提で)いくつかのSRに到達することができるが、特定のゲートウェイマシン上にあるSRに到達することができない。そういうものとして、いくつかの実施形態では、ホストマシン上のデータパス又はシャーシコントローラは、影響を受けた(次ホップのIPアドレスとしての特定のゲートウェイマシン上のSRを用いる)経路を、DRのFIBから自動的に削除する。いくつかの実施形態は、それぞれのゲートウェイマシン上の仮想トンネルエンドポイント(VTEP)に、各次ホップを関連付ける。特定のVTEPへのトンネルがダウンしている場合、特定のVTEPと関連付けられている全ての次ホップは、ダウンしているとしてマークされ、そのため、ローカルのシャシーコントローラによって、DRのためのFIBを計算する際に削除される。
【0160】
[00203] 他のゲートウェイマシンは、BFDセッションの状態を通して、特定のゲートウェイマシンのトンネルの障害と、第2のチャネルが今だ動作していることを検出する。これらの他のゲートウェイマシン(例えば、他のゲートウェイマシン上のローカルシャーシコントローラ)は、その後、停止したゲートウェイマシン上でホストされたSRを引き継ぐためにフェイルオーバー処理を開始することができる。
【0161】
[00204] アクティブ-アクティブモードで構成された停止したゲートウェイマシン上のSRに対し、いくつかの実施形態は、停止したSRを他のマシンの1つによってどのように引き継ぐかを決定するために、ランキングメカニズムを用いる。いくつかの実施形態では、管理プレーンは、アクティブ-アクティブ構成のNのSRのそれぞれに、1からNのランキングを割り当てる。これらのランキングは、ランダムに割り当てられ、或いは、異なる技術を用いて割り当てられ、そして、アクティブ-アクティブ構成の特定の論理ルータのためのSRをホストする、全てのゲートウェイマシンのローカルシャーシコントローラへ分配され得る。停止したSRのランキングに基づいて、次に高いランクのSRが、停止したSRのサウスバウンドインタフェースを自動的に引き継ぐ。ノースバウンドインタフェースに対しては、物理ルータが、BGPセッションを終了した際にSRがダウンしていることを認識するため、他のSRによってなされるべきアクションはない。インタフェースを引き継ぐために、引き継ぐ側のSRは、サウスバウンドインタフェース上の通過論理スイッチへ引き継ぐ全てのIPアドレスに対して、いくつかのグラチュータスARP(gratuitous ARP)(GARP)メッセージを送信する。これらのメッセージは、IPアドレスが現在はサウスバウンドインタフェースのMACアドレスと関連付けられていることを知らせる。(論理ルータに対する他のSRの以前の障害によって)停止したSRが既に他のIPアドレスを引き継いでいた場合、複数のIPアドレスが新たな引き継ぐ側のSRによって引き継がれる。
【0162】
[00205] アクティブ-スタンバイモードで構成された停止したゲートウェイマシン上のSRに対し、いくつかの実施形態は、アクティブなSRの障害とスタンバイのSRの障害とを異ならせて扱う。特に、停止したSRがスタンバイである場合、いくつかの実施形態は、スタンバイのマシンには適切な時間にバックアップがもたらされる前提で、アクションをとらない(すなわち、新たなスタンバイマシンをインスタンス化しない)。停止したSRがTLRのSRである場合、サウスバウンド及びノースバウンドインタフェースの両方のIPアドレスがスタンバイのSRに移動する。TLRは単一のアップリンクのみを有するため、両方のSRはノースバウンド及びサウスバウンドインタフェースのIPアドレスを共有するが、異なるMACアドレスを有する。両方の場合、いくつかの実施形態は、IPアドレスの移動を実現するために、関連する通過論理スイッチへGARPメッセージを送信する。PLRのSRについては、アクティブ-スタンバイモードであっても2つのアップリンクが別々のIPアドレスを有するため、サウスバウンドインタフェースのみが移動する。更に、新たなアクティブなSRは物理ルータにプレフィックスのアドバタイズを開始して、停止したSRによりも自身にサウスバウンドのパケットを引き入れる。同一のIP及びMACアドレスが、アクティブ-スタンバイのSRのサウスバウンドインタフェースに用いられる場合には、いくつかの実施形態は、Reverse ARP(RARP)を用いて、MAC:VTEPマッピングをリフレッシュする(すなわち、パケットが現在のトンネルを介して新たなアクティブSRへ送信される)。
【0163】
[00206] 全てのトンネルを失ったゲートウェイマシン上では、シャーシコントローラは、最も可能性の高い原因が何等かのローカルの障害であることを判定し、従って、そのローカルのSRはもはやアクティブであるはずがないことを判定する。従って、BGPセッションを介して外部の物理ルータへプレフィックスを通知する任意のSRは、ブラックホールされるサウスバウンドのトラフィックの引き込みを回避するように、通知したプレフィックスを撤回する。
【0164】
[00207] 2.部分的なトンネルの障害
[00208] 部分的なトンネルの障害は、ゲートウェイマシンとデータセンタ内の他のマシンとの間のいくつかのトンネルのみがダウンした場合に生じる。これは、特定のゲートウェイマシンへのトンネルを有するマシンの1つにおける(1つのトンネルの消失の結果として生じる)完全な障害、そのトンネルのいくつかのダウンの結果として生じる特定のゲートウェイマシンにおける条件、等によるものであり得る。ここで説明されるのは、特定のゲートウェイマシンにおける条件がそのトンネルのサブセットが停止した結果として生じる場合である。結果として、(i)ユーザVM又は他のデータ計算ノードを有するホストマシンにおけるいくつかのMFEは、特定のゲートウェイマシンへのトンネルを失い、(ii)いくつかの他のゲートウェイマシンは、特定のゲートウェイマシンへのトンネルを失い、そして(iii) 特定のゲートウェイマシンは、他のゲートウェイマシンへのトンネルを失う。
【0165】
[00209] 特定のゲートウェイマシンへのトンネルを失ったホストマシンにおけるMFEは、ホストマシンの観点からこれは単に到達できないゲートウェイであるため、完全なトンネルの障害の場合と同一の方法でこれを扱う。そういうものとして、上記サブセクション1に示したように、ホストマシン上のデータパス又はシャーシコントローラは、次ホップのIPアドレスとしての特定のゲートウェイマシン上のSRを用いる、影響を受けた経路を、DRのFIBから自動的に削除する。
【0166】
[00210] 言及したように、部分的なトンネルの障害は、様々な異なるシナリオの結果として生じ得る。例えば、いくつかの場合、ゲートウェイマシンは、いくつかのホストマシンのMFEによって到達可能であり得るが、そのピアによっては到達可能ではない。例として、(VMとしてのSRであるが、にもかかわらず適用可能である)図13を参照すると、ゲートウェイマシン1330に、ホストマシン1305-1320によって到達可能であるが、ゲートウェイ1335及び1340によっては到達可能でない。この場合、ゲートウェイマシン1330上のローカルのシャーシコントローラは、両方のゲートウェイマシン1335及び1340上で動作しているPLRのSRを引き継ぐ。更に、ゲートウェイマシン1335(又は、ランキングに応じて、マシン1340)が、ゲートウェイマシン1330上で動作するSRを引き継ぐ。これは、ゲートウェイマシン上で動作するDRが、第1のゲートウェイマシン1330上でホストされるSRのサウスバウンドのIPアドレスに対するARPリクエストを送信した場合、(ゲートウェイマシンの全てに到達することができる)MFEのいくつかが複数のゲートウェイマシンから返信を受信する結果としてなされる。SRがアクティブ-アクティブ構成(ステートフルサービスを有しない)である限り、これは正当性問題を生じさせない。しかしながら、アクティブ-スタンバイ構成の場合には、SRの両方が今やアクティブであることを意味し得、これはトラフィックの途絶問題を引き起こし得る。
【0167】
[00211] 特定のゲートウェイマシンにおいて、ホストマシンのいくつかへのトンネルがダウンするが、ピアのゲートウェイマシンは到達可能のままである場合、部分的なトンネルの障害は、アクティブ-スタンバイモードにおいても問題を生じ得る。この場合、SR間のトンネルが機能しているため、フェイルオーバーは発生しない。アクティブ-アクティブモードでは、ホストマシン(又はローカルシャーシコントローラ)におけるデータパスは、問題なく依然として動作しているトンネルを介してトラフィックをフォワードするための決定を行うことができる。しかしながら、アクティブ-スタンバイモードでは、アクティブなSRへのトンネルがダウンしている場合、MFEは、パケットを処理しないスタンバイのSRへパケットを送信する。同様に、アクティブ-アクティブ及びアクティブ-スタンバイ構成の両方において、ゲートウェイマシンは、物理ルータからのサウスバウンドトラフィックを通過させることができず、従っていくつかの実施形態ではブラックホールされる。
【0168】
[00212] 3.マシンクラッシュ
[00213] いくつかの場合には、ゲートウェイマシン全体がクラッシュし得、又はDPDKファストパス(fastpath)がクラッシュし得る。いくつかの実施形態では、ファストパスはBFDパケットを送信する責務を負うため、これらの状況のいずれも完全なトンネルの障害と同一である。(ゲートウェイマシン上のSRに対するBGPセッションを処理する)MSRプロセスは、ファストパスがクラッシュした場合にのみ動作し続け得るため、物理ルータは、ゲートウェイマシンへパケットを送信する可能性を今だ有する。いくつかの実施形態では、ファストパスが再スタートするまでトラフィックはブラックホールされる。
【0169】
[00214] 4.LAG状態のダウン
[00215] いくつかの実施形態では、ゲートウェイマシンは、外部物理ネットワークに到達するために、リンクアグリケートグループ(LAG)を用いる。PLRのSRをホストするゲートウェイマシンが全てのLAGを失った場合、いくつかの実施形態では、マシンは、(上述の)物理的接続性ダウンのメッセージを、そのPLRのSRをホストするそのピアのゲートウェイマシンへ、トンネルを介して送信する。この場合、完全なトンネルの障害に関して上述した、引き継ぎ手順がなされる(次にランクの高いSRが、SRのIPアドレスを引き継ぐ)。
【0170】
[00216] いくつかの実施形態はむしろ、フェイルオーバーを誘発する技術として記載されるように全てのトンネルをマークする。しかしながら、これは、他のゲートウェイマシンへ同様にフェイルオーバーしたマシン上のTLRのSRにおいて結果的に生じるものであり、物理的接続性がダウンした場合にのみ不要になるものである。これは、ホストマシンにおいてMFEへ多数のGARPメッセージを送信することに繋がり、従って、いくつかの実施形態は、PLRのSRのみをフェイルオーバーする初めの技術を用いる。
【0171】
[00217] いくつかの場合、LAGにおける物理アップリンクのいくつかのみがダウンする。LAGにおける物理アップリンクの少なくとも1つが機能的なままである限り、ゲートウェイマシンは何らのアクションもとらず、正常なものとして動作を継続する。更に、いくつかの実施形態では、(データセンタ内の)トンネルトラフィックは別々のLAGを用いる。LAG全体がダウンする場合、サブセクション1で上述した、完全なトンネルの障害を生じさせる。
【0172】
[00218] 5.BGP セッションダウン
[00219] いくつかの場合、(例えばゲートウェイマシン上のMSRプロセスがクラッシュするために)SRのためのBGPセッションがダウンする。BGPプロセスのために適切な再スタートが可能である場合、適切な再スタートのために設定されたタイムアウト期間以内にセッションが再確立される限り、フェイルオーバーのアクションをとる必要はない。MSRプロセス(又は他のBGPモジュール)がいつダウンしたかを検出できるようにするため、いくつかの実施形態は、たとえ状態が変化しなかったとしても、定期的にBGPセッションの全ての状態をリフレッシュするためのプロセスを必要とする。
【0173】
[00220] 一方、適切な再スタートが可能でない、又は再スタートのためのタイムアウト期間が経過した場合、いくつかの実施形態のゲートウェイマシンは、SRがもはや機能的でないことを示すために、物理的接続性ダウンのメッセージを、同一のPLRに対するSRをホストするそのピアのゲートウェイマシンに送信する。ピアのゲートウェイマシンの観点から、機能的でないBGPセッションを有するゲートウェイ上のSRインタフェースが、次に高ランクなSRによって引き継がれるという点で、あたかもLAG状態がダウンしたのと同じである。更に、1つのBGPセッションが機能的である限り、及び全ての物理的な次ホップが同一のL3接続性を有する場合、フェイルオーバーのアクションをとる必要がない。
【0174】
[00221] 6.SRの間の非統一経路
[00222] PLRのSRが接続する外部物理ネットワーク内の障害は、SRにも影響を及ぼし得る。例えば、いくつかの外部物理ルータは、サブネットのための経路を撤回し得、他方、他の物理ルータは撤回しない。いくつかの実施形態は、この問題を、中央ネットワークコントローラを含むこと無く、ゲートウェイマシン上でローカルに解決する。
【0175】
[00223] 上述したように、いくつかの実施形態では、SRは互いをピアにするiBGPを有し、eBGP経路(外部物理ルータから学習される)は、次ホップを変更すること無く、iBGPセッションを介して送信される。図10への参照によれば、(アップリンクU2である同一のサブネット内の)192.168.2.252の次ホップを有する、SR1015によって学習された任意のeBGP経路は、iBGPを介してSR1010によって学習される。これらの経路はその後、SRが、他のSR1015上の実際のアップリンクに対するダミーインタフェース(U2’)を有するため、192.168.2.252の次ホップとともにSR1010にインストールされる。同一の技術はまた、経路回避シナリオに対して用いられる。
【0176】
[00224] 7.SRの復活
[00225] SRは上述のサブセクションにおいて示した様々な理由でダウンし得るが、SRは一般に期間の後にバックアップがもたらされる。これは、これからバックアップされる停止したSRを有する、特定のゲートウェイマシンへのBFDセッションによって、又は、物理的接続性ダウンフラグをクリアするメッセージの受信によって、他のマシンにおいて示され得る。その後、いくつかの実施形態では、全ての他のゲートウェイマシン上のローカルシャーシコントローラは、上述した方法と同一の方法を用いて、ローカルのSRが遠隔のSRを引き継ぐべきかを評価する。
【0177】
[00226] 例えば、遠隔のSRからローカルのSRによって現在引き継がれているIPアドレスが、遠隔のSRに戻されるべき(すなわち、ローカルのSRはもはやIPアドレスを引き継ぐべきでない)である場合、ローカルのSRはIPアドレスに対するARPの返答を停止する。いくつかの実施形態について、ローカルシャーシコントローラは、ローカルSRのサウスバウンドインタフェースからそのIPアドレスを削除する。IPアドレスがローカルSRによって引き継がれるべきである場合(例えばそれがバックアップがなされたため)、サブセクション1で示したフェイルオーバー手続きに従う。加えて、ローカルSRがスタンバイとして指定され、そして、アクティブSRが機能性を回復する場合、ローカルSRは、外部物理ルータへのプレフィックスのアドバタイズを停止する。同様に、アクティブとして指定されるローカルSRが機能性を回復する場合、ローカルSRはプレフィックスのアドバタイズも再開する。
【0178】
[00227] B.VMベースのSRを用いる障害ハンドリング
[00228] 上で言及したように、いくつかの実施形態は、ゲートウェイマシンのDPDKベースのデータパス内にSRをホストするよりもむしろ、ゲートウェイマシン上のVM(又は他のデータ計算ノード)を用いて、データセンタ内でSRをホストする。図21は、特定のPLRに対する3つのSR2120-2130をホストする3つのゲートウェイマシン2105‐2115の物理的な実装例2100を示す。各ゲートウェイマシンはMFE、BGPプロセス(例えば、上記サブセクション Aで示したMSRプロセス)及びローカル管理プレーン、又はシャーシコントローラを含む。
【0179】
[00229] ゲートウェイマシン2105-2115上のMFE2135-2145は、OVS、ESX、異なるハイパーバイザベースの仮想スイッチ、又は、分散化L2及びL3フォワーディングを処理することができる、他のソフトウェアフォワーディング構成要素、のような仮想スイッチであり得る。示したように、3つのMFE2135‐2145は、これらの間でフルメッシュのトンネルの有し、これらの3つのMFEはまた、ユーザVMをホストする、ホストマシン2150-2155の組に置かれるMFEへのトンネルを有する。ホストマシン2150-2155はまた、ローカル管理プレーンを有する。
【0180】
[00230] VMとして動作する3つのアクティブSRを有する、ネットワークトポロジの物理的実施2100は、様々な異なる障害のシナリオを示すために本サブセクションにおいて用いられる。一般に、SRをホストするVMの1つが停止する、又はこれらの間のトンネルが停止する場合、他のピアのSRが停止したSRの責務を引き継ぐことを試みる。いくつかの実施形態では、同一の論理ルータに属すSRは、互いに通過論理スイッチを介して定期的にハートビートメッセージを送信する(例えば、通過論理スイッチでハートビートメッセージをブロードキャストすることにより、通過論理スイッチ上の他のSRの全てに配送される)。
【0181】
[00231] 1.SRをホスティングするVMのクラッシュ
[00232] いくつかの場合には、SRの1つをホストする実VMは、多くの理由によってクラッシュし得る。上述したように、SRがアクティブ-アクティブモードで動作する場合(図21のように)、管理プレーンは、各VMに、フェイルオーバーシナリオにおける使用のためのランクを割り当てる。図21の場合では、ゲートウェイマシン2105上のSR1は最も高いランクが付与され、ゲートウェイマシン2110上のSR2は2番目に高いランクが付与され、ゲートウェイマシン2115上のSR3には、SRの中で3番目に高いランクが付与されている。
【0182】
[00233] 図22は、クラッシュするVMの1つの結果を概念的に示している。特に、この図は、SR2125がゲートウェイマシン2110上で動作するVMがクラッシュしたことを概念的に示している。結果として、このVMは、ゲートウェイ間のトンネルが今だ動作可能であるものの、他のSR2120及び2130(例えば、ゲートウェイマシン上の他のVMで動作する他のSRに対して)へのハートビートメッセージを送信することができない。このように、様々な障害のメカニズムが、(これらがデータパス内のVRFとして全てが実施されるので)マシン上のDPDKベースのSRの全てに影響を与える一方、VMベースのSRに対するVMのクラッシュは、そのVM上で動作している単一のSRにのみ影響を与え、ゲートウェイマシン上の他のSRには影響を与えない。
【0183】
[00234] 他のSR2120及び2130は、見つからないハートビートを失ったためにSR2125の停止を検出したため、停止したSRの責務を引き継ぐ。通常、全てのSRは、自身のサウスバウントインタフェースと、他のSRのサウスバウンドインタフェースとのIPアドレスの情報を格納する。すなわち、SR2120は、SRと接続する通過論理スイッチへの自身のインタフェースと、SR2125及びSR2130の対応するインタフェースについての情報を格納する。しかしながら、SR2120は通常、自身のインタフェースに対するARPリクエストに返答するのみである。
【0184】
[00235] SRのVMがクラッシュする場合、図22に示すように、次に高いランクを付与され、まだ生きているSRが、停止したSRのサウスバウンドインタフェースのIPアドレスと、停止したSRが以前に引き継いだIPアドレスとを引き継ぐ責務を有する。例えば、SR3 2130が以前にクラッシュしていた場合、そのサウスバウンドインタフェースはSR2 2125によって引き継がれる。従って、図22は、現在SR2120がSR1及びSR2として振る舞っていることを示している。論理ネットワークがノースバウンドパケットをECMP原理を用いてフォワードすると想定した場合、ホストマシン2150-2155は、SR2120-2130がゲートウェイ2105上のVMに属す(例えばそのVMのMACアドレスに属す)論理ルータに対する、全てのノースバウンドトラフィックの3分の2をルーティングしなけらばならない。これは、SR1及びSR2の両方のIPアドレスへフォワードされるパケットは、そのMACへルーティングされるからである。
【0185】
[00236] ゲートウェイ2105上のVMがSR2 2125のIPアドレスを引き継ぐために、VMは、このIPアドレスに対するGARPメッセージ(及び、他の場合には引き継ぐ全てのIPアドレス)を、DR及びSR2120-2130が接続する通過論理スイッチへ送信する。いくつかの実施形態では、メッセージが受信されたことをより確実にするために、VMは複数のGARPメッセージを送信する。MFE2135は、これらのGARPメッセージを受信し、MFE2145(SR3 2130への配送のため)と、様々なホスト2150-2155におけるMFE(DRが、古いSR2のIPとMACアドレスのマッピングがARPキャッシュから削除されたことを知るため)とへ、GARPメッセージを送信する。
【0186】
[00237] アクティブ-スタンバイモードにおける2つのSRの場合(SRがTLR、又はステートフルサービスが構成されたPLRに属す場合)には、上述したようにいくつかの実施形態では、サウスバウンドインタフェースはIPアドレスを共有するが、異なるMACアドレスを有する。アクティブなSRのVMまでも停止しなくてもVMがバックアップを行う前提では、いくつかの実施形態では、スタンバイVMがクラッシュした場合には、管理プレーンは新たなスタンバイを開始させない。アクティブなSRのVMが停止した場合、スタンバイのVMは(ハートビートメッセージが受信されないので)その障害を識別し、そして、クラッシュしたSRのMACアドレスへのサウスバウンドのIPアドレスのマッピングを、ホストマシンのMFEにおけるDR用のARPテーブルから削除するために(これらのMFEが古いアクティブSRよりむしろ新たなアクティブSRへパケットをルーティングするために)、GARPメッセージを生成する。いくつかの実施形態では、ホストマシン上のトンネリングプロトコルレイヤ(例えばVXLANレイヤ)も、新たなMACアドレスに対するMAC:VTEPマッピングを学習し、同一のIP及びMACアドレスが、アクティブ-スタンバイのSRのサウスバウンドインタフェースに用いられ、いくつかの実施形態は、逆ARP(Reverse ARP)(RARP)を用いて、ホストマシンMFEにおいてMAC:VTEPマッピングをリフレッシュする(すなわち、パケットが現在のトンネルを介して新たなアクティブSRへ送信される)。
【0187】
[00238] 最後に、スタンバイ(現在はアクティブ)VMがPLRのためのSRとして動作する場合、物理外部ルータへ経路のアドバタイズメントを開始する。停止したSRを有するゲートウェイマシン上のBGPプロセスが、SRとともにVMの外で動作する場合、いくつかの実施形態では、そのゲートウェイマシンのローカルコントロールプレーンは、ゲートウェイマシンが停止したSRに対して入るトラフィックを引き寄せないように、BGPプロセスが経路のアドバタイズを継続することも停止させる。
【0188】
[00239] 2.完全なトンネルの障害
[00240] 完全なトンネルの障害は、ゲートウェイマシンのクラッシュによって、問題を有するゲートウェイマシン上のMFE、若しくはpNIC又は物理ネットワークの問題によって発生し得る。完全なトンネルの障害が特定のゲートウェイマシン上で発生する場合、(i)ユーザVMを有するホストマシンにおける全てのMFE又はゲートウェイマシンは、特定のゲートウェイマシンへのトンネルを失い、(ii)他のゲートウェイマシン上のSRは、特定のゲートウェイマシン上のSRが停止したことを判定し、そして(iii) 特定のゲートウェイマシン上のSRは、他のゲートウェイマシン上のSRが停止したことを判定する。いくつかの実施形態では、特定のゲートウェイマシンがもはやハートビートメッセージをあらゆるトンネルで受信しない場合、特定のゲートウェイマシン上のロジックは、そのトンネルの接続性が失われ、他のVMはそうではないと判定する。
【0189】
[00241] 図23は、SR3 2130をホストするゲートウェイマシン上のMFE2145における、完全なトンネルの障害の結果を概念的に示す。示すように、MFE2145は、このMFEから他のゲートウェイマシンへのトンネルとホストマシンとがダウンする(点線によって示される)ように停止する。結果として、同一のPLRに属す(アクティブ-アクティブモードで構成された)他のSRは、フェイルオーバー処理を開始して、停止したSR2130のサウスバウンドインタフェースのIPアドレスを引き継ぐ。
【0190】
[00242] いくつかの実施形態では、次に高いランクを付与された、まだ生きているSRが、停止したSRのサウスバウンドインタフェースのIPアドレスと、停止したSRが以前に引き継いだIPアドレスとを引き継ぐ責務を有する。従って、図23は、SR2125のためのVMがSR2及びSR3として現在振る舞っていることを示している。論理ネットワークがノースバウンドパケットをECMP原理を用いてフォワードすると想定した場合、ホストマシン2150-2155は、SR2120-2130がゲートウェイ2110上のVMに属す(例えばそのVMのMACアドレスに属す)論理ルータに対する、全てのノースバウンドトラフィックの3分の2をルーティングしなければならない。これは、SR2及びSR3の両方のIPアドレスへフォワードされるパケットは、そのMACへルーティングされるからである。
【0191】
[00243] ゲートウェイ2110上のVMがSR3 2130のIPアドレスを引き継ぐために、VMは、このIPアドレスに対するGARPメッセージ(及び、他の場合には引き継ぐ全てのIPアドレス)を、DR及びSR2120-2130が接続する通過論理スイッチへ送信する。いくつかの実施形態では、メッセージが受信されたことをより確実にするために、VMは複数のGARPメッセージを送信する。MFE2140は、これらのGARPメッセージを受信し、MFE2135(SR1 2120への配送のため)と、様々なホスト2150-2155におけるMFE(DRが、古いSR2のIPとMACアドレスのマッピングがARPキャッシュから削除されたことを知るため)とへ、GARPメッセージを送信する。
【0192】
[00244] アクティブ-スタンバイモードにおける2つのSRの場合(SRがTLR、又はステートフルサービスが構成されたPLRに属す場合)には、いくつかの実施形態では、サウスバウンドインタフェースはIPアドレスを共有するが、異なるMACアドレスを有する。スタンバイSRを有するゲートウェイマシンからのトンネルが停止した場合、いくつかの実施形態では、管理プレーンは新たなスタンバイSRを開始させない。しかしながら、アクティブSRを有するゲートウェイマシンからのトンネルが停止した場合、スタンバイのVMは(アクティブなSRからハートビートメッセージが受信されないので)その障害を識別し、そして、停止したSRのMACアドレスへのサウスバウンドのIPアドレスのマッピングを、ホストマシンのMFEにおけるDR用のARPテーブルから削除するために(これらのMFEが古いアクティブSRよりむしろ新たなアクティブSRへパケットをルーティングするために)、GARPメッセージを生成する。いくつかの実施形態では、ホストマシン上のトンネリングプロトコルレイヤ(例えばVXLANレイヤ)もまた新たなMACアドレスのためのMAC:VTEPマッピングを学習する。最後に、スタンバイ(現在はアクティブ)VMがPLRのためのSRとして動作する場合、物理外部ルータへ経路のアドバタイズメントを開始する。更に、いくつかの実施形態では、停止したトンネルを有するゲートウェイマシンは、自身のBGPプロセスが経路のアドバタイズを継続することを停止させる。
【0193】
[00245] 3.部分的なトンネルの障害
[00246] 部分的なトンネルの障害は、ゲートウェイマシンとデータセンタ内の他のマシンとの間のいくつかのトンネルのみがダウンした場合に生じる。これは、特定のゲートウェイマシンへのトンネルを有するマシンの1つにおける(1つのトンネルの消失の結果として生じる)完全な障害、そのトンネルのいくつかのダウンの結果として生じる特定のゲートウェイマシンにおける条件、等によるものであり得る。ここで説明されるのは、特定のゲートウェイマシンにおける条件がそのトンネルのサブセットが停止した結果として生じる場合である。結果として、(i)ユーザVMを有するホストマシンにおけるいくつかのMFEは、特定のゲートウェイマシンへのトンネルを失い、(ii)いくつかの他のゲートウェイマシンは、特定のゲートウェイマシンへのトンネルを失い、そして(iii) 特定のゲートウェイマシンは、他のゲートウェイマシンへのトンネルを失う。
【0194】
[00247] 特定のゲートウェイマシンへのトンネルを失ったホストマシンにおけるMFEは、ホストマシンの観点からこれは単に到達できないゲートウェイであるため、完全なトンネルの障害の場合と同一の方法でこれを扱う。そういうものとして、ホストマシン上のデータパス又はシャーシコントローラは、次ホップのIPアドレスとしての特定のゲートウェイマシン上のSRを用いる影響を受けた経路を、DRのFIBから自動的に削除する。
【0195】
[00248] 言及したように、部分的なトンネルの障害は、様々な異なるシナリオの結果として生じ得る。例えば、いくつかの場合、ゲートウェイマシンは、いくつかのホストマシンのMFEによって到達可能であり得るが、それ自身のピアによっては到達可能ではない。例として、図13を参照すると、ゲートウェイマシン1330に、ホストマシン1305‐1320によって到達可能であるが、ゲートウェイ1335及び1340によっては到達可能でない。この場合、ゲートウェイマシン1330上のローカルのシャーシコントローラは、両方のゲートウェイマシン1335及び1340上で動作しているPLRのSRを引き継ぐ。更に、ゲートウェイマシン1335(又は、ランキングに応じて、マシン1340)が、ゲートウェイマシン1330上で動作するSRを引き継ぐ。これは、ゲートウェイマシン上で動作するDRが、第1のゲートウェイマシン1330上でホストされるSRのサウスバウンドのIPアドレスに対するARPリクエストを送信した場合、(ゲートウェイマシンの全てに到達することができる)MFEのいくつかが複数のゲートウェイマシンから返信を受信する結果をもたらす。SRがアクティブ-アクティブ構成(ステートフルサービスを有しない)である限り、これは正当性問題を生じさせない。しかしながら、アクティブ-スタンバイ構成の場合には、SRの両方が今やアクティブであることを意味し得、これはトラフィックの途絶問題を引き起こし得る。
【0196】
[00249] 特定のゲートウェイマシンにおいて、ホストマシンのいくつかへのトンネルがダウンするが、ピアのゲートウェイマシンは到達可能のままである場合、部分的なトンネルの障害は、アクティブ-スタンバイモードにおいても問題を生じ得る。この場合、SR間のトンネルが機能しているため、フェイルオーバーは発生しない。アクティブ-アクティブモードでは、ホストマシン(又はローカルシャーシコントローラ)におけるデータパスは、問題なく依然として動作しているトンネルを介してトラフィックをフォワードするための決定を行うことができる。しかしながら、アクティブ-スタンバイモードでは、アクティブなSRへのトンネルがダウンしている場合、MFEは、パケットを処理しないスタンバイのSRへパケットを送信する。同様に、アクティブ-アクティブ及びアクティブ-スタンバイ構成の両方において、ゲートウェイマシンは、物理ルータからのサウスバウンドトラフィックを通過させることができず、従っていくつかの実施形態ではブラックホールされる。
【0197】
[00250] 4. vNICへの物理ルータのダウン
[00251] いくつかの実施形態では、SRが動作する各VMは、物理ルータにパケットを送信しそこから受信するMFEと接続(SRがPLRに属す場合)するための第1のvNIC、そのピアへハートビートメッセージを送信する第2のvNIC、及び、論理ネットワークにパケットを送信しそこから受信する第3のvNICとを用いる。いくつかの実施形態では、いくつか又は全てのこれらのvNICは同一であり得る。例えば、SRは、ハートビートメッセージを送信し、物理ルータと通信し、又はハートビートメッセージを送信し且つ論理ネットワークと通信するために、同一のvNICを用いる。
【0198】
[00252] 何等かの理由により、VMが(物理ルータとの)第1のvNICを失った場合、いくつかの実施形態では、SRはハートビートメッセージの送信を停止する。そういうものとして、一度、PLRのための他のSRをホストするそのピアのVMが、SRからのハートビートメッセージが停止したことを検出すると、これらは、VMがクラッシュしたように、サブセクション1において上述したように、フェイルオーバーのアクションを行う。VMが(ハートビートメッセージのための)第2のvNICを失った場合、ピアのVMは、ハートビートメッセージが来ないことを検出し、停止したSRのIPアドレスの制御をとるための同一のフェイルオーバーのアクションを行う。最後に、VMが(論理ネットワークのトラフィックのための)第3のvNICを失った場合、ハートビートメッセージにおいて状況が示され、ピアが同一のフェイルオーバーの手続きをとることができる。
【0199】
[00253] 5.BGP セッションダウン
[00254] いくつかの場合、(例えばゲートウェイマシン上のMSRプロセスがクラッシュするために)SRのためのBGPセッションがダウンする。BGPプロセスのために適切な再スタートが可能である場合、適切な再スタートのために設定されたタイムアウト期間以内にセッションが再確立される限り、フェイルオーバーのアクションをとる必要はない。MSRプロセス(又は他のBGPモジュール)がいつダウンしたかを検出できるようにするため、いくつかの実施形態は、たとえ状態が変化しなかったとしても、定期的にBGPセッションの全ての状態をリフレッシュするためのプロセスを必要とする。
【0200】
[00255] 一方、適切な再スタートが可能でない、又は再スタートのためのタイムアウト期間が経過した場合、ゲートウェイマシンは、SRがもはや機能性を有していないことを示すためにハートビートメッセージを用いる(例えば、ハートビートメッセージを停止することにより)。ピアのSRの観点から、BGP機能を有しないSRはダウンしたものとして扱われ、上記フェイルオーバーの手順が適用される。
【0201】
[00256] C.フェイルオーバー処理
[00257] 図24は、ピアSRのファイオーバーの場合にSRによって実行される処理2400を概念的に示す。様々な実施形態では、この処理は、(VM又はDPDKベースのデータパス内のVRFのいずれかのための)SRのゲートウェイマシン上で動作するローカルコントロールプレーン、SR自身(エッジVMとして実施される場合)、又はデータパス(DPDKベースのデータパス内のVRFとして実施される場合)のいずれかによって実行され得る。すなわち、処理の実施は異なる種別で異なり得るが、処理2400の動作はSRの説明された両方の種別に適合する。
【0202】
[00258] 図示するように、処理2400はピアのSRが停止したことを判定する(2405において)ことによって開始する。前のサブセクションにおいて示すように、SRは様々な理由、異なる許容能力で停止し得る。例えば、論理ネットワークの通信を可能にするデータセンタ内のトンネル接続性がダウンし、外部の物理ネットワークと通信するSRの能力が利用不可能になり、SRを実施するVMがクラッシュし(SRがそのようなものとして実施される場合)、データパスがクラッシュし、SRをホストするゲートウェイマシンの全体がクラッシュしたり、等する。いくつかの場合(例えばゲートウェイマシンからのトンネル接続性の全てがダウンし、データパスがクラッシュする、等)には、ゲートウェイマシン上のSRの全てが停止したものと考慮され、これらの様々なピアが処理2400又は類似の処理を実行することが理解されるべきである。
【0203】
[00259] ピアSRが停止したと判定された場合、処理2400は(2410において)停止したピアを引き継ぐかを判定する。例えば、停止したピアがアクティブ-スタンバイ構成においてスタンバイSRである場合、アクティブSRは何らアクションをとる必要はない。更に、アクティブ-アクティブ構成については、1つのピアSRのみが停止したSRを引き継ぐ必要がある。上述したように、停止した特定のSRをどのSRが引き継ぐかは、SRの生成時に管理プレーンによって割り当てられるランクに基づいて予め定められる。
【0204】
[00260] SRが停止したSRを引き継ぐ責務が無い場合、処理は終了する。そうでない場合、処理は(2415において)、現在は責務を有する停止したピアによって所有される、サウスバウンドIPアドレスを識別する。アクティブ-アクティブでは、アクティブ-スタンバイモードと比較して異なる状況であり得る。特に、アクティブ-スタンバイモードでは、2つのSRがサウスバウンドインタフェース上のIPアドレスを共有するため、SRは単純に自身のIPアドレスでの動作を引き継ぐ。アクティブ-アクティブモードでは、全てのSRが異なるサウスバウンドのIPアドレスを有する。この場合、引き継ぐ側のSRは現在、停止したSRの元々割り当てられていたIPアドレスと、停止したSRが以前に引き継いだ責務(他のピアSRの障害による)についての、任意の追加的なサウスバウンドインタフェースのIPアドレスとに対する責務を有する。
【0205】
[00261] サウスバウンドインタフェースの各IPアドレスについて、処理2400は(2420において)、SRと、これらの論理ルータのDRと接続する通過論理スイッチへ1つ以上のGARP返信メッセージを送信する。GARPメッセージは、SRの自身のサウスバウンドのMACアドレスを、現在サウスバウンドのIPアドレスと関連付けられている、又は動作2415において識別された複数のIPアドレスとして識別する。これは、識別されたIPアドレスへルーティングされるパケットを停止した送信先へ送信することを避けるため、通過論理スイッチ上の他の構成要素がこれらのARPキャッシュをクリアできるようにする。データセンタの至るところにある多数のゲートウェイマシンとホストマシン上で実施されたDRについては、様々なMFE上のARPキャッシュがクリアできるように、GARP返信がこれらの多数のマシンにブロードキャストされる。
【0206】
[00262] この処理は、処理を実行するSR(又は、そのローカルコントローラシャーシが処理を実行するマシン上のSR)が以前にTLRのスタンバイSRであったかを(2425において)判定する。処理2400は単に概念的なものであり、いくつかの実施形態において動作2425が、全てのTLRのスタンバイSR上でデフォルトで実施されるものであり、そして、特別な判定を行う必要がないことが理解されるべきである。停止したSRが、アクティブ-スタンバイ構成においてアクティブなSRであった場合、スタンバイSRは、以前には停止したSRへ送信されていたサウスバウンドのトラフィックを引き込む責務を有する。
【0207】
[00263] 従って、SRが正式にTLRのスタンバイSRであった場合、処理2400は(2430において)、(いくつかの実施形態では、TLRのみが1つのアップリンクを許可されるので)共有する、停止したピアのノースバウンドのIPアドレスを識別する。処理は、次に(2430において)、SRをPLRのDRと接続する通過論理スイッチへ1つ以上のGARP返信メッセージを送信する。GARPメッセージは、SRの自身のノースバウンドのMACアドレスを、TLRに対して構成されたアップリンクのIPアドレスと現在関連付けられているものとして識別する。これは、PLRのDRがARPキャッシュをクリアできるようにする(より具体的には、データセンタにわたってこのDRを実施する様々なMFEがそれらのARPキャッシュをクリアできるようにする)。その後処理は終了する。
【0208】
[00264] 処理を実行するSRがTLRのスタンバイSRでない場合、処理は(2440において)、SRが以前にPLRのスタンバイSRであったかを判定する。再び、いくつかの実施形態では、SR又は処理2400を実行するローカルコントローラシャーシによる特別な判定は現になされない、ことが理解されるべきである。このSRがPLRのためのスタンバイSRであった場合、SRは、その外部物理ルータへのプレフィックスのアドバタイズを(2445において)開始する。アクティブ-アクティブの場合には、SRは、ECMPトラフィックを引き込むために、既にこれらのプレフィックスをアドバタイズしている。しかしながら、アクティブ-スタンバイ構成の場合、スタンバイはプレフィックスをアドバタイズせず、代わりに外部ルータからの経路を受信するだけである。しかしながら、サウスバウンドトラフィックを引き込むために、新たなアクティブ(以前はスタンバイ)SRはプレフィックスのアドバタイズを開始する。その後処理は終了する。
【0209】
[00265] VII.電子システム
[00266] 上述の多くの特徴及び適用例は、コンピュータで読み出し可能な記録媒体(コンピュータで読み出し可能な媒体としても参照される)上に記録された命令の組として特定されるソフトウェア処理として実施され得る。これらのプログラムの命令が1つ以上の処理ユニットによって実行される場合(例えば、1つ以上のプロセッサ、プロセッサのコア、又は他の処理ユニット)、これらのプログラムの命令は、命令に示されているアクションを(複数の)処理ユニットに実行させる。コンピュータで読み出し可能なメディアの例は、これに限定されないが、CD-ROM、フラッシュドライブ、RAMチップ、ハードドライブ、EPROM等を含む。コンピュータで読み出し可能なメディアは、キャリア波及び、無線又は有線接続を通過する電子信号を含まない。
【0210】
[00267] 本明細書では、「ソフトウェア」の語は、読出専用メモリにあるファームウェア、又は磁気記録に格納されたアプリケーションを含み、プロセッサによる処理のためにメモリに読み込むことができる。また、いくつかの実施形態では、複数のソフトウェア発明は、個別のソフトウェア発明を維持する一方で、より大きなプログラムのサブ部分として実施されてもよい。いくつかの実施形態では、複数のソフトウェア発明はまた、個別のプログラムとして実施されてもよい。最後に、ここで説明されるソフトウェア発明をともに実施する個別のプログラムの任意の組み合わせは、発明の範囲内である。いくつかの実施形態では、ソフトウェアプログラムが、1以上の電子システムを動作させるためにインストールされる場合、1以上の特定の機械的実施を定義し、ソフトウェアプログラムの動作を実行する。
【0211】
[00268] 図25は、本発明のいくつかの実施形態が実施される電子システム2500を概念的に示す。電子システム2500は、上述した任意のコントロール、仮想化、又はオペレーティングシステムアプリケーションを実行するために用いることができる。電子システム2500は、コンピュータ(例えば、デスクトップコンピュータ、パーソナルコンピュータ、タブレットコンピュータ、サーバコンピュータ、メインフレーム、ブレードコンピュータ等)、電話、PDA、又は任意の他の種類の電子デバイスであり得る。そのような電子システムは、様々な種別のコンピュータで読み出し可能なメディア、及び様々な他の種別のコンピュータで読み出し可能なメディアに対するインタフェースを含む。電子システム2500は、バス2505、処理ユニット2510、システムメモリ2525、読出専用メモリ2530、永続的ストレージデバイス2535、入力デバイス2540、及び出力デバイス2545を含む。
【0212】
[00269] バス2505は、電子システム2500の多くの内部デバイスを通信可能に接続する、全てのシステムバス、周辺バス、及びチップセットバスを集約的に表す。例えば、バス2505は、処理ユニット2510を、読出専用メモリ2530、システムメモリ2525、及び永続的ストレージデバイス2535に通信可能に接続する。
【0213】
[00270] 処理ユニット2510は、本発明の処理を実行するために、これらの様々なメモリユニットから実行する命令及び処理するデータを検索する。処理ユニットは、異なる実施形態において単一のプロセッサ又はマルチコアプロセッサであり得る。
【0214】
[00271] 読出専用メモリ(ROM)2530は、処理ユニット2510及び電子システムの他のモジュールによって必要とされる静的データ及び命令を記録する。永続的ストレージデバイス2535は、一方で、読出・書込メモリデバイスである。このデバイスは、電子システム2500がオフの場合であっても命令及びデータを記録する不揮発性メモリユニットである。本発明のいくつかの実施形態は、(磁気又は光学ディスク、及び対応するディスクドライブなどの)マスストレージデバイスを永続的ストレージデバイス2535として用いる。
【0215】
[00272] 他の実施形態は、(フロッピーディスク、フラッシュドライブ等のような)取り外し可能なストレージデバイスを永続的ストレージデバイスとして用いる。永続的ストレージデバイス2535のように、システムメモリ2525は、読出・書込メモリデバイスである。しかしながら、ストレージデバイス2535とは異なり、システムメモリは、ランダムアクセスメモリのような揮発性の読出・書込メモリである。システムメモリは、プロセッサがランタイムにおいて必要とする、いくつかの又は全ての命令及びデータを格納し得る。いくつかの実施形態では、本発明の処理は、システムメモリ2525、永続的ストレージデバイス2535、及び/又は読出専用メモリ2530に記録される。処理ユニット2510は、いくつかの実施形態の処理を実行するために、これらの様々なメモリユニットから実行する命令及び処理するデータを検索する。
【0216】
[00273] バス2505はまた、入力デバイス2540と出力デバイス2545に接続する。入力デバイスは、ユーザが情報を通信し、電子システムへのコマンドを選択できるようにする。入力デバイス2540は、アルファベット表記のキーボードとポインティングデバイス(「カーソル制御デバイス」ともいわれる)とを含む。出力デバイス2545は、電子システムによって生成された画像を表示する。出力デバイスはプリンタ、真空管(CRT)又は液晶ディスプレイ(LCD)などの表示デバイスを含む。いくつかの実施形態は、入力及び出力デバイスの両方として機能するタッチスクリーンのようなデバイスを含む。
【0217】
[00274] 最後に、図25に示すように、バス2505はまた、電子システム2500をネットワークアダプタ(不図示)を介してネットワーク2565に接続する。このようにして、コンピュータは、(ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、イントラネット、インターネットなどのネットワークのネットワーク、などのコンピュータのネットワークの一部になることができる。電子システム2500の任意又は全ての構成要素は、本発明に関連して用いられ得る。
【0218】
[00275] いくつかの実施形態は、マイクロプロセッサ、コンピュータプログラムの命令を機械で読み出し可能な又はコンピュータで読み出し可能な媒体(或いはコンピュータで読み出し可能なストレージメディア、機械で読み出し可能な媒体、又は機械で読み出し可能なストレージメディアとして参照される)に格納した、ストレージ及びメモリのような電子構成要素を含む。コンピュータで読み出し可能な媒体のいくつかの例は、RAM、ROM、読出専用コンパクトディスク(CD-ROM)、記録可能コンパクトディスク(CD-R)、再書込可能コンパクトディスク(CD-RW)、読出専用デジタル多用途ディスク(例えばDVD-ROM、デュアルレイヤDVD-ROM)、様々な記録可能/再書込可能DVD(DVD-RAM、DVD-RW、DVD+RW等)、フラッシュメモリ(例えばSDカード、ミニSDカード、マイクロSDカード等)、磁気及び/又はソリッドステートハードドライブ、読出専用及び記録可能Blu-Ray(登録商標)ディスク、超高密度光ディスク、任意の他の光又は磁気メディア、及びフロッピーディスクを含む。コンピュータで読み出し可能な媒体は、少なくとも1つの処理ユニットによって実行可能であり、様々な動作を実行するための命令の組を含む、コンピュータプログラムを記録する。コンピュータプログラム又はコンピュータコードの例は、コンパイラによって生成されたような機械コードと、コンピュータ、電子構成要素、又はインタプリタを用いるマイクロプロセッサによって実行される、より高レベルなコードを含んだファイルとを含む。
【0219】
[00267] 上述の説明は、ソフトウェアを実行するマイクロプロセッサ又はマルチコアプロセッサを主に参照したが、いくつかの実施形態は、特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)のような、1つ以上の集積回路によって実行される。ある実施形態では、そのような集積回路は回路自体に格納された命令を実行する。
【0220】
[00277] 本明細書において使用されるように、「コンピュータ」、「サーバ」、「プロセッサ」及び「メモリ」の語は、全て電子的又は他の技術的デバイスを参照する。これらの語は、人及び人のグループを含まない。本明細書の目的のため、表示及び表示するのは電子デバイス上に表示することを意味する。本明細書において使用されるように、「コンピュータで読み出し可能な媒体」、「コンピュータで読み出し可能なメディア」及び「機械で読み出し可能な媒体」の語は、全体として、コンピュータによって読み出し可能な形式の情報を記録する、有体物、物理的なオブジェクトに制限される。これらの語は、任意の無線信号、有線でダウンロードされた信号、及び任意の他のその場限りの信号を含まない。
【0221】
[00278] 本明細書は、終始、仮想マシン(VM)を含む、計算環境及びネットワーク環境を参照している。しかしながら、仮想マシンは単なるデータ計算ノード(DCN)又はデータ計算エンドノードの一例であり、アドレス可能なノードとしても参照される。DCNは、非仮想化物理ホスト、仮想マシン、ハイパーバイザや別のオペレーティングシステムを必要とすること無くホストオペレーティングシステム上で動作するコンテナ、及びハイパーバイザカーネルネットワークインタフェースモジュールを含み得る。
【0222】
[00279] いくつかの実施形態では、VMは、仮想化ソフトウェア(例えばハイパーバイザ、仮想マシンモニタ等)によって仮想化されたホストのリソースを用いて、ホスト上の自身のゲストオペレーティングシステムとともに動作する。テナント(すなわちVMのオーナー)は、どのアプリケーションをゲストオペレーティングシステム上で動作させるか選択することができる。一方、いくつかのコンテナは、ハイパーバイザ又は別のゲストオペレーティングシステムを必要とせずに、ホストオペレーティングシステム上で動作する構成物である。いくつかの実施形態では、ホストオペレーティングシステムはネームスペースを使用して、コンテナを互いに個別化し、従って、異なるコンテナ内で動作するアプリケーションの異なるグループの、オペレーティングシステムレベルのセグメンテーションを提供する。このセグメンテーションは、システムハードウェアを仮想化するハイパーバイザ仮想化環境で提供されるVMセグメンテーションと類似し、従って、異なるコンテナ内で動作するアプリケーションの異なるグループを個別化する、仮想化の形式としてみることができる。このようなコンテナはVMより軽量である。
【0223】
[00280] いくつかの実施形態では、ハイパーバイザ・カーネル・ネットワーク・インタフェース・モジュールは、ハイパーバイザ・カーネル・ネットワーク・インタフェースを有するネットワークスタックと受信/送信スレッドを含む、非VM・DCNである。ハイパーバイザ・カーネル・ネットワーク・インタフェース・モジュールの一例は、VMware社のESXi(商標登録)ハイパーバイザの一部であるvmknicモジュールである。
【0224】
[00281] 本明細書はVMを参照したが、所与の例は、物理ホスト、VM、非VMコンテナ、及びハイパーバイザ・カーネル・ネットワーク・インタフェース・モジュールを含む、任意の種別のDCNであってよい。事実、ネットワークの例は、いくつかの実施形態では異なる種別のDCNの組み合わせを含んでよい。
【0225】
[00282] 本発明は多数の特定の詳細を参照して説明されたが、当業者は、本発明が発明の思想から離れることのない他の特定の形式で実施可能であることを認識する。加えて、多数の図(図11、12及び14を含む)は処理を概念的に示すものである。これらの処理の特定の動作は、図示及び説明された正確な順序で実行されないかもしれない。特定の動作は、1つの連続する動作の流れで実行されないかもしれず、異なる特定の動作が異なる実施形態において実行され得る。更に、処理はいくつかの副処理(sub-process)を用いて、又は大きなマクロ処理の部分として実施され得る。従って、当業者は、発明が上述の詳細に限定されず、むしろ添付の請求項の範囲によって定義されることを理解する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14A
図14B
図15A
図15B
図16A
図16B
図17
図18
図19
図20
図21
図22
図23
図24
図25
【手続補正書】
【提出日】2022-10-28
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
論理ネットワークにおける論理ルータのゲートウェイ構成要素を定義する方法であって、前記方法は、
前記論理ルータの少なくとも2つの集中化ゲートウェイ構成要素を定義して、前記集中化ゲートウェイ構成要素のそれぞれを異なるゲートウェイコンピューティングデバイスに割り当てることであって、前記集中化ゲートウェイ構成要素は、前記論理ネットワークと、前記論理ネットワークの外部のネットワークとの間のトラフィックを処理する、ことと、
第1のゲートウェイコンピューティングデバイスに割り当てられた、前記集中化ゲートウェイ構成要素のうちの第1の集中化ゲートウェイ構成要素に対して、(i)前記論理ネットワークから受信したトラフィックの第1の組を前記外部のネットワークにフォワードする、前記第1の集中化ゲートウェイ構成要素のための第1のインタフェースと、(ii)前記論理ネットワークから受信したトラフィックの第2の組を、第2のゲートウェイコンピューティングデバイスに割り当てられた、前記集中化ゲートウェイ構成要素のうちの第2の集中化ゲートウェイ構成要素にフォワードする、前記第1の集中化ゲートウェイ構成要素のための第2のインタフェースと、を定義することとを含む、方法。
【請求項2】
請求項1に記載の方法であって、前記第1の集中化ゲートウェイ構成要素は、トラフィックの前記第1の組に対するサービスの第1の組と、トラフィックの前記第2の組に対する異なるサービスの第2の組を実行する、方法。
【請求項3】
請求項1に記載の方法であって、前記第1の集中化ゲートウェイ構成要素と前記第2の集中化ゲートウェイ構成要素とは前記外部のネットワークへの異なる接続性を有する、方法。
【請求項4】
請求項1に記載の方法であって、前記第2の集中化ゲートウェイ構成要素は、トラフィックの前記第2の組を前記外部のネットワークにフォワードする、方法。
【請求項5】
請求項1に記載の方法であって、前記第1のゲートウェイコンピューティングデバイスは、トラフィックの前記第2の組を前記第2のゲートウェイコンピューティングデバイスにトンネルする、方法。
【請求項6】
請求項1に記載の方法であって、更に、前記第1のゲートウェイコンピューティングデバイスが前記第1の集中化ゲートウェイ構成要素を実行するように構成し、前記第2のゲートウェイコンピューティングデバイスが前記第2の集中化ゲートウェイ構成要素を実行するように構成することを含む、方法。
【請求項7】
請求項1に記載の方法であって、更に、論理ルータのための構成を受信することを含み、前記構成は、少なくとも2つのアップリンクインタフェースを特定し、前記集中化ゲートウェイ構成要素のために定義された前記第1のインタフェースは、前記第1の集中化ゲートウェイ構成要素に割り当てられた、前記アップリンクインタフェースのうちの第1のアップリンクインタフェースに対応し、前記集中化ゲートウェイ構成要素のために定義された前記第2のインタフェースは、前記第2の集中化ゲートウェイ構成要素に割り当てられた、前記アップリンクインタフェースのうちの第2のアップリンクインタフェースに対応する、方法。
【請求項8】
請求項1に記載の方法であって、更に、前記第2の集中化ゲートウェイ構成要素に対して、(i)前記論理ネットワークから受信したトラフィックの第3の組を前記外部のネットワークにフォワードする、前記第2の集中化ゲートウェイ構成要素のための第3のインタフェースと、(ii)前記論理ネットワークから受信したトラフィックの第4の組を、前記第1の集中化ゲートウェイ構成要素にフォワードする、前記第2の集中化ゲートウェイ構成要素のための第4のインタフェースと、を定義することを含み、
前記第1の集中化ゲートウェイ構成要素は、トラフィックの前記第1の組に対するサービスの第1の組と、トラフィックの前記第2の組に対する異なるサービスの第2の組を実行し、
前記第2の集中化ゲートウェイ構成要素は、トラフィックの前記第4の組に対するサービスの前記第1の組と、トラフィックの前記第3の組に対するサービスの前記第2の組を実行する、方法。
【請求項9】
請求項1に記載の方法であって、更に、
(i)前記第1のゲートウェイコンピューティングデバイス及び前記第2のゲートウェイコンピューティングデバイスと、(ii)前記論理ネットワークに接続されたデータ計算ノードも動作する複数のコンピューティングデバイスとを含むコンピューティングデバイスの組上で動作する複数の管理対象フォワーディング要素による実施のために、前記論理ルータの分散化ルーティング構成要素を定義することと、
前記論理ルータの前記分散化ルーティング構成要素と論理的にトラフィックを交換するための、前記第1の集中化ゲートウェイ構成要素のための第3のインタフェースを定義することと、を含む方法。
【請求項10】
請求項1に記載の方法であって、更に、前記第1のゲートウェイコンピューティングデバイス上の前記第1の集中化ゲートウェイ構成要素を前記外部のネットワークと動的ルーティング情報を交換するように構成することであって、動的ルーティング情報の前記交換を介して前記第1の集中化ゲートウェイ構成要素によって学習された経路は、前記第1の集中化ゲートウェイ構成要素のルーティングテーブルに組み込まれ、宛先アドレスの第1の組を有するデータトラフィックが前記第1のインタフェースを介して出力されるように特定する、方法。
【請求項11】
請求項10に記載の方法であって、前記第2のゲートウェイコンピューティングデバイス上の前記第2の集中化ゲートウェイ構成要素も、前記外部のネットワークと動的ルーティング情報を交換し、動的ルーティング情報の前記交換を介して前記第2の集中化ゲートウェイ構成要素によって学習された経路は、前記第2の集中化ゲートウェイ構成要素の前記ルーティングテーブルに組み込まれ、宛先アドレスの第2の組を有するデータメッセージが前記第2のインタフェースを介して出力されるように特定する、方法。
【請求項12】
請求項10に記載の方法であって、
前記第1の集中化ゲートウェイ構成要素は、集中化ネットワークコントローラへ前記学習された経路を渡し、
前記集中化ネットワークコントローラは、前記論理ルータの分散化ルーティング構成要素のルーティングテーブルに前記学習された経路を組み込む、方法。
【請求項13】
論理ルータのゲートウェイ構成要素を定義する方法であって、前記方法は、
前記論理ルータのために構成される複数のアップリンクのそれぞれについて、前記アップリンクを異なるゲートウェイマシンに割り当てることと、
前記アップリンクのうちの第1のアップリンクに対して、前記第1のアップリンクが割り当てられた第1のゲートウェイコンピューティングデバイス上での実施のために、前記論理ルータの第1の集中化ゲートウェイ構成要素を定義することと、
前記第1のアップリンクに従って構成される前記第1の集中化ゲートウェイ構成要素のための第1のローカルインタフェースを定義することであって、前記第1の集中化ゲートウェイ構成要素のための前記第1のローカルインタフェースは、前記論理ルータの前記実施より外部のネットワークへトラフィックをフォワードする、ことと、
第2のアップリンクに従って構成される前記第1の集中化ゲートウェイ構成要素のための第2のインタフェースを定義することであって、前記第2のインタフェースは、第2の集中化ゲートウェイ構成要素が前記外部のネットワークへ前記トラフィックをフォワードするように、前記第2のアップリンク構成に従って処理されるトラフィックを、第2のゲートウェイコンピューティングデバイス上で実施される前記第2の集中化ゲートウェイ構成要素へリダイレクトする、こととを含む方法。
【請求項14】
請求項13に記載の方法であって、更に、前記第1の集中化ゲートウェイ構成要素を、前記外部のネットワークと動的ルーティング情報を交換するように構成することを含み、前記動的ルーティング情報の前記交換を介して前記第1の集中化ゲートウェイ構成要素によって学習された経路は、前記第1の集中化ゲートウェイ構成要素のルーティングテーブルに組み込まれる、方法。
【請求項15】
請求項14に記載の方法であって、前記第2の集中化ゲートウェイ構成要素も、前記外部のネットワークと動的ルーティング情報を交換し、前記第2の集中化ゲートウェイ構成要素によって学習された経路は、前記第1の集中化ゲートウェイ構成要素の前記ルーティングテーブルに組み込まれる、方法。
【請求項16】
請求項15に記載の方法であって、前記第1の集中化ゲートウェイ構成要素によって学習された経路は、前記第1の集中化ゲートウェイ構成要素の前記ルーティングテーブルにおいて、前記第2の集中化ゲートウェイ構成要素によって学習された経路より短い管理上の距離を有する、方法。
【請求項17】
請求項15に記載の方法であって、前記第1の集中化ゲートウェイ構成要素によって学習された経路は、前記第1の集中化ゲートウェイ構成要素によって、前記第2の集中化ゲートウェイ構成要素によって学習された経路よりも選択される、方法。
【請求項18】
請求項13に記載の方法であって、更に、複数のコンピューティングデバイスにおける複数の管理フォワーディング要素による実施のために、前記論理ルータの分散化ルーティング構成要素を定義することを含み、前記複数のコンピューティングデバイスは、前記アップリンクが割り当てられる、少なくとも前記ゲートウェイコンピューティングデバイスを含む、方法。
【請求項19】
請求項18に記載の方法であって、前記第1の集中化ゲートウェイ構成要素は、動的ルーティングプロトコルを用いて前記外部のネットワークからルーティング情報を学習し、前記分散化ルーティング構成要素のルーティングテーブルへの組み込みのために前記ルーティング情報を提供する、方法。
【請求項20】
請求項19に記載の方法であって、
前記第1の集中化ゲートウェイ構成要素は、前記分散化ルーティング構成要素の前記ルーティングテーブルへの組み込みのために、集中化ネットワークコントローラへ前記学習された経路を渡し、
前記集中化ネットワークコントローラは、前記ルーティングテーブルを、前記分散化ルーティング構成要素を実施する前記複数のコンピューティングデバイスに分配する、方法。
【請求項21】
請求項18に記載の方法であって、更に、前記第1の集中化ゲートウェイ構成要素のための第3のインタフェースを定義することを含み、前記第1の集中化ゲートウェイ構成要素のための前記第3のインタフェースは、前記分散化ルーティング構成要素とトラフィックを交換する、方法。
【請求項22】
請求項13に記載の方法であって、更に、
前記アップリンクのうちの第2のアップリンクに対して、前記第2のアップリンクが割り当てられる前記第2のゲートウェイコンピューティングデバイス上での実施のために、前記論理ルータの前記第2の集中化ゲートウェイ構成要素を定義することと、
前記第2のアップリンクに従って構成される前記第2の集中化ゲートウェイ構成要素のための第1のローカルインタフェースを定義することであって、前記第2の集中化ゲートウェイ構成要素のための前記第1のローカルインタフェースは、前記外部のネットワークへトラフィックをフォワードする、ことと、
前記第1のアップリンクに従って構成される前記第2の集中化ゲートウェイ構成要素のための第2のインタフェースを定義することであって、前記第2のインタフェースは、第1の集中化ゲートウェイ構成要素が前記外部のネットワークへ前記トラフィックをフォワードするように、前記第1のアップリンク構成に従って処理されるトラフィックを、前記第1の集中化ゲートウェイ構成要素へリダイレクトする、こととを含む方法。
【請求項23】
請求項13に記載の方法であって、前記第1のアップリンクと前記第2のアップリンクは、(i)構成された異なるサービスポリシ及び(ii)前記外部のネットワークへの異なるL3接続性、の少なくとも1つを有する、方法。
【請求項24】
少なくとも1つの処理ユニットで実行されると、請求項1から23のいずれか1項に記載の方法を実施するコンピュータプログラム。
【請求項25】
コンピューティングデバイスであって、
処理ユニットの組と、
前記処理ユニットの少なくとも1つによって実施されると、請求項1から23のいずれか1項に記載の方法を実施するプログラムを格納する機械可読媒体と、を含むコンピューティングデバイス。
【外国語明細書】