JP6080313B2 - 仮想ネットワークを実装及び管理するシステム及び方法 - Google Patents

仮想ネットワークを実装及び管理するシステム及び方法 Download PDF

Info

Publication number
JP6080313B2
JP6080313B2 JP2014524150A JP2014524150A JP6080313B2 JP 6080313 B2 JP6080313 B2 JP 6080313B2 JP 2014524150 A JP2014524150 A JP 2014524150A JP 2014524150 A JP2014524150 A JP 2014524150A JP 6080313 B2 JP6080313 B2 JP 6080313B2
Authority
JP
Japan
Prior art keywords
packet
network
virtual
node
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014524150A
Other languages
English (en)
Other versions
JP2014529926A (ja
Inventor
ミハイ ドミトリウ、ダン
ミハイ ドミトリウ、ダン
エフ.ブイ. レングレット、ロマン
エフ.ブイ. レングレット、ロマン
カンディア、ジュゼッペ デ
カンディア、ジュゼッペ デ
エル. マンデルソン、ジェイコブ
エル. マンデルソン、ジェイコブ
Original Assignee
ミドクラ エスエーアールエル
ミドクラ エスエーアールエル
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ミドクラ エスエーアールエル, ミドクラ エスエーアールエル filed Critical ミドクラ エスエーアールエル
Publication of JP2014529926A publication Critical patent/JP2014529926A/ja
Application granted granted Critical
Publication of JP6080313B2 publication Critical patent/JP6080313B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • H04L43/55Testing of service level quality, e.g. simulating service usage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Description

本開示はネットワーキングに関し、より詳しくは、仮想ネットワークを実装及び管理するシステム及び方法に関する。
クラウドベースのコンピューティングが始まってから、サービスプロバイダの新たな需要が生まれた。サービスプロバイダは、クライアントそれぞれに対して、物理的なネットワークから切り離して、ホストを追加したりトポロジーを変更したりする機能を備えた仮想ネットワークを提供しようと考えている。ネットワークの仮想化によって、サービスプロバイダは、仮想ルータ及び仮想スイッチを、ハードウェアを変更せずに変更することで変更可能な、クライアント構成可能なネットワークトポロジーを作成することができる。さらに仮想ルータを利用することで、クライアントデータを隔離して、セキュリティ及び従量式課金を行うことができる。これらの特徴の一部は、専用ハードウェアで提供することもできるが、高くつく。既存のネットワークに仮想ネットワークを重ねることができ、仮想ネットワークのトポロジーを、基礎となるネットワークとは独立して変更することができるツールに対する需要は依然としてある。
ここに、物理的なネットワークに重ねる仮想ネットワークを利用したパケットルーティングを促すシステム及び方法を開示する。様々な実施形態で、本開示は、OSIモデルの複数のレイヤ(L2(レイヤ2、つまりリンクレイヤ)、L3(レイヤ3、つまりネットワークレイヤ)、及びL4(レイヤ4、つまりトランスポートレイヤ))のネットワークエレメントのフレキシブルなインターコネクトを提供する。ネットワークエレメントは、仮想L2スイッチとL3ルータとインターコネクトしてよい。仮想L2ネットワークのパケットは、トンネリングを利用して、既存のL3ネットワークを変更せずに、該L3ネットワークでトランスポートすることができる。様々なトンネリング法(たとえば、GRE, Ethernet(登録商標) over IP, VXLan, MPLS over IP、または、CAPWAP)を利用することができる。仮想L3ルータによってルーティングされるインターネットプロトコル(IP)パケットは、既存のL3ネットワークを変更せずに、該既存のL3ネットワークでトランスポートすることができる。
一実施形態では、仮想L2スイッチと仮想L3ルータとは、これらが接続するエレメントからは、物理的なL2スイッチと物理的なL3ルータとであるように見えるが、物理的なL2及びL3ネットワークエレメントを利用して実装することはできない。それぞれが、任意の数のネットワークエレメントに仮想的に接続された任意の数の仮想ネットワークエレメント(スイッチまたはルータ)が存在していてよい。1つの構成においては、各仮想L2スイッチが、任意の数の他のL3ルータに接続されていてよい1つの仮想L3ルータに接続されている。
システムの仮想L2スイッチ及び仮想L3ルータは、地理的距離に関わらず、多数のネットワークエレメントを接続することができる。システムは、物理的エレメントまたは仮想的エレメントを接続して、たとえば、サーバコンピュータ上でエミュレーションされている仮想マシンを、インターネットに接続されている物理的なルータに接続することができる。
複数の仮想ルータ及びスイッチを備える仮想ネットワークを作成及び管理する方法及びシステムが提供される。方法及びシステムはさらに、後で詳述するように、L3/L4ファイアウォールサービス、ソース、及び/または、デスティネーションネットワークアドレス変換サービス、及び、ロード・バランシングを提供することができる。ここには、基礎となるネットワークの第1のノードでパケットを受信する第2のノードに第1のノードからパケットをルーティングして、仮想ルーティングテーブルにアクセスして仮想ネットワークのトポロジーのパケットの次のホッピングを決定して、次のホッピングは、内向きの(論理)ポートまたは外向きの(実体)ポートであり、次のホッピングがネットワークの第2のノードの外向きポートであると決定されるまで、後続する仮想ルーティングテーブルに順次アクセスを続け、パケットを、第2のノードの外向きポートへと、基礎となるネットワークを介して送信する方法を開示する。仮想ルーティングテーブルにアクセスしてパケットの次のホッピングを決定する段階は、さらに、各仮想ルーティングテーブルのルックアップを実行する段階を含み、ルックアップテーブルは、パケットの次のホッピングデータを含んでいてよい。
一実施形態では、ネットワークの第1のノードが、外部ネットワークにアクセスするよう構成されており、ネットワークの第2のノードが、仮想マシンをホストするよう構成されている。方法は、さらに、仮想ネットワークの少なくとも1つのホッピングにつき、パケットに対してルーティング前の修正及び/またはルーティング後の修正を行う段階を含む。一実施形態では、パケットの次のホッピングは、ソースアドレス及び/またはデスティネーションアドレスから決定される。加えて、ルーティング前の処理及びルーティング後のプロセスは、ソースアドレス、ソースポート、デスティネーションアドレス、及び/または、デスティネーションポートを利用して、パケットの所望の修正または変換を決定してよい。方法はさらに、基礎となるネットワークの複数のノードに、分散された状態で、少なくとも1つの仮想ルーティングテーブルを格納する段階を含んでよい。様々な実施形態で、基礎となるネットワークはEthernet(登録商標)ネットワーク、プライベートIPネットワーク、パブリックIPネットワーク、または、ノード間の接続を提供するその他のネットワークを含んでよい。
さらに、パケットをルーティングする方法は、第1のノードでフローのパケットを受信する段階と、フローテーブルにアクセスして、パケットが既存のフロールールに一致しないと決定する段階と、パケットを決定エンジンに送信する段階と、複数のノードがアクセス可能な共有データベースに格納されている仮想ネットワークトポロジーにアクセスする段階と、パケットのフロールールを作成する段階と、フロールールをフローテーブルに送信する段階とを備える方法が開示される。フロールールを作成する段階は、さらに、ネットワークテナントが構築する仮想トポロジーに基づいてネットワークのパケットのルーティングシーケンスを決定する段階を含んでよい。
さらに、フロー設定可能なスイッチをもつエッジノードのシーケンス番号をもつFINパケットを受信する段階と、フロー設定可能なスイッチのパケットに対応するフロールールを特定する段階と、削除するフロールールを特定して、共有データベースに、分散された状態に、特定されたフロールールを送信する段階と、対応するフロールールに基づいてパケットを通信する段階とを備える、フローエントリを削除するためのステートフル(stateful)接続トラッキング方法が開示される。実施形態では、システムは、TCP接続ステートマシンをシミュレーションして、その状態を共有データベースに維持する手段を提供する。
実施形態では、フローは、TCP接続のインバウンドフロー及びアウトバウンドフローであってよい。方法はさらに、FINパケットに対応するACKパケットを受信すると、特定されたフローを削除する段階を含んでよい。一実施形態では、方法はさらに、特定されたフローに対応して、分散された状態で格納されている反対方向のフローを特定する段階と、反対方向のフローを削除するものと特定する段階と、FINパケットに対応するACKパケットを受信すると、特定されたフローと反対方向のフローとを削除する段階とを備える。
別の実施形態では、デスティネーションネットワークアドレス変換を実行する方法が、第1のノードで第1のパケットを受信する段階であって、第1のパケットがデスティネーションアドレスを有する、段階と、第1のパケットに対応している第1のフロールールを作成する段階であって、第1のフロールールは、仮想ネットワークトポロジーの複数の仮想デバイスを横断するパケットに行われる修正の累積を含む、段階と、第1のパケットに第1のフロールールを適用する段階と、第1のパケットを受けて、第2のノードで第2のパケットを受信する段階であって、第2のパケットはソースアドレスを有する、段階と、第2のパケットに対応している第2のフロールールを作成する段階と、分散されている状態から第1のフローにアクセスして、第2のパケットのソースアドレスにデスティネーションネットワークアドレス変換を適用する段階と、を備える。方法はさらに、第1のパケットを転送する前に、第1のフロールールが分散された状態で格納されるまで待って、第1のフロールールが分散された状態に格納されるまで、第2のパケットが受信されないようにする段階を備える。一実施形態では、第1のパケット及び第2のパケットが、TCP接続に対応している。別の実施形態では、方法がさらに、基礎となるネットワークリソースのロード・バランシングを行うロード・バランシング・アルゴリズムを適用する段階を備える。
フローを無効化する方法の一実施形態を示す。
MACを学習する方法の一実施形態を示す。
MACを学習しない方法の一実施形態を示す。
接続をトラッキングする方法の一実施形態を示す。
VPN管理のためのシステムを物理的に示す。
VPN管理のための別のシステムを物理的に示す。
サービスプロバイダのIP構成に、インターネット等の一般的なネットワークに、または該一般的なネットワークから、パケットをルーティングするシステムが利用するサーバコンピュータの一例を示す。
物理的なネットワークの一例を示す。
図8の物理的なネットワークに重ねることができる仮想ネットワークの一例を示す。
仮想ルータからなる仮想トポロジーでパケットをルーティングするエッジコネクタで実行されるプロセスを示す。
仮想ルータ及び仮想スイッチからなる仮想トポロジーでパケットをスイッチ及びルーティングするエッジコネクタで実行されるプロセスを示す。
図11のプロセスの続きである。
仮想ネットワークの一実施形態を示す。
物理的なネットワークに重ねられる図13の仮想ネットワークを示す。
概して図1から図14を参照して、開示するシステム及び方法の実施形態は、仮想ネットワークを実装及び管理し、ソフトウェアが定義するネットワークソリューションを提供することができるコンピューティングシステムに関している。開示されているシステム及び方法は、ネットワークを仮想化して、クラウドコンピューティングシステムの効果を向上させつつ、物理的なネットワークの複雑性及び関連するメンテナンスコストを低減させることができるソフトウェア・アブストラクション・レイヤを提供する。
様々な実施形態では、基礎となるネットワークの第1のノードの第1のネットワークインタフェースに到着するパケットを受信することを含む、コンピューティング方法が開示される。第1のネットワークインタフェースは、第1のノード上のハードウェアまたはソフトウェアに実装されてよい。決定エンジンを呼び出して、パケットの処理法を決定することができる。一態様では、パケット及びパケットがネットワークに到着したネットワークインタフェースの識別情報(identification)を、決定エンジンに送って、処理を促す。決定エンジンは、パケットが、パケットが遭遇する複数の仮想ネットワークデバイスそれぞれを含む仮想ネットワークトポロジーを横断する方法をシミュレーションしてよい。パケットが仮想ネットワーク経由でデバイス間を通過する方法をシミュレーションすることに加えて、決定エンジンは、さらに、仮想デバイスそれぞれがパケットに影響を与える(たとえばパケットプロトコルヘッダを修正することにより)方法をシミュレーションしてよい。シミュレーション結果に基づいて、システムは、決定された修正のそれぞれまたは修正の累積を適用するパケットを処理して、パケットがネットワークのノードの1つのネットワーインタフェースから発行されるようにしてよく、パケットを発行する特定のネットワークインタフェースは、決定エンジンのシミュレーション中に決定されたものである。
仮想ネットワークトポロジーによるそれぞれのステップにおいて、決定エンジンは、パケットを一連のデバイスで処理することができる方法を決定する。一例として、決定エンジンは、パケットをドロップ(drop)したり無視したりすると決定してよい。パケットが、システムが、処理ができなくなった通信またはフローに関連付けられているときに、パケットがドロップされる。他の例としては、仮想デバイスが、受信したタイプのパケットを処理するための十分な命令を持たないために、パケットがドロップされてもよい。こうしなければ、デバイスは、あるパケットを特定のデスティネーションにルーティングできなくなることが想定される。パケットの送信者に、パケットがデスティネーションに到達できなかったことを警告するためのエラーメッセージまたはその他の応答を提供することができる。
多くのパケットについて、決定エンジンは、パケットを、第2のネットワークインタフェースに対応している仮想ポートから発行すべきであると決定する。第2のネットワークインタフェースは、パケットのデスティネーション及びマッピングをホストする仮想ポートに応じて、第1のノードまたは基礎となるネットワークの第2もしくは別のノードにあってよい。パケットが第2のノードの第2のネットワークインタフェースに配信される場合、決定エンジンは、パケットを処理する方法を決定して、次に、パケットを基礎となるネットワークによって第2のノードに配信して、第2のネットワークインタフェースによって発行させる。
複数の実施形態では、パケットのプロトコルヘッダが、第2のネットワークインタフェースに配信される前に修正されてよい。プロトコルヘッダの修正は、後でより詳しく説明するように、ネットワークアドレス変換、トンネリング、VPN、または他の特徴を提供してよい。
一実施形態では、方法が、基礎となるネットワークのノードのノードアドレスに対するノード識別子のマップを維持することを含む。ノード識別子は、基礎となるネットワークにパケットをルーティングするために、個々のノードを区別するために利用することができる。第1のノードから第2のノードにパケットを配信するために、パケットは、トンネリングプロトコルパケットのペイロード(たとえばEthernet(登録商標)+IP+GRE等)として転送されてよい。実施形態では、トンネリングプロトコルパケットは、第2のネットワークインタフェースのグローバル識別子をエンコードするトンネリングキーを有してよい。グローバル識別子は、各ネットワークインタフェースが一意に識別可能なように、ネットワーク内で一意であってよい。これに対して、ローカル識別子は、ノード内、または、ネットワークのサブセット内で利用することができ、これにより、ネットワークのサブセット内でポートまたはインタフェースを一意に識別することができる。トンネリングプロトコルパケットを第2のノードで受信する場合、元のパケットを含むペイロードをトンネリングキーとともに抽出する。次に、トンネリングキーがデコードされ、第2のネットワークインタフェースから発行されるパケットと第2の仮想ネットワークインタフェース識別子とを決定してよい。このようにして、システムは、決定エンジンを利用して、システムを横断する際にパケットを処理する方法を決定して、さらに、決定がなされると、パケットを効果的にトランスポートすることができる。
他の実施形態では、決定エンジンが、パケットをネットワークインタフェースのあるセットから発行されるべきであると決定する。ネットワークインタフェースのあるセットから発行されることは、マルチキャストまたはブロードキャストのアプリケーションでは必要だろう。パケットを発行すべきネットワークインタフェースは、ネットワークの1つのノードにローカルであっても、または、2以上のノードに分散されてもよい。いずれの場合においても、システムは、パケットが、インタフェースのセットの識別子に対応しているネットワークインタフェースのセットから発行されるべきであると判断した。パケットは次に、第1のノードに対してローカルであるそのセット内の各ネットワークインタフェースにパケットを配信することで、処理される。パケットは、さらに、第1のノードから第2のノードへと、トンネルによって、修正とともに転送される。パケットは、インタフェースのセットの識別子をエンコードするトンネルキーを利用してトンネリングプロトコルパケットのペイロードとして転送されてもよい。
トンネリングパケットが、第2のノードで受信される場合、トンネルキーはデコードされて、インタフェースのセットの識別子、及び、そのセットに含まれる、第2のノードに対してローカルなネットワークインタフェースで発行されるパケットを決定する。一定のインタフェースのセットの識別子に関連付けられているネットワークインタフェースのセットは、システムの各ノードがアクセス可能な共有データベースに格納されてよい。したがって、ノードが未知のインタフェースのセットの識別子を受信する場合、ノードは、共有データベースにアクセスして、どのネットワークインタフェースが識別されたセットに含まれているかを決定する。さらに、ノードは、ノードにローカルなインタフェースのセットの識別子に対するネットワークインタフェースのマッピングを格納またはキャッシュしてよい。しかし、インタフェースのセットの識別子が変更されると、ローカルにキャッシュされたデータが無効化され、ノードが共有データベースにアクセスして、インタフェースの、インタフェースのセットに対する、現在の、または更新後のマッピングを取得することができる。実施形態では、仮想ネットワークインタフェースが、1を超える数のインタフェースのセットに属していてよい。
基礎となるネットワークがマルチキャスト(たとえばIPマルチキャスト)をサポートしているアプリケーションでは、各インタフェースのセットの識別子が、マルチキャストアドレスにマッピングされてよく、基礎となるネットワークの各ノードが、そのノードにマッピングされている仮想ネットワークインタフェースのうちの少なくとも1つが属するインタフェースのセットの識別子のそれぞれについてのマルチキャストのサブスクリプションを維持することができる。次にパケットは、第2のノードまたはそれ以上のノードに対して、トンネリングプロトコルパケットのペイロードとしてマルチキャストされてよい。次に、各ノードは、そのノードにローカルなセットのインタフェースに対応しているいずれかのネットワークインタフェースからパケットを発行する。様々な実施形態において、インタフェースセット識別子はマルチキャストアドレスに一意にマッピングされる。
基礎となるネットワークがマルチキャストをサポートしていない場合、決定エンジンは、パケットが送信される先のネットワークインタフェースのセットに属するローカルネットワークインタフェースを有する基礎をなすネットワークノードのセットを決定する。次に、前述したように、パケットは、第1のノードから基礎となるネットワークノードのセットの各ノードまで、トンネリングプロトコルパケットで転送される。次に、各ノードは、特定されたセットに関連付けられた対応するネットワークインタフェースにパケットを発行する。
決定エンジンは、仮想ネットワークトポロジーを横断するそのパケットのシミュレーションに基づいて、当該パケットの処理方法を決定する。多くの用途では、複数のパケットは、フローとフロー内の各パケットとして関連付けられ、フロー内の各パケットは同じ方法で処理されてよい(たとえばTCP接続の一方向のすべてのパケット)。
実施形態では、フローの第1のパケットを受信すると、システムは、そのフローのパケットを処理する方法を決定する決定エンジンを呼び出す。次に、決定エンジンは、そのフローの後続のパケットを処理するためのアクションまたはルールを格納することができる。格納されたアクションやルールは、ルールが一定のフローのパケットを処理するためのシステムのすべてのノードが利用できるように、共有データベースに格納されていてよい。あるいはルールがローカルに格納されてもよい。
実施形態では、決定エンジンの出力は、決定エンジンの出力が第1のパケットと同じでありうる他のパケットと一致させるために使用することができるパケットプロトコルヘッダ・パターンを含む。換言すれば、パケットプロトコルヘッダ・パターンは、第1のパケットに対して決定されたアクションまたはルールを適用することによって、同一の方法で処理されるパケットを特定するために使用することができる。実施形態では、決定エンジンの出力は、パケットが処理される方法を決定するために行ったシミュレーションの結果である。パケットプロトコルヘッダ・パターンと第1のパケットのためのシミュレーションの結果とが格納される。第2のパケットを受信すると、TCPシーケンス番号等の、パケット毎に変化するフィールドを無視しつつ、第2のパケットのヘッダを、パケットのプロトコルヘッダ・パターンと比較する。第2のパケットがパターンに一致する場合、第2のパケットが同じフローの一部とみなされ、第1のパケットのシミュレーションについて予め格納された結果を取得し、第2のパケットに適用する。シミュレーションの結果は、格納された共有データベース、ローカル・キャッシュまたはフローのパケットに適用されるルールを保持するのに適した他の任意のメモリから取り出すことができる。
実施形態では、決定エンジンは、フロー内の2番目及びそれ以降のパケットにフローのルールを適用してもよい。しかしながら、他の実施形態では、フローのルールを決定するための第1のパケットに関するシミュレーション、及び、パケットに対するこれらルールの適用は、システムの速度又は効率を改善するために分割することができる。
具体的なシミュレーション結果のキャッシュや格納がシステムによって決定されてもよい。例えば、決定エンジンは、どのシミュレーションの結果がキャッシュされるべきか、ほのめかすことができる。これに関連して、ほのめかしは、特定の結果が、効率及び利用可能な格納容量など他の考慮材料に従って格納されるべきであるとの勧告を含んでよい。一例において、システムは、使用頻度の低いフローのシミュレーション結果を格納しない、と選択することもできる。決定エンジンはまた、どの結果またはシミュレーション結果が実際にキャッシュされ、または、どの結果がキャッシュされる結果から無効化または追い出された(invalidated or evicted)か、を通知されてよい。キャッシュされた結果は、さまざまな理由で無効にされ得る。一例では、結果は、新規またはより頻繁に使用されるフローのための格納スペースを設けるために、追い出されてよい。システムのパフォーマンスは、格納されるフロールールの数が増えると落ちる場合があるので、一部の実施形態では、格納されるフロールールの数を制限して、作業の効率及び速度を増加させることができる。
時がたつと、仮想ネットワークトポロジー及び/または仮想デバイスの構成は、変更される可能性がある。こうなると、以前に行われたシミュレーション結果は、もはや一つ以上の以前に確立されたフローのための後続のパケットに適用されるべき適切なルールを反映しない。したがって、システムは、キャッシュされているシミュレーション結果の変更を検知してこれに応答するために、共有データベース、決定エンジン、及びその他のコンポーネントとの間で通信することができる。一例では、決定エンジンは、いつでも共有データベースに格納されているグローバルな状態に反映されているように、特定のキャッシュされたエントリを、構成の変化に基づいて削除するよう要求する場合がある。キャッシュされたエントリが削除され、削除されたフローに対応する次のパケットを受信すると、決定エンジンが呼び出され、シミュレーションを、そのフローのパケットを処理する方法を決定するために再計算する。次いで、見直されたシミュレーション結果が、フローに関連付けられたパケット・プロトコルヘッダ・パターンに一致する後続のパケットに格納され、適用され得る。
システムは、パケットのシミュレーション中に特定のフローについてパケットプロトコルヘッダ・パターンを決定することができる。実施形態では、パケットは、複数のフィールドを有するプロトコルヘッダを含み、パターンは、決定エンジンによるシミュレーション中に読み出される各フィールドを特定することによって決定される。このようにして、仮想ネットワークトポロジーを横断するときに読み出される各フィールド(複数の仮想ネットワークデバイスが読み出すフィールドを含む)を特定する。読み出される各フィールドは、パターンの一部として含まれてもよい。これとは対照的に、読み取られないために、パケット処理には影響しないフィールドは、ワイルドカードとして指定することができる。
さらに別の実施形態では、第1のパケットは、基礎となるネットワークの第2のノードで受信され、第2のノードは、第1のパケットと同じトンネルキーを有する他のパケットを特定するために使用できるプロトコルヘッダ・パターンを生成する。第2のノードは、パケットのプロトコルヘッダ・パターンと一致する第2のパケットを識別するために、プロトコルヘッダ・パターンを使用し、第1のパケットが発行されたのと同じローカルネットワークインタフェースから第2の(及びその後の)パケットを発行する。このように、第2のノードは第2のパケットを発行するポートを決定するプロセスを合理化し、システムの効率を向上させる。実施形態では、ノード上のフロープログラマブルスイッチは、トンネルキーと組み合わせて、プロトコルヘッダ・パターンに依存してもよいし、第1のパケットと同様に処理される後続のパケットを特定するトンネルキーだけに依存してもよい。
別の実施形態では、決定エンジンは、第1のパケットのためのシミュレーションを判定する間、基本システムに対して、1つ以上の追加のパケットを、ネットワークインタフェースまたはネットワークインタフェースのセットから生成することを要求することができる。実施形態では、追加のパケットは、ネットワークのポートの振る舞いを決定するために必要とされてもよい。追加のパケットを要求することによって、決定エンジンは、シミュレーションプロセスを支援するための、ネットワークの部分に関する追加情報を得てもよい。追加パケットの各々は、本明細書に記載のように実質的に処理することができ、または、決定エンジンが、ネットワークに関する必要な情報を作成するために必要な異なる処理が施されていてもよい。
別の実施形態では、計算方法は、複数のノードを有する基礎となるネットワークからアクセス可能な共有データベースを維持することを含む。共有データベースは、仮想ネットワークトポロジー及び仮想デバイス構成を複数の仮想ネットワークデバイスのために格納する。ネットワークパケットは、基礎となるネットワークの第1のノードの第1のネットワークインタフェースに到着する。この方法はさらに、仮想ネットワークデバイスを複数含む仮想ネットワークトポロジーのパケットの横断のシミュレーションに基づいて、ネットワークパケットを処理するためのアクションを決定することを含む。実施形態では、アクションは、基礎となるネットワークのノードで受信されたパケットを処理するように動作可能なフロープログラマブルスイッチで動作可能なフロールールである。
仮想ネットワークトポロジーのパケットの横断のシミュレーションは、例えば前述した決定エンジン等の、決定エンジンによって実行され得る。決定エンジンは、各ノードで受信されたパケットに対して、シミュレーションを実行するために複数のノードの各々に動作可能であってもよい。あるいは、決定エンジンは、シミュレーションが要求されるパケットを受信するノードの各々と通信する別のノード上で動作することができる。
仮想ネットワークトポロジーは、複数の仮想ネットワークデバイスに対応する複数の仮想ポートを備えている。各仮想ネットワークデバイスは、1つまたは複数の仮想ポートを有する。仮想ポートは、基礎となるネットワークのノードのネットワークインタフェースに関連付けられた外向きのポート、または仮想ネットワークデバイス間の仮想リンクに関連付けられた内向きのポートのいずれであってもよい。仮想リンクは、仮想ポート間の論理的な接続を表し、仮想ケーブルとも呼ばれる場合もある。
共有データベースは、仮想ネットワークトポロジー及び仮想ポートの構成を含む仮想デバイス構成を格納する。実施形態では、共有データベースは、外部ポート又は内向きポートの一方として、仮想ポートの識別情報を含む、複数の仮想ポートのそれぞれの構成、複数の仮想ポートに関する複数の仮想ネットワークデバイスのそれぞれの構成、基礎となるネットワークノードの識別子に対するネットワークインタフェース識別子のマッピング、基礎となるネットワークノードの対応するネットワークインタフェースに対する外向きのポートの双方向マッピング、及び、各デバイスの各内向きポートの、仮想リンクにより接続される別のデバイスのピア内向きポートに対するマッピング、のうち、1以上を含んでよい。ここで使用されているピア内向きポートは、論理的な接続による所与の仮想ポートに接続された仮想ポートである。内向きのポートは、単一のピアを持っており、したがって、それぞれの内向きの仮想ポートは、それが接続されている内向き仮想ポートのピアである。
仮想ポートの構成は、システムの所望の構成に応じて構成可能であり、システムの利用者は、仮想ポートを定義することもできる。外向き仮想ポートに出入りするパケットが仮想ネットワークに出入りする。これに対して、内向き仮想ポートに出入りするパケットは、ネットワーク内に残る。このように、仮想ポートは、ポートを通過する際に、パケットが仮想ネットワークから出るか仮想ネットワークに入るかに応じて外向きまたは内向きと特徴付けることができる。
一実施形態では、決定エンジンは、第1のノード上でローカルに動作し、仮想ネットワークトポロジーとデバイス構成とを含む共有データベースと通信する。共有データベースは、トポロジー及びデバイス構成情報の正式なまたはマスターコピーを含んでもよい。効率を改善するために、仮想ネットワークトポロジー及び仮想デバイスの構成情報の少なくとも一部は、個々のノードにローカルにキャッシュすることができる。共有データベースが変更されると、キャッシュされたデータが更新されてもよい。一実施形態では、あるノードが使用するトポロジーやデバイス構成の部分だけを、ノードにキャッシュする。仮想デバイスにおけるパケットの到着のシミュレーションにおいて、システムは、シミュレーションを実行するノードに共有データベースから仮想デバイスの構成をロードしてもよいし、ノード上での将来の使用のためにデバイス構成をキャッシュしてもよい。
計算方法の実施形態はまた、対応する仮想ポートに、第1のノードの第1のネットワークインタフェースをマッピングし、仮想ポートの構成及び仮想ポートに関連付けられているデバイスを共有データベースから取得する。ネットワークパケットを処理するためのアクションは、仮想ポートに関連付けられているデバイスのシミュレーションに基づいて決定される。決定されたアクションは、ネットワークデバイスの内部状態を修正すること、パケットをドロップすること、パケットのプロトコルヘッダを変更すること、ネットワークデバイスの1つまたは複数の仮想ポートからパケットを発行すること、及び、ネットワークデバイスの1以上の仮想ポートから別のパケットを発行すること、のうち1つまたは複数を含んでよい。実施形態では、ネットワークデバイスの1つまたは複数の仮想ポートからパケットを発行することは、外向きポートまたは内向きポートからパケットを発行することを含んでよい。
パケットを処理する方法を決定する際には、決定エンジンは、内向き仮想ポートで接続された複数の仮想デバイスを横断することができる。一実施形態では、決定エンジンは、第2の仮想ポートのためのピア内向きポートを決定し、ピア内向きポート及びピア内向きポートが配置されているネットワークデバイスの設定を取得する。決定エンジンは、パケットが処理される方法を決定するために、ピア内向きポートに関連付けられたネットワークデバイスの動作をシミュレーションすることができる。このように、決定エンジンは、所与のパケット又はフローが処理される方法を決定するために、任意の数の仮想ネットワークデバイスを含む、仮想ネットワークトポロジーによって経路をシミュレーションすることができる。
決定したアクションが、パケットを1以上の外向き仮想ポートから発行する場合、システムは、対応するネットワークインタフェースと、基礎となるネットワークのノードとにそれぞれ外向きの仮想ポートをマッピングして、対応するネットワークインタフェースのそれぞれからパケットを発行する。
決定エンジンが、パケットが横断する最後の仮想デバイスをシミュレーションするまで、本明細書に記載のシミュレーション処理を繰り返す。決定エンジンは、パケットに、及び、パケットのプロトコルヘッダ・パターンと一致する後続のパケットに適用されるシミュレーション結果またはアクションを提供する。シミュレーション結果またはアクションは、パケットが、仮想ネットワークトポロジーの横断を介して適用される全ての変更に基づいて、最後の仮想デバイスによって発行されるであろうように、ヘッダの構成に一致するパケットのプロトコルヘッダを変更するパケットの変更の累積を含む。このように、決定エンジンは、シミュレーションにより、パケットに必要な修正を行い、パケットがネットワークを介して効率的に修正されルーティングされるようにする。
前述のように、パケットは、複数のフィールドを持つプロトコルヘッダを含んでいる。システムは、決定されたアクションまたはフロールールが、シミュレーション結果に基づいて適用されるパケットを特定するために使用されるパケットプロトコルヘッダ・パターンを決定する。一実施形態では、システムは、仮想ネットワークトポロジー及び仮想ネットワークデバイスのシミュレーション中に読み取られたプロトコルヘッダのフィールドの各々を識別することによって、パケットのプロトコルヘッダ・パターンを決定する。このようにして、決定フロールールが名前の方法で処理されるべきパケットに適用され得るように、ネットワークを通過中に依拠しているプロトコルヘッダのフィールドが特定される。依拠されていないプロトコルヘッダのフィールドは、ワイルドカードとして扱われ、又は、決定されたパターンへ、後続のパケットのプロトコルヘッダを一致させる処理における考慮から除外することができる。パケットプロトコルヘッダ・パターン及び対応するシミュレーション結果はノードに格納されてもよい。実施形態では、パターンとそれに対応するシミュレーション結果とを、ノードに到着する後続のパケットを処理するように構成されたフロー設定可能なスイッチで使用するためのフロールールとして格納する。パケットが、フロールールが作成されていないノードに到着すると、システムは、パケットのためのシミュレーションを実行するために、決定エンジンを呼び出すことができる。
決定エンジンによって生成されるシミュレーション結果は、シミュレーション中に横断されるこれらの仮想デバイスについては少なくとも、仮想ネットワークトポロジーと仮想デバイス構成とに依存している。トポロジーまたはデバイスの構成が変更されたときに、パケットに適用される以前に決定されたシミュレーション結果と、対応するアクションは、もはや正確でないかもしれない。このような変化に適応するために、仮想ネットワークトポロジーまたは仮想デバイス構成の変更時に、システムは、格納されたパケットのプロトコルヘッダ・パターン及び対応する格納されたシミュレーションの結果を無効にするように構成されている。一実施形態では、システムは変化を検知すると、すべての格納されたパターンとシミュレーション結果とを無効にする。他の実施形態では、変更された仮想デバイスに依存している格納された結果だけを無効にする。一例では、シミュレーション中に横断した横断された仮想デバイスのセットは、決定エンジンによってシミュレーション中に決定される。横断された仮想デバイスのセットは、パケットプロトコルヘッダ及び/またはシミュレーション結果と関連している。仮想デバイスの構成に変更が検知されると、変更された仮想デバイスを含む任意の横断したセットに関連付けられて格納されたシミュレーション結果は、無効化されてもよい。
このようにして、システムは、所与の仮想デバイスの変化に基づいて、どのフロールールを無効にされるべきかを効率的に決定した。仮想デバイス構成の変化に基づいて、横断された仮想デバイスのセットを決定する方法及び無効化フローが、図1に示されている。他の実施形態では、キャッシュが、スペースが限られたリソースである場合には、フローが無効化または追い出されてもよい。例えば、システムはローカルに(第1のノードに)基礎となるシステムによってキャッシュされているすべての決定エンジンをトラッキングして、決定が最後に一致したとき(最後にパケットが決定のパターンに一致して、決定のアクションがそのパケットに適用されたとき)をトラッキングしてよい。その後、システムはすべての決定の「最後に一致した」時間を照会し、最も長い時間使用されていない決定を追い出してよい。最後に一致した時間の照会は、指定された頻度で、または、必要に応じて行って、指定されたサイズ未満の格納された決定のキャッシュのサイズを維持するようにしてよい。このシステムはまた、「最近」作成されたランダムな決定を削除してもよい。最近作成されたランダムな決定を削除することは、最近の決定の大半が、短命のパケットフロー(長寿のフローの割合が比較的高い、より古くから生き残っている決定に比べて)のためのものである場合に効率的だろう。フローを無効化するためのプロセスは、所望のパラメータ内にノードに格納されたデータのキャッシュを管理するために、個別に、または組み合わせて使用できる。システムはまた、格納されたキャッシュへ追加される新たな決定に相関している、判定エンジンの新規の呼び出しの速度に基づいて、無効化または追い出しの速度を調整することができる。
システムはさらに、キャッシュされている決定を、更新された仮想デバイス構成と一貫させるべく収束するよう、トラフィックを補正するための中断が最小限且つ効率になるように構成されている。キャッシュされた決定の収束は、以前に格納されたフローの精度に基づく無効化または追い出しとして特徴づけることができる。本明細書で使用する、開始仮想ネットワーク構成にいくつか変更を加えたものに対する「一貫性の決定」とは、同じ入力パケット及び入力インタフェースを有する決定エンジンの新規の呼び出しによって再度到達できるものであってよい。対照的に、一貫性の決定とは、仮想ネットワークデバイスの新たな構成による同じ入力があった場合には決定エンジンが行うことができない決定のことである。一実施形態では、時間Tに対して、時間T前にキャッシュされた全ての決定が時間Tまたはその後の仮想ネットワーク構成の状態に一致している境界期間Pが存在している。
決定を収束するために、システムは、その決定についてシミュレーションされたデバイスがローカルにキャッシュしている決定と(これらは、パケットが横断した仮想デバイスのことを表す)決定が行われた(キャッシュされた)時間とをインデックス化する。その後、システムは、時間Tで受信した第1の仮想デバイスの構成の更新のための仮想デバイス構成のローカル更新を受信して、所定の時間待ち、時間Tの前に作成されキャッシュされた決定数が、既に空間ベースの追い出しによって低減されているようにして、第1の仮想デバイスをシミュレーションする必要のある決定のセットをもつ時間Tの前に作成/キャッシュされた決定のセットと交差するようにする。結果セット内の決定は、同じ入力(及び現在の構成)で決定エンジンを再起動することによって検証される必要がある。変更されたすべての決定は、古い決定を無効化して、更新された、現在の構成に基づく新たなシミュレーション結果を、フローに一致する後続のパケットで利用するためにインストール/キャッシュする。
別の態様として、現在開示される計算方法及びシステムは、1以上のMAC学習ブリッジをシミュレーションすることを含み、ここで各ブリッジの外向きのポートは、基礎となるネットワークの1以上のノードのインタフェースにマッピングされ、ブリッジの各内向きポートは、仮想ルータの内向きポートに接続されている。計算方法は、共有データベースのブリッジのMAC学習テーブルの正式なコピーを維持することを含む。MAC学習テーブルは、動的フィルタリングデータベース、MACが到達することができるポートに対するMACアドレスのマップとしても知られており、このMACには、正確に構成されたネットワークのある時点でブリッジのポートの1つのみを介して到達することができる。この方法はさらに、ブリッジの外向きポートのいずれかにマッピングするインタフェースを有している全てのノードの、及び、そのブリッジのパケットの横断をシミュレーションした全てのノードの、ブリッジのMAC学習テーブルのキャッシュされたコピーを維持する。MAC学習テーブルのキャッシュされたコピーは、正式なコピーが変更された場合、更新されてよい。
一実施形態では、決定エンジンの呼び出しによって、Ethernet(登録商標)ブリッジの第1のポートに到達するEthernet(登録商標)フレームのシミュレーションが行われ、システムは、前の決定エンジンの呼び出しがそれをロードしていない場合、Ethernet(登録商標)ブリッジの状態をロードする。受信Ethernet(登録商標)フレームはユニキャストデスティネーションMACアドレスを有していてもよい。実施形態では、方法はさらに、デスティネーションMACがユニキャストアドレスであることを検知し、 MAC学習テーブル内にそのMACのエントリがあるか否かを決定することを含む。MAC学習テーブルが、ブリッジの第2のポートにMACをマッピングするエントリを含む場合、システムは、シミュレーションされたブリッジが第2のポートからそのフレームを発行する、と決定する。MAC学習テーブルが、そのMACのエントリを含まない場合、システムは、シミュレーションされたブリッジは、到着を受け取ったもの以外のすべてのポートからフレームを発行する、と決定する。
別の実施形態では、受信Ethernet(登録商標)フレームは、フレームが複数のポートから発行されるべきであることを示すマルチキャストまたはブロードキャストMACを持っている。コンピューティング方法の実施形態は、デスティネーションMACがマルチキャストまたはブロードキャストアドレスであることを検知し、シミュレーションされたブリッジは、到着したものを受け取ったポート以外のすべてのポートからそのようなフレームを発行することを決定することをさらに含んでよい。さらに別の実施形態では、受信Ethernet(登録商標)フレームは、ユニキャストソースMACアドレスを有する。MAC学習テーブルにこのMAC用のエントリがない場合、システムは、到着ポートにこのMACをマッピングするエントリを追加する。次に、システムは、呼び出しが生じたノードにローカルなMAC学習テーブルエントリのレファレンスカウントを開始するが、このカウントは、同じソースMACアドレスのフレームを同じポートに到達させる決定をキャッシュした数に基づいている。
決定エンジンは、そのポートに到達する同じソースMACをもつすべてのパケットを見るわけではないので、このようなキャッシュされた決定のレファレンスカウントが役立つ場合もあるだろう。したがって、そのようなキャッシュされた決定の数がゼロに達したとき、このソースMAC及び到着ポートのMAC学習テーブルエントリが有効期限切れに(又は有効期限が切れるように設定)されてもよい。ブリッジのMAC学習テーブルのキャッシュされているコピーを有するすべてのノードにおいて(ブリッジの外側ポートにマッピングされているインタフェースをもつから、または、ブリッジを最近シミュレーションしたから、という理由で)、システムは、テーブルに対する更新を学習して、そのMACのエントリがMAC学習テーブルにないということに基づいているキャッシュされた決定を追い出す(これらのフロー/パケットを、今では、全てのブリッジのポートに溢れさせるのではなく、エントリのポートに配信することができることから)。
他の実施形態では、 MAC学習テーブルには、既にMACアドレスのエントリがあり、マッピングされたポートは、現在の受信フレームの到着ポートと同じである。その後、システムは、MAC学習テーブルエントリが存在しており、修正する必要はないことを検知する。システムは、決定エンジンのこの呼び出しがキャッシュされた決定となった場合、ローカルのレファレンスカウントをインクリメントすることができる。あるいは、 MAC学習テーブルが既にMACアドレスのエントリを有していてもよいが、マッピングされたポートは、現在の受信フレームの到着ポートとは異なっていてもよい。その後、システムは、MAC学習テーブルから前のエントリを削除し、フレームの到着ポートとMACアドレスとを関連付け、MAC学習テーブルに新しいエントリを追加する。前のエントリのマッピングされたポートに対応しているインタフェースを所有しているノードで、システムは、エントリの削除について学習し、今は不正確な情報に基づいているという理由でそのエントリをレファレンスカウントするすべての決定を追い出す。ブリッジのMAC学習テーブルのキャッシュされているコピーを有するすべてのノードにおいて(ブリッジの外側ポートに対応しているインタフェースをもつから、または、ブリッジを最近シミュレーションしたから、という理由で)、テーブルに対する更新を学習して、それらが今は不正確な情報に基づいていることから、そのMACの前のMAC学習テーブルエントリに基づいていたキャッシュされている決定すべてを追い出す。図2にMACを学習する方法を示し、図3にMACを学習しない方法を示す。
別の実施形態では、ブリッジの各ポートから到達可能なMACアドレスが事前に分かっている場合、Ethernet(登録商標)ブリッジであふれたパケットを削減する方法が提供される。たとえば、仮想ブリッジの外向きポートの1つにマッピングされているノードのネットワークインタフェースのいずれかに接続されている(attached)ゲストVMの場合、MACアドレスは事前にわかっており、MAC学習テーブルを、既知のMACポートエントリで予めポピュレートすることができるようになっている。
別の態様では、計算方法は、ARP要求を傍受またはこれに応答することによって、IPネットワーク上であふれたパケットを減少させた。この方法は、共有データベースに格納されたARPキャッシュでブリッジの状態を増強することを含む。ARPキャッシュは、ユニキャストMACアドレスへのユニキャストIPアドレスのマップを含む。MAC学習テーブルと同じように、ブリッジのARPキャッシュは、内向きポートを経由してブリッジに接続されているルータに対応するエントリが予めポピュレートされてよい。各エントリは、ブリッジの内向きポートのいずれかを調べ、ピアポートの構成を取得し、ピアポートのMAC及びIPアドレスを抽出することにより決定することができる。この方法はまた、事前に分かっているその他のエントリでブリッジのARPを予めポピュレートすることを含んでよい(ゲスト仮想マシンが、ユーザによってまたはシステムによって自動でMAC及びIPアドレスを割り当てられているクラウド管理フレームワークのように)。この方法はまた、 IPパケットを認識し、包括(encapsulating)Ethernet(登録商標)フレームのソースMACアドレスとソースIPアドレスとを抽出し、したがって、 IP- MACの対応関係を推定し、 ARPキャッシュへの適切なエントリを追加することを含むことができる。
さらに別の実施形態は、各ルータの外向きポートが基礎となるネットワークの1以上のノードのインタフェースにマッピングされており、ルータの各内向きポートが、別の仮想ルータまたは仮想ブリッジの内向きポートに接続されている、1以上のIPv4ルータをシミュレーションする方法である。方法は、共有データベースにルータのARPキャッシュの正式なコピーを維持しており(ユニキャストIPアドレスからユニキャストMACアドレスのマップ)、全てのルータの内向きポートのピアポートの(IPv4, MAC)というアドレスの対でARPキャッシュを予めロードして、ルータの転送テーブルの正式なコピー(もっとも一致度の高いIPv4デスティネーションプリフィックス及び一致するソースプリフィックスをもつルールを選ぶことに基づいて、パケットを発行すべきルータポートを決定するルータ/ルートのセット)を、共有データベースに維持して、ルータの外向きポートの1つにマッピングするインタフェースをもつすべてのノードと、そのルータのパケットの横断を最近シミュレーションした全てのノードに、そのルータのARPキャッシュと転送テーブルのキャッシュされているコピーを維持することを含む。
あるノードが、あるルータをシミュレーションする必要があった少なくとも1つのキャッシュされているエンジンの決定をもつ場合、そのルータは、そのノードで最近シミュレーションされている。この方法はまた、共有データベースの正式なコピーが変更された場合、ARPキャッシュのキャッシュされたコピー及び転送テーブルを更新することを含んでよい。前の決定エンジンの呼び出しがすでにそれをロードしていなければIPv4ルータのパケットの到着をシミュレーションすると、ルータの状態は、このノードにロードすることができる。
決定エンジンもIPv4ルータの第1のポートに到着するIPv4パケットをシミュレーションすることができる。受信IPv4パケットのデスティネーションアドレスは、ルータのポートのいずれかに等しくてよい。その後、システムは、パケットが、ルータのポートのいずれかにアドレス指定されていることを検知し、そのプロトコルが認識されていないか、未処理の場合は、ルータがパケットをドロップすることを決定し、パケットがping(ICMPエコー)要求であるかどうかを検知し、その場合にはルータのポートから第1のパケットのIPv4ソースアドレスへのping応答パケットを生成し、決定エンジンのシミュレーション論理を呼び出して、ポートから仮想ネットワークを通るping応答の経路を決定するものと判断する。シミュレーション論理が、ping応答が(任意のデバイスの)特定の外向きポートの仮想ネットワークを終了することを決定した場合、システムはそのポートを、それに対応するインタフェースと、基礎となるネットワークノードとにマッピングして、呼び出し元のシステムに、ping応答パケットをそのインタフェースから発行するよう要求する。あるいは、受信IPv4パケットのデスティネーションアドレスは、ルータのポートのアドレスのいずれかでなくてもよく、その場合、システムは、パケットのソースとデスティネーションのIPv4アドレスが分かっている場合、一番よく一致する経路を決定するために、ルータの転送テーブルを照会する。
一致するルートが見つからない場合、システムは、第1のパケットを受信すると、対象ルータがパケットをドロップして、ICMPエラー(ルート到着不可能等)で応答して、決定エンジンのシミュレーション論理を呼び出して、ポートから仮想ネットワークのICMPエラーが辿る経路を決定する。シミュレーション論理がICMPエラーは、特定の外向きポートで仮想ネットワークを終了することを決定した場合、システムはそれに対応するインタフェースと、基礎となるネットワークノードにそのポートをマッピングし、呼び出し元のシステムに、そのインタフェースからのICMPエラーパケットを発行することを要求する。同様に、一致するルートが、デスティネーションが管理上禁止されていると指定している場合、ICMPエラーパケットを生成することができる。
シミュレーションが、最も一致するルートが、パケットがルータポート(例えば次のホッピングポート)を経由して転送されるように指定していると判断した場合は、システムは、次のホッピングポートのMACに、パケットのソースEthernet(登録商標)アドレスを変更することができる。ルートの次のホッピングゲートウェイがnullの場合(デスティネーションアドレスが次のホッピングポートと同じL3サブネット上にあることを意味する)、システムは、パケットのIPv4デスティネーションに対応するMACのローカルARPキャッシュを照会して、そのMACのパケットのデスティネーションEthernet(登録商標)アドレスを変更する。ルートの次のホッピングゲートウェイがnullでない場合(パケットが、デスティネーションに到達する前に、少なくとももう1つのルータを通過するように転送されなければならないことを意味する)、システムは、ゲートウェイのIPv4アドレスに対応しているMACがないかローカルARPキャッシュに照会して、そのMACのパケットのデスティネーションEthernet(登録商標)アドレスを変更する。システムはさらに、(以前に横断した仮想デバイスのシミュレーション後に変更された可能性がある)第1のパケットを受信すると、対象ルータが、説明するようにさらにパケットを変更し、次のホッピングポートからそれを発行する、と決定することができる。
次のホッピングポートが外向きポートである場合などに、ARPキャッシュが照会IPv4アドレスのエントリを含まない場合、システムは、所望のIPv4アドレスのARP要求パケットを生成することを含む方法を実装することができ、現在の時間に設定されている最後に送信された時間を注釈付けされた、(IPv4, null-MAC)対を、共有データベースに追加して、最後のARP要求がそのIPv4について送信されたときを示す。この方法は、さらに、その対応するインタフェースと、基礎となるネットワークノードとに外向きの次のホッピングポートをマッピングして、呼び出し元のシステムに、そのインタフェースからARP要求を発行するよう要求し、定期的にARP要求パケットが、そのインタフェースから発行されるよう要求を繰り返すことを含むことができる。実施形態では、 ARP要求は、仮想ネットワークに入った他のパケットと同様に基本システムが配信するので、おそらくは別のノードにトンネルによって配信される。この方法は、タイムアウトが発生するまで継続し、第1のパケットに応答して、ICMPルートが到達不能である旨のエラーメッセージを生成してもよい。あるいは、方法は、所望のIPv4アドレス用の(IPv4, MAC)エントリを含む、ARPキャッシュのローカルコピーの更新が受信されるまで続けられ、次いで、パケットのデスティネーションEthernet(登録商標)アドレスをそのエントリのMACに変更して、シミュレーションされたルータが、説明したようにパケットを修正して、それを次のホッピングポートに発行すると決定することを含む。実施形態では、 ARP応答は、ARP要求が別のノード上のインタフェースにマッピングされているポートから発行された場合は、第1のパケットを処理するものとは別のノードで受信される。このように、決定エンジンは、直接ARP応答を受信するのではなく、ARPキャッシュを介してARPエントリを知ることができる。タイムアウトが発生し、 ARPキャッシュ・エントリが見つからない場合、前述のように、システムは、ルート到達不能ICMPエラーで応答することができる
別の実施形態では、決定エンジンを呼び出すと、ARP要求パケットのシミュレーションを行い、IPv4ルータの第1のポートに到着する。この場合、ARPの対象プロトコルアドレス(「TPA」)が到着/第1のポートのIPv4アドレスである。システムは次に、到着ポートのMACアドレスに設定されたソースハードウェアアドレス(「SHA」)を含むARP応答パケットを生成して、決定エンジンのシミュレーション論理を呼び出して、ARP応答が通る第1のパケットの到着ポートから仮想ネットワークへの経路を決定する。ARP応答も、前述した応答同様に発行され得る。あるいは、決定エンジンシミュレーションは、シミュレーションされたルータが、 ARP要求パケットをドロップすると決定してもよい。
他の実施形態では、決定エンジンの呼び出しによって、IPv4ルータの第1のポートに到着したARP応答パケットのシミュレーションが行われる。システムは、 ARP応答がルータによって生成されたARP要求に応答したものかどうかを検知することができる。一実施形態では、システムはMAC自体がnullである場合でも、一番最後に送信された時間で注釈をつけられたARPキャッシュ内の(IPv4アドレス、 MAC)エントリが存在することをチェックする。エントリがない場合、システムは、ルータがサービス拒否攻撃をブロックするために、このような未承諾ARP応答をドロップすることを決定する。あるいは、システムは、ソースハードウェアアドレス、 MACアドレス、及びソース・プロトコル・アドレス、 IPv4アドレスを、ARP応答から抽出してARPキャッシュを更新する。ARPキャッシュは、ローカルに、及び、(IPv4、MAC)エントリで、共有データベース内で更新することができる。
別の態様では、本開示のコンピューティングシステムは、仮想デバイスの出入りするフィルタのシミュレーションを含む方法を実行するよう構成され、フィルタは、ジャンプルールを介して相互参照することができるリストに編成される個々のフィルタリングルールを含む。この方法は、パケットのL2−L4ネットワークプロトコルのいずれかまたは全てのフィールドを読み出し、論理を適用することができる条件を特定することと、パケットが条件に一致したときに、実行するアクションとを特定することとを含んでよい(たとえばさらなる処理のためのDROP, ACCEPT)。
一実施形態では、方法が、さらに、共有データベースにおける各デバイスの出入りフィルタのフィルタリングルールを維持することと、最近デバイスをシミュレーションしたノードのいずれかのデバイスのフィルタリングルールのローカルコピーを維持することと、ルールの正式なコピーが共有データベース内で変更されるときに、デバイスのフィルタリングルールのローカルコピーを更新することと、及び/または、デバイスのフィルタが修正されたとき、デバイスのシミュレーションが必要であったローカルにキャッシュされたフロー転送の決定を再度有効化することとを含む。方法はさらに、フローごとの接続状態で一致するフィルタリングルールをシミュレーションすることを含んでよく、このフローごとの接続状態は、各シミュレーションされているデバイスによって独立してトラッキングされ、接続状態の値のセットは、パケットのトランスポート(L4)プロトコルに依存している。一実施形態では、システムは、デバイス及びフローごとの接続状態を格納するために中央データベースの専用スペースをもつことと、デバイスのシミュレーションが開始されると、パケットのフローの署名を利用して中央データベースを照会して、接続状態を取得することとを含む方法を実行するよう構成されている。一実施形態では、フローの署名は、これらフィールドを以下の順序(シミュレーションされたデバイスのデバイスID、パケットのL3ヘッダの(たとえばIP)ソースフィールド、L3デスティネーションフィールド、L4プロトコルタイプ(たとえばTCP)、L4ヘッダのソースフィールド、L4のヘッダデスティネーションフィールド)で追加することで計算される。接続状態が中央データベースで見つからない場合には、パケットは、接続状態が暗黙的にこのパケットのネットワークプロトコルの状態セットの「開始」値である新たなフローを構成する。この方法はまた、このデバイスのフィルタリングルールにより一致させるための接続状態の値を露呈させることができる。
デバイスのシミュレーションを終了する前に、シミュレーションが、デバイスがパケットを転送することを決定した場合、接続状態を、このパケットのネットワークプロトコルについての接続状態の値のセットの遷移ルールに従ってこのパケットのフローの署名及びこのパケットの戻りフローの署名について設定する。上記と同様の実施形態では、パケットの戻りフローの署名はこの順序でこれらの値を追加することによって計算される:順序とはつまり、シミュレーションされたデバイスのデバイスID、パケットのL3ヘッダのデスティネーションフィールド、 L3ソースフィールド、 L4プロトコルタイプ、 L4ヘッダのデスティネーションフィールド、及びL4ヘッダーソースフィールドである。順方向のフローの署名及び戻りフローの署名はさらに、所与の用途において有用であり得る追加のフィールドを使用して定義することができる。順方向のフローのキャッシュされた決定の有効期限が切れると、システムはそのフロー及び戻りフロー両方に関する接続状態の除去をスケジュールすることもできる。更に説明を続けると、接続をトラッキングする方法の一実施形態が図4に示されている。
一実施形態では、方法がさらに、パケットのフローの接続状態で一致するシミュレーションフィルタリングルールを含み、このフローごとの接続状態は、全てのシミュレーションされるデバイス間で共有され、接続状態セットは、パケットのトランスポート(L4)プロトコルに依存している。このようにして、デバイスのネットワークでとられる経路とは独立して、接続状態をフローの特性としてみることができる。この結果、決定エンジンに対する1つの呼び出しでシミュレーションされる全てのデバイスが、パケットのフロー及び戻りフローの接続状態において同意して、決定エンジンに対する2つの異なる呼び出しでシミュレーションされた任意の2つのデバイスが、戻りフローが、順方向のフローが発行された同じデバイスの仮想ネットワークに入る、戻りフローパケットがパブリック(つまりグローバル固有)L3アドレスを有している、のうちの少なくとも1つが真である場合に、これらの接続状態で同意する。
実施形態では、共有データベースが、フローごとの接続状態を格納するための専用スペースを含んでいる。仮想ネットワークのパケットの横断のシミュレーションが開始されると、共有データベースは、パケットのフローの署名を利用して照会されてよい。L3ソース/デスティネーションの少なくとも一つがパブリック(すなわちグローバルに一意)でない場合、フローの署名は、第1のシミュレーションされたデバイスのデバイスIDに依存し得る。
フローの署名は、パケットのL3ヘッダの(例えば、IP)ソースフィールド、L3デスティネーションフィールド、L4プロトコルタイプ(例えば、TCP )、L4ヘッダのソースフィールド、及びL4ヘッダデスティネーションフィールドに依存していてよい。接続状態が中央データベースに見つからない場合には、パケットは、接続状態が暗黙的にこのパケットのネットワークプロトコルの状態のセットの開始値である新たなフローを構成している。任意のシミュレーションされたデバイスのフィルタリングルールが一致する接続状態の値を次に露呈することができる。仮想ネットワークのパケットの横断のシミュレーションを終了する前に、シミュレーションが、パケットがある仮想ポートから最終的に発行されると決定する場合、接続状態が、このパケットのネットワークプロトコルについての接続状態値のセットについての遷移ルールに従って、このパケットのフローの署名及びこのパケットの戻りフローの署名について設定される。接続状態は、レース条件(race condition)を避けるために、パケットをトンネリング/転送する前に(及び、決定を戻す前に)共有データベースに書き込まれ、ここで、共有データベースへの接続状態の書き込みが完了する前に、戻りフローからのパケットがシミュレーションされ、接続状態に対する照会がトリガされる。パケットのリターンフローの署名は、同様の方法で計算することができる。上述したように、順方向のフローのキャッシュされた決定が期限切れになると、そのフローと戻りフローとに関連付けられている接続状態両方のスケジュール除去が行われる。
別の態様では、方法が、この状態がパケットのシミュレーションによってまたは戻りパケットのシミュレーションによって利用されないとき、あるシミュレーションされたデバイスのフィルタリングルールがその状態を読み出す必要が生じるまで、そのパケットのフローの接続状態の照会を遅らせることによりシミュレーション時間を短くして、戻りパケットのための可能性のある経路が、戻りフローの接続状態を読み出す必要があるフィルタリングルールをシミュレーションすることを含むかを決定し、結果が否定的な場合には、順方向の及び戻りのフロー接続状態両方を共有データベースに書き込む処理を省く。実施形態では、接続状態が共有データベースに維持され、これにより、同じフローからのパケットが、後で第2のノードのインタフェースに到着し、第2のノードの決定エンジンが、そのフローを処理する方法についての同じ決定に到達するようにする(仮想ネットワークの構成が変更されていない場合)。これは、外部のルーティング決定により、基礎となるネットワークの1つを超えるノードのインタフェースにそのパケットが到達するときに、フローの整合性を維持するために必要である。これらのルーティング決定は、ノードのインタフェースの知覚された、または現実の到達不可能性に関していても、いなくてもよい。
また他の実施形態では、システムが、仮想デバイスについての、ネットワーク(つまりL3)及びトランスポート(L4)のアドレス変換のシミュレーションを実行するよう構成されている。同様に、システムは、ネットワークの逆変換及び仮想デバイスのプロトコルアドレスをシミュレーションするよう構成されている。これらプロセスは、「NAT」と称される集合体であってよい。様々な実施形態では、個々のNATルールが、フィルタリングルールの後にあっても、前にあっても、そのなかに介在していてもよく、パケットのL2−L4ネットワークプロトコルヘッダの任意または全てのフィールドを読み出したりそれに論理を適用したりする条件を特定して、パケットが条件を満たすと、どのようにL3及びL4フィールドを変換または逆変換すべきかを特定して、及び/または、変換が生じると実行されるアクションを特定してよい(たとえば、デバイスによるさらなる処理の場合にはACCEPT、ルールセットのCONTINUE処理)。方法はさらに、共有データベースの各デバイスの出入りフィルタの変換ルールを維持し、デバイスを最近シミュレーションした任意のノードのデバイスの変換ルールのローカルコピーを維持し、ルールの正式なコピーが共有データベースで変更された場合には、デバイスの変換ルールのローカルコピーを更新してよい。デバイスのシミュレーション中に、パケット処理がNATルールに達すると、方法は、パケット(おそらくは既に前のデバイスまたはルールによって修正されている)がルールの条件を満たしているかを決定して、決定結果が肯定的な場合には、ルールが指定する変換または逆変換に従ってパケットを修正する。次に、そのデバイスの変換が修正されたとき、デバイスのシミュレーションを必要としたローカルにキャッシュされているフローの転送の決定を再度有効にする(revalidate)ことを含んでよい。
別の態様では、システムが、ステートフルデスティネーションNATをサポートする物理的に分散された仮想デバイスを実装して、この中では、一部のNATルールによって、L3及びL4デスティネーションアドレスのための変換対象の選択を可能として、変換対象間で選択を行うためのポリシーを指定する。実施形態では、システムは、順方向及び戻りフローの署名両方について調節された(key)、共有データベースの各順方向のフローについての変換選択を格納してよい。順方向のフローの署名は、これらの値を、仮想デバイスのID、パケットのL3ソースアドレス、L3デスティネーションアドレス、L4プロトコル番号、L4ソースアドレス、L4デスティネーションアドレスの順序で含んでよい。
戻りフローの署名は、これらの値を、仮想デバイスのID、変換が選んだL3アドレス、パケットのL3ソースアドレス、L4プロトコル番号、変換が選択したL4アドレス、パケットのL4ソースアドレスの順序で含んでよい。格納された変換は、パケットの元のL3及びL4デスティネーションアドレス及びその変換について選択されたL3及びL4デスティネーションアドレスをエンコードしてよい。方法はさらに、デバイスのシミュレーション中に、パケット処理がこのようなNATルール(ソースアドレスの選択を可能とするもの)に到達して、ルールの条件を満たすと、転送フローの署名について上述したキーを構成して、共有データベースに照会を行い、前の決定エンジンの実行によって(ローカルまたは一部の遠隔の基礎となるネットワークノードで)変換が既に格納されたか(したがい、変換されたアドレスの選択が既に行われたか)を判断することを含む。このような格納されている変換が共有データベースに見つかる場合には、パケットのL3及びL4ソースアドレスを、選択されたL3及びL4アドレスに修正してから、シミュレーションを続ける。
格納されている変換が共有データベースに見つからない場合には、指定されたポリシーに従って選択を行い、この選択に従ってパケットのL3及びL4デスティネーションアドレスを修正して、変換の選択を、前に説明した共有データベースに格納してから、シミュレーションを続ける。デバイスのシミュレーション中に、パケット処理が選択を逆にすると指定する逆変換ルールに到達したり、パケットがルールの条件を満たしたりした場合には、そのパケットが変換された順方向のフローの戻りパケットであると想定した場合、戻りフローの署名に対応するキーを構成し、共有データベースに照会を行い、その戻りフローに変換が格納されているかを決定する。戻りフローの署名は、これらの値を、仮想デバイスのID、パケットのL3ソースアドレス、L3デスティネーションアドレス、L4プロトコル番号、L4デスティネーションアドレス、及びL4ソースアドレスの順序で含んでよい。この格納されている変換がデータベースに見つかる場合には、パケットL3及びL4ソースアドレスを格納されている変換の元のL3及びL4アドレスに修正することで、このパケットに逆に適用してから、シミュレーションを続ける。このような格納されている変換が共有データベースに見つからない場合には、パケットが変換された順方向のフローの戻りパケットであるという想定が不正確であったことになるので、逆変換を適用する必要がなく、したがって、逆ルールの条件が満たされなかったかのようにシミュレーションを続ける。このようにして、システム及び方法によって、共有データベースの変換を格納して、レース条件を処理して、仮想デバイスが、正確に振る舞い、正確に機能しているハードウェアデバイスから区別不可能であるようにするが、ハードウェアデバイスと比べて、仮想デバイスの利用可能性が向上する。
別の態様では、いくつかのNATルールはL3とL4のソースアドレスの変換のターゲットの選択を可能にし、その選択を行うためのポリシーを指定する。実施形態では、システムは、順方向及び戻りフローの署名両方により調節された(key)、共有データベースの各順方向のフローについての変換選択を格納してよい。格納されている変換は、パケットの元のL3及びL4ソースアドレス並びに変換について選択されたL3及びL4ソースアドレスをエンコードする。デバイスのシミュレーション中にもしもパケット処理がこのようなNATルール(デスティネーションアドレスの選択を可能とするもの)に到達して、ルールの条件を満たすと、転送フローの署名について上述したキーを構成して、共有データベースに照会を行い、(ローカルまたは一部の遠隔の基礎となるネットワークノードにおける)前の決定エンジンの実行によって変換が既に格納されたか(したがい、変換されたアドレスの選択が既に行われたか)を判断することを含む。このような格納されている変換が共有データベースに見つかる場合には、パケットのL3及びL4デスティネーションアドレスを、選択されたL3及びL4アドレスに修正してから、シミュレーションを続ける。格納されている変換が共有データベースに見つからない場合には、指定されたポリシーに従って選択を行い、この選択に従って戻りフローの署名を構築して、このキーによって変換が格納されないようにして、キーに対してデータベースが一致するものを返さなくなるまで、選択とデータベースのチェックとを繰り返してから、最終的な選択に従ってパケットのL3及びL4ソースフィールドを修正して、前に記載したように共有データベースに変換の選択を格納して、シミュレーションを続ける。
データベースにおける戻りフローキーのチェックは、正確を期して、戻りフローをルーティングする際の曖昧さを避けるために利用することができる。デバイスのシミュレーション中に、パケット処理が選択を逆にすると指定する逆変換ルールに到達したり、パケットがルールの条件を満たしたりした場合には、そのパケットが変換された順方向のフローの戻りパケットであると想定した場合、戻りフローの署名に対応するキーを構成し、共有データベースに照会を行い、その戻りフローに変換が格納されているかを決定する。この格納されている変換がデータベースに見つかる場合には、パケットL3及びL4デスティネーションアドレスを、格納されている元のL3及びL4アドレスに修正することでこのパケットに格納されている変換を逆に適用してから、シミュレーションを続ける。このような格納されている変換が共有データベースに見つからない場合には、パケットが変換された順方向のフローの戻りパケットであるという想定が不正確であったことになるので、逆変換を適用する必要がなく、したがって、逆ルールの条件が満たされなかったかのようにシミュレーションを続ける。
また別の態様として、既にデータベースにあるL3及びL4アドレス変換を選択する複数の試みは、L3及びL4アドレスレンジを、個々のノードによって保存することができるブロックに分割することで低減させることができる。変換のためにL3及びL4アドレスを選択するとき、ノードは、自身のブロックに未使用のアドレスの組み合わせがあるかをチローカルにチェックし、さもなくば新たなブロックを維持する。しばしばこうすることで、データベースに対する1つの往復通信になる。ノードが新たなブロックを維持できず、新たな変換に利用可能な未使用のL3及びL4アドレスの組み合わせがない場合には、ルールが指定する制約の範囲内のランダムなL3及びL4のアドレスの組み合わせを利用しようと試みる。
実施形態では、ルーティングプロトコルが、接続及びネットワークの安定性を構築して保つためのグローバルな効果の面が設計、研究される、という意味において、グローバルに動作する。しかしいずれか1つのルータは、直近のピアとのルータプロトコルの説明のみを維持する必要がある。組織は、様々な理由から近隣のネットワークとルーティングプロトコルセッションを作動させてよい。たとえば、近隣に対して、特定のアドレスブロックについての自身のネットワークへの最良の経路を示してよく、自身の転送の決定を、外部ネットワーク条件に基づいて調節することができる。これらのルーティングセッションは、本質的にステートフルであるが、これは、説明が接続のないプロトコル(たとえばUDP)に反して接続で(たとえばTCP)維持されてよいため、及び、パケットの転送先を決定するためにルータが利用する状態を交換することが目的であるためである。実施形態では、システムは機器モデルを利用してルーティングプロトコルを実装する。機器モデルでは、L2アイソレーションを、下層(underlay)で実行されている仮想ネットワークのセットのために提供する。ルーティングプロトコルの場合には、ルーティングプロトコルが特定の論理であり、仮想デバイス自身がトラフィックのソース及びデスティネーションであるものであるために、機器モデルが有用であってよい。一実施形態では、L3ルータ全体を機器に搭載する代わりに、機器の、仮想ポートと一部の外部ピアとの間にルーティングプロトコルのみを搭載する。このようにすることで、システムが、故障により多い耐性を持つようになり、機器が唯一の故障点であるかは関係がなくても、複数のポートにおいてピアの間に複数のセッションを許可することで、ルーティングプロトコルはこれを考慮に入れることができる。
システムはさらに、所望のルーティングプロトコル及びピアセッションのための構成パラメータを、ルータがそのピアとの間でセッションを構築する仮想ポートの構成の一部として格納することを含む方法を実装することで、仮想IPv4ルータのルーティングプロトコル(たとえばBGP, iBGP, OSPF)をサポートするよう構成されていてよい。この情報は共有データベースに格納されてよい。方法はさらに、共有データベースにルーティングプロトコルセッションの構成をもつ所望のアドバタイズされたルートを格納することを含んでよく、基礎となるネットワークノードが、ルーティングプロトコルセッションの構成をもつ仮想ポートにマッピングするパブリックインタフェースをもつとき、ノードは、ローカルに、コンテナ(たとえばVM)にルーティングプロトコルデーモンを起動する。コンテナは、ホストに「プライベートな」インタフェースを取得して、ノードは、ルーティングプロトコルセッションからのパケット、及び、オプションとして、数個の他のフロー(たとえばARP及びICMP)が、コンテナとピアとの間を、決定エンジンをバイパスして流れるように、転送決定を設定する。
方法はさらに、ポートにルーティングプロトコルセッション構成を含み、これは、ピアパケットが、対応する基礎となるノードインタフェースに到着することを示唆している。同様に、仮想ルータポートからピアへのセッションパケットは、対応する基礎となるノードインタフェースを介して発行される必要がある。しかし、ピアから仮想ネットワークへのネットワークトラフィックも同じインタフェースに到着して、仮想ルータの転送テーブルがピアを介して進む必要があると示す仮想ネットワークからのトラフィックが、同じインタフェースから発行されている必要がある。全ての通常のフロー(非ルーティングプロトコルフロー)の第1のパケットは、決定エンジン呼び出しになる。この代わりに、ルーティングプロトコルフローのパケットは、決定エンジンをバイパスする。
パブリックインタフェースに到達するものは、プライベートインタフェースから直接発行され、この逆もまた然りである。ノードは、さらに、コンテナを調査する(そのルーティングプロトコルセッションについての仮想ポートのアドバタイズされたルートをプッシュして、コンテナで実行されているルーティングプロトコルデーモンによって学習されるルート(つまりピアがアドバタイズするルート)を見るために)。ノードは、ピアがアドバタイズするルートを処理(たとえば累積)して、出力ポートを、ルーティングプロトコルセッション構成をもつ仮想ポートのIDに設定した後で、仮想ルータの転送テーブルにこれらを追加する。コンテナ及びセッションが失敗すると、ノードは、転送テーブルに追加するはずだったこれらの全てのルートを除去する。結果は、ピアがルータのポートを、通常の(エンドホストの)トラフィック及びルーティングプロトコルセッショントラフィックを送受信するものとして知覚する。ルーティングプロトコルセッショントラフィックは、ポートごとに構成され、仮想IPv4ルータは、1以上のピアをもつ構成されたルーティングプロトコルセッションをもつ1を超える数のポートを有していてよい。これらの仮想ポートを、異なる基礎となるネットワークノードのインタフェースにマッピングすることで、仮想ルータは、物理ルータ等の単一の故障点ではなくなる。これにより、前利用可能であったシステムと比べてこのシステムの故障に対する耐性が増す。
また別の態様では、システムは、仮想プライベートネットワーク(「VPN」)を実装または模倣する方法を提供する。一実施形態では、仮想デバイスを、インターネットの異なる部分の遠隔ネットワークにリンクする方法が提供され、この方法は、仮想デバイスに、遠隔ネットワークとの間で、あたかも物理的に接続されており、そのリンクがセキュアでプライベートであるかのように、パケットを交換させる。このようにすることで、アウトサイダが、リンクのトラフィックを見ることができず、リンクにトラフィックを投入することができなくなる。方法はさらに、仮想L2及びL3デバイスポート構成を、共有データベースに格納されているVPN構成オブジェクトの識別子で注釈をつけるよう構成することを含んでよい。VPN構成は、特定の基礎となるネットワークノードに割り当てられてよく、または、基礎となるネットワークノードが、VPN構成でロックを取得するよう競合することができ、この場合VPN構成でのロックの取得が、ロックオーナが対応するVPNリンクを管理する責任があることを示す。後者の場合には、ノードが失敗することで、そのノードの施錠がなくなるので、ノードがまだ生きている場合にはそのノードのVPNリンクが解体することになる。したがって別のノードによるVPNリンクの取得は可能である。VPN構成は、プライベートポート識別子を含んでよい。プライベートポートは、遠隔ネットワークにリンクされるべきデバイス上の仮想ポートを特定する。VPNが割り当てられる基礎となるネットワークノードは、ローカルに論理ネットワークインタフェースを作成して、これをプライベートポート識別子にマッピングする。そして、コンテナ内にVPN管理デーモン(たとえばOpen VPN)を起動して、コンテナを新たに作成されたインタフェースにリンクさせる。
ノードがそのインタフェースを介して発行した(つまり仮想ネットワークがプライベートポートから発行した)トラフィックは、ゆえに、VPN管理デーモンに到着して、VPN管理デーモンが、これを暗号化して、遠隔のサイトに転送する。VPN構成が、コンテナ内のVPN管理デーモンが暗号化されたトラフィックを、基礎となるネットワークノード自身のネットワーキングを介して遠隔のサイトに転送すべきであると指定している場合には、コンテナ内のVPN管理デーモンは、VPNクライアントとして動作すべきである(というのも、基礎となるネットワークノードはパブリックIPv4アドレスを有していないことがあるからである)。VPN構成はしたがって、ローカルデーモンが接続すべき遠隔のVPN管理デーモンのパブリックIPアドレスを特定する。
別の態様として、基礎となるネットワークノードすべてが、インターネットに直接アクセスを有する必要はなく、したがって、暗号化されたVPNトラフィックは、仮想ネットワークに再度入り、アップリンクがインターネットに接続されている仮想デバイス(たとえばBGPイネーブルポートを有するL3エッジルータ)にトンネリングされる。一実施形態では、VPN構成がパブリックポートを特定して、これは、インターネットにパケットを(直接または間接に)転送することができる仮想デバイスの仮想ポートを特定している。VPN構成はさらに、ローカルVPNデーモンが、特定のIPv4アドレス及びTCP(またはUDP)ポートのサーバとして、または、TCPまたはUDPポートの遠隔IPv4アドレスに接続するクライアントとして動作すべきかを特定する。VPNを割り当てられるノードは、ローカルな論理ネットワークインタフェースを作成して、これをパブリック仮想ポートにマッピングして、これをVPN管理デーモンコンテナに接続する。VPNデーモンは、その暗号化され/トンネリングされたトラフィックを、そのインタフェースから送信するよう構成されており、暗号化されたトラフィックを、そのインタフェースから遠隔サイトから受信する。
また別の態様では、システムが、仮想ネットワークにDHCP機能を提供し、仮想ネットワークにアクセスを有するホスト(物理または仮想)を構成することができる。このようにして、いずれのDHCPサーバも不要となり、1つのL2ドメインでシミュレーションする必要もなくなる。DHCP構成が、L2ドメインから抽象化され(abstracted)、単に仮想ポートに関連付けることができるリソースとして定義される。DHCP発見または要求メッセージが仮想ポートに到着するとき(つまり、仮想デバイスの外部ポートに対応しているインタフェースに到着するとき)、システムのネットワークシミュレーション決定エンジンは、ポートの構成をチェックして、関連するDHCP構成があるかを判断する。ある場合には、決定エンジンが関連するDHCP構成を利用して、これらメッセージに対して応答(DHCPがそれぞれ提供及び応答する)して、ノードに対して、これらのパケットを、要求が到着したインタフェースから発行するよう命令する。この代わりに、決定エンジンは、仮想ポートに到着するいずれかの他のネットワークパケットについて、ネットワークのパケットの横断をシミュレーションする。
この点に関して、DHCPは、UDPがトランスポートする別のプロトコルであり、これが、IP上で実行されるL4である。この方法によって、DHCPリソースが、ネットワークトポロジーとは独立して設計され、より詳しくは、L2ドメインから独立して設計される。したがってDHCPリソースは、ユーザの要求に応じて、任意のポートのセットで共有されてよい。実施形態では、システムは、共有データベースにDHCPリソースを格納する。
一実施形態では、DHCPリソースが提供される。DHCPリソースは、対応する値をもつオプションのセットが定義するDHCP構成を含む。DHCPリソースはさらに、動的なIPアドレスプールを含み、IPv4アドレス割り当てに対して静的なMACアドレスのセットを潜在的に含む。DHCPリソースのコンポーネントは、束にされて、任意の仮想デバイスの外部ポートに関連付けられてよい。システムは、DHCPリソース定義を共有データベースに格納することと、外部仮想ポートを共有データベースのDHCPリソースマッピングに格納することと、決定エンジンを利用して、仮想ポートに到着するDHCPパケットを特定することと、仮想ポートをDHCPリソースにマッピングしたかを決定することとを含む方法で、DHCPリソースを利用することができる。仮想ポートがDHCPリソースにマッピングされない場合、前に説明した方法を利用して、パケットを処理する方法を決定する。仮想ポートがDHCPリソースにマッピングされる場合、DHCPリソースの定義を利用して、DHCPプロトコルに従って、及び、送信者のMACアドレスに従って、論理応答を構成する。送信者がIPv4アドレスを要求する場合、システムはさらに、送信者のMACアドレスについて静的な割り当てが存在するかをチェックして、そのIPv4アドレスを、提供されたIPアドレスとして戻す。
送信者がIPv4アドレスを要求しており、DHCPリソースが静的なIPv4アドレス割り当てを含まない場合には、システムは、リソースが、動的に割り当てられたIPv4アドレスプールを定義するかをチェックする。定義しており、プールに保存されているアドレスが存在している場合には、アドレスの1つを、クライアント(MACアドレスにより特定される)の代わりに保存して、要求を受信した外部ポートを介して発行されるべきDHCP応答メッセージを構築する。DHCPリソースで定義された動的に割り当て可能なプールからのIPv4アドレスの保持(reservation)は、共有データベースに格納され、衝突または再利用を防ぐことができる。この保持には、クライアント要求によって更新可能なリースが含まれる。リースが更新されるとき、リースの期限が切れるときを、決定エンジンによって更新して、定義された期間の間、リースを維持してよい。
別の実施形態では、システムは、表示の状態の転送(representational state transfer)を実装する(REST APIとも称される)。システム及びシステムのテナントによってREST APIが利用されて、仮想ネットワークトポロジーを含む仮想ネットワークが調査、監視、及び修正される。実施形態では、REST APIが、役割ベースのアクセス制御を提供して、仮想トポロジーの各部分の所有権を認識する。REST APIはさらに、1以上のテナントの役割及び機能を認識していてもよい。一例では、テナントは、自身の仮想スイッチ及びルータを作成して、REST APIを利用して全ての側面を管理してよい。一部の場合には(たとえばIasSクラウド等において)、他のテナントにリースすることができるグローバルIPアドレスのプールを有しているサービスプロバイダテナント等のテナントが存在していてよい。これらシステムでは、サービスプロバイダテナントが、内向きポートを作成して、別のテナントに、上述したようなそのポートにリンクする機能を授けてもよい。
例示するために、ここに開示する方法の1以上を実装するよう構成されたシステムの実施形態を図13及び図14に示す。図5を参照すると、VPNアプリケーションとともに利用されるよう構成されたシステムが物理的に示されている。VPNサーバ51を有する遠隔サイト50は、インターネット52経由で、基礎となるネットワーク53と通信する。一実施形態では、VPNサーバ51が、Open VPNサーバであってよい。基礎となるネットワークは、プライベートIPネットワークであってよい。ホスト54は、基礎となるネットワークに接続されたノードであってよく、ネットワークインタフェース55を含む。ネットワークインタフェース55は、トンネルポート56に接続されている。トンネルポート56は、GREトンネリングその他の上述したトンネリング法を利用してよい。ネットワークインタフェース55は、さらに、コンテナ内のVPNクライアント57と、暗号化されたトンネル62で通信してよい。VPNクライアントはOpen VPNクライアントであってよい。コンテナ内のVPNクライアント57は、フロープログラマブルスイッチ58と、仮想ネットワークトラフィック59を介して通信する。フロー制御可能なスイッチ58は、さらに、共有データベース61と通信する決定エンジン60と通信する。本開示における方法の1以上を適用することで、システムは、ホストのネットワークを利用してVPN管理デーモンを提供して、遠隔サイトのVPNサーバに到達する。
図6を参照すると、VPNアプリケーションとともに利用されるシステムの別の実施形態を物理的に示す。VPNサーバ71を有する遠隔サイト70は、インターネット72を介して、第1のホスト73のネットワークインタフェース74と通信する。第1のホスト73は、フロープログラマブルスイッチ76と通信する決定エンジン78を含む。フロープログラマブルスイッチ76は、トンネルポート77を介してネットワークインタフェース75と通信する。第1のホスト73のネットワークインタフェースは、基礎となるネットワーク79に接続される。基礎となるネットワークはさらに、第2のホスト80のネットワークインタフェース81に接続されている。一実施形態では、基礎となるネットワーク79は、パブリックインターネットとは隔離されたプライベートネットワークである。第2のホスト80はさらに、トンネルポート82を介してネットワークインタフェース81と通信するフロー設定可能スイッチ83を含む。フロープログラマブルスイッチ83はさらに、コンテナ内のVPNクライアント85及び決定エンジン84と通信する。決定エンジン84はさらに、共有データベース86と通信して、共有データベースが、システムのための分散状態情報を提供するようにする。本開示による方法の1以上を適用することで、システムは、仮想ネットワークのアップリンクを利用してクラウドコンピューティング環境にVPN管理デーモンを提供して、遠隔サイトのVPNサーバに到達する。
また別の実施形態では、基礎となるネットワークに重ねられた仮想ネットワークを利用してパケットルーティングを促すシステム及び方法を開示する。実施形態では、基礎となるネットワークが物理ネットワークであるが、他の実施形態では、基礎となるネットワークが仮想または論理ネットワークであってよい。明瞭化するために、基礎となるネットワークは、物理ネットワークに関して説明されるが、1以上の仮想ネットワークは互いに重ねられてよく、それぞれが次に重ねられる仮想ネットワークの基礎となるネットワークを提供してよい。
本開示のシステムは、複数のノードと相互接続するネットワークを含んでよい。ネットワークのノードは、サーバ、ルータ、または、ネットワークと通信する他のコンピューティングデバイス等の物理コンポーネントに対応していてよい。各デバイスが、1以上のノードをサポートしていてよい。別の実施形態では、ノードが、論理または仮想デバイスを表していてよい。ネットワークは、サービスプロバイダが維持するプライベートネットワークであってよく、ここでサービスプロバイダは、ネットワーク機能を複数のテナントに販売、リース、または提供してよい。ネットワークは、エッジノード等の、パブリックネットワークに接続を提供する1以上のノードを有していてよい。一例では、ネットワークは、複数のインターネットに面しているノード(Internet facing nodes)を含み、インターネットとネットワークとの間に複数の入出力通信経路を提供する。インターネットに面しているノードは、インターネット接続されたルータであってよい。別の例では、ネットワークが、テナント仮想マシンをホストするよう構成された複数のノードを含む。テナントの仮想マシンをホストするノードは、ホストサーバまたは、1以上のテナント仮想マシンを作動するために必要なリソースを有する他のデバイスであってよい。一部の実装例では、ノードが、1つのテナントからの複数の仮想マシンをホストしてよい。別の実施形態では、ノードが、それぞれ異なるテナントが所有する複数の仮想マシンをホストしてよい。また別の実施形態では、ノードが、テナント仮想マシンをホストする、及び、ネットワークにインターネット接続(Internet connectively)を提供する、という両方の機能を提供してよい。
様々な実施形態において、パケットを第1のノードから第2のノードにルーティングする方法が開示されている。方法は、ネットワークの第1のノードにおいてパケットを受信することを含む。この方法はさらに、パケットが仮想ネットワークを横断する方法をシミュレーションするために、決定エンジンを呼び出すことを含む。シミュレーションは、仮想ルーティングテーブルにアクセスして、パケットの次のホッピングを決定することを含んでよく、次のホッピングは、内向きポート(論理ポートとも称される)または外向きポート(実体ポートと称される場合もある)であり、シミュレーションは、次のホッピングが、ネットワークの第2のノードの外向きポートであると決定されるまで、後続する仮想ルーティングテーブルに対して順次アクセスし続けることを含んでよい。決定エンジンがパケットを処理する方法を決定した後、パケットは、第2のノードの外向きポートに、基礎となるネットワークを介して送信されてもよい。実施形態では、基礎となるネットワークは、複数のノード間に接続を提供する、Ethernet(登録商標)ネットワーク、プライベートまたはパブリックIPネットワーク、または他のネットワークであってよい。
一実施形態では、ネットワークの各ノードがエッジコネクタを含む。各エッジコネクタは、同じ物理ホストまたはノードで実行される決定エンジン及びフロー設定可能スイッチのインスタンスを含む。一実施形態では、フロー設定可能スイッチは、Open vSwitch等のソフトウェアを含んでよい。決定エンジンは、1以上の仮想L2スイッチ及び仮想L3ルータをシミュレーションしてよい。エッジコネクタは、物理インタフェース、仮想インタフェース、またはこれらの両方であってよい。仮想インタフェースは、たとえば、TAPインタフェースまたはカーネルレベルの仮想インタフェース等のインタフェースである。物理インタフェースは、たとえば物理ネットワークインタフェースカード(NIC)である。
フロー設定可能なスイッチは、フロールールに一致するすべてのパケットにアクションリストを適用するソフトウェアコンポーネントである。アクションリストには、どのパケットがフローに一致しているかを特定するフロー・マッチが関連付けられている。一部の実施形態では、フロー・マッチは、パケットのプロトコルヘッダ・パターンによって指定することができる。フロー・マッチは、例えば、ソース及びデスティネーションポート、ソース及びデスティネーションアドレス、MACアドレスを含むパケットデータの1つ又は複数の部分に基づくことができる。フロー・マッチは、パケットデータ、または、ソースもしくはデスティネーションアドレスの一部等のパケットデータのサブセットの組み合わせに基づくことができる。フロールールは、フロー・マッチとアクションリストとを少なくとも含むことができ、「フロー」と称されてよい。2つのフロー(1つがインバウンドで1つがアウトバウンド)が、接続を形成する。概して、2つのフロー(インバウンドフローとアウトバウンドフロー)が、ネットワーク外のクライアントと、テナントの仮想マシンその他の、ネットワーク内に提供されるサービスとの間の通信についての接続を形成する。 1つ又は複数のフローのルールによって表される各フローは、共有データベース内に維持される分散状態に格納されてよい。一実施形態では、各フローは、分散状態へのアクセスを必要とする他のすべてのノードによってアクセス可能なネットワークのノード上に維持された分散状態に格納される。格納されたフローは、そのフロー・マッチで、またはフロールールに関連する他の基準によってインデックスを付けられてよい。
一実施形態では、接続の一方向への第1のパケットのために作られたルーティング決定をキャッシュするフローテーブルを維持することができる。フローテーブルは、フロー設定可能スイッチ内に維持される。ネットワークは、外部ネットワークへの複数の可能なアクセスポイントを有してよく、接続は、同じ仮想ルートのインバウンドをアウトバウンドとして利用する必要はない。それぞれ異なるインバウンド及びアウトバウンドルートを可能とすることによって、ネットワークのある部分に障害が出た場合に、システムの故障に対する耐性を増すことができる。それぞれ異なるインバウンド及びアウトバウンドルートを可能とすることによって、さらには、ネットワークの別の経路間のロードを均衡させることによって(balancing loads)ネットワークリソースの利用率を高めることもできる
ネットワークはまた、ネットワークのノード間でパケットをルーティングおよびスイッチするための転送エレメントを含んでいる場合がある。転送エレメントは、 L2スイッチ、 L3ルータ、又はL2スイッチとL3ルータとの組み合わせ、のいずれであってもよい。転送エレメントは、物理的または仮想のいずれであってもよく、ネットワークは、物理及び仮想転送エレメントの組合せを含むこともできる。仮想転送エレメントは、ソフトウェアで実現することができるが、物理的な転送エレメントは、ハードウェアコンポーネントである。一実施形態では、仮想転送エレメントは、テーブルを使用して実施される。例えば、決定エンジンが、ネットワークに対して確立された仮想トポロジーに従ってパケットのルーティングとスイッチングとをシミュレーションするために使用されてもよい。
ネットワークでは、仮想ルータは、仮想ネットワークグラフによって説明することができる仮想ネットワークトポロジーを構築するために他の仮想ルータに接続されてよい。各仮想ルータは、仮想ポートを複数持っている場合があり、ここで各仮想ポートは内向き(論理)ポートまたは外向き(実体)ポートのいずれかである。例えば、各仮想ルータは、仮想ルーティング・テーブルを含むことができ、ポートの仮想ルータによりルーティングされたパケットの次のホッピングを決定するために、内向きポートは、仮想ルーティングテーブル内のルックアップを実行することによって特定することができる。各ルックアップが別の仮想ルータのピアの内向きポートまたは外向きポートにつながることができ、これにより、決定エンジンは、複数の仮想ルータを有する仮想トポロジーの横断をシミュレーションすることができる。一実施形態では、外向きポートは、例えば、トンネルポート等のフロー設定可能なスイッチのポートに対応していてよい。いくつかの実施形態では、外向きポートは、インターネット接続を提供する、ノードの位置に対応していてよい。別の実施形態では、外向きポートは、ネットワーク内で動作する仮想マシンの場所に対応することができる。内向きポートおよび外向きポートの両方について、共有構成ツリーの仮想ポートの静的構成は、明示的に、ポートのタイプ(つまり、内向きまたは外向き)を含み、内向きポートの場合には、仮想リンクの他端(つまりピアの内向きポート)のユニバーサル固有識別子(「port_uuid」)を含む。加えて、仮想ルータは自身のIPアドレスを有していてもよい。さらに、各仮想ルータは、例えば、ボーダーゲートウェイプロトコル(「"BGP"」)及び/または、内部ゲートウェイ・プロトコル(「"IGP"」)などのプロトコルをサポートすることができる。
別の実施形態では、エッジコネクタが、仮想ルータのポートではないトンネルポートを有してよい。トンネルポートを利用して、1つのエッジコネクタをネットワークにより別のエッジコネクタに接続することができる。たとえば、あるエッジコネクタのフロー設定可能なスイッチを、別のエッジコネクタのフロー設定可能なスイッチに、トンネルポートによって接続することができる。一実施形態では、パケットが、別のエッジコネクタの仮想マシンについての1つのエッジコネクタに到着してよい。パケットが別のエッジコネクタの外向きポート用である場合には、該エッジコネクタに対してトンネル経由で送信される。エッジコネクタ及びエッジコネクタをトンネルにマッピングするテーブルに、ポートをマッピングするテーブルが、分散状態で維持される。したがってエッジコネクタは、選択された(ローカルではない)ポートに基づいて、どのトンネルを介して、パケットを送信するかを決定してよい。別の実施形態では、外向きポートのエッジコネクタへのマッピング、及び、エッジコネクタのトンネルへのマッピングは、別のノードに維持されてよく、エッジコネクタは、別のノードと通信して、パケットについての適切なトンネルを決定してよい。
一実施形態では、各ノードのエッジコネクタが、共有データベースに格納されていてよい分散状態にアクセスを有してよい。分散状態は、エッジコネクタによって維持、共有される。分散状態は、たとえば、構成ツリーその他の仮想及び/または物理ネットワークトポロジーに関するデータを含んでよい。一実施形態では、分散状態が、Zookeeperおよびmemcacheを利用して実装されてよい。別の実施形態では、分散状態の一部が構成ツリーであるが、別の構造(たとえばハッシュテーブル、n-aryツリー)を考慮に入れてもよい。構成ツリーその他の共有データは、適宜、エッジコネクタによって(たとえば決定エンジンによって)アクセスされてよい。
用語「クライアント」は、本明細書では、たとえば仮想マシンのサービスにアクセスするために、システム内にホストされているサーバに接続しようと試みているWebブラウザなどの外部ネットワーククライアントを示すために用いられる。用語「テナント」は、サービスプロバイダのクライアントを示すために用いられる。テナントは、システム内の物理マシンで動作する1以上の仮想マシンその他のサービスを有してよく、これら仮想マシンとクライアントとの間で、ロード・バランシングまたはネットワークアドレス変換(「NAT」)ルールを動的に構築しようと望んでよい。
図7を参照すると、サーバ101が、NIC A 111及びNIC B 112という2つのネットワークインタフェースカードを用いて例示されている。例として、一部のノードが、インターネットクライアントに対しており、インターネット接続をネットワークに提供するエッジノードとして指定されてよい。他のノードは、テナント仮想マシンまたはネットワーク内のその他のサービスをホストするよう構成されたホストノードとして設計されてよい。例として、エッジノード及びホストノードは、対称なアーキテクチャとして示すことができるが、様々な実施形態においては、様々なアーキテクチャをシステムの様々なノードについて利用することができる。インターネットに面しているエッジノード及び仮想マシンホストノードとして説明されてはいるが、システムは、ネットワークの処理を促すことが望ましいデータ格納デバイス及びサポートサーバを含む、中間ノードを含んでもよい。図7では、NIC A111が、インターネット151に対する接続を有しており、NIC B112が、内部プロバイダ構成152(基礎となるネットワーク)に対する接続を有している。内部プロバイダ構成152は、プライベートIPネットワーク、その他の、ノード間にIP接続を提供するネットワークプロバイダであってよい。
システムは、物理ネットワーク上に重ねられる仮想ネットワークの特徴の多くを実装するソフトウェアコンポーネントを含む。ソフトウェアコンポーネントの動作を説明するために、選択された処理について、パケット受信の後のアクションを説明する。
一実施形態では、SYNパケットが受信され、TCP接続を構築する。SYNパケットは、NIC A111上でインターネット151から受信される。パケットは、切り替えのためのフロー設定可能スイッチ161でエッジコネクタによって受信される。フロー設定可能スイッチ161は、パケットに関するデータを、フローテーブル162に格納されているフロールールに一致させることで、フロールールを特定しようと試みる。一致したデータは、たとえば、ソース及びデスティネーションポート、ネットワークアドレス、MACアドレス、またはその他のパットに関連するデータを含んでよい。SYNパケットは通常、フローにおける第1のパケットであるので、フロー設定可能スイッチ161は、フローテーブル162における第1のパケットに対応しているエントリを見つけない。
フローテーブルの対応するエントリを見つけないことに応じて、フロー設定可能スイッチ161は、関数呼び出しを決定エンジン165に行い、パケットを決定エンジンに通信する。パケットは、フロー設定可能スイッチのポートに到着してよく、フロー設定可能スイッチは、受信ポートのIDを、パケットとともに決定エンジンに通信してよい。フロープログラマブルスイッチ及び決定エンジンの機能は、明瞭性を期すために別個に説明されるが、ソフトウェアコンポーネントが適宜統合されてよいことは明らかである。または、コンポーネントの機能が維持できれば、各コンポーネントが分割されたり、他のコンポーネントと組み合わせられたりしてよい。一実施形態では、決定エンジンは、フロー設定可能スイッチ161に、OpenFlowプロトコルを介して通信を行い、フロー設定可能スイッチの受信ポートのIDを仮想ポートID(「vport」)に変換する。または、このマッピングが、受信ポートのIDの代わりに、MACアドレスまたは802.1x証明書に基づいていてよい。パケットのルーティングの残りは、そのL3情報に依存していてよい。決定エンジン165は、パケットのルートを、仮想ネットワークトポロジーを介してシミュレーションする論理を有する。一実施形態では、フローがフローテーブル162に作成されると、そのフローが同じフローの後続するパケットに適用されるために、接続の第1のパケットのみが、決定エンジンに対する呼び出しを行ってよい。
新たなフローに関するフロールールに作成するために、一実施形態では、決定エンジンが、そのパケットをどのように処理及び転送するかを示すアクションリストを構築して、それを、フローテーブルのフロールールに挿入する。そのフローについての基準に一致する後続するパケットは、適用されるアクションリストを有しており、これは、一定のポートに対するパケットのルーティングが含まれてよい。パケットが、別のサーバ上で実行されている別のエッジコネクタ用である場合、トンネルポートを介して他のエッジコネクタにルーティングされてよい。トンネルポートは、基礎となるネットワークのエッジコネクタまたはノードを接続してよく、エッジコネクタ間でパケットを転送するために利用される。この代わりに、パケットが別のエッジコネクタ上の仮想ポート用に意図されている場合、そのエッジコネクタにトンネルを介して送信される。一実施形態ではトンネルプロトコルはGRE+IPである。このトンネリングプロトコルは、サーバ101上の1つのフロー設定可能スイッチ161に、別のサーバ(不図示)の上の別のフロー設定可能スイッチ(不図示)と、内部プロバイダ構成152を介して通信させることを可能とする。図8は、プロバイダの内部L3ネットワーク構成202によって接続される複数のホスト210、221、222それぞれの上の複数のエッジコネクタ203、204、205の物理的な相互接続を示している。例として、仮想マシン211及び212がホスト221上で動作して、仮想マシン213及び214は、ホスト222上で動作する。管理コンソール206がさらに、内部ネットワーク構成202に接続されていてよく、これが基礎となるネットワークを形成する。図9は、この物理ネットワークに重ねられる仮想トポロジーを示す。トンネリングプロトコルは、構成に、プロバイダ構成152のハードウェアを修正することなく、パケットをフロー設定可能スイッチ間でルーティングさせる。実際のパケットがIP(I3)を(Ethernet(登録商標)(L2)に反して)移動するために、ネットワークはスケール可能であり、Ethernet(登録商標)通信で適用されうる距離の限定によって限定されることがないだろう。トンネルのエンドポイントは、エッジコネクタのフロー設定可能スイッチのポートであるが、トンネルポートは、外向きポートと別の処理を受ける。トンネルパケットヘッダのIP部分によって、パケットが正確なホストに到達することができ、次に、ヘッダのGRE部分が、パケットを正しいトンネルポートに到達させる。ヘッダのまた別のキーが、デスティネーションの外向きポートを特定する役割を果たし、受信エッジコネクタは、パケットを正確なローカルポートにルーティングすることができる。
図8を参照すると、3つのエッジコネクタ203、204、及び205を含むネットワークが示されており、各エッジコネクタは、ホストに存在している。上述した例の続きとして、パケットが物理ネットワークインタフェースカード(NIC)上のエッジコネクタ203で、インターネット151から、インターネット接続されたルータ201経由で受信され、パケットは、仮想マシン211用である、と仮定する。このパケットはフローの第1のパケットであることを想起すると、フローテーブルのパケットに対応するフロールールは存在しない。対応するフローエントリがフローテーブルに存在しないので、決定エンジンが呼び出される。決定エンジンは、パケットがフロー設定可能スイッチによって受信されたポートに基づいて仮想ポート(vport)を決定する(おそらくはMACアドレス及び802.1x証明書によって)。この場合のvportは、NICに対応している外向き(実体)ポート及びフロー設定可能スイッチのポートである。決定エンジンは、vportを利用して、どの仮想ルータまたは仮想スイッチにポートが接続されているかを決定する。上述したように、仮想ルータは、決定エンジンがアクセス可能なテーブルが実装し、分散した状態で維持することができる。ひとたび決定エンジンが、どの仮想ルータが外向きポートに接続されているかを判断すると、決定エンジンは、対応する仮想ルータテーブルのデスティネーションIPアドレスを特定することで、一致するルートを選択する。一実施形態では、決定エンジンは、いくつかのルートまたはいくつかの同じコストのルートから、ロード・バランシング・アルゴリズムを用いて、1つのルートを選択する。
別の実施形態では、決定エンジンが仮想ルータテーブルにアクセスして、IPアドレスをルックアップする場合、プレルーティング及びポストルーティングプロセスを適用してよい。プレルーティングプロセスは、ネットワークアドレス変換(「 NAT 」)を実行するために、ソース及びデスティネーションIPアドレス及びソース及びデスティネーションポートを含むパケットを変更することができる。ルーティング方法は、ソース及びデスティネーションIPアドレスを抽出して、仮想ルータに対応している仮想ルーティングテーブルでIPアドレスをルックアップして、デスティネーション(1を超える数のルートが見つかった場合)を選択して、パケットを、ルートエントリに対応しているポートに転送することを含んでよい。パケットの転送は、一致するルートの次のホッピングが内向き(論理)ポートか外向き(実体)ポートかに依存している。仮想ルータは、テーブルとして実装されてよく、2つの仮想ルータの間のルーティングは、連続した仮想ルータテーブルのルックアップを含む。一実施形態では、グローバルルーティングテーブルは、各仮想L3ルータ用に維持される。グローバルルーティングテーブルは、共有データベースに分散状態で格納することができる。あるいは、グローバルルーティングテーブルは、選択されたエッジコネクタに格納されてもよい。別の実施形態では、グローバルルーティングテーブルは、各エッジコネクタで維持され、エッジコネクタは、ネットワーク内の各他のエッジコネクタにグローバルルーティングテーブルを維持し更新するために協働する。
図9を参照すると、図8の物理ネットワークのように、基礎となるネットワークに重ねることができる仮想トポロジーが図示されている。一例では、パケットが、仮想L3ルータ301に関する外向きポートに到着してよく、そのデスティネーションIPアドレスがVM211のIPアドレスである。決定エンジンは、vportが接続されているのがどの仮想ルータであるかを決定するために、パケットが到着したvportを利用するが、この場合には、これが仮想L3ルータ301である。一実施形態では、仮想L3ルータ301が、プロバイダルータであってよく、ネットワークを運営しているサービスプロバイダにより作成、及び、管理されていてよい。
決定エンジンは次に、パケットに関するIPアドレスを利用して、パケットの出力ポートを決定する。出力ポートがローカルな外向きポートである場合には、フローがフロー設定可能スイッチに構築されており、パケットが、ローカルな外向きポートへルーティングされる。外向きポートがローカルではない場合には、パケットが、vportに従ってトンネルポートへとルーティングされて、テーブル及びホストをホストして、ポートテーブルをトンネリングする。ポートが別のルータまたはスイッチの内向きポートである場合には、外向きポートが特定されるまで、同じルックアッププロセスを繰り返す。図9の説明を続けると、仮想ルータ301のテーブルのルックアップは、仮想ルータ302に対応する内向きポートを戻してよい。ルックアップとの組み合わせの後で、または組み合わせ中に、適宜、ポストルーティングプロセスをパケットに適用してよい。ルックアップが、このインスタンスの仮想L3ルータ302の、別の仮想ルータに対応している内向きポートを戻すときには、決定エンジンは、仮想ルータ302について同じプロセスを繰り返してよい。仮想ルータ302は、たとえば、テナントの仮想マシンである仮想マシン211及び212の間でトラフィックをルーティングするための、テナントによって作成された仮想ルータであってよい。テナントの仮想マシンは、同じホストにあってよく、または、ネットワーク内の異なるホストに位置していてもよい。テナントは、サービスプロバイダからネットワークリソースをリースして、サービスプロバイダが構築するルールに則ったネットワークの容量内の、任意の数の仮想マシンまたは他のサービスを運営してよい。
決定エンジンは、仮想L3ルータ302に関するプレルーティングを含んでよく、仮想ルーティングテーブルのIPアドレスをルックアップして、次のホップ及びポストルーティングを決定してよいシミュレーションを実行する。この例では、次のホッピングは、仮想マシン211であり、エッジコネクタ203とは異なるエッジコネクタによってホストされている。仮想ルータ302のための仮想ルータテーブルは、テナントまたはサービスプロバイダによって構成されるVM211に対応したvportを提供する。一実施形態では、サービスプロバイダが、ネットワークのそれぞれ異なるノード間でテナント仮想マシンを動かして、機器利用を管理したり、ネットワークにおける物理コンポーネントのメンテナンスまたは補修中の動作を維持したりしてよい。決定エンジンは次に、分散状態に維持されているポート位置辞書の出力vportの物理位置をルックアップする。スイッチが転送するすべてのパケットはL2パケットなので、MACアドレスのためのL2パケットのスペースが存在する。しかし、トンネルポートは、2つのフロー設定可能スイッチの間にあるので、MACアドレスはアプリケーションによっては不要な場合がある。より詳しくは、一定の実施形態では、実際のMACアドレスを転送する必要がない(これは、出力エッジコネクタが、自身のローカル情報に基づいて、ARPを用いて次のホッピングMACを決定することで、MACアドレスを構築することができるからである)。
この代わりに、デスティネーションのvport(この場合にはVM211)が、MACアドレスのためのスペースにエンコードされる。次にパケットが、デスティネーションとしてエッジノードのIPアドレスで、GRE+IPにラップ(wrap)される。今、パケットがL3ネットワークを介してルーティングされる準備ができた。図7を参照すると、プレルーティング及びポストルーティング及びルーティングデスティネーションを含むアクションリストをフローテーブル162にインストールしてよく、このフローの全ての将来のパケットに一致させ、パケットをトンネリングプロトコルを介して、オペレーティングシステムルータ113によって送り出し、NIC B112へと送信する。パケットは、いずれの他のIPパケットもそうされるように、NIC B112を出た後、エッジコネクタ204のデスティネーションIPアドレスで、内部プロバイダ構成152でルーティングされる。
パケットがエッジコネクタ204により受信されると、フロープログラマブルスイッチのトンネルポートに対応しているトンネルで受信される。パケットはトンネルポートで受信されるので、エッジコネクタは、このパケットを、外向きポートに入ってくるパケットとは異なるように処理してよい。パケットはここでも、このフローで受信される最初のパケットであり、エッジコネクタ204は、決定エンジンを呼び出す。一実施形態では、トンネルキーは、デスティネーションvport idを符号化する。決定エンジンは、 MACアドレス及び仮想マシン211のローカルポート番号を決定するために、 vport idを使用してもよい。いくつかの例では、決定エンジンは、VM211のMACアドレスを決定するために、ARP要求を開始することができる。代替的に、MACアドレスがARPテーブル内にキャッシュされてもよい。ARPテーブル(MACのIP)は、仮想ルータのポートごとに維持されている。ARPテーブルは、共有データベースに格納されて分散状態で共有することができる。決定エンジンが、VM211のvportを決定した後、システムは、このフローの将来のパケットをルーティングするために、フローテーブルにフローをインストールすることができる。パケットは、VM211に対応するフロー設定可能なスイッチのポートにルーティングされてもよい。VM211は、ホスト221で実行されるローカル仮想マシンであり、これは、エッジコネクタ205をホストもしており、決定エンジンは、依然として、デスティネーションMACアドレスを見つけるために、デスティネーションIPアドレスを利用してよい。このように、システムは、VMが別のルータまたはスイッチに対してローカルか標準的なポートかを抽象化(abstract)して、さらに、システムの柔軟性を提供する。
フローが構築されると、同じ接続の後続するインバウンドのパケットが、エッジコネクタ203及び204のフローテーブルのフローと一致して、決定エンジンを呼び出さずに、これらのマシンのフロー設定可能スイッチによって修正及び転送される。このプロセスは、所望のデスティネーションへシステムからの接続のインバウンドフローを構築する。
仮想マシン211が同じ接続で応答すると、それが送る第1のパケットが、反対方向に対応するフローを確立するようにシステムをトリガする。新しいフローが確立されると、決定エンジンは、フローが以前に反対方向に確立されたかどうかを決定するために、分散状態にアクセスすることができる。この分散状態は、 NATなどの他のプロセスの実装を容易にし、さらに、後述するようにシステムに、終わった接続をクリーンアップさせる。他の実施形態では、異なる物理コンポーネント上にホストされる仮想マシンが、同じ仮想ルータに接続することができる。
図10を参照すると、上述した方法の一実施形態を実行するエッジコネクタで実行されるプロセスの高レベル概略図が示されている。一実施形態では、エッジコネクタが、外部ネットワーク(たとえばインターネット)からパケットを受信する少なくとも1つのCPUをもつ物理マシンの上で実行され、ここでは、パケットが、システムのテナントに関連するIPアドレスにアドレス指定されている。テナントIPアドレスが、システム内の1以上のホスト上で実行されているテナント仮想マシンに割り当てられていてよい。一実施形態では、テナント仮想マシンに関連付けられているIPアドレスは、テナントまたはサービスプロバイダが、仮想マシンをシステムの異なるホストに移動させた場合であっても、一定にとどまってよい。一実施形態では、システムは、1つのアップリンクの複数のIPアドレスを、それぞれ別のエッジコネクタ及びそれぞれ異なるテナント仮想マシンにルーティングさせることにより、複数のテナントに、1つのサービスプロバイダのアップリンクを共有させる。エッジコネクタがステップ410でパケットを受信すると、ステップ412で複数のデータを抽出する(これらに限定はされないが、ソース及びデスティネーションアドレス及びソース及びデスティネーションポート)。データを抽出した後で、エッジコネクタは、フローテーブルの複数のデータをルックアップして(ステップ414)、フローが既に構築されたかを判断する(ステップ416)。フローの一例は、TCP接続の1つの方向である(インバウンド及びアウトバウンドフローの組み合わせで、1つのTCP接続が形成される)。フローが既に存在している場合には、フローアクションリストがパケットに適用され、パケットが、ステップ418で、フローアクションリストが示すフロー設定可能スイッチのポートに転送される。
フローが存在しない場合には、これが、ノードが受信するフローの第1のパケットであり、エッジコネクタは、ステップ417で、どの仮想ポートにパケットが到着したかを、たとえばMACアドレス、ソース及びデスティネーションアドレス、または、ソース及びデスティネーションポートに基づいて決定する必要がある。エッジコネクタが仮想ポートIDを決定すると、エッジコネクタは、そのポートが接続されているのはどの仮想転送エレメントかを決定することができる。
図10の実施形態では、仮想転送エレメントが仮想ルータであるが、他の仮想転送エレメント(たとえば仮想スイッチ)を、後述のシステムでは適宜利用することもできる。エッジコネクタがVFEを決定すると、エッジコネクタは、ステップ420で別のルックアップを実行する。ルックアップは、一連の仮想転送エレメントで、デスティネーションIPアドレスをルックアップすることで実行される。仮想転送エレメントは、仮想ルータと仮想スイッチ(仮想ルーティングテーブルを含む)の任意の組み合わせを含んでよく、転送されるパケットに対して適切な経路を決定してよい。ステップ420に示す実施形態では、決定エンジンは、第1の仮想転送エレメントのパケットのデスティネーションを決定する。第1の仮想転送エレメントは、仮想ルータであってよく、この場合には、戻されるデスティネーションは、外向きポートまたは内向きポートであってよい。
上述したように、内向きポートは、第2の仮想ルータの別の内向きポートと対になっており、第2の仮想ルータは別のルーティングテーブルを持つ。内向きポートが戻される場合には、決定エンジンは、ステップ420で、第2の仮想ルータのルーティングテーブルでデスティネーションアドレスをルックアップして、外向きポートが返されるまで続ける。一実施形態では、各テナントが、該テナントが処理するすべてのパケットをルーティングするよう構成されている1つの仮想ルータを有してよい。他の実施形態では、いくつかのテナントが複数の仮想ルータ、仮想スイッチ、または、仮想ネットワークトポロジーのテナントの部分を定義する、その他の仮想転送エレメントを有してよい。決定エンジンはさらに、各仮想ルーティングテーブルからパケットに実行される一連のアクションを構築する。各ルーティングステップは、さらに、アクションリストに加えられ、フロールールに組み込まれ、フローに一致するパケットに適用される、プレルーティングまたはポストルーティング処理を有していてよい。
外向きポートが戻されると(ステップ424)、エッジコネクタが、外向きポートがローカルかを決定する(ステップ426)。ポートがローカルである場合には、アクションをアクションリストに追加して(ステップ430)、パケットをローカル外向きポートにルーティングする。様々な実施形態では、ローカル外向きポートが、ネットワークインタフェースカードまたは仮想マシンであってよい。フロールールをフローテーブルに追加して(ステップ430)、パケットに適用する(ステップ418)。外向きポートがローカルではない場合には、ポートは異なるエッジコネクタにある。一実施形態では、エッジコネクタは、トンネルポート(たとえばGRE_IPトンネルポート)によって接続されていてよい。ステップ432で、エッジコネクタは、仮想ポートにアクセスして、テーブルをトンネリングして、外向きポートをトンネルポートにマッピングしようと試みる。テーブルマッピングをトンネリングするための対応するエントリが仮想ポートにない場合には、パケットをドロップして、ICMPパケットを送信するアクションをアクションリストに追加して(ステップ434)、フロールールをフローテーブルに追加して(ステップ430)、フロールールをパケットに適用する(ステップ418)。
外向きポートが、テーブルをトンネリングするための外向きポートにある場合には、パケットをそのトンネルに出力するアクションをアクションリストに追加して(ステップ436)、フローをフローテーブルに追加して(ステップ430)、アクションリストをパケットに適用する(ステップ418)。
一実施形態では、システムは、フロー設定可能スイッチデータパスにアクションリスト及びフロールールをインストールし、フロー設定可能スイッチは、アクションリストを、フロールールに一致した後続するパケットに適用する(ステップ416に示されている)。上述したように、アクションリストの一部は、パケットが送信されるのはフロー設定可能スイッチのどのポートであるかを含む。エッジコネクタは、IPテーブルをホストするためのポートでポートを検索し、IPアドレスにパケットを送信する。その後、フローテーブルにアクションリストを格納する。一致する複数のデータを有している全ての後続するパケットは、それらに適用される同じアクションのセットを有しており、これにより、同じIPアドレスにルーティングされる。
仮想ルータのデスティネーションアドレスを識別するプロセスの間に、フローがルーティング不可能であったり、ブラックホールであったり、拒絶ルートに一致していたりする場合もあり、この時点で、パケットがドロップされたり、ICMPパケットが戻されたりする。この実施形態では、フローは、フローのルールに一致するすべてのパケットをドロップするように作成することができる。このように、システムは、サービスプロバイダまたはテナントによって確立されたルールに従って、ルーティング不可能なパケットを処理したり、不要なデータを選択的にスクリーニングしたりするよう構成することができる。
また別の実施形態では、テナントVMをホストしているエッジコネクタが、複数のIPアドレス及び内部構成ネットワークに接続されている複数のNICを有していてよい。この場合には、インターネットに面しているエッジコネクタが、エッジコネクタをホストしているVMに対する複数の経路のうち1つを選択することができる。さらに、複数のIPアドレスを有しエッジコネクタをホストするVMが、エッジコネクタを特定するための固有のIDを有していてよく、決定エンジンのルーティングフローが、たとえばロード・バランシング・アルゴリズムを利用して、またはランダムに、エッジコネクタをホストするVMのIPアドレスの1つを選択することができる。
システムの別の実施形態は、IPアドレス以外のエッジノードの識別子を利用してよい。たとえば、ネットワーク構成は、回路ベースであってもよいし(たとえばマルチプロトコルラベルスイッチ(MPLS))、エッジコネクタ間に専用回路を有する別のカスタムOpenFlowコントローラであってもよい。この実施形態では、回路は、エッジノード上のフロー設定可能スイッチの間のGREトンネルを置き換えてもよい。
別の実施形態では、システムが、ルーティングステージの前後のプレルーティング及びポストルーティングステージを提供する。プレルーティング及びポストルーティングを利用して、ネットワークアドレス変換(NAT)、ロード・バランシング、または他のL3/L4特徴部を実装してよい。一実施形態では、プレルーティングステージがフローのデスティネーションを変更してよく(たとえばネットワークアドレス変換におけるようなもの)、アウトバウンドルーティングがフローのソース(ここでも、一例としてネットワークアドレス変換)を変更してよい。1つの接続(たとえばTCP接続におけるようなもの)を含む順方向及び逆方向のフローの署名によって実行されるマッピングを調整するために、接続変換を大きなタイムアウトとともに分散状態で格納してよい。これらの変換はさらに、接続トラッキングによってクリーンに閉ざされた接続が検知されたときに積極的にクリーンアップされてよい。
本システムの一実施形態では、NATが、プレルーティング及びポストルーティング変換を利用して実装される。フローのセットアップにおいて、NATのプレルーティングステージは、フローが前に反対方向に(インバウンド対アウトバウンド)分散状態で構築されているかどうかを判断し、そうであれば、前に作成されたマップを新たなフローについて逆にする。フロールールは、全てのノードがアクセス可能な分散状態システムに格納されているので、新たなフローを異なるノードに作成するときに、反対方向のフローが前に作成されていたかを決定することができる。
反対方向のフローが分散状態でない場合には、決定エンジンは新たな変換を作成して、この変換マップを、新たなフローに関連付けられている分散状態で格納する。インバウンドフローについては、または、第1の構築されているフローについては、アドレス変換を、ルーティングステップの前にデスティネーションアドレスに適用してよく、ルーティングステップは、変換されたIPアドレスに基づいてルーティングしてよい。アウトバウンドフローでは、または接続の第2のフローでは、ルーティング後にNATを実行して、ソースアドレスを外部のプライベートではないIPアドレスに変換してよい。逆方向のフローの最初のパケットが対応するエッジコネクタで受信されたときに変換情報がアクセス可能となるよう、変換情報は、フローの最初のパケットを転送する前に、フロールールに関連付けられた分散状態に格納されてよい。
別の実施形態では、デスティネーションネットワークアドレス変換(DNAT)を利用して、公表されているIPアドレスをプライベートネットワークアドレスに変換して、プライベートネットワークでホストされているサービスを汎用インターネットに露呈させてよい。一部の実施形態では、非武装地帯(DMZ:demilitarized zone)を汎用インターネットとプライベートネットワークとの間に提供してよい。DNATプロセスでは、入ってくるフローについてのプレルーティングステージ中に、デスティネーションアドレスを変換してよく、且つ、対応する外に出ていくフローにおいて、ソースアドレスをポストルーティングステージ中に変換してよい。一実装例では、デスティネーションアドレスが、いくつかの可能性のあるサーバの1つであってよく、デスティネーションサーバは、ロード・バランシング・アルゴリズム(たとえばランダムアルゴリズムまたはラウンドロビンアルゴリズム)によって選択されてよい。
ソースネットワークアドレス変換( SNAT )では、プライベートLAN上の複数のクライアントが同じパブリックIPアドレスを共有する場合がある。外部ネットワークへのテナントの仮想マシンからの接続などのアウトバウンド接続に関連付けられたソースアドレスは、アウトバウンドフローで同じIPアドレスに変換することができる。対応するインバウンドフローでは、パケットのデスティネーションIPアドレスは、例えば、ポート番号及びソースIPアドレスに基づいて、対応するプライベートIPアドレスに変換することができる。
別の実施形態では、システムが、プライベートローカルエリアネットワークのためのARPのなりすまし(ARP spoofing)を提供するよう構成されていてよい。システムは、他の1つのホストが彼らのためのARPを行うときに当該ホストになりすますことで、ゲートウェイ/ブロードキャストアドレスを消費することなく、仮想マシンゲスト等の1つのネットワークホストに、仮想ルータポートに接続させることができる。従来のEthernet(登録商標)ベースの設計では、これにより、少なくとも/30アドレスレンジ(a /30 address range)を消費することになり、これには、ゲストのアドレス、ゲートウェイアドレス、及びブロードキャストアドレス、これに加えて1つの未使用のアドレスが含まれる。
消費されるIPアドレスの数を低減させる1つの方法として、ルータの各ポートを、MACアドレス、ネットワークプレフィックス(nw_prefix)、及び、ポートに接続されている1つのホストが存在しているかを示すフラグで構成してよい。使用されるゲートウェイアドレスは、nw_prefixレンジの最初のアドレスであってよい。単一のホストフラグが設定されていない場合には、ルータは、その標準的な動作ルールに従って、ポートへの、または、ポートからのトラフィックを処理することができる。単一のホストフラグが設定されている場合には、nw_prefixのアドレス部分が、そのポートの単一のネットワークホストのアドレスを特定している。ルータのダウンストリームポートは、これらが、設定されている単一のホストフラグをもつ設定されていない単一のホストフラグをもつ重ならないnw_prefixesを含むよう構成されていてよく、これは、これらのnw_prefixesが特定する同一のアドレスレンジを共有してよい。多くの実施形態では、単一のホスト及び単一ではないホストポートが使用するアドレスレンジが重ならない。
IPパケットが、単一ホストフラグが設定されたポート間で送信される場合、ルータは生存時間(「TTL」)のチェックまたはデクリメント、L2スイッチのエミュレートを行うことなく、IPパケットを転送することができる。ARP要求が、単一のホストフラグが別の単一のホストポートに関連付けられているアドレスについて設定されているポートから受信される場合には、ルータはARPに応答して、ターゲットになりすます。この結果、そのローカルセグメントだと考えるものの外部のホストにトラフィックを送信したいと望む単一のホストが、ゲートウェイアドレスについてARPを行い、ルータの通常の振る舞いが、そのポートのMACを返し、ホストが次にそのIPパケットを送信する。トラフィックを、そのローカルセグメントの一部と考えるホストに送信したと望む単一のホストは、そのホストに直接ARPする。ルータは、そのアドレスの単一のホストポートを有している場合、そのARPに応答し、この場合に、ホストは、そのIPパケットを送信する。単一のホストのフラグを立てられているポートの上にないホストの振る舞いは変更されなくてよい。
システムの別の実施形態では、ステートフル接続トラッキングを利用して、接続の生存サイクルをトラッキングして、これら接続に関連付けられているデータが、一定のイベント(たとえば接続の終了)においてクリーンアップされるようにしてよい。クリーンアップされるべきデータには、接続がきちんと遮断されているときに、分散状態に格納されているデータ(たとえばステートフルNAT及びLBマッピング等)を含む様々な接続状態データを含んでよい。接続がきちんと遮断されていない場合には(たとえばいずれかの側でクラッシュが生じたり切断が生じたりしている場合)、大きな構成可能なタイムアウトの後に、接続状態を期限切れにしてよい。接続は、TCP接続であってよく、順方向のフローと戻りフローという2つのフローからなる。TCPの場合には、システムは、接続状態を決定するべく、TCP接続ステートマシンをシミュレーションする。
また別の実施形態では、システムは、接続の順方向のフローとは異なるノードが処理する接続の戻りフローを提供する。このタイプの接続は、分割フロー(split flow)と称され、順方向のフロー及び逆方向のフローが異なる決定エンジンによって処理されることに特徴がある。一実施形態では、システムは、順方向のフロー及び逆方向のフローを見ている決定エンジンに、それぞれの側の閉鎖を通信させることによって、分割フローをサポートする。たとえば、順方向のフローのFINを処理する決定エンジンは、戻りフローを処理する決定エンジンに対して、FINのACKに一致するアクションをインストールするよう通知し、この逆もまた然りである。決定エンジンは、接続の両側が閉ざされ、閉鎖された接続に関するデータをクリーニングすることができるときを特定することができるよう協力する。決定エンジン間のこの通信は、分散状態システムの共有状態によって生じてよい。加えて、分散状態システムは、接続の両側の閉鎖等の一定の条件を特定してよく、通信のフローそれぞれを処理する決定エンジンに通知を行ってよい。
別の実施形態では、エッジノードまたはエッジコネクタがフローのセットアップを処理するとき、順方向であろうと逆方向であろうと(トラッキングすべき接続の一部である)(TCP接続であるか、ステートフルトラッキングが必要であるか(たとえば接続がNATされているか)に基づいて)、エッジコネクタが、TCP FINビットについてチェックを行うアクションを追加して、FINパケットを出力する。FINパケットを受信すると、逆方向のフローを処理する決定エンジンが、FINのACKをチェックするアクションをインストールしてよい。FINのACKがシステムから見える場合には、接続は半分開いているととらえられ、ACK以外のデータは予期されない。データが半分開いた接続によって受信されると、システムは、システムが予期しない状況を経験したことを示すエラーを生成してよい。
決定エンジンが新たなフローを受信するときには、TCP FIN及びRSTフラグについてチェックするルールをインストールする。システムがRSTパケットを受信する場合には、ピアがRSTパケットを受信すると接続が終了されるから、接続のフロールールを、短いタイムアウトを有するよう修正する。システムがFINパケットを受信する場合には、戻りフローのアクションリストに、FINパケットのシーケンス番号である受領承認されたシーケンス番号と一致するアクションを挿入する。システムが、FINを受領承認するパケットを取得する場合、これは閉じられた接続の側をマークしている。両側が閉じている場合には、接続のフロールールを、短いタイムアウトを有するように修正する。一部の例では、FINのACKがドロップされてよく、この場合には、閉じる側が、FINパケットを同じシーケンス番号で再送信する。フロールールが期限切れになる場合には、システムは、接続が閉じられ、NATトラッキング等の追加の状態データをクリーンアップすることができる、と特定する。
本開示におけるシステム及び方法の別の実施形態では、仮想スイッチが、追加の仮想転送エレメントとして提供される。システムは、各仮想L2スイッチの一部であるエッジコネクタのポート間にL2パケットを送信してよい。このようにして、システムは、物理スイッチに接続されているNICの間にパケットを送信する物理L2スイッチの動作をシミュレーションしてよい。システムはさらに、パケットL3パケットを、上述したように仮想ルータを使用して送信してよい。フローをセットアップするときには、受信vport UUIDを、入力ポートまたはMACアドレスのマッピングから特定する。このvport UUIDに基づいて、vportが属する仮想デバイスを決定する。仮想デバイスのタイプに基づいて(スイッチまたはルータ)、パケットはルーティング(上述したように)またはスイッチされる。
つまり、パケットがL3パケットである場合には、上述した仮想ルータプロセスに従って処理される。または、パケットがL2パケットであり、図5及び図6に示すように仮想スイッチによって処理される。図5及び図6に示すプロセスは、図10に示すプロセスに実質的に類似している。VFEがステップ417で決定されると、エッジコネクタは、VFEが、仮想ルータまたは仮想スイッチであるかを決定する。VFEが仮想ルータである場合には、処理は、図10に示すように続けられる。VFEが仮想スイッチである場合には、処理はポイントAで続けられ(520)、図12に示すポイントA(520)に接続される。図12に示すように、VFEが仮想スイッチである場合には、エッジコネクタは、デスティネーションMACアドレスが、ブロードキャストアドレスまたはユニキャストMACアドレスであるかを決定する(ステップ610)。MACアドレスがブロードキャストアドレスである場合には、パケットは、仮想スイッチに接続されている各ポートに送信される(ステップ620)。パケットごとに考えると、ステップは、ステップ426から始まる図10のプロセスに等しくてよい。VFEのメンバーである各外向きポートについて、パケットは、ローカルvportまたはその外向きポートに対応しているトンネルポートに送信される。
パケットがブロードキャストパケットではない場合には(たとえばユニキャストパケット)、たとえばvport tableへのMACからデスティネーションMACをルックアップすることで、デスティネーションMACを決定する(ステップ630)。対応するエントリが存在しない場合には(ステップ640でテストされる)、ドロップアクションをアクションリストに追加する(ステップ650)。そして処理は図11のポイントBに進み、ここではルールがフローテーブル(430)に追加され、アクションがパケット(418)に適用される。
MACに、ステップ640のvport tableへの対応するvportがある場合には、処理が図11のポイントCに続き、処理は、前に説明したようにステップ426に進む。
図7及び図8を参照すると、本開示のシステム及び方法の別の実施形態が示されている。図13に示すように、仮想ネットワークトポロジーは、外部ネットワーク(たとえば汎用インターネット902)への複数の接続901を有するプロバイダ仮想ルータ900を含む。この構成においては、仮想ネットワークには、外部ネットワークへの複数の接続経路が提供されており、これによりシステムに柔軟性及び冗長性が提供されている。プロバイダ仮想ルータ900は、複数のエッジノードに対応している複数の外向きポートを有してよく、ここでは、エッジノードが、外部ネットワークにアクセスを提供する物理コンポーネントである。
一実施形態では、エッジノードは、ルータまたはサーバに面しているインターネットであってよい。仮想ネットワークトポロジーも、複数のテナント仮想ルータを含んでよい。一構成では、各テナント仮想ルータが、テナント仮想データセンタに関連付けられていてよい。図13に示すように、第1のテナント仮想データセンタ903が複数の第1のテナント仮想マシン905と通信する第1のテナント仮想ルータ904を含んでよい。第1のテナント仮想マシン905は、さらに、テナント仮想スイッチ906と通信してよく、これは、図示されている仮想Ethernet(登録商標)スイッチであってよい。第1のテナント仮想マシン905は、ネットワークの、1つ、または、1つを超える数のサーバまたはホストノードに存在していてよい。
さらに図13に示すように、仮想ネットワークトポロジーが、第2のテナント仮想データセンタ907を有してよく、これは、プロバイダ仮想ルータ900と通信する第2のテナント仮想ルータ910及び複数の第2のテナント仮想マシン909を含んでいる。複数の第2のテナント仮想マシン909は、さらに、第2のテナント仮想スイッチ908と通信してもよく、これは、図示した仮想Ethernet(登録商標)スイッチであってよい。
仮想ルータはさらに、各テナントが望むロード・バランシング、DHCP、及び/または、ネットワークアドレス変換等の追加機能を実行してよい。1つの仮想ルータだけが各テナントについて図示されているが、他の実施形態では、テナントは複数の仮想ルータを利用して、テナント固有の仮想ネットワークトポロジーを作成してもよい。テナント固有の仮想ネットワークトポロジーは、所望の構成のテナント仮想マシンの組織を提供し、または、同じテナントが制御する仮想マシン間に隔離を提供してもよく、たとえばテナントが、複数の離散した機能またはビジネスプロセスをホストするためにネットワークを利用することができる。
別の実施形態では、テナントの仮想ルータは遠隔のテナントオフィスやその他の場所への安全なアクセスを提供することができる。図示する第2のテナント仮想ルータ910は、第2のテナントオフィス913の第2のテナントVPNルータ911と第2のテナントオフィスのネットワーク912とに接続を提供する。このようにして、各テナントは、自身の仮想データセンタの構成を定義することができる。サービスプロバイダは、従って、本開示のシステム及び方法を利用して、物理ネットワーク上の多数のテナントのカスタマイズ可能なソリューションを提供することができる。
図14を参照すると、図13に示す仮想ネットワークトポロジーが、物理ネットワークに重ねられて示されている。物理ネットワークは、インターネット902等の外部ネットワークにアクセスするよう構成されている複数のエッジノード920を含んでよい。物理ネットワークはさらに、仮想マシンをホストするよう構成されている複数のホストノード921を含んでよい。ネットワーク922は、複数のエッジノード920と複数のホストノード921とを相互接続してよく、データパケットをシステム全体にトランスポートするよう適合されていてよい。一実施形態では、ネットワークはプライベートIPネットワークであってよい。エッジノード920及びホストノード921は対称なアーキテクチャを有していてよい。一実施形態では、エッジノード920及びホストノード921は、クラウドコンピューティングシステムで動作するよう構成されている汎用サーバである。
別の実施形態では、エッジノード920が、専用のインターネットに面するルータである。また別の実施形態では、サーバその他のコンピューティングデバイスは、両方とも、同じネットワークのエッジノード及びホストノードとして機能してよい。システムはさらに、ネットワークを介して、エッジノードのそれぞれ及びホストノードのそれぞれと通信する分散状態システムを含む。分散状態システムは、仮想ネットワークトポロジーに関連付けられたデータを格納してよく、共有データベースに格納されてよい。システムは、ノードそれぞれで動作するソフトウェアコンポーネントを含んでよく、プロバイダの仮想ルータ及びテナント仮想ルータのそれぞれを含む仮想ネットワークトポロジーを実装することができる。新たなルートを構成するとき、ノードそれぞれで動作するソフトウェアコンポーネントは、分散状態システムと通信して、分散状態が、システムの仮想ネットワークトポロジー及びフロールールの包括的なマッピングを維持するようにする。他の例では、分散状態システムが分割され、複数の分散状態を、仮想ネットワークの選択された部分について維持するようにする。
図14に示すように、仮想ネットワークトポロジーが物理ネットワークに重ねられる。プロバイダ仮想ルータは、エッジノード920それぞれと関連付けられている外向きポートを有してよい。プロバイダの仮想ルータ900の外向きポートは、インターネットサービスプロバイダに対して1以上のアクセスポイントにマッピングを行って、システムと外部ネットワーク(たとえばインターネット)との間の複数の接続を提供してよい。プロバイダ仮想ルータ900は、さらに、テナントの仮想ルータの対応するピアの内向きポートへの仮想リンクを定義する内部ポートを有してよい。図示されているように、システムの各仮想リンクのスループットを選択してよい。たとえばサービスプロバイダは、第1のテナント仮想ルータ904には50Mbpsの仮想リンクを提供し、第2のテナント仮想ルータ910には10Mbpsの仮想リンクを提供してよい。仮想リンクは構成可能なので、第2のテナントが、自身の仮想データセンタについてより大きなスループットを購入することを希望する場合、サービスプロバイダは、ハードウェアを修正することなく、利用可能なスループットを修正することができる。
図示の実施形態では、各ホストノード920は、第1のテナントに関連する1つの仮想マシンおよび第2のテナントに関連する1つの仮想マシンをホストしている。仮想ネットワークトポロジーを使用して、サービスプロバイダは、物理的なネットワークハードウェアの再構成なしで利用可能なホストノード間のテナントの仮想マシンを再割り当てすることができる。分散状態のシステムに格納されている仮想ネットワークトポロジーは、システムを動的に再構成することができる。
別の実施形態では、複数のテナント仮想ルータのそれぞれが、少なくとも1つのパブリックIPアドエスを露呈するよう構成されていてよく、複数のエッジノードの1以上により外部ネットワークにアクセスするよう構成されていてよい。各テナント仮想データセンタに、複数のエッジノードにより外部ネットワークにアクセスさせるようにすることで、1つのエッジノードの失敗によって、ネットワークで動作しているテナントのサービスの利用可能性が妨げられる可能性が低くなる。
ここで利用される「キャッシュ」その他の変形は、データがキャッシュとして明示的に指定されるメモリに格納されるかに関わらず、一時的なデータストレージの全ての形態のことを示す。
ある実施形態について記載したが、精神及び範囲を逸脱することなく、様々な変更を行い、均等物で置き換えることができる。加えて、多くの修正を行って、精神及び範囲を逸脱せずに特定の状況または材料を本開示の教示に適合させることができる。
本発明の例を下記の各項目として示す。
[項目1]
基礎となるネットワークの第1のノードの第1のネットワークインタフェースに到着するネットワークパケットを受信する段階と、
少なくとも前記パケットと前記第1のネットワークインタフェースの識別子とを決定エンジンに送信する段階と、
複数の仮想ネットワークデバイスを含む仮想ネットワークトポロジーの横断の、前記決定エンジンによるシミュレーションに基づいて前記パケットを処理すべきやりかたを決定する段階であって、前記決定エンジンは、前記複数の仮想ネットワークデバイスのための仮想デバイス構成と前記仮想ネットワークトポロジーとを格納する、前記基礎となるネットワークからアクセス可能な共有データベースと通信する、段階と、
前記シミュレーションに基づいて前記パケットを処理する段階と
を備える、コンピューティング方法。
[項目2]
各ノードが、前記決定エンジンを実行して、前記シミュレーションを実行して、前記ノードに到着するパケットを処理すべきやりかたを決定する段階を備える、項目1に記載の方法。
[項目3]
前記パケットを処理すべきやりかたを決定する段階は、
前記パケットに対する前記決定エンジンによる前記シミュレーションの結果に関連付けられているパケットプロトコルヘッダ・パターンを決定する段階を含み、
前記方法はさらに、
前記パケットプロトコルヘッダ・パターンと前記パケットの前記シミュレーションの前記結果とを格納する段階と、
前記第1のノードで第2のパケットを受信する段階と、
前記第2のパケットを前記パケットプロトコルヘッダ・パターンと比較する段階と、
前記第2のパケットが前記パケットプロトコルヘッダ・パターンに一致している場合、前記パケットの前記シミュレーションについて格納されている前記結果を取得することで前記第2のパケットを処理すべきやりかたを決定する段階と、
前記パケットについての、前記決定エンジンによる前記シミュレーションについての取得された前記結果に基づいて前記第2のパケットを処理する段階と
を備える、項目1に記載のコンピューティング方法。
[項目4]
前記パケットは、複数のフィールドを含むプロトコルヘッダを含み、
前記パケットプロトコルヘッダ・パターンを決定する段階は、
前記決定エンジンによる、前記複数の仮想ネットワークデバイスを含む前記仮想ネットワークトポロジーの前記横断の前記シミュレーション中に読み出された前記プロトコルヘッダの前記複数のフィールドのそれぞれを特定する段階を含む、項目3に記載の方法。
[項目5]
前記パケットプロトコルヘッダは、前記決定エンジンによる前記シミュレーション中に読み出されなかった前記プロトコルヘッダのフィールドについてのワイルドカードを含む、項目4に記載の方法。
[項目6]
前記パケットはプロトコルヘッダを含み、
前記シミュレーションはさらに、前記パケットが仮想ネットワークデバイスから発行されるときの前記パケットのプロトコルヘッダに対する修正を決定することを含み、
前記パケットの処理は、決定された前記修正を前記パケットのプロトコルヘッダに適用することを含む、項目1に記載の方法。
[項目7]
さらに、前記パケットを処理すべきやりかたを決定する段階は、
前記パケットが、前記第1のネットワークノードの第2のネットワークインタフェースから発行されるべきであると決定する段階を含み、
前記パケットの処理は、前記パケットを前記第2のインタフェースから発行する段階を含む、項目1に記載のコンピューティング方法。
[項目8]
さらに、前記パケットを処理すべきやりかたを決定する段階は、
前記パケットが、前記基礎となるネットワークの第2のノードの第2のネットワークインタフェースから発行されるべきであると決定することを含み、
前記パケットの処理は、前記パケットを前記基礎となるネットワークの前記第2のノードに配信して、前記パケットを前記第2のインタフェースから発行することを含む、項目1に記載のコンピューティング方法。
[項目9]
さらに、前記パケットを処理すべきやりかたを決定する段階は、
前記基礎となるネットワークの前記第2のノードに配信する前に、前記パケットのプロトコルヘッダを修正すべきやりかたを決定する段階を含む、項目8に記載のコンピューティング方法。
[項目10]
前記パケットの処理は、前記パケットを前記第1のノードから前記第2のノードに、トンネルキーを含むトンネリングプロトコルパケットのペイロードとして転送することを含み、
前記トンネルキーは、前記第2のネットワークインタフェースのグローバル識別子をエンコードする、項目8に記載のコンピューティング方法。
[項目11]
さらに、前記第2のノードで前記決定エンジンを呼び出すことなく、前記第2のネットワークインタフェースから前記パケットを発行する段階を備える、項目10に記載の方法。
[項目12]
前記パケットがインタフェースセット識別子に対応しているネットワークインタフェースセットから発行されるべきであると決定する段階をさらに備え、
前記ネットワークインタフェースセットの少なくとも一部は、第2のノードに位置しており、
前記パケットの処理は、
前記第1のノードにローカルな前記ネットワークインタフェースセットの各ネットワークインタフェースに前記パケットを配信することと、前記パケットを、前記第1のノードから前記第2のノードに、トンネリングプロトコルパケットの前記ペイロードとして、前記インタフェースセット識別子をエンコードするトンネルキーを利用して転送することとを含む、項目1に記載のコンピューティング方法。
[項目13]
前記基礎となるネットワークはマルチキャストをサポートしており、
前記方法はさらに、
各インタフェースセット識別子をマルチキャストアドレスにマッピングする段階と、
前記基礎となるネットワークの各ノードについて、前記ノードの少なくとも1つのネットワークインタフェースが属す前記インタフェースセット識別子のそれぞれについてのマルチキャスト・サブスクリプションを維持する段階と、
前記パケットを前記トンネリングプロトコルパケットの前記ペイロードとして少なくとも前記第2のノードにマルチキャストする段階と、
各ノードについて、当該ノードにローカルなインタフェースセットに対応している任意のネットワークインタフェースから前記パケットを発行する段階と
を備える、項目10に記載のコンピューティング方法。
[項目14]
前記基礎となるネットワークは、マルチキャストをサポートしておらず、
前記方法はさらに、
前記ネットワークインタフェースセットに属すローカルネットワークインタフェースを有する基礎となるネットワークノードのセットを決定する段階と、
前記第1のノードから前記基礎となるネットワークノードのセットの各ノードに前記パケットを転送する段階と、
各ノードについて、当該ノードにローカルなインタフェースセットに対応している任意のネットワークインタフェースから前記パケットを発行する段階と
を備える、項目10に記載のコンピューティング方法。
[項目15]
複数のノードを有する基礎となるネットワークからアクセス可能な共有データベースを維持する段階であって、前記共有データベースは、複数の仮想ネットワークデバイスの仮想デバイス構成及び仮想ネットワークトポロジーを格納している、段階と、
前記基礎となるネットワークの第1のノードの第1のネットワークインタフェースに到着するネットワークパケットを受信する段階と、
前記複数の仮想ネットワークデバイスを含む前記仮想ネットワークトポロジーの前記パケットの横断のシミュレーションに基づいて前記ネットワークパケットを処理するアクションを決定する段階と
を備えるコンピューティング方法。
[項目16]
前記複数の仮想ネットワークデバイスを含む前記仮想ネットワークトポロジーの前記パケットの横断の前記シミュレーションを実行するための決定エンジンを提供する段階をさらに備え、
前記決定エンジンは、各それぞれのノードで受信したパケットの前記シミュレーションを実行するべく、前記複数のノードのそれぞれに動作可能である、項目15に記載の方法。
[項目17]
前記仮想ネットワークトポロジーは、前記複数の仮想ネットワークデバイスに対応している複数の仮想ポートを含み、
各仮想ポートは、前記基礎となるネットワークのノードのネットワークインタフェースに関連付けられた外向きポート、または、仮想ネットワークデバイス間の仮想リンクに関連付けられた内向きポートのうちの1つに対応している、項目15に記載の方法。
[項目18]
仮想ネットワークトポロジーおよび仮想デバイス構成を格納する前記共有データベースは、
前記仮想ポートの外向きポートまたは内向きポートのいずれかとしての識別情報を含む、前記複数の仮想ポートのそれぞれのための構成と、
前記複数の仮想ポートに関連付けられている前記複数のネットワークデバイスのそれぞれのための構成と、
前記基礎となるネットワークノードの識別子に対するネットワークインタフェースの識別子のマッピングと、
ネットワークノードの基礎となる対応するネットワークインタフェースに対する外向きポートのマッピングと、
各デバイスの内向きポートそれぞれの、仮想リンクにより接続される別のデバイスのピア内向きポートに対するマッピングと
を含む、項目17に記載の方法。
[項目19]
前記仮想ネットワークトポロジー及び仮想デバイス構成の少なくとも一部を、前記基礎となるネットワークの前記ノードにキャッシュする段階と、
前記共有データベースが修正されたときに、キャッシュされている前記仮想ネットワークトポロジー及び前記仮想デバイス構成を更新する段階と
をさらに備える、項目15に記載の方法。
[項目20]
仮想デバイスへのパケットの到着のシミュレーション時に、前記シミュレーションを実行している前記ノードの前記仮想デバイスの構成をロードする段階をさらに備える、項目15に記載の方法。
[項目21]
前記第1のネットワークインタフェースを、対応する仮想ポートにマッピングして、前記ポート及び前記ポートに関連付けられている前記ネットワークデバイスの構成を取得する段階と、
前記ポートに関連付けられている前記ネットワークデバイスのシミュレーションに基づいて前記ネットワークパケットを処理する前記アクションを決定する段階と
をさらに備える、項目15に記載の方法。
[項目22]
前記アクションは、
前記ネットワークデバイスの内部状態を修正すること、
前記パケットをドロップすること、
前記パケットのプロトコルヘッダを修正すること、
前記パケットを、前記ネットワークデバイスの1以上の仮想ポートから発行すること、
別のパケットを、前記ネットワークデバイスの1以上の仮想ポートから発行すること
のうち1以上を含む、項目21に記載の方法。
[項目23]
前記アクションは、前記ネットワークデバイスの第2の仮想ポートから前記パケットを発行することであり、
前記第2の仮想ポートは内向きポートであり、
前記方法はさらに、
前記第2の仮想ポートのピア内向きポートを決定して、前記ピア内向きポート及び前記ピア内向きポートに関連付けられているネットワークデバイスの構成を取得する段階と、
前記ピア内向きポートに関連付けられている前記ネットワークデバイスのシミュレーションに基づいて前記ネットワークパケットを処理する前記アクションを決定する段階と
を備える、項目21に記載の方法。
[項目24]
前記アクションは、1以上の外向き仮想ポートから前記パケットを発行することであり、
前記方法はさらに、
各外向き仮想ポートを、対応するネットワークインタフェース、及び、前記基礎となるネットワークのノードにマッピングする段階と、
前記パケットを、前記対応するネットワークインタフェースのそれぞれから発行する段階と
を備える、項目21に記載の方法。
[項目25]
前記パケットは、複数のフィールドを含むプロトコルヘッダを含み、
前記方法はさらに、
前記仮想ネットワークトポロジー及び前記複数の仮想ネットワークデバイスの前記シミュレーション中に読み出された前記プロトコルヘッダの前記フィールドのそれぞれを特定することにより、パケットプロトコルヘッダ・パターンを決定する段階と、
前記パケットのシミュレーション結果に関連付けられている前記パケットプロトコルヘッダ・パターンを格納する段階と
を備える、項目15に記載の方法。
[項目26]
後続するパケットを、格納されている前記パケットプロトコルヘッダ・パターンに一致させる段階と、
格納されている前記シミュレーション結果を取得することにより、前記後続するパケットを処理するアクションを決定する段階と
をさらに備える、項目25に記載の方法。
[項目27]
前記仮想ネットワークトポロジーまたは仮想デバイス構成が変更されると、格納されている前記パケットプロトコルヘッダ・パターン及び対応し格納されている前記シミュレーション結果を無効化する段階をさらに備える、項目25に記載の方法。
[項目28]
前記シミュレーション中に横断された、横断された仮想デバイスのセットを決定して、前記横断された仮想デバイスのセットを、前記シミュレーションのために、格納されている前記パケットプロトコルヘッダ・パターン、及び、対応し格納されている前記シミュレーション結果の1つと関連付ける段階と、
前記横断されたセットの前記仮想デバイスの1つの前記構成の変更を検知する段階と、
前記変更が検知された前記仮想デバイスを含む各横断されたセットに関連付けられている、対応し格納されている前記シミュレーション結果、及び、格納されている前記パケットプロトコルヘッダ・パターンを無効化する段階と
をさらに備える、項目27に記載の方法。
[項目29]
前記シミュレーションはさらに、
前記基礎となるネットワークの1以上のノードのネットワークインタフェースにマッピングされている1以上の外向きポート、及び、それぞれが仮想ルータの内向きポートに接続されている1以上の内向きポートを有するMAC学習ブリッジをシミュレーションする段階を備える、項目17に記載の方法。
[項目30]
前記共有データベースに各MAC学習ブリッジのためのMAC学習テーブルを維持する段階をさらに備える、項目29に記載の方法。
[項目31]
特定のMAC学習ブリッジのための前記MAC学習テーブルのキャッシュされたコピーを、ネットワークインタフェースが前記特定のMAC学習ブリッジにマッピングされている前記基礎となるネットワークの各ノードの上に維持する段階をさらに備える、項目30に記載の方法。
[項目32]
特定のMAC学習ブリッジのための前記MAC学習テーブルのキャッシュされたコピーを、前記MAC学習ブリッジをシミュレーションする各仮想デバイスの上に維持する段階をさらに備える、項目30に記載の方法。
[項目33]
前記MAC学習テーブルを、既知のMACポートエントリで予めポピュレートする段階をさらに備える、項目30に記載の方法。
[項目34]
前記MAC学習ブリッジをシミュレーションする段階はさらに、
前記仮想ブリッジの到着仮想ポートでユニキャストソースMACアドレスを有するEthernet(登録商標)フレームを受信する段階と、
前記仮想ブリッジの前記到着仮想ポートに前記MACアドレスを関連付けるべく、前記MAC学習テーブルを更新する段階と
を含む、項目29に記載の方法。
[項目35]
前記MAC学習ブリッジをシミュレーションする段階はさらに、
前記仮想ブリッジの到着仮想ポートでユニキャストデスティネーションMACアドレスを有するEthernet(登録商標)フレームを受信する段階と、
前記MACアドレスが前記MAC学習テーブルにある場合、前記MAC学習テーブルで前記MACアドレスに関連付けられている前記仮想ブリッジの前記仮想ポートから前記フレームを発行する段階と、
前記MACアドレスが前記MAC学習テーブルにない場合、前記到着仮想ポートを除く前記仮想ブリッジの全ての仮想ポートから前記フレームを発行する段階と
を含む、項目29に記載の方法。
[項目36]
前記MAC学習ブリッジをシミュレーションする段階はさらに、
前記仮想ブリッジの到着仮想ポートでマルチキャストまたはブロードキャストデスティネーションMACアドレスを有するEthernet(登録商標)フレームを受信する段階と、
前記到着仮想ポートを除く前記仮想ブリッジの全ての仮想ポートから前記フレームを発行する段階と
を含む、項目29に記載の方法。
[項目37]
ARPキャッシュを、前記共有データベースに、前記仮想ブリッジの構成の一部として維持する段階をさらに備える、項目29に記載の方法。
[項目38]
IPパケットを特定して、カプセル化するEthernet(登録商標)フレームのソースIPアドレス及びソースMACアドレスを抽出して、前記仮想ブリッジの前記ARPキャッシュを更新して、特定された前記IPアドレスと前記MACアドレスとを関連付ける段階をさらに備える、項目37に記載の方法。
[項目39]
前記シミュレーションはさらに、
前記基礎となるネットワークの1以上のノードのネットワークインタフェースにマッピングされた外向きポートと、仮想ルータまたは仮想ブリッジの内向きポートに接続された1以上の内向きポートとを有するルータをシミュレーションすることを含む、項目17に記載の方法。
[項目40]
前記ルータは、IPv4ルータである、項目39に記載の方法。
[項目41]
ARPキャッシュと転送テーブルとを、前記共有データベースに、前記ルータの構成の一部として維持する段階をさらに備える、項目39に記載の方法。
[項目42]
ネットワークインタフェースが前記ルータの前記外向きポートの1つにマッピングされている前記基礎となるネットワークの各ノードに前記ARPキャッシュのキャッシュされたコピーを維持する段階をさらに備える、項目41に記載の方法。
[項目43]
前記ルータをシミュレーションする前に、既知のエントリで前記ARPキャッシュを予めポピュレートする段階をさらに備える、項目41に記載の方法。
[項目44]
パケットのソース及びデスティネーションネットワーク(L3)アドレスが分かっている場合に、最もよく一致するルートを決定するべく、前記ルータの転送テーブルを照会する段階をさらに備える、項目41に記載の方法。
[項目45]
前記シミュレーションはさらに、
少なくとも1つの仮想デバイスの入力フィルタ及び出力フィルタの少なくとも1つをシミュレーションすることをさらに含み、
各フィルタは、特定の条件に一致するパケットに適用するフィルタリングルールを含む、項目15に記載の方法。
[項目46]
前記共有データベースに、各仮想デバイスのための前記フィルタリングルールを維持する段階をさらに備える、項目45に記載の方法。
[項目47]
前記パケットのフロー接続状態に一致する条件をもつフィルタリングルールをシミュレーションする段階であって、各シミュレーションされるデバイスによって、フローごとの接続状態が独立して監視され、フローごとの接続状態の値は、前記パケットのトランスポート(L4)プロトコルに依存する、段階をさらに備える、項目45に記載の方法。
[項目48]
前記接続状態がパケットのシミュレーションに利用されているか否かの決定に基づいて、前記フローごとの接続状態を前記共有データベースに選択的に書き込む段階をさらに備える、項目47に記載の方法。
[項目49]
前記フローごとの接続状態は、前記シミュレーション中にシミュレーションされている各仮想デバイスの間で共有される、項目47に記載の方法。
[項目50]
各フローに固有のフローの署名を決定する段階と、
デバイス及びフローごとの接続状態を、特定のフローの前記フローの署名に関連づけて、前記共有データベースに格納する段階と
をさらに備える、項目47に記載の方法。
[項目51]
前記フローの署名は、シミュレーションされるデバイスのデバイス識別子、パケットのL3ヘッダソースフィールド、L3ヘッダデスティネーションフィールド、L4プロトコルタイプ、L4ヘッダソースフィールド、及び、L4ヘッダデスティネーションフィールドを含む、項目50に記載の方法。
[項目52]
各フローに固有の逆方向のフローの署名を決定する段階と、
デバイス及びフローごとの接続状態を、特定のフローの前記逆方向のフローの署名に関連づけて、前記共有データベースに格納する段階と
をさらに備える、項目50に記載の方法。
[項目53]
前記逆方向のフローの署名は、シミュレーションされるデバイスのデバイス識別子、パケットのL3ヘッダデスティネーションフィールド、L3ヘッダソースフィールド、L4プロトコルタイプ、L4ヘッダデスティネーションフィールド、及び、L4ヘッダデソースフィールドを含む、項目52に記載の方法。
[項目54]
前記特定のフローが終了すると、前記フローの署名及び前記逆方向のフローの署名に関連付けられている前記接続状態を除去する段階をさらに備える、項目50に記載の方法。
[項目55]
前記シミュレーションはさらに、
仮想デバイスが実行する、ネットワーク(L3)アドレス変換及びトランスポート(L4)アドレス変換のうち少なくとも1つをシミュレーションすることをさらに含む、項目15に記載の方法。
[項目56]
前記共有データベースに、前記ネットワークアドレス変換を、各仮想デバイスについて維持する段階をさらに備える、項目55に記載の方法。
[項目57]
前記共有データベースに、逆ネットワークアドレス変換を、各仮想デバイスについて維持する段階をさらに備える、
項目56に記載の方法。
[項目58]
前記パケットがネットワークアドレス変換ルール条件に一致しているかを決定して、前記ルール条件が満たされている場合に、前記ネットワークアドレス変換に従って、前記パケットネットワークプロトコルヘッダを修正する段階をさらに備える、項目55に記載の方法。
[項目59]
順方向のフローの署名及び戻りのフローの署名の両方によって調節された前記共有データベースに、各順方向のフローについての変換の選択を格納する段階をさらに備える、項目55に記載の方法。
[項目60]
前記ネットワーク(L3)アドレス変換及び前記トランスポート(L4)アドレス変換の変換選択に関連付けられている、順方向のフローのキーを決定する段階と、
前記共有データベースを照会して、矛盾する変換が前に格納されたかを決定する段階と、
矛盾する変換が特定された場合には、前記ネットワーク(L3)アドレス変換及び前記トランスポート(L4)アドレス変換のための別の変換選択を選択する段階と
をさらに備える、項目59に記載の方法。
[項目61]
前記変換が変換ターゲットの選択を許可するときに、ネットワーク(L3)アドレス及びトランスポート(L4)アドレスのアドレス変換ターゲットを決定する段階と、
前記共有データベースから、前記アドレス変換ターゲットが、前に格納した変換と矛盾するかを決定する段階と、
前記変換ターゲットの前記選択から、前記ネットワーク(L3)アドレス及び前記トランスポート(L4)アドレスの新たなアドレス変換ターゲットを決定する段階と
をさらに備える、項目55に記載の方法。
[項目62]
前記共有データベースにフローのためのネットワークアドレス変換を格納して、前記ネットワークアドレス変換を、順方向のフローの署名及び逆方向のフローの署名の両方によって調節する段階をさらに備える、項目55に記載の方法。
[項目63]
前記フローに対応するパケットを転送する前に、前記フローの前記ネットワークアドレス変換が前記共有データベースに格納されるまで待つ段階をさらに備える、項目59に記載の方法。(注釈:変換をどのようにするかの選択肢がある場合にレース条件を回避して、ルールが格納される前に別のパケットが到達しないようにするため)
[項目64]
仮想ポートに関連付けて、前記共有データベースに、DHCPリソース定義を格納する段階であって、前記DHCPリソース定義は、対応する値と動的なIPアドレスプールとを有するオプションのセットを有するDHCP構成を含む、段階と、
前記共有データベースに、外向きポートのDHCPリソースへのマッピングを格納する段階と、
DHCPリソースにマッピングされた仮想ポートに到着したDHCPパケットを特定する段階と、
前記動的なIPアドレスプールからIPアドレスを割り当てる段階と、
割り当てられた前記IPアドレスを含むDHCP応答メッセージを発行する段階と
をさらに備える、項目15に記載の方法。
[項目65]
フローエントリーを削除するための、ステートフル接続トラッキングの方法であって、
フロー構成可能なスイッチをもつエッジノードでシーケンス番号をもつFINパケットを受信する段階と、
前記フロー構成可能なスイッチの前記パケットに対応するフロールールを特定する段階と、
削除するために前記フロールールを特定して、特定した前記フロールールを分散状態に通信する段階と、
前記パケットを、対応する前記フロールールに基づいて通信する段階と
を備える、方法。
[項目66]
前記フロールールは、TCP接続のインバウンドフローに対応している、項目65に記載の方法。
[項目67]
前記フロールールは、TCP接続のアウトバウンドフローに対応している、項目65に記載の方法。
[項目68]
前記FINパケットに対応するACKパケットを受信すると、特定した前記フロールールを削除する段階をさらに備える、項目65に記載の方法。
[項目69]
特定した前記フロールールに対応している、前記分散状態に格納されている反対方向のフロールールを特定する段階と、
削除するために前記反対方向のフロールールを特定する段階と
をさらに備える、項目65に記載の方法。
[項目70]
前記FINパケットに対応するACKパケットを受信すると、特定した前記フロールールと前記反対方向のフロールールとを削除する段階をさらに備える、項目69に記載の方法。
[項目71]
コンピューティングシステムであって、
基礎となるネットワークが相互接続する複数のノードであって、各ノードが1以上のネットワークインタフェースを含む、前記複数のノードと、
前記複数のノードで動作する複数の仮想デバイスであって、各仮想デバイスは、複数の仮想ポートを有し、各仮想ポートは、前記基礎となるネットワークの前記複数のノードの前記1以上のネットワークインタフェースの1つに関連付けられた外向きポート、または、仮想ネットワークデバイス間の仮想リンクに関連付けられた内向きポートのうちの1つに対応している、前記複数の仮想デバイスと、
前記複数の仮想ポート及び前記複数の仮想デバイスの構成を含む仮想ネットワークトポロジーを格納する共有データベースと、
最初の仮想デバイスから最後の仮想デバイスへの、前記仮想ネットワークトポロジーのネットワークパケットの横断をシミュレーションして、前記最後の仮想デバイスから発行される前記パケットに一致するように前記ネットワークパケットに適用されるプロトコルヘッダ修正を決定して、決定された前記プロトコルヘッダ修正を、前記プロトコルヘッダ修正に関連付けられているパケットプロトコルヘッダ・パターンに一致する後続するパケットに適用する決定エンジンと
を備えるコンピューティングシステム。
[項目72]
前記決定エンジンはさらに、MAC学習ブリッジをシミュレーションして、前記共有データベースの各MAC学習ブリッジのMAC学習テーブルを更新する、項目71に記載のコンピューティングシステム。
[項目73]
前記決定エンジンはさらに、IPパケットを特定して、カプセル化するEthernet(登録商標)フレームのソースIPアドレス及びソースMACアドレスを抽出して、前記仮想ブリッジの前記ARPキャッシュを更新して、特定された前記IPアドレスと前記MACアドレスとを関連付ける、項目71に記載のコンピューティングシステム。
[項目74]
前記決定エンジンはさらに、少なくとも1つの仮想デバイスの入力フィルタ及び出力フィルタの少なくとも1つをシミュレーションして、各フィルタは、特定の条件に一致するパケットに適用するフィルタリングルールを含む、項目71に記載のコンピューティングシステム。
[項目75]
前記決定エンジンはさらに、前記複数の仮想デバイスの少なくとも1つのネットワークアドレス変換をシミュレーションして、前記共有データベースの順方向のフロー及び逆方向のフローの両方のネットワークアドレス変換を格納する、項目71に記載のコンピューティングシステム。
[項目76]
前記コントローラはさらに、DHCPリソースからIPアドレスを動的に割り当て、割り当てた前記IPアドレスを前記共有データベースに格納する、項目71に記載のコンピューティングシステム。

Claims (19)

  1. コンピューティングシステムであって、
    基礎となるネットワークで相互接続する複数のノードであって、各ノードが1以上のネットワークインタフェースを含む、前記複数のノードと、
    前記複数のノードで動作する複数の仮想デバイスであって、各仮想デバイスは、複数の仮想ポートを有し、各仮想ポートは、前記基礎となるネットワークの前記複数のノードの前記1以上のネットワークインタフェースの1つに関連付けられた外向きポート、または、仮想ネットワークデバイス間の仮想リンクに関連付けられた内向きポートのうちの1つに対応している、前記複数の仮想デバイスと、
    前記複数の仮想ポート及び前記複数の仮想デバイスの構成を含む仮想ネットワークトポロジーを格納する共有データベースと、
    最初の仮想デバイスから最後の仮想デバイスへの、前記仮想ネットワークトポロジーのネットワークパケットの横断をシミュレーションして、前記最後の仮想デバイスから外向きポートへと発行される前記パケットに一致するように前記ネットワークパケットに適用されるプロトコルヘッダ修正を決定して、決定された前記プロトコルヘッダ修正を、後にネットワークインタフェースにより受信された、前記プロトコルヘッダ修正に関連付けられているパケットプロトコルヘッダ・パターンに一致するケットに適用する決定エンジンと
    を備えるコンピューティングシステム。
  2. 前記決定エンジンはさらに、MAC学習ブリッジをシミュレーションして、前記共有データベースの各MAC学習ブリッジのMAC学習テーブルを更新する、請求項1に記載のコンピューティングシステム。
  3. 前記決定エンジンはさらに、IPパケットを特定して、カプセル化するEthernet(登録商標)フレームのソースIPアドレスおよびソースMACアドレスを抽出して、仮想ブリッジのARPキャッシュを更新して、特定された前記IPアドレスと前記MACアドレスとを関連付ける、請求項1または2に記載のコンピューティングシステム。
  4. 前記決定エンジンはさらに、少なくとも1つの仮想デバイスの入力フィルタ及び出力フィルタの少なくとも1つをシミュレーションして、各フィルタは、特定の条件に一致するパケットに適用するフィルタリングルールを含む、請求項1から3の何れか1項に記載のコンピューティングシステム。
  5. 前記決定エンジンはさらに、前記複数の仮想デバイスの少なくとも1つのネットワークアドレス変換をシミュレーションして、前記共有データベースの順方向のフロー及び逆方向のフローの両方のネットワークアドレス変換を格納する、請求項1から4の何れか1項に記載のコンピューティングシステム。
  6. 前記決定エンジンはさらに、DHCPリソースからIPアドレスを動的に割り当て、割り当てた前記IPアドレスを前記共有データベースに格納する、請求項1から5の何れか1項に記載のコンピューティングシステム。
  7. 基礎となるネットワークの第1のノードの第1のネットワークインタフェースに到着するネットワークパケットを受信する段階であって、前記基礎となるネットワークが、複数の相互接続されたノードを含む、段階と、
    少なくとも前記パケットと前記第1のネットワークインタフェースの識別子とを決定エンジンに送信する段階と、
    ネットワークインタフェースに関連付けられた外向きポートを有した複数の仮想ネットワークデバイスを含む仮想ネットワークトポロジーにおける前記パケットの横断についての、前記決定エンジンによるシミュレーションに基づいて前記パケットがどのように処理されるべきかを決定する段階であって、前記決定エンジンは、前記複数の仮想ネットワークデバイスのための仮想デバイス構成と前記仮想ネットワークトポロジーとを格納する、前記基礎となるネットワークからアクセス可能な共有データベースと通信して、前記パケットに適用されるべきプロトコルヘッダ修正を決定する、段階と、
    前記シミュレーションに基づいて前記パケットを処理する段階であって、前記シミュレーションにより決定された前記プロトコルヘッダ修正を前記パケットに適用する、段階
    を備える、コンピューティング方法。
  8. 前記基礎となるネットワークの各ノードが、前記決定エンジンを実行して、前記シミュレーションを実行して、前記ノードに到着するパケットがどのように処理されるべきかを決定する段階を備える、請求項7に記載のコンピューティング方法。
  9. 前記パケットがどのように処理されるべきかを決定する段階は、
    前記パケットに対する前記決定エンジンによる前記シミュレーションの結果に関連付けられているパケットプロトコルヘッダ・パターンを決定する段階を含み、
    前記方法はさらに、
    前記パケットプロトコルヘッダ・パターンと前記パケットの前記シミュレーションの前記結果とを格納する段階と、
    前記基礎となるネットワークの前記第1のノードで第2のパケットを受信する段階と、
    前記第2のパケットを前記パケットプロトコルヘッダ・パターンと比較する段階と、
    前記第2のパケットが前記パケットプロトコルヘッダ・パターンに一致している場合、前記パケットの前記シミュレーションについて格納されている前記結果を取得することで前記第2のパケットに適用されるべきプロトコルヘッダ修正を決定する段階と、
    前記パケットについての、前記決定エンジンによる前記シミュレーションについての取得された前記結果に基づいて前記第2のパケットを処理する段階であって、決定された前記プロトコルヘッダ修正を前記第2のパケットに適用する、段階
    を備える、請求項7または8に記載のコンピューティング方法。
  10. 前記パケットは、複数のフィールドを含むプロトコルヘッダを含み、
    前記パケットプロトコルヘッダ・パターンを決定する段階は、
    前記決定エンジンによる、前記複数の仮想ネットワークデバイスを含む前記仮想ネットワークトポロジーの前記横断の前記シミュレーション中に読み出された前記プロトコルヘッダの前記複数のフィールドのそれぞれを特定する段階を含む、請求項9に記載のコンピューティング方法。
  11. 前記パケットプロトコルヘッダは、前記決定エンジンによる前記シミュレーション中に読み出されなかった前記プロトコルヘッダのフィールドについてのワイルドカードを含む、請求項10に記載のコンピューティング方法。
  12. さらに、前記パケットを処理するやりかたを決定する段階は、
    前記パケットが、前記基礎となるネットワークの前記第1のノードの第2のネットワークインタフェースから発行されるべきであると決定する段階を含み、
    前記パケットの処理は、前記パケットを前記第2のネットワークインタフェースから発行する段階を含む、請求項7から1の何れか1項に記載のコンピューティング方法。
  13. 記パケットがどのように処理されるべきかを決定する段階は、
    前記パケットが、前記基礎となるネットワークの第2のノードの第2のネットワークインタフェースから発行されるべきであると決定する段階を含み、
    前記パケット処理する段階は、前記パケットを前記基礎となるネットワークの前記第2のノードに配信して、前記パケットを前記第2のネットワークインタフェースから発行する段階を含む、請求項7から1の何れか1項に記載のコンピューティング方法。
  14. 記パケットがどのように処理されるべきかを決定する段階は、
    前記基礎となるネットワークの前記第2のノードに配信する前に、前記パケットに適用されるべき前記プロトコルヘッダ修正を決定する段階を含む、請求項1に記載のコンピューティング方法。
  15. 前記パケット処理する段階は、前記パケットを前記第1のノードから前記第2のノードに、トンネルキーを含むトンネリングプロトコルパケットのペイロードとして転送する段階を含み、
    前記トンネルキーは、前記第2のネットワークインタフェースのグローバル識別子をエンコードする、請求項1または1に記載のコンピューティング方法。
  16. さらに、前記基礎となるネットワークの前記第2のノードで前記決定エンジンを呼び出すことなく、前記第2のネットワークインタフェースから前記パケットを発行する段階を備える、請求項1に記載のコンピューティング方法。
  17. 前記パケットがインタフェースセット識別子に対応しているネットワークインタフェースセットから発行されるべきであると決定する段階をさらに備え、
    前記ネットワークインタフェースセットの少なくとも一部は、前記基礎となるネットワークの第2のノードに位置しており、
    前記パケット処理する段階は、
    前記第1のノードにローカルな前記ネットワークインタフェースセットの各ネットワークインタフェースに前記パケットを配信する段階と、前記パケットを、前記第1のノードから前記第2のノードに、トンネリングプロトコルパケットのペイロードとして、前記インタフェースセット識別子をエンコードするトンネルキーを利用して転送する段階とを含む、請求項7から1の何れか1項に記載のコンピューティング方法。
  18. 前記基礎となるネットワークはマルチキャストをサポートしており、
    前記方法はさらに、
    各インタフェースセット識別子をマルチキャストアドレスにマッピングする段階と、
    前記基礎となるネットワークの各ノードについて、前記ノードの少なくとも1つのネットワークインタフェースが属す前記インタフェースセット識別子のそれぞれについてのマルチキャスト・サブスクリプションを維持する段階と、
    前記パケットを前記トンネリングプロトコルパケットの前記ペイロードとして少なくとも前記第2のノードにマルチキャストする段階と、
    各ノードについて、当該ノードにローカルなインタフェースセットに対応している任意のネットワークインタフェースから前記パケットを発行する段階と
    を備える、請求項1に記載のコンピューティング方法。
  19. 前記基礎となるネットワークは、マルチキャストをサポートしておらず、
    前記方法はさらに、
    前記ネットワークインタフェースセットに属すローカルネットワークインタフェースを有する基礎となるネットワークノードのセットを決定する段階と、
    前記第1のノードから前記基礎となるネットワークノードのセットの各ノードに前記パケットを転送する段階と、
    各ノードについて、当該ノードにローカルなインタフェースセットに対応している任意のネットワークインタフェースから前記パケットを発行する段階と
    を備える、請求項1に記載のコンピューティング方法。
JP2014524150A 2011-08-04 2012-08-06 仮想ネットワークを実装及び管理するシステム及び方法 Active JP6080313B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161514990P 2011-08-04 2011-08-04
US61/514,990 2011-08-04
PCT/US2012/049692 WO2013020126A1 (en) 2011-08-04 2012-08-06 System and method for implementing and managing virtual networks

Publications (2)

Publication Number Publication Date
JP2014529926A JP2014529926A (ja) 2014-11-13
JP6080313B2 true JP6080313B2 (ja) 2017-02-15

Family

ID=47629723

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014524150A Active JP6080313B2 (ja) 2011-08-04 2012-08-06 仮想ネットワークを実装及び管理するシステム及び方法

Country Status (6)

Country Link
US (2) US9900224B2 (ja)
EP (1) EP2740242B8 (ja)
JP (1) JP6080313B2 (ja)
ES (1) ES2713078T3 (ja)
TW (1) TWI583151B (ja)
WO (1) WO2013020126A1 (ja)

Families Citing this family (487)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104022A1 (en) 2006-10-31 2008-05-01 Bank Of America Corporation Document indexing and delivery system
US9456054B2 (en) 2008-05-16 2016-09-27 Palo Alto Research Center Incorporated Controlling the spread of interests and content in a content centric network
US8923293B2 (en) 2009-10-21 2014-12-30 Palo Alto Research Center Incorporated Adaptive multi-interface use for content networking
ES2713078T3 (es) 2011-08-04 2019-05-17 Mido Holdings Ltd Sistema y método para implementar y gestionar redes virtuales
CN107071088B (zh) 2011-08-17 2020-06-05 Nicira股份有限公司 逻辑l3路由
EP3407547B1 (en) 2011-08-17 2020-01-22 Nicira, Inc. Hierarchical controller clusters for interconnecting different logical domains
WO2013074828A1 (en) 2011-11-15 2013-05-23 Nicira, Inc. Firewalls in logical networks
US9106576B2 (en) * 2012-01-13 2015-08-11 Nec Laboratories America, Inc. Policy-aware based method for deployment of enterprise virtual tenant networks
US9898317B2 (en) 2012-06-06 2018-02-20 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US9847910B2 (en) * 2012-08-31 2017-12-19 Bce Inc. IP MPLS PoP virtualization and fault tolerant virtual router
EP2893674B1 (en) * 2012-09-04 2017-08-23 Telefonaktiebolaget LM Ericsson (publ) A method of operating a switch or access node in a network and a processing apparatus configured to implement the same
US9276877B1 (en) 2012-09-20 2016-03-01 Wiretap Ventures, LLC Data model for software defined networks
US9280546B2 (en) 2012-10-31 2016-03-08 Palo Alto Research Center Incorporated System and method for accessing digital content using a location-independent name
US9400800B2 (en) 2012-11-19 2016-07-26 Palo Alto Research Center Incorporated Data transport by named content synchronization
US9166947B1 (en) * 2012-11-21 2015-10-20 Amazon Technologies, Inc. Maintaining private connections during network interface reconfiguration
US10430839B2 (en) 2012-12-12 2019-10-01 Cisco Technology, Inc. Distributed advertisement insertion in content-centric networks
CN104081740B (zh) * 2012-12-12 2017-08-18 柏思科技有限公司 用以减少集中的第二层网络的无线网络包的方法和系统
EP2747386A1 (en) * 2012-12-20 2014-06-25 Telefonica S.A. Method and System for the creation, modification and removal of a distributed virtual customer premises equipment
US20140189127A1 (en) * 2012-12-27 2014-07-03 Anjaneya Reddy Chagam Reservation and execution image writing of native computing devices
CN103152267B (zh) * 2013-02-04 2017-02-22 华为技术有限公司 路由管理方法及路由方法及网络控制器及路由器
US9384454B2 (en) * 2013-02-20 2016-07-05 Bank Of America Corporation Enterprise componentized workflow application
CN104022953B (zh) * 2013-02-28 2018-02-09 新华三技术有限公司 基于开放流Openflow的报文转发方法和装置
US20140282542A1 (en) * 2013-03-14 2014-09-18 Infinio Systems Inc. Hypervisor Storage Intercept Method
US10541898B2 (en) * 2013-03-15 2020-01-21 Brian Weinberg System and method for creating, deploying, and administering distinct virtual computer networks
US9978025B2 (en) 2013-03-20 2018-05-22 Cisco Technology, Inc. Ordered-element naming for name-based packet forwarding
US11165660B2 (en) * 2013-05-07 2021-11-02 International Business Machines Corporation Dynamically grouping monitored resources in a cloud environment to collections representing a composite application
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US10212238B2 (en) * 2013-05-15 2019-02-19 Level 3 Communications, Llc Selecting a content providing server in a content delivery network
US9935791B2 (en) 2013-05-20 2018-04-03 Cisco Technology, Inc. Method and system for name resolution across heterogeneous architectures
US9014007B2 (en) * 2013-05-31 2015-04-21 Dell Products L.P. VXLAN based multicasting systems having improved load distribution
US9135042B2 (en) * 2013-06-13 2015-09-15 International Business Machines Corporation Provisioning a secure customer domain in a virtualized multi-tenant environment
US9413485B2 (en) * 2013-06-24 2016-08-09 Nec Corporation Network followed by compute load balancing procedure for embedding cloud services in software-defined flexible-grid optical transport networks
CN104253770B (zh) * 2013-06-27 2017-07-14 新华三技术有限公司 实现分布式虚拟交换机系统的方法及设备
US9467366B2 (en) * 2013-07-03 2016-10-11 Avaya Inc. Method and apparatus providing single-tier routing in a shortest path bridging (SPB) network
US9282019B2 (en) 2013-07-12 2016-03-08 Nicira, Inc. Tracing logical network packets through physical network
US9407580B2 (en) 2013-07-12 2016-08-02 Nicira, Inc. Maintaining data stored with a packet
US9344349B2 (en) 2013-07-12 2016-05-17 Nicira, Inc. Tracing network packets by a cluster of network controllers
KR101970388B1 (ko) * 2013-07-26 2019-08-13 제트티이 (유에스에이) 잉크. 적응 소프트웨어 정의 네트워킹 컨트롤러를 위한 방법 및 시스템
US9444722B2 (en) 2013-08-01 2016-09-13 Palo Alto Research Center Incorporated Method and apparatus for configuring routing paths in a custodian-based routing architecture
US9787546B2 (en) * 2013-08-07 2017-10-10 Harris Corporation Network management system generating virtual network map and related methods
US9473573B2 (en) * 2013-08-07 2016-10-18 Nec Corporation Network followed by compute load balancing procedure for embedding cloud services in software-defined flexible-grid optical transport networks
US9887960B2 (en) 2013-08-14 2018-02-06 Nicira, Inc. Providing services for logical networks
US9952885B2 (en) 2013-08-14 2018-04-24 Nicira, Inc. Generation of configuration files for a DHCP module executing within a virtualized container
US9432204B2 (en) 2013-08-24 2016-08-30 Nicira, Inc. Distributed multicast by endpoints
US9548965B2 (en) 2013-08-26 2017-01-17 Nicira, Inc. Proxy methods for suppressing broadcast traffic in a network
US9503371B2 (en) 2013-09-04 2016-11-22 Nicira, Inc. High availability L3 gateways for logical networks
US9577845B2 (en) 2013-09-04 2017-02-21 Nicira, Inc. Multiple active L3 gateways for logical networks
US10298416B2 (en) 2013-09-05 2019-05-21 Pismo Labs Technology Limited Method and system for converting a broadcast packet to a unicast packet at an access point
CN104468462B (zh) * 2013-09-12 2017-12-15 新华三技术有限公司 分布式虚拟交换机系统的报文转发方法及设备
CN104468358B (zh) * 2013-09-25 2018-05-11 新华三技术有限公司 分布式虚拟交换机系统的报文转发方法及设备
US10033693B2 (en) 2013-10-01 2018-07-24 Nicira, Inc. Distributed identity-based firewalls
US20150100560A1 (en) 2013-10-04 2015-04-09 Nicira, Inc. Network Controller for Managing Software and Hardware Forwarding Elements
US9264330B2 (en) 2013-10-13 2016-02-16 Nicira, Inc. Tracing host-originated logical network packets
US10063458B2 (en) 2013-10-13 2018-08-28 Nicira, Inc. Asymmetric connection with external networks
US9575782B2 (en) 2013-10-13 2017-02-21 Nicira, Inc. ARP for logical router
US9998530B2 (en) 2013-10-15 2018-06-12 Nicira, Inc. Distributed global load-balancing system for software-defined data centers
CN104580025B (zh) * 2013-10-18 2018-12-14 华为技术有限公司 用于开放流网络中建立带内连接的方法和交换机
CN104572243B (zh) * 2013-10-25 2017-09-29 国际商业机器公司 用于共享Java虚拟机的方法和系统
TWI493377B (zh) * 2013-10-28 2015-07-21 Chunghwa Telecom Co Ltd A kind of cloud ARP and IP spoofing protection system
US9407549B2 (en) 2013-10-29 2016-08-02 Palo Alto Research Center Incorporated System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers
CN104601346B (zh) 2013-10-30 2018-09-11 联想企业解决方案(新加坡)私人有限公司 管理交换机的网络连接的方法和装置
US9276840B2 (en) 2013-10-30 2016-03-01 Palo Alto Research Center Incorporated Interest messages with a payload for a named data network
US9401864B2 (en) 2013-10-31 2016-07-26 Palo Alto Research Center Incorporated Express header for packets with hierarchically structured variable-length identifiers
US9397892B2 (en) 2013-11-04 2016-07-19 Illumio, Inc. Managing servers based on pairing keys to implement an administrative domain-wide policy
US9686581B2 (en) 2013-11-07 2017-06-20 Cisco Technology, Inc. Second-screen TV bridge
US10101801B2 (en) 2013-11-13 2018-10-16 Cisco Technology, Inc. Method and apparatus for prefetching content in a data stream
US9311377B2 (en) 2013-11-13 2016-04-12 Palo Alto Research Center Incorporated Method and apparatus for performing server handoff in a name-based content distribution system
US10129365B2 (en) 2013-11-13 2018-11-13 Cisco Technology, Inc. Method and apparatus for pre-fetching remote content based on static and dynamic recommendations
US10089655B2 (en) 2013-11-27 2018-10-02 Cisco Technology, Inc. Method and apparatus for scalable data broadcasting
TW201521405A (zh) * 2013-11-29 2015-06-01 萬國商業機器公司 查找網路纜線連接器之方法、資訊設備及程式產品
US9503358B2 (en) 2013-12-05 2016-11-22 Palo Alto Research Center Incorporated Distance-based routing in an information-centric network
US9967199B2 (en) 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
US10193771B2 (en) 2013-12-09 2019-01-29 Nicira, Inc. Detecting and handling elephant flows
US9602392B2 (en) 2013-12-18 2017-03-21 Nicira, Inc. Connectivity segment coloring
US9602385B2 (en) 2013-12-18 2017-03-21 Nicira, Inc. Connectivity segment selection
US11349806B2 (en) 2013-12-19 2022-05-31 Vmware, Inc. Methods, apparatuses and systems for assigning IP addresses in a virtualized environment
US9379979B2 (en) * 2014-01-14 2016-06-28 Palo Alto Research Center Incorporated Method and apparatus for establishing a virtual interface for a set of mutual-listener devices
US9407504B1 (en) * 2014-01-15 2016-08-02 Cisco Technology, Inc. Virtual links for network appliances
US9444723B1 (en) * 2014-01-15 2016-09-13 Cisco Technology, Inc. Passing data over virtual links
US10098051B2 (en) 2014-01-22 2018-10-09 Cisco Technology, Inc. Gateways and routing in software-defined manets
US10172068B2 (en) 2014-01-22 2019-01-01 Cisco Technology, Inc. Service-oriented routing in software-defined MANETs
US9374304B2 (en) 2014-01-24 2016-06-21 Palo Alto Research Center Incorporated End-to end route tracing over a named-data network
US9954678B2 (en) 2014-02-06 2018-04-24 Cisco Technology, Inc. Content-based transport security
EP3107248A4 (en) * 2014-02-12 2017-10-18 Nec Corporation Information processing device, communication method, network control device, network control method, communication system, and program
JP6310721B2 (ja) * 2014-02-19 2018-04-11 国立大学法人京都大学 関係性グラフ評価システム
US9215213B2 (en) 2014-02-20 2015-12-15 Nicira, Inc. Method and apparatus for distributing firewall rules
US9678998B2 (en) 2014-02-28 2017-06-13 Cisco Technology, Inc. Content name resolution for information centric networking
US10089651B2 (en) 2014-03-03 2018-10-02 Cisco Technology, Inc. Method and apparatus for streaming advertisements in a scalable data broadcasting system
US9836540B2 (en) 2014-03-04 2017-12-05 Cisco Technology, Inc. System and method for direct storage access in a content-centric network
US9419889B2 (en) 2014-03-07 2016-08-16 Nicira, Inc. Method and system for discovering a path of network traffic
US9391896B2 (en) 2014-03-10 2016-07-12 Palo Alto Research Center Incorporated System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network
US9626413B2 (en) 2014-03-10 2017-04-18 Cisco Systems, Inc. System and method for ranking content popularity in a content-centric network
US9473405B2 (en) 2014-03-10 2016-10-18 Palo Alto Research Center Incorporated Concurrent hashes and sub-hashes on data streams
US9419855B2 (en) 2014-03-14 2016-08-16 Nicira, Inc. Static routes for logical routers
US9313129B2 (en) 2014-03-14 2016-04-12 Nicira, Inc. Logical router processing by network controller
US9225597B2 (en) 2014-03-14 2015-12-29 Nicira, Inc. Managed gateways peering with external router to attract ingress packets
US9590901B2 (en) 2014-03-14 2017-03-07 Nicira, Inc. Route advertisement by managed gateways
US9407432B2 (en) 2014-03-19 2016-08-02 Palo Alto Research Center Incorporated System and method for efficient and secure distribution of digital content
US9503321B2 (en) 2014-03-21 2016-11-22 Nicira, Inc. Dynamic routing for logical routers
US9916601B2 (en) 2014-03-21 2018-03-13 Cisco Technology, Inc. Marketplace for presenting advertisements in a scalable data broadcasting system
US9647883B2 (en) * 2014-03-21 2017-05-09 Nicria, Inc. Multiple levels of logical routers
WO2015142404A1 (en) * 2014-03-21 2015-09-24 Nicira, Inc. Dynamic routing for logical routers
US9363179B2 (en) 2014-03-26 2016-06-07 Palo Alto Research Center Incorporated Multi-publisher routing protocol for named data networks
CN104954271B (zh) 2014-03-26 2018-11-30 国际商业机器公司 Sdn网络中的数据包处理方法和装置
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
US9338091B2 (en) 2014-03-27 2016-05-10 Nicira, Inc. Procedures for efficient cloud service access in a system with multiple tenant logical networks
US9413644B2 (en) 2014-03-27 2016-08-09 Nicira, Inc. Ingress ECMP in virtual distributed routing environment
US9419874B2 (en) 2014-03-27 2016-08-16 Nicira, Inc. Packet tracing in a software-defined networking environment
JP6211975B2 (ja) * 2014-03-27 2017-10-11 株式会社日立製作所 ネットワーク延伸システム、制御装置、およびネットワーク延伸方法
US9825854B2 (en) 2014-03-27 2017-11-21 Nicira, Inc. Host architecture for efficient cloud service access
US9794186B2 (en) 2014-03-27 2017-10-17 Nicira, Inc. Distributed network address translation for efficient cloud service access
US10742505B2 (en) 2014-03-28 2020-08-11 Hewlett Packard Enterprise Development Lp Reconciling information in a controller and a node
US9641435B1 (en) * 2014-03-28 2017-05-02 Juniper Neworks, Inc. Packet segmentation offload for virtual networks
US9703743B2 (en) 2014-03-31 2017-07-11 Juniper Networks, Inc. PCIe-based host network accelerators (HNAS) for data center overlay network
US9794079B2 (en) 2014-03-31 2017-10-17 Nicira, Inc. Replicating broadcast, unknown-unicast, and multicast traffic in overlay logical networks bridged with physical networks
US9294304B2 (en) * 2014-03-31 2016-03-22 Juniper Networks, Inc. Host network accelerator for data center overlay network
US9485191B2 (en) 2014-03-31 2016-11-01 Juniper Networks, Inc. Flow-control within a high-performance, scalable and drop-free data center switch fabric
US9479457B2 (en) 2014-03-31 2016-10-25 Juniper Networks, Inc. High-performance, scalable and drop-free data center switch fabric
US9503427B2 (en) 2014-03-31 2016-11-22 Nicira, Inc. Method and apparatus for integrating a service virtual machine
US9338094B2 (en) * 2014-03-31 2016-05-10 Dell Products, L.P. System and method for context aware network
US9215210B2 (en) 2014-03-31 2015-12-15 Nicira, Inc. Migrating firewall connection state for a firewall service virtual machine
CN104954281B (zh) * 2014-03-31 2018-08-03 中国移动通信集团公司 通信方法、系统、资源池管理系统、交换机和控制装置
US9363086B2 (en) 2014-03-31 2016-06-07 Palo Alto Research Center Incorporated Aggregate signing of data in content centric networking
US9906494B2 (en) 2014-03-31 2018-02-27 Nicira, Inc. Configuring interactions with a firewall service virtual machine
US9716622B2 (en) 2014-04-01 2017-07-25 Cisco Technology, Inc. System and method for dynamic name configuration in content-centric networks
US9807004B2 (en) * 2014-04-01 2017-10-31 Google Inc. System and method for software defined routing of traffic within and between autonomous systems with enhanced flow routing, scalability and security
KR102262183B1 (ko) * 2014-04-04 2021-06-07 뉴라컴 인코포레이티드 수신 확인 방법 및 다중 사용자 전송 방법
US10075521B2 (en) 2014-04-07 2018-09-11 Cisco Technology, Inc. Collection synchronization using equality matched network names
US9390289B2 (en) 2014-04-07 2016-07-12 Palo Alto Research Center Incorporated Secure collection synchronization using matched network names
US9473576B2 (en) 2014-04-07 2016-10-18 Palo Alto Research Center Incorporated Service discovery using collection synchronization with exact names
US9451032B2 (en) 2014-04-10 2016-09-20 Palo Alto Research Center Incorporated System and method for simple service discovery in content-centric networks
US10222935B2 (en) 2014-04-23 2019-03-05 Cisco Technology Inc. Treemap-type user interface
US9992281B2 (en) 2014-05-01 2018-06-05 Cisco Technology, Inc. Accountable content stores for information centric networks
US9609014B2 (en) 2014-05-22 2017-03-28 Cisco Systems, Inc. Method and apparatus for preventing insertion of malicious content at a named data network router
US9455835B2 (en) 2014-05-23 2016-09-27 Palo Alto Research Center Incorporated System and method for circular link resolution with hash-based names in content-centric networks
US9648121B2 (en) * 2014-05-27 2017-05-09 Ravello Systems Ltd. Source-destination network address translation (SDNAT) proxy and method thereof
US9276751B2 (en) 2014-05-28 2016-03-01 Palo Alto Research Center Incorporated System and method for circular link resolution with computable hash-based names in content-centric networks
US9825913B2 (en) 2014-06-04 2017-11-21 Nicira, Inc. Use of stateless marking to speed up stateful firewall rule processing
US9729512B2 (en) 2014-06-04 2017-08-08 Nicira, Inc. Use of stateless marking to speed up stateful firewall rule processing
US9516144B2 (en) 2014-06-19 2016-12-06 Palo Alto Research Center Incorporated Cut-through forwarding of CCNx message fragments with IP encapsulation
US9537719B2 (en) 2014-06-19 2017-01-03 Palo Alto Research Center Incorporated Method and apparatus for deploying a minimal-cost CCN topology
US9426113B2 (en) 2014-06-30 2016-08-23 Palo Alto Research Center Incorporated System and method for managing devices over a content centric network
US9553803B2 (en) 2014-06-30 2017-01-24 Nicira, Inc. Periodical generation of network measurement data
US9379956B2 (en) 2014-06-30 2016-06-28 Nicira, Inc. Identifying a network topology between two endpoints
SG10201910591PA (en) * 2014-06-30 2020-01-30 Cfph Llc Financial network
US9699198B2 (en) 2014-07-07 2017-07-04 Cisco Technology, Inc. System and method for parallel secure content bootstrapping in content-centric networks
US9621354B2 (en) 2014-07-17 2017-04-11 Cisco Systems, Inc. Reconstructable content objects
US9959156B2 (en) 2014-07-17 2018-05-01 Cisco Technology, Inc. Interest return control message
US9729616B2 (en) 2014-07-18 2017-08-08 Cisco Technology, Inc. Reputation-based strategy for forwarding and responding to interests over a content centric network
US9590887B2 (en) 2014-07-18 2017-03-07 Cisco Systems, Inc. Method and system for keeping interest alive in a content centric network
US9535968B2 (en) 2014-07-21 2017-01-03 Palo Alto Research Center Incorporated System for distributing nameless objects using self-certifying names
CN105282004A (zh) * 2014-07-25 2016-01-27 中兴通讯股份有限公司 网络虚拟化处理方法、装置及系统
US9882964B2 (en) 2014-08-08 2018-01-30 Cisco Technology, Inc. Explicit strategy feedback in name-based forwarding
US9503365B2 (en) 2014-08-11 2016-11-22 Palo Alto Research Center Incorporated Reputation-based instruction processing over an information centric network
US9729662B2 (en) 2014-08-11 2017-08-08 Cisco Technology, Inc. Probabilistic lazy-forwarding technique without validation in a content centric network
US9391777B2 (en) 2014-08-15 2016-07-12 Palo Alto Research Center Incorporated System and method for performing key resolution over a content centric network
US9467492B2 (en) 2014-08-19 2016-10-11 Palo Alto Research Center Incorporated System and method for reconstructable all-in-one content stream
US9800637B2 (en) 2014-08-19 2017-10-24 Cisco Technology, Inc. System and method for all-in-one content stream in content-centric networks
CA2959022C (en) 2014-08-22 2020-12-08 Level 3 Communications, Llc Software defined networking portal
WO2016033193A1 (en) * 2014-08-26 2016-03-03 Matthew Hayden Harper Distributed input/output architecture for network functions virtualization
US9497282B2 (en) 2014-08-27 2016-11-15 Palo Alto Research Center Incorporated Network coding for content-centric network
US10204013B2 (en) 2014-09-03 2019-02-12 Cisco Technology, Inc. System and method for maintaining a distributed and fault-tolerant state over an information centric network
US9553812B2 (en) 2014-09-09 2017-01-24 Palo Alto Research Center Incorporated Interest keep alives at intermediate routers in a CCN
US10038629B2 (en) 2014-09-11 2018-07-31 Microsoft Technology Licensing, Llc Virtual machine migration using label based underlay network forwarding
JP6464631B2 (ja) * 2014-09-22 2019-02-06 日本電気株式会社 ネットワーク制御システム、ルータ仮想化装置、ネットワーク制御方法、ルータ仮想化方法およびプログラム
CN105515802B (zh) * 2014-09-22 2019-04-12 新华三技术有限公司 网络虚拟化方法及装置
US20160087887A1 (en) * 2014-09-22 2016-03-24 Hei Tao Fung Routing fabric
WO2016048390A1 (en) * 2014-09-26 2016-03-31 Hewlett Packard Enterprise Development Lp Link aggregation configuration for a node in a software-defined network
US9798810B2 (en) 2014-09-30 2017-10-24 At&T Intellectual Property I, L.P. Methods and apparatus to track changes to a network topology
US9935827B2 (en) 2014-09-30 2018-04-03 Nicira, Inc. Method and apparatus for distributing load among a plurality of service nodes
US10257095B2 (en) 2014-09-30 2019-04-09 Nicira, Inc. Dynamically adjusting load balancing
US10250443B2 (en) 2014-09-30 2019-04-02 Nicira, Inc. Using physical location to modify behavior of a distributed virtual network element
US10020960B2 (en) 2014-09-30 2018-07-10 Nicira, Inc. Virtual distributed bridging
US9768980B2 (en) 2014-09-30 2017-09-19 Nicira, Inc. Virtual distributed bridging
US10225137B2 (en) 2014-09-30 2019-03-05 Nicira, Inc. Service node selection by an inline service switch
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US10469342B2 (en) 2014-10-10 2019-11-05 Nicira, Inc. Logical network traffic analysis
JP6721166B2 (ja) * 2014-10-14 2020-07-08 ミド ホールディングス リミテッド 仮想ネットワークにおける分散型フロー状態p2p設定のためのシステムおよび方法
US10069933B2 (en) 2014-10-23 2018-09-04 Cisco Technology, Inc. System and method for creating virtual interfaces based on network characteristics
US9936014B2 (en) 2014-10-26 2018-04-03 Microsoft Technology Licensing, Llc Method for virtual machine migration in computer networks
US9923800B2 (en) * 2014-10-26 2018-03-20 Microsoft Technology Licensing, Llc Method for reachability management in computer networks
JP6507572B2 (ja) * 2014-10-31 2019-05-08 富士通株式会社 管理サーバの経路制御方法、および管理サーバ
US9876714B2 (en) 2014-11-14 2018-01-23 Nicira, Inc. Stateful services on stateless clustered edge
US10044617B2 (en) 2014-11-14 2018-08-07 Nicira, Inc. Stateful services on stateless clustered edge
US11533255B2 (en) 2014-11-14 2022-12-20 Nicira, Inc. Stateful services on stateless clustered edge
US9866473B2 (en) 2014-11-14 2018-01-09 Nicira, Inc. Stateful services on stateless clustered edge
JP2016100625A (ja) * 2014-11-18 2016-05-30 富士通株式会社 経路情報提供プログラム、経路情報提供方法、経路情報提供装置、情報処理システムの経路制御方法、及び、情報処理システム
CN104410541B (zh) * 2014-11-18 2017-09-15 盛科网络(苏州)有限公司 Vxlan内层虚拟机流量在中间交换机上进行统计的方法及装置
CN105704036B (zh) * 2014-11-27 2019-05-28 华为技术有限公司 报文转发方法、装置和系统
US9692727B2 (en) 2014-12-02 2017-06-27 Nicira, Inc. Context-aware distributed firewall
WO2016089400A1 (en) * 2014-12-03 2016-06-09 Hewlett Packard Enterprise Development Lp Modifying an address to forward a packet to a service function
CN105721235B (zh) * 2014-12-05 2019-06-11 华为技术有限公司 一种检测连通性的方法和装置
US9590948B2 (en) 2014-12-15 2017-03-07 Cisco Systems, Inc. CCN routing using hardware-assisted hash tables
US9536059B2 (en) 2014-12-15 2017-01-03 Palo Alto Research Center Incorporated Method and system for verifying renamed content using manifests in a content centric network
US10237189B2 (en) 2014-12-16 2019-03-19 Cisco Technology, Inc. System and method for distance-based interest forwarding
US9846881B2 (en) 2014-12-19 2017-12-19 Palo Alto Research Center Incorporated Frugal user engagement help systems
US10003520B2 (en) 2014-12-22 2018-06-19 Cisco Technology, Inc. System and method for efficient name-based content routing using link-state information in information-centric networks
US9473475B2 (en) 2014-12-22 2016-10-18 Palo Alto Research Center Incorporated Low-cost authenticated signing delegation in content centric networking
US9660825B2 (en) 2014-12-24 2017-05-23 Cisco Technology, Inc. System and method for multi-source multicasting in content-centric networks
US10606626B2 (en) 2014-12-29 2020-03-31 Nicira, Inc. Introspection method and apparatus for network access filtering
US9967906B2 (en) 2015-01-07 2018-05-08 Cisco Technology, Inc. Wireless roaming using a distributed store
US9832291B2 (en) 2015-01-12 2017-11-28 Cisco Technology, Inc. Auto-configurable transport stack
US9602596B2 (en) 2015-01-12 2017-03-21 Cisco Systems, Inc. Peer-to-peer sharing in a content centric network
US9954795B2 (en) 2015-01-12 2018-04-24 Cisco Technology, Inc. Resource allocation using CCN manifests
US9946743B2 (en) 2015-01-12 2018-04-17 Cisco Technology, Inc. Order encoded manifests in a content centric network
US9916457B2 (en) 2015-01-12 2018-03-13 Cisco Technology, Inc. Decoupled name security binding for CCN objects
US9979645B2 (en) * 2015-01-14 2018-05-22 Futurewei Technologies, Inc. Hardware and software methodologies for creating and managing portable service function chains
US10061664B2 (en) * 2015-01-15 2018-08-28 Cisco Technology, Inc. High availability and failover
US9462006B2 (en) 2015-01-21 2016-10-04 Palo Alto Research Center Incorporated Network-layer application-specific trust model
US10129180B2 (en) 2015-01-30 2018-11-13 Nicira, Inc. Transit logical switch within logical router
US9552493B2 (en) 2015-02-03 2017-01-24 Palo Alto Research Center Incorporated Access control framework for information centric networking
US20160226753A1 (en) * 2015-02-04 2016-08-04 Mediatek Inc. Scheme for performing one-pass tunnel forwarding function on two-layer network structure
US10333840B2 (en) 2015-02-06 2019-06-25 Cisco Technology, Inc. System and method for on-demand content exchange with adaptive naming in information-centric networks
CN105991430B (zh) * 2015-03-05 2022-01-14 李明 跨多个自治网络系统的数据路由
US10075401B2 (en) 2015-03-18 2018-09-11 Cisco Technology, Inc. Pending interest table behavior
US10594743B2 (en) 2015-04-03 2020-03-17 Nicira, Inc. Method, apparatus, and system for implementing a content switch
US10038628B2 (en) 2015-04-04 2018-07-31 Nicira, Inc. Route server mode for dynamic routing between logical and physical networks
US9942058B2 (en) 2015-04-17 2018-04-10 Nicira, Inc. Managing tunnel endpoints for facilitating creation of logical networks
CN104993941B (zh) * 2015-05-14 2018-07-03 西安电子科技大学 一种基于Openflow网络高容错性虚拟网络映射算法
FR3037463B1 (fr) * 2015-06-15 2017-06-23 Bull Sas Transformation d'infrastructures reseaux non structurees en topologies virtuelles structurees adaptees a des algorithmes de routage specifiques
WO2016204777A1 (en) * 2015-06-19 2016-12-22 Hewlett Packard Enterprise Development LP. Network communications
US10116605B2 (en) 2015-06-22 2018-10-30 Cisco Technology, Inc. Transport stack name scheme and identity management
US10075402B2 (en) 2015-06-24 2018-09-11 Cisco Technology, Inc. Flexible command and control in content centric networks
US10554484B2 (en) 2015-06-26 2020-02-04 Nicira, Inc. Control plane integration with hardware switches
US9825851B2 (en) 2015-06-27 2017-11-21 Nicira, Inc. Distributing routing information in a multi-datacenter environment
US9680706B2 (en) 2015-06-30 2017-06-13 Nicira, Inc. Federated firewall management for moving workload across data centers
US10361952B2 (en) 2015-06-30 2019-07-23 Nicira, Inc. Intermediate logical interfaces in a virtual distributed router environment
US9519505B1 (en) 2015-07-06 2016-12-13 Bank Of America Corporation Enhanced configuration and property management system
US10505846B2 (en) 2015-07-22 2019-12-10 Cisco Technology, Inc. Resilient segment routing service hunting with TCP session stickiness
US9985837B2 (en) 2015-07-23 2018-05-29 Cisco Technology, Inc. Refresh of the binding tables between data-link-layer and network-layer addresses on mobility in a data center environment
US10701038B2 (en) 2015-07-27 2020-06-30 Cisco Technology, Inc. Content negotiation in a content centric network
JP6570033B2 (ja) * 2015-07-28 2019-09-04 日本電信電話株式会社 仮想スイッチ制御システム及び方法
US10693859B2 (en) 2015-07-30 2020-06-23 Oracle International Corporation Restricting access for a single sign-on (SSO) session
US9819581B2 (en) 2015-07-31 2017-11-14 Nicira, Inc. Configuring a hardware switch as an edge node for a logical router
US9967182B2 (en) 2015-07-31 2018-05-08 Nicira, Inc. Enabling hardware switches to perform logical routing functionalities
US9847938B2 (en) * 2015-07-31 2017-12-19 Nicira, Inc. Configuring logical routers on hardware switches
US9986034B2 (en) 2015-08-03 2018-05-29 Cisco Technology, Inc. Transferring state in content centric network stacks
US10230629B2 (en) 2015-08-11 2019-03-12 Nicira, Inc. Static route configuration for logical router
US10701104B2 (en) * 2015-08-18 2020-06-30 Acronis International Gmbh Agentless security of virtual machines using a network interface controller
US10610144B2 (en) 2015-08-19 2020-04-07 Palo Alto Research Center Incorporated Interactive remote patient monitoring and condition management intervention system
US10313186B2 (en) 2015-08-31 2019-06-04 Nicira, Inc. Scalable controller for hardware VTEPS
US10057157B2 (en) 2015-08-31 2018-08-21 Nicira, Inc. Automatically advertising NAT routes between logical routers
US9935862B2 (en) 2015-09-08 2018-04-03 At&T Intellectual Property I, L.P. Low-impact proactive monitoring of customer access to virtualized network elements in a cloud platform
US9832123B2 (en) 2015-09-11 2017-11-28 Cisco Technology, Inc. Network named fragments in a content centric network
US10355999B2 (en) 2015-09-23 2019-07-16 Cisco Technology, Inc. Flow control with network named fragments
US10313227B2 (en) 2015-09-24 2019-06-04 Cisco Technology, Inc. System and method for eliminating undetected interest looping in information-centric networks
US9977809B2 (en) 2015-09-24 2018-05-22 Cisco Technology, Inc. Information and data framework in a content centric network
US10454820B2 (en) 2015-09-29 2019-10-22 Cisco Technology, Inc. System and method for stateless information-centric networking
US9979593B2 (en) 2015-09-30 2018-05-22 Nicira, Inc. Logical L3 processing for L2 hardware switches
US10263828B2 (en) 2015-09-30 2019-04-16 Nicira, Inc. Preventing concurrent distribution of network data to a hardware switch by multiple controllers
US9948577B2 (en) 2015-09-30 2018-04-17 Nicira, Inc. IP aliases in logical networks with hardware switches
US10230576B2 (en) 2015-09-30 2019-03-12 Nicira, Inc. Managing administrative statuses of hardware VTEPs
WO2017063667A1 (en) * 2015-10-12 2017-04-20 Telefonaktiebolaget Lm Ericsson (Publ) Path computation in a multi-tenant network
US10187310B2 (en) 2015-10-13 2019-01-22 Oracle International Corporation System and method for efficient network isolation and load balancing in a multi-tenant cluster environment
US10169203B2 (en) 2015-10-14 2019-01-01 At&T Intellectual Property I, L.P. Test simulation for software defined networking environments
US10263965B2 (en) 2015-10-16 2019-04-16 Cisco Technology, Inc. Encrypted CCNx
US9819996B2 (en) 2015-10-21 2017-11-14 Rovi Guides, Inc. Systems and methods for fingerprinting to track device usage
US9848237B2 (en) 2015-10-21 2017-12-19 Rovi Guides, Inc. Systems and methods for identifying a source of a user interface from a fingerprint of the user interface
US10505982B2 (en) 2015-10-23 2019-12-10 Oracle International Corporation Managing security agents in a distributed environment
CN106656801B (zh) * 2015-10-28 2019-11-15 华为技术有限公司 业务流的转发路径的重定向方法、装置和业务流转发系统
US9794238B2 (en) 2015-10-29 2017-10-17 Cisco Technology, Inc. System for key exchange in a content centric network
US10095535B2 (en) 2015-10-31 2018-10-09 Nicira, Inc. Static route types for logical routers
US10200235B2 (en) 2015-10-31 2019-02-05 Nicira, Inc. Distributed database structure for logical and physical network data
US9807205B2 (en) 2015-11-02 2017-10-31 Cisco Technology, Inc. Header compression for CCN messages using dictionary
US10009446B2 (en) 2015-11-02 2018-06-26 Cisco Technology, Inc. Header compression for CCN messages using dictionary learning
US10324746B2 (en) 2015-11-03 2019-06-18 Nicira, Inc. Extended context delivery for context-based authorization
US10250553B2 (en) 2015-11-03 2019-04-02 Nicira, Inc. ARP offloading for managed hardware forwarding elements
US10021222B2 (en) 2015-11-04 2018-07-10 Cisco Technology, Inc. Bit-aligned header compression for CCN messages using dictionary
US10594656B2 (en) * 2015-11-17 2020-03-17 Zscaler, Inc. Multi-tenant cloud-based firewall systems and methods
US10097521B2 (en) 2015-11-20 2018-10-09 Cisco Technology, Inc. Transparent encryption in a content centric network
US9912776B2 (en) 2015-12-02 2018-03-06 Cisco Technology, Inc. Explicit content deletion commands in a content centric network
US10097346B2 (en) 2015-12-09 2018-10-09 Cisco Technology, Inc. Key catalogs in a content centric network
US9998375B2 (en) 2015-12-15 2018-06-12 Nicira, Inc. Transactional controls for supplying control plane data to managed hardware forwarding elements
US9917799B2 (en) 2015-12-15 2018-03-13 Nicira, Inc. Transactional controls for supplying control plane data to managed hardware forwarding elements
US10078062B2 (en) 2015-12-15 2018-09-18 Palo Alto Research Center Incorporated Device health estimation by combining contextual information with sensor data
US9992112B2 (en) 2015-12-15 2018-06-05 Nicira, Inc. Transactional controls for supplying control plane data to managed hardware forwarding elements
CN106936939B (zh) * 2015-12-31 2020-06-02 华为技术有限公司 一种报文处理方法、相关装置及nvo3网络系统
US10257271B2 (en) 2016-01-11 2019-04-09 Cisco Technology, Inc. Chandra-Toueg consensus in a content centric network
US9949301B2 (en) 2016-01-20 2018-04-17 Palo Alto Research Center Incorporated Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks
US10305864B2 (en) 2016-01-25 2019-05-28 Cisco Technology, Inc. Method and system for interest encryption in a content centric network
US11018947B2 (en) 2016-01-27 2021-05-25 Oracle International Corporation System and method for supporting on-demand setup of local host channel adapter port partition membership in a high-performance computing environment
US10594547B2 (en) 2016-01-27 2020-03-17 Oracle International Corporation System and method for application of virtual host channel adapter configuration policies in a high-performance computing environment
US10594627B2 (en) 2016-01-27 2020-03-17 Oracle International Corporation System and method for supporting scalable representation of switch port status in a high performance computing environment
US11271870B2 (en) 2016-01-27 2022-03-08 Oracle International Corporation System and method for supporting scalable bit map based P_Key table in a high performance computing environment
US10873566B2 (en) * 2016-02-23 2020-12-22 Nicira, Inc. Distributed firewall in a virtualized computing environment
US11038845B2 (en) * 2016-02-23 2021-06-15 Nicira, Inc. Firewall in a virtualized computing environment using physical network interface controller (PNIC) level firewall rules
US10043016B2 (en) 2016-02-29 2018-08-07 Cisco Technology, Inc. Method and system for name encryption agreement in a content centric network
US10003507B2 (en) 2016-03-04 2018-06-19 Cisco Technology, Inc. Transport session state protocol
US10742596B2 (en) 2016-03-04 2020-08-11 Cisco Technology, Inc. Method and system for reducing a collision probability of hash-based names using a publisher identifier
US10051071B2 (en) 2016-03-04 2018-08-14 Cisco Technology, Inc. Method and system for collecting historical network information in a content centric network
US10038633B2 (en) 2016-03-04 2018-07-31 Cisco Technology, Inc. Protocol to query for historical network information in a content centric network
US9832116B2 (en) 2016-03-14 2017-11-28 Cisco Technology, Inc. Adjusting entries in a forwarding information base in a content centric network
US10212196B2 (en) 2016-03-16 2019-02-19 Cisco Technology, Inc. Interface discovery and authentication in a name-based network
US11436656B2 (en) 2016-03-18 2022-09-06 Palo Alto Research Center Incorporated System and method for a real-time egocentric collaborative filter on large datasets
US10067948B2 (en) 2016-03-18 2018-09-04 Cisco Technology, Inc. Data deduping in content centric networking manifests
US20190036817A1 (en) * 2016-03-22 2019-01-31 Nec Corporation Transport network control apparatus, communication system, forwarding node control method, and program
US10091330B2 (en) 2016-03-23 2018-10-02 Cisco Technology, Inc. Interest scheduling by an information and data framework in a content centric network
US10033639B2 (en) 2016-03-25 2018-07-24 Cisco Technology, Inc. System and method for routing packets in a content centric network using anonymous datagrams
US10320760B2 (en) 2016-04-01 2019-06-11 Cisco Technology, Inc. Method and system for mutating and caching content in a content centric network
US9930146B2 (en) 2016-04-04 2018-03-27 Cisco Technology, Inc. System and method for compressing content centric networking messages
US10425503B2 (en) 2016-04-07 2019-09-24 Cisco Technology, Inc. Shared pending interest table in a content centric network
US10027578B2 (en) 2016-04-11 2018-07-17 Cisco Technology, Inc. Method and system for routable prefix queries in a content centric network
US10333849B2 (en) 2016-04-28 2019-06-25 Nicira, Inc. Automatic configuration of logical routers on edge nodes
US10348685B2 (en) 2016-04-29 2019-07-09 Nicira, Inc. Priority allocation for distributed service rules
US10581793B1 (en) * 2016-04-29 2020-03-03 Arista Networks, Inc. Address resolution in virtual extensible networks
US10484515B2 (en) 2016-04-29 2019-11-19 Nicira, Inc. Implementing logical metadata proxy servers in logical networks
US10841273B2 (en) 2016-04-29 2020-11-17 Nicira, Inc. Implementing logical DHCP servers in logical networks
US10135727B2 (en) 2016-04-29 2018-11-20 Nicira, Inc. Address grouping for distributed service rules
US10091161B2 (en) 2016-04-30 2018-10-02 Nicira, Inc. Assignment of router ID for logical routers
US10944722B2 (en) 2016-05-01 2021-03-09 Nicira, Inc. Using activities to manage multi-tenant firewall configuration
US11171920B2 (en) 2016-05-01 2021-11-09 Nicira, Inc. Publication of firewall configuration
US10404450B2 (en) 2016-05-02 2019-09-03 Cisco Technology, Inc. Schematized access control in a content centric network
US10320675B2 (en) 2016-05-04 2019-06-11 Cisco Technology, Inc. System and method for routing packets in a stateless content centric network
US10547589B2 (en) 2016-05-09 2020-01-28 Cisco Technology, Inc. System for implementing a small computer systems interface protocol over a content centric network
US10084764B2 (en) 2016-05-13 2018-09-25 Cisco Technology, Inc. System for a secure encryption proxy in a content centric network
US10063414B2 (en) 2016-05-13 2018-08-28 Cisco Technology, Inc. Updating a transport stack in a content centric network
US10103989B2 (en) 2016-06-13 2018-10-16 Cisco Technology, Inc. Content object return messages in a content centric network
US10305865B2 (en) 2016-06-21 2019-05-28 Cisco Technology, Inc. Permutation-based content encryption with manifests in a content centric network
US10057162B1 (en) * 2016-06-27 2018-08-21 Amazon Technologies, Inc. Extending Virtual Routing and Forwarding at edge of VRF-aware network
US10148572B2 (en) 2016-06-27 2018-12-04 Cisco Technology, Inc. Method and system for interest groups in a content centric network
US10129144B1 (en) * 2016-06-27 2018-11-13 Amazon Technologies, Inc. Extending virtual routing and forwarding using source identifiers
US11082400B2 (en) 2016-06-29 2021-08-03 Nicira, Inc. Firewall configuration versioning
US11258761B2 (en) 2016-06-29 2022-02-22 Nicira, Inc. Self-service firewall configuration
US10200343B2 (en) 2016-06-29 2019-02-05 Nicira, Inc. Implementing logical network security on a hardware switch
US10153973B2 (en) 2016-06-29 2018-12-11 Nicira, Inc. Installation of routing tables for logical router in route server mode
US10560320B2 (en) 2016-06-29 2020-02-11 Nicira, Inc. Ranking of gateways in cluster
US10404788B2 (en) 2016-06-30 2019-09-03 Alibaba Group Holding Limited Express route transmissions between virtual machines and cloud service computing devices
US10009266B2 (en) 2016-07-05 2018-06-26 Cisco Technology, Inc. Method and system for reference counted pending interest tables in a content centric network
US9992097B2 (en) 2016-07-11 2018-06-05 Cisco Technology, Inc. System and method for piggybacking routing information in interests in a content centric network
US10419330B2 (en) * 2016-07-21 2019-09-17 Alibaba Group Holding Limited Express route transmissions between virtual machines and cloud service computing devices
US10122624B2 (en) 2016-07-25 2018-11-06 Cisco Technology, Inc. System and method for ephemeral entries in a forwarding information base in a content centric network
US10069729B2 (en) 2016-08-08 2018-09-04 Cisco Technology, Inc. System and method for throttling traffic based on a forwarding information base in a content centric network
US10956412B2 (en) 2016-08-09 2021-03-23 Cisco Technology, Inc. Method and system for conjunctive normal form attribute matching in a content centric network
CN112486627B (zh) * 2016-08-30 2022-04-12 华为技术有限公司 一种虚拟机迁移的方法和装置
US10333983B2 (en) 2016-08-30 2019-06-25 Nicira, Inc. Policy definition and enforcement for a network virtualization platform
US10938837B2 (en) 2016-08-30 2021-03-02 Nicira, Inc. Isolated network stack to manage security for virtual machines
US10454758B2 (en) 2016-08-31 2019-10-22 Nicira, Inc. Edge node cluster network redundancy and fast convergence using an underlay anycast VTEP IP
US10326204B2 (en) 2016-09-07 2019-06-18 Cisco Technology, Inc. Switchable, oscillating near-field and far-field antenna
US10033642B2 (en) 2016-09-19 2018-07-24 Cisco Technology, Inc. System and method for making optimal routing decisions based on device-specific parameters in a content centric network
US10341236B2 (en) 2016-09-30 2019-07-02 Nicira, Inc. Anycast edge service gateways
US10212248B2 (en) 2016-10-03 2019-02-19 Cisco Technology, Inc. Cache management on high availability routers in a content centric network
US10447805B2 (en) 2016-10-10 2019-10-15 Cisco Technology, Inc. Distributed consensus in a content centric network
US10911317B2 (en) * 2016-10-21 2021-02-02 Forward Networks, Inc. Systems and methods for scalable network modeling
CN107979630B (zh) * 2016-10-25 2020-04-03 新华三技术有限公司 一种信息获取方法及装置
US10135948B2 (en) 2016-10-31 2018-11-20 Cisco Technology, Inc. System and method for process migration in a content centric network
CN106412114A (zh) * 2016-11-16 2017-02-15 广州市品高软件股份有限公司 一种基于sdn的负载均衡方法及系统
US10243851B2 (en) 2016-11-21 2019-03-26 Cisco Technology, Inc. System and method for forwarder connection information in a content centric network
US10372520B2 (en) 2016-11-22 2019-08-06 Cisco Technology, Inc. Graphical user interface for visualizing a plurality of issues with an infrastructure
US10193862B2 (en) 2016-11-29 2019-01-29 Vmware, Inc. Security policy analysis based on detecting new network port connections
US10225106B2 (en) * 2016-11-29 2019-03-05 Vmware, Inc. Efficient update of per-interface address groupings
CN110168499B (zh) 2016-12-06 2023-06-20 Nicira股份有限公司 在主机上执行上下文丰富的基于属性的服务
US10739943B2 (en) 2016-12-13 2020-08-11 Cisco Technology, Inc. Ordered list user interface
US10212071B2 (en) 2016-12-21 2019-02-19 Nicira, Inc. Bypassing a load balancer in a return path of network traffic
US10237123B2 (en) 2016-12-21 2019-03-19 Nicira, Inc. Dynamic recovery from a split-brain failure in edge nodes
US10742746B2 (en) 2016-12-21 2020-08-11 Nicira, Inc. Bypassing a load balancer in a return path of network traffic
US10803173B2 (en) 2016-12-22 2020-10-13 Nicira, Inc. Performing context-rich attribute-based process control services on a host
US10616045B2 (en) 2016-12-22 2020-04-07 Nicira, Inc. Migration of centralized routing components of logical router
US10802858B2 (en) 2016-12-22 2020-10-13 Nicira, Inc. Collecting and processing contextual attributes on a host
US10805332B2 (en) 2017-07-25 2020-10-13 Nicira, Inc. Context engine model
US10812451B2 (en) 2016-12-22 2020-10-20 Nicira, Inc. Performing appID based firewall services on a host
US10581960B2 (en) 2016-12-22 2020-03-03 Nicira, Inc. Performing context-rich attribute-based load balancing on a host
US11032246B2 (en) 2016-12-22 2021-06-08 Nicira, Inc. Context based firewall services for data message flows for multiple concurrent users on one machine
CN111866064B (zh) 2016-12-29 2021-12-28 华为技术有限公司 一种负载均衡的方法、装置和系统
US10243840B2 (en) 2017-03-01 2019-03-26 Juniper Networks, Inc. Network interface card switching for virtual networks
US10200306B2 (en) 2017-03-07 2019-02-05 Nicira, Inc. Visualization of packet tracing operation results
US10440723B2 (en) 2017-05-17 2019-10-08 Cisco Technology, Inc. Hierarchical channel assignment in wireless networks
US10681000B2 (en) * 2017-06-30 2020-06-09 Nicira, Inc. Assignment of unique physical network addresses for logical network addresses
US10555341B2 (en) 2017-07-11 2020-02-04 Cisco Technology, Inc. Wireless contention reduction
US10440031B2 (en) 2017-07-21 2019-10-08 Cisco Technology, Inc. Wireless network steering
US11570092B2 (en) 2017-07-31 2023-01-31 Nicira, Inc. Methods for active-active stateful network service cluster
US10951584B2 (en) 2017-07-31 2021-03-16 Nicira, Inc. Methods for active-active stateful network service cluster
US11296984B2 (en) 2017-07-31 2022-04-05 Nicira, Inc. Use of hypervisor for active-active stateful network service cluster
US11050730B2 (en) 2017-09-27 2021-06-29 Oracle International Corporation Maintaining session stickiness across authentication and authorization channels for access management
US10608887B2 (en) 2017-10-06 2020-03-31 Nicira, Inc. Using packet tracing tool to automatically execute packet capture operations
US10735981B2 (en) 2017-10-10 2020-08-04 Cisco Technology, Inc. System and method for providing a layer 2 fast re-switch for a wireless controller
US10805181B2 (en) 2017-10-29 2020-10-13 Nicira, Inc. Service operation chaining
US10374827B2 (en) 2017-11-14 2019-08-06 Nicira, Inc. Identifier that maps to different networks at different datacenters
US10511459B2 (en) 2017-11-14 2019-12-17 Nicira, Inc. Selection of managed forwarding element for bridge spanning multiple datacenters
US10778651B2 (en) 2017-11-15 2020-09-15 Nicira, Inc. Performing context-rich attribute-based encryption on a host
US11012420B2 (en) 2017-11-15 2021-05-18 Nicira, Inc. Third-party service chaining using packet encapsulation in a flow-based forwarding element
US10375667B2 (en) 2017-12-07 2019-08-06 Cisco Technology, Inc. Enhancing indoor positioning using RF multilateration and optical sensing
US10862773B2 (en) 2018-01-26 2020-12-08 Nicira, Inc. Performing services on data messages associated with endpoint machines
US10797910B2 (en) 2018-01-26 2020-10-06 Nicira, Inc. Specifying and utilizing paths through a network
US10802893B2 (en) 2018-01-26 2020-10-13 Nicira, Inc. Performing process control services on endpoint machines
US10659252B2 (en) 2018-01-26 2020-05-19 Nicira, Inc Specifying and utilizing paths through a network
US11012418B2 (en) 2018-02-15 2021-05-18 Forcepoint Llc Multi-access interface for internet protocol security
US11153122B2 (en) 2018-02-19 2021-10-19 Nicira, Inc. Providing stateful services deployed in redundant gateways connected to asymmetric network
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US10728174B2 (en) 2018-03-27 2020-07-28 Nicira, Inc. Incorporating layer 2 service between two interfaces of gateway device
US10862867B2 (en) 2018-04-01 2020-12-08 Cisco Technology, Inc. Intelligent graphical user interface
CN108600106B (zh) * 2018-04-28 2019-06-14 北京邮电大学 一种低时延的数据交换装置及方法
US10938778B2 (en) * 2018-05-02 2021-03-02 Forcepoint Llc Route reply back interface for cloud internal communication
CN110505176B9 (zh) * 2018-05-16 2023-04-11 中兴通讯股份有限公司 报文优先级的确定、发送方法及装置、路由系统
US10673618B2 (en) 2018-06-08 2020-06-02 Cisco Technology, Inc. Provisioning network resources in a wireless network using a native blockchain platform
US10505718B1 (en) 2018-06-08 2019-12-10 Cisco Technology, Inc. Systems, devices, and techniques for registering user equipment (UE) in wireless networks using a native blockchain platform
US10873636B2 (en) 2018-07-09 2020-12-22 Cisco Technology, Inc. Session management in a forwarding plane
US10671462B2 (en) 2018-07-24 2020-06-02 Cisco Technology, Inc. System and method for message management across a network
US11252040B2 (en) 2018-07-31 2022-02-15 Cisco Technology, Inc. Advanced network tracing in the data plane
US10284429B1 (en) 2018-08-08 2019-05-07 Cisco Technology, Inc. System and method for sharing subscriber resources in a network environment
US10735209B2 (en) 2018-08-08 2020-08-04 Cisco Technology, Inc. Bitrate utilization feedback and control in 5G-NSA networks
US10623949B2 (en) 2018-08-08 2020-04-14 Cisco Technology, Inc. Network-initiated recovery from a text message delivery failure
US10949557B2 (en) 2018-08-20 2021-03-16 Cisco Technology, Inc. Blockchain-based auditing, instantiation and maintenance of 5G network slices
US10374749B1 (en) 2018-08-22 2019-08-06 Cisco Technology, Inc. Proactive interference avoidance for access points
US10567293B1 (en) 2018-08-23 2020-02-18 Cisco Technology, Inc. Mechanism to coordinate end to end quality of service between network nodes and service provider core
US10944673B2 (en) 2018-09-02 2021-03-09 Vmware, Inc. Redirection of data messages at logical network gateway
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US10230605B1 (en) 2018-09-04 2019-03-12 Cisco Technology, Inc. Scalable distributed end-to-end performance delay measurement for segment routing policies
US10652152B2 (en) 2018-09-04 2020-05-12 Cisco Technology, Inc. Mobile core dynamic tunnel end-point processing
US10779188B2 (en) 2018-09-06 2020-09-15 Cisco Technology, Inc. Uplink bandwidth estimation over broadband cellular networks
US11558288B2 (en) 2018-09-21 2023-01-17 Cisco Technology, Inc. Scalable and programmable mechanism for targeted in-situ OAM implementation in segment routing networks
US10285155B1 (en) 2018-09-24 2019-05-07 Cisco Technology, Inc. Providing user equipment location information indication on user plane
US11463361B2 (en) * 2018-09-27 2022-10-04 Hewlett Packard Enterprise Development Lp Rate adaptive transactions
WO2020080930A1 (en) * 2018-10-15 2020-04-23 Mimos Berhad System, virtual switch and method for establishing secured communication within network segment in virtualized environment
US10601724B1 (en) 2018-11-01 2020-03-24 Cisco Technology, Inc. Scalable network slice based queuing using segment routing flexible algorithm
US10931560B2 (en) 2018-11-23 2021-02-23 Vmware, Inc. Using route type to determine routing protocol behavior
US11025503B2 (en) * 2018-11-27 2021-06-01 Nicira, Inc. Network mapping system
US10797998B2 (en) 2018-12-05 2020-10-06 Vmware, Inc. Route server for distributed routers using hierarchical routing protocol
US10938788B2 (en) 2018-12-12 2021-03-02 Vmware, Inc. Static routes for policy-based VPN
CN109617805B (zh) * 2018-12-17 2022-04-08 新华三技术有限公司合肥分公司 链路动态属性的获取方法、装置及路径选择方法、装置
US11240160B2 (en) 2018-12-28 2022-02-01 Alibaba Group Holding Limited Method, apparatus, and computer-readable storage medium for network control
US11363063B2 (en) * 2018-12-28 2022-06-14 Charter Communications Operating, Llc Botnet detection and mitigation
US11201853B2 (en) 2019-01-10 2021-12-14 Vmware, Inc. DNS cache protection
US11102074B2 (en) * 2019-01-11 2021-08-24 Cisco Technology, Inc. Software defined access fabric without subnet restriction to a virtual network
US10949244B2 (en) 2019-02-22 2021-03-16 Vmware, Inc. Specifying and distributing service chains
US11394693B2 (en) * 2019-03-04 2022-07-19 Cyxtera Cybersecurity, Inc. Establishing network tunnel in response to access request
US11310202B2 (en) 2019-03-13 2022-04-19 Vmware, Inc. Sharing of firewall rules among multiple workloads in a hypervisor
US11075857B2 (en) * 2019-06-13 2021-07-27 Cisco Technology, Inc. Peephole optimization of lightweight protocols at lower layers
US10778457B1 (en) 2019-06-18 2020-09-15 Vmware, Inc. Traffic replication in overlay networks spanning multiple sites
US11134078B2 (en) 2019-07-10 2021-09-28 Oracle International Corporation User-specific session timeouts
US11159343B2 (en) 2019-08-30 2021-10-26 Vmware, Inc. Configuring traffic optimization using distributed edge services
US10855644B1 (en) * 2019-09-09 2020-12-01 Vmware, Inc. Address resolution protocol entry verification
US11070469B1 (en) * 2019-09-11 2021-07-20 Juniper Networks, Inc. Scaling border gateway protocol services
CN110557288B (zh) * 2019-09-16 2022-04-22 鹏城实验室 一种基于OpenStack的网络可视化编辑与自动化部署系统
US11201838B2 (en) * 2019-09-25 2021-12-14 Intel Corporation System, apparatus and method for increasing efficiency of link communications
US11283717B2 (en) 2019-10-30 2022-03-22 Vmware, Inc. Distributed fault tolerant service chain
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11258727B2 (en) * 2019-11-13 2022-02-22 Arista Networks, Inc. Shared routing tables for network devices
CN113098749A (zh) * 2020-01-08 2021-07-09 华为技术有限公司 报文发送方法、装置及存储介质
US11539718B2 (en) 2020-01-10 2022-12-27 Vmware, Inc. Efficiently performing intrusion detection
US11223494B2 (en) 2020-01-13 2022-01-11 Vmware, Inc. Service insertion for multicast traffic at boundary
US11283699B2 (en) 2020-01-17 2022-03-22 Vmware, Inc. Practical overlay network latency measurement in datacenter
US11444883B2 (en) * 2020-01-17 2022-09-13 Vmware, Inc. Signature based management of packets in a software defined networking environment
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11153406B2 (en) 2020-01-20 2021-10-19 Vmware, Inc. Method of network performance visualization of service function chains
US11575646B2 (en) * 2020-03-12 2023-02-07 Vmware, Inc. Domain name service (DNS) server cache table validation
US11870679B2 (en) 2020-04-06 2024-01-09 VMware LLC Primary datacenter for logical router
US11368387B2 (en) 2020-04-06 2022-06-21 Vmware, Inc. Using router as service node through logical service plane
US11496437B2 (en) 2020-04-06 2022-11-08 Vmware, Inc. Selective ARP proxy
CN113709052B (zh) * 2020-05-21 2024-02-27 中移(苏州)软件技术有限公司 一种网络报文的处理方法、装置、电子设备和存储介质
US11295135B2 (en) * 2020-05-29 2022-04-05 Corning Research & Development Corporation Asset tracking of communication equipment via mixed reality based labeling
US11374808B2 (en) 2020-05-29 2022-06-28 Corning Research & Development Corporation Automated logging of patching operations via mixed reality based labeling
TWI742704B (zh) * 2020-06-01 2021-10-11 台眾電腦股份有限公司 資訊裝置之網路連線管理系統
EP4173239A1 (en) * 2020-06-24 2023-05-03 Juniper Networks, Inc. Layer-2 network extension over layer-3 network using encapsulation
US11616755B2 (en) 2020-07-16 2023-03-28 Vmware, Inc. Facilitating distributed SNAT service
US11606294B2 (en) 2020-07-16 2023-03-14 Vmware, Inc. Host computer configured to facilitate distributed SNAT service
US11303505B2 (en) * 2020-07-22 2022-04-12 Arista Networks, Inc. Aggregated control-plane tables
US11611613B2 (en) 2020-07-24 2023-03-21 Vmware, Inc. Policy-based forwarding to a load balancer of a load balancing cluster
US11108728B1 (en) 2020-07-24 2021-08-31 Vmware, Inc. Fast distribution of port identifiers for rule processing
US11451413B2 (en) 2020-07-28 2022-09-20 Vmware, Inc. Method for advertising availability of distributed gateway service and machines at host computer
US11902050B2 (en) 2020-07-28 2024-02-13 VMware LLC Method for providing distributed gateway service at host computer
US11558426B2 (en) 2020-07-29 2023-01-17 Vmware, Inc. Connection tracking for container cluster
US11570090B2 (en) 2020-07-29 2023-01-31 Vmware, Inc. Flow tracing operation in container cluster
US11196628B1 (en) 2020-07-29 2021-12-07 Vmware, Inc. Monitoring container clusters
US11902166B2 (en) * 2020-08-04 2024-02-13 Cisco Technology, Inc. Policy based routing in extranet networks
CN111988309B (zh) * 2020-08-18 2022-07-05 深圳市联软科技股份有限公司 一种icmp隐蔽隧道检测方法及系统
US11829793B2 (en) 2020-09-28 2023-11-28 Vmware, Inc. Unified management of virtual machines and bare metal computers
US11792134B2 (en) 2020-09-28 2023-10-17 Vmware, Inc. Configuring PNIC to perform flow processing offload using virtual port identifiers
CN114553707B (zh) * 2020-11-26 2023-09-15 腾讯科技(深圳)有限公司 网络的拓扑信息的生成和网络故障的定界方法、装置
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11736436B2 (en) 2020-12-31 2023-08-22 Vmware, Inc. Identifying routes with indirect addressing in a datacenter
US11336533B1 (en) 2021-01-08 2022-05-17 Vmware, Inc. Network visualization of correlations between logical elements and associated physical elements
US11477048B2 (en) * 2021-01-15 2022-10-18 BlackBear (Taiwan) Industrial Networking Security Ltd. Communication method for one-way transmission based on VLAN ID and switch device using the same
US20220311735A1 (en) * 2021-03-25 2022-09-29 At&T Intellectual Property I, L.P. Carrier grade network address translation architecture and implementation
US11805101B2 (en) 2021-04-06 2023-10-31 Vmware, Inc. Secured suppression of address discovery messages
US11784922B2 (en) 2021-07-03 2023-10-10 Vmware, Inc. Scalable overlay multicast routing in multi-tier edge gateways
US11687210B2 (en) 2021-07-05 2023-06-27 Vmware, Inc. Criteria-based expansion of group nodes in a network topology visualization
US11652734B2 (en) 2021-07-06 2023-05-16 Cisco Technology, Inc. Multicasting within a mutual subnetwork
US11711278B2 (en) 2021-07-24 2023-07-25 Vmware, Inc. Visualization of flow trace operation across multiple sites
US11582145B1 (en) * 2021-09-07 2023-02-14 Cisco Technology, Inc. On-demand optical next-hop with optical provisioning segment routing (SR) label
US11677645B2 (en) 2021-09-17 2023-06-13 Vmware, Inc. Traffic monitoring
CN114244763B (zh) * 2021-12-20 2023-11-17 中电福富信息科技有限公司 基于规则引擎的动态网络拓扑管理方法及其系统
CN114268491A (zh) * 2021-12-21 2022-04-01 南方电网科学研究院有限责任公司 一种基于蜜罐技术的网络安防系统
US11799761B2 (en) 2022-01-07 2023-10-24 Vmware, Inc. Scaling edge services with minimal disruption
US11928367B2 (en) 2022-06-21 2024-03-12 VMware LLC Logical memory addressing for network devices
US11928062B2 (en) 2022-06-21 2024-03-12 VMware LLC Accelerating data message classification with smart NICs
US11899594B2 (en) 2022-06-21 2024-02-13 VMware LLC Maintenance of data message classification cache on smart NIC

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506838A (en) * 1994-12-29 1996-04-09 Emc Corporation Packet propagation and dynamic route discovery apparatus and techniques
US6363421B2 (en) 1998-05-31 2002-03-26 Lucent Technologies, Inc. Method for computer internet remote management of a telecommunication network element
KR100877633B1 (ko) * 1999-07-09 2009-02-06 말리부 네트웍스, 인코퍼레이티드 Tcp/ip 패킷-중심 와이어리스 전송 시스템 아키텍처
US7545752B2 (en) * 2000-11-10 2009-06-09 Packeteer, Inc. Application service level mediation and method of using the same
US20030035371A1 (en) * 2001-07-31 2003-02-20 Coke Reed Means and apparatus for a scaleable congestion free switching system with intelligent control
KR20060024358A (ko) * 2003-04-07 2006-03-16 시네메틱스 인코포레이티드 상용의 라우터에 대해 확장 가능한 관리를 제공하는 시스템및 방법
JP2005006235A (ja) * 2003-06-16 2005-01-06 Hitachi Ltd ネットワーク監視システム及び監視方法並びにプログラム
US20060101495A1 (en) * 2004-11-05 2006-05-11 William Yoshida Device evaluation using media access control emulator
US20070248085A1 (en) * 2005-11-12 2007-10-25 Cranite Systems Method and apparatus for managing hardware address resolution
US20070140235A1 (en) * 2005-12-21 2007-06-21 Nortel Networks Limited Network visible inter-logical router links
US8848544B2 (en) * 2007-11-08 2014-09-30 Cisco Technology, Inc. Event correlation using network data flow simulation over unmanaged network segments
EP2139178A1 (en) 2008-06-27 2009-12-30 Alcatel, Lucent Method of determining a routing path
US8259569B2 (en) * 2008-09-09 2012-09-04 Cisco Technology, Inc. Differentiated services for unicast and multicast frames in layer 2 topologies
US8271775B2 (en) * 2008-12-17 2012-09-18 Cisco Technology, Inc. Layer two encryption for data center interconnectivity
US8265075B2 (en) * 2009-03-16 2012-09-11 International Business Machines Corporation Method and apparatus for managing, configuring, and controlling an I/O virtualization device through a network switch
EP2413547A4 (en) * 2009-03-26 2014-12-24 Nec Corp ROUTE DETERMINATION SERVER, ROUTE DETERMINATION METHOD AND ROUTE DETERMINATION PROGRAM
US8159936B2 (en) 2009-03-31 2012-04-17 Extreme Networks, Inc. Network convergence in response to a topology change
US7991859B1 (en) * 2009-12-28 2011-08-02 Amazon Technologies, Inc. Using virtual networking devices to connect managed computer networks
US7953865B1 (en) * 2009-12-28 2011-05-31 Amazon Technologies, Inc. Using virtual networking devices to manage routing communications between connected computer networks
US9282027B1 (en) * 2010-03-31 2016-03-08 Amazon Technologies, Inc. Managing use of alternative intermediate destination computing nodes for provided computer networks
US8683023B1 (en) * 2010-06-30 2014-03-25 Amazon Technologies, Inc. Managing communications involving external nodes of provided computer networks
US8391289B1 (en) * 2010-10-29 2013-03-05 Hewlett-Packard Development Company, L.P. Managing a forwarding table in a switch
JP5580766B2 (ja) * 2011-03-14 2014-08-27 株式会社エヌ・ティ・ティ・データ サーバ装置、パケット伝送システム、パケット伝送方法及びプログラム
US8842671B2 (en) * 2011-06-07 2014-09-23 Mellanox Technologies Ltd. Packet switching based on global identifier
ES2713078T3 (es) 2011-08-04 2019-05-17 Mido Holdings Ltd Sistema y método para implementar y gestionar redes virtuales

Also Published As

Publication number Publication date
EP2740242B1 (en) 2018-12-05
WO2013020126A1 (en) 2013-02-07
EP2740242A4 (en) 2015-06-24
EP2740242B8 (en) 2019-01-23
JP2014529926A (ja) 2014-11-13
US9900224B2 (en) 2018-02-20
US11070447B2 (en) 2021-07-20
EP2740242A1 (en) 2014-06-11
TW201322686A (zh) 2013-06-01
US20140195666A1 (en) 2014-07-10
US20180227195A1 (en) 2018-08-09
TWI583151B (zh) 2017-05-11
ES2713078T3 (es) 2019-05-17

Similar Documents

Publication Publication Date Title
JP6080313B2 (ja) 仮想ネットワークを実装及び管理するシステム及び方法
JP7004405B2 (ja) 仮想ネットワークにおける分散型フロー状態p2p設定のためのシステムおよび方法
US20210176135A1 (en) Refresh of the binding tables between data-link-layer and network-layer addresses on mobility in a data center environment
EP3231160B1 (en) Stateful load balancing in a stateless network
US20210036953A1 (en) Flow modification including shared context
US9660905B2 (en) Service chain policy for distributed gateways in virtual overlay networks
CN112470436A (zh) 使用srv6和bgp的多云连通性
WO2017209932A1 (en) Link status monitoring based on packet loss detection
WO2017209944A1 (en) Session continuity in the presence of network address translation
US9438475B1 (en) Supporting relay functionality with a distributed layer 3 gateway
KR101922795B1 (ko) 사물인터넷 서비스 제공 장치 및 그 방법
CN108259292B (zh) 建立隧道的方法及装置
EP3718016B1 (en) Method for migration of session accounting to a different stateful accounting peer

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20140901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140901

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150629

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161012

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170116

R150 Certificate of patent or registration of utility model

Ref document number: 6080313

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250