JP2015065684A - ネットワーク・スイッチを構成するための方法 - Google Patents

ネットワーク・スイッチを構成するための方法 Download PDF

Info

Publication number
JP2015065684A
JP2015065684A JP2014234870A JP2014234870A JP2015065684A JP 2015065684 A JP2015065684 A JP 2015065684A JP 2014234870 A JP2014234870 A JP 2014234870A JP 2014234870 A JP2014234870 A JP 2014234870A JP 2015065684 A JP2015065684 A JP 2015065684A
Authority
JP
Japan
Prior art keywords
network
flow table
switch
table entry
switches
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014234870A
Other languages
English (en)
Other versions
JP5913536B2 (ja
Inventor
グイド アッペンツェラー
Appenzeller Guido
グイド アッペンツェラー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Big Switch Networks LLC
Original Assignee
Big Switch Networks LLC
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 Big Switch Networks LLC filed Critical Big Switch Networks LLC
Publication of JP2015065684A publication Critical patent/JP2015065684A/ja
Application granted granted Critical
Publication of JP5913536B2 publication Critical patent/JP5913536B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/583Stackable routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • 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/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • 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
    • 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/12Discovery or management of network topologies
    • 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/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
    • 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

Landscapes

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

Abstract

【課題】フロー・テーブルを用いたネットワーク・スイッチを提供する。
【解決手段】フロー・テーブル・エントリは、ヘッダ・フィールドと、関連したアクションとを含む。ネットワーク・スイッチ14は、パケットを受信すると、パケット・フィールドをフロー・テーブル・エントリのフィールドと比較し、一致が検出された場合には対応するアクションを取る。コントローラ・サーバ18は、ネットワークトポロジー判断、ネットワーク・スイッチ容量、及び他のネットワーク・スイッチ能力情報収集を行ない、この情報及びネットワーク構成規則に基づいて、スイッチに、パケットを、ネットワーク10を通して所望の経路に沿って転送するように指示するフロー・テーブルを生成する。ネットワーク・コアにより近いスイッチについてのフロー・テーブル・エントリには、ネットワーク・エッジにより近いスイッチより多くのワイルドカード指定を与える。
【選択図】図1

Description

本発明は、通信ネットワークに関し、より特定的には、通信ネットワークにおけるスイッチの構成に関する。
本出願は、全体が引用により本明細書に組み入れられる2010年12月17日に出願された米国特許出願第12/971,924号に基づく優先権を主張するものである。
インターネット及びインターネットに接続されたローカル・データ・ネットワークのようなパケット・ベースのネットワークは、ネットワーク・スイッチを含む。ネットワーク・スイッチは、パケット送信元(packet source)からパケット宛先(packet destination)へパケットを転送するために用いられる。
1つのベンダーのスイッチを別のベンダーの機器を用いて制御するのは困難であるか又は不可能である場合がある。これは、1つのベンダーのスイッチ機器が、別のベンダーのスイッチ機器とは異なるオペレーティング・システム及び制御手順の組を用いることがあるためである。異なるタイプのスイッチ・プラットフォームの制御に関連した問題に対処するために、クロスプラットフォーム(cross−platform)のプロトコルが開発された。これらのプロトコルは、他の場合には互換性のないスイッチの集中制御を可能にする。
クロスプラットフォームのコントローラ・クライアントを、ネットワーク内のスイッチ上に含ませることができる。コントローラ・クライアントは、ネットワーク経路上で対応するコントローラ・サーバと通信することができる。コントローラ・クライアントは様々なスイッチ・ハードウェア上に実装できるので、単一のコントローラが、他の場合には互換性のないことがあるスイッチ機器を制御することが可能である。
コントローラ・クライアントが実装されたネットワーク・スイッチの各々は、そのスイッチによってパケットがどのように転送されるかを指定するエントリを有するフロー・テーブルを含むことができる。気を付けなければ、このタイプの構成を実装するために必要なフロー・テーブル・エントリの数が、ネットワーク内のスイッチの一部の能力を超えることがある。このタイプのクロスプラットフォームのネットワーク・スイッチに基づく隔離されたネットワーク・ドメイン間でトラフィックを伝達する際にも問題が生じ得る。
従って、ネットワーク・スイッチを動作させるための改良された構成を提供できることが望ましい。
フロー・テーブルを用いて、ネットワーク・スイッチを構成することができる。フロー・テーブル・エントリは、ヘッダ・フィールドと、関連したアクションとを含むことができる。パケットがネットワーク・スイッチにより受信されると、ネットワーク・スイッチは、パケット・フィールドをフロー・テーブル・エントリのフィールドと比較することができる。ネットワーク・スイッチは、一致が検出された場合に適切なアクションを取ることができる。例えば、ネットワーク・スイッチは、パケットを適切なスイッチ・ポートに転送することができる。
コントローラ・サーバを用いて、ネットワーク・スイッチを制御することができる。ネットワーク・スイッチの各々は、コントローラ・クライアントを含むことができる。コントローラ・サーバ及びコントローラ・クライアントは、ネットワーク・プロトコル・スタックを用いて、ネットワーク接続上で通信することができる。例えば、コントローラ・サーバは、ネットワーク・スイッチに、所望のパケット処理動作を行うように指示するフロー・テーブル・エントリを、コントローラ・クライアントに分散させることができる。
コントローラ・サーバは、ネットワークのトポロジーを判断し、かつ、ネットワーク・スイッチの容量及び他のネットワーク・スイッチの能力についての情報を集めることができる。この情報に基づいて、コントローラ・サーバは、スイッチに、パケットを、ネットワークを通じて所望の経路に沿って転送するように指示する、ネットワーク・スイッチについてのフロー・テーブルを生成することができる。ネットワーク・コアに近いスイッチについてのフロー・テーブル・エントリには、ネットワーク・エッジに近いスイッチより多くのワイルドカード指定(wildcarding)を与え、ネットワーク・コアに近いスイッチの容量に追いつかなくなることを回避することができる。ネットワーク・エッジにおけるスイッチについてのフロー・テーブル・エントリが、ネットワーク・コアに近いスイッチより少ないワイルドカード指定を有することを保証することによって、ワイルドカード指定の存在下で、パケット転送機能を保つことができる。
幾つかのネットワークにおいては、コア・スイッチのようなスイッチが、コントローラ・サーバが生成したフロー・テーブル・エントリによって構成されていないローカル・コア・ネットワークを形成することができる。ローカル・コア・ネットワークは、フロー・テーブルを用いて構成されるスイッチのネットワークにおけるドメインの間に置くことができる。従って、ローカル・コア・ネットワークは、ネットワーク・ドメインを互いに隔離することができる。
このタイプのネットワークにおいては、ローカル・コア・ネットワークを通じて、トラフィックを、1つの隔離ドメインから他方の隔離ドメインに通すことができる。トラフィックは、パケットをカプセル化する1つのドメインにおけるカプセル化(encapsulation)エンジンと、パケットをカプセル化解除する他方のドメインにおける対応するカプセル化解除(deencapsulation)エンジンとを用いて通すことができる。カプセル化エンジン及びカプセル化解除エンジンを実装するのに用いられるネットワーク・スイッチは、隔離されたネットワーク・ドメイン内の潜在的に任意の位置におけるネットワーク・スイッチ上に配置することができる。コントローラ・サーバは、これらスイッチの位置を発見し、ネットワーク・スイッチに、カプセル化エンジン及びカプセル化解除エンジンを含む適切な経路に沿ってトラフィックを転送するように指示するフロー・テーブル・エントリを生成することができる。
本発明のさらなる特徴、その性質及び種々の利点は、添付図面及び以下の好ましい実施形態の詳細な説明からより明らかになるであろう。
本発明の実施形態による、コントローラ及びパケット転送システムを含む例証となるネットワークの図である。 本発明の実施形態による、パケット処理エンジンを実行するマイクロプロセッサ・ベースの機器を用いて、パケット転送システムをどのように実装できるかを示す図である。 本発明の実施形態による、仮想スイッチを用いてパケット転送システムの機能をどのように実行できるかを示す図である。 本発明の実施形態による、パケット転送システムが制御ユニット及び関連したスイッチング集積回路を含む、パケット転送システム及び関連したコントローラの図である。 本発明の実施形態による、パケット転送システムがマスター・コントローラ及びスレーブ・コントローラを有し、かつ、コントロール・サーバを遠隔コンピューティング機器上又はパケット転送システムにおけるライン・カード上に実装できる、ネットワークの図である。 本発明の実施形態による、ネットワーク接続上で通信するコントローラ・サーバ及びコントローラ・クライアントの図である。 本発明の実施形態による、パケット処理システムにより用いることができるタイプの例証となるフロー・テーブルの図である。 本発明の実施形態による、フロー・テーブルのフロー・テーブル・エントリに基づいて実行することができる3つの例証となるタイプのパケット転送を示す、パケット処理システムにより用いることができるタイプの例証となるフロー・テーブルの図である。 本発明の実施形態による、特定アドレスを有するパケットがスイッチ内の第3の物理ポートに転送される、例証となるフロー・テーブルの図である。 本発明の実施形態による、特定アドレスを有するパケットがスイッチ内の第4の物理ポートに転送される、例証となるフロー・テーブルの図である。 本発明の実施形態による、パケット処理システムにおいてパケットを処理する際に必要とされる例証となるステップのフローチャートである。 本発明の実施形態による、コントローラが、複数のネットワーク・スイッチをどのように制御できるかを示すネットワークの図である。 本発明の実施形態による、ネットワークの異なる部分を通して、スイッチをどのように分散できるかを示す例証となるネットワークの図である。 本発明の実施形態による、様々な量のワイルドカード指定を有する例証となるフロー・テーブル・エントリのテーブルである。 本発明の実施形態による、送信元パケット・エンド・ホストと宛先パケット・エンド・ホストとの間の経路に沿って、データをどのように伝達できるかを示す例証となるネットワークの図である。 図12の経路に沿ってパケットを転送する際に用いることができる従来のフロー・テーブル・エントリのテーブルである。 図13の経路に沿ってパケットを転送する際に用いることができる従来のフロー・テーブル・エントリの別のテーブルである。 本発明の実施形態による、図12の経路に沿ってパケットを転送する際に用いることができるフロー・テーブル・エントリの例証となるテーブルである。 本発明の実施形態による、図12の経路に沿ってパケットを転送する際に用いることができるフロー・テーブル・エントリの別の例証となるテーブルである。 本発明の実施形態による、図15及び図16に示されるタイプのフロー・テーブル・エントリを用いて、図12に示されるタイプのネットワークを動作させる際に用いることができる例証となるステップのフローチャートである。 本発明の実施形態による、ネットワークにおけるスイッチのトポロジー及びスイッチ容量を判断する際に必要とされる例証となるステップのフローチャートである。 本発明の実施形態による、デフォルト・ゲートウェイを用いてインターネットに結合されたネットワークの図である。 本発明の実施形態による、図19に示されるタイプのネットワークにおいてパケットを転送する際に用いることができる例証となるエントリを含むフロー・テーブルである。 本発明の実施形態による、隔離されたネットワーク・ドメインに接続するように、ローカル・コア・ネットワークを通るトンネルを形成する際に用いることができる、パケット・カプセル化エンジン及びパケット・カプセル化解除エンジンを含むネットワークの図である。 本発明の実施形態による、図21に示されるタイプのネットワークを動作させる際に必要とされる例証となるステップのフローチャートである。 本発明の実施形態による、ネットワークにおいて用いることができる、例証となるエッジ・スイッチのフロー・テーブル・エントリ及び非エッジ・スイッチのフロー・テーブル・エントリの図である。
インターネット、並びにインターネットに結合されたローカル及び地域ネットワークのようなネットワークは、パケット・ベースのスイッチに依存する。本明細書ではネットワーク・スイッチ、パケット処理システム、又はパケット転送システムと呼ばれることがあるこれらのスイッチは、アドレス情報に基づいてパケットを転送することができる。このように、パケット送信元により伝送されるデータ・パケットをパケット宛先に配信することができる。ネットワーク用語では、パケットの送信元(source)及び宛先(destination)は、エンド・ホストと呼ばれることがある。エンド・ホストの例は、パーソナル・コンピュータ、サーバ、及び他のコンピューティング機器である。
ネットワーク・スイッチの能力は、比較的小型のイーサネット・スイッチ及び無線アクセス・ポイントから、複数のライン・カード、冗長電源、及びスーパバイザ能力を含む大型のラック・ベースのシステムまでの範囲に及ぶ。イーサネット・スイッチは、ネットワークのエッジ付近で用いられることがあるので、エッジ・スイッチ又はトップ・オブ・ラック・スイッチと呼ばれることがある。より大型のラック・ベースのシステムは、多くの場合、ネットワーク・コア位置で用いられ、かつ、ルータ、コア・ルータ、又はコア・スイッチと呼ばれることがある。幾つかのネットワーク環境においては、コア・スイッチとエッジ・スイッチとの間にあるネットワーク・スイッチは、集約(aggregation)スイッチ又は分散スイッチと呼ばれる。集約スイッチ及びコア・スイッチは、まとめて非エッジ・スイッチと呼ばれることもある。
ネットワークが、複数のベンダーからの機器を含むのは珍しいことではない。一例として、大学又は会社構内のためのネットワークが、1つのベンダーからのコア・スイッチと、別のベンダーからのエッジ・スイッチと、さらに別のベンダーからの集約スイッチとを含むことがある。異なるベンダーからのネットワーク・スイッチを相互接続して、パケット転送ネットワークを形成することができるが、それらのオペレーティング・システムと制御プロトコルとの間の非互換性のために、集中方式で管理するのは困難であり得る。
これらの潜在的な非互換性は、共通のクロスプラットフォーム制御モジュール(本明細書ではコントローラ・クライアントと呼ばれることがある)を各々のネットワーク・スイッチに組み込むことによって克服することができる。集中型クロスプラットフォーム・コントローラ・サーバは、それぞれのネットワーク・リンク上で、制御クライアントの各々と対話することができる。クロスプラットフォーム・コントローラ・サーバ、及び対応するコントローラ・クライアントを用いることにより、潜在的に異種のネットワーク・スイッチ機器の中央管理が可能になる。
本明細書では一例として説明されることがある1つの例証となる構成の場合、集中制御は、図1のコントローラ・サーバ18のような1つ又はそれ以上のコントローラ・サーバにより提供される。コントローラ・サーバ18は、スタンド・アロン・コンピュータ上、コンピュータのクラスタ上、複数の位置の間に分散された一組のコンピュータ上、ネットワーク・スイッチ内に埋め込まれたハードウェア上、又は他の適切なコンピューティング機器12上に実装することができる。コントローラ・サーバ10は、単一のコンピュータ上の単一のプロセスとして実行することができ、又は、冗長性のために幾つかのホストにわたって分散させることができる。分散型構成の使用は、予期しないネットワーク分割(例えば、2つの構内間のネットワーク・リンクが中断される状況)に対して、ネットワーク10に弾力性を与える助けになり得る。
分散型コントローラ構成において、コントローラ・ノードは、コントローラ内のプロトコルを用いて、情報を交換することができる。例えば、新しいエンド・ホストが、第1のコントローラ・ノードにのみ接続されたネットワーク・ハードウェア(例えば、スイッチ)に接続される場合、その第1のコントローラ・ノードは、コントローラ内のプロトコルを用いて、他のコントローラ・ノードに、新しいエンド・ホストの存在を知らせることができる。所望であれば、スイッチ又は他のネットワーク・コンポーネントを複数のコントローラ・ノードに接続することができる。単一のコントローラ・サーバを用いて、関連したスイッチのネットワークを制御する構成が、本明細書において一例として説明されることがある。
図1のコントローラ・サーバ18は、ネットワーク10のトポロジーについての情報を収集することができる。例えば、コントローラ・サーバ18は、ネットワークを通じて、リンク層検出プロトコル(Link Layer Discovery Protocol:LLDP)プローブ・パケットを送信して、ネットワーク10のトポロジーを見いだすことができる。コントローラ・サーバ18は、ネットワーク・トポロジーに関する情報、及びネットワーク機器の能力に関する情報を用いて、ネットワークを通って流れるパケットのための適切な経路を判断することができる。ひとたび適切な経路が識別されると、コントローラ・サーバ18は、対応する設定データをネットワーク10内のハードウェアに送信し、パケットが所望の通りにネットワークを通って流れることを保証することができる。これらのようなネットワーク構成動作は、システム設定動作中バックグラウンドで連続的に、又は、新たに伝送されたデータ・パケット(すなわち、既存の経路が確立されなかったパケット)の出現に応答して、実行することができる。
コントローラ・サーバ18を用いて、ネットワーク構成規則20を実装することができる。規則20は、種々のネットワーク・エンティティがどのサービスを利用可能であるかを指定することができる。一例として、規則20は、ネットワーク20におけるどのユーザ(又はどのタイプのユーザ)が特定のサーバにアクセスできるかを指定することができる。規則20は、例えば、コンピューティング機器12のデータベース内に維持することができる。
コントローラ・サーバ18、及びそれぞれのネットワーク・スイッチ14におけるコントローラ・クライアント30は、ネットワーク・プロトコル・スタックを用いて、ネットワーク・リンク16上で通信することができる。
各々のスイッチ(パケット転送システム)14は、入力・出力ポート34を有することができる。ケーブルを用いて、機器の部品をポート34に接続することができる。例えば、パーソナル・コンピュータ、ウェブ・サーバ、及び他のコンピューティング機器などのエンド・ホストを、ポート34にプラグ接続することができる。ポート34を用いて、スイッチ14の1つを他のスイッチ14に接続することもできる。
ポート34の1つからポート34の別のものにパケットを転送する際、及び着信パケットに対して他の適切なアクションを行う際に、パケット処理回路32を用いることができる。パケット処理回路32は、専用高速スイッチ回路のような1つ又はそれ以上の集積回路を用いて実装することができ、かつ、ハードウェアのデータ経路として働くことができる。所望であれば、ソフトウェアのデータ経路を実装する際に、制御ユニット24上で実行されているパケット処理ソフトウェア26を用いることができる。
制御ユニット24は、制御ソフトウェアを格納及び実行するための処理及びメモリ回路(例えば、1つ又はそれ以上のマイクロプロセッサ、メモリ・チップ、及び他の制御回路)を含むことができる。例えば、制御ユニット24は、パケット処理ソフトウェア26のようなソフトウェアを格納及び実行することができ、フロー・テーブル28を格納することができ、コントローラ・クライアント30の動作をサポートするために用いることができる。
コントローラ・クライアント30及びコントローラ・サーバ18は、OpenFlowプロトコル(例えば、OpenFlowスイッチ仕様バージョン1.0.0を参照されたい)などのネットワーク・スイッチのプロトコルに準拠することができる。コントローラ・クライアント30の中の1つ又はそれ以上のクライアントは、他のプロトコル(例えば、簡易ネットワーク管理プロトコル)に準拠することもできる。OpenFlowプロトコル又は他の適切なプロトコルを用いて、コントローラ・サーバ18は、コントローラ・クライアント30に、スイッチ14が、入力・出力ポート34からの着信パケットをどのように処理するかを決定するデータを与えることができる。
1つの適切な構成の場合、コントローラ・サーバ18からのフロー・テーブル・データを、フロー・テーブル28のようなフロー・テーブル内に格納することができる。スイッチ14を構成する際に、フロー・テーブル28のエントリを用いることができる(例えば、パケット処理回路32及び/又はパケット処理ソフトウェア26の機能)。典型的なシナリオにおいては、フロー・テーブル28は、フロー・テーブル・エントリのキャッシュ記憶装置として働き、これらのフロー・テーブル・エントリの対応するバージョンが、パケット処理回路32の回路が維持する設定内に埋め込まれる。しかしながら、これは例証にすぎない。フロー・テーブル28は、スイッチ14内のフロー・テーブル・エントリのための排他的な記憶装置として働くことができ、又は、パケット処理回路32内のフロー・テーブルの記憶装置リソースを優先して、省くことができる。一般に、フロー・テーブル・エントリは、いずれかの適切なデータ構造体(例えば、1つ又はそれ以上のテーブル、リスト等)を用いて格納することができる。明確にするために、フロー・テーブル28のデータ(制御ユニット24のデータベース内に維持されたものでも、又はパケット処理回路32の構成内に埋め込まれたものでも)は、本明細書では、フロー・テーブル・エントリを形成するもの(例えば、フロー・テーブル28における行)と呼ばれる。
所望であれば、スイッチ14は、制御ソフトウェアを実行し、パケット処理回路32を省いた、図2の汎用処理プラットフォームを用いて実装することができる。このタイプの構成が図2に示される。図2の例証となる構成に示されるように、コンピューティング機器12上のコントローラ・サーバ18は、ネットワーク・リンク16上で、スイッチ(パケット転送システム)14上のコントローラ・クライアント30と通信することができる。コントローラ・サーバ18は、例えば、フロー・テーブル28内に維持されるフロー・テーブル・エントリをコントローラ・クライアント30に伝送することができる。パケット処理ソフトウェア40は、ネットワーク・インターフェース38を用いて、パケット(例えば、ポート34を用いて送受信されるパケット)を転送し、他の方法で処理することができる。ネットワーク・インターフェース38は、スイッチ14内のシステム・ボード(一例として)にプラグ接続された1つ又はそれ以上のネットワーク・インターフェースを用いて実装することができる。
別の例示的なタイプのネットワーク・スイッチが、図3に示される。図3の例においては、コンピューティング機器42は、仮想マシン44を実装するために用いられる。コンピューティング機器42は、例えば、1つ又はそれ以上のコンピュータに基づくサーバとすることができ、仮想マシン44は、ウェブ・サーバ又は他のオンライン・サービスを実装するために用いることができる。典型的なシナリオにおいては、仮想マシンサービスを購入した顧客に、仮想マシン44の番号が割り当てられることがある。これらの仮想マシンが互いに通信できることを保証するために、コンピューティング機器42のリソースの一部を用いて、ネットワーク・スイッチ14(例えば、パケット処理ソフトウェア40のようなソフトウェア、フロー・テーブル28、及びコントローラ・クライアント30に基づいたパケット処理システム)を実装する。仮想スイッチと呼ばれることもあるスイッチ14は、それぞれの仮想マシン44間でパケットを転送できる1つのタイプのパケット転送システムを形成する。
図1のネットワーク・スイッチ14のようなネットワーク・スイッチは、1つ又はそれ以上の高速スイッチング集積回路(「スイッチIC」)に結合された制御回路を用いて実装することができる。このタイプの構成が、図4に示される。図4に示されるように、コンピューティング機器12上のコントローラ・サーバ18は、経路16を介してネットワーク・スイッチ14と通信することができる。スイッチ14は、処理回路24と、スイッチIC32−1...スイッチIC32−Nのような1つ又はそれ以上の関連したスイッチIC32とを含むことができる。制御回路24は、例えば、マイクロプロセッサ及びメモリに基づくことができる。スイッチIC32−1...IC32−Nは、高速でパケット処理タスクを処理することができる専用スイッチング回路とすることができる。一例として、制御回路24は、500MHzのマイクロプロセッサに基づくことができ、スイッチIC32−1...IC32−Nは、入力・出力ポート34の48からのデータを処理することができ、その各々は、(一例として)1−10Gbpsの関連したデータ転送速度を有する。
図1のネットワーク・スイッチ14を実装する際に用いることができる別の例証としてのスイッチ・アーキテクチャが、図5に示される。図5の例において、スイッチ(パケット転送システム)14は、プロセッサ24−1のようなマスター・プロセッサと、スレーブ・プロセッサ24−2のような1つ又はそれ以上の関連したスレーブ・プロセッサとを含むことができる。スイッチIC32及びプロセッサ24−2のようなスレーブ・プロセッサは、ライン・カード48のようなライン・カード上に実装することができる。ライン・カード50のような1つ又はそれ以上のライン・カードは、処理回路(例えば、マイクロプロセッサ及びメモリ)を含むことができる。ライン・カード48及び50は、バックプレーン52を用いて相互接続することができる。
図5に示されるタイプの構成の場合、コントローラ・サーバは、ライン・カードの処理リソースを用いて実装することができる。例えば、コントローラ・サーバは、図5のコントローラ・サーバ18−Bにより示されるように、ライン・カード50上に実装することができる。所望であれば、コントローラ・サーバは、コンピューティング機器12上に実装することができる(例えば、図5のコントローラ・サーバ18−Aのように)。コントローラ・サーバ18−A又はコントローラ・サーバ18−Bは、プロセッサ24−1及び/又は24−2のようなプロセッサを用いて実装されるコントローラ・クライアント30と通信することができる。コントローラ・サーバ18−Aとコントローラ・クライアントとの間の通信は、ネットワーク接続16上で行われ得る。コントローラ・サーバ18−Bとコントローラ・クライアントとの間の通信は、バックプレーン52上で(例えば、TCP/IPのようなプロトコルを用いたネットワーク接続上で)行われ得る。
図6に示されるように、コントローラ・サーバ18及びコントローラ・クライアント30は、ネットワーク・プロトコル・スタック58及びネットワーク・プロトコル・スタック60のようなネットワーク・プロトコル・スタックを用いて、ネットワーク経路66上で通信することができる。スタック58及び60は、例えば、Linux TCP/IPスタック又はVxWorksオペレーティング・システムにおけるTCP/IPスタックとすることができる(例として)。経路66は、例えば、スイッチ14と外部機器との間のネットワーク接続をサポートする経路(例えば、図1のネットワーク経路16)とすることができ、又は図5に示されるような、スイッチ14のバックプレーン52におけるネットワーク接続をサポートする経路とすることができる。経路66が経路16のようなネットワーク経路である構成が、一例として本明細書で説明されることもある。
制御プロトコル・スタック56は、ネットワーク・プロトコル・スタック58と制御ソフトウェア54との間のインターフェースとして働く。制御プロトコル・スタック62は、ネットワーク・プロトコル・スタック60と制御ソフトウェア64との間のインターフェースとして働く。動作中、コントローラ・サーバ18がコントローラ・クライアント30と通信するとき、制御プロトコル・スタック56は、制御プロトコル・メッセージ(例えば、ポートを作動させ又は特定のフロー・テーブル・エントリをフロー・テーブル28にインストールするための制御メッセージ)を生成し、構文解析する。図6に示されるタイプの構成を用いることにより、コントローラ・サーバ18とコントローラ・クライアント30との間のリンク上に、ネットワーク接続が形成される。コントローラ・サーバ18とコントローラ・クライアント30は、インターネット・プロトコル(IP)ネットワーク接続上で、伝送制御プロトコル(Transmission Control Protocol、TCP)又はユーザ・データグラム・プロトコル(User Datagram Protocol、UDP)を用いて通信することができる。ネットワーク接続上でコントローラ・サーバ18とコントローラ・クライアント30との間で通信するときに用いることができる制御プロトコルの例として、SNMP及びOpenFlowプロトコル・スタック・バージョン1.0.0が挙げられる(例として)。
フロー・テーブル28は、複数のフィールド(ヘッダ・フィールドと呼ばれることがある)を有するフロー・テーブル・エントリ(例えば、テーブルにおける行)を含む。スイッチ14により受信されたパケット・フィールドを、フロー・テーブルのフィールドと比較することができる。各々のフロー・テーブル・エントリは、関連したアクションを有することができる。パケット・フィールドと、フロー・テーブル・エントリのフィールドとの間に一致がある場合、そのフロー・テーブル・エントリについての対応するアクションをとることができる。
例証となるフロー・テーブルが、図7に示される。図7Aに示されるように、テーブル28は、フロー・テーブル・エントリ(行)68を有することができる。各々のフロー・テーブル・エントリは、ヘッダ70、アクション72、及び統計データ74と関連付けることができる。ヘッダ70は各々、複数のヘッダ・フィールド76を含むことができる。各々のフロー・テーブル・エントリにおけるアクションは、パケット・フィールドと、そのフロー・テーブル・エントリのヘッダの対応するフィールドとの間に一致が検出されたときに、スイッチ14がパケットに対してどのアクションを行うべきかを示す。スイッチ14は、統計データ(カウンタ値)をフロー・テーブル28の統計データ部分内に維持することができ、この統計データには、スイッチ14の性能についての情報を得ることが望まれる場合、コントローラ・サーバ18により照会することができる。
ヘッダ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が取ることができる付加的なアクションは、ポートに取り付けられたキューを通してパケットを転送するためのエンキュー・アクション、及びドロップ・アクション(例えば、指定されたアクションなしに、フロー・テーブル・エントリと一致するパケットをドロップするための)を含む。(フィールド修正(Modify−field)アクションをスイッチ14によりサポートすることもできる。取り得るフィールド修正アクションの例は、VLAN IDの設定(Set VLAN ID)、VLAN優先順位の設定(Set VLAN priority)、VLANヘッダの除去(Strip VLAN header)、イーサネット送信元アドレスMAC(媒体アクセス制御)アドレスの修正(Modify Ethernet source MAC address)の修正、イーサネット宛先MACアドレスの修正(Modify Ethernet destination MAC address)、IPv4送信元アドレスの修正(Modify IPv4 source address、Modify IPv4 Tosビット、Modify IPv4 ToSビットの修正(Modify IPv4 ToS bits)、トランスポート宛先ポートの修正(Modify transport destination port)を含む。
図7Bは、3つのフロー・テーブル・エントリを有する例証となるフロー・テーブルである。エントリは、ワイルドカード(例えば、「*」記号)を有するフィールドを含む。特定のフィールド内にワイルドカードが存在する場合、着信パケット内のフィールドの特定の値に関係なく、全ての着信パケットは、フィールドに対する「一致」を形成すると考えられる。
図7Bのテーブルの第1行のエントリは、フロー・テーブル・エントリが動作しているスイッチが、イーサネットのスイッチングを行うように指示する。特に、一致するイーサネット宛先アドレスを有する着信パケットは、ポート3に転送される。
図7Bのテーブルの第2行のエントリは、インターネットの経路指定を行うために(すなわち、パケットはその宛先IPアドレスに基づいて転送される)、スイッチをどのように構成するかを示す。
図7Bのテーブルの第3行は、ファイヤウォール処理を行うのに、どのようにスイッチを構成できるかを示すエントリを含む。宛先IPポート値が80であるパケットを受信すると、そのパケットはドロップされる(すなわち、スイッチは、ポート80のトラフィックをブロックするファイヤウォールとして働くように構成される)。
図7Bに示されるタイプのフロー・テーブル・エントリは、システムの設定動作中にコントローラ・サーバ18によりスイッチ14にロードすることができ、又は、コントローラ・サーバ18におけるスイッチ14からのパケットの受信及び処理に応答して、リアルタイムでコントローラ・サーバ18からスイッチ14に与えることができる。多数のスイッチ14を有するネットワークにおいては、ネットワークを通して経路を形成するために、各スイッチに、適切なフロー・テーブル・エントリを与えることができる。
一例として、それぞれのエンド・ホスト間に直列に接続された第1及び第2のスイッチを含むネットワークを考える。トラフィックをエンド・ホストの第1のものからエンド・ホストの第2のものに送信する場合、第1及び第2のスイッチを通じてトラフィックを経路指定することが望ましい。第2のスイッチが第1のスイッチのポート3に接続されている場合、第2のエンド・ホストが第2のスイッチのポート5に接続されている場合、及び第2のエンド・ホストの宛先IPアドレスが172.12.3.4である場合、コントローラ・サーバ18は、第1のスイッチに、図7Cのフロー・テーブル・エントリを与え、かつ、第2のスイッチに、図7Dのフロー・テーブル・エントリを与えることができる。宛先IPアドレス172.12.3.4を有するパケットが、第1のスイッチにおいて受信された場合、これらは、図7Cのテーブルにおける「ポート3に転送」アクションに従って、第2のスイッチに転送される。これらのパケットが第2のスイッチにおいて受信された場合、図7Dにおける「ポート5に転送」アクションに従って、第2のスイッチのポート5に接続された第2のエンド・ホストに転送される。
入力・出力ポート34上で受信されたパケットを処理する際にスイッチ14によって行うことができる例証となるステップが、図8に示される。ステップ78において、スイッチ14は、そのポートの1つ(例えば、図1の入力・出力ポート34の1つ)においてパケットを受信する。
ステップ80において、スイッチ14は、受信したパケット・フィールドを、そのスイッチのフロー・テーブル28におけるフロー・テーブル・エントリのフィールドと比較して、一致があるかどうかを判断する。フロー・テーブル・エントリにおける幾つかのフィールドは、完全な値(すなわち、完全なアドレス)を含むことができる。他のフィールドは、ワイルドカードを含むことができる(すなわち、「*」の「don’t care」ワイルドカード文字でマーク付けされたフィールド)。さらに他のフィールドは、部分的に完全なエントリ(すなわち、部分的にワイルドカード指定された部分アドレス)を有することができる。幾つかのフィールドは、範囲を用いることができ(例えば、TCPのポート番号を1から4096までの間の値に制限することにより)、事実上、この範囲を用いて、1つのタイプの部分的ワイルドカード指定を実施することができる。受信したパケットとフロー・テーブル・エントリとの比較を行う際、スイッチ14は、フロー・テーブル・エントリにおける各フィールドが、いずれのワイルドカード指定もない完全な値、ワイルドカード指定を有する部分的な値、又はワイルドカード文字(すなわち、完全にワイルドカード指定されたフィールド)を含むかどうか考慮することができる。
ステップ80の動作中、パケット・フィールドとフロー・テーブル・エントリの対応するフィールドとの間に一致がないと判断された場合、スイッチ14は、リンク16上でパケットをコントローラ・サーバ18に送信することができる(ステップ84)。
ステップ80の動作中、パケットとフロー・テーブル・エントリとの間に一致があると判断された場合、スイッチ14は、そのフロー・テーブル・エントリと関連付けられたアクションを実行し、かつ、そのフロー・テーブル・エントリの統計フィールドにおけるカウンタ値を更新することができる(ステップ82)。次いで、線86で示されるように、処理は、ステップ78にループバックすることができるので、スイッチ14により別のパケットを処理することができる。
図9は、複数の関連したネットワーク接続16を用いて、コントローラ・サーバ18が複数のスイッチ14をどのように制御できるかを示す例証となるネットワークの図である。図9に示される例証となるネットワークにおいて、第1のエンド・ホスト(図9の左側のエンド・ホスト88)は、第2のエンド・ホスト(図9の右側のエンド・ホスト88)と通信する。エンド・ホスト88は、コンピュータ(例えば、パーソナル・コンピュータ)、サーバ、コンピュータのクラスタ、セットトップ・ボックス、手持ち式機器、又はいずれかの他のコンピューティング機器とすることができる。エンド・ホスト88の間の通信の一部の間、第1のエンド・ホストはパケット送信元として働くことができ、第2のエンド・ホストはパケット宛先として働くことができる。あるときには、役割を逆にすることができ、第2のエンド・ホストがパケット送信元として働き、一方、第1のエンド・ホストがパケット宛先として働くことができる。
ネットワークを通してパケットが正しく転送されることを保証するために、コントローラ18は、図9に示されるスイッチの各々に、適当なフロー・テーブル・エントリを与えることができる。1つの適切な構成において、コントローラ・サーバ18は、着信パケットとそのフロー・テーブル・エントリとの間に一致を検出しなかったスイッチからコントローラ・サーバ18に送信されたパケットの受信に応答して、スイッチ14に、フロー・テーブル・エントリを与えることができる。コントローラ・サーバ18がパケットを受信すると、コントローラ・サーバ18は、スイッチ14のフロー・テーブル28についての適切なエントリを判断するのに、ネットワーク構成規則20(図1)、パケットからの情報、ネットワーク・トポロジー情報、及び他の情報を用いることができる。次に、コントローラ・サーバ18は、フロー・テーブル・エントリをスイッチ14に与えて、ネットワークを通してパケットを転送するように、スイッチを構成することができる。別の適切な構成の場合、コントローラ・サーバ18は、設定動作中に、フロー・テーブル28をスイッチ28に与える。
コントローラ・サーバ18が、スイッチからパケットを受信する前に又はその受信に応じてリアルタイムで、スイッチ14にフロー・テーブル・エントリを与えるかどうかに関係なく、ひとたび各スイッチ14にフロー・テーブル・エントリが与えられると、フロー・テーブル・エントリは、スイッチ14が、ネットワークを通して満足のいく経路に沿ってパケットを転送することを保証する。
スイッチ14のリソースに過負荷をかけないように注意しなければならない。通常、各スイッチ14のフロー・テーブルの容量は制限されている。スイッチの容量は、例えば、10,000を超えないフロー・テーブル・エントリを処理するように、そのスイッチを制限することができる。この制限を超過するのを回避するために、異なるネットワーク位置におけるスイッチに、異なるレベルの特定性(specificity)を有する規則を実装するフロー・テーブル・エントリを与えることができる。
一例として、図10のネットワーク10を考える。図10のネットワーク10において、エンド・ホスト88は、ネットワーク10のエッジ部分10Eにおけるエッジ・スイッチ14E、ネットワーク10の集約・分散部分10ADにおける集約スイッチ14AD、及びネットワーク10のコア部分10Cにおけるコア・スイッチ14C(その1つ又はそれ以上がインターネットに結合される)を通して通信する。エンド・ホスト88の各々と関連したアクティブなユーザが存在し得る。典型的なエッジ・スイッチ14Eは、約50の異なるエンド・ホスト88に接続することができる(一例として)。典型的には、集約スイッチ14ADは、約20のエッジ・スイッチ14Eに接続することができる(一例として)。このアーキテクチャの結果として、集約スイッチ10ADは、約1000のエンド・ホスト88からのトラフィックを処理する必要があり得る。
アクティブなユーザは、ウェブ・ブラウザ、及び多数のネットワーク接続をもたらす他のアプリケーションを用いることができるので、集約スイッチ14ADが、10,000乃至20,000又はそれ以上のネットワーク接続を処理するように要求されることもある。集約スイッチ14ADのハードウェアが、最大10,000のフロー・テーブル・エントリしか処理できない場合、ネットワーク10が過負荷になる可能性があるので、幾つかの所望のネットワーク接続が、ユーザに利用不能になる。
この潜在的な問題の回避を確実にするために、コントローラ・サーバ18は、ネットワーク10の異なる部分におけるスイッチに、異なる特定性のフロー・テーブル・エントリ(一致規則)を与えることができる。例えば、エッジ・スイッチ14Eに、集約スイッチ14ADよりも制限的なエントリを与えることができ、及び/又は、集約スイッチ14ADに、コア・スイッチ14Cよりも制限的なエントリを与えることができる。このタイプの構成により、所望のレベルのパケット処理を全体的に維持することを可能にする一方で、他の場合にはその容量に追いつかなくなることがある、集約スイッチ14AD及び14Cのようなスイッチにかかる負担を軽減することができる。
図11は、より多くのワイルドカード指定を組み込むことにより、例証となるヘッダ・フィールド(すなわち、IP宛先アドレス・フィールド)と関連した一致規則をどのようにより制限的でなくできるかを示す。図11の例において、IP宛先アドレス・フィールドに用いることができる最も制限的な値は、完全なIPアドレス「2.2.2.2」である。フロー・テーブル・エントリがこの値を有する場合、このフィールドに一致するパケットのみが、同一のIP宛先アドレス(すなわち、2.2.2.2)を含むものとなる。フロー・テーブル・エントリに用いることができる、僅かにより制限的でないIP宛先アドレス・フィールドは、「2.2.2.*」である。最後のIPアドレス位置にワイルドカードを用いることにより、2.2.2.1、2.2.2.2、2.2.2.3等のようなアドレスは全て2.2.2.*エントリと一致するので、着信パケットにおけるIP宛先アドレス・フィールドに一致するための要件が緩和される。より多くのワイルドカード指定を組み込むことにより、さらにより制限的でない一致規則がもたらされる。例えば、図11における「2.2.*」エントリは、2.2.0.0、2.2.0.1、...、2.2.1.0、2.2.1.1、...のIP宛先アドレスと一致する。フロー・テーブル・エントリ・フィールドが2.*の値を有する場合、アドレスにおける最後の3つの位置の値に関係なく、「2」で始まる全てのIP宛先アドレスが一致する。フィールド全体がワイルドカード指定された場合(すなわち、図11のIP宛先アドレス・フィールドが「*」の値を有する場合)、全ての着信パケットが、フロー・テーブルのIP宛先アドレス・フィールドに一致するとみなされるIP宛先アドレス・フィールドを含む(すなわち、「*」はあらゆるアドレス値に一致するとみなされる)。
図11の例が実証するように、より多くワイルドカード指定されたフロー・テーブルの値は、より制限的でない一致規則に対応し、一方、より少なくワイルドカード指定されたフロー・テーブルの値は、より特定の一致基準に対応する。所定のネットワークにおけるパケット処理のために特定の機能を実装する場合には、ネットワークにおけるスイッチ14の少なくとも一部が詳細なフロー・テーブル・エントリ、及びそれに対応する制限的な一致規則を用いることが望ましい。例えば、ネットワーク・エッジにおける又はその近くのスイッチが、詳細なフロー・テーブル・エントリを処理できる場合がある。しかしながら、ネットワークのコアのより近くでは、図10に関連して説明されたトラフィックにおける集中のせいで、そのような詳細なフロー・テーブル・エントリが、スイッチに追いつかなくなる傾向がある。従って、ネットワーク・コアにより近いスイッチに対して、より制限的でない規則を用いることが有利であり得る。一例として、「2.2.2.2」のIP宛先アドレス・フィールドを、エッジ・スイッチ14Eにおけるフロー・テーブルに用いることができ、一方、コア・スイッチ14Cにおけるフロー・テーブル・エントリに対して、*のIP宛先アドレス・フィールドを用いることができる。コア・スイッチにおける「*」のエントリは、多数の可能な宛先IPアドレスに適用できるため、あまり制限的でない「*」値を使用することは、コア・スイッチ14Cに必要とされる異なるフロー・テーブル・エントリ数を最小にする助けとなる。
一例として、図12の例証となるネットワークを考える。図12の例においては、2つのエンド・ホスト88がある。エンド・ホストEHAはパケット送信元として働くことができ、エンド・ホストEHBはパケット宛先として働くことができる。スイッチ14は、エッジ・スイッチ14Eと、スイッチ14Cのようなコア・スイッチとを含む。設定動作中、又はリアルタイムのネットワーク構成動作中、コントローラ・サーバ18は、スイッチSW E1、SW C1及びSW E2に、スイッチSW E1、SW C1及びSW E2を通じて、ネットワーク経路上で、エンド・ホストEHAからエンド・ホストEHBにパケットを転送するのに適したフロー・テーブル・エントリを与えることができる。図12のスイッチと関連した物理的な入力・出力ポートが、スイッチを接続するリンクに隣接して示される。例えば、スイッチSW E1に隣接するラベル「1」は、エンド・ホストEHAがスイッチE1のポート1に接続されることを示す。スイッチSW E1に隣接するラベル2及びスイッチSW C1に隣接するラベル「3」は、スイッチE1のポート2がスイッチSW C1のポート3に接続されることなどを示す。
1つの従来の手法を用いる場合、完全な一致規則が、ワイルドカードのないフロー・テーブル・エントリの形で、ネットワーク内のスイッチに与えられる。エントリは、スイッチがどのように着信パケットを転送するかを指定する。図13は、このタイプの構成を用いて、図12のネットワークのスイッチを与えることができるフロー・テーブル・エントリを示す。図13に示されるように、フロー・テーブル・エントリE1は、スイッチSW E1に、着信パケットをポート1からポート2に転送するように指示する。フロー・テーブル・エントリC1は、スイッチSW C1に、着信パケットをスイッチSW C1のポート3からポート4に転送するように指示する。スイッチSW E2は、フロー・テーブル・エントリE2に従って、着信パケットをスイッチSW E2のポート5からポート6に転送する。従って、図13のフロー・テーブル・エントリは、図12のネットワーク10において、パケットをエンド・ホストEHAからEHBに流れさせる。このタイプの手法は、フロー・テーブル・エントリにおいてワイルドカードを使用することを必要とせず、このことは、フロー・テーブル・エントリがスイッチの容量に追いつかなくなる状況をもたらし得る。例えば、スイッチC1のようなスイッチには、多数のエッジ・スイッチ及びエンド・ホストについてのフロー・テーブル・エントリを与える必要があり得る。スイッチSW C1内に格納する必要があるフロー・テーブル・エントリの数が、スイッチSWC1のハードウェア能力を上回ることがある。
この問題に対処する従来の構成が、図14に示される。図14の構成では、フロー・テーブル・エントリの選択されたフィールド内に、ワイルドカード指定が用いられる。例えば、図14の各フロー・テーブル・エントリの物理ポートのフィールドが、ワイルドカードを有する。これにより、各エンド・ホストが取り付けられる物理ポートの識別情報に関係なく、スイッチに結合されたエンド・ホストの全てからのパケットが、同じく処理されることが可能になる。物理ポートの情報に基づいてパケットを異なるように処理する試みは行われないため(及び、図14のテーブルにおける他のワイルドカード指定情報のため)、必要とされるフロー・テーブル・エントリの数は低減する。
図14の従来の手法は、低減した数のフロー・テーブル・エントリを用いて、パケットをエンド・ホストEHAからエンド・ホストEHBに転送するのを可能にするが、セキュリティが危険にさらされる。特に、スイッチは物理ポートの情報に基づいてトラフィックをブロックできないため、図14の手法は、攻撃者が物理ポートをスプーフィング(spoof)するのを可能にする。
フロー・テーブル・エントリからネットワークのスイッチ(例えば、集約スイッチ及びコア・スイッチ)に課される負担を減らしながら、所望のレベルのネットワーク性能を維持するために(例えば、セキュリティを維持するために)用いることができるスキームが、図15のフロー・テーブル・エントリにより示される。フロー・テーブル・エントリE1’、C1’及びE2’をネットワークの異なる部分にあるスイッチに与えることができる。例えば、エントリE1’及びE2’を、それぞれ図12のスイッチSW E1及びSW E2に用いることができ、エントリC1’をスイッチ14Cに用いることができる。フロー・テーブル・エントリE1’、C1’及びE2’は、異なるレベルの制限性を有することができる。特に、ネットワークのコアにより近いスイッチ(例えば、図12のコア・スイッチSW C1についてのエントリC1’)のための一致規則は、より多くのワイルドカード指定を有することができ、かつ、ネットワークのコアからより遠くにあるスイッチ(例えば、エッジ・スイッチ14EについてのエントリE1’及びE2’)のための一致規則より制限的でないものとすることができる。
例えば、スイッチSW E1に、着信パケットをどのように転送するかを指示するのに用いることができる、エントリE1’のようなフロー・テーブル・エントリは、物理ポートの入力フィールド及びIP送信元アドレスのフィールド内に特定の情報を含むことができ、一方、集約スイッチ又はコア・スイッチSW C1に、着信パケットをどのように転送するかを指示するのに用いることができる、エントリC1’のようなフロー・テーブル・エントリは、少なくとも幾つかのワイルドカード指定を含むことができる。図15の例の場合、エントリE1’(スイッチSW E1により用いられる)及びエントリE2’(スイッチSW E2により用いられる)の両方とも、完全なフィールドのみを含み、ワイルドカード指定を有するフィールドは含んでおらず、一方、エントリC1’は、完全にワイルドカード指定された複数のフィールド(すなわち、物理入力ポート、IP送信元アドレス、宛先TCPポート、及び送信元TCPポート)を含む。
C1’エントリのようなエントリは、E1’及びE2’エントリのようなエントリより多くのワイルドカード指定を含むので、C1’エントリのようなエントリを用いることは、コア・スイッチSWC1(本例において)が維持するフロー・テーブル・エントリの数を減らす助けとなる。これにより、スイッチSW C1へのフロー・テーブルの負担が減り、スイッチ14に追いつかなくなるのを防ぐ助けとなる。同時に、エッジ・スイッチSW E1及びSW E2(本例において)に対応するフロー・テーブル・エントリの完全性のために、セキュリティが保護される。エントリE1’及びE2’は、物理ポートの情報を保持し、かつ、コア・スイッチC1にアクセスすることができないので、物理ポートのスプーフィングは可能でない(エンド・ホストをコア・スイッチC1に物理的に直接接続できないと仮定して)。
コントローラ・サーバ18は、図15に示されるタイプのテーブルについてのフロー・テーブル・エントリを選択的に分散させることができる。例えば、コントローラ・サーバ18は、フロー・テーブル・エントリE1’のようなフロー・テーブル・エントリを、スイッチSW C1のようなネットワーク・コアにより近いスイッチではなく、スイッチE1のようなエッジ・スイッチに分散させ、かつ、フロー・テーブル・エントリC1’のようなフロー・テーブル・エントリを、エッジ・スイッチではなく、スイッチSW C1のようなコア・スイッチ又はコアに近いスイッチに分散させることができる。
図16は、エッジ・スイッチのフロー・テーブル・エントリがワイルドカード指定を含むスキームについてのフロー・テーブル・エントリを示す。例えば、図12のスイッチSW E1についてのエントリE1’’により示されるように、宛先TCPポート・フィールドをワイルドカード指定し、かつ、送信元TCPポート・フィールドをワイルドカード指定することができる。図12のスイッチSW E2についてのエントリE2’’により示されるように、IP送信元アドレス・フィール及び送信元TCPポートをワイルドカード指定することができる。パケットにおける送信元TCPポート情報は、IPリンクを確立する通常のプロセスの一部としてランダムに割り当てられ(戻りトラフィックが適切なエンド・ホスト処理に向けられることを保証するために)、かつ、通常有用なセキュリティ情報は含まないため、送信元TCPポートにワイルドカード指定を使用することにより、セキュリティを低減させずに、フロー・テーブル・エントリを低減させることが可能になる。E1’’エントリにおける宛先TCPポート情報のワイルドカード指定は、スイッチSW E1が、エンド・ホストEHBにおける権限のないTCPポートに向かうその関連したエンド・ホストEHAからのトラフィックをブロックすることができないので、セキュリティ上の問題をもたらす可能性がある。それにもかかわらず、宛先TCPポート・フィールドは、フロー・テーブル・エントリE2’’において22の完全な(ワイルドカード指定のない)エントリで満たされているので、スイッチSW E2は、この所望のトラフィック・ブロック動作を行うことができる。
従って、図16のフロー・テーブル・エントリにおいて幾つかのワイルドカード指定が存在していても、パケット転送機能の全体的な損失はない。エントリE1’’のワイルドカード指定により失われたどの機能も、フロー・テーブル・エントリE2’’のより完全なフィールドの機能によって埋め合わせられるので、図15の例において実行された同じパケット処理機能が、図16の例において実行される。図15の例におけるように、エントリC1’’のようなコア・スイッチのフロー・テーブル・エントリは、スイッチSW C1により維持されなければならないフロー・テーブル・エントリの総数を減らすために、ワイルドカード指定(例えば、ネットワーク・エッジにより近いスイッチについてのフロー・テーブル・エントリより多いワイルドカード指定)を含むことができる。
図17は、ネットワークの異なる位置において異なるレベルの特定性を有するフロー・テーブル・エントリ(すなわち、ネットワークのエッジにおける又はこれに近いスイッチに対してはより制限的であり、ネットワークのコア又はその近くであまり制限的ではないフロー・テーブル・エントリ)を含むネットワークを動作させる際に必要とされる例証となるステップのフローチャートである。
ステップ90の動作中、コントローラ・サーバ18はネットワーク機器を識別し、ネットワークのトポロジーを判断することができる。例えば、ステップ92の動作中、コントローラ・サーバ18は、各スイッチ14の能力を判断することができる。ステップ94の動作中、コントローラ・サーバ18は、ネットワークのレイアウトについての情報(例えば、どのスイッチ及びエンド・ホストが、スイッチにおける入力・出力ポートの各々に接続されているか等)を得ることができる。スイッチ能力について収集することができる情報は、各スイッチにおける最大公称フロー・テーブル容量(例えば、各スイッチにおいて処理することができるフロー・テーブル・エントリの公称最大数)、フロー・テーブル・エントリを処理するためのスイッチの実際の現在の容量(すなわち、スイッチのフロー・テーブル内に現在存在する新しいフロー・テーブル・エントリについての空いている行の数)、各スイッチが行うことができるアクションのタイプ等を含む。所望であれば、ネットワーク内のエンド・ホストの能力についての情報を収集することができる。エンド・ホストの能力について収集することができる情報は、どのタイプの処理がサポートされるか、及びどの接続規則がそれらのプロセスと関連付けられるか(例えば、エンド・ホスト番号Xは、いずれかのエンド・ホストがポート80を用いて接続するのを可能にするウェブ・サーバである)情報を含む。ネットワーク・トポロジー情報は、どのスイッチ・ポートが互いに接続されているか、幾つのエンド・ホストが各スイッチに取り付けられるか、幾つの他のスイッチが各スイッチに接続されるか、及びエンド・ホストが取り付けられたポートのアイデンティティについての情報を含むことができる。ネットワークのトポロジーを判断するために、コントローラ・サーバ18は、リンク層検出プロトコル(LLDP)パケットのようなプローブ・パケットをネットワーク全体にわたって送信することができる。スイッチ及び他のネットワーク・コンポーネントは、コントローラ・サーバにより照会されたときに、それらの能力についての情報を戻すことができる。ステップ90の動作は、ネットワーク10の動作中連続的に行うことができる。
ステップ94の動作中にネットワークのトポロジーを判断する際、コントローラ・サーバ18は、スイッチ14を、主にネットワーク・エッジ10E、集約(集約・分散)ネットワーク部分10AD、又はネットワーク・コア10Cと関連付けられたものとしてカテゴリ化することができる(例えば、図10を参照されたい)(例えば、スイッチ14を、エッジ・ネットワーク・スイッチとして又は非エッジ・スイッチとしてカテゴリ化する)。測定基準を各々のスイッチに適用して、スイッチがエッジ・スイッチであるか(例えば、スイッチが多数のエンド・ホストに接続されている場合)、又は非エッジ・スイッチであるか(例えば、スイッチがどのエンド・ホストにも接続されていない及び/又は監視ホストにだけ接続されている場合)を判断することができる。測定基準を各々の非エッジ・スイッチに適用して、非エッジ・スイッチが集約スイッチであるか(例えば、スイッチが多数のエッジ・スイッチに接続されている場合)、又はコア・スイッチであるか(例えば、集約スイッチ又はコア・スイッチに接続されており、エッジ・スイッチにほとんど又は全く接続されていないスイッチ)を判断することができる。
1つの例証となる測定基準では、スイッチが1つ又はそれ以上のエンド・ホスト(例えば、多数のエンド・ホスト)に接続されている場合、スイッチをエッジ・スイッチとしてカテゴリ化することができ、スイッチがエンド・ホストに接続されておらず、及び/又は1つのホスト(又は、場合によっては1つより多いホスト)に排他的に又は主として監視目的のために接続されている場合、非エッジ・スイッチとしてカテゴリ化することができる。スイッチ14をカテゴリ化する際にコントローラ・サーバ18により用いることができる別の例証としての測定基準では、第1のスイッチが第2のスイッチより多くのエンド・ホストに接続されている場合、第1のスイッチは、第2のスイッチよりエッジ様のものとしてカテゴリ化することができる。第1のスイッチがエンド・ホストより多くの取り付けられたスイッチを有し、かつ、第2のスイッチがエンド・ホストより少ない取り付けられたスイッチを有する場合、第1の非エッジ・スイッチは、第2の非エッジ・スイッチよりコア様(非エッジ様)であるとみなすことができる。所望であれば、スイッチをカテゴリ化するのに、他の測定基準を用いることができる。これらは、単に説明に役立つ実例にすぎない。ひとたび判断されると、スイッチのカテゴリは、ネットワーク構成中に適切なフロー・テーブル・エントリを分散させる際に用いることができる。
ステップ96の動作中、コントローラ・サーバ18は、パケット送信元(例えば、図12のエンド・ホストEHAのようなエンド・ホスト88の1つ)からパケット宛先(例えば、図12のエンド・ホストEHBのようなエンド・ホスト88の1つ)に送信されたパケットに対して、ネットワーク10を通る適切な経路を判断することができる。コントローラ・サーバ18は、ステップ90の動作中に収集した情報のような情報を用いて、パケットについての適切な経路を判断することができる。経路は、ネットワーク設定動作中に識別することができ、又は、コントローラ・サーバ18においてスイッチ14の1つからのパケット(例えば、パケットを受信したが、パケットに対する一致を生じたフロー・テーブル・エントリは含まなかったスイッチによりコントローラ・サーバ18に送信されたパケット)の受信に応答して、リアルタイムで判断することができる。
ステップ98の動作中、コントローラ・サーバ18は、ステップ96の動作中に識別された経路及びネットワーク構成規則20(図1)を用いて、完全なフロー・テーブル・エントリ(すなわち、図13に示されるタイプのエントリ)を生成することができる。ネットワーク構成規則20は、どのエンド・ホストがどのサービスにアクセスできるか(所望であれば、集合エンド・ホストを用いて)の規則を含むことができる。これらのネットワーク構成規則は、コントローラ・サーバ18が生成するフロー・テーブル・エントリのセットにおいて具体化することができる。例えば、特定のエンド・ホストが特定のサービスにアクセスできない場合、このタイプの権限のないアクセスを防ぐように(例えば、ポートをブロックすること等により)フロー・テーブル・エントリを構築することができる。ステップ98において生成されたフロー・テーブル・エントリは、好ましくは完全なフィールド(ワイルドカード指定のないフィールド)を含み、従って、ネットワークについての完全なパケット転送機能を維持する。
図10及び図12に関連して説明されたように、スイッチ14におけるフロー・テーブル・エントリの全てに対して、完全な(ワイルドカード指定のない)フィールドを用いると、スイッチ14に、具体的にはネットワークのエッジから離れたところに位置するスイッチに負担がかかることがある。これらのスイッチが過負荷にならないことを保証するために、コントローラ・サーバ18は、ステップ100の動作中、ステップ98のフロー・テーブル・エントリの圧縮バージョンを生成することができる。図15及び図16に関連して説明されたように、これらのフロー・テーブル・エントリは、必要とされるフロー・テーブル・エントリ数を低減させるためにワイルドカード指定を含んでいる。インテリジェントなワイルドカード割り当てを用いて、スイッチ14の所望のパケット転送機能が、ステップ98で生成されたフロー・テーブル・エントリに対して保護されることを保証することができる。例えば、エッジ・スイッチが物理ポート情報を維持することを保証することにより(すなわち、非エッジ・スイッチのみについての物理ポート情報をワイルドカード指定することにより)、物理ポートのスプーフィングを防ぐためのネットワーク・スイッチの能力を保護することができる。別の例として、ワイルドカード指定されていない適切なTCPポートのフィールドがエッジ・スイッチのエントリに保持されることを保証することによって、TCPポートのブロックを実装するためのスイッチの能力を保持することができる。
ステップ98の動作を行う際、サーバ・コントローラ18は、スイッチに、ネットワーク内のそれらの位置に合わせたフロー・テーブル・エントリが与えられることを保証することができる。ネットワーク・エッジにおける又はその近くのネットワーク・スイッチ(例えば、エッジ・スイッチ)のために、より制限的なフロー・テーブル・エントリを用いることができ、一方、ネットワーク・コアのより近くにあるスイッチ(例えば、非エッジ・スイッチ)のために、より制限的でないフロー・テーブルのエントリを用いることができる。スイッチの位置、公称スイッチ容量、実際のスイッチ容量等のような要因に基づいて、フロー・テーブル・エントリをスイッチに与えることができる。
ネットワークにおけるコア・スイッチが、フロー・テーブルを含み、かつ、コントローラ18により調整可能である場合、コア・スイッチには、集約スイッチについてのフロー・テーブル・エントリと同じだけ制限的な又はそれより制限的ではないフロー・テーブル・エントリを与えることができる。幾つかのネットワークにおいて、コア・スイッチは、コントローラ・サーバ18とは独立して動作するコントローラにより制御することができ、かつ、コントローラ・サーバ18と互換性がないものとすることができる。このタイプの状況において、コア・スイッチは、それぞれのコントローラを用いて構成できるので、コントローラ・サーバ18は、コア・スイッチに、フロー・テーブル・エントリを与える必要がない。
典型的なシナリオにおいて、コントローラ・サーバ18は、エッジ・スイッチ14Eに、ワイルドカード指定されるフィールドがほとんどないか又は全くない、完全な又はほぼ完全なフロー・テーブル・エントリを与えることができる。集約スイッチ14ADのような非エッジ・スイッチには、より制限的でないフロー・テーブル・エントリを与えることができる。例えば、集約スイッチ14ADには、その唯一の完全なフィールドが宛先IPフィールドであり、その他のフィールドは完全な又は部分的なワイルドカードを含むフロー・テーブル・エントリを与えることができる。コア・スイッチ14Cがコントローラ18によって制御されない場合、コア・スイッチ14Cのような非エッジ・スイッチには、コントローラ18からフロー・テーブル・エントリを与える必要はない。しかしながら、コア・スイッチ14Cがコントローラ18により制御される場合、コントローラ18は、部分的にワイルドカード指定された宛先IPアドレスを除いて、完全にワイルドカード指定されたフロー・テーブル・エントリをコア・スイッチ14Cに与えることができる。一例として、コア・スイッチについてのフロー・テーブル・エントリは、宛先IPアドレス・フィールドを除いて、全てのフィールドにおいてワイルドカードを有することができる。コア・スイッチについてのフロー・テーブル・エントリにおける宛先IPアドレス・フィールドには、「171.64.123.*」のような部分的にワイルドカード指定された値を与えることができ(所望のサブネットにアドレス指定されたパケットと一致するように)、この部分的にワイルドカード指定された宛先IPアドレス・フィールドに対応するアクションは、「ポート3に送信する」とすることができる。
ひとたびステップ100のフロー・テーブル・エントリが生成されると、コントローラ・サーバ18は、これらのフロー・テーブル・エントリを適切なスイッチ14に分散させることができる。スイッチ14がこのように構成される場合、パケットは、パケットの送信元とパケット宛先との間でネットワーク10を通じて流れることができる。
所望であれば、ステップ98の動作をステップ10の動作と結合させることができる(すなわち、ステップ98の完全なフロー・テーブル・エントリを計算する中間ステップを行うことなく、経路及びネットワーク構成規則から、選択的なワイルドカード指定を含む圧縮されたフロー・テーブル・エントリを直接生成することができる。)
図18は、図17のステップ90の動作を行う際(すなわち、ネットワーク10のトポロジー及びそのスイッチ14の能力を判断するとき)に必要とし得る動作を示す。ステップ104の動作中、コントローラ・サーバ18は、適切な測定基準(例えば、取り付けられたエンド・ホストの数、取り付けられたスイッチの数等に基づいた測定基準)を用いて、ネットワーク10内のそれらの位置に応じてスイッチをカテゴリ化することができる。例えば、1つ又はそれ以上のエンド・ホスト88に接続されたスイッチをエッジ・スイッチとしてカテゴリ化することができる。他のスイッチ14は、ネットワークのトポロジー内の位置、及び/又は、取り付けられたスイッチの数等などの要因に基づいて、ネットワーク・コア10C、又は、ネットワーク10ADの集約・分散部分に属するとカテゴリ化することができる。
ステップ106及び108の動作中、コントローラ・サーバ18は、ネットワーク接続16上で、ネットワーク10内の個々のスイッチ14にクエリを発行することができる。例えば、コントローラ・サーバ18は、ステップ106の動作中、その公称容量についてスイッチ14に照会することができる。スイッチ14は、その公称容量(すなわち、いずれの既存のエントリもない場合、スイッチが処理することができるフロー・テーブル・エントリの理論上の最大数)についての情報で応答することができる。実際の容量の情報について照会された場合(ステップ108)、スイッチ14は、コントローラ・サーバ18に、その実際の(現在の)容量についての情報(すなわち、スイッチの能力を超過することなく、スイッチにロードすることができる付加的なフロー・テーブル・エントリの数)を与えることができる。ステップ90の動作中に収集される情報は、ネットワーク10におけるスイッチについての適切なフロー・テーブル・エントリを生成する際に(例えば、フロー・テーブル・エントリによりスイッチに追いつかなくならないように、図17のステップ96、98及び100の動作中、スイッチ14についてのフロー・テーブル・エントリをどのように生成するかを判断する際に)用いることができる。
図19の例証となるネットワーク10において、エンド・ホストEHC及びEHDは、スイッチSW E3及びSW E4のようなエッジ・スイッチ14E、及び、コア・スイッチSW C2のようなコア・スイッチ14Cを介して、インターネット110に結合される。コア・スイッチSW C2は、デフォルトのインターネット・ゲートウェイDGによりインターネットに結合することができる。本例において、エンド・ホスト機器112のようなインターネット機器は、3.3.3.3の関連したIPアドレスを有することができる。エンド・ホストEHCは、1.1.1.1のIPアドレスを有することができ、かつ、TCPポート22と関連付けることができる。エンド・ホストEHDは、2.2.2.2のIPアドレスを有することができ、かつ、TCPポート22と関連付けることができる。
図19の例証となるネットワークのようなネットワークにおいて、コントローラ・サーバ18は、ネットワークにおいて使用中のサブネットの知識を有し得る。この情報に基づいて、コントローラ・サーバ18は、ネットワーク内に「3」で始まるIPアドレスを含むエンド・ホストがない(すなわち、ネットワーク10内に、3.*の有効なIP宛先アドレスがない)と結論付けることができる。このことは、コントローラ・サーバ18が、3.*のIPアドレスを有するトラフィックをデフォルトのゲートウェイDGに転送するフロー・テーブルを構築することを可能にする。ネットワーク10内に、3.*の宛先アドレスがないので、この転送タスクを行う際に、フロー・テーブル・エントリ内の他のフィールドの値を必要としない。
図20は、図19のネットワーク10においてこのタイプのパケット転送スキームを実装するために用いることができる例証となるフロー・テーブルである。スイッチSW E3により用いることができるフロー・テーブル・エントリE3により示されるように、エンド・ホストEHCから宛先IPアドレス3.3.3.3へのパケットは、スイッチSW E3のポート2に転送される(送信元アドレス・ポート5における2.2.2.2を有する、転送ポートと同じタイプのエントリを、エンド・ホストEHDからのパケットのために用いることができる)。スイッチSW C2により用いることができるフロー・テーブルのエントリC2により示されるように、IP宛先アドレスが「3.*」に一致する全てのパケットがポート7に、従って、ゲートウェイDGに転送される。フロー・テーブル・エントリC2における他のフィールドをワイルドカード指定し、必要とされるフロー・テーブル・エントリの数を最小にすることができる。
ネットワーク10のための別の可能なトポロジーが、図21に示される。このタイプの構成では、ネットワークのドメインA及びBが、コントローラ・サーバ18からフロー・テーブルをロードすることができるスイッチ14にポピュレートされる。技術的な制限のため又は許可がないために、介在するローカル・コア114におけるネットワーク・スイッチは、コントローラ・サーバ18からフロー・テーブル・エントリがロードされず、コントローラ・サーバ18からフロー・テーブル・エントリをロードすることができない。
コントローラ・サーバ18により与えられるフロー・テーブル・エントリの制御下でドメインA及びBが機能するのを可能にするために、ネットワーク・トンネル(例えば、仮想ローカル・エリア・ネットワーク・トンネル)を、ローカル・コア・ネットワーク114を通して確立することができる。このトンネルは、ネットワーク10の1つのドメイン(例えば、ドメインA)においてカプセル化エンジンを用いて他方のドメインに向かうデータ・トラフィックをカプセル化し、ネットワーク10の他方のドメイン(例えば、ドメインB)においてカプセル化解除(deencapsulation)エンジンを用いてカプセル化解除し、従って、カプセル化されたデータを復旧することにより、形成することができる。ネットワーク10におけるカプセル化エンジン及びカプセル化解除エンジンは、Generic Routing Encapsulation(GRE)、マルチプロトコル・ラベル・スイッチング(Multiprotocol Label Switching、MPLS)、仮想ローカル・エリア・ネットワーク(VLAN)カプセル化技術、ネットワーク・トンネルのデータをカプセル化するための他の技術等といったカプセル化方法を用いることができる。
スイッチ14の利用可能なハードウェア及びソフトウェア能力に起因して、特定のスイッチ14が、カプセル化エンジン及びカプセル化解除エンジンを実行するのにより適していることがある。例えば、ドメインAにおけるスイッチ14−1は、カプセル化エンジンEEを実行するのに適切であり、ドメインBにおけるスイッチ14−2は、カプセル化解除エンジンDEを実行するのに適切であり得る。カプセル化エンジンEE及びカプセル化解除エンジンDEが実装されるスイッチは、ローカル・コア114に直接接続される必要はない。図21に示されるように、例えば、1つ又はそれ以上の他のスイッチ14(例えば、カプセル化エンジン又はカプセル化解除エンジンを有さないスイッチ)を、スイッチ14−1とローカル・コア114との間に置くことができ、スイッチ14の1つ又はそれ以上(例えば、カプセル化エンジン又はカプセル化解除エンジンを有さないスイッチ)をスイッチ14−2とローカル・コア114との間に置くことができる。
トラフィックがローカル・コア114を通って(すなわち、コントローラ・サーバからのフロー・テーブル・エントリにより制御されていないネットワークの部分を通って)進むことができるのを確実にするために、コントローラ・サーバ18は、パケットをネットワーク10の各ドメイン内に転送するフロー・テーブル・エントリを生成し、トラフィックがエンジンEE及びDEにより適切にカプセル化及びカプセル化解除されるようにすることができる。例えば、トラフィックがドメインAのエンド・ホストEH1によりドメインBのエンド・ホストEH2に送信される場合、コントローラ・サーバ18は、パケットを、経路116に沿ってスイッチを通ってEH1からスイッチ14−1上のカプセル化エンジンEEに転送し、カプセル化エンジンEEによりカプセル化されたパケットを、経路118に沿ってローカル・コア114を通ってスイッチ14−2上のカプセル化解除エンジンDEに転送し、かつ、カプセル化解除エンジンDEによりカプセル化解除されたパケットを、経路120を介してエンド・ホスト88に転送するフロー・テーブル・エントリを生成することができる。パケットが取る経路は、特定のスイッチを複数回通ることができる。例えば、パケットは、経路116に沿って流れているときに最初に、経路118に沿って流れているとき二回目に、スイッチ14−3を通過することができ、かつ、経路118に沿って流れているとき最初に、経路120に沿って流れているときに二回目にスイッチ14−4を通過することができる(本例において)。
図21のネットワーク10のスイッチのためのフロー・テーブル・エントリを生成するのに必要とされる例証となるステップのフローチャートが、図22に示される。ステップ122の動作中、コントローラ・サーバ18は、ネットワーク10のトポロジーについての情報(例えば、ドメインA及びBの機器の位置、間に置かれたローカル・コア114又はコントローラ・サーバ18により制御されていない他の機器の性質)、フロー・テーブル・エントリの能力及び各スイッチ14の他の能力(例えば、コア114を通してネットワーク・トンネルを形成するためのあらゆるカプセル化エンジンEE及びカプセル化解除エンジンの位置)、並びに他のネットワーク情報を収集することができる。
ステップ122の動作中に収集された情報に基づいて、コントローラ・サーバ18は、ステップ124において、カプセル化エンジンEE、ローカル・コア114、及びカプセル化解除エンジンDEを通して、エンド・ホストEH1からエンド・ホストEH2にトラフィックを指向させる、図21の経路116、118及び120のような経路を識別することができる。次に、コントローラ・サーバ18は、これに応じて、ステップ126において、適切なフロー・テーブル・エントリを有するスイッチ14をロードすることによって、ネットワークを構成することができる。ネットワーク10の動作中、エンド・ホストEH1からのトラフィックは、ローカル・コア114のネットワーク・スイッチを通り抜け、エンド・ホストEH2に到達する。
より制限的なフロー・テーブル・エントリを、非エッジ・スイッチではなく、エッジ・スイッチに対して用いることにより、ネットワーク10において安全な通信を保証することができる。例えば、エッジ・スイッチには、特定の物理ポート上のホストが特定のアドレス(例えば、IP送信元アドレス、イーサネット送信元アドレス、VLANタグ、又はイーサネット・アドレス+VLANタグといったこれらと他のフィールドとの組み合わせ)を用いることを要求するフロー・テーブル・エントリを与えることができる。図23の例は、エッジ・スイッチについてのフロー・テーブル・エントリが、関連したアドレス情報に加えて、特定の物理ポート情報(例えば、ポート=4)をどのように含むことができるかを示す。このタイプの構成の場合、エッジ・スイッチ上のフロー・テーブルは、物理ポートのフィールド及び関連したアドレス・フィールドのためのワイルドカードをもたない。エッジ・スイッチのフロー・テーブル・エントリが指定する転送アクション又は他のアクションは、物理ポート及びパケットのアドレスの両方がフロー・テーブル・エントリにより確立された基準を満たす場合にのみ実行される。
非エッジ・スイッチ(例えば、集約スイッチ)には、より制限的でないフロー・テーブル・エントリを与えることができる。例えば、図23の例証となる非エッジ・スイッチのフロー・テーブル・エントリにより示されるように、集約スイッチには、物理ポートがワイルドカード指定され、かつ、転送を決定するためにアドレス・フィールド情報だけが使用されるフロー・テーブル・エントリを与えることができる。エッジ・スイッチは、悪意のあるホストからの攻撃を防ぐフロー・テーブル・エントリを含むので、集約スイッチは、エッジ・スイッチからの着信パケットにおけるアドレス情報が信頼できると考えることができる。
例えば、エッジ・スイッチの1つに接続された悪意あるエンド・ホストが、別のエンド・ホストになりすまそうとして、IP送信元アドレスを偽造しようとする場合、悪意あるエンド・ホストが接続されるエッジ・スイッチは、悪意あるエンド・ホストの物理ポートに対して適切な一致を検出しない。悪意あるホストが接続されたエッジ・スイッチにおけるフロー・テーブル・エントリは、物理ポート番号情報及びアドレス情報の両方を含む。アドレスが悪意あるエンド・ホストによって成功裏に偽造された場合でも、悪意あるエンド・ホストからのいずれのパケットも、悪意あるエンド・ホストと関連した物理ポート情報を含み、なりすまされたエンド・ホストの正しい物理ポート情報は含まない。悪意あるエンド・ホストの物理ポートは、エッジ・スイッチのフロー・テーブル・エントリにおける要求される物理ポートと一致しないため、エッジ・スイッチは、パケットを悪意あるエンド・ホストから集約スイッチに転送せず、なりすましの試みは失敗する。
1つの実施形態によれば、コントローラ・サーバを用いて、ネットワーク内のネットワーク・スイッチにフロー・テーブル・エントリを与える方法が提供される。各々のネットワーク・スイッチは、パケット・フィールドをフロー・テーブル・エントリのフィールドと比較することにより、パケットを処理する。この方法は、コントローラ・サーバによって、スイッチの幾つかをエッジ・ネットワーク・スイッチとしてカテゴリ化し、コントローラ・サーバによってネットワーク・スイッチを非エッジ・スイッチとしてカテゴリ化することを含む。この方法は、コントローラ・サーバによって、異なるフロー・テーブル・エントリを、非エッジ・スイッチとしてカテゴリ化されたネットワーク・スイッチではなく、エッジ・ネットワーク・スイッチとしてカテゴリ化されたネットワーク・スイッチに分散させることを含む。
別の実施形態によれば、フロー・テーブル・エントリを分散させることは、フロー・テーブル・エントリを、ネットワーク接続上でコントローラ・サーバから、ネットワーク・スイッチ上の対応するコントローラ・クライアントに分散させることを含む。
別の実施形態によれば、フロー・テーブル・エントリを分散させることは、コントローラ・サーバにおけるネットワーク・プロトコル・スタックを用いて、ネットワーク接続上で、コントローラ・クライアントにおける対応するネットワーク・プロトコル・スタックと通信することを含む。
別の実施形態によれば、フロー・テーブル・エントリを分散させることは、完全なフィールドのみを有するフロー・テーブル・エントリをエッジ・スイッチに分散させて、少なくとも幾つかのワイルドカード指定されたフィールドを有するフロー・テーブル・エントリを非エッジ・スイッチに分散させることを含む。
別の実施形態によれば、各々のフロー・テーブル・エントリは、送信元インターネット・プロトコル(IP)アドレス・フィールドを含み、エッジ・スイッチについての各々のフロー・テーブル・エントリの送信元IPアドレス・フィールドにはワイルドカードがなく、非エッジ・スイッチについての各々のフロー・テーブル・エントリの送信元IPアドレス・フィールドは、少なくとも幾つかのワイルドカード指定を含む。
別の実施形態によれば、ネットワーク・スイッチはポートを含み、フロー・テーブル・エントリは、ネットワーク・スイッチがパケットをポートのどれに転送すべきかを指定するアクション・フィールドを含む。
1つの実施形態によれば、第1の組のエンド・ホスト及びネットワーク・スイッチと関連した第1のネットワーク・ドメインと、第2の組のエンド・ホスト及びネットワーク・スイッチと関連した第2のネットワーク・ドメインと、第1のネットワーク・ドメイン及び第2のネットワーク・ドメイン内のネットワーク・スイッチに対してフロー・テーブル・エントリを与えるコントローラ・サーバと、ローカル・コア・ネットワークとを有するネットワークを動作させる方法が提供される。各々のネットワーク・スイッチは、パケット・フィールドをフロー・テーブル・エントリのフィールドと比較することによって、パケットを処理する。カプセル化エンジンが第1のネットワーク・ドメイン内のネットワーク・スイッチの1つの上に実装され、カプセル化解除エンジンが第2のネットワーク・ドメイン内のネットワーク・スイッチの1つの上に実装される。この方法は、制御サーバによって、第1のドメイン及び第2のドメイン内のネットワーク・スイッチに、パケットを第1のネットワーク・ドメイン内の第1のエンド・ホストからカプセル化エンジンに転送し、カプセル化されたパケットを、ローカル・コア・ネットワークを通じてカプセル化エンジンからカプセル化解除エンジンに転送し、かつ、パケットをカプセル化解除エンジンから第2のドメイン内の第2のエンド・ホストに転送するように指示する、第1のドメイン内のネットワーク・スイッチ及び第2のドメイン内のネットワーク・スイッチについてのフロー・テーブル・エントリを生成することを含む。
別の実施形態によれば、ローカル・コア・ネットワークは、コントローラ・サーバからのフロー・テーブル・エントリによって制御されず、第1のネットワーク・ドメイン内のネットワーク・スイッチの少なくとも所与のものが、カプセル化エンジンが実装されるネットワーク・スイッチとローカル・コア・ネットワークとの間に置かれ、フロー・テーブル・エントリを生成することは、ネットワーク・スイッチに、カプセル化されたパケットを、ネットワーク・スイッチの所与のものを通じて転送するように指示するフロー・テーブル・エントリを生成することを含む。
別の実施形態によれば、ローカル・コアは、コントローラ・サーバからのフロー・テーブル・エントリをロードできないネットワーク・スイッチを含み、この方法は、コントローラ・サーバからのフロー・テーブル・エントリをネットワーク・スイッチにおける対応するコントローラ・クライアントに与えることをさらに含む。
別の実施形態によれば、フロー・テーブル・エントリを与えることは、コントローラ・サーバ及びコントローラ・クライアントにおけるネットワーク・プロトコル・スタックを用いて、ネットワーク接続上で前記フロー・テーブル・エントリを伝達することを含む。
別の実施形態によれば、前記ネットワーク・プロトコル・スタックを用いることは、伝送制御プロトコル(TCP)/インターネット・プロトコル(IP)スタックを用いて、フロー・テーブル・エントリを伝達することを含む。
別の実施形態によれば、フロー・テーブル・エントリは、ヘッダ・フィールド及びアクション・フィールドを含み、フロー・テーブル・エントリを生成することは、ネットワーク・スイッチに、パケットをネットワーク・スイッチの少なくとも所与のものを通じて2度転送するように指示するフロー・テーブル・エントリを生成することを含む。
別の実施形態によれば、この方法は、カプセル化エンジンによって、マルチプロトコル・ラベル・スイッチング(Multiprotocol Label Switching)を用いて、カプセル化されたパケットを生成することをさらに含む。
別の実施形態によれば、この方法は、総称ルーティング・カプセル化(Generic Routing Encapsulation)を用いて、カプセル化されたパケットを生成することをさらに含む。
1つの実施形態によれば、デフォルトのインターネット・ゲートウェイによりインターネットに結合されたネットワークを動作させるための方法が提供される。ネットワークはエンド・ホストをデフォルトのインターネット・ゲートウェイに結合するネットワーク・スイッチを含む。この方法は、ワイルドカード指定されていない物理ポートのエントリを含むフロー・テーブル・エントリをネットワーク・スイッチ内のエッジ・スイッチに与えることと、少なくとも所与のフロー・テーブル・エントリをネットワーク・スイッチ内の非エッジ・スイッチに与えることとを含む。非エッジ・スイッチは、デフォルトのインターネット・ゲートウェイに接続されており、所与のフロー・テーブル・エントリは、ワイルドカード指定された物理ポート・フィールドを含み、かつ、部分的にワイルドカード指定されて、非エッジ・スイッチに、パケットをデフォルトのインターネット・ゲートウェイに転送するように指示する宛先インターネット・プロトコル・アドレス・フィールドを有する。
別の実施形態によれば、ネットワーク・スイッチの各々は、コントローラ・サーバと通信するコントローラ・クライアントを含み、フロー・テーブル・エントリをエッジ・スイッチに与えることは、コントローラ・サーバ及びコントローラ・クライアントにおけるネットワーク・プロトコル・スタックを用いて、ネットワーク接続上で前記フロー・テーブル・エントリを伝達することを含む。
別の実施形態によれば、この方法は、各々のネットワーク・スイッチにおいて、受け取ったパケット・フィールドを、そのネットワーク・スイッチに与えられたフロー・テーブル・エントリのフィールドと比較することを含む。
1つの実施形態によれば、コントローラ・サーバを用いて、ネットワーク内のネットワーク・スイッチにフロー・テーブル・エントリを与える方法が提供され、ここでは、各々のネットワーク・スイッチは、パケット・フィールドをフロー・テーブル・エントリのフィールドと比較し、一致が検出された場合には対応するアクションを取ることによってパケットを処理し、エンド・ホストはネットワーク・スイッチに接続される。この方法は、コントローラ・サーバによって、ネットワーク・スイッチの第1のものが、エンド・ホストに接続された入力・出力ポートを有するエッジ・スイッチであり、ネットワーク・スイッチの第2のものがネットワーク・スイッチの第1のものに接続された入力・出力ポートを有する集約スイッチであると判断することを含む。この方法は、ネットワーク・スイッチの第1のものがエッジ・スイッチであり、ネットワーク・スイッチの第2のものが集約スイッチであるとの判断に応答して、コントローラ・サーバを用いて、第1のネットワーク・スイッチに第1のフロー・テーブル・エントリを与え、第2のネットワーク・スイッチに第2のフロー・テーブル・エントリを与えることをさらに含み、第1のフロー・テーブル・エントリは、ワイルドカード指定のない物理ポート・フィールドを含み、第2のフロー・テーブル・エントリはワイルドカード指定を有する物理ポート・フィールドを含む。
別の実施形態によれば、第1のネットワーク・スイッチに第1のフロー・テーブル・エントリを与えることは、第1のネットワーク・スイッチに、ワイルドカード指定のないインターネット・プロトコル送信元アドレス・フィールドを含むフロー・テーブル・エントリを与えることを含む。
別の実施形態によれば、第2のネットワーク・スイッチに第2のフロー・テーブル・エントリを与えることは、第2のネットワーク・スイッチに、ワイルドカード指定されたインターネット・プロトコル送信元アドレス・フィールドを含むフロー・テーブル・エントリを与えることを含む。
別の実施形態によれば、第1のネットワーク・スイッチはコントローラ・クライアントを含み、第2のネットワーク・スイッチはコントローラ・クライアントを含み、コントローラ・サーバは、ネットワーク・プロトコル・スタックを用いて、ネットワーク接続上でコントローラ・クライアントと通信する。
別の実施形態によれば、ネットワーク・スイッチの第3のものが、エンド・ホストに接続され、かつ、第2のスイッチに結合され、この方法は、第3のネットワーク・スイッチに、ワイルドカード指定されたインターネット・プロトコル送信元アドレス・フィールドと、ワイルドカード指定のない物理ポート・フィールドとを含む第3のフロー・テーブル・エントリを与えることを含む。
別の実施形態によれば、この方法は、第1、第2、及び第3のネットワーク・スイッチのフロー・テーブル・エントリに応答して、パケットを、第1、第2、及び第3のネットワーク・スイッチを通じて、第1のネットワーク・スイッチに接続された第1のエンド・ホストから、第3のネットワーク・スイッチに接続された第2のエンド・ホストに転送することを含む。
別の実施形態によれば、第1のネットワーク・スイッチに第1のフロー・テーブル・エントリを与えることは、第1のネットワーク・スイッチに、ワイルドカード指定のないイーサネット送信元アドレス・フィールドを含むフロー・テーブル・エントリを与えることを含む。
別の実施形態によれば、第1のネットワーク・スイッチに第1のフロー・テーブル・エントリを与えることは、第1のネットワーク・スイッチに、ワイルドカード指定のない仮想ローカル・エリア・ネットワーク・タグを含むフロー・テーブル・エントリを与えることを含む。
別の実施形態によれば、第1のネットワーク・スイッチに第1のフロー・テーブル・エントリを与えることは、第1のネットワーク・スイッチに、ワイルドカード指定のないインターネット・プロトコル送信元アドレス、ワイルドカード指定のないイーサネット送信元アドレス、及びワイルドカード指定のない仮想ローカル・エリア・ネットワーク・タグからなる群から選択されるワイルドカード指定のないアドレスを含むフロー・テーブル・エントリを与えることを含む。本実施形態において、第2のネットワーク・スイッチに第2のフロー・テーブル・エントリを与えることは、第2のネットワーク・スイッチに所与のアドレスを含むフロー・テーブル・エントリを与えることと、パケット・フィールドが所与のアドレスと一致することを検出したことに応答して、第2のネットワーク・スイッチに、第2のネットワーク・スイッチが取るアクションを与えることを含む。
上記は、本発明の原理を例証するものにすぎず、当業者であれば、本発明の範囲及び趣旨から逸脱することなく、様々な修正を行うことができる。
10:ネットワーク
10E:エッジ部分
10AD:集約・分散部分
10C:コア部分
12、42:コンピューティング機器
14:ネットワーク・スイッチ
14E:エッジ・スイッチ
14AD:集約スイッチ
14C:コア・スイッチ
16:ネットワーク・リンク
18:コントローラ・サーバ
20:ネットワーク構成規則
22:TCPポート
24:制御ユニット
24−1:マスター・プロセッサ
24−2:スレーブ・プロセッサ
26:パケット処理ソフトウェア
28:フロー・テーブル
30:コントローラ・クライアント
32:パケット処理回路
34:入力・出力ポート
38:ネットワーク・インターフェース
40:パケット処理ソフトウェア
44:仮想マシン
48、50:ライン・カード
52:バックプレーン
54、64:制御ソフトウェア
56、62:制御プロトコル・スタック
58、60:ネットワーク・プロトコル・スタック
66:ネットワーク経路
68:フロー・テーブル・エントリ
70:ヘッダ
72:アクション
74:統計データ
76:ヘッダ・フィールド
88:エンド・ホスト
110:インターネット
112:エンド・ホスト機器
114:ローカル・コア
116、118、120:経路
EH:エンド・ホスト
DG:デフォルトのインターネット・ゲートウェイ
EE:カプセル化エンジン
DE:カプセル化解除エンジン

Claims (26)

  1. コントローラ・サーバを用いて、ネットワーク内のネットワーク・スイッチにフロー・テーブル・エントリを与える方法であって、前記ネットワーク・スイッチの各々は、パケット・フィールドを前記フロー・テーブル・エントリのフィールドと比較することによりパケットを処理し、前記方法は、
    前記コントローラ・サーバによって、前記ネットワーク・スイッチの幾つかをエッジ・ネットワーク・スイッチとしてカテゴリ化し、前記ネットワーク・スイッチの幾つかを非エッジ・スイッチとしてカテゴリ化するステップと、
    前記コントローラ・サーバによって、異なるフロー・テーブル・エントリを、非エッジ・スイッチとしてカテゴリ化された前記ネットワーク・スイッチではなく、エッジ・ネットワーク・スイッチとしてカテゴリ化された前記ネットワーク・スイッチに分散させるステップと、
    を含むことを特徴とする方法。
  2. 前記フロー・テーブル・エントリを分散させるステップは、前記フロー・テーブル・エントリを、ネットワーク接続上で前記コントローラ・サーバから、前記ネットワーク・スイッチ上の対応するコントローラ・クライアントに分散させるステップを含むことを特徴とする、請求項1に記載の方法。
  3. 前記フロー・テーブル・エントリを分散させるステップは、前記コントロール・サーバにおけるネットワーク・プロトコル・スタックを用いて、前記ネットワーク接続上で、前記コントローラ・クライアントにおける対応するネットワーク・プロトコル・スタックと通信するステップを含むことを特徴とする、請求項2に記載の方法。
  4. 前記フロー・テーブル・エントリを分散させるステップは、完全なフィールドのみを有するフロー・テーブル・エントリを前記エッジ・スイッチに分散させて、少なくとも幾つかのワイルドカード指定されたフィールドを有するフロー・テーブル・エントリを前記非エッジ・スイッチに分散させるステップを含むことを特徴とする、請求項3に記載の方法。
  5. 前記フロー・テーブル・エントリの各々は、送信元インターネット・プロトコル(IP)アドレス・フィールドを含み、前記エッジ・スイッチについての前記フロー・テーブル・エントリの各々の前記送信元IPアドレス・フィールドにはワイルドカードがなく、前記非エッジ・スイッチについての前記フロー・テーブル・エントリの各々の前記送信元IPアドレス・フィールドは、少なくとも幾つかのワイルドカード指定を含むことを特徴とする、請求項3に記載の方法。
  6. 前記ネットワーク・スイッチはポートを含み、前記フロー・テーブル・エントリは、前記ネットワーク・スイッチがパケットを前記ポートのどれに転送すべきかを指定するアクション・フィールドを含むことを特徴とする、請求項1に記載の方法。
  7. 第1の組のエンド・ホスト及びネットワーク・スイッチと関連した第1のネットワーク・ドメインと、第2の組のエンド・ホスト及びネットワーク・スイッチと関連した第2のネットワーク・ドメインと、前記第1のネットワーク・ドメイン及び前記第2のネットワーク・ドメイン内の前記ネットワーク・スイッチに対してフロー・テーブル・エントリを与えるコントローラ・サーバと、ローカル・コア・ネットワークとを有するネットワークを動作させる方法であって、前記ネットワーク・スイッチの各々は、パケット・フィールドを前記フロー・テーブル・エントリのフィールドと比較することによってパケットを処理し、カプセル化エンジンは前記第1のネットワーク・ドメイン内の前記ネットワーク・スイッチの1つの上に実装され、カプセル化解除エンジンは前記第2のドメイン内の前記ネットワーク・スイッチの1つの上に実装され、前記方法は、
    前記制御サーバによって、前記第1のドメイン及び前記第2のドメイン内の前記ネットワーク・スイッチに、パケットを前記第1のネットワーク・ドメイン内の第1のエンド・ホストから前記カプセル化エンジンに転送し、カプセル化されたパケットを、前記ローカル・コア・ネットワークを通じて前記カプセル化エンジンから前記カプセル化解除エンジンに転送し、かつ、パケットを前記カプセル化解除エンジンから前記第2のドメイン内の第2のエンド・ホストに転送するように指示する、前記第1のドメイン内の前記ネットワーク・スイッチ及び前記第2のドメイン内の前記ネットワーク・スイッチについてのフロー・テーブル・エントリを生成するステップを含むことを特徴とする方法。
  8. 前記ローカル・コア・ネットワークは、前記コントローラ・サーバからの前記フロー・テーブル・エントリによって制御されず、前記第1のネットワーク・ドメイン内の前記ネットワーク・スイッチの少なくとも所与のものが、前記カプセル化エンジンが実装される前記ネットワーク・スイッチと前記ローカル・コア・ネットワークとの間に置かれ、前記フロー・テーブル・エントリを生成するステップは、前記ネットワーク・スイッチに、前記カプセル化されたパケットを、前記ネットワーク・スイッチの所与のものを通じて転送するように指示するフロー・テーブル・エントリを生成するステップを含むことを特徴とする、請求項7に記載の方法。
  9. 前記ローカル・コアは、前記コントローラ・サーバからの前記フロー・テーブル・エントリをロードできないネットワーク・スイッチを含み、前記方法は、
    前記コントローラ・サーバからの前記フロー・テーブル・エントリを前記ネットワーク・スイッチにおける対応するコントローラ・クライアントに与えるステップをさらに含むことを特徴とする、請求項8に記載の方法。
  10. 前記フロー・テーブル・エントリを与えるステップは、前記コントローラ・サーバ及び前記コントローラ・クライアントにおけるネットワーク・プロトコル・スタックを用いて、ネットワーク接続上で前記フロー・テーブル・エントリを伝達することを含むことを特徴とする、請求項9に記載の方法。
  11. 前記ネットワーク・プロトコル・スタックを用いるステップは、伝送制御プロトコル(TCP)/インターネット・プロトコル(IP)スタックを用いて、前記フロー・テーブル・エントリを伝達することを含むことを特徴とする、請求項10に記載の方法。
  12. 前記フロー・テーブル・エントリは、ヘッダ・フィールド及びアクション・フィールドを含み、前記フロー・テーブル・エントリを生成するステップは、前記ネットワーク・スイッチに、前記パケットを前記ネットワーク・スイッチの少なくとも所与のものを通じて2度転送するように指示するフロー・テーブル・エントリを生成するステップを含むことを特徴とする、請求項7に記載の方法。
  13. 前記カプセル化エンジンによって、マルチプロトコル・ラベル・スイッチングを用いて、前記カプセル化されたパケットを生成するステップをさらに含むことを特徴とする、請求項7に記載の方法。
  14. 前記カプセル化エンジンによって、総称ルーティング・カプセル化を用いて、前記カプセル化されたパケットを生成するステップをさらに含むことを特徴とする、請求項7に記載の方法。
  15. デフォルトのインターネット・ゲートウェイによりインターネットに結合されたネットワークを動作させるための方法であって、前記ネットワークはエンド・ホストを前記デフォルト・インターネット・ゲートウェイに結合するネットワーク・スイッチを含み、前記方法は、
    ワイルドカード指定されていない物理ポートのエントリを含むフロー・テーブル・エントリを前記ネットワーク・スイッチ内のエッジ・スイッチに与えるステップと、
    少なくとも所与のフロー・テーブル・エントリを前記ネットワーク・スイッチ内の非エッジ・スイッチに与えるステップと、
    を含み、前記非エッジ・スイッチは、前記デフォルトのインターネット・ゲートウェイに接続されており、前記所与のフロー・テーブル・エントリは、ワイルドカード指定された物理ポート・フィールドを含み、かつ、部分的にワイルドカード指定されて、前記非エッジ・スイッチに、パケットを前記デフォルトのインターネット・ゲートウェイに転送するように指示する宛先インターネット・プロトコルアドレス・フィールドを有することを特徴とする方法。
  16. 前記ネットワーク・スイッチの各々は、コントローラ・サーバと通信するコントローラ・クライアントを含み、前記フロー・テーブル・エントリを前記エッジ・スイッチに与えるステップは、前記コントローラ・サーバ及び前記コントローラ・クライアントにおけるネットワーク・プロトコル・スタックを用いて、ネットワーク接続上で前記フロー・テーブル・エントリを伝達することを含むことを特徴とする、請求項15に記載の方法。
  17. 前記ネットワーク・スイッチの各々において、受け取ったパケット・フィールドを、そのネットワーク・スイッチに与えられた前記フロー・テーブル・エントリのフィールドと比較するステップをさらに含むことを特徴とする、請求項16に記載の方法。
  18. コントローラ・サーバを用いて、ネットワーク内のネットワーク・スイッチにフロー・テーブル・エントリを与える方法であって、前記ネットワーク・スイッチの各々は、パケット・フィールドを前記フロー・テーブル・エントリのフィールドと比較し、一致が検出された場合には対応するアクションを取ることによってパケットを処理し、エンド・ホストは前記ネットワーク・スイッチに接続されており、前記方法は、
    前記コントローラ・サーバによって、前記ネットワーク・スイッチの第1のものが、前記エンド・ホストに接続された入力・出力ポートを有するエッジ・スイッチであり、前記ネットワーク・スイッチの第2のものが前記ネットワーク・スイッチの前記第1のものに接続された入力・出力ポートを有する集約スイッチであると判断するステップと、
    前記ネットワーク・スイッチの第1のものがエッジ・スイッチであり、前記ネットワーク・スイッチの前記第2のものが集約スイッチであるとの判断に応答して、前記コントローラ・サーバを用いて、前記第1のネットワーク・スイッチに第1のフロー・テーブル・エントリを与え、前記第2のネットワーク・スイッチに第2のフロー・テーブル・エントリを与えるステップと、
    を含み、前記第1のフロー・テーブル・エントリは、ワイルドカード指定のない物理ポート・フィールドを含み、前記第2のフロー・テーブル・エントリはワイルドカード指定を有する物理ポート・フィールドを含むことを特徴とする方法。
  19. 前記第1のネットワーク・スイッチに前記第1のフロー・テーブル・エントリを与えるステップは、前記第1のネットワーク・スイッチに、ワイルドカード指定のないインターネット・プロトコル送信元アドレス・フィールドを含むフロー・テーブル・エントリを与えることを含むことを特徴とする、請求項18に記載の方法。
  20. 前記第2のネットワーク・スイッチに前記第2のフロー・テーブル・エントリを与えるステップは、前記第2のネットワーク・スイッチに、ワイルドカード指定されたインターネット・プロトコル送信元アドレス・フィールドを含むフロー・テーブル・エントリを与えるステップを含むことを特徴とする、請求項19に記載の方法。
  21. 前記第1のネットワーク・スイッチはコントローラ・クライアントを含み、前記第2のネットワーク・スイッチはコントローラ・クライアントを含み、前記コントローラ・サーバは、ネットワーク・プロトコル・スタックを用いて、ネットワーク接続上で前記コントローラ・クライアントと通信することを特徴とする、請求項20に記載の方法。
  22. 前記ネットワーク・スイッチの第3のものが、エンド・ホストに接続され、かつ、前記第2のスイッチに結合され、前記方法は、
    前記第3のネットワーク・スイッチに、ワイルドカード指定されたインターネット・プロトコル送信元アドレス・フィールドと、ワイルドカード指定のない物理ポート・フィールドを含む第3のフロー・テーブル・エントリを与えるステップを含むことを特徴とする、請求項21に記載の方法。
  23. 前記第1、第2、及び第3のネットワーク・スイッチの前記フロー・テーブル・エントリに応答して、パケットを、前記第1、第2、及び第3のネットワーク・スイッチを通じて、前記第1のネットワーク・スイッチに接続された第1のエンド・ホストから、前記第3のネットワーク・スイッチに接続された第2のエンド・ホストに転送するステップをさらに含むことを特徴とする請求項22に記載の方法。
  24. 前記第1のネットワーク・スイッチに前記第1のフロー・テーブル・エントリを与えるステップは、前記第1のネットワーク・スイッチに、ワイルドカード指定のないイーサネット送信元アドレス・フィールドを含むフロー・テーブル・エントリを与えるステップを含むことを特徴とする、請求項18に記載の方法。
  25. 前記第1のネットワーク・スイッチに前記第1のフロー・テーブル・エントリを与えるステップは、前記第1のネットワーク・スイッチに、ワイルドカード指定のない仮想ローカル・エリア・ネットワーク・タグを含むフロー・テーブル・エントリを与えるステップを含むことを特徴とする、請求項18に記載の方法。
  26. 前記第1のネットワーク・スイッチに前記第1のフロー・テーブル・エントリを与えるステップは、前記第1のネットワーク・スイッチに、ワイルドカード指定のないインターネット・プロトコル送信元アドレス、ワイルドカード指定のないイーサネット送信元アドレス、及びワイルドカード指定のない仮想ローカル・エリア・ネットワーク・タグからなる群から選択されるワイルドカード指定のないアドレスを含むフロー・テーブル・エントリを与えるステップを含み、
    前記第2のネットワーク・スイッチに前記第2のフロー・テーブル・エントリを与えるステップは、前記第2のネットワーク・スイッチに、所与のアドレスを含むフロー・テーブル・エントリを与えるステップと、パケット・フィールドが前記所与のアドレスと一致することを検出したことに応答して、前記第2のネットワーク・スイッチに前記第2のネットワーク・スイッチが取るアクションを与えるステップを含むことを特徴とする、請求項18に記載の方法。
JP2014234870A 2010-12-17 2014-11-19 ネットワーク・スイッチを構成するための方法 Active JP5913536B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/971,924 2010-12-17
US12/971,924 US9001827B2 (en) 2010-12-17 2010-12-17 Methods for configuring network switches

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013544766A Division JP5654142B2 (ja) 2010-12-17 2011-12-15 ネットワーク・スイッチを構成するための方法

Publications (2)

Publication Number Publication Date
JP2015065684A true JP2015065684A (ja) 2015-04-09
JP5913536B2 JP5913536B2 (ja) 2016-04-27

Family

ID=46234363

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013544766A Expired - Fee Related JP5654142B2 (ja) 2010-12-17 2011-12-15 ネットワーク・スイッチを構成するための方法
JP2014234870A Active JP5913536B2 (ja) 2010-12-17 2014-11-19 ネットワーク・スイッチを構成するための方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013544766A Expired - Fee Related JP5654142B2 (ja) 2010-12-17 2011-12-15 ネットワーク・スイッチを構成するための方法

Country Status (4)

Country Link
US (1) US9001827B2 (ja)
EP (1) EP2652914A4 (ja)
JP (2) JP5654142B2 (ja)
WO (1) WO2012082988A1 (ja)

Families Citing this family (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103283189A (zh) * 2010-12-27 2013-09-04 日本电气株式会社 通信系统和通信方法
CN103283187B (zh) * 2010-12-28 2019-05-10 日本电气株式会社 信息系统、控制装置及虚拟网络的提供方法
ES2706416T3 (es) * 2011-01-13 2019-03-28 Nec Corp Sistema de red y método de enrutamiento
JP5652630B2 (ja) * 2011-04-04 2015-01-14 日本電気株式会社 ネットワークシステム、スイッチ、及び接続端末検知方法
US8743885B2 (en) 2011-05-03 2014-06-03 Cisco Technology, Inc. Mobile service routing in a network environment
RU2562760C2 (ru) * 2011-05-30 2015-09-10 Нек Корпорейшн Система управления маршрутом связи и способ управления маршрутом связи
US9215184B2 (en) * 2011-10-17 2015-12-15 Hewlett-Packard Development Company, L.P. Methods of and apparatus for managing non-congestion-controlled message traffic in a datacenter
EP2769512A4 (en) * 2011-10-21 2015-06-03 Nec Corp CONTROL APPARATUS FOR ROUTING APPARATUS, CONTROL METHOD FOR APPARATUS FOR ROUTING, COMMUNICATION SYSTEM, AND PROGRAM
US8681794B2 (en) * 2011-11-30 2014-03-25 Broadcom Corporation System and method for efficient matching of regular expression patterns across multiple packets
US8711860B2 (en) 2011-12-22 2014-04-29 Telefonaktiebolaget L M Ericsson (Publ) Controller for flexible and extensible flow processing in software-defined networks
US8521905B2 (en) 2011-12-22 2013-08-27 Telefonaktiebolaget L M Ericsson (Publ) System for flexible and extensible flow processing in software-defined networks
US8718064B2 (en) * 2011-12-22 2014-05-06 Telefonaktiebolaget L M Ericsson (Publ) Forwarding element for flexible and extensible flow processing software-defined networks
KR101887581B1 (ko) * 2011-12-26 2018-08-14 한국전자통신연구원 플로우 기반의 패킷 전송 장치 및 그것의 패킷 처리 방법
JP6011632B2 (ja) * 2012-02-29 2016-10-19 日本電気株式会社 通信装置、通信方法、通信システムおよびプログラム
US9264295B1 (en) * 2012-03-02 2016-02-16 Big Switch Networks, Inc. Systems and methods for forwarding broadcast network packets with a controller
US9571523B2 (en) * 2012-05-22 2017-02-14 Sri International Security actuator for a dynamically programmable computer network
KR20150016314A (ko) * 2012-06-14 2015-02-11 닛본 덴끼 가부시끼가이샤 통신 시스템, 제어 장치, 통신 방법, 제어 방법 및 프로그램
US9736025B2 (en) * 2012-07-11 2017-08-15 Ca, Inc. Determining service dependencies for configuration items
EP2897332A4 (en) * 2012-09-11 2016-04-20 Nec Corp CONTROL, COMMUNICATION SYSTEM, COMMUNICATION PROCESS AND PROGRAM
US9537793B2 (en) * 2012-10-10 2017-01-03 Cisco Technology, Inc. Ensuring any-to-any reachability with opportunistic layer 3 forwarding in massive scale data center environments
FI20126105L (fi) * 2012-10-25 2014-04-26 Tellabs Oy Menetelmä ja ohjauslaite ohjelmallisesti määriteltävän verkon konfiguroimiseksi
WO2014067065A1 (zh) * 2012-10-30 2014-05-08 华为技术有限公司 实现隧道处理的方法、装置和系统
BR112015010997A2 (pt) * 2012-11-28 2017-07-11 Nec Corp aparelho de comutação, método e programa de gerenciamento de configuração de vlan
US9923831B2 (en) * 2012-11-29 2018-03-20 Futurewei Technologies, Inc. Packet prioritization in a software-defined network implementing OpenFlow
FI20135013L (fi) * 2013-01-04 2014-07-05 Tellabs Oy Menetelmä ja ohjauslaitteisto ohjelmallisesti määriteltävän verkon konfiguroimiseksi
RU2598317C1 (ru) * 2013-01-21 2016-09-20 Нек Корпорейшн Система связи, устройство управления и способ управления топологией сети
US8897138B2 (en) * 2013-01-22 2014-11-25 Gigamon Inc. Systems and methods for configuring a network switch appliance
US9374285B1 (en) 2013-02-07 2016-06-21 Big Switch Networks, Inc. Systems and methods for determining network topologies
JP5860423B2 (ja) * 2013-02-18 2016-02-16 日本電信電話株式会社 キャリア網仮想化システム及び方法
US9253035B2 (en) 2013-02-21 2016-02-02 International Business Machines Corporation Reducing switch state size in flow-based networks
CN104022953B (zh) * 2013-02-28 2018-02-09 新华三技术有限公司 基于开放流Openflow的报文转发方法和装置
US9917766B2 (en) 2013-03-15 2018-03-13 Hewlett Packard Enterprise Development Lp Loop-free hybrid network
US9130872B2 (en) * 2013-03-15 2015-09-08 Cisco Technology, Inc. Workload based service chain insertion in a network environment
EP2782291A1 (en) 2013-03-20 2014-09-24 Wolting Holding B.V. Compiler for and method of software defined networking
JP2016519487A (ja) 2013-03-20 2016-06-30 ヴォルティング ホールディング ベー.フェー. コンパイラとソフトウェア定義されたネットワークのための方法
CN104079492B (zh) * 2013-03-28 2017-10-10 华为技术有限公司 一种OpenFlow网络中流表配置的方法、装置和系统
FI20135413L (fi) * 2013-04-23 2014-10-24 Tellabs Oy Menetelmä ja laite ohjelmallisesti määriteltävän verkon verkkoelementti konfigurointijärjestelmän optimoimiseksi
US9794379B2 (en) 2013-04-26 2017-10-17 Cisco Technology, Inc. High-efficiency service chaining with agentless service nodes
US9661405B2 (en) * 2013-05-10 2017-05-23 Huawei Technologies Co., Ltd. System and method for photonic switching
FI20135519A (fi) * 2013-05-15 2014-11-16 Tellabs Oy Ohjelmallisesti määriteltävän verkon verkkoelementti
JP6236221B2 (ja) * 2013-05-22 2017-11-22 富士通株式会社 管理プログラム、管理装置、およびネットワークシステム
KR102153585B1 (ko) * 2013-06-24 2020-09-09 한국전자통신연구원 네트워크 기능 가상화 장치 및 방법
US9755963B2 (en) * 2013-07-09 2017-09-05 Nicira, Inc. Using headerspace analysis to identify flow entry reachability
EP3028401A1 (en) * 2013-08-01 2016-06-08 Hewlett-Packard Development Company, L.P. Address resolution rewriting
KR101378313B1 (ko) * 2013-09-12 2014-03-27 주식회사 파이오링크 오픈플로우(OpenFlow)를 이용하여 사용자 단말 장치와 로컬 호스트 사이의 통신을 지원하기 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능한 기록 매체
WO2015066878A1 (zh) * 2013-11-07 2015-05-14 华为技术有限公司 Sdn网络中的控制设备和控制方法
EP2892182B1 (en) * 2013-12-16 2019-06-12 Coriant Oy A network element for a data transfer network
CN105247814B (zh) * 2013-12-30 2018-09-21 华为技术有限公司 管理网络设备的物理位置的方法和装置
US9344337B2 (en) 2014-03-13 2016-05-17 Cisco Technology, Inc. Service node originated service chains in a network environment
US9419855B2 (en) 2014-03-14 2016-08-16 Nicira, Inc. Static routes for logical routers
US9647883B2 (en) 2014-03-21 2017-05-09 Nicria, Inc. Multiple levels of logical routers
CN105191212B (zh) * 2014-03-25 2019-03-26 华为技术有限公司 一种数据流统计方法、系统和装置
JP6287443B2 (ja) * 2014-03-26 2018-03-07 富士通株式会社 制御装置、及びそのテーブル作成方法
US9454575B2 (en) 2014-03-28 2016-09-27 Hewlett Packard Enterprise Development Lp Processing a metric of a component of a software-defined network
CN105379203B (zh) * 2014-04-21 2018-12-07 华为技术有限公司 隧道类型的选择方法及装置
TWI531908B (zh) * 2014-04-24 2016-05-01 A method of supporting virtual machine migration with Software Defined Network (SDN)
US9479443B2 (en) 2014-05-16 2016-10-25 Cisco Technology, Inc. System and method for transporting information to services in a network environment
US9379931B2 (en) 2014-05-16 2016-06-28 Cisco Technology, Inc. System and method for transporting information to services in a network environment
WO2015183311A1 (en) * 2014-05-30 2015-12-03 Hewlett-Packard Development Company, L.P. Determine edge switch based on network traffic
US9553803B2 (en) * 2014-06-30 2017-01-24 Nicira, Inc. Periodical generation of network measurement data
CN105684382A (zh) * 2014-08-11 2016-06-15 华为技术有限公司 报文的控制方法、交换机及控制器
US9590906B2 (en) * 2014-09-24 2017-03-07 Cisco Technology, Inc. Network resource sharing for routing and forwarding information
US10417025B2 (en) 2014-11-18 2019-09-17 Cisco Technology, Inc. System and method to chain distributed applications in a network environment
US9660909B2 (en) 2014-12-11 2017-05-23 Cisco Technology, Inc. Network service header metadata for load balancing
USRE48131E1 (en) 2014-12-11 2020-07-28 Cisco Technology, Inc. Metadata augmentation in a service function chain
US9614789B2 (en) * 2015-01-08 2017-04-04 Futurewei Technologies, Inc. Supporting multiple virtual switches on a single host
US9787605B2 (en) 2015-01-30 2017-10-10 Nicira, Inc. Logical router with multiple routing components
US9813323B2 (en) * 2015-02-10 2017-11-07 Big Switch Networks, Inc. Systems and methods for controlling switches to capture and monitor network traffic
US10044676B2 (en) 2015-04-03 2018-08-07 Nicira, Inc. Using headerspace analysis to identify unneeded distributed firewall rules
WO2016175873A1 (en) * 2015-04-29 2016-11-03 Hewlett Packard Enterprise Development Lp Client communications in multi-tenant data center networks
US9762402B2 (en) 2015-05-20 2017-09-12 Cisco Technology, Inc. System and method to facilitate the assignment of service functions for service chains in a network environment
CN106302184B (zh) * 2015-06-12 2020-02-14 华为技术有限公司 一种流表项下发方法、流表项保存方法、相关装置和系统
US9553891B1 (en) * 2015-07-27 2017-01-24 Bank Of America Corporation Device blocking tool
US10230629B2 (en) 2015-08-11 2019-03-12 Nicira, Inc. Static route configuration for logical router
US10057157B2 (en) 2015-08-31 2018-08-21 Nicira, Inc. Automatically advertising NAT routes between logical routers
EP3154225B1 (en) * 2015-10-08 2018-12-26 ADVA Optical Networking SE System and method of assessing latency of forwarding data packets in virtual environment
US10095535B2 (en) 2015-10-31 2018-10-09 Nicira, Inc. Static route types for logical routers
US10305725B2 (en) * 2015-10-31 2019-05-28 Nicira, Inc. Local controller agent for converting logical pipeline data
US11044203B2 (en) 2016-01-19 2021-06-22 Cisco Technology, Inc. System and method for hosting mobile packet core and value-added services using a software defined network and service chains
CN107196891B (zh) 2016-03-15 2020-02-14 华为技术有限公司 数据流转发异常检测方法、控制器和系统
US10187306B2 (en) 2016-03-24 2019-01-22 Cisco Technology, Inc. System and method for improved service chaining
US10931793B2 (en) 2016-04-26 2021-02-23 Cisco Technology, Inc. System and method for automated rendering of service chaining
US10958481B2 (en) 2016-04-29 2021-03-23 Hewlett Packard Enterprise Development Lp Transforming a service packet from a first domain to a second domain
US10153973B2 (en) * 2016-06-29 2018-12-11 Nicira, Inc. Installation of routing tables for logical router in route server mode
TW201803314A (zh) 2016-06-29 2018-01-16 日本電氣股份有限公司 伺服器、開關、通信系統、通信方法及記錄媒體
US10419550B2 (en) 2016-07-06 2019-09-17 Cisco Technology, Inc. Automatic service function validation in a virtual network environment
US10320664B2 (en) 2016-07-21 2019-06-11 Cisco Technology, Inc. Cloud overlay for operations administration and management
US10218616B2 (en) 2016-07-21 2019-02-26 Cisco Technology, Inc. Link selection for communication with a service function cluster
US10225270B2 (en) 2016-08-02 2019-03-05 Cisco Technology, Inc. Steering of cloned traffic in a service function chain
US10218593B2 (en) 2016-08-23 2019-02-26 Cisco Technology, Inc. Identifying sources of packet drops in a service function chain environment
US10361969B2 (en) 2016-08-30 2019-07-23 Cisco Technology, Inc. System and method for managing chained services in a network environment
US10454758B2 (en) 2016-08-31 2019-10-22 Nicira, Inc. Edge node cluster network redundancy and fast convergence using an underlay anycast VTEP IP
US10341236B2 (en) 2016-09-30 2019-07-02 Nicira, Inc. Anycast edge service gateways
US10225187B2 (en) 2017-03-22 2019-03-05 Cisco Technology, Inc. System and method for providing a bit indexed service chain
US10587479B2 (en) 2017-04-02 2020-03-10 Nicira, Inc. GUI for analysis of logical network modifications
US10884807B2 (en) 2017-04-12 2021-01-05 Cisco Technology, Inc. Serverless computing and task scheduling
US10257033B2 (en) 2017-04-12 2019-04-09 Cisco Technology, Inc. Virtualized network functions and service chaining in serverless computing infrastructure
US10178646B2 (en) 2017-04-12 2019-01-08 Cisco Technology, Inc. System and method to facilitate slice management in a network environment
US10333855B2 (en) 2017-04-19 2019-06-25 Cisco Technology, Inc. Latency reduction in service function paths
US10554689B2 (en) 2017-04-28 2020-02-04 Cisco Technology, Inc. Secure communication session resumption in a service function chain
US10735275B2 (en) 2017-06-16 2020-08-04 Cisco Technology, Inc. Releasing and retaining resources for use in a NFV environment
US10798187B2 (en) 2017-06-19 2020-10-06 Cisco Technology, Inc. Secure service chaining
CN109218059B (zh) * 2017-07-06 2021-09-14 华为技术有限公司 一种实现故障检测的方法、设备和系统
US10397271B2 (en) 2017-07-11 2019-08-27 Cisco Technology, Inc. Distributed denial of service mitigation for web conferencing
US10673698B2 (en) 2017-07-21 2020-06-02 Cisco Technology, Inc. Service function chain optimization using live testing
US10797959B2 (en) * 2017-08-11 2020-10-06 Quanta Computer Inc. LLDP based rack management controller
US11063856B2 (en) 2017-08-24 2021-07-13 Cisco Technology, Inc. Virtual network function monitoring in a network function virtualization deployment
US10791065B2 (en) 2017-09-19 2020-09-29 Cisco Technology, Inc. Systems and methods for providing container attributes as part of OAM techniques
US11018981B2 (en) 2017-10-13 2021-05-25 Cisco Technology, Inc. System and method for replication container performance and policy validation using real time network traffic
US10541893B2 (en) 2017-10-25 2020-01-21 Cisco Technology, Inc. System and method for obtaining micro-service telemetry data
WO2019111154A1 (en) * 2017-12-04 2019-06-13 Telefonaktiebolaget Lm Ericsson (Publ) Network link verification
US10666612B2 (en) 2018-06-06 2020-05-26 Cisco Technology, Inc. Service chains for inter-cloud traffic
KR101982230B1 (ko) * 2018-07-06 2019-08-28 고려대학교 산학협력단 프로그래밍 가능한 네트워크 가상화에서의 플로우 룰 가상화 장치 및 그 방법
CN109194517B (zh) * 2018-09-20 2022-03-25 郑州云海信息技术有限公司 一种用于对虚拟交换机部件进行初始化的方法和装置
US10931560B2 (en) 2018-11-23 2021-02-23 Vmware, Inc. Using route type to determine routing protocol behavior
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
CN110365663A (zh) * 2019-06-28 2019-10-22 北京淇瑀信息科技有限公司 一种隔离集群之间的访问方法、装置及电子设备
CN112491743A (zh) * 2020-11-02 2021-03-12 锐捷网络股份有限公司 一种交换芯片的配置方法及装置
CN115002018B (zh) * 2022-08-03 2022-10-14 苏州思萃工业互联网技术研究所有限公司 优化分布式边缘网关的方法及分布式边缘网关系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060168279A1 (en) * 2005-01-24 2006-07-27 Ki-Beom Park Apparatus and method for providing multi protocol label switching (MPLS)-based virtual private network (VPN)
JP2006245896A (ja) * 2005-03-02 2006-09-14 Nippon Telegr & Teleph Corp <Ntt> ネットワーク制御サーバ、ユーザ端末収容ノード、通信ネットワークおよびネットワーク制御プログラム
US20100316054A1 (en) * 2008-03-14 2010-12-16 Huawei Technologies Co., Ltd. Method, system and apparatus for sending mapping information

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020166B2 (en) 2000-10-03 2006-03-28 Broadcom Corporation Switch transferring data using data encapsulation and decapsulation
CN1757210A (zh) * 2003-01-15 2006-04-05 希尔纳公司 用于在光网络上传输分组数据的方法和装置
US7349981B2 (en) * 2003-12-18 2008-03-25 Intel Corporation System, apparatus, and method for string matching
KR20050076176A (ko) 2004-01-19 2005-07-26 삼성전자주식회사 IPv6 MANET망에서 외부망과의 통신을 위한 시스템및 방법
US8116312B2 (en) * 2006-02-08 2012-02-14 Solarflare Communications, Inc. Method and apparatus for multicast packet reception
CN1997010B (zh) * 2006-06-28 2010-08-18 华为技术有限公司 一种包过滤的实现方法
US20080189769A1 (en) 2007-02-01 2008-08-07 Martin Casado Secure network switching infrastructure
US7729291B2 (en) * 2007-10-19 2010-06-01 Packetexchange, Inc. System and method for reducing traffic in a wide area Ethernet network
JP5141512B2 (ja) * 2008-11-27 2013-02-13 富士通株式会社 通信制御方法及び伝送装置
WO2010090182A1 (ja) * 2009-02-03 2010-08-12 日本電気株式会社 アプリケーションスイッチシステム、及びアプリケーションスイッチ方法
CN102349268B (zh) * 2009-03-09 2015-11-25 日本电气株式会社 OpenFlow通信系统和OpenFlow通信方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060168279A1 (en) * 2005-01-24 2006-07-27 Ki-Beom Park Apparatus and method for providing multi protocol label switching (MPLS)-based virtual private network (VPN)
JP2006211661A (ja) * 2005-01-24 2006-08-10 Samsung Electronics Co Ltd Mpls基盤のvpn提供装置及びvpn提供方法
JP2006245896A (ja) * 2005-03-02 2006-09-14 Nippon Telegr & Teleph Corp <Ntt> ネットワーク制御サーバ、ユーザ端末収容ノード、通信ネットワークおよびネットワーク制御プログラム
US20100316054A1 (en) * 2008-03-14 2010-12-16 Huawei Technologies Co., Ltd. Method, system and apparatus for sending mapping information

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KOK-KIONG YAP ET.AL.: "The Stanford OpenRoads Deployment", 4TH ACM INTERNATIONAL WORKSHOP ON WIRELESS NETWORK TESTBEDS, EXPERIMENTAL EVALUATION AND CHARACTERIZ, JPN6015037832, September 2009 (2009-09-01), pages 59 - 66, XP058112061, ISSN: 0003158662, DOI: 10.1145/1614293.1614304 *

Also Published As

Publication number Publication date
JP5913536B2 (ja) 2016-04-27
JP5654142B2 (ja) 2015-01-14
US9001827B2 (en) 2015-04-07
EP2652914A4 (en) 2016-09-28
US20120155467A1 (en) 2012-06-21
EP2652914A1 (en) 2013-10-23
JP2014506409A (ja) 2014-03-13
WO2012082988A1 (en) 2012-06-21

Similar Documents

Publication Publication Date Title
JP5913536B2 (ja) ネットワーク・スイッチを構成するための方法
US9813323B2 (en) Systems and methods for controlling switches to capture and monitor network traffic
US9185056B2 (en) System and methods for controlling network traffic through virtual switches
US8923296B2 (en) System and methods for managing network packet forwarding with a controller
US9548896B2 (en) Systems and methods for performing network service insertion
CN106797351B (zh) 使用控制器执行逻辑网络转发的系统和方法
US8416796B2 (en) Systems and methods for managing virtual switches
US10270645B2 (en) Systems and methods for handling link aggregation failover with a controller
US9413614B1 (en) Systems and methods for determining network topologies
US9008080B1 (en) Systems and methods for controlling switches to monitor network traffic
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
US9356838B1 (en) Systems and methods for determining network forwarding paths with a controller
US9264295B1 (en) Systems and methods for forwarding broadcast network packets with a controller
US10873476B2 (en) Networks with multiple tiers of switches

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160401

R150 Certificate of patent or registration of utility model

Ref document number: 5913536

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250