"コントローラサーバを用いて、ネットワーク内のネットワークスイッチにフローテーブルエントリを与える方法であって、前記ネットワークスイッチの各々は、パケットフィールドを前記フローテーブルエントリのフィールドと比較することによりパケットを処理し、前記方法は、前記コントローラサーバによって、前記ネットワークスイッチの幾つかをエッジネットワークスイッチとしてカテゴリ化し、前記ネットワークスイッチの幾つかを非エッジスイッチとしてカテゴリ化するステップと、前記コントローラサーバによって、異なるフローテーブルエントリを、非エッジスイッチとしてカテゴリ化された前記ネットワークスイッチではなく、エッジネットワークスイッチとしてカテゴリ化された前記ネットワークスイッチに分散させるステップと、を含むことを特徴とする方法。前記フローテーブルエントリを分散させるステップは、前記フローテーブルエントリを、ネットワーク接続上で前記コントローラサーバから、前記ネットワークスイッチ上の対応するコントローラクライアントに分散させるステップを含むことを特徴とする、請求項1に記載の方法。前記フローテーブルエントリを分散させるステップは、前記コントロールサーバにおけるネットワークプロトコルスタックを用いて、前記ネットワーク接続上で、前記コントローラクライアントにおける対応するネットワークプロトコルスタックと通信するステップを含むことを特徴とする、請求項2に記載の方法。前記フローテーブルエントリを分散させるステップは、完全なフィールドのみを有するフローテーブルエントリを前記エッジスイッチに分散させて、少なくとも幾つかのワイルドカード指定されたフィールドを有するフローテーブルエントリを前記非エッジスイッチに分散させるステップを含むことを特徴とする、請求項3に記載の方法。前記フローテーブルエントリの各々は、送信元インターネットプロトコルIPアドレスフィールドを含み、前記エッジスイッチについての前記フローテーブルエントリの各々の前記送信元IPアドレスフィールドにはワイルドカードがなく、前記非エッジスイッチについての前記フローテーブルエントリの各々の前記送信元IPアドレスフィールドは、少なくとも幾つかのワイルドカード指定を含むことを特徴とする、請求項3に記載の方法。前記ネットワークスイッチはポートを含み、前記フローテーブルエントリは、前記ネットワークスイッチがパケットを前記ポートのどれに転送すべきかを指定するアクションフィールドを含むことを特徴とする、請求項1に記載の方法。第1の組のエンドホスト及びネットワークスイッチと関連した第1のネットワークドメインと、第2の組のエンドホスト及びネットワークスイッチと関連した第2のネットワークドメインと、前記第1のネットワークドメイン及び前記第2のネットワークドメイン内の前記ネットワークスイッチに対してフローテーブルエントリを与えるコントローラサーバと、ローカルコアネットワークとを有するネットワークを動作させる方法であって、前記ネットワークスイッチの各々は、パケットフィールドを前記フローテーブルエントリのフィールドと比較することによってパケットを処理し、カプセル化エンジンは前記第1のネットワークドメイン内の前記ネットワークスイッチの1つの上に実装され、カプセル化解除エンジンは前記第2のドメイン内の前記ネットワークスイッチの1つの上に実装され、前記方法は、前記制御サーバによって、前記第1のドメイン及び前記第2のドメイン内の前記ネットワークスイッチに、パケットを前記第1のネットワークドメイン内の第1のエンドホストから前記カプセル化エンジンに転送し、カプセル化されたパケットを、前記ローカルコアネットワークを通じて前記カプセル化エンジンから前記カプセル化解除エンジンに転送し、かつ、パケットを前記カプセル化解除エンジンから前記第2のドメイン内の第2のエンドホストに転送するように指示する、前記第1のドメイン内の前記ネットワークスイッチ及び前記第2のドメイン内の前記ネットワークスイッチについてのフローテーブルエントリを生成するステップを含むことを特徴とする方法。前記ローカルコアネットワークは、前記コントローラサーバからの前記フローテーブルエントリによって制御されず、前記第1のネットワークドメイン内の前記ネットワークスイッチの少なくとも所与のものが、前記カプセル化エンジンが実装される前記ネットワークスイッチと前記ローカルコアネットワークとの間に置かれ、前記フローテーブルエントリを生成するステップは、前記ネットワークスイッチに、前記カプセル化されたパケットを、前記ネットワークスイッチの所与のものを通じて転送するように指示するフローテーブルエントリを生成するステップを含むことを特徴とする、請求項7に記載の方法。前記ローカルコアは、前記コントローラサーバからの前記フローテーブルエントリをロードできないネットワークスイッチを含み、前記方法は、前記コントローラサーバからの前記フローテーブルエントリを前記ネットワークスイッチにおける対応するコントローラクライアントに与えるステップをさらに含むことを特徴とする、請求項8に記載の方法。前記フローテーブルエントリを与えるステップは、前記コントローラサーバ及び前記コントローラクライアントにおけるネットワークプロトコルスタックを用いて、ネットワーク接続上で前記フローテーブルエントリを伝達することを含むことを特徴とする、請求項9に記載の方法。前記ネットワークプロトコルスタックを用いるステップは、伝送制御プロトコルTCP/インターネットプロトコルIPスタックを用いて、前記フローテーブルエントリを伝達することを含むことを特徴とする、請求項10に記載の方法。前記フローテーブルエントリは、ヘッダフィールド及びアクションフィールドを含み、前記フローテーブルエントリを生成するステップは、前記ネットワークスイッチに、前記パケットを前記ネットワークスイッチの少なくとも所与のものを通じて2度転送するように指示するフローテーブルエントリを生成するステップを含むことを特徴とする、請求項7に記載の方法。前記カプセル化エンジンによって、マルチプロトコルラベルスイッチングを用いて、前記カプセル化されたパケットを生成するステップをさらに含むことを特徴とする、請求項7に記載の方法。前記カプセル化エンジンによって、総称ルーティングカプセル化を用いて、前記カプセル化されたパケットを生成するステップをさらに含むことを特徴とする、請求項7に記載の方法。デフォルトのインターネットゲートウェイによりインターネットに結合されたネットワークを動作させるための方法であって、前記ネットワークはエンドホストを前記デフォルトインターネットゲートウェイに結合するネットワークスイッチを含み、前記方法は、ワイルドカード指定されていない物理ポートのエントリを含むフローテーブルエントリを前記ネットワークスイッチ内のエッジスイッチに与えるステップと、少なくとも所与のフローテーブルエントリを前記ネットワークスイッチ内の非エッジスイッチに与えるステップと、を含み、前記非エッジスイッチは、前記デフォルトのインターネットゲートウェイに接続されており、前記所与のフローテーブルエントリは、ワイルドカード指定された物理ポートフィールドを含み、かつ、部分的にワイルドカード指定されて、前記非エッジスイッチに、パケットを前記デフォルトのインターネットゲートウェイに転送するように指示する宛先インターネットプロトコルアドレスフィールドを有することを特徴とする方法。前記ネットワークスイッチの各々は、コントローラサーバと通信するコントローラクライアントを含み、前記フローテーブルエントリを前記エッジスイッチに与えるステップは、前記コントローラサーバ及び前記コントローラクライアントにおけるネットワークプロトコルスタックを用いて、ネットワーク接続上で前記フローテーブルエントリを伝達することを含むことを特徴とする、請求項15に記載の方法。前記ネットワークスイッチの各々において、受け取ったパケットフィールドを、そのネットワークスイッチに与えられた前記フローテーブルエントリのフィールドと比較するステップをさらに含むことを特徴とする、請求項16に記載の方法。コントローラサーバを用いて、ネットワーク内のネットワークスイッチにフローテーブルエントリを与える方法であって、前記ネットワークスイッチの各々は、パケットフィールドを前記フローテーブルエントリのフィールドと比較し、一致が検出された場合には対応するアクションを取ることによってパケットを処理し、エンドホストは前記ネットワークスイッチに接続されており、前記方法は、前記コントローラサーバによって、前記ネットワークスイッチの第1のものが、前記エンドホストに接続された入力出力ポートを有するエッジスイッチであり、前記ネットワークスイッチの第2のものが前記ネットワークスイッチの前記第1のものに接続された入力出力ポートを有する集約スイッチであると判断するステップと、前記ネットワークスイッチの第1のものがエッジスイッチであり、前記ネットワークスイッチの前記第2のものが集約スイッチであるとの判断に応答して、前記コントローラサーバを用いて、前記第1のネットワークスイッチに第1のフローテーブルエントリを与え、前記第2のネットワークスイッチに第2のフローテーブルエントリを与えるステップと、を含み、前記第1のフローテーブルエントリは、ワイルドカード指定のない物理ポートフィールドを含み、前記第2のフローテーブルエントリはワイルドカード指定を有する物理ポートフィールドを含むことを特徴とする方法。前記第1のネットワークスイッチに前記第1のフローテーブルエントリを与えるステップは、前記第1のネットワークスイッチに、ワイルドカード指定のないインターネットプロトコル送信元アドレスフィールドを含むフローテーブルエントリを与えることを含むことを特徴とする、請求項18に記載の方法。前記第2のネットワークスイッチに前記第2のフローテーブルエントリを与えるステップは、前記第2のネットワークスイッチに、ワイルドカード指定されたインターネットプロトコル送信元アドレスフィールドを含むフローテーブルエントリを与えるステップを含むことを特徴とする、請求項19に記載の方法。前記第1のネットワークスイッチはコントローラクライアントを含み、前記第2のネットワークスイッチはコントローラクライアントを含み、前記コントローラサーバは、ネットワークプロトコルスタックを用いて、ネットワーク接続上で前記コントローラクライアントと通信することを特徴とする、請求項20に記載の方法。前記ネットワークスイッチの第3のものが、エンドホストに接続され、かつ、前記第2のスイッチに結合され、前記方法は、前記第3のネットワークスイッチに、ワイルドカード指定されたインターネットプロトコル送信元アドレスフィールドと、ワイルドカード指定のない物理ポートフィールドを含む第3のフローテーブルエントリを与えるステップを含むことを特徴とする、請求項21に記載の方法。前記第1、第2、及び第3のネットワークスイッチの前記フローテーブルエントリに応答して、パケットを、前記第1、第2、及び第3のネットワークスイッチを通じて、前記第1のネットワークスイッチに接続された第1のエンドホストから、前記第3のネットワークスイッチに接続された第2のエンドホストに転送するステップをさらに含むことを特徴とする請求項22に記載の方法。前記第1のネットワークスイッチに前記第1のフローテーブルエントリを与えるステップは、前記第1のネットワークスイッチに、ワイルドカード指定のないイーサネット送信元アドレスフィールドを含むフローテーブルエントリを与えるステップを含むことを特徴とする、請求項18に記載の方法。前記第1のネットワークスイッチに前記第1のフローテーブルエントリを与えるステップは、前記第1のネットワークスイッチに、ワイルドカード指定のない仮想ローカルエリアネットワークタグを含むフローテーブルエントリを与えるステップを含むことを特徴とする、請求項18に記載の方法。前記第1のネットワークスイッチに前記第1のフローテーブルエントリを与えるステップは、前記第1のネットワークスイッチに、ワイルドカード指定のないインターネットプロトコル送信元アドレス、ワイルドカード指定のないイーサネット送信元アドレス、及びワイルドカード指定のない仮想ローカルエリアネットワークタグからなる群から選択されるワイルドカード指定のないアドレスを含むフローテーブルエントリを与えるステップを含み、前記第2のネットワークスイッチに前記第2のフローテーブルエントリを与えるステップは、前記第2のネットワークスイッチに、所与のアドレスを含むフローテーブルエントリを与えるステップと、パケットフィールドが前記所与のアドレスと一致することを検出したことに応答して、前記第2のネットワークスイッチに前記第2のネットワークスイッチが取るアクションを与えるステップを含むことを特徴とする、請求項18に記載の方法。従って、ネットワークスイッチを動作させるための改良された構成を提供できることが望ましい。フローテーブルを用いて、ネットワークスイッチを構成することができる。フローテーブルエントリは、ヘッダフィールドと、関連したアクションとを含むことができる。パケットがネットワークスイッチにより受信されると、ネットワークスイッチは、パケットフィールドをフローテーブルエントリのフィールドと比較することができる。ネットワークスイッチは、一致が検出された場合に適切なアクションを取ることができる。例えば、ネットワークスイッチは、パケットを適切なスイッチポートに転送することができる。コントローラサーバを用いて、ネットワークスイッチを制御することができる。ネットワークスイッチの各々は、コントローラクライアントを含むことができる。コントローラサーバ及びコントローラクライアントは、ネットワークプロトコルスタックを用いて、ネットワーク接続上で通信することができる。例えば、コントローラサーバは、ネットワークスイッチに、所望のパケット処理動作を行うように指示するフローテーブルエントリを、コントローラクライアントに分散させることができる。コントローラサーバは、ネットワークのトポロジーを判断し、かつ、ネットワークスイッチの容量及び他のネットワークスイッチの能力についての情報を集めることができる。この情報に基づいて、コントローラサーバは、スイッチに、パケットを、ネットワークを通じて所望の経路に沿って転送するように指示する、ネットワークスイッチについてのフローテーブルを生成することができる。ネットワークコアに近いスイッチについてのフローテーブルエントリには、ネットワークエッジに近いスイッチより多くのワイルドカード指定wildcardingを与え、ネットワークコアに近いスイッチの容量に追いつかなくなることを回避することができる。ネットワークエッジにおけるスイッチについてのフローテーブルエントリが、ネットワークコアに近いスイッチより少ないワイルドカード指定を有することを保証することによって、ワイルドカード指定の存在下で、パケット転送機能を保つことができる。幾つかのネットワークにおいては、コアスイッチのようなスイッチが、コントローラサーバが生成したフローテーブルエントリによって構成されていないローカルコアネットワークを形成することができる。ローカルコアネットワークは、フローテーブルを用いて構成されるスイッチのネットワークにおけるドメインの間に置くことができる。従って、ローカルコアネットワークは、ネットワークドメインを互いに隔離することができる。このタイプのネットワークにおいては、ローカルコアネットワークを通じて、トラフィックを、1つの隔離ドメインから他方の隔離ドメインに通すことができる。トラフィックは、パケットをカプセル化する1つのドメインにおけるカプセル化encapsulationエンジンと、パケットをカプセル化解除する他方のドメインにおける対応するカプセル化解除deencapsulationエンジンとを用いて通すことができる。カプセル化エンジン及びカプセル化解除エンジンを実装するのに用いられるネットワークスイッチは、隔離されたネットワークドメイン内の潜在的に任意の位置におけるネットワークスイッチ上に配置することができる。コントローラサーバは、これらスイッチの位置を発見し、ネットワークスイッチに、カプセル化エンジン及びカプセル化解除エンジンを含む適切な経路に沿ってトラフィックを転送するように指示するフローテーブルエントリを生成することができる。本発明のさらなる特徴、その性質及び種々の利点は、添付図面及び以下の好ましい実施形態の詳細な説明からより明らかになるであろう。インターネット、並びにインターネットに結合されたローカル及び地域ネットワークのようなネットワークは、パケットベースのスイッチに依存する。本明細書ではネットワークスイッチ、パケット処理システム、又はパケット転送システムと呼ばれることがあるこれらのスイッチは、アドレス情報に基づいてパケットを転送することができる。このように、パケット送信元により伝送されるデータパケットをパケット宛先に配信することができる。ネットワーク用語では、パケットの送信元source及び宛先destinationは、エンドホストと呼ばれることがある。エンドホストの例は、パーソナルコンピュータ、サーバ、及び他のコンピューティング機器である。ネットワークスイッチの能力は、比較的小型のイーサネットスイッチ及び無線アクセスポイントから、複数のラインカード、冗長電源、及びスーパバイザ能力を含む大型のラックベースのシステムまでの範囲に及ぶ。イーサネットスイッチは、ネットワークのエッジ付近で用いられることがあるので、エッジスイッチ又はトップオブラックスイッチと呼ばれることがある。より大型のラックベースのシステムは、多くの場合、ネットワークコア位置で用いられ、かつ、ルータ、コアルータ、又はコアスイッチと呼ばれることがある。幾つかのネットワーク環境においては、コアスイッチとエッジスイッチとの間にあるネットワークスイッチは、集約aggregationスイッチ又は分散スイッチと呼ばれる。集約スイッチ及びコアスイッチは、まとめて非エッジスイッチと呼ばれることもある。ネットワークが、複数のベンダーからの機器を含むのは珍しいことではない。一例として、大学又は会社構内のためのネットワークが、1つのベンダーからのコアスイッチと、別のベンダーからのエッジスイッチと、さらに別のベンダーからの集約スイッチとを含むことがある。異なるベンダーからのネットワークスイッチを相互接続して、パケット転送ネットワークを形成することができるが、それらのオペレーティングシステムと制御プロトコルとの間の非互換性のために、集中方式で管理するのは困難であり得る。これらの潜在的な非互換性は、共通のクロスプラットフォーム制御モジュール本明細書ではコントローラクライアントと呼ばれることがあるを各々のネットワークスイッチに組み込むことによって克服することができる。集中型クロスプラットフォームコントローラサーバは、それぞれのネットワークリンク上で、制御クライアントの各々と対話することができる。クロスプラットフォームコントローラサーバ、及び対応するコントローラクライアントを用いることにより、潜在的に異種のネットワークスイッチ機器の中央管理が可能になる。本明細書では一例として説明されることがある1つの例証となる構成の場合、集中制御は、図1のコントローラサーバ18のような1つ又はそれ以上のコントローラサーバにより提供される。コントローラサーバ18は、スタンドアロンコンピュータ上、コンピュータのクラスタ上、複数の位置の間に分散された一組のコンピュータ上、ネットワークスイッチ内に埋め込まれたハードウェア上、又は他の適切なコンピューティング機器12上に実装することができる。コントローラサーバ10は、単一のコンピュータ上の単一のプロセスとして実行することができ、又は、冗長性のために幾つかのホストにわたって分散させることができる。分散型構成の使用は、予期しないネットワーク分割例えば、2つの構内間のネットワークリンクが中断される状況に対して、ネットワーク10に弾力性を与える助けになり得る。分散型コントローラ構成において、コントローラノードは、コントローラ内のプロトコルを用いて、情報を交換することができる。例えば、新しいエンドホストが、第1のコントローラノードにのみ接続されたネットワークハードウェア例えば、スイッチに接続される場合、その第1のコントローラノードは、コントローラ内のプロトコルを用いて、他のコントローラノードに、新しいエンドホストの存在を知らせることができる。所望であれば、スイッチ又は他のネットワークコンポーネントを複数のコントローラノードに接続することができる。単一のコントローラサーバを用いて、関連したスイッチのネットワークを制御する構成が、本明細書において一例として説明されることがある。図1のコントローラサーバ18は、ネットワーク10のトポロジーについての情報を収集することができる。例えば、コントローラサーバ18は、ネットワークを通じて、リンク層検出プロトコルLinkLayerDiscoveryProtocol: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は、例えば、LinuxTCP/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ネットワーク接続上で、伝送制御プロトコルTransmissionControlProtocol、TCP又はユーザデータグラムプロトコルUserDatagramProtocol、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の物理ポートのアイデンティティ、イーサネット送信元アドレス、イーサネット宛先アドレス、イーサネットのタイプ、仮想ローカルエリアネットワークVLANid、VLAN優先順位、IP送信元アドレス、IP宛先アドレス、IPプロトコル、IPToSサービスのタイプビット、トランスポート送信元ポート/インターネット制御メッセージプロトコルICMPタイプ送信元TCPポートと呼ばれることもある、及びトランスポート宛先ポート/ICMPコード宛先TCPポートと呼ばれることがあるを含むことができる。所望であれば、他のフィールドを用いることができる。各々のフローテーブルエントリフローエントリは、スイッチが一致するパケットをどのように処理するかを命令する、ゼロ又はそれ以上のアクションと関連付けられる。転送アクションが存在しない場合、パケットはドロップされることが好ましい。パケットフィールドと、フローテーブルエントリのヘッダフィールドとの間に一致が検出された場合、スイッチ14が取り得るアクションは、以下のアクション、すなわち、転送例えば、着信インターフェースを含まない全てのインターフェース上でパケットを送信するためのALL、パケットをカプセル化し、コントローラサーバに送信するためのCONTROLLER、パケットをスイッチのローカルネットワーキングスタックに送信するためのLOCAL、フローテーブル28におけるアクションを行うためのTABLE、パケットを入力ポートの外に送信するためのIN_PORT、例えば、伝統的なレベル2、VLAN、及びレベル3の処理を用いて、スイッチによりサポートされるデフォルト転送経路によってパケットを処理するためのNORMAL、及び着信インターフェースを含まない最小スパニンングツリーに沿ってパケットをフラッドさせるためのFLOODを含むことができる。スイッチ14が取ることができる付加的なアクションは、ポートに取り付けられたキューを通してパケットを転送するためのエンキューアクション、及びドロップアクション例えば、指定されたアクションなしに、フローテーブルエントリと一致するパケットをドロップするためのを含む。フィールド修正Modify-fieldアクションをスイッチ14によりサポートすることもできる。取り得るフィールド修正アクションの例は、VLANIDの設定SetVLANID、VLAN優先順位の設定SetVLANpriority、VLANヘッダの除去StripVLANheader、イーサネット送信元アドレスMAC媒体アクセス制御アドレスの修正ModifyEthernetsourceMACaddressの修正、イーサネット宛先MACアドレスの修正ModifyEthernetdestinationMACaddress、IPv4送信元アドレスの修正ModifyIPv4sourceaddress、ModifyIPv4Tosビット、ModifyIPv4ToSビットの修正ModifyIPv4ToSbits、トランスポート宛先ポートの修正Modifytransportdestinationportを含む。図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’tcareワイルドカード文字でマーク付けされたフィールド。さらに他のフィールドは、部分的に完全なエントリすなわち、部分的にワイルドカード指定された部分アドレスを有することができる。幾つかのフィールドは、範囲を用いることができ例えば、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は、スイッチSWE1、SWC1及びSWE2に、スイッチSWE1、SWC1及びSWE2を通じて、ネットワーク経路上で、エンドホストEHAからエンドホストEHBにパケットを転送するのに適したフローテーブルエントリを与えることができる。図12のスイッチと関連した物理的な入力出力ポートが、スイッチを接続するリンクに隣接して示される。例えば、スイッチSWE1に隣接するラベル1は、エンドホストEHAがスイッチE1のポート1に接続されることを示す。スイッチSWE1に隣接するラベル2及びスイッチSWC1に隣接するラベル3は、スイッチE1のポート2がスイッチSWC1のポート3に接続されることなどを示す。1つの従来の手法を用いる場合、完全な一致規則が、ワイルドカードのないフローテーブルエントリの形で、ネットワーク内のスイッチに与えられる。エントリは、スイッチがどのように着信パケットを転送するかを指定する。図13は、このタイプの構成を用いて、図12のネットワークのスイッチを与えることができるフローテーブルエントリを示す。図13に示されるように、フローテーブルエントリE1は、スイッチSWE1に、着信パケットをポート1からポート2に転送するように指示する。フローテーブルエントリC1は、スイッチSWC1に、着信パケットをスイッチSWC1のポート3からポート4に転送するように指示する。スイッチSWE2は、フローテーブルエントリE2に従って、着信パケットをスイッチSWE2のポート5からポート6に転送する。従って、図13のフローテーブルエントリは、図12のネットワーク10において、パケットをエンドホストEHAからEHBに流れさせる。このタイプの手法は、フローテーブルエントリにおいてワイルドカードを使用することを必要とせず、このことは、フローテーブルエントリがスイッチの容量に追いつかなくなる状況をもたらし得る。例えば、スイッチC1のようなスイッチには、多数のエッジスイッチ及びエンドホストについてのフローテーブルエントリを与える必要があり得る。スイッチSWC1内に格納する必要があるフローテーブルエントリの数が、スイッチSWC1のハードウェア能力を上回ることがある。この問題に対処する従来の構成が、図14に示される。図14の構成では、フローテーブルエントリの選択されたフィールド内に、ワイルドカード指定が用いられる。例えば、図14の各フローテーブルエントリの物理ポートのフィールドが、ワイルドカードを有する。これにより、各エンドホストが取り付けられる物理ポートの識別情報に関係なく、スイッチに結合されたエンドホストの全てからのパケットが、同じく処理されることが可能になる。物理ポートの情報に基づいてパケットを異なるように処理する試みは行われないため及び、図14のテーブルにおける他のワイルドカード指定情報のため、必要とされるフローテーブルエントリの数は低減する。図14の従来の手法は、低減した数のフローテーブルエントリを用いて、パケットをエンドホストEHAからエンドホストEHBに転送するのを可能にするが、セキュリティが危険にさらされる。特に、スイッチは物理ポートの情報に基づいてトラフィックをブロックできないため、図14の手法は、攻撃者が物理ポートをスプーフィングspoofするのを可能にする。フローテーブルエントリからネットワークのスイッチ例えば、集約スイッチ及びコアスイッチに課される負担を減らしながら、所望のレベルのネットワーク性能を維持するために例えば、セキュリティを維持するために用いることができるスキームが、図15のフローテーブルエントリにより示される。フローテーブルエントリE1’、C1’及びE2’をネットワークの異なる部分にあるスイッチに与えることができる。例えば、エントリE1’及びE2’を、それぞれ図12のスイッチSWE1及びSWE2に用いることができ、エントリC1’をスイッチ14Cに用いることができる。フローテーブルエントリE1’、C1’及びE2’は、異なるレベルの制限性を有することができる。特に、ネットワークのコアにより近いスイッチ例えば、図12のコアスイッチSWC1についてのエントリC1’のための一致規則は、より多くのワイルドカード指定を有することができ、かつ、ネットワークのコアからより遠くにあるスイッチ例えば、エッジスイッチ14EについてのエントリE1’及びE2’のための一致規則より制限的でないものとすることができる。例えば、スイッチSWE1に、着信パケットをどのように転送するかを指示するのに用いることができる、エントリE1’のようなフローテーブルエントリは、物理ポートの入力フィールド及びIP送信元アドレスのフィールド内に特定の情報を含むことができ、一方、集約スイッチ又はコアスイッチSWC1に、着信パケットをどのように転送するかを指示するのに用いることができる、エントリC1’のようなフローテーブルエントリは、少なくとも幾つかのワイルドカード指定を含むことができる。図15の例の場合、エントリE1’スイッチSWE1により用いられる及びエントリE2’スイッチSWE2により用いられるの両方とも、完全なフィールドのみを含み、ワイルドカード指定を有するフィールドは含んでおらず、一方、エントリC1’は、完全にワイルドカード指定された複数のフィールドすなわち、物理入力ポート、IP送信元アドレス、宛先TCPポート、及び送信元TCPポートを含む。C1’エントリのようなエントリは、E1’及びE2’エントリのようなエントリより多くのワイルドカード指定を含むので、C1’エントリのようなエントリを用いることは、コアスイッチSWC1本例においてが維持するフローテーブルエントリの数を減らす助けとなる。これにより、スイッチSWC1へのフローテーブルの負担が減り、スイッチ14に追いつかなくなるのを防ぐ助けとなる。同時に、エッジスイッチSWE1及びSWE2本例においてに対応するフローテーブルエントリの完全性のために、セキュリティが保護される。エントリE1’及びE2’は、物理ポートの情報を保持し、かつ、コアスイッチC1にアクセスすることができないので、物理ポートのスプーフィングは可能でないエンドホストをコアスイッチC1に物理的に直接接続できないと仮定して。コントローラサーバ18は、図15に示されるタイプのテーブルについてのフローテーブルエントリを選択的に分散させることができる。例えば、コントローラサーバ18は、フローテーブルエントリE1’のようなフローテーブルエントリを、スイッチSWC1のようなネットワークコアにより近いスイッチではなく、スイッチE1のようなエッジスイッチに分散させ、かつ、フローテーブルエントリC1’のようなフローテーブルエントリを、エッジスイッチではなく、スイッチSWC1のようなコアスイッチ又はコアに近いスイッチに分散させることができる。図16は、エッジスイッチのフローテーブルエントリがワイルドカード指定を含むスキームについてのフローテーブルエントリを示す。例えば、図12のスイッチSWE1についてのエントリE1’’により示されるように、宛先TCPポートフィールドをワイルドカード指定し、かつ、送信元TCPポートフィールドをワイルドカード指定することができる。図12のスイッチSWE2についてのエントリE2’’により示されるように、IP送信元アドレスフィール及び送信元TCPポートをワイルドカード指定することができる。パケットにおける送信元TCPポート情報は、IPリンクを確立する通常のプロセスの一部としてランダムに割り当てられ戻りトラフィックが適切なエンドホスト処理に向けられることを保証するために、かつ、通常有用なセキュリティ情報は含まないため、送信元TCPポートにワイルドカード指定を使用することにより、セキュリティを低減させずに、フローテーブルエントリを低減させることが可能になる。E1’’エントリにおける宛先TCPポート情報のワイルドカード指定は、スイッチSWE1が、エンドホストEHBにおける権限のないTCPポートに向かうその関連したエンドホストEHAからのトラフィックをブロックすることができないので、セキュリティ上の問題をもたらす可能性がある。それにもかかわらず、宛先TCPポートフィールドは、フローテーブルエントリE2’’において22の完全なワイルドカード指定のないエントリで満たされているので、スイッチSWE2は、この所望のトラフィックブロック動作を行うことができる。従って、図16のフローテーブルエントリにおいて幾つかのワイルドカード指定が存在していても、パケット転送機能の全体的な損失はない。エントリE1’’のワイルドカード指定により失われたどの機能も、フローテーブルエントリE2’’のより完全なフィールドの機能によって埋め合わせられるので、図15の例において実行された同じパケット処理機能が、図16の例において実行される。図15の例におけるように、エントリC1’’のようなコアスイッチのフローテーブルエントリは、スイッチSWC1により維持されなければならないフローテーブルエントリの総数を減らすために、ワイルドカード指定例えば、ネットワークエッジにより近いスイッチについてのフローテーブルエントリより多いワイルドカード指定を含むことができる。図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は、スイッチSWE3及びSWE4のようなエッジスイッチ14E、及び、コアスイッチSWC2のようなコアスイッチ14Cを介して、インターネット110に結合される。コアスイッチSWC2は、デフォルトのインターネットゲートウェイ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においてこのタイプのパケット転送スキームを実装するために用いることができる例証となるフローテーブルである。スイッチSWE3により用いることができるフローテーブルエントリE3により示されるように、エンドホストEHCから宛先IPアドレス3.3.3.3へのパケットは、スイッチSWE3のポート2に転送される送信元アドレスポート5における2.2.2.2を有する、転送ポートと同じタイプのエントリを、エンドホストEHDからのパケットのために用いることができる。スイッチSWC2により用いることができるフローテーブルのエントリ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におけるカプセル化エンジン及びカプセル化解除エンジンは、GenericRoutingEncapsulationGRE、マルチプロトコルラベルスイッチングMultiprotocolLabelSwitching、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度転送するように指示するフローテーブルエントリを生成することを含む。別の実施形態によれば、この方法は、カプセル化エンジンによって、マルチプロトコルラベルスイッチングMultiprotocolLabelSwitchingを用いて、カプセル化されたパケットを生成することをさらに含む。別の実施形態によれば、この方法は、総称ルーティングカプセル化GenericRoutingEncapsulationを用いて、カプセル化されたパケットを生成することをさらに含む。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のネットワークスイッチが取るアクションを与えることを含む。上記は、本発明の原理を例証するものにすぎず、当業者であれば、本発明の範囲及び趣旨から逸脱することなく、様々な修正を行うことができる。"