JP6302064B2 - コントローラを用いてネットワークをテストするシステム及び方法 - Google Patents

コントローラを用いてネットワークをテストするシステム及び方法 Download PDF

Info

Publication number
JP6302064B2
JP6302064B2 JP2016533570A JP2016533570A JP6302064B2 JP 6302064 B2 JP6302064 B2 JP 6302064B2 JP 2016533570 A JP2016533570 A JP 2016533570A JP 2016533570 A JP2016533570 A JP 2016533570A JP 6302064 B2 JP6302064 B2 JP 6302064B2
Authority
JP
Japan
Prior art keywords
network
test
packet
switch
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2016533570A
Other languages
English (en)
Other versions
JP2017504991A (ja
Inventor
アール カイル フォースター
アール カイル フォースター
シュードン ジョウ
シュードン ジョウ
ロバート ダブリュー シャーウッド
ロバート ダブリュー シャーウッド
ジェイソン パラガ
ジェイソン パラガ
Original Assignee
ビッグ スウィッチ ネットワークス インコーポレイテッド
ビッグ スウィッチ ネットワークス インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ビッグ スウィッチ ネットワークス インコーポレイテッド, ビッグ スウィッチ ネットワークス インコーポレイテッド filed Critical ビッグ スウィッチ ネットワークス インコーポレイテッド
Publication of JP2017504991A publication Critical patent/JP2017504991A/ja
Application granted granted Critical
Publication of JP6302064B2 publication Critical patent/JP6302064B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • 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
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • 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/24Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using dedicated network management hardware
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Description

〔関連出願との相互参照〕
本出願は、2013年11月20日に出願された米国特許出願公開第14/085,538号に対する優先権を主張するものであり、この文献はその全体が引用により本明細書に組み入れられる。
本発明は、通信ネットワークに関し、具体的には、コントローラによって制御されるネットワークスイッチを有する通信ネットワークに関する。
インターネットなどのパケットベースのネットワーク、及びインターネットに接続されたローカルデータネットワークは、ネットワークスイッチを含む。ネットワークスイッチは、パケットの送信元からパケットの宛先にパケットを転送する際に使用される。パケットは、フレームと呼ばれることもある。
あるベンダの装置を用いて別のベンダのスイッチを制御することは困難又は不可能な場合がある。この理由は、あるベンダのスイッチ装置が別のベンダのスイッチ装置と異なるオペレーティングシステム及び一連の制御手順を使用している可能性があるからである。異なるタイプのスイッチプラットフォームの制御に関連する課題に取り組むために、クロスプラットフォームプロトコルが開発された。これらのプロトコルは、互換性がなかったはずのスイッチの集中制御を可能にする。
ネットワーク内のスイッチに、クロスプラットフォームのコントローラクライアントを含めることができる。コントローラクライアントは、ネットワーク経路を介して対応するコントローラサーバと通信することができる。コントローラクライアントは、様々なスイッチハードウェア上に実装できるので、互換性がなかったはずのスイッチ装置を1つのコントローラで制御することができる。
コントローラがスイッチのネットワークを効率的に制御することは困難な場合がある。例えば、ネットワーク管理者によって、又は装置の障害に起因してネットワークトポロジが変更されることがある。このシナリオでは、ネットワークの変更によってコントローラの設定が無効になる可能性がある。従って、コントローラの能力を改善することが望ましいと思われる。
コントローラが、ネットワーク内の物理的スイッチ及びソフトウェアスイッチなどのスイッチを制御することができる。このコントローラは、エンドホストグループから仮想スイッチを生成することができる。各仮想スイッチは、それぞれのエンドホストに割り当てられた仮想ポートを有することができる。コントローラは、仮想スイッチから仮想ネットワークトポロジを生成することができる。
コントローラは、スイッチを通じてネットワークトラフィックを管理する1又は2以上のネットワークポリシールールを受け取ることができる。ネットワークポリシールールは、仮想ポートを流れるネットワークトラフィックを管理するように、それぞれの仮想ポートに対して定めることができる。所与のネットワークポリシールールでは、コントローラが、ネットワークがネットワークポリシールールを満たしているかどうかを判定するテストを行うことができる。このテストは、コントローラが(例えば、ユーザから)受け取ったテストルールに基づいて行うことができる。テストルールは、テストパラメータ及び予想テスト結果を識別することができる。コントローラは、テストルールのテストパラメータに基づいてテストパケットを生成することができる。例えば、テストパケットは、送信元及び宛先のエンドホスト情報、又はテストパラメータから特定される他のヘッダフィールドを含むことができる。
コントローラは、仮想ネットワークトポロジの仮想経路をトラバースするテストパケットのパケットトラバーサルをシミュレートすることができる。コントローラは、シミュレーション中にトリガされたネットワークポリシールールを識別することができる。コントローラは、仮想経路の基本経路を形成する一連のスイッチを決定することができる。コントローラは、基本経路を実装するフローテーブルエントリを、(例えば、ネットワークの通常の転送動作がテスト中に変化しないように)一連のスイッチに提供することなく生成することができる。コントローラは、トリガされたネットワークポリシールール、又はテストパケットがトラバースするスイッチなどのシミュレーション結果に基づいて、ネットワークがネットワークポリシールールを満たしているかどうかを判定することができる。
必要であれば、コントローラは、テストパケットにタグ付けし、このタグ付きパケットをネットワークに投入することができる。テストパケットへのタグ付けは、ヘッダフィールドに識別情報を挿入し、又はテストパケットをカプセル化することによって行うことができる。コントローラは、タグ付きテストパケットに関する情報をコントローラに送信するようにスイッチに指示するフローテーブルエントリをスイッチに提供することができる。この情報は、タグ付きテストパケットがどのスイッチポートで受け取られたかを識別することができる。フローテーブルエントリは、コントローラによるネットワークポリシールールのテストによってエンドホストの通常動作が妨げられないことを保証するように、スイッチがタグ付きテストパケットをそのパケットの宛先エンドホストに転送するのを防ぐことができる。コントローラは、スイッチからの情報に基づいて、テストルールの予想結果及び対応するネットワークポリシールールをネットワークが満たしているかどうかを判定することができる。
添付図面及び以下の詳細な説明から、本発明のさらなる特徴、その性質及び様々な利点がさらに明らかになるであろう。
本発明の実施形態による、コントローラ及びパケット転送システムを含む例示的なネットワークを示す図である。 本発明の実施形態による、ネットワーク接続を介して通信できるコントローラサーバ及びコントローラクライアントを示す図である。 本発明の実施形態による、パケット処理システムが使用できるタイプの例示的なフローテーブルを示す図である。 本発明の実施形態による、フローテーブルのフローテーブルエントリに基づいて実行できる3つの例示的なパケット転送タイプを示す、パケット処理システムが使用できるタイプの例示的なフローテーブルを示す図である。 本発明の実施形態による、パケット処理システムにおけるパケット処理に関連する例示的なステップを示すフローチャートである。 本発明の実施形態による、コントローラが制御できるスイッチを含む例示的なネットワークを示す図である。 本発明の実施形態による、コントローラが基本ネットワークから生成できる例示的な仮想ネットワークを示す図である。 本発明の実施形態による、コントローラが実装できる例示的なアクセス制御リストを示す図である。 本発明の実施形態による、ネットワークポリシールールを実装する際にコントローラが生成できる第1の例示的なフローテーブルエントリを示す図である。 本発明の実施形態による、ネットワークポリシールールを実装する際にコントローラが生成できる第2の例示的なフローテーブルエントリを示す図である。 本発明の実施形態による、コントローラが実装できる例示的なネットワークポリシールールを示す図である。 本発明の実施形態による、コントローラが仮想ネットワークを変更できるシナリオを示す図である。 本発明の実施形態による、ネットワークポリシールールをテストする際にコントローラが使用できる例示的なテストルールを示す図である。 本発明の実施形態による、ネットワークポリシールールをテストする際にコントローラが実行できる例示的なステップを示すフローチャートである。 本発明の実施形態による、ネットワークポリシールールをテストするためにテストパケットをシミュレートする際にコントローラが実行できる例示的なステップを示すフローチャートである。 本発明の実施形態による、コントローラがテストパケットとして生成できる例示的なネットワークパケットを示す図である。 本発明の実施形態による、コントローラが生成できる例示的なPacket Inメッセージを示す図である。 本発明の実施形態による、ネットワークパケットのヘッダフィールドに識別情報を挿入することによって生成できる例示的なタグ付きネットワークパケットを示す図である。 本発明の実施形態による、ネットワークパケットをカプセル化することによって生成できる例示的なタグ付きネットワークパケットを示す図である。 本発明の実施形態による、タグ付きテストパケットをネットワークに投入することによってネットワークポリシールールをテストする際にコントローラが実行できる例示的なステップを示すフローチャートである。
インターネットなどのネットワーク、並びにインターネットに接続されたローカルネットワーク及び地域ネットワークは、パケットベースのスイッチに依拠する。本明細書ではネットワークスイッチ、パケット処理システム、又はパケット転送システムと呼ぶこともあるこれらのスイッチは、アドレス情報に基づいてパケットを転送することができる。一例として、スイッチは、ルータ、ファイアウォール、ロードバランサ又はその他のパケット転送システムを含むことができる。このようにして、パケットの送信元によって送信されたデータパケットをパケットの宛先に送達することができる。ネットワーク用語では、パケットの送信元及び宛先をエンドホストと呼ぶこともある。エンドホストの例には、パーソナルコンピュータ、サーバ、及び有線又は無線技術を用いてネットワークにアクセスするポータブル電子装置などの他のコンピュータ装置がある。
ネットワークスイッチの能力は、比較的小型のイーサネットスイッチ及び無線アクセスポイントから、複数のラインカード、冗長電源及び監視能力を含む大型のラックベースシステムにまで及ぶ。ネットワークが複数のベンダからの装置を含むことも珍しくない。異なるベンダからのネットワークスイッチを相互接続してパケット転送システムを形成することはできるが、これらのネットワークスイッチを集中的に管理することは、そのオペレーティングシステム及び制御プロトコル間の非互換性に起因して困難な場合がある。
これらの潜在的非互換性は、各ネットワークスイッチに(本明細書ではコントローラクライアントと呼ぶこともある)共通のクロスプラットフォーム制御モジュールを組み込むことによって克服することができる。集中型クロスプラットフォームコントローラサーバは、各コントローラクライアントとそれぞれのネットワークリンクを介して相互作用することができる。クロスプラットフォームコントローラサーバ及び対応するコントローラクライアントを使用することで、潜在的に異なるネットワークスイッチ装置を集中管理できるようになる。
本明細書で一例として説明することもある1つの例示的な構成では、図1のコントローラサーバ18などの1又は2以上のコントローラサーバによって集中制御が行われる。コントローラサーバ18は、スタンドアロン型コンピュータ、コンピュータクラスタ、複数箇所に分散された一連のコンピュータ、ネットワークスイッチに埋め込まれたハードウェア、又はその他の好適なコンピュータ装置12に実装することができる。コントローラサーバ18は、単一のコンピュータ上の単一のプロセッサとして動作することも、或いは冗長性のために複数のホストにわたって分散することもできる。分散構成の使用は、ネットワーク10に予期せぬネットワーク分割(例えば、2つのキャンパス間のネットワークリンクが途絶した状況)に対する弾力性を与える役に立つことができる。
分散コントローラ構成では、コントローラノード同士が、コントローラ内プロトコルを用いて情報を交換することができる。例えば、第1のコントローラノードのみに接続されたネットワークハードウェア(例えば、スイッチ)に新たなエンドホストが接続する場合、この第1のコントローラノードは、コントローラ内プロトコルを用いて新たなエンドホストの存在を他のコントローラノードに知らせることができる。必要であれば、スイッチ又は他のネットワークコンポーネントを複数のコントローラノードに接続することもできる。本明細書では、一例として単一のコントローラサーバを用いて関連スイッチのネットワークを制御する構成について説明することもある。
図1のコントローラサーバ18は、ネットワーク10のトポロジに関する情報を収集することができる。例えば、コントローラサーバ18は、ネットワーク10のトポロジを発見するために、ネットワークを介してリンク層発見プロトコル(LLDP)プローブパケットを送信することができる。コントローラサーバ18は、ネットワークトポロジに関する情報及びネットワーク装置の能力に関する情報を用いて、ネットワークを流れるパケットに対して適切な経路を決定することができる。適切な経路が識別されると、コントローラサーバ18は、対応する設定データをネットワーク10内のハードウェアに送信して、パケットがネットワーク内を望む通りに流れるように保証することができる。このようなネットワーク構成動作は、システムのセットアップ動作中に、バックグラウンドで継続的に、又は新たに送信されるデータパケット(すなわち、既存の経路がまだ確立されていないパケット)の出現に応答して行うことができる。
コントローラサーバ18を用いて、ネットワーク構成ルール20を実装することもできる。ルール20は、様々なネットワークエンティティがどのサービスを利用できるかを指定することができる。一例として、ルール20は、ネットワーク10内のどのユーザ(又はユーザタイプ)が特定のサーバにアクセスできるかを指定することができる。ルール20は、例えばコンピュータ装置12のデータベース内に維持することができる。
コントローラサーバ18、及びそれぞれのネットワークスイッチ14におけるコントローラクライアント30は、ネットワークプロトコルスタックを用いてネットワークリンク16を介して通信することができる。
各スイッチ(例えば、各パケット転送システム)14は、(ネットワークスイッチインターフェイスと呼ばれることもある)入出力ポート34を有することができる。ケーブルを用いて、装置の一部をポート34に接続することができる。例えば、ポート34には、パーソナルコンピュータ、ウェブサーバ及びその他のコンピュータ装置などのエンドホストを接続することができる。ポート34は、スイッチ14のうちの1つを他のスイッチ14に接続するために使用することもできる。
パケット処理回路32は、ポート34のうちの1つのポートから別のポートにパケットを転送する際に使用することができ、着信パケットに対して他の好適な動作を実行する際にも使用することができる。パケット処理回路32は、専用高速スイッチ回路などの1又は2以上の集積回路を用いて実装することができ、ハードウェアデータ経路としての役割を果たすことができる。必要であれば、ソフトウェアデータ経路を実装する際に、制御ユニット24上で実行中のパケット処理ソフトウェア26を使用することもできる。
制御ユニット24は、制御ソフトウェアの記憶及び実行を行う処理及び記憶回路(例えば、1又は2以上のマイクロプロセッサ、メモリチップ、及びその他の制御回路)を含むことができる。例えば、制御ユニット24は、パケット処理ソフトウェア26などのソフトウェアを記憶して実行することができ、フローテーブル28を記憶することができ、コントローラクライアント30の動作をサポートするために使用することもできる。
コントローラクライアント30及びコントローラサーバ18は、OpenFlowプロトコル(例えば、OpenFlowスイッチ仕様書バージョン1.0.0を参照)などのネットワークスイッチプロトコルに準拠することができる。コントローラクライアント30のうちの1又は2以上のクライアントは、他のプロトコル(例えば、簡易ネットワーク管理プロトコル)に準拠することもできる。コントローラサーバ18は、OpenFlowプロトコル又は他の好適なプロトコルを用いて、スイッチ14が入出力ポート34からの着信パケットをどのように処理すべきかを定めるデータをコントローラクライアント30に提供することができる。
1つの好適な構成では、コントローラサーバ18からのフローテーブルデータをフローテーブル28などのフローテーブルに記憶することができる。フローテーブル28のエントリは、スイッチ14(例えば、パケット処理回路32及び/又はパケット処理ソフトウェア26の機能)を構成する際に使用することができる。典型的なシナリオでは、フローテーブル28が、フローテーブルエントリのためのキャッシュストレージとしての役割を果たし、パケット処理回路32の回路によって維持される設定に、これらのフローテーブルエントリの対応するバージョンが組み込まれる。しかしながら、これは例示にすぎない。フローテーブル28は、スイッチ14におけるフローテーブルエントリのための専用ストレージとしての役割を果たすこともでき、或いはパケット処理回路32内のフローテーブルストレージリソースを選択する場合には省略することもできる。一般に、フローテーブルエントリは、あらゆる好適なデータ構造(例えば、1又は2以上のテーブル、リストなど)を用いて記憶することができる。明確化のために言えば、本明細書では、フローテーブル28のデータを(制御ユニット24のデータベース内に維持されるか、それともパケット処理回路32の構成に組み込まれるかに関わらず)、フローテーブルエントリを形成しているもの(例えば、フローテーブル28の行)として見なす。
スイッチ14が着信パケットをどのように処理すべきかを定めるデータを記憶するフローテーブル28の例は例示にすぎない。必要であれば、フローテーブル28の代わりに、又はフローテーブル28に加えて、いずれかのパケット転送決定エンジンを用いて、パケット転送システム14がネットワークパケットの転送方法を決定する支援を行うこともできる。一例として、パケット転送決定エンジンは、パケット転送システム14に、ネットワークパケットをその属性に基づいて(例えば、ネットワークプロトコルヘッダに基づいて)所定のポートに転送するように指示することができる。
いずれかの所望のスイッチには、コントローラサーバと通信して制御されるコントローラクライアントを設けることができる。例えば、制御ソフトウェアを実行してパケット処理回路32を省略する汎用処理プラットフォームを用いてスイッチ14を実装することができる。別の例として、1又は2以上の高速スイッチ集積回路(「スイッチIC」)に結合された制御回路を用いてスイッチ14を実装することもできる。さらに別の例として、各々が独自のパケット処理回路を含む複数のラインカードを有するラックベースシステム内のラインカードとしてスイッチ14を実装することもできる。必要に応じて、コントローラサーバは、このラックベースシステム又は別のラックベースシステム内の1又は2以上のラインカード上、或いはネットワークに結合された他のコンピュータ装置上に実装することができる。
図2に示すように、コントローラサーバ18及びコントローラクライアント30は、ネットワークプロトコルスタック58及びネットワークプロトコルスタック60などのネットワークプロトコルスタックを用いてネットワーク経路66を介して通信することができる。スタック58及び60は、例えば、(一例として)Linux TCP/IPスタック、又はVxWorksオペレーティングシステム内のTCP/IPスタックとすることができる。経路66は、例えばスイッチ14と外部装置との間のネットワーク接続をサポートする経路(例えば、図1のネットワーク経路16)とすることも、或いはラックベースシステム内の基幹経路とすることもできる。本明細書では、一例として経路66が経路16などのネットワーク経路である構成について説明することもある。
制御プロトコルスタック56は、ネットワークプロトコルスタック58と制御ソフトウェア54との間のインターフェイスとしての役割を果たす。制御プロトコルスタック62は、ネットワークプロトコルスタック60と制御ソフトウェア64との間のインターフェイスとしての役割を果たす。動作中、制御プロトコルスタック56は、コントローラサーバ18がコントローラクライアント30と通信している時に制御プロトコルメッセージ(例えば、ポートをアクティブにするための、又はフローテーブル28に特定のフローテーブルエントリを導入するための制御メッセージ)を生成して解析する。図2に示すタイプの構成を使用することにより、コントローラサーバ18とコントローラクライアント30との間のリンクを介してネットワーク接続が形成される。コントローラサーバ18とコントローラクライアント30は、伝送制御プロトコル(TCP)又はユーザデータグラムプロトコル(UDP)・オーバ・インターネットプロトコル(IP)ネットワーク接続を用いて通信することができる。ネットワーク接続を介したコントローラサーバ18とコントローラクライアント30との間の通信時に使用できる制御プロトコルの例としては、(一例として)SNMP及びOpenFlowプロトコルスタック・バージョン1.0.0が挙げられる。
フローテーブル28は、(ヘッダフィールドと呼ばれることもある)複数のフィールドを有するフローテーブルエントリ(例えば、テーブル内の行)を含む。スイッチ14によって受け取られたパケット内のフィールドは、フローテーブル内のフィールドと比較することができる。各フローテーブルエントリは、関連する動作を有することができる。パケット内のフィールドとフローテーブルエントリ内のフィールドとが一致した場合、このフローテーブルエントリのための対応する動作を行うことができる。
図3に、例示的なフローテーブルを示す。図3に示すように、テーブル28は、フローテーブルエントリ(行)68を有することができる。各フローテーブルエントリは、ヘッダ70、動作72及び統計74に関連することができる。各ヘッダ70は、複数のヘッダフィールド76を含むことができる。各フローテーブルエントリ内の動作は、パケット内のフィールドと、このフローテーブルエントリのヘッダ内の対応するフィールドとの間に一致が検出された時に、スイッチ14がパケットに対してどのような動作を行うべきかを示す。スイッチ14は、フローテーブル28の統計部分内に、コントローラサーバ18がスイッチ14の性能に関する情報を取得したい時に問い合わせることができる統計データ(カウンタ値)を維持する。
ヘッダ70内のヘッダフィールド(及び各着信パケット内の対応するフィールド)は、イングレスポート(すなわち、受け取られるパケットが通過するスイッチ14内の物理ポートの識別子)、イーサネット送信元アドレス、イーサネット宛先アドレス、イーサネットタイプ、(VLANタグと呼ばれることもある)仮想ローカルエリアネットワーク(VLAN)識別、VLANプライオリティ、IP送信元アドレス、IP宛先アドレス、IPプロトコル、IP ToS(サービスタイプ)ビット、(送信元TCPポートと呼ばれることもある)トランスポート送信元ポート/インターネット制御メッセージプロトコル(ICMP)タイプ、及び(宛先TCPポートと呼ばれることもある)トランスポート宛先ポート/ICMPコードといったフィールドを含むことができる。必要に応じて他のフィールドを使用することもできる。例えば、ネットワークプロトコルフィールド及びプロトコルポートフィールドを使用することができる。
各フローテーブルエントリ(フローエントリ)は、一致するパケットをスイッチがどのように処理するかを示す0又は1以上の動作に関連する。転送動作が存在しない場合、パケットは破棄されることが好ましい。パケットフィールドとフローテーブルエントリ内のヘッダフィールドとの間に一致が検出された時にスイッチ14が行うことができる動作としては、転送(例えば、着信インターフェイスを除く全てのインターフェイス上でパケットを送出するALL、パケットをカプセル化してコントローラサーバに送信するCONTROLLER、パケットをスイッチのローカルネットワーキングスタックに送信するLOCAL、フローテーブル28内の動作を実行するTABLE、入力ポートからパケットを送出するIN_PORT、例えば、従来のレベル2、VLAN及びレベル3処理を使用するスイッチによってサポートされているデフォルトの転送経路でパケットを処理するNORMAL、着信インターフェイスを除く最小の転送ツリーに沿ってパケットをフラッディングするFLOOD)を挙げることができる。スイッチ14が行うことができる追加動作としては、ポートに付随する待ち行列を通じてパケットを転送する待ち行列化動作、及び(例えば、フローテーブルエントリに一致する指定された動作を有していないパケットを破棄する)破棄動作が挙げられる。スイッチ14は、フィールド変更動作をサポートすることもできる。行うことができるフィールド変更動作の例としては、VLAN IDの設定(Set VLAN ID)、VLANプライオリティの設定、VLANヘッダの除去、VLANタグの変更、イーサネット送信元MAC(媒体アクセス制御)アドレスの変更、イーサネット宛先MACアドレスの変更、IPv4送信元アドレスの変更、IPv4 ToSビットの変更、トランスポート宛先ポートの変更が挙げられる。
図4は、3つのフローテーブルエントリを有する例示的なフローテーブルである。これらのエントリは、ワイルドカード(例えば、記号「*」)のフィールドを含む。特定のフィールドにワイルドカードが存在する場合、着信パケット内の特定のフィールド値に関わらず、全ての着信パケットが、対応するフィールドに対して「一致」を形成すると見なされる。追加のフィールドは、追加のパケット情報(例えば、ネットワークパケットのパケットヘッダ情報)に一致することができる。
図4のテーブルの1行目のエントリは、フローテーブルエントリが機能しているスイッチにイーサネットスイッチングを行うように指示する。具体的には、一致するイーサネット宛先アドレスを有する着信パケットがポート3に転送される。
図4のテーブルの2行目のエントリは、インターネットルーティングを行うためにスイッチをどのように構成できるかを示す(すなわち、パケットがその宛先IPアドレスに基づいて転送される)。
図4のテーブルの3行目は、ファイアウォール機能を実行するためにスイッチをどのように構成できるかを示すエントリを含む。80という宛先IPポート値を有するパケットが受け取られると、このパケットは破棄される(すなわち、スイッチは、ポート80のトラフィックをブロックするファイアウォールとして機能するように構成される)。
図4に示すタイプのフローテーブルエントリは、システムのセットアップ動作中にコントローラサーバ18によってスイッチ14にロードすることも、或いはコントローラサーバ18におけるスイッチ14などのスイッチからのパケットの受信及び処理に応答してコントローラサーバ18からスイッチ14にリアルタイムで提供することもできる。多くのスイッチ14を含むネットワークでは、各スイッチに、ネットワークを介した経路を形成するのに適したフローテーブルエントリを提供することができる。
図5に、入出力ポート34において受け取られたパケットを処理する際にスイッチ14が実行できる例示的なステップを示す。ステップ78において、スイッチ14が、そのポートのうちの1つ(例えば、図1の入出力ポート34のうちの1つ)においてパケットを受け取る。
ステップ80において、スイッチ14は、受け取ったパケットのフィールドをこのスイッチのフローテーブル28内のフローテーブルエントリのフィールドと比較して一致が存在するかどうかを判定する。フローテーブルエントリ内のフィールドには、完全な値(例えば、完全なアドレス)を含むものもある。他のフィールドには、ワイルドカード(すなわち、「*」という「無関係」を示すワイルドカード文字が記されたフィールド)を含むものもある。さらに他のフィールドには、部分的に完全なエントリ(例えば、部分的にワイルドカードになっている部分的なアドレス)を有するものもある。フィールドによっては、(例えば、TCPポート番号を1〜4096の値に制限することによって)範囲を使用し、実質的にこの範囲を用いて一種の部分的ワイルドカードを実装できるものもある。スイッチ14は、受け取ったパケットとフローテーブルエントリとの間でフィールド毎の比較を行う際に、フローテーブルエントリ内の各フィールドが、一切のワイルドカードを含まない完全な値を含むか否か、ワイルドカードを伴う部分的な値を含むか否か、又はワイルドカード文字(すなわち、完全にワイルドカードになっているフィールド)を含むか否かを考慮することができる。
ステップ80の動作中に、パケットのフィールドとフローテーブルエントリの対応するフィールドとの間に一致が存在しないと判定された場合、スイッチ14は、リンク16を介してコントローラサーバ18にパケットを送信することができる(ステップ84)。
ステップ80の動作中に、パケットとフローテーブルエントリとの間に一致が存在すると判定された場合、スイッチ14は、このフローテーブルエントリに関連する動作を実行して、このフローテーブルエントリの統計フィールド内のカウンタ値を更新することができる(ステップ82)。その後、線86によって示すように、処理はステップ78に戻ってスイッチ14が別のパケットを処理することができる。
図6は、コントローラ18がスイッチを制御できる例示的なネットワーク100を示す図である。コントローラ18は、コントローラサーバとすることも、又は複数のコンピュータ装置にわたって実装される分散型コントローラとすることもできる。図6に示すように、ネットワーク100は、スイッチSW1、SW2及びSW3を含むことができる。これらのスイッチは、専用スイッチ回路を用いて実装される物理的スイッチとすることも、又はソフトウェアスイッチとすることもできる。ソフトウェアスイッチの例としては、離散コンピュータ装置上(例えば、ラックベースシステム内のサーバ上)のソフトウェアを用いて実装されるハイパーバイザスイッチが挙げられる。このようなソフトウェアスイッチは、ソフトウェアスイッチを実装するコンピュータ装置の専用物理ポートに接続されたケーブルによってネットワークの残り部分に結合される(例えば、各ソフトウェアスイッチは、ソフトウェアスイッチを実装する所与のサーバの物理ポートに制限され拘束される)。
コントローラ18は、制御経路66を介してネットワーク100のスイッチに結合することができる。コントローラ18は、(例えば、図3のフローテーブルエントリ68などのフローテーブルエントリを提供することによって)制御経路66を用いてスイッチを制御することができる。
ネットワーク100は、ネットワーク100のスイッチに結合された、エンドホストEH1、EH2及びEH3などのエンドホストを含むことができる。図6の例では、エンドホストEH1及びEH3がスイッチSW1のポートP1及びP2に結合され、エンドホストEH2がスイッチSW3のポートP2に結合されている。スイッチのポートは、他のスイッチのポートに結合することもできる。例えば、スイッチSW1のポートP3は、スイッチSW2のポートP1に結合することができ、スイッチSW2のポートP2は、スイッチSW3のポートP1に結合することができる。スイッチポートにおいて第1のエンドホストから受け取られたパケットは、エンドホスト間に結合されたスイッチによって第2のエンドホストに転送することができる。
ネットワーク管理者などのユーザが所望の動作のためにネットワーク100を構成することは困難な場合がある。例えば、エンドホストグループ間の通信を分離又は別様に制限することが望ましい場合がある。別の例として、ネットワーク管理者がネットワークの各スイッチ及び各エンドホストについてネットワークポリシー(例えば、ルーティングルール、アクセス制御リスト、その他)を手動で構成することは非効率的な場合もある。コントローラ18は、基本ネットワークトポロジ(例えば、物理ネットワークトポロジ)上に仮想ルータ及び仮想スイッチの論理ネットワークトポロジを実装するように構成することができる。論理ネットワークトポロジは、ネットワークの構成効率、柔軟性及び能力の改善などの利点をもたらすことができる。図7は、図6の基本ネットワーク100から仮想ネットワークトポロジ120を実装するようにコントローラ18を構成した実例である。
仮想ネットワークトポロジ120は、基本ネットワーク100の物理的制約内におけるいずれかの所望のトポロジとすることができる(例えば、各仮想経路は、基本ネットワーク内の少なくとも1つの、場合によってはそれ以上の対応する経路を有する)。基本経路は、物理的スイッチ及び/又はソフトウェアベースのスイッチを含むことができる。
図7に示すように、仮想ネットワークトポロジ120は、VSW1及びVSW2などの仮想スイッチ、及びVR1などの仮想ルータを含むことができる。仮想スイッチは、ネットワークのエンドホストグループから形成され、エンドホストのいずれかの所望のネットワーク属性によって規定することができる。必要であれば、仮想スイッチに、異なる基本物理スイッチ又はソフトウェアスイッチに結合されたエンドホストを割り当てることもできる。仮想スイッチVSW1にはエンドホストEH1及びEH2を割り当てることができ、仮想スイッチVSW2にはエンドホストEH3を割り当てることができる。仮想スイッチは、エンドホストと、仮想ネットワークトポロジ内の他の要素とに結合された仮想ポートを有することができる。例えば、仮想スイッチVSW1は、エンドホストEH1、エンドホストEH2及び仮想ルータVR1に結合された、仮想ポートVP1、VP2及びVP3を有することができる。同様に、仮想スイッチVSW2は、エンドホストEH3及び仮想ルータVR1にそれぞれ結合された、仮想ポートVP1及びVP2を有することができる。
エンドホストを特徴付ける上で使用できるネットワーク属性の例としては、エンドホストが結合された物理又はハイパーバイザスイッチポート、エンドホストのハードウェアアドレス(例えば、MACアドレス)、エンドホストのプロトコルアドレス(例えば、IPアドレス)、仮想ローカルエリアネットワーク(VLAN)タグ、及び/又はエンドホストのその他のネットワーク属性が挙げられる。例えば、コントローラ18は、エンドホストEH1をスイッチVSW1のポートP1に接続されていると識別することができ、エンドホストEH2をMACアドレスによって識別することができ、エンドホストEH3をIPアドレスによって識別することができる。別の例として、スイッチSW3がハイパーバイザスイッチであるシナリオでは、エンドホストEH2を、エンドホストEH2が結合されている論理ハイパーバイザスイッチによって識別することができる。これらの例は例示にすぎない。エンドホストを仮想スイッチに割り当てる際には、ネットワークパケットヘッダフィールド内で使用されるようなあらゆる所望のネットワーク属性、又はネットワーク属性のあらゆる所望の組み合わせを使用することができ、物理及びハイパーバイザスイッチの基本ネットワークからあらゆる所望の数の分散型仮想スイッチを生成することができる。
仮想スイッチは、グループ化して1又は2以上の仮想ルータを形成することができる。図7の例では、仮想スイッチVSW1及びVSW2をグループ化して仮想ルータVR1を形成している。換言すれば、仮想スイッチVSW1及びVSW2のエンドホストグループは仮想ルータVR1に割り当てられている。各仮想スイッチは、仮想スイッチの全てのエンドホストにブロードキャストネットワークパケットが転送されるそれぞれのブロードキャストドメインを実装する役割を果たす。ブロードキャストネットワークパケットは、ネットワークパケットを、関連するブロードキャストドメインの全てのエンドホストを宛先とするブロードキャストネットワークパケットとして識別するヘッダフィールドを有するネットワークパケットとすることができる。例えば、エンドホストEH2から仮想スイッチVSW1によって受け取られたブロードキャストネットワークパケットは、仮想スイッチVSW1によって、仮想スイッチVSW1に割り当てられている他の各エンドホストに(すなわち、エンドホストEH1に)転送することができる。
仮想ルータは、ネットワークルーティング機能を実行し、仮想スイッチの異なるブロードキャストドメインについては分離を行う。例えば、仮想ルータVR1は、ブロードキャストパケットが仮想スイッチVSW1によって仮想スイッチVSW2に(及びこの逆に)転送されるのを防ぐことができる。ブロードキャストドメインは、IPアドレスレンジに関して、所与の仮想ルータの各インターフェイスに異なるそれぞれのIPアドレスレンジが割り当てられるように規定することができる。例えば、インターフェイスIF1及び仮想スイッチVSW1に第1のIPアドレスレンジを割り当て、インターフェイスIF2及び仮想スイッチVSW2に第2のIPアドレスレンジを割り当てることができる。図7の例では、仮想ルータとは対照的に、仮想スイッチは、IPドメインに基づくネットワークルーティング機能を全く行わない。しかしながら、必要であれば、仮想ルータを省略して、仮想スイッチが転送及びルーティング機能を実行することもできる。
仮想ルータが実行できるネットワークルーティング機能としては、仮想ルータのインターフェイスにおいて受け取られたネットワークパケットのヘッダを変更することが挙げられる。仮想ルータは、ネットワークパケットのIPヘッダの有効期間フィールドを減分することができる。仮想ルータは、送信元及び宛先MACアドレスフィールドなどのイーサネットヘッダを、所望のブロードキャストドメインに対応するように変更することができる。例えば、仮想ルータの各インターフェイスに、それぞれのイーサネットアドレスを割り当てることができる。このシナリオでは、仮想ルータが、送信元MACアドレスフィールドを仮想ルータのエグレス(送出)インターフェイスに一致するように書き換えることができる。仮想ルータは、宛先MACアドレスフィールドをネクストホップアドレスに一致するように書き換えることができる。
コントローラ18は、仮想ネットワークの論理ポート(例えば、分散型仮想スイッチの仮想ポート又は分散型仮想ルータのインターフェイス)においてネットワークポリシールールを適用して実施するために使用することもできる。ネットワークポリシールールは、エンドホスト間のネットワーク経路を決定するのに役立つネットワークルーティングルールを含むとともに、選択されたネットワークトラフィックを許可又はブロックするアクセス制御リストを含むことができる。ネットワークポリシールールは、ユーザによって提供することができる。図8は、コントローラ18が実装できる例示的なアクセス制御リストを示す図である。
図8に示すように、アクセス制御リスト132は、論理ポート、エンドホスト情報及びプロトコルポートなどのネットワーク属性を識別する。一般に、アクセス制御リスト132には、1又は2以上の論理ポート、物理ポート及び/又はパケットヘッダフィールドなどのあらゆる所望のネットワーク属性を含めることができる。パケットヘッダフィールドは、1又は2以上のエンドホスト(例えば、送信元又は宛先エンドホスト)を識別するヘッダフィールドを含むことができる。例えば、アクセス制御リスト132は、送信元MACアドレス、送信元IPアドレス、宛先MACアドレス及び/又は宛先IPアドレスなどのエンドホスト識別フィールドを含むことができる。必要であれば、データベースを用いてエンドホストにマッピングできるエイリアス(例えば、文字列)を通じてエンドホストを識別することもできる。
コントローラ18は、アクセス制御リスト132によって規定されるネットワークポリシールールを実装するフローテーブルエントリを生成することができる。図8の例では、アクセス制御リスト132が、仮想スイッチVSW1の論理ポートVP2、エンドホストEH1のMACアドレス(MACEH1)、及びプロトコルポート80を識別する。プロトコルポート80は、伝送制御プロトコル(TCP)ポートとすることができる。コントローラ18は、アクセス制御リスト132を処理して、仮想スイッチVSW1の論理ポートVP2において受け取られた、送信元MACアドレスMACEH1及びTCPプロトコルポート80を有するネットワークパケットを破棄すべきである(すなわち、制御リスト132において識別されるネットワーク属性に一致するパケットを破棄すべきである)と判断することができる。仮想ネットワークトポロジ120は、仮想スイッチのあらゆる所望の構成、及び仮想スイッチに対するエンドホストのあらゆる所望の割り当てを有することができるので、仮想スイッチVSW1のVP2などの論理ポートの使用は、ネットワーク管理者にネットワークを構成する上での柔軟性をもたらすことができる。その後、コントローラ18は、フローテーブルエントリを生成して、アクセス制御リスト132を実装する基本ネットワーク100の基本物理及び/又はハイパーバイザスイッチに提供することができる。
図9は、アクセス制御リスト132を実装する際にコントローラ18が生成できる例示的なフローテーブルエントリである。図9に示すように、フローテーブルエントリ142は、送信元MACアドレスフィールド内にエンドホストEH1のMACアドレスを含み、宛先MACアドレスフィールド内にエンドホストEH2のMACアドレスを含み、TCPポートフィールド内にポート80を含むことができる。フローテーブルエントリ142は、送信元MACアドレスMACEH1、宛先MACアドレスMACEH2及びTCPポート80を有する全てのパケットに一致するようにワイルドカードになっている追加の一致フィールド(図示せず)を含むこともできる。
アクセス制御リスト132を実装する際には、フローテーブルエントリ142を1又は2以上の物理又はハイパーバイザスイッチに提供することができる。例えば、フローテーブルエントリ142をスイッチSW3に提供することができる。このシナリオでは、フローテーブルエントリ142の動作フィールドから決定されるように、エンドホストEH1(すなわち、MACアドレスMACEH1を有する)からスイッチSW3によって受け取られたエンドホストEH2(すなわち、MACアドレスMACEH2を有する)宛ての、TCPポートが80のあらゆるネットワークパケットを破棄することができる。アクセス制御リスト132は、エンドホストEH3が割り当てられているVSW2の論理ポートVP2において規定され、エンドホストEH3は、基本ネットワークのスイッチSW3のポートP2に接続されているので、スイッチSW3は、フローテーブルエントリ142の好適な受信者とすることができる。しかしながら、仮想スイッチVSW2は分散型仮想スイッチであるため、コントローラ18は、フローテーブルエントリを介してアクセス制御リスト132を実装するためにあらゆる所望の基本スイッチを選択することができる。例えば、コントローラ18は、図10のフローテーブルエントリ144を生成してスイッチSW1に提供することができる。
図10に示すように、フローテーブルエントリ144は、(例えば、宛先MACアドレスMACEH2を有する)エンドホストEH2宛ての、TCPポートが80の、(スイッチSW1の)ポートP1において受け取られたネットワークパケットに一致する。エンドホストEH1はスイッチSW1のポートP1に結合されており、従ってエンドホストEH1からのパケットはスイッチSW1によって処理されるので、フローテーブルエントリ144は、スイッチSW1への提供に適することができる。フローテーブルエントリ144は、スイッチSW1に、(ポートP1経由で)エンドホストEH1から受け取られたエンドホストEH2宛てのTCPポート80上のネットワークパケットを破棄するように指示することができる。フローテーブルエントリ144及び142の各々は、基本ネットワーク100の異なるスイッチに提供されるが、エンドホストEH1がTCPポート80上でエンドホストEH2と通信するのを防ぐ上でネットワークポリシールール132を効果的に実装することができる。必要であれば、ネットワークポリシールールを実装する際に、複数のフローテーブルエントリを異なるスイッチに提供することもできる。例えば、コントローラ18は、アクセス制御リスト132を実装する際に、スイッチSW1、SW2及びSW3のあらゆる所望の組み合わせにフローテーブルエントリを提供することができる。
図11は、コントローラ18が実装できるネットワークポリシールールの例示的な図である。図11に示すように、ネットワークポリシールール152は、仮想スイッチVSW1とVSW2との間のネットワークトラフィックをブロックすべきである旨を規定する。ネットワークポリシールール152は、仮想ルータVR1のためのルーティングルールとして規定することができる。コントローラ18は、ネットワークポリシールール152を処理して、基本ネットワーク100のスイッチのために、仮想スイッチVSW1とVSW2との間のネットワークトラフィックをブロックするフローテーブルエントリを生成することができる。例えば、基本ネットワーク100の1又は2以上のスイッチに、仮想スイッチVSW1のエンドホストを識別する送信元エンドホスト情報と、仮想スイッチVSW2のエンドホストを識別する宛先エンドホスト情報とを含むネットワークパケットに一致するフローテーブルエントリを提供することができる。このシナリオでは、フローテーブルエントリが、このフローテーブルエントリに一致するネットワークパケットを破棄するようにスイッチに指示することができる。
仮想ネットワークトポロジは、必要に応じて再規定することもでき、これによってネットワークの構成及びネットワークポリシーの実施に柔軟性がもたらされる。図12の例に示すように、仮想ネットワークトポロジ162は、図7の仮想ネットワークトポロジ120のエンドホストEH2を仮想スイッチVSW2に再割り当てすることによって生成することができる。エンドホストの再割り当ては、基本ネットワーク100を変更することなく実行することができる(例えば、エンドホストEH2をスイッチSW3のポートP2に接続されたままにしておくことができる)。仮想ネットワークトポロジ162では、エンドホストEH2が、仮想スイッチVSW2の仮想ポートVP3に割り当てられる。
時間と共に変更される仮想ネットワークトポロジに適したネットワークポリシールールを維持することは困難な場合がある。図7の仮想ネットワークトポロジ120のコントローラ18が図9のフローテーブルエントリ142を用いて図8のアクセス制御リスト132及び図11のネットワークポリシールール152を実装するシナリオについて検討する。このシナリオでは、エンドホストEH2の再割り当てを通じて仮想ネットワークトポロジ120を図12のトポロジ162に変更した場合、アクセス制御リスト132はもはや有効でなくなる(例えば、アクセス制御リスト132は、もはやいずれのエンドホストも割り当てられていない仮想スイッチVSW1の仮想ポートVP2に対して規定されているからである)。今や、エンドホストEH2は仮想スイッチVSW2に接続されているので、TCPポート80上でエンドホストEH1からエンドホストEH2に送信されるネットワークパケットは、ネットワークポリシールール152が仮想スイッチVSW1とVSW2との間の全てのネットワークトラフィックをブロックするという理由で依然としてブロックされる。従って、アクセス制御リスト132の所望のネットワーク動作はネットワークポリシールール152によって実装されるので、アクセス制御リスト132が無効であると識別することは困難な場合がある。
コントローラ18は、数百、数千又はそれ以上ものネットワークポリシールールを実装できるので、時間と共にネットワークが変更されると、相当数のネットワークポリシーが無効になる可能性がある。コントローラ18は、無効なネットワークポリシールール、ネットワーク変更の識別、又は他の形でのネットワーク機能のテストに役立つと思われるテスト動作を実行することができる。コントローラのテスト動作は、ネットワーク管理者などのユーザがテストルールを用いて定義することができる。図13は、コントローラ18に提供できる例示的なテストルール172を示す図である。テストルール172は、テスト動作を実行する際に使用することができ、従ってテスト用ルールと呼ばれることもある。
テストルール172は、テストパラメータ及び実行するテストの予想結果を含むことができる。図13の例では、テストパラメータが、エンドホストEH1がTCPポート80上でエンドホストEH2に接続できるどうかをコントローラがテストすべきであることを識別している。一例として、テストパラメータは、送信元エンドホストとしてのエンドホストEH1、宛先エンドホストとしてのエンドホストEH2、及びTCPポート80を定めることができる。予想結果は、はい又はいいえ(例えば、真/合格又は偽/不合格)とすることができる。必要であれば、予想結果が任意の条件リスト174を含むこともできる。任意の条件リスト174は、トラバースされるスイッチ、トリガされるネットワークポリシールール、又はテストルール172に基づいてテストを行う際に生じる他の情報のリストを含むことができる。
図14は、図13のルール172などのテストルールによって定められたテストを行う際にコントローラが実行できる例示的なステップのフローチャート180である。
ステップ182において、コントローラは、ネットワーク構成を受け取ることができる。例えば、このネットワーク構成はユーザが定義することができ、仮想スイッチに対するエンドホストの割り当て、及び仮想ルータに対する仮想スイッチの割り当てを含むことができる。
ステップ184において、コントローラは、ネットワーク構成から論理ネットワークトポロジを生成することができる。例えば、図7の仮想ネットワークトポロジ120、図12の仮想ネットワークトポロジ162、又はいずれかの所望の仮想ネットワークトポロジを、ネットワーク構成によって定められる通りに生成することができる。
ステップ186において、コントローラは、生成された論理ネットワークトポロジの基本トポロジを識別することができる。コントローラは、仮想ネットワークトポロジの基本となるネットワークトポロジを決定する(例えば、基本ネットワークトポロジ内のスイッチ間の接続を識別する)際に、制御経路を介して物理及びハイパーバイザスイッチと通信することができる。
ステップ188において、コントローラは、一連のテストルールを受け取ることができる。一般に、一連のテストルールはユーザが定義することができ、各テストルールは、必要に応じて1又は2以上のそれぞれのネットワークポリシーの妥当性をテストするためのテストを定めることができる。例えば、コントローラは、図8のアクセス制御リスト132の妥当性をテストする図13のテストルール172を受け取ることができる。
ステップ190において、コントローラは、各テストルールについてテストを行うことができる。テストは、論理及び/又は物理ネットワークトポロジに基づいて行うことができる。テストは、コントローラにおけるシミュレーションを通じて、又はネットワーク内へのテストパケットの投入を通じて行うことができる。
図14の例におけるステップ182〜190の順序は例示にすぎない。必要であれば、これらのステップをあらゆる所望の順序で実行してネットワークのテストを行うこともできる。例えば、ユーザが定義したテストは、ネットワーク構成中又は通常のネットワーク動作中のあらゆる時点で受け取ることができる。必要であれば、コントローラは、フローチャート180のステップを周期的(例えば、5ミリ秒毎、100ミリ秒毎、10秒毎など)に実行することもできる。
図15は、シミュレーションを通じたテストルールのテストを行うためにコントローラが実行できるステップの例示的なフローチャート190である。フローチャート190のステップは、例えば図14のステップ190において実行することができる。
ステップ192において、コントローラは、テストルールのテストパラメータに基づいてテストパケットを生成することができる。例えば、図13のテストルール172の場合、コントローラは、TCPポート80を用いてエンドホストEH1からエンドホストEH2に送信されるパケットを模倣したテストパケットを生成することができる。このシナリオでは、送信元パケットヘッダフィールドに送信元エンドホストEH1の情報(例えば、エンドホストEH1のMAC及び/又はIPアドレス)を投入し、宛先パケットヘッダフィールドに宛先エンドホストEH2の情報を投入することができる。TCPポート80などの追加のテストパラメータは、テストパケットの対応するヘッダフィールド(例えば、TCPポートヘッダフィールド)に記憶することができる。
ステップ194において、コントローラは、パケットをコントローラに転送するスイッチを刺激したパケットをコントローラ自体に送信することができる。コントローラは、スイッチが含んでいたと思われる(例えば、エンドホストからのパケットを受け取ったスイッチポートを識別する)追加情報を含むPacket Inメッセージとしてパケットを送信することができる。この例は例示にすぎない。一般に、ステップ194において、コントローラは、典型的なネットワークパケットを処理する際のネットワーク動作をシミュレートすることにより(例えば、生成されたテストパケットの処理を刺激し、又は別様にトリガすることにより)、生成されたテストパケットのテストを開始することができる。
ステップ196において、コントローラは、論理ネットワークトポロジ(例えば、図14のステップ184において既にコントローラによって生成されている図7のトポロジ120などの論理ネットワークトポロジ)のパケットトラバーサルをシミュレートすることができる。コントローラは、パケットトラバーサルをシミュレートする際に、ネットワークパケットの送信元エンドホストと宛先エンドホストとの間の仮想ネットワークトポロジを通る仮想経路を識別することができる。コントローラは、トリガされたネットワークポリシールール、又は識別された仮想経路と別様に一致するネットワークポリシールールを識別することができる。
ステップ198において、コントローラは、物理及び/又はハイパーバイザスイッチの基本ネットワークを通る経路を識別する上で、識別された仮想経路を使用することができる。例えば、コントローラは、基本ネットワークを通る送信元エンドホストから宛先エンドホストへの経路を特定することができる。通常(例えば、コントローラの非テスト的動作中)、基本ネットワークを通る識別された経路内の物理及び/又はハイパーバイザスイッチには、(例えば、ステップ196において識別されたネットワークポリシールールを満たすようにパケットを転送又は破棄することによって)識別された経路を生成するようにスイッチに指示するフローテーブルエントリを提供することができる。しかしながら、コントローラは、ステップ196においてフローテーブルエントリを生成し、スイッチには提供しない。換言すれば、識別された経路は実装されない。
ステップ200において、コントローラは、ステップ196及び198からのシミュレーション結果を予想結果と比較することができる。コントローラが図13のテストルール172を実行するシナリオについて検討する。このシナリオでは、コントローラが、TCPポート80を使用するエンドホストEH1からエンドホストEH2へのテストパケットを生成することができる(ステップ192)。その後、コントローラは、テストパケットのシミュレーションを開始することができる(ステップ194)。コントローラは、図7の論理ネットワークトポロジ120を通るテストパケットのトラバーサルをシミュレートして、仮想スイッチVSW1を通るエンドホストEH1からエンドホストEH2への経路を識別することができる。コントローラは、アクセス制御リスト132が仮想スイッチVSW1の仮想ポートVP2においてテストパケットを破棄すべき旨を規定していると識別することができる(ステップ196)。コントローラは、図6の基本ネットワーク100のスイッチSW1、SW2及びSW3を通る経路を識別し、図9及び図10のフローテーブルエントリ142又は144などのフローテーブルエントリをスイッチに提供することなく生成することができる(ステップ198)。ステップ200において、コントローラは、(例えば、アクセス制御リスト132に従ってテストパケットが破棄されるという)シミュレーション結果がテストルール172の予想結果(すなわち、エンドホストEH1がTCPポート80上でエンドホストEH2に接続できないようにすべきである旨)に一致すると判定することができる。
図7の仮想ネットワークトポロジ120を図12の仮想ネットワークトポロジ162になるように変更し、コントローラ18が図8のアクセス制御リスト132及び図11のネットワークポリシールール152を実施する別のシナリオについて検討する。このシナリオでは、ステップ192〜198を以前のシナリオと同様に実行することができるが、シミュレーション結果では、ステップ196においてネットワークポリシールール152のみがトリガされたことを識別することができる。作成されたレポートを用いて、アクセス制御リスト132がもはや有効でない(すなわち、テストパケットはアクセス制御リスト132をトリガしないので)ことを識別する支援とすることができる。その後、ネットワークポリシールールの数を低減することによってコントローラ性能の改善を支援するように、アクセス制御リスト132を削除することができる。
図16は、送信元エンドホストから宛先エンドホストに送信できるネットワークパケットの例示的な図である。図16に示すように、ネットワークパケット202は、ヘッダフィールド204と、ネットワークを介して送信元エンドホストから宛先エンドホストに運ばれるデータとを含むことができる。ヘッダフィールドは、送信元インターネットプロトコル(IP)アドレス、宛先IPアドレス、TTLフィールドなどのレイヤ3(L3)ヘッダフィールドを含むことができる。ヘッダフィールドは、送信元イーサネットアドレス、宛先イーサネットアドレス及び仮想ローカルエリアネットワーク(VLAN)識別子などのレイヤ2(L2)ヘッダフィールドを含むこともできる。図16の例では、ネットワークパケット202が、送信元MACアドレスとしてのエンドホストEH1のMACアドレス(MACEH1)と、宛先MACアドレスとしてのエンドホストEH2のMACアドレス(MACEH2)と、TCPポート80とを含む。ネットワークパケット202は、送信元エンドホストEH1から宛先エンドホストEH2に送信されるパケットとすることができる。同様に、ネットワークパケット202は、(図15のステップ192において)エンドホストEH1からエンドホストEH2に送信されるパケットをシミュレートするようにコントローラによって生成されたテストパケットとすることもできる。
図17は、コントローラがスイッチ又はコントローラ自体から受け取ることができる例示的なPacket Inメッセージ206である。Packet Inメッセージ206は、ネットワークパケットと、このPacket Inメッセージを送信したスイッチからの追加情報とを含むことができる。図17の例では、Packet Inメッセージ206が、図16のネットワークパケット202を含み、スイッチSW1の着信スイッチポートP1を、ネットワークパケット202を受け取ったスイッチポートとして識別する。このシナリオでは、エンドホストEH1からのネットワークパケット202がスイッチポートP1において受け取られたことに応答して、図6のスイッチSW1がPacket Inメッセージ206をコントローラ18に提供することができる。同様に、コントローラ18は、ネットワークポリシールールテストを行う際に(例えば、図15のステップ194において)Packet Inメッセージ206を生成することもできる。
シナリオによっては、ネットワークをトラバースするテストパケットをコントローラが完全にシミュレートすることが困難な場合もある。図6のスイッチSW2がコントローラ18によって制御されない非クライアントスイッチである(例えば、スイッチSW2がコントローラクライアントを含まず、制御経路66によってコントローラ18に結合されず、従って制御経路を介してコントローラ18と通信しない)シナリオについて検討する。このシナリオでは、スイッチSW2がコントローラ18と無関係に動作し、従ってコントローラ18によるスイッチSW2の動作のシミュレーションが不正確であり、誤ったテスト結果をもたらす可能性がある。ネットワークの一部がコントローラと無関係に動作するようなシナリオでは、コントローラが、テストパケットをネットワークに直接投入し、このテストパケットをスイッチがどのように転送するかを観察することによってネットワークポリシールールのテストを行うことができる。コントローラは、ネットワークに投入されたテストパケットを追跡するために、テストパケットに識別情報をタグ付けすることができる。
図18は、コントローラがネットワークに投入できる例示的なタグ付きテストパケット210である。図18に示すように、ネットワークパケットのヘッダフィールドにタグ212を挿入してタグ付きネットワークパケットパケット210を作成することができる。タグ212は、あらゆる所望のビット数で形成することができ、元々のネットワークパケットのヘッダフィールドの未使用部分に挿入することができる。例えば、タグ212は、VLANヘッダフィールド、IPヘッダフィールド、VLANヘッダフィールド又はいずれかの所望のパケットヘッダフィールドの未使用部分に記憶することができる。
必要であれば、テストネットワークパケットをカプセル化して図19に示すようなカプセル化パケット214を形成することもできる。例えば、ネットワークパケットは、マルチプロトコルラベルスイッチング(MPLS)、仮想拡張LAN(VxLAN)、MAC−in−MAC、一般ルーティングのカプセル化(GRE)、又はネットワークパケットをカプセル化するいずれかの所望のプロトコルを用いてカプセル化することができる。ネットワークパケットのカプセル化は、元々のネットワークパケットに(例えば、新たな追加のヘッダフィールドに)タグ216を加えることによってタグ付きネットワークパケットを生成することを含むことができる。
図20は、タグ付きネットワークパケットをネットワークに投入することによってネットワークポリシールールテストを行うためにコントローラが実行できる例示的なステップのフローチャート220である。
ステップ222において、コントローラは、(例えば、図15のステップ192と同様に)テストルールのテストパラメータに基づいてテストパケットを生成することができる。
ステップ224において、コントローラは、テストパケットに識別情報をタグ付けすることができる。例えば、コントローラは、テストパケットから、タグ付きネットワークパケット210又はタグ付きネットワークパケット214を生成することができる。
ステップ226において、コントローラは、ネットワークのスイッチに、タグ付きテストパケットがその宛先エンドホストに到達するのを防ぎながら、タグ付きテストパケットを受け取ったことに応答して情報を提供するように命令することができる。例えば、コントローラは、ネットワークパケットを通常通りに宛先エンドホストに転送することに加えて、ネットワークパケットのコピーをPacket Inメッセージとしてコントローラに転送するようにスイッチに命令することができる。コントローラは、宛先エンドホストが接続されているスイッチを制御することにより(例えば、タグ付きテストパケットを宛先エンドホストに転送しないようにスイッチに指示することにより)、タグ付きテストパケットがその宛先エンドホストに到達するのを防ぐようにスイッチを制御することができる。一例として、コントローラは、タグ付きネットワークパケットに一致するフローテーブルエントリをスイッチに提供して、タグ付きネットワークパケットに関連する情報を(例えば、Packet Inメッセージとして)コントローラに転送するようにスイッチに指示することができる。このシナリオでは、フローテーブルエントリが、対応するパケットヘッダフィールドにタグを含むタグ付きネットワークパケットに一致するように、対応するパケットヘッダ一致フィールドにもタグを含むことができる。
ステップ228において、コントローラは、タグ付きテストパケットの送信元エンドホストに関連するエントリスイッチ(例えば、送信元エンドホストに接続されたエントリスイッチ、又はネットワークトポロジ内で送信元エンドホストに最も近いクライアントスイッチ)を識別することができる。
ステップ230において、コントローラは、エントリスイッチにおいてタグ付きテストパケットを投入することができる。例えば、コントローラは、タグ付きテストパケットと、このタグ付きテストパケットを処理して転送する(例えば、予めコントローラが提供したフローテーブルエントリに基づいてタグ付きテストパケットを処理する)指示とを含むメッセージをエントリスイッチに送信することができる。
ネットワーク内のスイッチは、タグ付きネットワークパケットを転送する際に、(例えば、ステップ226においてコントローラから与えられた指示に従って)タグ付きネットワークパケットに関する情報をコントローラに転送することができる。コントローラは、タグ付きネットワークパケットに関する情報をスイッチから受け取り、テスト結果として記憶することができる。コントローラは、スイッチから受け取った情報を処理してテスト結果を生成することもできる。例えば、コントローラは、情報を処理して、タグ付きネットワークパケットがトラバースするスイッチを通じた経路を識別することができる。
ステップ234において、コントローラは、テスト結果をテストルール(例えば、図13のテストルール172)の予想結果と比較することができる。コントローラは、テスト結果が予想結果に一致するかどうかを識別するレポートを作成することができる。必要であれば、コントローラは、ネットワークパケットがネットワークを通じてトラバースする経路(例えば、物理及び/又はハイパーバイザスイッチを通る経路)を識別するような情報を含めることもできる。
ある実施形態によれば、スイッチに結合されたエンドホストを有するネットワーク内のスイッチを制御するコントローラの使用方法であって、所与のネットワークポリシールールを受け取るステップと、ネットワークが所与のネットワークポリシールールを満たすかどうかを判定するテストを行うステップと、を含む方法が提供される。
別の実施形態によれば、この方法が、エンドホストグループから仮想スイッチを生成するステップと、仮想スイッチから仮想ネットワークトポロジを生成するステップとをさらに含み、各仮想スイッチは、それぞれのエンドホストに割り当てられた仮想ポートを有し、所与のネットワークポリシールールが所与の仮想ポートに対して定められ、ネットワークが所与のネットワークポリシールールを満たすかどうかを判定するテストを行うステップは、生成された仮想ネットワークトポロジに基づいてテストを行うステップを含む。
別の実施形態によれば、この方法が、テストパラメータと予想テスト結果とを識別するテストルールを受け取るステップをさらに含む。
別の実施形態によれば、生成された仮想ネットワークトポロジに基づいてネットワークが所与のネットワークポリシールールを満たすかどうかを判定するテストを行うステップが、受け取ったテストルールのテストパラメータに基づいてテストパケットを生成するステップを含む。
別の実施形態によれば、生成された仮想ネットワークトポロジに基づいてネットワークが所与のネットワークポリシールールを満たすかどうかを判定するテストを行うステップが、仮想ネットワークトポロジの仮想経路を通るテストパケットのパケットトラバーサルをシミュレートするステップを含む。
別の実施形態によれば、コントローラが、所与のネットワークポリシールールを含む複数のネットワークポリシールールを実装し、方法が、仮想ネットワークトポロジのパケットトラバーサルのシミュレーション中にトリガされたネットワークポリシールールを識別するステップを含む。
別の実施形態によれば、生成された仮想ネットワークトポロジに基づいてネットワークが所与のネットワークポリシールールを満たすかどうかを判定するテストを行うステップが、仮想経路の基本経路を形成する一連のスイッチを決定するステップを含む。
別の実施形態によれば、生成された仮想ネットワークトポロジに基づいてネットワークが所与のネットワークポリシールールを満たすかどうかを判定するテストを行うステップが、仮想経路の基本経路を実装するフローテーブルエントリを、一連のスイッチに提供することなく生成するステップを含む。
別の実施形態によれば、生成された仮想ネットワークトポロジに基づいてネットワークが所与のネットワークポリシールールを満たすかどうかを判定するテストを行うステップが、シミュレートされたパケットトラバーサルの結果を予想結果と比較して、ネットワークが所与のネットワークポリシールールを満たすかどうかを判定するステップを含む。
別の実施形態によれば、テストルールの予想結果が、トリガされると予想されるネットワークポリシールールのリストを含み、シミュレートされたパケットトラバーサルの結果を予想結果と比較して、ネットワークが所与のネットワークポリシールールを満たすかどうかを判定するステップは、ネットワークポリシールールのリストをトリガされたネットワークポリシールールと比較するステップを含む。
別の実施形態によれば、生成された仮想ネットワークトポロジに基づいてネットワークが所与のネットワークポリシールールを満たすかどうかを判定するテストを行うステップが、テストパケットからタグ付きテストパケットを生成するステップと、タグ付きテストパケットをネットワークに投入するステップと、テストルールの予想結果、及びスイッチから受け取ったタグ付きテストパケットに関する情報に基づいて、ネットワークが所与のネットワークポリシールールを満たすかどうかを判定するステップとを含む。
別の実施形態によれば、生成された仮想ネットワークトポロジに基づいてネットワークが所与のネットワークポリシールールを満たすかどうかを判定するテストを行うステップが、タグ付きテストパケットに関する情報をコントローラに送信するようにスイッチに指示する、スイッチがタグ付きテストパケットをタグ付きテストパケットの宛先エンドホストに転送するのを防ぐフローテーブルエントリをスイッチに提供するステップと、スイッチからの情報及びテストルールの予想結果に基づいてネットワークが所与のネットワークポリシールールを満たすかどうかを判定するステップとを含む。
ある実施形態によれば、スイッチに結合されたエンドホストを有するネットワーク内のスイッチを制御するコントローラの使用方法であって、ネットワークのためのネットワークトポロジ情報を維持するステップと、ユーザが定義したテストルールを受け取るステップと、ユーザが定義したテストルールに基づいてテストパケットを生成するステップと、ネットワークトポロジ情報に基づいてテストパケットを処理することにより、ユーザが定義したテストルールをネットワークが満たすかどうかを判定するステップと、を含む方法が提供される。
別の実施形態によれば、この方法が、エンドホストグループから仮想スイッチを生成するステップをさらに含み、ネットワークトポロジ情報は、スイッチのためのネットワークトポロジ情報と、仮想スイッチのための仮想ネットワークトポロジ情報とを含む。
別の実施形態によれば、ユーザが定義したテストルールが、予想結果と、送信元エンドホスト及び宛先エンドホストを識別するテストパラメータとを含み、テストパケットは、ユーザが定義したテストルールの送信元エンドホスト及び宛先エンドホストを識別し、テストパケットを処理するステップは、ネットワークトポロジ情報に基づいて、ネットワークを通じた送信元エンドホストから宛先エンドホストへのネットワークパケットのトラバーサルをシミュレートするステップを含む。
別の実施形態によれば、ユーザが定義したテストルールをネットワークが満たすかどうかを判定するステップが、シミュレートしたネットワークパケットのトラバーサルが、ユーザが定義したテストルールの予想結果に一致するかどうかを判定するステップを含む。
ある実施形態によれば、ネットワーク内のスイッチを制御するコントローラの使用方法であって、ユーザが定義したテストルールを受け取るステップと、ユーザが定義したテストルールに基づいてタグ付きテストパケットを生成するステップと、タグ付きテストパケットをネットワークに投入するステップと、を含む方法が提供される。
別の実施形態によれば、タグ付きテストパケットを生成するステップが、テストパケットを生成するステップと、テストパケットのヘッダフィールドに識別情報を挿入してタグ付きテストパケットを生成するステップとを含む。
別の実施形態によれば、タグ付きテストパケットを生成するステップが、テストパケットを生成するステップと、識別情報を用いてテストパケットをカプセル化してタグ付きテストパケットを生成するステップとを含む。
別の実施形態によれば、この方法が、タグ付きテストパケットを受け取ったことに応答してテストパケットに関する情報を提供するようにスイッチを制御するステップと、スイッチによって提供された情報に基づいて、タグ付きテストパケットがトラバースした経路を識別するステップとを含む。
別の実施形態によれば、ユーザが定義したテストルールが予想結果を含み、方法は、識別された経路に基づいて、ユーザが定義したテストルールの予想結果をネットワークが満たすかどうかを判定するステップを含む。
上記の説明は、本発明の原理を例示したものにすぎず、当業者であれば、本発明の範囲及び思想から逸脱することなく様々な変更を行うことができる。
192 テストパラメータに基づいてテストパケットを生成
194 Packet Inメッセージとして自身にパケット送信
196 論理ネットワークトポロジのパケットトラバーサルをシミュレートするとともに、シミュレーション中にトリガされるネットワークポリシールールを識別
198 仮想経路及び基本ネットワークトポロジから基本経路を識別し、識別された経路を実装しない(例えば、フローテーブルエントリを生成)
200 シミュレーション結果を予想結果と比較してレポートを作成

Claims (14)

  1. スイッチに結合されたエンドホストを有するネットワーク内の前記スイッチを制御するコントローラの使用方法であって、
    所与のネットワークポリシールールを受け取るステップと、
    テストパラメータ及び予想テスト結果を含むテストルールを受け取るステップであって、前記予想テスト結果は、ユーザ入力データ及びシミュレーションデータからなるグループから選択されたデータより決定される当該ステップと、
    前記ネットワークが前記所与のネットワークポリシールールを満たすかどうかを判定するテストを行うステップであって、
    前記受け取ったテストルールの前記テストパラメータに基づいてテストパケットを生成すること、
    前記テストパケットを用いながらトリガされる実際のネットワークポリシールールを生成すること、
    無効なネットワークポリシールールを識別するため前記実際のネットワークポリシールールを前記予想テスト結果と比較すること、
    を含む当該ステップと、
    を含むことを特徴とする方法。
  2. エンドホストグループから仮想スイッチを生成するステップと、
    前記仮想スイッチから仮想ネットワークトポロジを生成するステップと、
    をさらに含み、各仮想スイッチは、それぞれのエンドホストに割り当てられた仮想ポートを有し、前記所与のネットワークポリシールールが所与の仮想ポートに対して定められ、前記ネットワークが前記所与のネットワークポリシールールを満たすかどうかを判定する前記テストを行うステップは、前記生成された仮想ネットワークトポロジに基づいて前記テストを行うステップを含む、請求項1に記載の方法。
  3. 前記生成された仮想ネットワークトポロジに基づいて前記ネットワークが前記所与のネットワークポリシールールを満たすかどうかを判定する前記テストを行うステップは、前記仮想ネットワークトポロジの仮想経路を通る前記テストパケットのパケットトラバーサルをシミュレートするステップをさらに含む、請求項に記載の方法。
  4. 前記コントローラは、前記所与のネットワークポリシールールを含む複数のネットワークポリシールールを実装し、前記方法は、前記仮想ネットワークトポロジの前記パケットトラバーサルのシミュレーション中にトリガされた前記実際のネットワークポリシールールを識別するステップをさらに含む、請求項に記載の方法。
  5. 前記生成された仮想ネットワークトポロジに基づいて前記ネットワークが前記所与のネットワークポリシールールを満たすかどうかを判定する前記テストを行うステップは、前記ネットワークの基本経路を形成する一連のスイッチを前記ネットワークにおいて決定するステップをさらに含前記ネットワークの基本経路は、記仮想ネットワークトポロジの仮想経路に対応する、請求項に記載の方法。
  6. 前記生成された仮想ネットワークトポロジに基づいて前記ネットワークが前記所与のネットワークポリシールールを満たすかどうかを判定する前記テストを行うステップは、前記仮想経路に対応する前記基本経路を実装するフローテーブルエントリを、前記一連のスイッチに提供することなく生成するステップをさらに含む、請求項に記載の方法。
  7. 前記生成された仮想ネットワークトポロジに基づいて前記ネットワークが前記所与のネットワークポリシールールを満たすかどうかを判定する前記テストを行うステップは、前記シミュレートされたパケットトラバーサルの結果を前記予想テスト結果と比較して、前記ネットワークが前記所与のネットワークポリシールールを満たすかどうかを判定するステップをさらに含む、請求項に記載の方法。
  8. 前記テストルールの前記予想テスト結果は、トリガされると予想されるネットワークポリシールールのリストを含み、前記シミュレートされたパケットトラバーサルの結果を前記予想テスト結果と比較して、前記ネットワークが前記所与のネットワークポリシールールを満たすかどうかを判定するステップは、前記ネットワークポリシールールのリストを前記トリガされたネットワークポリシールールと比較するステップを含む、請求項に記載の方法。
  9. 前記生成された仮想ネットワークトポロジに基づいて前記ネットワークが前記所与のネットワークポリシールールを満たすかどうかを判定する前記テストを行うステップは、
    前記テストパケットからタグ付きテストパケットを生成するステップと、
    前記タグ付きテストパケットを前記ネットワークに投入するステップと、
    前記テストルールの前記予想テスト結果、及び前記スイッチから受け取った前記タグ付きテストパケットに関する情報に基づいて、前記ネットワークが前記所与のネットワークポリシールールを満たすかどうかを判定するステップと、
    をさらに含む請求項に記載の方法。
  10. 前記生成された仮想ネットワークトポロジに基づいて前記ネットワークが前記所与のネットワークポリシールールを満たすかどうかを判定する前記テストを行うステップは、
    前記タグ付きテストパケットに関する情報を前記コントローラに送信するように前記スイッチに指示する、前記スイッチが前記タグ付きテストパケットを該タグ付きテストパケットの宛先エンドホストに転送するのを防ぐフローテーブルエントリを前記スイッチに提供するステップと、
    前記スイッチからの前記情報及び前記テストルールの前記予想テスト結果に基づいて前記ネットワークが前記所与のネットワークポリシールールを満たすかどうかを判定するステップと、
    をさらに含む請求項に記載の方法。
  11. スイッチに結合されたエンドホストを有するネットワーク内の前記スイッチを制御するコントローラの使用方法であって、
    前記ネットワークのためのネットワークトポロジ情報を維持するステップと、
    エンドホストグループから仮想スイッチを生成するステップであって、前記ネットワークトポロジ情報は、前記スイッチのためのネットワークトポロジ情報と、前記仮想スイッチのための仮想ネットワークトポロジ情報とを含む当該ステップと、
    ユーザが定義したテストルールを受け取るステップと、
    前記ユーザが定義したテストルールに基づいてテストパケットを生成するステップと、 前記ネットワークトポロジ情報に基づいて前記テストパケットを処理することにより、前記ユーザが定義したテストルールを前記ネットワークが満たすかどうかを判定するステップであって、前記ユーザが定義したテストルールは、予想結果と、送信元エンドホスト及び宛先エンドホストを識別するテストパラメータとを含み、前記テストパケットは、前記ユーザが定義したテストルールの前記送信元エンドホスト及び前記宛先エンドホストを識別し、前記テストパケットを処理するステップは、前記ネットワークトポロジ情報に基づいて、前記ネットワークを通じた前記送信元エンドホストから前記宛先エンドホストへの前記テストパケットのトラバーサルをシミュレートすることを含む当該ステップと、
    を含むことを特徴とする方法。
  12. 前記ユーザが定義したテストルールを前記ネットワークが満たすかどうかを判定するステップは、前記シミュレートした前記テストパケットのトラバーサルが、前記ユーザが定義したテストルールの前記予想結果に一致するかどうかを判定するステップを含む、請求項11に記載の方法。
  13. ネットワーク内のスイッチを制御するコントローラの使用方法であって、
    ユーザが定義したテストルールを受け取るステップと、
    前記ユーザが定義したテストルールに基づいてタグ付きテストパケットを生成するステップであって
    テストパケットを生成すること、
    前記テストパケットのヘッダフィールドに識別情報を挿入して前記タグ付きテストパケットを生成すること、
    を含む当該ステップと、
    前記タグ付きテストパケットを前記ネットワークに投入するステップと、
    を含むことを特徴とする方法。
  14. 前記タグ付きテストパケットを受け取ったことに応答して前記テストパケットに関する情報を提供するように前記スイッチを制御するステップと、
    前記スイッチによって提供された前記情報に基づいて、前記タグ付きテストパケットがトラバースした経路を識別するステップと、及び、
    前記ユーザが定義したテストルールは予想結果を含み、前記識別された経路に基づいて、前記ユーザが定義したテストルールの前記予想結果を前記ネットワークが満たすかどうかを判定するステップと、
    をさらに含む、請求項13に記載の方法。
JP2016533570A 2013-11-20 2014-11-19 コントローラを用いてネットワークをテストするシステム及び方法 Expired - Fee Related JP6302064B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/085,538 US9819551B2 (en) 2013-11-20 2013-11-20 Systems and methods for testing networks with a controller
US14/085,538 2013-11-20
PCT/US2014/066317 WO2015077285A1 (en) 2013-11-20 2014-11-19 Systems and methods for testing networks with a controller

Publications (2)

Publication Number Publication Date
JP2017504991A JP2017504991A (ja) 2017-02-09
JP6302064B2 true JP6302064B2 (ja) 2018-03-28

Family

ID=52021439

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016533570A Expired - Fee Related JP6302064B2 (ja) 2013-11-20 2014-11-19 コントローラを用いてネットワークをテストするシステム及び方法

Country Status (4)

Country Link
US (1) US9819551B2 (ja)
EP (1) EP3058681B1 (ja)
JP (1) JP6302064B2 (ja)
WO (1) WO2015077285A1 (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286047B1 (en) 2013-02-13 2016-03-15 Cisco Technology, Inc. Deployment and upgrade of network devices in a network environment
US20150180769A1 (en) * 2013-12-20 2015-06-25 Alcatel-Lucent Usa Inc. Scale-up of sdn control plane using virtual switch based overlay
CN103746884B (zh) * 2014-01-15 2017-07-14 加弘科技咨询(上海)有限公司 一种利用交换机进行流量测试的方法及系统
US9563591B2 (en) * 2014-03-06 2017-02-07 International Business Machines Corporation Peripheral component interconnect express (PCIe) ping in a switch-based environment
US10374904B2 (en) 2015-05-15 2019-08-06 Cisco Technology, Inc. Diagnostic network visualization
US9800497B2 (en) 2015-05-27 2017-10-24 Cisco Technology, Inc. Operations, administration and management (OAM) in overlay data center environments
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US10089099B2 (en) 2015-06-05 2018-10-02 Cisco Technology, Inc. Automatic software upgrade
US9967158B2 (en) 2015-06-05 2018-05-08 Cisco Technology, Inc. Interactive hierarchical network chord diagram for application dependency mapping
US10033766B2 (en) 2015-06-05 2018-07-24 Cisco Technology, Inc. Policy-driven compliance
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
JP6438850B2 (ja) * 2015-06-10 2018-12-19 株式会社日立製作所 評価システム
US10009229B2 (en) * 2015-06-11 2018-06-26 Cisco Technology, Inc. Policy verification in a network
US9781037B2 (en) * 2015-09-15 2017-10-03 Cisco Technology, Inc. Method and apparatus for advanced statistics collection
TWI591983B (zh) * 2015-11-05 2017-07-11 Chunghwa Telecom Co Ltd Path State Return Algorithm Based on Centralized Control Plane
US10135862B1 (en) * 2015-12-04 2018-11-20 Amazon Technologies, Inc. Testing security incident response through automated injection of known indicators of compromise
US10171357B2 (en) 2016-05-27 2019-01-01 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10931629B2 (en) 2016-05-27 2021-02-23 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10289438B2 (en) 2016-06-16 2019-05-14 Cisco Technology, Inc. Techniques for coordination of application components deployed on distributed virtual machines
US10523533B2 (en) * 2016-06-21 2019-12-31 International Business Machines Corporation Cloud network assessment based on scoring virtual network performance relative to underlying network performance
US10110469B2 (en) * 2016-07-21 2018-10-23 Cisco Technology, Inc. Detecting and preventing network loops
US10708183B2 (en) 2016-07-21 2020-07-07 Cisco Technology, Inc. System and method of providing segment routing as a service
US10972388B2 (en) 2016-11-22 2021-04-06 Cisco Technology, Inc. Federated microburst detection
US10491513B2 (en) 2017-01-20 2019-11-26 Hewlett Packard Enterprise Development Lp Verifying packet tags in software defined networks
US10708152B2 (en) 2017-03-23 2020-07-07 Cisco Technology, Inc. Predicting application and network performance
US10523512B2 (en) 2017-03-24 2019-12-31 Cisco Technology, Inc. Network agent for generating platform specific network policies
US10764141B2 (en) 2017-03-27 2020-09-01 Cisco Technology, Inc. Network agent for reporting to a network policy system
US10250446B2 (en) 2017-03-27 2019-04-02 Cisco Technology, Inc. Distributed policy store
US10594560B2 (en) 2017-03-27 2020-03-17 Cisco Technology, Inc. Intent driven network policy platform
US10873794B2 (en) 2017-03-28 2020-12-22 Cisco Technology, Inc. Flowlet resolution for application performance monitoring and management
US20180337840A1 (en) * 2017-05-18 2018-11-22 Satori Worldwide, Llc System and method for testing filters for data streams in publisher-subscriber networks
US10680887B2 (en) 2017-07-21 2020-06-09 Cisco Technology, Inc. Remote device status audit and recovery
US10554501B2 (en) 2017-10-23 2020-02-04 Cisco Technology, Inc. Network migration assistant
US10523541B2 (en) 2017-10-25 2019-12-31 Cisco Technology, Inc. Federated network and application data analytics platform
US10594542B2 (en) 2017-10-27 2020-03-17 Cisco Technology, Inc. System and method for network root cause analysis
US10594720B2 (en) * 2017-11-03 2020-03-17 International Business Machines Corporation Exercising security control point (SCP) capabilities on live systems based on internal validation processing
US10447539B2 (en) 2017-12-21 2019-10-15 Uber Technologies, Inc. System for provisioning racks autonomously in data centers
US11233821B2 (en) 2018-01-04 2022-01-25 Cisco Technology, Inc. Network intrusion counter-intelligence
US11765046B1 (en) 2018-01-11 2023-09-19 Cisco Technology, Inc. Endpoint cluster assignment and query generation
US10917438B2 (en) 2018-01-25 2021-02-09 Cisco Technology, Inc. Secure publishing for policy updates
US10826803B2 (en) 2018-01-25 2020-11-03 Cisco Technology, Inc. Mechanism for facilitating efficient policy updates
US10873593B2 (en) 2018-01-25 2020-12-22 Cisco Technology, Inc. Mechanism for identifying differences between network snapshots
US10798015B2 (en) 2018-01-25 2020-10-06 Cisco Technology, Inc. Discovery of middleboxes using traffic flow stitching
US10999149B2 (en) 2018-01-25 2021-05-04 Cisco Technology, Inc. Automatic configuration discovery based on traffic flow data
US10574575B2 (en) 2018-01-25 2020-02-25 Cisco Technology, Inc. Network flow stitching using middle box flow stitching
US11128700B2 (en) 2018-01-26 2021-09-21 Cisco Technology, Inc. Load balancing configuration based on traffic flow telemetry
US10554618B2 (en) * 2018-03-02 2020-02-04 Avaya Inc. Domain identifier based access policy control
US10855522B2 (en) 2018-08-13 2020-12-01 Netapp Inc. Dual port storage device emulation
EP3910884A4 (en) * 2019-01-10 2022-09-28 NEC Communication Systems, Ltd. VEHICLE CONTROL DEVICE, VEHICLE NETWORK DESIGN DEVICE, COMMUNICATION METHOD, AND PROGRAM
CN111711536B (zh) * 2020-06-05 2023-06-06 北京计算机技术及应用研究所 一种云架构下防火墙测试环境构建方法
US11323354B1 (en) 2020-10-09 2022-05-03 Keysight Technologies, Inc. Methods, systems, and computer readable media for network testing using switch emulation
US11483227B2 (en) 2020-10-13 2022-10-25 Keysight Technologies, Inc. Methods, systems and computer readable media for active queue management
US11483228B2 (en) 2021-01-29 2022-10-25 Keysight Technologies, Inc. Methods, systems, and computer readable media for network testing using an emulated data center environment
US11405302B1 (en) * 2021-03-11 2022-08-02 Keysight Technologies, Inc. Methods, systems, and computer readable media for network testing using configurable test infrastructure
US11388081B1 (en) 2021-03-30 2022-07-12 Keysight Technologies, Inc. Methods, systems, and computer readable media for impairment testing using an impairment device
CN113592305A (zh) * 2021-07-29 2021-11-02 北京百度网讯科技有限公司 测试方法、装置、电子设备以及存储介质
US11729087B2 (en) 2021-12-03 2023-08-15 Keysight Technologies, Inc. Methods, systems, and computer readable media for providing adaptive background test traffic in a test environment
US11765068B2 (en) 2021-12-22 2023-09-19 Keysight Technologies, Inc. Methods, systems, and computer readable media for programmable data plane processor based traffic impairment
US11962434B2 (en) 2022-07-08 2024-04-16 Keysight Technologies, Inc. Methods, systems, and computer readable media for capturing dropped packets at a switching fabric emulator

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822520A (en) * 1995-12-26 1998-10-13 Sun Microsystems, Inc. Method and apparatus for building network test packets
US7650424B2 (en) * 2000-04-04 2010-01-19 Alcatel-Lucent Usa Inc. Supporting mobile hosts on an internet protocol network
US7020166B2 (en) 2000-10-03 2006-03-28 Broadcom Corporation Switch transferring data using data encapsulation and decapsulation
US7342892B2 (en) * 2002-06-26 2008-03-11 Sbc Properties, L.P. Controlled exception-based routing protocol validation
US7194661B1 (en) * 2002-12-23 2007-03-20 Intel Corporation Keep alive buffers (KABs)
CN1757210A (zh) 2003-01-15 2006-04-05 希尔纳公司 用于在光网络上传输分组数据的方法和装置
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
US7733795B2 (en) 2006-11-28 2010-06-08 Oracle America, Inc. Virtual network testing and deployment using network stack instances and containers
US20080189769A1 (en) 2007-02-01 2008-08-07 Martin Casado Secure network switching infrastructure
US20090007218A1 (en) 2007-06-30 2009-01-01 Hubbard Scott M Switched-Based Network Security
US20090109864A1 (en) * 2007-10-24 2009-04-30 Inventec Corporation Network card testing system
US20100050229A1 (en) * 2008-08-19 2010-02-25 International Business Machines Corporation Validating network security policy compliance
US8214193B2 (en) * 2008-10-01 2012-07-03 At&T Intellectual Property I, Lp Virtualized policy tester
JP5141512B2 (ja) 2008-11-27 2013-02-13 富士通株式会社 通信制御方法及び伝送装置
US7937438B1 (en) 2009-12-07 2011-05-03 Amazon Technologies, Inc. Using virtual networking devices to manage external connections
US8634297B2 (en) 2010-11-01 2014-01-21 Cisco Technology, Inc. Probing specific customer flow in layer-2 multipath networks
US8416796B2 (en) * 2011-05-06 2013-04-09 Big Switch Networks, Inc. Systems and methods for managing virtual switches
JP5811703B2 (ja) * 2011-09-02 2015-11-11 富士通株式会社 分散制御プログラム、分散制御方法、および情報処理装置
TWI474681B (zh) * 2012-05-11 2015-02-21 Hope Bay Technologies Inc 雲端系統中的虛擬機器連線方法
US8908539B1 (en) * 2012-05-25 2014-12-09 Google Inc. Systems and methods for testing network connections of a centrally-controlled network
US9929919B2 (en) * 2012-10-30 2018-03-27 Futurewei Technologies, Inc. System and method for virtual network abstraction and switching
US8931046B2 (en) * 2012-10-30 2015-01-06 Stateless Networks, Inc. System and method for securing virtualized networks
US20140133305A1 (en) * 2012-11-15 2014-05-15 Fujitsu Network Communications, Inc. Test Packet Injection System
WO2014153421A2 (en) * 2013-03-19 2014-09-25 Yale University Managing network forwarding configurations using algorithmic policies
US9007922B1 (en) * 2013-05-23 2015-04-14 Juniper Networks, Inc. Systems and methods for testing and analyzing controller-based networks
CN105684355A (zh) * 2013-08-29 2016-06-15 惠普发展公司,有限责任合伙企业 自动配置虚拟路由器

Also Published As

Publication number Publication date
JP2017504991A (ja) 2017-02-09
US20150138993A1 (en) 2015-05-21
US9819551B2 (en) 2017-11-14
EP3058681A1 (en) 2016-08-24
WO2015077285A1 (en) 2015-05-28
EP3058681B1 (en) 2020-12-23

Similar Documents

Publication Publication Date Title
JP6302064B2 (ja) コントローラを用いてネットワークをテストするシステム及び方法
CN106797351B (zh) 使用控制器执行逻辑网络转发的系统和方法
EP3072264B1 (en) Method for performing network service insertion
EP3158694B1 (en) Systems and methods for performing operations on networks using a controller
JP6004405B2 (ja) コントローラでネットワークパケット転送を管理するシステム及び方法
CN106416132B (zh) 使用控制器处的交换机建模接口控制网络交换机的系统和方法
US10270645B2 (en) Systems and methods for handling link aggregation failover with a controller
US8856384B2 (en) System and methods for managing network protocol address assignment with a controller
JP5864758B2 (ja) バーチャルスイッチを介してネットワークトラフィックをコントロールするシステム及び方法
US9413614B1 (en) Systems and methods for determining network topologies
US8787388B1 (en) System and methods for forwarding packets through a network
US9036636B1 (en) System and methods for managing network packet broadcasting
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
US11463356B2 (en) Systems and methods for forming on-premise virtual private cloud resources
US9356838B1 (en) Systems and methods for determining network forwarding paths with a controller

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170912

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180301

R150 Certificate of patent or registration of utility model

Ref document number: 6302064

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees