(57)【要約】  本発明によるコントローラは、異なるコントローラで管理される仮想ネットワーク間に転送されるパケットデータの受信通知を前記スイッチから取得することで、前記パケットデータの送信仮想ノードと受信仮想ノードを特定する。管理装置は、特定された送信仮想ノードと受信仮想ノードを共通の仮想ノードとして、異なるコントローラで管理された仮想ネットワークを結合する。これにより、オープンフロー技術を利用した複数のコントローラによって制御された仮想ネットワーク全体を一元的に管理することができる。
2013118690.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが、通信経路を算出し、前記通信経路上のスイッチに対してフローエントリを設定し、前記通信経路に基づいて構築された仮想ネットワークを管理する複数のコントローラと、
自身のフローテーブルに設定された前記フローエントリに従って、受信パケットの中継動作を行うスイッチと、
前記複数のコントローラによって管理される複数の前記仮想ネットワークを結合して視認可能に出力する管理装置と
を具備し、
前記複数のコントローラのうち、一のコントローラは、自身及び他のコントローラのそれぞれで管理される２つの仮想ネットワーク間に転送されるパケットデータの受信通知を前記スイッチから取得することで、前記パケットデータの送信仮想ノードと受信仮想ノードを特定し、
前記管理装置は、前記送信仮想ノードと前記受信仮想ノードを共通の仮想ノードとして、前記２つの仮想ネットワークを結合し、視認可能に出力する
コンピュータシステム。
【請求項２】
請求項１に記載のコンピュータシステムにおいて、
前記２つのコントローラのうち、第１コントローラは、自身が管理する第１仮想ネットワーク上の第１ホストから、他の第２コントローラで管理する第２仮想ネットワーク上の第２ホストに試験パケットを転送し、
前記第２コントローラは、前記試験パケットを受信したスイッチから通知される前記試験パケットと、自身が管理する前記第２仮想ネットワークのトポロジ情報とに基づき、前記第２仮想ネットワークにおいて前記試験パケットを受信した仮想ノードを前記受信仮想ノードとして特定し、前記受信仮想ノードの情報を含む試験パケット受信情報を、前記第２ホストから前記第１ホストに転送し、
前記第１コントローラは、前記試験パケット受信情報を受信したスイッチから通知される前記試験パケット受信情報と、自身が管理する前記第１仮想ネットワークのトポロジ情報とに基づき、前記第１仮想ネットワークにおいて前記試験パケット受信情報を受信した仮想ノードを前記送信仮想ノードとして特定し、前記送信仮想ノードと、前記試験パケット受信情報に含まれる前記受信仮想ノードとを対応付けて、対応仮想ノード情報として前記管理装置に通知する
コンピュータシステム。
【請求項３】
請求項２に記載のコンピュータシステムにおいて、
前記仮想ノードは仮想ブリッジを含み、
前記対応仮想ノード情報には、対応する送信仮想ブリッジと受信仮想ブリッジの組合せが設定され、
前記管理装置は、前記複数の仮想ネットワークのトポロジ情報と、前記対応仮想ノード情報とに基づいて、前記複数の仮想ネットワークに共通の仮想ブリッジを特定し、前記共通の仮想ブリッジを介して前記複数の仮想ネットワークを結合する
コンピュータシステム。
【請求項４】
請求項３に記載のコンピュータシステムにおいて、
前記仮想ノードは前記仮想ブリッジの接続先として見える仮想エクスターナルを含み、
前記仮想ノード情報には、対応する送信仮想エクスターナルと受信仮想エクスターナルの組合せが設定され、
前記管理装置は、前記複数の仮想ネットワークのトポロジ情報と、前記対応仮想ノード情報とに基づいて、前記複数の仮想ネットワークに共通の仮想エクスターナルを特定し、前記共通の仮想エクスターナルを介して前記複数の仮想ネットワークを結合する
コンピュータシステム。
【請求項５】
請求項１から４のいずれか１項に記載のコンピュータシステムにおいて、
前記コントローラは、仮想ノードにＶＬＡＮ名が対応付けられて設定された仮想ネットワークのトポロジ情報を保持し、
前記スイッチは、パケットデータの受信通知の際、前記パケットデータを受信したポートに割り当てられたＶＬＡＮ名をコントローラに通知し、
前記コントローラは、前記トポロジ情報に基づき、前記ＶＬＡＮ名により前記パケットデータを受信した仮想ノードを特定する
コンピュータシステム。
【請求項６】
請求項１から５のいずれか１項に記載のコンピュータシステムにおいて、
前記管理装置は、前記複数のコントローラのいずれかに搭載される
コンピュータシステム。
【請求項７】
それぞれが、通信経路を算出し、前記通信経路上のスイッチに対して、フローエントリを設定し、前記通信経路に基づいて構築された仮想ネットワークを管理する複数のコントローラと、
自身のフローテーブルに設定された前記フローエントリに従って、受信パケットの中継動作を行うスイッチと
を具備するコンピュータシステムにおいて実行される仮想ネットワークの可視化方法であって、
コントローラが、前記複数のコントローラのうち、自身と他のコントローラのそれぞれで管理される２つの前記仮想ネットワーク間に転送されるパケットデータの受信通知を前記スイッチから取得し、前記パケットデータの送信仮想ノードと受信仮想ノードを特定するステップと、
前記管理装置が、前記送信仮想ノードと前記受信仮想ノードを共通の仮想ノードとして、前記２つの仮想ネットワークを結合し視認可能に出力するステップと
を具備する
仮想ネットワークの可視化方法。
【請求項８】
請求項７に記載の可視化方法において、
前記２つのコントローラのうち、第１コントローラが、自身が管理する第１仮想ネットワーク上の第１ホストから、他の第２コントローラで管理する第２仮想ネットワーク上の第２ホストに試験パケットを転送するステップと、
前記第２コントローラが、前記試験パケットを受信したスイッチから通知される前記試験パケットと、自身が管理する前記第２仮想ネットワークのトポロジ情報とに基づき、前記第２仮想ネットワークにおいて前記試験パケットを受信した仮想ノードを前記受信仮想ノードとして特定するステップと
前記第２コントローラが、前記受信仮想ノードの情報を含む試験パケット受信情報を、前記第２ホストから前記第１ホストに転送するステップと、
前記第１コントローラが、前記試験パケット受信情報を受信したスイッチから通知される前記試験パケット受信情報と、自身が管理する前記第１仮想ネットワークのトポロジ情報とに基づき、前記第１仮想ネットワークにおいて前記試験パケット受信情報を受信した仮想ノードを前記送信仮想ノードとして特定するステップと、
前記第１コントローラが、前記送信仮想ノードと、前記試験パケット受信情報に含まれる前記受信仮想ノードとを対応付けて、対応仮想ノード情報として前記管理装置に通知するステップと
を備える
仮想ネットワークの可視化方法。
【請求項９】
請求項８に記載の可視化方法において、
前記仮想ノードは仮想ブリッジを含み、
前記対応仮想ノード情報には、対応する送信仮想ブリッジと受信仮想ブリッジの組合せが設定され、
前記複数の仮想ネットワークを結合し視認可能に出力するステップは、
前記管理装置が、前記複数の仮想ネットワークのトポロジ情報と、前記対応仮想ノード情報とに基づいて、前記複数の仮想ネットワークに共通の仮想ブリッジを特定するステップと、
前記管理装置が、前記共通の仮想ブリッジを介して前記複数の仮想ネットワークを結合するステップと
を備える
仮想ネットワークの可視化方法。
【請求項１０】
請求項９に記載の可視化方法において、
前記仮想ノードは前記仮想ブリッジの接続先として見える仮想エクスターナルを含み、
前記仮想ノード情報には、対応する送信仮想エクスターナルと受信仮想エクスターナルの組合せが設定され、
前記複数の仮想ネットワークを結合し、視認可能に出力するステップは、
前記管理装置が、前記複数の仮想ネットワークのトポロジ情報と、前記対応仮想ノード情報とに基づいて、前記複数の仮想ネットワークに共通の仮想エクスターナルを特定するステップと、
前記管理装置が、前記共通の仮想エクスターナルを介して前記複数の仮想ネットワークを結合するステップと
を備える
仮想ネットワークの可視化方法。
【請求項１１】
請求項７から１０のいずれか１項に記載の可視化方法において、
前記コントローラは、仮想ノードにＶＬＡＮ名が対応付けられて設定された仮想ネットワークのトポロジ情報を保持し、
前記スイッチが、パケットデータの受信通知の際、前記パケットデータを受信したポートに割り当てられたＶＬＡＮ名をコントローラに通知するステップと、
前記コントローラが、前記トポロジ情報に基づき、前記ＶＬＡＮ名により前記パケットデータを受信した仮想ノードを特定するステップと、
前記管理装置が、前記共通の仮想ノードを介して前記複数の仮想ネットワークを結合するステップと
を備える
仮想ネットワークの可視化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム、及びコンピュータシステムの可視化方法に関し、特
に、オープンフロー（プログラマブルフローとも称す）技術を利用したコンピュータシス
テムの仮想ネットワークの可視化方法に関する。
【背景技術】
【０００２】
従来、パケットの送信元から送信先への経路の決定とパケット転送処理は、経路上の複数のスイッチが行っていた。近年、データセンタといった大規模ネットワークにおいては、故障による機器の停止や規模拡大のための機器の新規追加により、ネットワーク構成の変化が常に発生している。このため、ネットワークの構成の変化に即応し適切な経路を決定するという柔軟性が必要となってきた。しかし、スイッチにおける経路決定処理のプログラムは、外部から変更することができないため、ネットワーク全体を一元的に制御及び管理することはできなかった。【０００３】
一方、コンピュータネットワークにおいて、各スイッチの転送動作等を外部のコントローラによって一元的に制御する技術（オープンフロー）が、Ｏｐｅｎ  Ｎｅｔｗｏｒｋｉｎｇ  Ｆｏｕｎｄａｔｉｏｎによって提案されている（非特許文献１参照）。この技術に対応したネットワークスイッチ（以下、オープンフロースイッチ（ＯＦＳ）と称す）は、プロトコル種別やポート番号等の詳細な情報をフローテーブルに保持し、フローの制御と統計情報の採取を行うことができる。【０００４】
オープンフロープロトコルを利用したシステムでは、オープンフローコントローラ（プログラマブルフローコントローラとも称す。以下ＯＦＣと称す）によって通信経路の設定や、経路上のＯＦＳに対する転送動作（中継動作）等の設定が行われる。この際、ＯＦＣは、ＯＦＳが保持するフローテーブルに、フロー（パケットデータ）を特定するルールと、当該フローに対する動作を規定するアクションとを対応付けたフローエントリを設定する。通信経路上のＯＦＳは、ＯＦＣによって設定されたフローエントリに従って受信パケットデータの転送先を決定し、転送処理を行う。これにより、クライアント端末は、ＯＦＣによって設定された通信経路を利用して他のクライアント端末との間でパケットデータの送受信が可能となる。すなわち、オープンフローを利用したコンピュータシステムでは、通信経路を設定するＯＦＣと、転送処理を行うＯＦＳとが分離され、システム全体の通信を一元的に制御及び管理することが可能となる。【０００５】
ＯＦＣは、Ｌ１〜Ｌ４のヘッダ情報によって規定されるフロー単位で、クライアント端末間の転送を制御できるため、ネットワークを任意に仮想化することができる。これにより、物理構成の制約は緩和され、仮想テナント環境の構築が容易となるとともに、スケールアウトによる初期投資費用を低減することができる。【０００６】
オープンフローを利用したシステムに接続するクライアント端末やサーバ、ストレージ等の端末数が増大すると、フローを管理するＯＦＣに対する負荷が増大する。このため、ＯＦＣに対する負荷を軽減するため、１つのシステム（ネットワーク）に複数のＯＦＣが設置されることがある。あるいは、通常、データセンタ毎に１つのＯＦＣが設置されるため、複数のデータセンタを有するシステムの場合、システム全体におけるネットワークを複数のＯＦＣが管理することとなる。【０００７】
１つのネットワークを複数のコントローラで管理するシステムが、例えば、特開２０１１−１６６６９２号公報（特許文献１参照）、特開２０１１−１６６３８４号公報（特許文献２参照）、特開２０１１−１６０３６３号公報（特許文献３参照）に記載されている。特許文献１には、オープンフローを利用したネットワークのフロー制御を、トポロジ情報を共有した複数のコントローラで行うシステムが記載されている。特許文献２には、通信経路上のスイッチに対して、優先度を付加したフローエントリの設定を指示する複数のコントローラと、優先度に応じてフローエントリの設定許否を判定し、自身に設定されたフローエントリに適合する受信パケットに対し、自身設定されたフローエントリに従った中継動作を行うスイッチとを具備するシステムが記載されている。特許文献３には、通信経路上のスイッチに対して、フローエントリの設定を指示する複数のコントローラ１と、複数のコントローラ１の１つを経路決定者として指定し、経路決定者によって設定されたフローエントリに従って、受信パケットの中継処理を行う複数のスイッチとを具備するシステムが記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−１６６６９２号公報
【特許文献２】特開２０１１−１６６３８４号公報
【特許文献３】特開２０１１−１６０３６３号公報
【非特許文献】
【０００９】
【非特許文献１】ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （  Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２  ）  ２０１１年２月２８日
【発明の概要】
【００１０】
１つの仮想ネットワークを複数のコントローラで管理する場合、コントローラ毎で管理している仮想ネットワークの状況等は個々において把握できるが、複数のコントローラによって管理される仮想ネットワーク全体を１つの仮想ネットワークとして把握することはできない。例えば、２つのＯＦＣによって管理される２つの仮想ネットワーク“ＶＮＷ１”、“ＶＮＷ２”によって１つの仮想テナントネットワーク“ＶＴＮ１”が形成される場合、２つの仮想ネットワーク“ＶＮＷ１”、“ＶＮＷ２”のそれぞれの状況は、２つのＯＦＣのそれぞれによって把握され得る。しかし、２つの仮想ネットワーク“ＶＮＷ１”、“ＶＮＷ２”を統合することはできないため、仮想テナントネットワーク“ＶＴＮ１”全体の状況を一元的に把握することはできなかった。
【００１１】
従って、本発明による目的は、オープンフロー技術を利用した複数のコントローラによって制御された仮想ネットワーク全体を一元的に管理することにある。
【００１２】
本発明の一の観点によるコンピュータシステムは、複数のコントローラと、スイッチと、管理装置とを具備する。複数のコントローラのそれぞれは、通信経路を算出し、通信経路上のスイッチに対してフローエントリを設定し、通信経路に基づいて構築された仮想ネットワークを管理する。スイッチは、自身のフローテーブルに設定されたフローエントリに従って、受信パケットの中継動作を行う。複数のコントローラのうち、一のコントローラは、自身及び他のコントローラのそれぞれで管理される２つの仮想ネットワーク間に転送されるパケットデータの受信通知をスイッチから取得することで、パケットデータの送信仮想ノードと受信仮想ノードを特定する。管理装置は、送信仮想ノードと受信仮想ノードを共通の仮想ノードとして、２つの仮想ネットワークを結合して視認可能に出力する。
【００１３】
本発明の他の観点による仮想ネットワークの可視化方法は、それぞれが、通信経路を算出し、通信経路上のスイッチに対して、フローエントリを設定する複数のコントローラと、自身のフローテーブルに設定された前記フローエントリに従って、受信パケットの中継動作を行うスイッチとを具備するコンピュータシステムにおいて実行される。本発明による仮想ネットワークの可視化方法は、コントローラが、複数のコントローラのうち、自身と他のコントローラのそれぞれで管理される２つの仮想ネットワーク間に転送されるパケットデータの受信通知をスイッチから取得し、パケットデータの送信仮想ノードと受信仮想ノードを特定するステップと、管理装置が、送信仮想ノードと受信仮想ノードを共通の仮想ノードとして、２つの仮想ネットワークを結合し視認可能に出力するステップとを具備する。
【００１４】
本発明によれば、オープンフロー技術を利用した複数のコントローラによって制御された仮想ネットワーク全体を一元的に管理することができる。
【図面の簡単な説明】
【００１５】
上記発明の目的、効果、特徴は、添付される図面と連携して実施の形態の記述から、より明らかになる。
【図１】図１は、本発明によるコンピュータシステムの実施の形態における構成を示す図である。
【図２】図２は、本発明によるオープンフローコントローラの実施の形態における構成を示す図である。
【図３】図３は、本発明によるオープンフローコントローラが保持するＶＮトポロジ情報の一例を示す図である。
【図４】図４は、本発明によるオープンフローコントローラが保持するＶＮトポロジ情報の概念図である。
【図５】図５は、本発明による管理装置の実施の形態における構成を示す図である。
【図６】図６は、本発明による管理装置がオープンフローコントローラからＶＮトポロジ情報及び対応仮想ノード情報を取得する動作の一例を示すシーケン図である。
【図７】図７は、本発明による共通仮想ノードの特定に利用するパケットデータの構造の一例を示す図である。
【図８】図８は、図１に示す複数のオープンフローコントローラのそれぞれが保持するＶＮトポロジ情報の一例を示す図である。
【図９】図９は、対応仮想ノード特定処理によって特定された対応仮想ノード情報の一例を示す図である。
【図１０】図１０は、図９に示すＶＮトポロジ情報を統合して生成された、仮想ネットワーク全体のＶＴＮトポロジ情報の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。
【００１７】
（コンピュータシステムの構成）
図１を参照して、本発明によるコンピュータシステムの構成を説明する。図１は、本発明によるコンピュータシステムの実施の形態における構成を示す図である。本発明によるコンピュータシステムは、オープンフローを利用して通信経路の構築及びパケットデータの転送制御を行う。本発明によるコンピュータシステムは、オープンフローコントローラ１−１〜１−５（以下、ＯＦＣ１−１〜１−５と称す）、複数のオープンフロースイッチ２（以下、ＯＦＳ２と称す）、複数のＬ３ルータ３、複数のホスト４（例えばストレージ４−１、サーバ４−２、クライアント端末４−３）、管理装置１００を具備する。尚、ＯＦＣ１−１〜１−５を区別せずに総称する場合はＯＦＣ１と称す。
【００１８】
ホスト４は、図示しないＣＰＵ、主記憶装置、及び外部記憶装置を備えるコンピュータ装置であり、外部記憶装置に格納されたプログラムを実行することで、他のホスト４との間で通信を行う。ホスト４間の通信は、スイッチ２又はＬ３ルータ３を介して行われる。ホスト４は、実行するプログラムやそのハードウェア構造に応じて、ストレージ４−１、サーバ（例えばＷｅｂサーバ、ファイルサーバ、アプリケーションサーバ）、あるいはクライアント端末４−３等に例示される機能を実現する。
【００１９】
ＯＦＣ１は、オープンフロー技術により、システム内におけるパケット転送に係る通信経路パケット転送処理を制御するフロー制御部１３を備える。オープンフロー技術とは、コントローラ（ここではＯＦＣ１）が、ルーティングポリシー（フローエントリ：フロー＋アクション）に従い、マルチレイヤ及びフロー単位の経路情報をＯＦＳ２に設定し、経路制御やノード制御を行う技術を示す（詳細は、非特許文献１を参照）。これにより、経路制御機能がルータやスイッチから分離され、コントローラによる集中制御によって最適なルーティング、トラフィック管理が可能となる。オープンフロー技術が適用されるＯＦＳ２は、従来のルータやスイッチのようにパケットやフレームの単位ではなく、ＥＮＤ２ＥＮＤのフローとして通信を取り扱う。
【００２０】
ＯＦＣ１は、ＯＦＳ２が保持するフローテーブル（図示なし）にフローエントリ（ルール＋アクション）を設定することで当該ＯＦＳ２の動作（例えばパケットデータの中継動作）を制御する。ＯＦＣ１によるＯＦＳ２に対するフローエントリの設定や、ＯＦＳ２からＯＦＣ１に対するファーストパケットの通知（パケットＩＮ）は、予めＯＦＳ２に設定されたＯＦＣ１に対し、制御用ネットワーク２００（以下、制御用ＮＷ２００と称す）を介して行われる。
【００２１】
図１に示す一例では、データセンタＤＣ１内のネットワーク（ＯＦＳ２）を制御するＯＦＣ１としてＯＦＣ１−１〜１−４が設置され、データセンタＤＣ２内のネットワーク（ＯＦＳ２）を制御するＯＦＣ１としてＯＦＣ１−５が設置されている。ＯＦＣ１−１〜１−４は、データセンタＤＣ１内のＯＦＳ２と制御用ＮＷ２００−１を介して接続され、ＯＦＣ１−５は、データセンタＤＣ２内のＯＦＳ２と制御用ＮＷ２００−２を介して接続されている。又、データセンタＤＣ１のネットワーク（ＯＦＳ２）とデータセンタＤＣ２のネットワーク（ＯＦＳ２）は、レイヤ３でルーティングを行うＬ３ルータ３を介して接続された異なるＩＰアドレス範囲のネットワーク（サブネットワーク）である。
【００２２】
図２を参照して、ＯＦＣ１の構成の詳細を説明する。図２は、本発明によるＯＦＣ１の構成を示す図である。ＯＦＣ１は、ＣＰＵ及び記憶装置を備えるコンピュータによって実現されることが好適である。ＯＦＣ１では、図示しないＣＰＵが記憶装置に格納されたプログラムを実行することで、図２に示す対応仮想ノード特定部１１、ＶＮトポロジ管理部１２、フロー制御部１３の各機能が実現される。又、ＯＦＣ１は、記憶装置に格納されたＶＮトポロジ情報１４を保持する。
【００２３】
フロー制御部１３は、自身が管理するＯＦＳ２にフローエントリ（ルール＋アクション）の設定又は削除を行う。ＯＦＳ２は、設定されたフローエントリを参照し、受信パケットのヘッダ情報に応じたルールに対応するアクション（例えばパケットデータの中継や破棄）を実行する。ルール、アクションの詳細は後述する。
【００２４】
ルールには、例えば、ＴＣＰ／ＩＰのパケットデータにおけるヘッダ情報に含まれる、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルのレイヤ１からレイヤ４のアドレスや識別子の組み合わせが規定される。例えば、レイヤ１の物理ポート、レイヤ２のＭＡＣアドレス、ＶＬＡＮタグ（ＶＬＡＮ  ｉｄ）、レイヤ３のＩＰアドレス、レイヤ４のポート番号のそれぞれの組み合わせがルールとして設定される。尚、ＶＬＡＮタグには、優先順位（ＶＬＡＮ  Ｐｒｉｏｒｉｔｙ）が付与されていても良い。
【００２５】
ここで、ルールに設定されるポート番号等の識別子やアドレス等は、所定の範囲で設定されても構わない。又、宛先や送信元のアドレス等を区別してルールとして設定されることが好ましい。例えば、ＭＡＣ宛先アドレスの範囲や、接続先のアプリケーションを特定する宛先ポート番号の範囲、接続元のアプリケーションを特定する送信元ポート番号の範囲がルールとして設定される。更に、データ転送プロトコルを特定する識別子をルールとして設定してもよい。
【００２６】
アクションには、例えばＴＣＰ／ＩＰのパケットデータを処理する方法が規定される。例えば、受信パケットデータを中継するか否かを示す情報や、中継する場合はその送信先が設定される。又、アクションには、パケットデータの複製や、破棄することを指示する情報が設定されてもよい。
【００２７】
ＯＦＣ１によるフロー制御により、予め設定された仮想ネットワーク（ＶＮ）がＯＦＣ１毎に構築される。又、ＯＦＣ１毎に管理される少なくとも１つの仮想ネットワーク（ＶＮ）により１つの仮想テナントネットワーク（ＶＴＮ）が構築される。例えば、異なるＩＰネットワークを制御するＯＦＣ１−１〜１−５のそれぞれに管理される仮想ネットワークによって、１つの仮想テナントネットワークＶＴＮ１が構築される。あるいは、同一ＩＰネットワークを制御するＯＦＣ１−１〜１−４のそれぞれに管理される仮想ネットワークによって、１つの仮想テナントネットワークＶＴＮ２が構築されても良い。更には、１つのＯＦＣ１（例えばＯＦＣ１−５）によって管理される仮想ネットワークが１つの仮想テナントネットワークＶＴＮ３を構成しても良い。尚、図１に示すように、仮想テナントネットワーク（ＶＴＮ）は、システム内に複数構築されても良い。
【００２８】
対応仮想ノード特定部１１は、管理装置１００からの指示に応じて対応仮想ノードの特定を行う。対応仮想ノードとは、複数のＯＦＣ１のそれぞれで管理する仮想ネットワークのうち、共通（同一）の仮想ノードを示し、例えば、共通（同一）の仮想ノードとして特定された仮想ノード名の組合せで示される。対応仮想ノード特定部１１は、他のＯＦＣ１が管理する仮想ネットワークのうち、自身の管理する仮想ネットワークの構成要素である仮想ノードと共通（同一）の仮想ノードを特定し、それぞれを対応付けて対応仮想ノード情報１０５として記憶装置（図示なし）に記録する。
【００２９】
詳細には、対応仮想ノード特定部１１は、他のＯＦＣ１に試験パケットを送信し、応答パケットを受信したＯＦＳ２からのパケットＩＮから抽出した受信仮想ノード名と、試験パケットの送信元仮想ネットワークにおける仮想ノード名のうち、受信仮想ノードと同じ要素の仮想ノード名との組合せを対応仮想ノード情報１０５として記録する。又、対応仮想ノード特定部１１は、管理装置１００に対応仮想ノード情報１０５を通知する。対応仮想ノード情報１０５の通知は、管理装置１００からの要求に応じて実行されても、任意の時期に実行してもどちらでも良い。対応仮想ノード特定部１１の詳細な動作は後述する。
【００３０】
ＶＮトポロジ管理部１２は、自身が属するＯＦＳ１が管理する仮想ネットワーク（ＶＮ）のトポロジ情報（ＶＮトポロジ情報１４）を管理する。又、ＶＮトポロジ管理部１２は、自身が管理する仮想ネットワークのＶＮトポロジ情報１４を管理装置１００に通知する。ＶＮトポロジ情報１４は、図３及び図４に示すように、ＯＦＣ１が管理（制御）する仮想ネットワーク（ＶＮ）のトポロジに関する情報を含む。図１を参照して、本発明によるコンピュータシステムは、複数のＯＦＣ１によって制御されることで複数の仮想テナントネットワークＶＴＮ１、ＶＴＮ２、・・・を実現している。仮想テナントネットワークには、ＯＦＣ１−１〜１−５のそれぞれが管理（制御）する仮想ネットワーク（ＶＮ）を含んでいる。ＯＦＣ１は、自身が管理する仮想ネットワーク（以下、管理対象仮想ネットワークと称す）のトポロジに関する情報をＶＮトポロジ情報１４として保持する。
【００３１】
図３は、ＯＦＣ１が保持するＶＮトポロジ情報１４の一例を示す図である。図４は、ＯＦＣ１が保持するＶＮトポロジ情報１４の概念図である。ＶＮトポロジ情報１４は、ＯＦＳ２や図示しないルータ等の物理スイッチによって実現される仮想ネットワークにおける仮想ノードの接続状況に関する情報を含む。具体的には、ＶＮトポロジ情報１４は、管理対象仮想ネットワークに属する仮想ノードを識別する情報（仮想ノード情報１４２）と、当該仮想ノードの接続状況を示す接続情報１４３を含む。仮想ノード情報１４２と接続情報１４３は、管理対象仮想ネットワークが属する仮想ネットワーク（例えば、仮想テナントネットワーク）の識別子であるＶＴＮ番号１４１に対応付けられて記録される。
【００３２】
例えば、仮想ノード情報１４２には、仮想ノードとして仮想ブリッジ、仮想エクスターナル、仮想ルータのそれぞれを特定する情報（例えば、仮想ブリッジ名、仮想エクスターナル名、仮想ルータ名）を含む。仮想エクスターナルとは、仮想ブリッジの接続先となる端末（ホスト）やルータを示す。例えば、仮想ルータの識別子（仮想ルータ名）と、当該下層ルータに接続している仮想ブリッジの情報とが対応付けられて仮想ノード情報１４２として設定される。ここで、仮想ブリッジ名、仮想エクスターナル名、仮想ルータ名等に例示される仮想ノード名は、ＯＦＣ１毎に固有に設定されても良いし、システム内の全てのＯＦＣ１に共通の名称が設定されても良い。
【００３３】
接続情報１４３は、仮想ノードの接続先を特定する情報を含み、当該仮想ノードの仮想ノード情報１４２に対応付けられる。例えば、図４を参照して、仮想ブリッジ（ｖＢｒｉｄｇｅ）“ＶＢ１１”の接続先として仮想ルータ（ｖＲｏｕｔｅｒ）“ＶＲ１１”と仮想エクスターナル（ｖＥｘｔｅｒｎａｌ）“ＶＥ１１”が接続情報１４３として設定される。接続情報１４３には、接続相手を特定する接続種別（ブリッジ／エクスターナル／ルータ／外部ネットワーク（Ｌ３ルータ）や、接続先を特定する情報（例えばポート番号、ＭＡＣアドレス、ＶＬＡＮ名）が含まれても良い。詳細には、仮想ブリッジの識別子（仮想ブリッジ名）に当該仮想ブリッジに属するＶＬＡＮ名が対応付けられて接続情報１４３として設定される。又、仮想エクスターナルの識別子（仮想エクスターナル名）に、ＶＬＡＮ名とＭＡＣアドレス（又はポート番号）との組合せが対応付けられて接続情報１４３として設定される。すなわち、仮想エクスターナルは、ＶＬＡＮ名とＭＡＣアドレス（又はポート番号）との組合せによって定義される。
【００３４】
図４を参照して、ＯＦＣ１が保持するＶＮトポロジ情報１４に基づいて作成された仮想ネットワークの一例を説明する。図４に示す仮想ネットワークは、仮想テナントネットワークＶＴＮ１に属し、仮想ルータ“ＶＲ１１”、仮想ブリッジ“ＶＢ１１”、“ＶＢ１２”、仮想エクスターナル“ＶＥ１１”、“ＶＥ１２”によって構成される。仮想ブリッジ“ＶＢ１１”、“ＶＢ１２”は仮想ルータ“ＶＲ１１”を介して接続される別サブネットワークである。仮想ブリッジ“ＶＢ１１”には、仮想エクスターナル“ＶＥ１１”が接続され、仮想エクスターナル“ＶＥ１１”には、ＯＦＣ１−２“ＯＦＣ２”が管理する仮想ルータ“ＶＲ２２”のＭＡＣアドレスが対応付けられている。これは、仮想ブリッジ“ＶＢ１１”から、ＯＦＣ１−２“ＯＦＣ２”が管理する仮想ルータ“ＶＲ２２”のＭＡＣアドレスが見えていることを示す。同様に、仮想ブリッジ“ＶＢ１２”には、仮想エクスターナル“ＶＥ１２”が接続され、仮想エクスターナル“ＶＥ１２”には、Ｌ３ルータが対応付けられている。これは、仮想ブリッジ“ＶＢ１２”がＬ３ルータを介して外部ネットワークに接続されていることを示す。
【００３５】
図１を参照して、対応仮想ノード特定部１１やＶＮトポロジ管理部１２は、セキュアな管理用ネットワーク３００（以下、管理用ＮＷ３００と称す）を介して、対応仮想ノード情報１０５やＶＮトポロジ情報１４を管理装置１００に通知する。管理装置１００は、ＯＦＣ１−１〜１−５から収集したＶＮトポロジ情報１４を、対応仮想ノード情報１０５に基づいて結合し、システム全体の仮想ネットワーク（例えば仮想テナントネットワークＶＴＮ１、ＶＴＮ２、・・・）を生成する。
【００３６】
図５を参照して、管理装置１００の構成の詳細を説明する。図５は、本発明による管理装置１００の実施の形態における構成を示す図である。管理装置１００は、ＣＰＵ及び記憶装置を備えるコンピュータによって実現されることが好適である。管理装置１００では、図示しないＣＰＵが記憶装置に格納された可視化プログラムを実行することで、図５に示すＶＮ情報収集部１０１、ＶＮトポロジ結合部１０２、ＶＴＮトポロジ出力部１０３の各機能が実現される。又、管理装置１００は、記憶装置に格納されたＶＴＮトポロジ情報１０４、対応仮想ノード情報１０５を保持する。尚、ＶＴＮトポロジ情報１０４は、初期状態では記録されてなく、ＶＮトポロジ結合部１０２によって生成された時点で初めて記録される。又、対応仮想ノード情報１０５も、初期状態では記録されてなく、ＯＦＣ１から通知された対応仮想ノード情報１０５が記録される。
【００３７】
ＶＮ情報収集部１０１は、管理用ＮＷ３００を介してＯＦＣ１に対してＶＮトポロジ情報収集指示を発行し、ＯＦＣ１からＶＮトポロジ情報１４及び対応仮想ノード情報１０５を取得する。取得したＶＮトポロジ情報１４や対応仮想ノード情報１０５は、図示しない記憶装置に一時記憶される。
【００３８】
ＶＮトポロジ結合部１０２は、対応仮想ノード情報１０５に基づいて、ＶＮトポロジ情報１４をシステム全体における仮想ネットワーク単位（例えば仮想テナントネットワーク単位）で結合（統合）し、システム全体における仮想ネットワークに対応するトポロジ情報を生成する。ＶＮトポロジ結合部１０２によって生成されたトポロジ情報は、ＶＴＮトポロジ情報１０４として記録されるとともに、ＶＴＮトポロジ出力部１０３によって視認可能に出力される。例えば、ＶＴＮトポロジ出力部１０３は、ＶＴＮトポロジ情報１０４をモニタ等の出力装置（図示なし）に、テキスト形式又はグラフィカルに表示させる。ＶＴＮトポロジ情報１０４は、図３に示すＶＮトポロジ情報１４と同様な構成であり、ＶＴＮ番号に対応付けられた仮想ノード情報及び接続情報を含む。
【００３９】
ＶＮトポロジ結合部１０２は、ＯＦＣ１から取得したＶＮトポロジ情報１４と、対応仮想ノード情報１０５とに基づいて、ＯＦＣ１毎の管理対象仮想ネットワーク上の仮想ノードのうち、共通の（同一の）仮想ノードを特定する。ＶＮトポロジ結合部１０２は、共通の仮想ノードを介して当該仮想ノードが属する仮想ネットワークを結合する。ここで、ＶＮトポロジ結合部１０２は、同一ＩＰアドレス範囲の仮想ネットワーク（サブネット）同士を接続する場合、当該ネットワークに共通の仮想ブリッジを介して仮想ネットワークの結合を行う。又、ＶＮトポロジ結合部１０２は、異なるＩＰアドレス範囲の仮想ネットワーク（サブネット）同士を接続する場合、当該ネットワークで接続関係にある仮想エクスターナルを介して仮想ネットワークの結合を行う。
【００４０】
（仮想ネットワークの結合（統合）動作）
次に、図６から図１０を参照して、本発明によるコンピュータシステムにおける仮想ネットワークの結合動作の詳細を説明する。本発明では、仮想ネットワークの結合に先立ち、複数の管理対象仮想ネットワークにおいて共通の仮想ノードを特定する処理が行われる。以下では、図１に示すコンピュータシステムにおいて、仮想テナントネットワーク“ＶＴＮ１”に含まれる仮想ネットワーク（管理対象ネットワーク）を結合する動作を一例に説明する。
【００４１】
ＯＦＣ１は、自身の管理対象ネットワークにおける仮想ブリッジ上のホストから、試験パケットを、他のＯＦＣ１の管理対象ネットワークにおける仮想ブリッジ上のホストに送信する。続いて、ＯＦＣ１は、試験パケットの応答パケット（試験パケット受信情報）に含まれる受信仮想ノードを送信仮想ノードと同一の仮想ノード（対応仮想ノード）として特定し、自身が管理するＶＮトポロジ情報１４とともに管理装置１００に通知する。同様にして、管理装置１００は、システム内の全てのＯＦＣ１からＶＮトポロジ情報１４及び対応仮想ノード情報１０５を取得し、これらに基づいて、管理対象仮想ネットワークを結合する。
【００４２】
図６を参照して、本発明による管理装置１００が、ＯＦＣ１からＶＮトポロジ情報１４及び対応仮想ノード情報１０５を取得する動作を説明する。
【００４３】
管理装置１００は、ＶＮトポロジ情報収集指示をＯＦＣ１−１に発行する（ステップＳ１０１）。ＶＮトポロジ情報収集指示には、可視化対象となる仮想ネットワーク（ここでは、一例として仮想テナントネットワーク“ＶＴＮ１”）を特定する情報が含まれる。ＯＦＣ１−１は、ＶＮトポロジ情報収集指示でしめされた可視化対象の仮想ネットワークにおいて、自身の管理対象仮想ネットワークと、他のＯＦＣ１−２〜１−５の管理対象仮想ネットワークとの共通の仮想ノードを特定する処理を行う（ステップＳ１０２〜Ｓ１０７）。以下では、ＯＦＣ１−１（コントローラ名“ＯＦＣ１”）の管理対象仮想ネットワークとＯＦＣ１−２（コントローラ名“ＯＦＣ２”）の管理対象仮想ネットワークとの対応仮想ノードを特定する動作を説明する。
【００４４】
ＯＦＣ１−１は、ＶＮトポロジ情報収集指示に応じて、試験パケット情報要求をＯＦＣ１−２に送信する（ステップＳ１０２）。試験パケット情報要求は、管理用ＮＷ３００を介してＯＦＣ１−２に送信される。試験パケット情報要求には、可視化対象となる仮想ネットワークを特定する情報が含まれる。一例として、試験パケット情報要求は、仮想テナントネットワーク“ＶＴＮ１”を特定する情報を含む。
【００４５】
図７を参照して、ＯＦＣ１−１からＯＦＣ１−２に送信される試験パケット情報要求のパケット構造の具体例を説明する。試験パケット情報要求は、宛先ＭＡＣアドレスとしてＯＦＣ１−２“ＯＦＣ２”のＭＡＣアドレス、送信元ＭＡＣアドレスとしてＯＦＣ１−１“ＯＦＣ１”のＭＡＣアドレス、宛先ＩＰアドレスとしてＯＦＣ１−２“ＯＦＣ２”の管理ＩＰアドレス、送信元ＭＡＣアドレスとしてＯＦＣ１−１“ＯＦＣ１”の管理ＩＰアドレス、プロトコルとしてＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ  ）、ＵＤＰデータとして、メッセージＩＤ＝１、識別番号＝Ｘ、ＶＴＮ名＝ＶＴＮ１を含む。ここで、管理ＩＰアドレスとは、管理用ＮＷ３００に接続するＯＦＣ１に割り当てられたＩＰアドレスを示す。メッセージＩＤ＝１は、当該パケットデータが試験パケット情報要求であることを示す。識別番号は、後述する送信先アドレス通知と紐つけるための識別子である。ＶＴＮ名は、可視化対象となる仮想ネットワークを特定するための情報である。
【００４６】
ＯＦＣ１−２は、試験パケット情報要求に応答して送信先アドレス情報を通知する（ステップＳ１０２）。ＯＦＣ１−２は、試験パケット情報要求に含まれるＶＴＮ名の仮想ネットワークに自身の管理対象仮想ネットワークが属している場合、当該要求に応答する。一方、自身の管理対象仮想ネットワークが、要求されたＶＴＮ名の仮想ネットワークに属していない場合、ＯＦＣ１−２は応答せず当該要求を破棄する。試験パケット情報要求に応答する場合、ＯＦＣ１−２は、試験パケット情報要求に含まれるＶＴＮ名の仮想ネットワークに属する管理対象仮想ネットワーク上に存在する全てのホストのＩＰアドレスを、送信先アドレス情報として要求元のＯＦＣ１−１に通知する。ＯＦＣ１−２は、例えば図７に示されるような送信アドレス情報を、管理用ＮＷ３００を介して通知する。
【００４７】
図７を参照して、ＯＦＣ１−２からＯＦＣ１−１に送信される試験パケット情報のパケット構造の具体例を説明する。試験パケット情報は、宛先ＭＡＣアドレスとしてＯＦＣ１−１“ＯＦＣ１”のＭＡＣアドレス、送信元ＭＡＣアドレスとしてＯＦＣ１−２“ＯＦＣ２”のＭＡＣアドレス、宛先ＩＰアドレスとしてＯＦＣ１−１“ＯＦＣ１”の管理ＩＰアドレス、送信元ＭＡＣアドレスとしてＯＦＣ１−２“ＯＦＣ２”の管理ＩＰアドレス、プロトコルとしてＵＤＰ、ＵＤＰデータとして、メッセージＩＤ＝２、識別番号＝Ｘ、ＶＴＮ名＝ＶＴＮ１、試験パケットの送信先ホストのＩＰアドレスを含む。ここで、メッセージＩＤ＝２は、当該パケットデータが試験パケット情報であることを示す。識別番号は、ステップＳ１０２の試験パケット情報要求の応答を示す識別子（ここでは“Ｘ”）が付与される。試験パケットの送信先ホストのＩＰアドレスは、試験パケットの送信先としてＯＦＣ１−２が指定したＶＴＮ１に属する仮想ネットワーク上のホストのＩＰアドレスである。試験パケットの送信先となるＶＴＮ１に属する仮想ネットワーク上のホストが複数存在する場合は、複数のホストＩＰが送信先アドレスとして、送信先アドレス情報に設定される。
【００４８】
ＯＦＣ１−１は、送信先アドレス情報を受け取ると、当該送信先アドレス情報に含まれる送信先アドレス（ＶＴＮ１のホストＩＰアドレス）を送信先とした試験パケットを送信する（ステップＳ１０４）。詳細には、ＯＦＣ１−１は、ステップＳ１０２において要求した送信先アドレス情報を、識別番号（ここでは“Ｘ”）で特定し、特定した送信先アドレス情報に含まれるホストＩＰアドレスを宛先とした試験パケットを、ＶＴＮ名で指定した仮想ネットワークを介して送信する。一例としてＯＦＣ１−１は、図７に示されるような試験パケットを、図８に示す仮想テナントネットワークＶＴＮ１を介して送信する。
【００４９】
図７を参照して、ＯＦＣ１−１の管理対象仮想ネットワーク上のホストからＯＦＣ１−２の管理対象仮想ネットワーク上のホストに送信される試験パケットのパケット構造の具体例を説明する。試験パケットは、宛先ＭＡＣアドレスとして仮想テナントネットワーク“ＶＴＮ１”上の、ＯＦＣ１−２“ＯＦＣ２”が管理するホストのＭＡＣアドレス、送信元ＭＡＣアドレスとして仮想テナントネットワーク“ＶＴＮ１”上の、ＯＦＣ１−１“ＯＦＣ１”が管理するホストのＭＡＣアドレス、宛先ＩＰアドレスとして仮想テナントネットワーク“ＶＴＮ１”上の、ＯＦＣ１−２“ＯＦＣ２”が管理するホストのＩＰアドレス、送信元ＩＰアドレスとして仮想テナントネットワーク“ＶＴＮ１”上の、ＯＦＣ１−１“ＯＦＣ１”が管理するホストのＩＰアドレス、プロトコルとしてＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ  ）、ＵＤＰデータとして、メッセージＩＤ＝３、識別番号＝Ｙ、ＶＴＮ名＝ＶＴＮ１を含む。ここで、送信先ホストのＩＰアドレスは、送信先アドレス通知によってＯＦＣ１−１が取得したＩＰアドレスである。メッセージＩＤ＝３は、当該パケットデータが試験パケットであることを示す。識別番号は、後述する試験パケット受信通知と紐つけるための識別子である。
【００５０】
ＯＦＣ１−１は、自身の制御下にあり、仮想テナントネットワーク“ＶＴＮ１”に属する仮想ブリッジを構成するＯＦＳ２−１に対し、制御用ＮＷ２００−１を介して試験パケットを送信する。この際、ＯＦＣ１−１は、試験パケットが仮想テナントネットワーク“ＶＴＮ１”上を転送するためのフローエントリを当該ＯＦＳ２−１に設定する。これにより、試験パケットは仮想テナントネットワーク“ＶＴＮ１”を介して宛先ホストに転送されることとなる。
【００５１】
仮想テナントネットワーク“ＶＴＮ１”を介して転送される試験パケットは、ＯＦＣ１−２の制御下のＯＦＳ２−２に受信される。ＯＦＳ２−２は、受信した試験パケットに適合するフローエントリがないため、当該試験パケットをファーストパケットとしてＯＦＣ１−２に通知する（パケットＩＮ、ステップＳ１０５）。ここでＯＦＣ１−２へのパケットＩＮは、制御用ＮＷ２００−１を介して行われる。ＯＦＣ１−２は、ＯＦＳ２−２からのパケットＩＮにより、ＯＦＳ２−２において受信された試験パケットを取得する。又、パケットＩＮの際、ＯＦＳ２−２は、試験パケットを受信したポートに割り当てられたＶＬＡＮ名やポート番号をＯＦＣ１−２に通知する。ＯＦＣ１−２は、通知されたＶＬＡＮ名とＶＮトポロジ情報１４に基づいて、試験パケットを受信したＯＦＳ２が属する仮想ブリッジ（すなわち、試験パケットの受信した仮想ブリッジ）を特定することができる。又、ＯＦＣ１−２は、通知されたＶＬＡＮ名や、試験パケットの送信元ホストＭＡＣアドレスと、ＶＮトポロジ情報１４とに基づいて、試験パケットを受信した仮想エクスターナルを特定することができる。
【００５２】
ＯＦＣ１−２は、試験パケットを受信したことを示す試験パケット受信情報を、当該試験パケットの送信元ホスト宛に送信する（ステップＳ１０６）。詳細には、ＯＦＣ１−２は、ＯＦＳ２−１に対し、制御用ＮＷ２００−１を介して試験パケット受信情報を送信するとともに、試験パケット受信情報が仮想テナントネットワーク“ＶＴＮ１”上を転送するためのフローエントリを当該ＯＦＳ２−２に設定する。これにより、試験パケット受信情報は仮想テナントネットワーク“ＶＴＮ１”を介して送信元ホストに転送されることとなる。
【００５３】
ＯＦＣ１−２は、パケットＩＮとともに通知されたＶＬＡＮ名やポート番号から、試験パケットを受信した仮想ブリッジ名や仮想エクスターナル名を特定し、これらを含む試験パケット受信情報をＯＦＳ２−２から転送させる。ＯＦＣ１−２は、試験パケットの宛先ホストを試験パケット受信情報の送信元とし、試験パケットの送信元ホストを試験パケット受信情報の宛先として設定する。一例としてＯＦＣ１−２は、図７に示されるような試験パケット受信情報を、図８に示す仮想テナントネットワークＶＴＮ１を介して送信する。
【００５４】
図７を参照して、試験パケット受信情報のパケット構造の具体例を説明する。試験パケット受信情報は、宛先ＭＡＣアドレスとして仮想テナントネットワーク“ＶＴＮ１”上の、ＯＦＣ１−１“ＯＦＣ１”が管理するホストのＭＡＣアドレス、送信元ＭＡＣアドレスとして仮想テナントネットワーク“ＶＴＮ１”上の、ＯＦＣ１−２“ＯＦＣ２”が管理するホストのＭＡＣアドレス、宛先ＩＰアドレスとして仮想テナントネットワーク“ＶＴＮ１”上の、ＯＦＣ１−１“ＯＦＣ１”が管理するホストのＩＰアドレス、送信元ＩＰアドレスとして仮想テナントネットワーク“ＶＴＮ１”上の、ＯＦＣ１−２“ＯＦＣ２”が管理するホストのＩＰアドレス、プロトコルとしてＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ  ）、ＵＤＰデータとして、メッセージＩＤ＝４、識別番号＝Ｙ、ＶＴＮ名＝ＶＴＮ１、受信ｖＢｒｉｄｇｅ名、受信ｖＥｘｔｅｒｎａｌ名を含む。ここで、送信先ホストのＭＡＣアドレスやＩＰアドレスは、試験パケットの送信元ホストのＭＡＣアドレスやＩＰアドレスである。メッセージＩＤ＝４は、当該パケットデータが試験パケット受信情報であることを示す。識別番号は、試験パケットの応答を示す識別子（ここでは“Ｙ”）が付与される。受信ｖＢｒｉｄｇｅ名、受信ｖＥｘｔｅｒｎａｌ名は、ＯＦＣ１−２で特定された試験パケットを受信した仮想ブリッジや仮想エクスターナルを識別する名称である。
【００５５】
仮想テナントネットワーク“ＶＴＮ１”を介して転送される試験パケット受信情報は、ＯＦＣ１−１の制御下のＯＦＳ２−２に受信される。ＯＦＳ２−１は、受信した試験パケット受信情報に適合するフローエントリがないため、当該試験パケット受信情報をファーストパケットとしてＯＦＣ１−１に通知する（パケットＩＮ、ステップＳ１０７）。ここでＯＦＣ１−１へのパケットＩＮは、制御用ＮＷ２００−１を介して行われる。ＯＦＣ１−１は、ＯＦＳ２−１からのパケットＩＮにより、ＯＦＳ２−１において受信された試験パケット受信情報を取得する。又、パケットＩＮの際、ＯＦＳ２−１は、試験パケット受信情報を受信したポートに割り当てられたＶＬＡＮ名やポート番号をＯＦＣ１−１に通知する。ＯＦＣ１−１は、通知されたＶＬＡＮ名とＶＮトポロジ情報１４に基づいて、試験パケットを受信したＯＦＳ２が属する仮想ブリッジ（すなわち、試験パケットの受信した仮想ブリッジ）を特定する。又、ＯＦＣ１−１は、通知されたＶＬＡＮ名や、試験パケットの送信元ホストのＭＡＣアドレスとＶＮトポロジ情報１４とに基づいて、試験パケットを受信した仮想エクスターナルを特定する。
【００５６】
ＯＦＣ１−１は、試験パケット受信情報に含まれる受信仮想ブリッジ名や受信仮想エクスターナル名と、ＯＦＳ２−１からのパケットＩＮにより特定した試験パケット受信情報の受信仮想ブリッジ名や受信仮想エクスターナル名（すなわち試験パケットの送信仮想ブリッジ名や送信仮想エクスターナル名）を対応付けて対応仮想ノード情報１０５として記録する（ステップＳ１０８）。この際、他のＯＦＣ１から通知された送信先アドレスが、自身の管理するネットワークに割り当てられたＩＰアドレスと同一のＩＰアドレス範囲である場合、ＯＦＣ１−１は、当該ＯＦＣ１の管理対象仮想ネットワークと自身の管理対象仮想ネットワークがＬ２接続されているものとみなす。この場合、ＯＦＣ１−１は、試験パケットの受信仮想ブリッジと送信仮想ブリッジを対応付けて対応仮想ノード情報１０５として記録する。一方、他のＯＦＣ１から通知された送信先アドレスが、自身の管理するネットワークに割り当てられたＩＰアドレスと異なるＩＰアドレス範囲である場合、ＯＦＣ１−１は、当該ＯＦＣ１の管理対象仮想ネットワークと自身の管理対象仮想ネットワークがＬ３接続されているものとみなす。この場合、ＯＦＣ１−１は、試験パケットの受信仮想エクスターナルと送信仮想エクスターナルを対応付けて対応仮想ノード情報１０５として記録する。管理装置１００は、対応仮想ノード情報１０５により、仮想テナントネットワーク“ＶＴＮ１”において、ＯＦＣ１−１とＯＦＣ１−２のそれぞれの管理対象仮想ネットワークに共通の仮想ノード（仮想ブリッジや仮想エクスターナル）を特定することが可能となる。
【００５７】
ＯＦＣ１−１は、ステップＳ１０１において指示された可視化対象の仮想ネットワークに属する管理対象仮想ネットワークのＶＮトポロジ情報１４と、ステップＳ１０８において記録した対応仮想ノード情報１０５を管理装置１００に送信する。ここでは仮想テナントネットワーク“ＶＴＮ１”に属するＯＦＣ１−１の管理対象仮想ネットワークのＶＮトポロジ情報１４と、ＯＦＣ１−１とＯＦＣ１−２の管理対象仮想ネットワークに共通の仮想ノードを特定する対応仮想ノード情報１０５が管理装置１００に送信される。
【００５８】
以上のように、本発明では、オープンフローの機能の１つであるＯＦＳ２からのパケットＩＮによって、仮想ネットワーク上でパケットを受信した受信仮想ブリッジや受信仮想エクスターナルを特定する。又、ＯＦＣ１は、試験パケットを受信した仮想ブリッジや仮想エクスターナルと、試験パケットの宛先ホストと送信元ホストを入れ替えた試験パケット受信情報を受信した仮想ブリッジ及び仮想エクスターナルを共通の仮想ブリッジ及び仮想エクスターナルとして特定する。
【００５９】
ＯＦＣ１−１は、他のＯＦＣ１−３〜１−５に対しても同様に試験パケットを送信し、その試験パケット受信情報に基づいて、仮想テナントネットワーク“ＶＮＴ１”において自身の管理対象ネットワークと共通する仮想ノード（仮想ブリッジ、仮想エクスターナル）を特定し、対応仮想ノード情報として管理装置１００に通知される。
【００６０】
他のＯＦＣ１−２〜１−５も同様に、管理装置１００からのＶＴＮトポロジ情報収集指示に応じて、自身の管理対象仮想ネットワークのＶＮトポロジ情報１４と、上述と同様な方法により生成した対応仮想ノード情報１０５を管理装置１００に通知する。
【００６１】
次に、図８に示す管理対象仮想ノードを結合し、１つの仮想テナントネットワークとして可視化する方法について具体的に説明する。図８は、図１に示す複数のＯＦＣ１−１〜１−５のそれぞれが保持する仮想テナントネットワークＶＴＮ１に属する管理対象仮想ネットワークのＶＮトポロジ情報１４の一例を示す図である。
【００６２】
図８を参照して、ＯＦＣ１−１“ＯＦＣ１”は、自身の管理対象仮想ネットワークのＶＮトポロジ情報１４として、相互に接続された仮想ブリッジ“ＶＢ１１”及び仮想エクスターナル“ＶＥ１１”を保持する。仮想ブリッジ“ＶＢ１１”にはホスト“Ｈ１１”が接続されている。ＯＦＣ１−２“ＯＦＣ２”は、自身の管理対象仮想ネットワークのＶＮトポロジ情報１４として、仮想ルータ“ＶＲ２１”、仮想ブリッジ“ＶＢ２１”、“ＶＢ２２”、仮想エクスターナル“ＶＥ２１”、“ＶＥ２２”を保持する。仮想ブリッジ“ＶＢ２１”、“ＶＢ２２”は仮想ルータ“ＶＲ２１”を介して接続される別サブネットワークを示す。仮想ルータ“ＶＲ２１”と仮想ブリッジ“ＶＢ２１”との接続ノードはホスト“Ｈ２１”を示し、仮想ルータ“ＶＲ２１”と仮想ブリッジ“ＶＢ２２”との接続ノードはホスト“Ｈ２２”を示す。仮想ブリッジ“ＶＢ２１”には、仮想エクスターナル“ＶＥ２１”が接続されている。仮想ブリッジ“ＶＢ２２”には、仮想エクスターナル“ＶＥ２２”が接続され、仮想エクスターナル“ＶＥ２２”には、Ｌ３ルータ“ＳＷ１”が対応付けられている。ＯＦＣ１−３“ＯＦＣ３”は、自身の管理対象仮想ネットワークのＶＮトポロジ情報１４として、仮想ブリッジ“ＶＢ３１”、仮想エクスターナル“ＶＥ３１”、“ＶＥ３２”を保持する。仮想ブリッジ“ＶＢ３１”にはホスト“Ｈ３１”が接続されている。ＯＦＣ１−４“ＯＦＣ４”は、自身の管理対象仮想ネットワークのＶＮトポロジ情報１４として、仮想ブリッジ“ＶＢ４１”、仮想エクスターナル“ＶＥ４１”を保持する。仮想ブリッジ“ＶＢ４１”にはホスト“Ｈ４１”が接続されている。ＯＦＣ１−５“ＯＦＣ５”は、自身の管理対象仮想ネットワークのＶＮトポロジ情報１４として、仮想ルータ“ＶＲ５１”、仮想ブリッジ“ＶＢ５１”、“ＶＢ５２”、仮想エクスターナル“ＶＥ５１”、“ＶＥ５２”を保持する。仮想ブリッジ“ＶＢ５１”、“ＶＢ５２”は仮想ルータ“ＶＲ５１”を介して接続される別サブネットワークを示す。仮想ルータ“ＶＲ２１”と仮想ブリッジ“ＶＢ２１”との接続ノードはホスト“Ｈ２１”を示し、仮想ルータ“ＶＲ２１”と仮想ブリッジ“ＶＢ２２”との接続ノードはホスト“Ｈ２２”を示す。仮想ブリッジ“ＶＢ５１”には、仮想エクスターナル“ＶＥ５１”が接続され、仮想エクスターナル“ＶＥ５１”には、Ｌ３ルータ“ＳＷ２”が対応付けられている。仮想ブリッジ“ＶＢ５２”には、仮想エクスターナル“ＶＥ５２”が接続されている。
【００６３】
可視化対象の仮想テナントネットワーク“ＶＴＮ１”の属する管理対象仮想ネットワークが図８のように管理されている場合、ＯＦＣ１−１“ＯＦＣ１”からの試験パケット情報要求に対し、ＯＦＣ１−２〜１−５は、それぞれの送信先アドレスとして、ホスト“Ｈ２１”、“Ｈ２２”、“Ｈ３１”、“Ｈ４１”、“Ｈ５１”、“Ｈ５２”を返す。ＯＦＣ１−１は、送信元ホストをホスト“Ｈ１１”とした試験パケットをＯＦＣ１−２〜１−５で管理するホスト“Ｈ２１”、“Ｈ２２”、“Ｈ３１”、“Ｈ４１”、“Ｈ５１”、“Ｈ５２”に送信し、図６と同様な動作により、管理対象仮想ネットワーク間で共通の仮想ノード（対応仮想ノード）を特定する。通常、試験パケット以外のパケットは、ＴＣＰ／ＩＰプロトコルスタックに渡されて転送される。一方、本発明に係る試験パケットに対する中継処理は、仮想ネットワークにおけるＴＣＰ／ＩＰプロトコルスタックの直前で行われる。このため、試験パケットは、ＴＣＰ／ＩＰプロトコルスタックに渡されず送信元に応答パケットとして返送される。例えば、図８に示す仮想テナントネットワーク“ＶＴＮ１”では、ホスト“Ｈ２２”“Ｈ５１”、“Ｈ５２”宛の試験パケットは、転送途中の仮想ルータ“ＶＲ２１”によって破棄され、ホスト“Ｈ４１”宛の試験パケットは仮想エクスターナル“ＶＥ３２”によって破棄される。この場合、ホスト“Ｈ２１”、“Ｈ３１”からのみ試験パケット受信情報が送信される。
【００６４】
図９を参照して、試験パケットを受信した仮想ブリッジ及び仮想エクスターナルを受信仮想ブリッジ及び受信エクスターナルとし、試験パケット受信情報を受信した仮想ブリッジ及び仮想エクスターナルを送信仮想ブリッジ及び送信エクスターナルとして、試験パケットによって特定される対応仮想ノードの一例を説明する。
【００６５】
送信元ホストをホスト“Ｈ１１”とし、宛先をホスト“Ｈ２１”とした試験パケットにより、送信仮想ブリッジが“ＶＢ１１”、受信仮想ブリッジが“ＶＢ２１”となることから、仮想ブリッジ“ＶＢ１１”と“ＶＢ２１”が共通の仮想ブリッジであることが特定される。同様に、送信元と宛先を入れ替えた試験パケットによっても仮想ブリッジ“ＶＢ１１”と“ＶＢ２１”が共通の仮想ブリッジであることが特定される。
【００６６】
又、送信元ホストをホスト“Ｈ１１”とし、宛先をホスト“Ｈ３１”とした試験パケットにより、送信仮想ブリッジが“ＶＢ１１”、受信仮想ブリッジが“ＶＢ３１”となることから、仮想ブリッジ“ＶＢ１１”と“ＶＢ３１”が共通の仮想ブリッジであることが特定される。同様に、送信元と宛先を入れ替えた試験パケットによっても仮想ブリッジ“ＶＢ１１”と“ＶＢ２１”が共通の仮想ブリッジであることが特定される。
【００６７】
更に、送信元ホストをホスト“Ｈ２２”とし、宛先をホスト“Ｈ５１”とした試験パケットにより、送信仮想ブリッジが“ＶＢ２２”、受信仮想ブリッジが“ＶＢ５１”となる。ここで、送信先としてＯＦＣ１−５から通知された送信先アドレスが、ＯＦＣ１−２の管理するネットワークに割り当てられたＩＰアドレス範囲と異なるＩＰアドレス範囲である場合、ＯＦＣ１−２は、ホスト“Ｈ２２”とホスト“Ｈ５１”とはＬ３接続しているものとして、対応仮想ノードの特定処理を行う。この場合、送信仮想エクスターナルと受信仮想エクスターナルが、対応仮想エクスターナルとして特定される。ここでは、送信仮想エクスターナル“ＶＥ２２”、受信仮想エクスターナルが“ＶＥ５１”となることから、仮想エクスターナル“ＶＥ２２”と“ＶＥ５１”が共通の仮想エクスターナルであることが特定される。同様に、送信元と宛先を入れ替えた試験パケットによっても仮想エクスターナル“ＶＥ２２”と“ＶＥ５１”が共通の仮想ブリッジであることが特定される。
【００６８】
更に、送信元ホストをホスト“Ｈ３１”とし、宛先をホスト“Ｈ４１”とした試験パケットにより、送信仮想ブリッジが“ＶＢ３１”、受信仮想ブリッジが“ＶＢ４１”となることから、仮想ブリッジ“ＶＢ３１”と“ＶＢ４１”が共通の仮想ブリッジであることが特定される。同様に、送信元と宛先を入れ替えた試験パケットによっても仮想ブリッジ“ＶＢ３１”と“ＶＢ４１”が共通の仮想ブリッジであることが特定される。
【００６９】
以上のように特定された対応仮想ノードに関する情報（対応仮想ノード情報１０５）に基づいて、ＯＦＣ１−１〜１−５のそれぞれから送信されたＶＮトポロジ情報１４を結合することで管理装置１００は、図１０に示す仮想テナントネットワーク“ＶＴＮ１”のトポロジ情報を作成することができる。
【００７０】
図１０を参照して、ＯＦＣ１−１〜１−３のそれぞれで管理された仮想ブリッジ“ＶＢ１１”、“ＶＢ２１”、“ＶＢ３１”は、ホスト“Ｈ１１”、“Ｈ２１”、“Ｈ３１”、“Ｈ４１”が接続される共通の仮想ブリッジ“ＶＢ１１”として認識される。又、ＯＦＣ１−２及びＯＦＣ１−５のそれぞれで管理された仮想エクスターナル“ＶＥ２２”、“ＶＢ５１”は、仮想ブリッジ“ＶＢ２１”、“ＶＢ５１”が接続される共通の仮想エクスターナル“ＶＥ２２”として認識される。このように、管理装置１００は、共通の仮想ノードを介してＯＦＣ１毎に管理されたＶＮトポロジ情報１４を結合することで、指定した仮想テナントネットワーク“ＶＴＮ１”のトポロジ情報を生成し、視認可能に出力することができる。これにより、ネットワーク管理者は、図１に示すシステム全体における仮想ネットワークのトポロジを一元的に管理することが可能となる。
【００７１】
管理装置１００によるＶＮトポロジ情報１４を対応仮想ノード情報１０５の収集は、任意の時期に実行されても定期的に実行されてもどちらでもよい。定期的に行われた場合、仮想ネットワークの変更に追随して自動的にネットワークトポロジの変更が行われ得る。
【００７２】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。例えば、図１に示す管理装置１００は、ＯＦＣ１とは別に設けられているが、これに限らず、ＯＦＣ１−１〜ＯＦＣ１−５のいずれかに設けられても構わない。又、図１では、コンピュータシステムでは、５つのＯＦＣ１が設けられた形態を示したが、ネットワークに接続されるＯＦＣ１の数やホスト４の数は、これに限らない。更に、管理装置１００は、ＯＦＣ１毎に管理しているＶＮトポロジ情報１４を対応仮想ノード情報１０５の取得よりも前に予め収集し、保持していてもかまわない。
【００７３】
尚、本システムにバックアップ系として仮想ネットワークが設定されている場合、当該仮想ネットワークを管理するＯＦＣ１は、試験パケットの送信先アドレスとして運用系の仮想ブリッジ上のホストアドレスの他、バックアップ系の仮想ブリッジ上のホストアドレスを通知しても良い。例えば、ＰＦＣ１は、試験パケット情報要求にバックアップ系のホストアドレスを要求する情報を含めることで、バックアップ系のホストアドレスを取得するとともに、バックアップ系の仮想ネットワークを通信可能な状態とする。このような状態の元、上述と同様な方法により、バックアップ系のトポロジを確認することが可能となる。
【００７４】
尚、本出願は、日本特許出願番号２０１２−０２７７８０に基づき、日本特許出願番号２０１２−０２７７８０における開示内容は引用により本出願に組み込まれる。
【図１】
2013118690.tif 000003
【図２】
2013118690.tif 000004
【図３】
2013118690.tif 000005
【図４】
2013118690.tif 000006
【図５】
2013118690.tif 000007
【図６】
2013118690.tif 000008
【図７】
2013118690.tif 000009
【図８】
2013118690.tif 000010
【図９】
2013118690.tif 000011
【図１０】
2013118690.tif 000012
【国際調査報告】
2013118690.tif 000013
2013118690.tif 000014
2013118690.tif 000015
2013118690.tif 000016