JP5864758B2 - バーチャルスイッチを介してネットワークトラフィックをコントロールするシステム及び方法 - Google Patents

バーチャルスイッチを介してネットワークトラフィックをコントロールするシステム及び方法 Download PDF

Info

Publication number
JP5864758B2
JP5864758B2 JP2014531910A JP2014531910A JP5864758B2 JP 5864758 B2 JP5864758 B2 JP 5864758B2 JP 2014531910 A JP2014531910 A JP 2014531910A JP 2014531910 A JP2014531910 A JP 2014531910A JP 5864758 B2 JP5864758 B2 JP 5864758B2
Authority
JP
Japan
Prior art keywords
packet
network
switch
virtual
controller
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.)
Expired - Fee Related
Application number
JP2014531910A
Other languages
English (en)
Other versions
JP2014531831A (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 JP2014531831A publication Critical patent/JP2014531831A/ja
Application granted granted Critical
Publication of JP5864758B2 publication Critical patent/JP5864758B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • 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/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • 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/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、通信ネットワークに関するもので、より詳細には、通信ネットワークを介してネットワークパケットを転送することに関する。
本出願は、2011年9月20日に出願された米国特許出願第13/237,806号の優先権を主張するもので、これは、参考としてここにそのまま援用される。
インターネット及びインターネットに接続されたローカルデータネットワークのようなパケットベースネットワークは、ネットワークスイッチを備えている。ネットワークスイッチは、パケットソースからパケット行先へパケットを転送するのに使用される。パケットは、時々、フレームとも称される。
ある売主のスイッチを、別の売主の装置を使用してコントロールすることは困難であるか又は不可能である。これは、ある売主のスイッチ装置が、別の売主のスイッチ装置とは異なるオペレーティングシステム、及びコントロール手順セットを使用しているからである。異なる形式のスイッチプラットホームをコントロールすることに関連した課題に対処するため、クロスプラットホームプロトコルが開発された。このプロトコルは、互換性のないスイッチを集中的にコントロールできるようにする。
ネットワークのスイッチにはクロスプラットホームコントローラクライアントが含まれる。コントローラクライアントは、ネットワーク経路を経てそれに対応するコントローラサーバーと通信することができる。コントローラクライアントは、種々のスイッチハードウェアにおいて実施されるので、互換性のないスイッチ装置を単一のコントローラでコントロールすることができる。
コントローラクライアントが実施される各ネットワークスイッチは、そのスイッチによりパケットをどのように転送するか指定するエントリーをもつフローテーブルを含む。コントローラサーバーは、データ経路を生成するようにネットワークスイッチのフローテーブルを変更することによりネットワークを介してトラフィックをルーティングする。例えば、コントローラは、望ましい経路に関連した各ネットワークスイッチと通信して、パケットソースからパケット行先へデータパケットをルーティングする。
コントローラサーバーは、ネットワークを通るネットワークパケットのフローをコントロールするネットワークポリシーを実施する。例えば、コントローラサーバーは、選択されたパケットソースとパケット行先との間のネットワークトラフィックを遮ることができる。多数のスイッチ(例えば、数十、数百、数千又はそれ以上のスイッチ)を含むネットワークではネットワークポリシーを実施することが困難である。というのは、各ネットワークポリシーが多数のネットワークスイッチのフローテーブルに対する変更を必要とするからである。
そこで、通信ネットワークにネットワークポリシーを適用するための改良された構成を提供できることが望まれる。
ネットワーク接続を経て結合されたネットワークスイッチからパケットベースネットワークが形成される。ネットワークスイッチは、コントローラクライアントを含む。コントローラクライアントは、ネットワークを介して流れるパケットのための転送経路を形成するように構成される。1つの適当な構成では、コントローラサーバーを使用して、コントローラクライアントとの通信によりネットワークスイッチを構成する。
ネットワークのスイッチは、バーチャルスイッチを形成するようにグループ化される。例えば、ネットワークアドミニストレータは、各バーチャルスイッチに含ませるポートを識別するユーザ入力をコントローラサーバーに与える。含まれるポートは、ネットワークアドレスのようなエンドホスト識別に基づいて動的に決定される。バーチャルスイッチは、複数のスイッチ又はスイッチの部分から選択されたリソースを含む。例えば、バーチャルスイッチは、複数のスイッチから選択されたポートを含む。バーチャルスイッチは、リソースが指定されるインターフェイスを含む。ネットワークアドミニストレータは、コントローラサーバーを使用して、各バーチャルスイッチ形成のためにどのポートをグループ化するか調整し、ネットワークアドミニストレーションタスクを容易にする。例えば、アドミニストレータは、エンドホストの第1セットに関連したポートのグループを第1のバーチャルスイッチに指定し、そしてエンドホストの第2セットに関連したポートのグループを第2のバーチャルスイッチに指定する。次いで、アドミニストレータは、バーチャルスイッチを通りバーチャル経路に流れるパケットトラフィックに適用すべきネットワークポリシーを定義する。ネットワークポリシーは、バーチャルスイッチの選択されたインターフェイスに適用される。
ネットワークのスイッチによりパケットが受け取られると、コントローラサーバーは、パケットに関連した情報を使用して、どのネットワークポリシーをネットワークパケットに適用すべきか決定する。パケットに関連した情報は、パケットソース及び行先アドレスと、どのプロトコルポートがパケットに関連しているかと、どのネットワークプロトコルがパケットに関連しているかと、他のパケット情報とを含む。ネットワークポリシーは、「パケットのドロップ」、「パケットの許可」、「パケットの変更」、及び他のポリシーのようなポリシーを含む。
コントローラサーバーは、受け取ったパケットに関連したバーチャルスイッチを介してのバーチャル経路を識別する。例えば、コントローラサーバーは、パケットソースからバーチャルスイッチのインターフェイスを介してパケット行先へ至るバーチャル経路を識別する。バーチャル経路は、ネットワークアドミニストレータによりネットワークポリシーが適用されたインターフェイスを含む。コントローラサーバーは、識別されたバーチャル経路及び識別されたバーチャルポリシーに基づいてパケットのための全ネットワークポリシーを定義する。識別されたバーチャル経路及び識別された全ネットワークポリシーに基づいて、コントローラサーバーは、バーチャル経路を、その識別された全ネットワークポリシーを満足する適当なネットワークスイッチを通る対応ネットワークスイッチ転送経路へ変換する。コントローラサーバーは、スイッチがその受け取ったパケットをネットワークスイッチ転送経路に沿って転送できるようにネットワークのスイッチを構成する。例えば、コントローラサーバーは、適当なパケット転送オペレーションを遂行するようにスイッチを構成するフローテーブルー又は他の情報をスイッチに与える。
コントローラサーバーは、バーチャルスイッチを形成するためにユーザによりグループ化されるポートを各々含むスイッチのネットワークを介してパケットソースからパケット行先へパケットを転送するのに使用される。コントローラサーバーは、所与のパケットの情報からの所与のパケットに関連したパケットソース及びパケット行先(例えば、ソースアドレス及び行先アドレス)を識別するのに使用される。パケットソース及び行先に関するこの情報を使用して、コントローラサーバーは、バーチャルスイッチを通るバーチャル経路を識別する。バーチャル経路は、複数のバーチャルスイッチを通過する。例えば、バーチャル経路は、(他の考えられるバーチャルスイッチの中でも)パケットソースに関連した第1のバーチャルスイッチ及びパケット行先に関連した第2のバーチャルスイッチを通る。バーチャル経路を識別した後に、コントローラサーバーは、その識別されたバーチャル経路及びネットワークポリシーを使用して、パケットソースからネットワークのスイッチを介してパケット行先へ至るパケット転送経路を生成する。
パケット転送経路を形成するために、コントローラサーバーは、全ネットワークポリシーを実施するようにネットワークの幾つかのスイッチを選択的に構成する。このように構成されたスイッチは、そのスイッチがパケットを変更できるか又はリダイレクションできるか、等のスイッチ能力に基づいて選択される。
本発明の更に別の特徴、その特性及び種々の効果は、添付図面及び以下の詳細な説明から明らかとなるであろう。
本発明の一実施形態によりコントローラ及びパケット転送システムを備えたネットワークを例示する図である。 本発明の一実施形態によりパケット処理エンジンを実行するマイクロプロセッサベースの装置を使用してパケット転送システムをどのように実施するか示す図である。 本発明の一実施形態によるパケット転送システム及びそれに関連したコントローラを示す図で、そのパケット転送システムがコントロールユニット及び関連スイッチング集積回路を含む構成を示す。 本発明の一実施形態により、パケット転送システムがマスター及びスレーブコントローラを有し、且つコントローラサーバーがリモートコンピューティング装置で実施されるか又はパケット転送システムのラインカードで実施されるネットワークを示す図である。 本発明の一実施形態によりネットワーク接続を経て通信するコントローラサーバー及びコントローラクライアントを示す図である。 本発明の一実施形態により、パケット処理システムにより使用される形式のフローテーブルを例示する図である。 本発明の一実施形態により、パケット処理システムにより使用される形式のフローテーブルを示す図で、フローテーブルのフローテーブルーに基づいて遂行される3つの形式のパケット転送を示す。 本発明の一実施形態により、特定アドレスをもつパケットがスイッチの第3の物理的ポートへ転送されるフローテーブルを例示する図である。 本発明の一実施形態により、特定アドレスをもつパケットがスイッチの第5の物理的ポートへ転送されるフローテーブルを例示する図である。 本発明の一実施形態によるパケット処理システムにおけるパケット処理に含まれるステップを示すフローチャートである。 本発明の一実施形態により第1及び第2のエンドホスト間にネットワークスイッチ転送経路を生成するためにコントローラクライアントと通信するコントローラサーバーをもつネットワークを示す図である。 本発明の一実施形態によりネットワークリソース及びエンドホストのサブセットから各々形成されたバーチャルスイッチをもつバーチャルスイッチネットワークを示す図である。 本発明の一実施形態によりバーチャルスイッチネットワークに適用されるネットワークポリシーを例示する図である。 本発明の一実施形態によりバーチャルスイッチネットワークに適用されるバーチャルインターフェイスポリシーの第1セットを例示する図である。 本発明の一実施形態によりバーチャルスイッチネットワークに適用されるバーチャルインターフェイスポリシーの第2セットを例示する図である。 本発明の一実施形態によりバーチャルインターフェイスポリシーのセットに対応するフローテーブルエントリーを例示する図である。 本発明の一実施形態により、バーチャルネットワークを生成し、そしてその生成されたバーチャルネットワークにバーチャルネットワークポリシーを適用するためにコントローラサーバーを使用して遂行されるステップを例示するフローチャートである。 本発明の一実施形態により、バーチャルネットワークポリシーをそれに対応する物理的ネットワークに適用するためにコントローラサーバーにより遂行されるステップを例示するフローチャートである。 本発明の一実施形態により、フローテーブルエントリーベースのバーチャルインターフェイスポリシーを生成するためにコントローラサーバーを使用して遂行されるステップを例示するフローチャートである。 本発明の一実施形態によりネットワークのパケット転送システムに分散されるコントローラを例示する図である。
インターネットや、インターネットに結合されたローカル及び地域ネットワークのようなネットワークは、パケットベーススイッチに依存する。ここでネットワークスイッチとも称されるそれらのスイッチ、パケット処理システム、或いはパケット転送システムは、アドレス情報に基づいてパケットを転送する。このように、パケットソースにより送信されるデータパケットは、パケット行先へ配送される。ネットワークの用語では、パケットソース及び行先は、エンドホストとも称される。エンドホストは、例えば、パーソナルコンピュータ、サーバー、及び他のコンピューティング装置である。
ネットワークスイッチは、その能力の範囲が、比較的小型のイーサネットスイッチ及びワイヤレスアクセスポイントから、複数のラインカード、冗長電源及びスーパーバイザー能力を含む大型のラックベースシステムまでの範囲である。ネットワークが複数の売主からの装置を含むことは一般的でない。異なる売主からのネットワークスイッチは、パケット転送ネットワークを形成するように相互接続できるが、それらのオペレーティングシステムとコントロールプロトコルとの間に互換性がないため集中形態で管理することが困難である。
このように潜在的に互換性がないことは、共通のクロスプラットホームコントロールモジュール(ここではコントローラクライアントとも称される)を各ネットワークスイッチに合体することで克服できる。集中型クロスプラットホームコントローラサーバーは、各ネットワークリンクを経て各コントローラクライアントと相互作用する。クロスプラットホームコントローラサーバー及びそれに対応するコントローラクライアントを使用することで、潜在的に異種のネットワークスイッチ装置を集中管理できるようになる。
一例としてここに説明する1つの例示的な構成では、図1のコントローラサーバー18のような1つ以上のコントローラサーバーにより集中型コントロールが行われる。コントローラサーバー18は、スタンドアローンコンピュータ、コンピュータのクラスター、複数の位置間に分散されたコンピュータのセット、ネットワークスイッチ内に埋め込まれたハードウェア、又は他の適当なコンピューティング装置12において実施される。コントローラサーバー10は、単一コンピュータ上で単一プロセスとして実行されてもよいし、又は冗長性のために多数のホスト間に分散されてもよい。分散構成の使用は、予期せぬネットワーク分断(例えば、2つのキャンパス間のネットワークリンクが中断する事態)に対する柔軟性をネットワーク10に与える上で助けとなる。
分散型コントローラ構成では、コントローラノードは、コントローラ内プロトコルを使用して情報を交換する。例えば、新たなエンドホストが、第1のコントローラノードのみに接続されたネットワークハードウェア(例えば、スイッチ)に接続する場合には、その第1のコントローラノードは、コントローラ内プロトコルを使用して、他のコントローラノードに、新たなエンドホストの存在を通知する。必要に応じて、スイッチ又は他のネットワークコンポーネントが多数のコントローラノードに接続される。単一のコントローラサーバーを使用して関連スイッチのネットワークをコントロールする構成が、一例としてここに説明される。
図1のコントローラサーバー18は、ネットワーク10のトポロジーに関する情報を収集する。例えば、コントローラサーバー18は、ネットワーク10のトポロジーを発見するためにネットワークを介して「リンクレイヤディスカバリープロトコル」(LLDP)プローブパケットを送信する。コントローラサーバー18は、ネットワークトポロジーに関する情報及びネットワーク装置の能力に関する情報を使用して、ネットワークを介して流れるパケットのための適当な経路を決定する。適当な経路が識別されると、コントローラサーバー18は、必要に応じてネットワークを介してパケットが流れるよう保証するために、対応する設定データをネットワーク10のハードウェアへ送信する。このようなネットワーク構成オペレーションは、システム設定オペレーション中に行われてもよいし、バックグランドにおいて連続的に行われてもよい、或いは新たに送信されるデータパケット(即ち、既存の経路が確立されていないパケット)の出現に応答して行われてもよい。
コントローラサーバー18は、ネットワーク構成ルール20を実施するために使用される。ルール20は、種々のネットワークエンティティにどのサービスが利用できるか指定する。一例として、ルール20は、ネットワーク10のどのユーザ(又はユーザの形式)が特定のサーバーにアクセスできるか指定する。ルール20は、例えば、コンピューティング装置12のデータベースに維持される。
コントローラサーバー18、及び各ネットワークスイッチ14のコントローラクライアント30は、ネットワークリンク16を経て通信するためにネットワークプロトコルスタックを使用する。
各スイッチ(パケット転送システム)14は、入力/出力ポート34を有する。ケーブルを使用して装置の断片をポート34に接続する。例えば、パーソナルコンピュータ、ウェブサーバー及び他のコンピューティング装置のようなエンドホストがポート34に差し込まれる。又、ポート34を使用して、1つのスイッチ14を他のスイッチ14に接続することもできる。
パケット処理回路32は、1つのポート34から別のポート34へパケットを転送するのに使用されると共に、到来するパケットに対して他の適当なアクションを遂行するのにも使用される。パケット処理回路32は、専用高速スイッチ回路のような1つ以上の集積回路を使用して実施され、そしてハードウェアデータ経路として働く。必要に応じて、コントロールユニット24で実行されるパケット処理ソフトウェア26は、ソフトウェアデータ経路を実施するのに使用される。
コントロールユニット24は、コントロールソフトウェアを記憶し及び実行するための処理及びメモリ回路(例えば、1つ以上のマイクロプロセッサ、メモリチップ、及び他のコントロール回路)を備えている。例えば、コントロールユニット24は、パケット処理ソフトウェア26のようなソフトウェアを記憶し及び実行し、フローテーブル28を記憶し、そしてコントローラクライアント30のオペレーションをサポートするのに使用される。
コントローラクライアント30及びコントローラサーバー18は、OpenFlowプロトコルのようなネットワークスイッチプロトコルに準拠する(例えば、OpenFlowスイッチ仕様書バージョン1.0.0を参照)。コントローラクライアント30間の1つ以上のクライアントは、他のプロトコル(例えば、簡単なネットワークマネージメントプロトコル)にも準拠する。OpenFlowプロトコル又は他の適当なプロトコルを使用して、コントローラサーバー18は、入力/出力ポート34からの到来するパケットをスイッチ14がどのように処理すべきか決定するデータをコントローラクライアント30に与える。
1つの適当な構成では、コントローラサーバー18からのフローテーブルデータは、フローテーブル28のようなフローテーブルに記憶される。フローテーブル28のエントリーは、スイッチ14を構成するのに使用される(例えば、パケット処理回路32及び/又はパケット処理ソフトウェア26の機能)。典型的なシナリオでは、フローテーブル28は、フローテーブルエントリーのためのキャッシュ記憶装置として働き、そしてそれらのフローテーブルエントリーの対応するバージョンが、パケット処理回路32の回路により維持される設定内で埋め込まれる。しかしながら、これは、単なる例示に過ぎない。フローテーブル28は、スイッチ14のフローテーブルエントリーのための排他的記憶装置として働くか、又はパケット処理回路32内のフローテーブル記憶リソースのために省略される。一般的に、フローテーブルエントリーは、適当なデータ構造(例えば、1つ以上のテーブル、リスト、等)を使用して記憶される。明瞭化のために、フローテーブル28のデータ(コントロールユニット24のデータベースに維持されるか又はパケット処理回路32の構成内に埋め込まれる)は、フローテーブル形成エントリー(例えば、フローテーブル28の行)と称される。
スイッチ14が到来パケットをどのように処理するか決定するデータを記憶するフローテーブル28の例は、単なる例示に過ぎない。ネットワークパケットをどのように転送するか判断する上でパケット転送システム14の助けとなるように、パケット転送判断エンジンが使用される。例えば、パケット転送判断エンジン28は、ネットワークパケットの属性に基づいて(例えば、ネットワークプロトコルヘッダに基づいて)ネットワークパケットを所定のポートへ転送するようにパケット転送システム14に指令する。
必要に応じて、スイッチ14は、コントロールソフトウェアを実行すると共に図2のパケット処理回路32を省略する汎用処理プラットホームを使用して実施されてもよい。この形式の構成が図2に示されている。図2の例示的構成に示すように、コンピューティング装置12のコントローラサーバー18は、ネットワークリンク16を経てスイッチ(パケット転送システム)14のコントローラクライアント30と通信する。コントローラサーバー18は、例えば、フローテーブル28に維持されたコントローラクライアント30へフローテーブルエントリーを搬送する。パケット処理ソフトウェア40は、ネットワークインターフェイス38を使用して、パケット(例えば、ポー他34を使用して送信及び受信されるパケット)を転送し、さもなければ、処理する。ネットワークインターフェイス38は、(一例として)スイッチ14のシステムボードへプラグインされる1つ以上のネットワークインターフェイスカードを使用して実施される。
図1のネットワークスイッチ14のようなネットワークスイッチは、1つ以上の高速スイッチング集積回路(スイッチIC)に結合されたコントロール回路を使用して実施される。この形式の構成が図3に示されている。図3に示すように、コンピューティング装置12のコントローラサーバー18は、経路16を経てネットワークスイッチ14と通信する。スイッチ14は、処理回路24、及びスイッチIC32−1・・・スイッチIC32−Nのような1つ以上の関連スイッチIC32を備えている。コントロール回路24は、例えば、マイクロプロセッサ及びメモリをベースとする。スイッチIC32−1・・・32−Nは、高速度でパケット処理タスクを取り扱うことのできる専用スイッチング回路である。例えば、コントロール回路24は、500MHzマイクロプロセッサをベースとし、そしてスイッチIC32−1・・・32−Nは、(一例として)1−10Gbpsの関連データレートを各々有する48の入力/出力ポート34からのデータを取り扱うことができる。
図1のネットワークスイッチ14を実施するのに使用できる別の例示的スイッチアーキテクチャーが図4に示されている。図4の例では、スイッチ(パケット転送システム)14は、プロセッサ24−1のようなマスタープロセッサと、スレーブプロセッサ24−2のような1つ以上の関連スレーブプロセッサとを備えている。スイッチIC32と、プロセッサ24−2のようなスレーブプロセッサとは、ラインカード48のようなラインカードにおいて実施される。ラインカード50のような1つ以上のラインカードは、処理回路(例えば、マイクロプロセッサ及びメモリ)を含む。ラインカード48及び50は、バックプレーン52を使用して相互接続される。
図4に示す形式の構成では、コントローラサーバーは、ラインカードの処理リソースを使用して実施される。例えば、コントローラサーバーは、図4のコントローラサーバー18−Bで示されたようにラインカード50において実施される。必要に応じて、コントローラサーバーは、コンピューティング装置12において(例えば、図4のコントローラサーバー18−Aとして)実施されてもよい。コントローラサーバー18−A又はコントローラサーバー18−Bは、プロセッサ24−1及び/又は24−2のようなプロセッサを使用して実施されるコントローラクライアント30と通信する。コントローラサーバー18−Aとコントローラクライアントとの間の通信は、ネットワーク接続16を経て行われる。コントローラサーバー18−Bとコントローラクライアントとの間の通信は、バックプレーン52を経て(例えば、TCP/IPのようなプロトコルを使用してネットワーク接続を経て)行われる。
図5に示すように、コントローラサーバー18及びコントローラクライアント30は、ネットワークプロトコルスタック58及びネットワークプロトコルスタック60のようなネットワークプロトコルスタックを使用してネットワーク経路66を経て通信する。スタック58及び60は、例えば、Linux TCP/IPスタック又はVxWorksオペレーティングシステムにおけるTCP/IPスタックである(一例として)。経路66は、例えば、スイッチ14と外部装置との間のネットワーク接続をサポートする経路(例えば、図1のネットワーク経路16)であるか、或いは図4に示すように、スイッチ14のバックプレーン52においてネットワーク接続をサポートする経路である。ここでは、経路66が経路16のようなネットワーク経路である構成を一例として説明する。
コントロールプロトコルスタック56は、ネットワークプロトコルスタック58とコントロールソフトウェア54との間のインターフェイスとして働く。コントロールプロトコルスタック62は、ネットワークプロトコルスタック60とコントロールソフトウェア64との間のインターフェイスとして働く。オペレーション中に、コントローラサーバー18がコントローラクライアント30と通信するときに、コントロールプロトコルスタック56は、コントロールプロトコルメッセージ(例えば、ポートをアクチベートするか又は特定のフローテーブルエントリーをフローテーブル28へインストールするためのコントロールメッセージ)を発生しそしてパースする。図5に示す形式の構成を使用することにより、コントローラサーバー18とコントローラクライアント30との間のリンクにわたってネットワーク接続が形成される。コントローラサーバー18及びコントローラクライアント30は、送信コントロールプロトコル(TCP)又はユーザデータグラムプロトコル(UDP)を使用してインターネットプロトコル(IP)ネットワーク接続を経て通信することができる。ネットワーク接続を経てコントローラサーバー18とコントローラクライアント30との間で通信するときに使用されるコントロールプロトコルは、例えば、SNMP及びOpenFlowプロトコルスタックバージョン1.0.0を含む(一例として)。
フローテーブル28は、複数のフィールド(ヘッダフィールドとも称される)を有するフローテーブルエントリー(例えば、テーブルの行)を含む。スイッチ14により受け取られたパケットのフィールドは、フローテーブルのフィールドと比較される。各フローテーブルエントリーは、それに関連したアクションを有する。パケットのフィールドとフローテーブルエントリーのフィールドとの間に一致があるときには、そのフローテーブルエントリーに対応するアクションが取られる。
例示的フローテーブルが図6に示されている。図6Aに示すように、テーブル28は、フローテーブルエントリー(行)68を有する。各フローテーブルエントリーには、ヘッダ70、アクション72及び統計値74が関連される。ヘッダ70は、複数のヘッダフィールド76を各々含む。各フローテーブルエントリーのアクションは、パケットのフィールドと、そのフローテーブルエントリーのヘッダにおける対応フィールドとの間に一致が検出されたときにパケットに対してどんなアクションスイッチ14を遂行すべきか指示する。スイッチ14は、スイッチ14の遂行に関する情報を得ることが望まれるときにコントローラサーバー18により質問される統計データ(カウンタ値)をフローテーブル28の統計値部分に維持する。
ヘッダ70のヘッダフィールド(及び各到来パケットの対応フィールド)は、次のフィールドを含む。進入ポート(即ち、パケットが受け取られるところのスイッチ14の物理的ポートのアイデンティティ)、イーサネットソースアドレス、イーサネット行先アドレス、イーサネット形式、バーチャルローカルエリアネットワーク(VLAN)id、VLANプライオリティ、IPソースアドレス、IP行先アドレス、IPプロトコル、IP ToS(サービスの形式)ビット、トランスポートソースポート/インターネットコントロールメッセージプロトコル(ICMP)形式(ソースTCPポートとも称される)、及びトランスポート行先ポート/ICMPコード(行先TCPポートとも称される)。必要に応じて、他のフィールドも使用される。
各フローテーブルエントリー(フローエントリー)には、一致するパケットをスイッチがどのように取り扱うか指令するゼロ以上のアクションが関連される。転送アクションが存在しない場合には、パケットがドロップされるのが好ましい。パケットフィールドとフローテーブルエントリーのヘッダフィールドとの間に一致があるときにスイッチ14により行われるアクションは、次のアクションを含む。転送(例えば、到来するインターフェイスを含まない全てのインターフェイスを経てパケットを送出するALL;パケットをカプセル化してコントローラサーバーへ送るCONTROLLER;スイッチのローカルネットワーキングスタックへパケットを送るLOCAL;フローテーブル28におけるアクションを遂行するTABLE;入力ポートからパケットを送出するIN_PORT;例えば、慣習的なレベル2、VLAN、及びレベル3処理を使用してスイッチによりサポートされるデフォールト転送経路でパケットを処理するNORMAL;及び到来するインターフェイスを含まない最小スパンツリーに沿ってパケットを溢れさせるFLOOD)。スイッチ14により行われる付加的なアクションは、次のものを含む。ポートにアタッチされたキューを介してパケットを転送するエンキューアクション、ドロップアクション(例えば、特定のアクションを伴わずにフローテーブルエントリーに一致するパケットをドロップする)、パケットにより指定されるパケット行先以外のパケット行先へパケットをリダイレクトするリダイレクトアクション。変更フィールドアクションもスイッチ14によりサポートされる。行われる変更フィールドアクションは、例えば、セットVLAN ID、セットVLANプライオリティ、ストリップVLANヘッダ、変更イーサネットソースMAC(メディアアクセスコントロール)アドレス、変更イーサネット行先MACアドレス、変更IPv4、変更IPv4 ToSビット、変更トランスポート行先ポートを含む。
図6Bは、3つのフローテーブルエントリーを有するフローテーブルを例示するものである。それらエントリーは、ワイルドカード(例えば、“*”記号)を伴うフィールドを含む。ワイルドカードが特定のフィールドに存在するときには、全ての到来するパケットは、到来するパケットのフィールドの特定値に関わりなく、フィールドに対して「一致」を形成するとみなされる。
図6Bのテーブルの第1行のエントリーは、フローテーブルエントリーが動作しているスイッチに、イーサネットスイッチングを遂行するように指令する。特に、一致するイーサネット行先アドレスを伴う到来するパケットは、ポート3へ転送される。
図6Bのテーブルの第2行のエントリーは、インターネットルーティングを遂行するためにスイッチをどのように構成するか示す(即ち、パケットは、それらの行先IPアドレスに基づいて転送される)。
図6Bのテーブルの第3行は、ファイアウオールを形成するためにスイッチをどのように構成するか示すエントリーを含む。行先IPポート値が80のパケットが受け取られると、そのパケットはドロップされる(即ち、スイッチは、ポート80のトラフィックを遮るファイアウオールとして働くように構成される)。
図6Bに示す形式のフローテーブルエントリーは、システム設定オペレーション中にコントローラサーバー18によりスイッチ14へロードされるか、又はスイッチ14からコントローラサーバー18においてパケットを受け取って処理するのに応答してリアルタイムでコントローラサーバー18からスイッチ14へ送られる。多数のスイッチ14を伴うネットワークでは、ネットワークを通る経路を形成するために各スイッチに適当なフローテーブルエントリーが設けられる。
一例として、各エンドホスト間に直列に接続された第1及び第2スイッチを含むネットワークについて考える。第1のエンドホストから第2のエンドホストへトラフィックを送るときには、第1及び第2のスイッチを介してトラフィックをルーティングすることが望ましい。第2のスイッチが第1のスイッチのポート3に接続される場合、第2のエンドホストが第2のスイッチのポート5に接続される場合、及び第2のエンドホストの行先IPアドレスが172.12.3.4である場合には、コントローラサーバー18は、第1のスイッチに図6Cのフローテーブルエントリーを与えると共に、第2のスイッチに図6Dのフローテーブルエントリーを与える。行先IPアドレス172.12.3.4をもつパケットが第1のスイッチに受け取られると、それらは、図6Cのテーブルの「ポート3へ転送」アクションに基づいて第2のスイッチへ転送される。それらパケットが第2のスイッチに受け取られると、それらは、図6Dの「ポート5へ転送」アクションに基づき第2のスイッチのポート5に接続された第2のエンドホストへ転送される。
入力/出力ポート34を経て受け取られるパケットの処理中にスイッチ14により遂行される例示的ステップが図7に示されている。ステップ78において、スイッチ14は、そのポートの1つ(例えば、図1の入力/出力ポート34の1つ)でパケットを受け取る。
ステップ80において、スイッチ14は、受け取ったパケットのフィールドを、そのスイッチのフローテーブル28におけるフローテーブルエントリーのフィールドと比較して、一致があるかどうか決定する。フローテーブルエントリーのあるフィールドは、完全な値(即ち、完全なアドレス)を含む。他のフィールドは、ワイルドカードを含む(即ち、“*”の“don’t care”ワイルドカードキャラクタでマークされたフィールド)。更に別のフィールドは、部分的に完全なエントリー(即ち、部分的にワイルドカード化された部分的アドレス)を有する。あるフィールドは、範囲を使用し(例えば、TCPポート番号を1と4096との間の値に制限することにより)、そして実際にその範囲を使用して、ある形式の部分的ワイルドカード化を実施する。受け取ったパケットとフローテーブルエントリーとの間のフィールドごとの比較を行う際に、スイッチ14は、フローテーブルエントリーの各フィールドが、ワイルドカード化なしの完全な値を含むか、ワイルドカード化を伴う部分的値を含むか、又はワイルドカードキャラクタ(即ち、完全にワイルドカード化されたフィールド)を含むか、考慮することができる。
ステップ80の動作中に、パケットのフィールドと、フローテーブルエントリーの対応フィールドとの間に一致がないことが決定された場合には、スイッチ14は、リンク16を経てコントローラサーバー18へパケットを送出する(ステップ84)。
ステップ80の動作中に、パケットとフローテーブルエントリーとの間に一致があると決定された場合には、スイッチ14は、そのフローテーブルエントリーに関連したアクションを遂行し、そしてそのフローテーブルエントリーの統計値フィールドにおけるカウンタ値を更新する(ステップ82)。次いで、処理は、線86で示すようにステップ78へループバックし、スイッチ14により別のパケットが処理されるようにする。
図8は、コントローラクライアントをもつスイッチ(又は他のパケット転送システム)(例えば、クライアントスイッチSW1、SW2、SW3及びSW4)と、経路66を経てクライアントスイッチをコントロールするコントローラサーバー18とを備えたネットワークを例示する。クライアントスイッチは、クライアントスイッチのポートを経て他のネットワーク要素に結合される。例えば、クライアントスイッチSW1は、ポートAを経て第1のエンドホストEH1に結合され、ポートCを経てクライアントスイッチSW3に結合され、そしてポートBを経てクライアントスイッチSW2に結合される。
ネットワーク100は、スイッチSW1に結合されたエンドホストEH1及びスイッチSW4に結合されたエンドホストEH2のようなエンドホストを含む。各エンドホストは、それに対応するネットワークアドレスを有する。例えば、エンドホストEH1は、メディアアクセスコントロール(MAC)アドレスが1であり且つインターネットプロトコル(IP)アドレスが10.0.0.2であり、そしてエンドホストEH2は、MACアドレスが2であり且つインターネットプロトコル(IP)アドレスが10.0.0.1である。
エンドホストは、ネットワーク100のスイッチを介してデータを送信することにより他のエンドホストと通信する。例えば、エンドホストEH1は、スイッチSW4に対して予定されたスイッチSW1へネットワークパケットを送信する。スイッチSW1は、ネットワークスイッチ転送経路(例えば、ネットワークスイッチSW1、SW3及びSW4を含む転送経路)に沿ってネットワークパケットを転送して、エンドホストEH2がネットワークパケットを受信するようにする。ネットワークスイッチ転送経路は、コントローラサーバー18により発生される(例えば、エンドホストEH1からエンドホストEH2へネットワークパケットを転送するようにスイッチに指令する適当なフローテーブルエントリーをネットワークスイッチに与えることにより)。
クライアントスイッチのポートのサブセットから及び/又はエンドホストのようなネットワーク要素からグループを形成することが望まれる。例えば、電子支払クライアント(例えば、支払トランザクションを遂行するために電子支払サーバーと通信するのに使用される装置)は、ネットワークのクライアントスイッチにおけるポートの幾つかに結合される。電子支払クライアントから第1グループをそして電子支払サーバーから第2グループを形成して、電子支払クライアントに関連したネットワークトラフィックを便利にコントロールすることが望まれる(例えば、クレジットカード番号のような繊細な支払情報が他の装置へ送信されるのを防止するため、電子支払クライアントに関連したポートから発生するパケットが電子支払サーバー以外の行先に到達するのを防止することが望まれる)。
クライアントスイッチのポートのサブセットから(例えば、ネットワークスイッチポートから)、及びエンドホストのようなネットワーク要素からグループを形成するために、コントローラサーバー16は、バーチャルスイッチを生成する。一例として、バーチャルスイッチは、電子支払クライアントに対応するネットワーク100内のポート及びエンドホストのサブセットから形成される。各バーチャルスイッチは、スイッチポートからの1つ以上の各ポート、又は1つ以上の各エンドホストに対応するバーチャルインターフェイスを有する。バーチャルインターフェイスは、バーチャルスイッチの内部のトラフィック(例えば、バーチャルスイッチのバーチャルインターフェイス間のネットワークトラフィック)と、バーチャルスイッチの外部のトラフィック(例えば、バーチャルスイッチに関連しないポート又はエンドホストへ向けられ又はそこから受け取られるトラフィック)との間の境界を表わす。
ネットワーク100のエンドホスト及び/又はネットワークスイッチポートに関連したバーチャルスイッチを含むバーチャルネットワーク100Aが図9に例示されている。このバーチャルネットワーク100Aは、第1のバーチャルスイッチVSW1及び第2のバーチャルスイッチVSW2を備えている。各バーチャルスイッチは、そのバーチャルスイッチを他のバーチャルスイッチにリンクするか、或いはエンドホスト又はネットワークスイッチポートのようなネットワーク要素にリンクするインターフェイスを含む。バーチャルスイッチVSW1は、そのバーチャルスイッチVSW1をエンドホストEH1にリンクするインターフェイスIF1と、そのバーチャルスイッチVSW1をバーチャルスイッチVSW2にリンクするインターフェイスIF2とを含む。バーチャルスイッチVSW2は、そのVSW2をVSW1にリンクするインターフェイスIF3と、VSW2をエンドホストEH2にリンクするインターフェイスIF4とを含む。
IF1及びIF2のようなバーチャルスイッチインターフェイスは、静的な物理的インターフェイスに関連されるか、又は対応する物理的ネットワーク(例えば、図8のネットワーク100)内のエンドホストの位置に基づいて動的に更新される。バーチャルスイッチVSW1のインターフェイスIF1は、ゼロのメディアアクセスコントロール(MAC)アドレスにリンクされる(例えば、インターフェイスIF1は、MACアドレスがゼロのエンドホストが結合されたネットワークスイッチポートを表わすように動的に更新される)。バーチャルスイッチVSW2のインターフェイスIF2は、ネットワークスイッチSW4の物理的ポートLにリンクされる(例えば、インターフェイスIF2は、ポートLに静的にリンクされる)。
関連MACアドレスに基づいてエンドホストをバーチャルスイッチインターフェイスに指定する例は、単なる例示に過ぎない。必要に応じて、ネットワーク識別タグの組み合わせを使用して、エンドホストをバーチャルスイッチインターフェイスに指定することができる。例えば、エンドホストは、MACアドレス、インターネットプロトコル(IP)アドレス、バーチャルローカルエリアネットワーク(VLAN)識別子、ルックアップテーブルに基づく識別タグ、等の組み合わせを使用して、バーチャルスイッチインターフェイスに指定される。必要に応じて、所与のエンドホストに関連した1つ以上のポートがバーチャルスイッチに指定されてもよい(例えば、所与のエンドホストに結合された物理的ポートがバーチャルスイッチに指定され、そして所与のエンドホストがネットワークに結合される位置を反映するように更新されてもよい)。このようにバーチャルスイッチインターフェイスに指定されたエンドホストのネットワーク位置(例えば、エンドホストが結合されるスイッチ及びスイッチポート)は、ネットワーク内の変化を反映するように動的に更新される。
コントローラサーバー18は、ネットワーク100を通るネットワークトラフィックをコントロールするネットワークポリシーを適用するのに使用される。コントローラサーバー18により適用されるネットワークポリシーは、パケット転送ルール、アクセスコントロールルール、パケットリダイレクションルール、又はネットワーク100を通るネットワークトラフィックの流れをコントロールする他のポリシーを含む。
図8のSW1、SW2、SW3及びSW4のようなネットワークスイッチではなく、図9のVSW1及びVSW2のようなバーチャルネットワークスイッチにネットワークポリシーを適用することが望まれる。例えば、ネットワークセキュリティカメラ及びネットワークセキュリティコンピュータ(例えば、ネットワークセキュリティカメラを動作するためにネットワークセキュリティ要員により使用されるコンピュータ)のためのネットワークポリシーを適用する上で助けとなるように、第1のバーチャルスイッチは、ネットワークセキュリティカメラに対応するエンドホストから形成され、そして第2のバーチャルスイッチは、ネットワークセキュリティコンピュータに対応するエンドホストから形成される。このシナリオにおいて、ネットワークアドミニストレータは、コントローラサーバー18を使用して、ネットワークセキュリティコンピュータがネットワークセキュリティカメラにアクセスするのを許す(例えば、他のエンドホストがネットワークセキュリティカメラにアクセスするのを許すことなく)ネットワークポリシーを実施する。ネットワーク内の各物理的スイッチを個々にコントロールするのではなく、バーチャルスイッチをコントロールすることにより、ネットワークアドミニストレータは、ネットワークポリシーをより効率的に実施することができる(例えば、コントロールすべきバーチャルスイッチが少ないために)。バーチャルネットワークに適用されるネットワークポリシーは、ここでは、バーチャルネットワークポリシーとも称される。
図10Aは、(例えば、コントローラサーバー18を使用して)バーチャルネットワーク100Aに適用されるバーチャルネットワークポリシー92を例示する。バーチャルネットワークポリシー92は、バーチャルスイッチVSW1に関連したエンドホストが、ハイパーテキストトランスポートプロトコル(HTTP)を使用して、バーチャルスイッチVSW2に関連したエンドホストにアクセスするのを許すが、バーチャルスイッチVSW1とバーチャルスイッチVSW2との間の他の全てのネットワークトラフィックを拒絶することができる。例えば、ネットワークセキュリティコンピュータは、ハイパーテキストトランスポートプロトコルを使用してネットワークセキュリティカメラと通信する。許可されていないネットワーク装置がネットワークセキュリティカメラにアクセスするのを許すことなく、ネットワークセキュリティコンピュータがネットワークセキュリティカメラにアクセスするのを許すために、バーチャルネットワークポリシーは、バーチャルスイッチVSW1からのハイパーテキストトランスポートプロトコルトラフィックのみがバーチャルスイッチVSW2へ到達するのを許す(その逆のことも言える)。
バーチャルネットワークポリシー92を実施するため、コントローラサーバー18は、それに対応するバーチャルインターフェイスポリシーを、選択されたバーチャルインターフェイスにおいて実施する。バーチャルインターフェイスポリシーは、コントローラサーバー18に(例えば、テーブル又はデータベースに)記憶される。図10Bは、バーチャルスイッチVSW2のインターフェイスIF3に適用されるバーチャルインターフェイスポリシーの一例を示す。図10Bの例において、80の行先トランスポートコントロールプロトコル(TCP)ポートをもつ進入ネットワークパケット及び80のソースTCPポートをもつ退出ネットワークパケットは、バーチャルインターフェイスIF3を通過することが許されるが、他の属性をもつネットワークパケットは、阻止されるか又はドロップされる。このように、ハイパーテキストトランスポートプロトコルを使用して通信するネットワークセキュリティコンピュータ及びネットワークセキュリティカメラは、TCPポート80を使用してネットワークパケットを送信及び受信する(一例として)。
バーチャルネットワークポリシーは、望ましいバーチャルインターフェイスにおいて適用することができる。例えば、ネットワークセキュリティコンピュータ(例えば、エンドホストEH1)がネットワークセキュリティカメラ(例えば、エンドホストEH2)にアクセスするのを許すバーチャルネットワークポリシーは、インターフェイスIF1、IF2、IF3、IF4に適用されるか、或いはネットワークセキュリティコンピュータからネットワークセキュリティカメラへのバーチャルネットワーク経路(例えば、望ましい数のバーチャルネットワークスイッチを通るバーチャルネットワーク経路)におけるインターフェイスの組み合わせに適用される。図10Cは、バーチャルネットワークポリシー92をバーチャルスイッチVSW1のインターフェイスIF2にどのように適用するか示している。図10Cの例において、80のソーストランスポートコントロールプロトコル(TCP)ポートをもつ進入ネットワークパケット及び80の行先TCPポートをもつ退出ネットワークパケットは、バーチャルインターフェイスIF2を通過することが許されるが、他の属性をもつネットワークパケットは、エンドホストEH1とEH2との間の無断ネットワークトラフィックを防止するために阻止されるか又はドロップされる。
エンドホストEH1とEH2との間に単一のバーチャルスイッチ経路しか存在しない図9の例は、単なる例示に過ぎない。必要に応じて、エンドホストEH1からエンドホストEH2への別のバーチャルスイッチ経路を与える付加的なバーチャルスイッチが形成されてもよい。バーチャルネットワークポリシー92のようなバーチャルネットワークポリシーを実施するため、コントローラサーバー92を使用して、バーチャルインターフェイスポリシーを、エンドホストEH1とEH2との間の各考えられるバーチャルスイッチ経路における選択されたバーチャルインターフェイスに適用してもよい(例えば、ネットワークパケットがバーチャルネットワークポリシーへの適合を回避できなくするよう保証するために)。
バーチャルネットワークポリシーは、それに対応する物理的ネットワーク(例えば、スイッチ又は他のパケット転送システムの物理的ネットワーク)に適用される。コントローラサーバー18は、バーチャルネットワークスイッチ間のトラフィックをコントロールするバーチャルネットワークポリシーを、それに対応する物理的ネットワークを通るネットワークトラフィックをコントロールするネットワークスイッチ転送ルールへと変換する。各バーチャルインターフェイスポリシーは、物理的ネットワークのパケット転送システムに与えられるネットワークスイッチ転送ルール(例えば、フローテーブルエントリー)の対応セットへと変換される。
図10Dは、図10Aのバーチャルネットワークポリシー92を実施するために物理的ネットワーク100のスイッチに与えられるフローテーブルエントリーを例示するものである。図10Dの例では、コントローラサーバー18は、エンドホストEH1(例えば、ネットワークセキュリティコンピュータ)と、スイッチSW1、SW3及びSW4を含むエンドホストEH2との間のネットワークスイッチルーティング経路を識別する。コントローラサーバー18は、フローテーブルエントリー96AをスイッチSW1に与え、フローテーブルエントリー96BをスイッチSW3に与え、そしてフローテーブルエントリー96CをスイッチSW4に与える。フローテーブルエントリーは、ネットワークポリシー92を実施する間にエンドホストEH1とEH2との間にネットワークパケットを転送する(例えば、フローテーブルエントリーは、TCPポート80を使用するエンドホストEH1とEH2との間のネットワークトラフィックしか許さない)。
フローテーブル96Aは、物理的入力ポートAで受け取られたネットワークパケットを行先IPアドレス10.0.0.1及び行先TCPポート80と共にポートCへ転送するようにスイッチSW1に指令する第1エントリーを含む。又、フローテーブル96Aは、物理的入力ポートCで受け取られたネットワークパケットを行先IPアドレス10.0.0.2と共にポートAへ転送するようにスイッチSW1に指令する第2エントリーを含む(例えば、ネットワークパケットの行先TCPポートに関わりなく)。
フローテーブル96Bは、ネットワークパケットを行先IPアドレス10.0.0.1と共にポートIへ転送すると同時に、生存時間(TTL)ネットワークパケットヘッダフィールドをデクリメントするようにスイッチSW3に指令する第1エントリーを含む。又、フローテーブル96Bは、ネットワークパケットを行先IPアドレス10.0.0.2と共にポートHへ転送すると同時に、生存時間ネットワークパケットヘッダフィールドをデクリメントするようにスイッチSW3に指令する第2エントリーを含む。
生存時間ヘッダフィールドは、ネットワークパケットがネットワークによりドロップされる前に横断するネットワーク要素の数を指示する。例えば、エンドホストEH1は、ネットワークパケットを、TTLネットワークパケットヘッダフィールドに記憶された所与の生存時間(TTL)値(例えば、64、128、255、等の値)と共に送信する。生存時間ネットワークパケットヘッダフィールドをデクリメントすることにより、ネットワーク100のスイッチは、ネットワークパケットが、生存時間ネットワークパケットヘッダフィールドに記憶された元の値より長いネットワークスイッチ転送経路を横断するのを防止する(例えば、生存時間ヘッダフィールドの値がゼロに達したときにネットワークパケットがドロップするので)。
ネットワークパケットの生存時間(TTL)ヘッダフィールドをデクリメントするのに使用されるスイッチSW3は、単なる例示に過ぎない。必要に応じて、エンドホストEH1からエンドホストEH2へのネットワーク経路にあるスイッチには、TTLヘッダフィールドをデクリメントするようにそのスイッチに指令するフローテーブルエントリーが与えられる。必要に応じて、ネットワーク経路にあるスイッチは、他のバーチャルネットワークポリシー(例えば、エンドホストEH2から離れるようにネットワークトラフィックを選択的にリダイレクションするか、又はエンドホストEH1から送られたネットワークトラフィックを変更するポリシー)を実施するのに使用される。例えば、コントローラサーバー18は、ソースIPアドレスフィールドの変更、MACアドレスフィールドの変更、VLANヘッダフィールドの変更、等のバーチャルネットワークポリシーを実施するために適当なスイッチ(例えば、適当なスイッチ能力をもつネットワークスイッチ)を選択する。バーチャルネットワークポリシーは、1つ以上のバーチャルスイッチの選択された部分間(例えば、選択されたエンドホスト又は選択された物理的ポート間)のバーチャルルーター又はバーチャルブリッジを実施するバーチャルネットワークポリシーのようなより広いネットワークポリシーの一部分として適用されてもよい。
フローテーブル96Cは、物理的入力ポートLからのネットワークパケットを行先IPアドレス10.0.0.2及びソースTCPポート80と共にポートJへ転送するようにスイッチSW4に指令する第1エントリーと、物理的入力ポートJで受信したネットワークパケットを行先IPアドレス10.0.0.1と共にポートLへ転送する(例えば、ソースTCPポートに関わらず)ようにスイッチSW4に指令する第2エントリーとを含む。
フローテーブル96A、96B及び96Cのフローテーブルエントリーは、スイッチSW1、SW3及びSW4を介してエンドホストEH1とEH2との間にネットワークスイッチ転送経路を発生する。バーチャルネットワークポリシー92は、その発生されたネットワークスイッチ転送経路全体にわたって実施される。例えば、ネットワークポリシーは、スイッチSW1に部分的に適用され(例えば、テーブル96Aの第1エントリーは、エンドホストEH1からのネットワークパケットがエンドホストEH2のTCPポート80に到達することしか許さず)、そしてスイッチSW4に部分的に適用される(例えば、テーブル96Cの第1エントリーは、エンドホストEH2のTCPポート80からのネットワークパケットがエンドホストEH1に到達することしか許さない)。これは、単なる例示に過ぎない。必要に応じて、バーチャルネットワークポリシーは、エンドホストEH1とEH2との間の識別されたネットワークスイッチ転送経路に沿って望ましいスイッチ(又は他のパケット転送システム)において部分的に実施されてもよい。ネットワークスイッチ転送経路のスイッチは、スイッチ能力に基づいて選択される(例えば、スイッチSW3は、生存時間ヘッダフィールドをデクリメントできる物理的ネットワーク100の唯一のスイッチであり、それ故、スイッチSW3を含ませるためにネットワークスイッチルーティング経路が要求される)。
図10Dにより発生されるネットワークスイッチ転送経路は、単なる例示に過ぎない。必要に応じて、コントローラサーバー18は、バーチャルネットワークポリシー92を、エンドホストEH1とEH2との間の物理的ネットワーク経路のためのフローテーブルエントリーへと変換する。例えば、コントローラサーバー18は、スイッチSW1、SW2、SW3及びSW4、等を通る経路を識別する。
物理的ネットワークの物理的ポート及び/又はエンドホストのサブセットに各々対応するバーチャルスイッチのバーチャルネットワークを生成すると共に、バーチャルネットワークを通るネットワークパケットの転送をコントロールするネットワークポリシーを定義するために、図11のフローチャート110の例示的ステップは、コントローラサーバー18を使用して遂行される。
ステップ112において、コントローラサーバー18は、バーチャルスイッチを設定する。例えば、コントローラサーバー18は、バーチャルスイッチのためのバーチャルインターフェイスを発生し、そしてネットワーク要素(例えば、ネットワークスイッチポート)又はエンドホストをバーチャルインターフェイスに指定することにより、バーチャルスイッチを形成する。一例として、コントローラサーバー18は、バーチャルインターフェイスIF1を生成し、そしてエンドホストEH1をバーチャルインターフェイスIF1に指定することにより(例えば、MACアドレス1をもつエンドホストをバーチャルインターフェイスIF1に指定することにより)、図9のバーチャルスイッチVSW1を設定する。
ステップ114において、コントローラサーバー18は、スイッチ間のネットワーク通信経路を決定するバーチャルトポロジーを設定する。例えば、コントローラサーバー18は、バーチャルスイッチ間(例えば、バーチャルスイッチのバーチャルインターフェイス間)にバーチャルリンクを確立する。各バーチャルリンクは、少なくともある程度のネットワークトラフィックが、第1の対応するバーチャルインターフェイスと、第2の対応するバーチャルインターフェイスとの間の通過が許されたことを識別する。一例として、コントローラサーバー18は、バーチャルスイッチVSW1とバーチャルスイッチVSW2との間に(例えば、バーチャルインターフェイスIF2とバーチャルインターフェイスIF3との間に)バーチャルリンクを形成することにより、バーチャルネットワーク100Aのバーチャルトポロジーを設定する。
ステップ116において、コントローラサーバー18は、バーチャルネットワークのためのバーチャルネットワークポリシーを構成する。例えば、コントローラサーバー18は、(例えば、IPアドレスに基づいてネットワークトラフィックをルーティングするポリシーを構成することにより)バーチャルルーターを形成し、(例えば、MACアドレスに基づいてネットワークトラフィックをルーティングするポリシーを構成することにより)バーチャルブリッジを形成し、ネットワークパケットを選択的に変更し又は置き換えし、(例えば、ネットワークパケットを選択的に阻止することにより)アクセスコントロールリストを実施し、ネットワークパケットを選択的に複写し、ネットワークパケットを選択的にリダイレクションし、(例えば、ネットワークパケットに関連した情報を選択的に記憶することにより)ネットワークパケットをログし、或いは警報を発生するように、バーチャルネットワークポリシーを構成する。各バーチャルネットワークポリシーを実施するために、コントローラサーバー18は、バーチャルインターフェイスのための対応バーチャルインターフェイスポリシーを決定する。例えば、第1のエンドホストにより送られたネットワークパケットが第2のエンドホストに到達するのを阻止するために、コントローラサーバー18は、第1及び第2のエンドホスト間のバーチャル経路を識別し、そして各識別されたバーチャル経路に沿った選択されたバーチャルインターフェイスにおけるネットワークパケットを阻止する。
バーチャルネットワークポリシーを、パケット転送システムを備えた対応物理的ネットワークに適用するために、図12に例示されたステップは、コントローラサーバー18により遂行される。
ステップ122において、コントローラサーバー18は、ネットワークスイッチ(例えば、クライアントスイッチ又は他のパケット転送システム)からネットワークパケットを受け取る。例えば、ネットワークパケットは、ネットワークスイッチにおいて受け取られる。このシナリオでは、ネットワークスイッチは、ネットワークパケットのための転送経路が存在しないことを識別する(例えば、ネットワークスイッチに対応するフローテーブルにはパケットのためのフローテーブルエントリーが現在存在しないので)。ネットワークスイッチは、受け取ったネットワークパケットのための転送経路が存在しないことを識別するのに応答して、コントローラサーバー18へネットワークパケットを転送する。
ステップ124において、コントローラサーバー18は、進入及び退出バーチャルスイッチを識別し、そして受け取ったパケットに対する対応する進入及び退出バーチャルインターフェイスを識別する。コントローラサーバー18は、受け取ったパケットの属性(例えば、IPアドレス、MACアドレス、等)、及びバーチャルネットワークトポロジーに基づいて、進入及び退出バーチャルスイッチを識別する。進入及び退出バーチャルスイッチは、パケットソースのエンドホスト及びパケット行先のエンドホストに関連している。例えば、コントローラサーバー18は、ネットワークパケットが、進入バーチャルスイッチの第1のバーチャルインターフェイス(例えば、進入バーチャルインターフェイス)に関連したパケットソースエンドホストを有することを識別すると共に、ネットワークパケットが、退出バーチャルスイッチの第2のバーチャルインターフェイス(例えば、退出バーチャルインターフェイス)に関連したパケット行先エンドホストを有することを識別する。
ステップ128において、コントローラサーバー18は、進入バーチャルインターフェイスからバーチャルネットワークを介して退出バーチャルインターフェイスへ至るバーチャルネットワーク経路を決定し、そしてそのバーチャルネットワーク経路に関連したバーチャルネットワークポリシーを識別する。バーチャルネットワーク経路は、1つ以上のバーチャルインターフェイスを含む(例えば、その経路は、バーチャルインターフェイス間のバーチャルリンクを含む)。
一例として、図9のエンドホストEH1とエンドホストEH2との間のバーチャルネットワーク経路は、バーチャルインターフェイスIF1、IF2、IF3及びIF4を含む。又、バーチャルネットワーク経路は、バーチャルインターフェイスに関連した図10Aのネットワークポリシー92のようなネットワークポリシーを含む。
ステップ130において、コントローラサーバー18は、バーチャルネットワーク経路及びそれに関連したバーチャルネットワークポリシーに基づいてパケット転送システム(例えば、物理的ネットワークスイッチ)のためのネットワーク構成エントリー(例えば、フローテーブルエントリー)を発生する。例えば、コントローラサーバー18は、バーチャルネットワークポリシーを満足させつつ、ネットワークスイッチ転送経路に沿ってネットワークパケットを転送するようスイッチに指令するフローテーブルエントリーを物理的ネットワーク100のスイッチに対して発生する。ネットワークスイッチ転送経路は、物理的スイッチの能力に基づいて選択される。バーチャルネットワークポリシーの実施は、ネットワークスイッチ転送経路全体にわたり分散される(例えば、バーチャルネットワークポリシーは、ネットワークスイッチ転送経路の選択されたスイッチにおいてフローテーブルエントリーを経て実施される)。
ステップ132において、ネットワークのパケット転送システムは、ステップ130において発生されたネットワーク構成エントリーで構成される。例えば、コントローラサーバー18は、各パケット転送システムに、ステップ130で発生された対応するフローテーブルエントリーを与える。次いで、プロセスは、経路134を経てステップ122へループバックし、パケット転送システムで受け取られたパケットにバーチャルネットワークポリシーを適用する。
図13は、決定されたバーチャルネットワーク経路に基づいてパケット転送システムのネットワーク構成エントリーを発生するようにコントローラサーバー18により遂行されるステップを例示する。必要に応じて、図13のステップは、図12のステップ130の間に遂行されてもよい。
ステップ142において、コントローラサーバー18は、ネットワークパケット(例えば、図12のステップ122で受け取られたネットワークパケット)に関連したバーチャルネットワークポリシーを識別する。例えば、コントローラサーバー18は、バーチャルスイッチ間のネットワークトラフィックをコントロールするバーチャルインターフェイスポリシーを識別する。
ステップ144において、コントローラサーバー18は、ネットワークパケットのための物理的ネットワーク経路を決定する。この物理的ネットワーク経路は、パケットソースとパケット行先との間のネットワークスイッチ及びネットワークスイッチポートを含む。この物理的ネットワーク経路は、物理的ネットワークトポロジー情報に基づき(例えば、物理的ネットワークスイッチ間の既知のネットワーク接続に基づき及び/又はネットワークスイッチ能力に基づき)決定される。
ステップ146において、コントローラサーバー18は、識別されたバーチャルネットワークポリシーに基づいてネットワーク構成エントリー(例えば、フローテーブルエントリー)を生成する(例えば、識別されたバーチャルネットワークポリシーを満足させながら、物理的ネットワーク経路を介してネットワークパケットをルーティングするフローテーブルエントリー)。ネットワーク構成エントリーは、その決定された物理的ネットワーク経路に関連したパケット転送システムに与えられる。ネットワーク構成エントリーは、コントローラサーバー18とパケット転送システムとの間のネットワーク接続を経てパケット転送システムに与えられる。
コントローラサーバー18のような1つ以上の集中型コントローラを使用してネットワークスイッチをコントロールすることは、単なる例示に過ぎない。必要に応じて、パケット転送システムのネットワークをコントロールする任意の形式のコントローラ(例えば、コンピューティング装置において実施されるコントローラ)を使用して、それに対応するパケット転送システムのポートのグループからバーチャルスイッチを形成し、そしてバーチャルネットワークポリシーを適用して、バーチャルスイッチを通るネットワークトラフィックをコントロールすることができる。
図14は、コントローラ202がネットワーク200全体を通じてスイッチ14に分散される例を示す。コントローラ202は、ネットワークスイッチ14の幾つか又は全部に分散される。コントローラクライアント30のようなコントローラクライアントは、ネットワーク通信リンクを経てコントローラ202の1つ以上と通信する(例えば、コントローラ202は、通信リンクを経てコントローラクライアント30へインストラクションを送信する)。コントローラ202は、スイッチ14を総体的にコントロールするように互いに通信するか、又はスイッチ14を個々にコントロールする。
一例として、コントローラ202は、互いに通信することによりネットワーク200を総体的にコントロールして、バーチャルスイッチを形成する。コントローラ202は、ネットワークトポロジー、ネットワークトラフィック、スイッチ14に結合されたエンドホスト、等に関する情報を共有する。ネットワーク情報を共有することにより、コントローラ202は、スイッチ14におけるポートのグループ(例えば、物理的ポート、ポートに結合されたエンドホストの位置、又はエンドホストの属性に基づいて動的に決定されるポートのグループ)からバーチャルスイッチを形成し、そしてそのバーチャルスイッチにバーチャルネットワークポリシーを適用することができる。バーチャルスイッチを形成するのに使用される物理的ポートのグループは、重畳してもよい(例えば、エンドホストは、そのエンドホストから送信されるネットワークトラフィックの形式、そのエンドホストが通信するところのポート、等の基準に基づき、多数の異なるスイッチに指定される)。
必要に応じて、各コントローラ202は、他のコントローラ202と通信せずに、対応するスイッチ14を個々にコントロールする。例えば、各コントローラ202は、単一の対応する物理的スイッチ14におけるポートのグループからバーチャルスイッチを形成し、そしてその対応する物理的スイッチ14から形成されたバーチャルスイッチにネットワークポリシーを適用する。
コントローラは、記憶装置及び処理回路のようなスイッチ14のリソースを使用して実施される。コントローラ202の幾つかは、対応するスイッチ14の処理能力により限定された能力を有する。このシナリオでは、能力が限定されたコントローラ202が、他のコントローラ202と通信して、総体的にネットワークポリシーをバーチャルスイッチに適用する。パケット処理能力が限定された第1スイッチ14に第1のコントローラ202が形成され、そしてより複雑なパケット処理能力を有する第2スイッチ14に第2のコントローラ202が形成されるというシナリオを考える。第1及び第2スイッチからのポートから形成されたバーチャルスイッチにネットワークポリシーを適用するために、第1のコントローラ202は、ネットワークパケットを第2スイッチ14へ転送するように第1スイッチ14に指令する(例えば、第2のコントローラ202がネットワークパケットを正しく処理してネットワークポリシーを満足するように)。
一実施形態によれば、スイッチのネットワークを介してパケットソースからパケット行先へパケットを転送する方法が提供される。各スイッチは、ポートを含み、ポートのグループが各バーチャルスイッチを形成する。この方法は、コントローラとで、パケット行先及びパケットソースを識別するパケットからの情報から、パケットソースに関連した第1のバーチャルスイッチからパケット行先に関連した第2のバーチャルスイッチへ至るバーチャルスイッチを通るバーチャル経路を識別することを含む。更に、この方法は、コントローラとで、バーチャル経路及びネットワークポリシーに基づきパケットソースからパケット行先へ至る前記スイッチを通るパケット転送経路を識別することを含む。
別の実施形態によれば、前記パケット転送経路を識別することは、ネットワークポリシーに少なくとも一部分基づいてフローテーブルエントリーを発生することを含む。
別の実施形態によれば、前記方法は、前記スイッチを通るパケット転送経路を形成するように前記スイッチを構成するために前記スイッチの少なくとも幾つかにフローテーブルエントリーを与える段階を含む。
別の実施形態によれば、前記パケット転送経路を識別することは、スイッチの少なくとも所与の1つに関連したネットワークスイッチ能力を識別することを含む。
別の実施形態によれば、前記ネットワークスイッチ能力を識別することは、スイッチの所与の1つがパケットを変更できるかどうか決定することを含む。
別の実施形態によれば、ネットワークポリシーは、少なくとも幾つかのパケットをドロップすべきであることを明示する。
別の実施形態によれば、前記転送経路を発生することは、スイッチの少なくとも所与の1つに対して、パケットをドロップするようにその所与の1つのスイッチに指令するフローテーブルエントリーを発生することを含む。
別の実施形態によれば、ネットワークポリシーは、パケットソースからパケット行先へ転送経路に沿ってパケットが流れることを許すべきであることを明示する。
別の実施形態によれば、前記転送経路を発生することは、転送経路のスイッチに対して、パケットソースからパケット行先へパケットを転送するためのフローテーブルエントリーを発生することを含む。
別の実施形態によれば、前記方法は、複数のネットワークプロトコルのどれがパケットに関連しているか識別することを含む。更に、前記方法は、どのプロコルがパケットに関連していると識別されたかに基づいて複数のネットワークポリシーのどれをネットワークポリシーとして使用するか識別することを含む。
別の実施形態によれば、前記方法は、複数のネットワークポリシーのどれがパケットソースに関連しているか決定することにより複数のネットワークポリシーのどれをネットワークポリシーとして使用するか識別することを含む。
別の実施形態によれば、前記方法は、複数のネットワークポリシーのどれがパケット行先に関連しているか決定することにより複数のネットワークポリシーのどれをネットワークポリシーとして使用するか識別することを含む。
別の実施形態によれば、第1のバーチャルスイッチは、少なくとも2つのスイッチからからのポートを含む。
別の実施形態によれば、第1のバーチャルスイッチは、スイッチの所与の1つからのポートのサブセットより多くを含まず、且つスイッチの少なくとも付加的な1つからの少なくとも幾つかのポートを含む。
別の実施形態によれば、パケットソースは、ネットワークアドレスを有し、そして前記方法は、そのネットワークアドレスに基づき第1のバーチャルスイッチに対してポートのグループにどのポートを含ませるか動的に決定することを含む。
別の実施形態によれば、前記方法は、コントローラとで、そのコントローラにより受け取られたユーザ入力に基づいてポートのグループの各々にどのポートを含ませるか決定することを含む。
別の実施形態によれば、スイッチのネットワークを介してパケットソースからパケット行先へパケットを転送する方法であって、スイッチは、ポートを含み、ポートのグループが各バーチャルスイッチを形成する方法が提供される。この方法は、コントローラとで、パケットを受け取ることを含む。この方法は、コントローラとで、パケットソースを識別するパケットからの情報に基づきバーチャルスイッチの中から進入バーチャルスイッチを識別することを含む。この方法は、更に、コントローラとで、パケット行先を識別するパケットからの情報に基づきバーチャルスイッチの中から退出バーチャルスイッチを識別することを含む。
別の実施形態によれば、前記方法は、コントローラとで、進入バーチャルスイッチから退出バーチャルスイッチへ至るバーチャル経路を識別することを含む。
別の実施形態によれば、前記方法は、コントローラとで、複数のネットワークポリシーのうちのどのネットワークポリシーをバーチャル経路に適用するか識別することを含む。
別の実施形態によれば、前記方法は、コントローラとで、識別されたネットワークポリシー及び識別されたバーチャル経路に基づいてスイッチを通る転送経路を発生することを含む。
別の実施形態によれば、前記方法は、コントローラとで、識別されたネットワークポリシーをパケットに適用すべきところの前記ポートの所与の1つを識別する情報をユーザから受け取ることを含む。
一実施形態によれば、スイッチのネットワークを介してパケットソースからパケット行先へパケットを転送する方法であって、スイッチは、ポートを含み、ポートのグループが各バーチャルスイッチを形成する方法が提供される。この方法は、コントローラとで、ポートのどのグループが各バーチャルスイッチに関連しているか識別する情報をユーザから受け取ることを含む。この方法は、コントローラとで、複数のネットワークポリシーを識別する情報をユーザから受け取ることを含む。この方法は、コントローラとで、パケット行先及びパケットソースを識別するパケットからの情報から、パケットソースに関連した第1のバーチャルスイッチからパケット行先に関連した第2のバーチャルスイッチへ至るバーチャルスイッチを通るバーチャル経路を識別することを含む。この方法は、コントローラとで、バーチャル経路及び複数のネットワークポリシーの中からのネットワークポリシーに基づいてパケットソースからパケット行先へ至るスイッチを通るパケット転送経路を識別することを含む。
別の実施形態によれば、前記方法は、パケットの情報から、複数のネットワークプロトコルのどれがパケットに関連しているか識別することを含む。前記方法は、プロトコルのどれがパケットに関連していると識別されたかに基づき複数のネットワークポリシーのどれをネットワークポリシーとして使用するか識別することを含む。
別の実施形態によれば、前記方法は、複数のプロトコルポートのどれがパケットに関連しているか識別する情報をパケットから得ることを含む。前記方法は、プロトコルポートのどれがパケットに関連しているかに基づき複数のネットワークポリシーのどれをネットワークポリシーとして使用するか識別することを含む。
以上の説明は、本発明の原理を単に例示したものに過ぎず、当業者であれば、本発明の精神及び範囲から逸脱せずに種々の変更がなされ得るであろう。
10:ネットワーク
12:コンピューティング装置
14:ネットワークスイッチ
16:ネットワークリンク
18:コントローラサーバー
20:ルール
24:コントロールユニット
26:パケット処理ソフトウェア
28:フローテーブル
30:コントローラクライアント
32:パケット処理回路
34:入力/出力ポート
38:ネットワークインターフェイス
40:パケット処理ソフトウェア
48、50:ラインカード
52:バックプレーン
54、64:コントロールソフトウェア
58、60:ネットワークプロトコルスタック
56、62:コントロールプロトコルスタック
66:ネットワーク経路
68:フローテーブルエントリー
70:ヘッダ
72:アクション
74:統計値
76:ヘッダフィールド

Claims (20)

  1. スイッチのネットワークを介してパケットソースからパケット行先へパケットを転送する方法であって、スイッチはポートを含み、ポートのグループが各バーチャルスイッチを形成し、
    コントローラにより、パケット行先及びパケットソースを識別するパケットからの情報から、パケットソースに関連した第1のバーチャルスイッチからパケット行先に関連した第2のバーチャルスイッチへ至る前記バーチャルスイッチを通るバーチャル経路を識別する処理と、
    コントローラにより、前記バーチャル経路及びネットワークポリシーに基づいてパケットソースからパケット行先へ至る前記スイッチを通るパケット転送経路を識別する処理と、
    コントローラにより、前記パケット転送経路における前記各バーチャルスイッチにコントロールメッセージを送信することによって前記パケット転送経路を生成する処理であって、その結果、前記パケットが前記パケットソースから前記パケット行先へ転送される当該処理と、
    を含む方法。
  2. パケット転送経路を識別する前記処理は、前記ネットワークポリシーに少なくとも一部分基づいてフローテーブルエントリーを発生することを含み、
    前記スイッチを通るパケット転送経路となるように前記スイッチを構成するために前記スイッチの少なくとも幾つかに前記フローテーブルエントリーを与える処理を更に含む、請求項1に記載の方法。
  3. パケット転送経路を識別する前記処理は、前記スイッチの少なくとも所与の1つに関連したネットワークスイッチ能力を識別することを含み、
    前記ネットワークスイッチ能力を識別することは、前記スイッチの所与の1つがパケットのフィールドを変更できるかどうか決定することを含む、請求項1に記載の方法。
  4. 前記ネットワークポリシーは、少なくとも幾つかのパケットをドロップすべきであることを明示し、
    前記パケット転送経路を生成する処理は、前記スイッチの少なくとも所与の1つに対して、パケットをドロップするようにその所与の1つのスイッチに指令するフローテーブルエントリーを発生することを含む、請求項1に記載の方法。
  5. 前記ネットワークポリシーは、パケットソースからパケット行先へ前記パケット転送経路に沿ってパケットが流れることを許すべきであることを明示し、
    前記パケット転送経路を生成する処理は、前記パケット転送経路のスイッチに対して、パケットソースからパケット行先へパケットを転送するためのフローテーブルエントリーを発生することを含む、請求項1に記載の方法。
  6. 複数のネットワークプロトコルのどれがパケットに関連しているか識別する処理と、
    どのプロコルがパケットに関連していると識別されたかに基づいて複数のネットワークポリシーのどれをネットワークポリシーとして使用するか識別する処理と、
    を更に含む請求項1に記載の方法。
  7. 複数のネットワークポリシーのどれがパケットソースに関連しているか決定することにより複数のネットワークポリシーのどれをネットワークポリシーとして使用するか識別する処理を更に含む、請求項1に記載の方法。
  8. 複数のネットワークポリシーのどれがパケット行先に関連しているか決定することにより複数のネットワークポリシーのどれをネットワークポリシーとして使用するか識別することを含む、請求項1に記載の方法。
  9. 前記第1のバーチャルスイッチは、少なくとも2つの前記スイッチからのポートを含む、請求項1に記載の方法。
  10. 前記第1のバーチャルスイッチは、複数の前記スイッチのうちの所与の1つから、前記ポートの全てではないが幾つかのポートを含、且つ複数の前記スイッチの付加的な1つからの少なくとも幾つかのポートを含む、請求項1に記載の方法。
  11. 前記パケットソースは、ネットワークアドレスを有し、
    前記ネットワークアドレスに基づき前記第1のバーチャルスイッチに対してポートのグループにどのポートを含ませるか動的に決定する処理を更に含む、請求項1に記載の方法。
  12. 前記コントローラにより、前記コントローラにより受け取られたユーザ入力に基づいて前記ポートのグループの各々にどのポートを含ませるか決定する処理を更に含む、請求項1に記載の方法。
  13. スイッチのネットワークを介してパケットソースからパケット行先へパケットを転送する方法であって、スイッチは、ポートを含み、ポートのグループが各バーチャルスイッチを形成し、
    コントローラにより、パケットを受け取る処理と、
    コントローラにより、パケットソースを識別するパケットからの情報に基づきバーチャルスイッチの中から進入バーチャルスイッチを識別する処理と、
    コントローラにより、パケット行先を識別するパケットからの情報に基づきバーチャルスイッチの中から退出バーチャルスイッチを識別する処理と、
    コントローラにより、前記パケットソースから前記パケット行先へ前記パケットが転送されるようにするため複数の前記バーチャルスイッチを制御する処理と、
    が実行される方法。
  14. 前記コントローラにより、前記進入バーチャルスイッチから前記退出バーチャルスイッチへ至るバーチャル経路を識別する処理を更に含む、請求項13に記載の方法。
  15. 前記コントローラにより、複数のネットワークポリシーのうちのどのネットワークポリシーを前記バーチャル経路に適用するか識別する処理を更に含む、請求項14に記載の方法。
  16. 前記コントローラにより、前記識別されたネットワークポリシー及び前記識別されたバーチャル経路に基づき前記スイッチを通るパケット転送経路を生成する処理を更に含む、請求項15に記載の方法。
  17. 前記コントローラにより、前記識別されたネットワークポリシーをパケットに適用すべきところの前記ポートの所与の1つを識別する情報をユーザから受け取る処理を更に含む、請求項14に記載の方法。
  18. スイッチのネットワークを介してパケットソースからパケット行先へパケットを転送する方法であって、スイッチは、ポートを含み、ポートのグループが各バーチャルスイッチを形成し、
    コントローラにより、ポートのどのグループが各バーチャルスイッチに関連しているか識別する情報をユーザから受け取る処理と、
    コントローラにより、複数のネットワークポリシーを識別する情報をユーザから受け取る処理と、
    コントローラにより、パケット行先及びパケットソースを識別するパケットからの情報から、パケットソースに関連した第1のバーチャルスイッチからパケット行先に関連した第2のバーチャルスイッチへ至る前記バーチャルスイッチを通るバーチャル経路を識別する処理と、
    コントローラにより、前記バーチャル経路及び前記複数のネットワークポリシーの中からのネットワークポリシーに基づいてパケットソースからパケット行先へ至る前記バーチャルスイッチを通るパケット転送経路を識別する処理と、
    コントローラにより、前記パケット転送経路を生成するために複数の前記バーチャルスイッチを制御する処理であって、前記パケットが前記パケットソースから前記パケット行先へ転送される当該処理と、
    が実行される方法。
  19. パケットの情報から、複数のネットワークプロトコルのどれがパケットに関連しているか識別する処理と、
    プロトコルのどれがパケットに関連していると識別されたかに基づき複数のネットワークポリシーのどれをネットワークポリシーとして使用するか識別する処理と、
    を更に含む請求項18に記載の方法。
  20. 複数のプロトコルポートのどれがパケットに関連しているか識別する情報をパケットから得る処理と、
    プロトコルポートのどれがパケットに関連しているかに基づき複数のネットワークポリシーのどれをネットワークポリシーとして使用するか識別する処理と、
    を更に含む請求項18に記載の方法。
JP2014531910A 2011-09-20 2012-09-18 バーチャルスイッチを介してネットワークトラフィックをコントロールするシステム及び方法 Expired - Fee Related JP5864758B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/237,806 2011-09-20
US13/237,806 US9185056B2 (en) 2011-09-20 2011-09-20 System and methods for controlling network traffic through virtual switches
PCT/US2012/055923 WO2013043604A1 (en) 2011-09-20 2012-09-18 System and methods for controlling network traffic through virtual switches

Publications (2)

Publication Number Publication Date
JP2014531831A JP2014531831A (ja) 2014-11-27
JP5864758B2 true JP5864758B2 (ja) 2016-02-17

Family

ID=46970435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014531910A Expired - Fee Related JP5864758B2 (ja) 2011-09-20 2012-09-18 バーチャルスイッチを介してネットワークトラフィックをコントロールするシステム及び方法

Country Status (7)

Country Link
US (1) US9185056B2 (ja)
EP (1) EP2748974B1 (ja)
JP (1) JP5864758B2 (ja)
KR (1) KR101572771B1 (ja)
AU (1) AU2012312587B2 (ja)
SG (1) SG11201400762XA (ja)
WO (1) WO2013043604A1 (ja)

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9001824B2 (en) 2010-05-18 2015-04-07 Brocade Communication Systems, Inc. Fabric formation for virtual cluster switching
US9270486B2 (en) 2010-06-07 2016-02-23 Brocade Communications Systems, Inc. Name services for virtual cluster switching
US8867552B2 (en) 2010-05-03 2014-10-21 Brocade Communications Systems, Inc. Virtual cluster switching
US9716672B2 (en) 2010-05-28 2017-07-25 Brocade Communications Systems, Inc. Distributed configuration management for virtual cluster switching
US8989186B2 (en) 2010-06-08 2015-03-24 Brocade Communication Systems, Inc. Virtual port grouping for virtual cluster switching
US9461840B2 (en) 2010-06-02 2016-10-04 Brocade Communications Systems, Inc. Port profile management for virtual cluster switching
US9769016B2 (en) 2010-06-07 2017-09-19 Brocade Communications Systems, Inc. Advanced link tracking for virtual cluster switching
US9608833B2 (en) 2010-06-08 2017-03-28 Brocade Communications Systems, Inc. Supporting multiple multicast trees in trill networks
US9246703B2 (en) 2010-06-08 2016-01-26 Brocade Communications Systems, Inc. Remote port mirroring
US9628293B2 (en) 2010-06-08 2017-04-18 Brocade Communications Systems, Inc. Network layer multicasting in trill networks
US9806906B2 (en) 2010-06-08 2017-10-31 Brocade Communications Systems, Inc. Flooding packets on a per-virtual-network basis
US8446914B2 (en) 2010-06-08 2013-05-21 Brocade Communications Systems, Inc. Method and system for link aggregation across multiple switches
US9807031B2 (en) 2010-07-16 2017-10-31 Brocade Communications Systems, Inc. System and method for network configuration
US9270572B2 (en) 2011-05-02 2016-02-23 Brocade Communications Systems Inc. Layer-3 support in TRILL networks
US9401861B2 (en) 2011-06-28 2016-07-26 Brocade Communications Systems, Inc. Scalable MAC address distribution in an Ethernet fabric switch
US8948056B2 (en) 2011-06-28 2015-02-03 Brocade Communication Systems, Inc. Spanning-tree based loop detection for an ethernet fabric switch
US9736085B2 (en) 2011-08-29 2017-08-15 Brocade Communications Systems, Inc. End-to end lossless Ethernet in Ethernet fabric
US9699117B2 (en) 2011-11-08 2017-07-04 Brocade Communications Systems, Inc. Integrated fibre channel support in an ethernet fabric switch
US9450870B2 (en) 2011-11-10 2016-09-20 Brocade Communications Systems, Inc. System and method for flow management in software-defined networks
US8995272B2 (en) 2012-01-26 2015-03-31 Brocade Communication Systems, Inc. Link aggregation in software-defined networks
US9036636B1 (en) * 2012-02-06 2015-05-19 Big Switch Networks, Inc. System and methods for managing network packet broadcasting
US9742693B2 (en) 2012-02-27 2017-08-22 Brocade Communications Systems, Inc. Dynamic service insertion in a fabric switch
WO2013128915A1 (en) * 2012-02-29 2013-09-06 Nec Corporation Communication apparatus, communication method, communication system and program
US9264295B1 (en) 2012-03-02 2016-02-16 Big Switch Networks, Inc. Systems and methods for forwarding broadcast network packets with a controller
US9154416B2 (en) 2012-03-22 2015-10-06 Brocade Communications Systems, Inc. Overlay tunnel in a fabric switch
WO2013147175A1 (ja) * 2012-03-30 2013-10-03 日本電気株式会社 分散ストレージシステム、制御装置、クライアント端末、負荷分散方法及びプログラム
US9386085B2 (en) 2012-04-04 2016-07-05 Radware, Ltd. Techniques for providing scalable application delivery controller services
US10375158B2 (en) * 2012-04-04 2019-08-06 Radware, Ltd. Techniques for adaptive traffic direction via scalable application delivery controller services
US9210180B2 (en) 2012-04-18 2015-12-08 Radware Ltd. Techniques for separating the processing of clients' traffic to different zones in software defined networks
US9374301B2 (en) 2012-05-18 2016-06-21 Brocade Communications Systems, Inc. Network feedback in software-defined networks
US9571523B2 (en) * 2012-05-22 2017-02-14 Sri International Security actuator for a dynamically programmable computer network
US10277464B2 (en) 2012-05-22 2019-04-30 Arris Enterprises Llc Client auto-configuration in a multi-switch link aggregation
US10454760B2 (en) 2012-05-23 2019-10-22 Avago Technologies International Sales Pte. Limited Layer-3 overlay gateways
US9710762B2 (en) * 2012-06-06 2017-07-18 Juniper Networks, Inc. Dynamic logging
US9055006B2 (en) 2012-06-11 2015-06-09 Radware, Ltd. Techniques for traffic diversion in software defined networks for mitigating denial of service attacks
KR20150016314A (ko) * 2012-06-14 2015-02-11 닛본 덴끼 가부시끼가이샤 통신 시스템, 제어 장치, 통신 방법, 제어 방법 및 프로그램
US9602430B2 (en) 2012-08-21 2017-03-21 Brocade Communications Systems, Inc. Global VLANs for fabric switches
US9178715B2 (en) * 2012-10-01 2015-11-03 International Business Machines Corporation Providing services to virtual overlay network traffic
US9071529B2 (en) * 2012-10-08 2015-06-30 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for accelerating forwarding in software-defined networks
US9401872B2 (en) 2012-11-16 2016-07-26 Brocade Communications Systems, Inc. Virtual link aggregations across multiple fabric switches
CN104871500A (zh) * 2012-12-19 2015-08-26 日本电气株式会社 通信节点、控制装置、通信系统、分组处理方法、通信节点控制方法及程序
US9548926B2 (en) 2013-01-11 2017-01-17 Brocade Communications Systems, Inc. Multicast traffic load balancing over virtual link aggregation
US9413691B2 (en) 2013-01-11 2016-08-09 Brocade Communications Systems, Inc. MAC address synchronization in a fabric switch
US9350680B2 (en) 2013-01-11 2016-05-24 Brocade Communications Systems, Inc. Protection switching over a virtual link aggregation
US9565113B2 (en) 2013-01-15 2017-02-07 Brocade Communications Systems, Inc. Adaptive link aggregation and virtual link aggregation
US9008080B1 (en) * 2013-02-25 2015-04-14 Big Switch Networks, Inc. Systems and methods for controlling switches to monitor network traffic
US9565099B2 (en) 2013-03-01 2017-02-07 Brocade Communications Systems, Inc. Spanning tree in fabric switches
US9450981B2 (en) 2013-03-14 2016-09-20 Radware, Ltd. System and method thereof for mitigating denial of service attacks in virtual networks
US9401818B2 (en) 2013-03-15 2016-07-26 Brocade Communications Systems, Inc. Scalable gateways for a fabric switch
EP2787698B1 (en) * 2013-04-03 2020-01-29 Deutsche Telekom AG A method and network for incremental deployment of software-defined networking into an enterprise network
FI20135413L (fi) * 2013-04-23 2014-10-24 Tellabs Oy Menetelmä ja laite ohjelmallisesti määriteltävän verkon verkkoelementti konfigurointijärjestelmän optimoimiseksi
FI20135519A (fi) * 2013-05-15 2014-11-16 Tellabs Oy Ohjelmallisesti määriteltävän verkon verkkoelementti
US9699001B2 (en) 2013-06-10 2017-07-04 Brocade Communications Systems, Inc. Scalable and segregated network virtualization
US9565028B2 (en) 2013-06-10 2017-02-07 Brocade Communications Systems, Inc. Ingress switch multicast distribution in a fabric switch
US9270619B2 (en) * 2013-06-24 2016-02-23 Microsoft Technology Licensing, Llc Logical switch
CN104283756B (zh) 2013-07-02 2017-12-15 新华三技术有限公司 一种实现分布式多租户虚拟网络的方法和装置
US9380025B2 (en) * 2013-07-03 2016-06-28 Cisco Technology, Inc. Method and apparatus for ingress filtering
PL404986A1 (pl) * 2013-08-05 2015-02-16 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Urządzenie do rutingu pakietów wieloma ścieżkami w sieciach teleinformatycznych oraz sposób jego zastosowania
US9806949B2 (en) * 2013-09-06 2017-10-31 Brocade Communications Systems, Inc. Transparent interconnection of Ethernet fabric switches
WO2015042152A1 (en) 2013-09-17 2015-03-26 Cisco Technology, Inc. Bit indexed explicit replication using multiprotocol label switching
US10218524B2 (en) * 2013-09-17 2019-02-26 Cisco Technology, Inc. Bit indexed explicit replication for layer 2 networking
US9350607B2 (en) 2013-09-25 2016-05-24 International Business Machines Corporation Scalable network configuration with consistent updates in software defined networks
US9912612B2 (en) 2013-10-28 2018-03-06 Brocade Communications Systems LLC Extended ethernet fabric switches
US9112794B2 (en) 2013-11-05 2015-08-18 International Business Machines Corporation Dynamic multipath forwarding in software defined data center networks
WO2015074258A1 (zh) 2013-11-22 2015-05-28 华为技术有限公司 一种控制业务数据在虚拟网络中转发的方法、装置及系统
EP2884694B1 (en) * 2013-12-12 2017-08-23 Alcatel Lucent A method for providing control in a communication network
US20150188731A1 (en) * 2013-12-27 2015-07-02 Daniel P. Daly Programmable Distributed Networking
US9548896B2 (en) 2013-12-27 2017-01-17 Big Switch Networks, Inc. Systems and methods for performing network service insertion
US9654396B2 (en) * 2014-01-15 2017-05-16 Cisco Technology, Inc. Controller-less peer-to-peer distributed switch
US9876689B1 (en) 2014-02-03 2018-01-23 Sprint Communications Company L.P. Automatically generated virtual network elements for virtualized local area networks
US9860117B2 (en) * 2014-02-03 2018-01-02 Sprint Communications Company, L.P. Automatically generated virtual network elements for virtualized packet networks
US9548873B2 (en) 2014-02-10 2017-01-17 Brocade Communications Systems, Inc. Virtual extensible LAN tunnel keepalives
US10581758B2 (en) 2014-03-19 2020-03-03 Avago Technologies International Sales Pte. Limited Distributed hot standby links for vLAG
US10476698B2 (en) 2014-03-20 2019-11-12 Avago Technologies International Sales Pte. Limited Redundent virtual link aggregation group
US9647883B2 (en) 2014-03-21 2017-05-09 Nicria, Inc. Multiple levels of logical routers
WO2015147793A1 (en) * 2014-03-25 2015-10-01 Hewlett-Packard Development Company, L.P. Transmitting network traffic in accordance with network traffic rules
CN104980361B (zh) * 2014-04-01 2018-09-21 华为技术有限公司 一种负载均衡方法、装置及系统
US10063473B2 (en) 2014-04-30 2018-08-28 Brocade Communications Systems LLC Method and system for facilitating switch virtualization in a network of interconnected switches
US9800471B2 (en) 2014-05-13 2017-10-24 Brocade Communications Systems, Inc. Network extension groups of global VLANs in a fabric switch
US9497140B2 (en) * 2014-05-14 2016-11-15 International Business Machines Corporation Autonomous multi-node network configuration and self-awareness through establishment of a switch port group
US9641429B2 (en) 2014-06-18 2017-05-02 Radware, Ltd. Predictive traffic steering over software defined networks
KR101564644B1 (ko) * 2014-07-03 2015-10-30 한국전자통신연구원 접근제어리스트 추출 방법 및 시스템
US9600263B2 (en) * 2014-07-21 2017-03-21 Big Switch Networks, Inc. Systems and methods for performing uninterrupted network upgrades with controllers
US10616108B2 (en) 2014-07-29 2020-04-07 Avago Technologies International Sales Pte. Limited Scalable MAC address virtualization
US9544219B2 (en) 2014-07-31 2017-01-10 Brocade Communications Systems, Inc. Global VLAN services
US9807007B2 (en) 2014-08-11 2017-10-31 Brocade Communications Systems, Inc. Progressive MAC address learning
US9876712B2 (en) * 2014-09-05 2018-01-23 Kt Corporation Method and device for processing address resolution protocol in software-defined networking environment
US9882814B2 (en) 2014-09-25 2018-01-30 Intel Corporation Technologies for bridging between coarse-grained and fine-grained load balancing
US9524173B2 (en) 2014-10-09 2016-12-20 Brocade Communications Systems, Inc. Fast reboot for a switch
US9699029B2 (en) 2014-10-10 2017-07-04 Brocade Communications Systems, Inc. Distributed configuration management in a switch group
US9971620B2 (en) * 2014-10-15 2018-05-15 Keysight Technologies Singapore (Holdings) Pte Ltd Methods and systems for network packet impairment within virtual machine host systems
US9971619B2 (en) 2014-10-15 2018-05-15 Keysight Technologies Singapore (Holdings) Pte Ltd Methods and systems for forwarding network packets within virtual machine host systems
US9954775B2 (en) 2014-11-25 2018-04-24 Electronics And Telecommunications Research Institute Software-defined network (SDN) system using host abstraction, and method for implementing the same
CN105743670B (zh) * 2014-12-09 2019-02-05 华为技术有限公司 访问控制方法、系统和接入点
US9626255B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Online restoration of a switch snapshot
US9628407B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Multiple software versions in a switch group
US9942097B2 (en) 2015-01-05 2018-04-10 Brocade Communications Systems LLC Power management in a network of interconnected switches
US10003552B2 (en) 2015-01-05 2018-06-19 Brocade Communications Systems, Llc. Distributed bidirectional forwarding detection protocol (D-BFD) for cluster of interconnected switches
US10079779B2 (en) * 2015-01-30 2018-09-18 Nicira, Inc. Implementing logical router uplinks
US9807005B2 (en) 2015-03-17 2017-10-31 Brocade Communications Systems, Inc. Multi-fabric manager
US10038592B2 (en) 2015-03-17 2018-07-31 Brocade Communications Systems LLC Identifier assignment to a new switch in a switch group
CN112615818B (zh) * 2015-03-24 2021-12-03 华为技术有限公司 基于sdn的ddos攻击防护方法、装置及系统
US10579406B2 (en) 2015-04-08 2020-03-03 Avago Technologies International Sales Pte. Limited Dynamic orchestration of overlay tunnels
TWI543566B (zh) 2015-05-12 2016-07-21 財團法人工業技術研究院 基於軟體定義網路的資料中心網路系統及其封包傳送方法、位址解析方法與路由控制器
US10439929B2 (en) 2015-07-31 2019-10-08 Avago Technologies International Sales Pte. Limited Graceful recovery of a multicast-enabled switch
CN106385365B (zh) 2015-08-07 2019-09-06 新华三技术有限公司 基于开放流Openflow表实现云平台安全的方法和装置
US10129142B2 (en) 2015-08-11 2018-11-13 Nicira, Inc. Route configuration for logical router
US10057157B2 (en) 2015-08-31 2018-08-21 Nicira, Inc. Automatically advertising NAT routes between logical routers
US10171303B2 (en) 2015-09-16 2019-01-01 Avago Technologies International Sales Pte. Limited IP-based interconnection of switches with a logical chassis
US10095535B2 (en) 2015-10-31 2018-10-09 Nicira, Inc. Static route types for logical routers
US9912614B2 (en) 2015-12-07 2018-03-06 Brocade Communications Systems LLC Interconnection of switches based on hierarchical overlay tunneling
US9985890B2 (en) 2016-03-14 2018-05-29 International Business Machines Corporation Identifying a local congestion control algorithm of a virtual machine
US10425338B2 (en) 2016-03-14 2019-09-24 International Business Machines Corporation Virtual switch-based congestion control for datacenter networks
US10153973B2 (en) 2016-06-29 2018-12-11 Nicira, Inc. Installation of routing tables for logical router in route server mode
US10454758B2 (en) 2016-08-31 2019-10-22 Nicira, Inc. Edge node cluster network redundancy and fast convergence using an underlay anycast VTEP IP
US10462059B2 (en) 2016-10-19 2019-10-29 Intel Corporation Hash table entries insertion method and apparatus using virtual buckets
US10237090B2 (en) 2016-10-28 2019-03-19 Avago Technologies International Sales Pte. Limited Rule-based network identifier mapping
US9912739B1 (en) * 2017-01-12 2018-03-06 Red Hat Israel, Ltd. Open virtualized multitenant network scheme servicing virtual machine and container based connectivity
US10419327B2 (en) 2017-10-12 2019-09-17 Big Switch Networks, Inc. Systems and methods for controlling switches to record network packets using a traffic monitoring network
CN109194517B (zh) * 2018-09-20 2022-03-25 郑州云海信息技术有限公司 一种用于对虚拟交换机部件进行初始化的方法和装置
US11444883B2 (en) * 2020-01-17 2022-09-13 Vmware, Inc. Signature based management of packets in a software defined networking environment
EP4287561A4 (en) * 2021-01-29 2024-03-13 Beijing Xiaomi Mobile Software Co., Ltd. DATA PACKET SENDING METHOD, DATA PACKET SENDING APPARATUS AND STORAGE MEDIUM
KR20220133716A (ko) * 2021-03-25 2022-10-05 삼성전자주식회사 가상 기업망을 구성하기 위한 장치 및 방법
US11888737B1 (en) 2022-07-29 2024-01-30 Red Hat, Inc. Implementing network function logic in a virtual switch

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751967A (en) 1994-07-25 1998-05-12 Bay Networks Group, Inc. Method and apparatus for automatically configuring a network device to support a virtual network
JPH09130421A (ja) 1995-11-02 1997-05-16 Furukawa Electric Co Ltd:The 仮想ネットワーク管理方法
US6151324A (en) 1996-06-03 2000-11-21 Cabletron Systems, Inc. Aggregation of mac data flows through pre-established path between ingress and egress switch to reduce number of number connections
JP3711752B2 (ja) 1998-07-09 2005-11-02 株式会社日立製作所 パケット通信装置
US6674756B1 (en) 1999-02-23 2004-01-06 Alcatel Multi-service network switch with multiple virtual routers
US6944678B2 (en) * 2001-06-18 2005-09-13 Transtech Networks Usa, Inc. Content-aware application switch and methods thereof
US7860120B1 (en) 2001-07-27 2010-12-28 Hewlett-Packard Company Network interface supporting of virtual paths for quality of service with dynamic buffer allocation
US7734752B2 (en) * 2002-02-08 2010-06-08 Juniper Networks, Inc. Intelligent integrated network security device for high-availability applications
US7145871B2 (en) 2002-03-02 2006-12-05 At&T Corp. Automatic router configuration based on traffic and service level agreements
US6907039B2 (en) * 2002-07-20 2005-06-14 Redback Networks Inc. Method and apparatus for routing and forwarding between virtual routers within a single network element
US20040139236A1 (en) * 2003-01-09 2004-07-15 Pankaj Mehra Virtual switch
US7830889B1 (en) 2003-02-06 2010-11-09 Juniper Networks, Inc. Systems for scheduling the transmission of data in a network device
US8555352B2 (en) * 2003-06-20 2013-10-08 Juniper Networks, Inc. Controlling access nodes with network transport devices within wireless mobile networks
US20050144268A1 (en) * 2003-12-08 2005-06-30 Mohammad El-Batal Managing spare devices on a finite network
US8576840B2 (en) 2006-11-13 2013-11-05 World Wide Packets, Inc. Assigning packets to a network service
US20080189769A1 (en) * 2007-02-01 2008-08-07 Martin Casado Secure network switching infrastructure
US9270594B2 (en) 2007-06-01 2016-02-23 Cisco Technology, Inc. Apparatus and method for applying network policy at virtual interfaces
US7756027B1 (en) 2007-06-13 2010-07-13 Juniper Networks, Inc. Automatic configuration of virtual network switches
US8199750B1 (en) * 2007-12-18 2012-06-12 World Wide Packets, Inc. Communicating with a control plane using a forwarding information format and control plane processing of packets devoid of a virtual switch identifier
GB2459433B (en) 2008-03-07 2012-06-06 Hewlett Packard Development Co Distributed network connection policy management
WO2009146165A1 (en) 2008-04-15 2009-12-03 Blade Network Technologies, Inc. Network virtualization for a virtualized server data center environment
US7962647B2 (en) 2008-11-24 2011-06-14 Vmware, Inc. Application delivery control module for virtual network switch
JP5408243B2 (ja) * 2009-03-09 2014-02-05 日本電気株式会社 OpenFlow通信システムおよびOpenFlow通信方法
US8130641B2 (en) 2009-03-13 2012-03-06 Hewlett-Packard Development Company, L.P. Methods and systems for managing network traffic within a virtual network system
AU2010234958A1 (en) * 2009-03-31 2011-10-13 Coach Wei System and method for access management and security protection for network accessible computer services
US8442048B2 (en) 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
WO2011087085A1 (ja) 2010-01-14 2011-07-21 日本電気株式会社 計算機、ネットワーク接続切替え方法およびプログラム
FR2955992B1 (fr) 2010-01-29 2012-04-20 Inst Nat Rech Inf Automat Dispositif de commutation ou de routage modulable
US8867552B2 (en) * 2010-05-03 2014-10-21 Brocade Communications Systems, Inc. Virtual cluster switching
US8743888B2 (en) * 2010-07-06 2014-06-03 Nicira, Inc. Network control apparatus and method
US8565108B1 (en) * 2010-09-28 2013-10-22 Amazon Technologies, Inc. Network data transmission analysis
KR101644766B1 (ko) 2010-12-28 2016-08-01 닛본 덴끼 가부시끼가이샤 정보 시스템, 제어 장치, 가상 네트워크의 제공 방법 및 프로그램

Also Published As

Publication number Publication date
US9185056B2 (en) 2015-11-10
AU2012312587A1 (en) 2014-04-03
KR101572771B1 (ko) 2015-11-27
EP2748974A1 (en) 2014-07-02
US20130070762A1 (en) 2013-03-21
AU2012312587B2 (en) 2015-10-08
KR20140060583A (ko) 2014-05-20
WO2013043604A1 (en) 2013-03-28
JP2014531831A (ja) 2014-11-27
SG11201400762XA (en) 2014-09-26
EP2748974B1 (en) 2019-06-26

Similar Documents

Publication Publication Date Title
JP5864758B2 (ja) バーチャルスイッチを介してネットワークトラフィックをコントロールするシステム及び方法
EP3072264B1 (en) Method for performing network service insertion
CN106797351B (zh) 使用控制器执行逻辑网络转发的系统和方法
JP6004405B2 (ja) コントローラでネットワークパケット転送を管理するシステム及び方法
JP5913536B2 (ja) ネットワーク・スイッチを構成するための方法
JP5837989B2 (ja) コントローラでネットワークハードウェアアドレス要求を管理するためのシステム及び方法
US9654380B1 (en) Systems and methods for determining network topologies
EP2974230B1 (en) Common agent framework for network devices
US9008080B1 (en) Systems and methods for controlling switches to monitor network traffic
WO2016130365A1 (en) Systems and methods for controlling switches to capture and monitor network traffic
US11463356B2 (en) Systems and methods for forming on-premise virtual private cloud resources
WO2012154604A2 (en) Systems and methods for managing virtual switches
US9548900B1 (en) Systems and methods for forwarding network packets in a network using network domain topology information
US10291533B1 (en) Systems and methods for network traffic monitoring

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150812

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151021

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: 20151124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151224

R150 Certificate of patent or registration of utility model

Ref document number: 5864758

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees