(57)【特許請求の範囲】
【請求項１】
パケットの特徴に応じた動作を定義した制御情報を保持し、当該制御情報に従って前記パケットの処理を行う複数の物理ノードと、
前記物理ノードを一つ以上用いて構成され、所定の通信機能を実行可能な仮想ノードを含む仮想ネットワークの構成情報を記憶する第１の記憶部と、
前記物理ノードから転送されたパケットに関する情報に基づいて前記仮想ネットワークを特定する仮想ネットワーク特定情報を記憶する第２の記憶部と、
前記通信機能による第１のパケット処理を、前記特定された仮想ネットワークに含まれる前記仮想ノードを構成する物理ノードにより実行させる第１の手段と、
前記第１のパケット処理に対応する第２のパケット処理を指示する制御情報を、前記仮想ノードを構成する物理ノードに通知する第２の手段とを含むこと、を特徴とする情報システム。
【請求項２】
前記第１の記憶部の仮想ネットワークの構成情報は、前記仮想ネットワーク上で接続されたノード同士の接続関係を示したテーブルを含んで構成され、
前記第２の記憶部の仮想ネットワーク特定情報は、入出力物理ノード、該入出力物理ノードの入出力ポート情報およびヘッダ情報を含むパケットの特徴と、前記仮想ネットワークにおける仮想ノード及び仮想ノードのインタフェース（仮想インタフェース）との関係を示したテーブルを含んで構成されている請求項１の情報システム。
【請求項３】
前記物理ノードは、前記制御情報としてフローテーブルを備えるスイッチであり、前記スイッチのフローテーブルを更新する制御サーバを備える請求項１又は２の情報システム。
【請求項４】
パケットの特徴に応じた動作を定義した制御情報を保持し、当該制御情報に従って前記パケットの処理を行う複数の物理ノードと接続され、
前記物理ノードを一つ以上用いて構成され、所定の通信機能を実行可能な仮想ノードを含む仮想ネットワークの構成情報を記憶する第１の記憶部と、
前記物理ノードから転送されたパケットに関する情報に基づいて前記仮想ネットワークを特定する仮想ネットワーク特定情報を記憶する第２の記憶部と、
前記通信機能による第１のパケット処理を、前記特定された仮想ネットワークに含まれる前記仮想ノードを構成する物理ノードに実行させる第１の手段と、
前記第１のパケット処理に対応する第２のパケット処理を指示する制御情報を、前記仮想ノードを構成する物理ノードに通知する第２の手段とを含むこと、を特徴とする制御サーバ。
【請求項５】
前記第１の記憶部の仮想ネットワークの構成情報は、前記仮想ネットワーク上で接続されたノード同士の接続関係を示したテーブルを含んで構成され、
前記第２の記憶部の仮想ネットワーク特定情報は、入出力物理ノード、該入出力物理ノードの入出力ポート情報およびヘッダ情報を含むパケットの特徴と、前記仮想ネットワークにおける仮想ノード及び仮想ノードのインタフェース（仮想インタフェース）との関係を示したテーブルを含んで構成されている請求項４の制御サーバ。
【請求項６】
前記物理ノードは、前記制御情報としてフローテーブルを備えるスイッチであり、前記スイッチのフローテーブルを更新する請求項４又は５の制御サーバ。
【請求項７】
パケットの特徴に応じた動作を定義した制御情報を保持し当該制御情報に従って前記パケットの処理を行う複数の物理ノードと、接続された制御サーバに実行させる仮想ネットワーク管理方法であって、
前記制御サーバが、前記物理ノードを一つ以上用いて構成され、所定の通信機能を実行可能な仮想ノードを含む仮想ネットワークの構成情報を記憶する第１の記憶部と、前記物理ノードから転送されたパケットに関する情報に基づいて前記仮想ネットワークを特定する仮想ネットワーク特定情報を記憶する第２の記憶部と、を参照し、
前記通信機能による第１のパケット処理を、前記特定された仮想ネットワークに含まれる前記仮想ノードを構成する物理ノードにより実行するステップと、
前記第１のパケット処理に対応する第２のパケット処理を指示する制御情報を、前記仮想ノードを構成する物理ノードに通知するステップと、
を含む仮想ネットワーク管理方法。
【請求項８】
パケットの特徴に応じた動作を定義した制御情報を保持し当該制御情報に従って前記パケットの処理を行う複数の物理ノードと、接続された制御サーバを構成するコンピュータに実行させるプログラムであって、
前記物理ノードを一つ以上用いて構成され、所定の通信機能を実行可能な仮想ノードを含む仮想ネットワークの構成情報を記憶する第１の記憶部と、前記物理ノードから転送されたパケットに関する情報に基づいて前記仮想ネットワークを特定する仮想ネットワーク特定情報を記憶する第２の記憶部と、を参照し、
前記通信機能による第１のパケット処理を、前記特定された仮想ネットワークに含まれる前記仮想ノードを構成する物理ノードに実行させる処理と、
前記第１のパケット処理に対応する第２のパケット処理を指示する制御情報を、前記仮想ノードを構成する物理ノードに通知する処理と、
を前記コンピュータに実行させるプログラム。
【請求項９】
所定の通信機能を実行可能な仮想ノードを含む複数の仮想ネットワークから、パケットに対応する仮想ネットワークを特定する第１の手段と、
前記通信機能による第１のパケット処理を、前記特定された仮想ネットワークに含まれる前記仮想ノードを構成する物理ノードにより実行させる第２の手段と、
前記第１のパケット処理に対応する第２のパケット処理を指示する制御情報を、前記仮想ノードを構成する物理ノードに通知する第３の手段と
を含む制御装置。
【請求項１０】
所定の通信機能を実行可能な仮想ノードを含む複数の仮想ネットワークから、パケットに対応する仮想ネットワークを特定し、
前記通信機能による第１のパケット処理を、前記特定された仮想ネットワークに含まれる前記仮想ノードを構成する物理ノードにより実行し、
前記第１のパケット処理に対応する第２のパケット処理を指示する制御情報を、前記仮想ノードを構成する物理ノードに通知する
ことを特徴とする制御方法。
【請求項１１】
所定の通信機能を実行可能な仮想ノードを含む複数の仮想ネットワークから、パケットに対応する仮想ネットワークを特定する第１の手段と、
前記通信機能による第１のパケット処理を、前記特定された仮想ネットワークに含まれる前記仮想ノードを構成する物理ノードにより実行させる第２の手段と、
前記第１のパケット処理に対応する第２のパケット処理を指示する制御情報を、前記仮想ノードを構成する物理ノードに通知する第３の手段と
を含む通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２００９−２３３８９５号（２００９年１０月  ７日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、情報システム、制御サーバ、仮想ネットワーク管理方法およびプログラムに関し、特に、仮想的なネットワークを提供する情報システム、制御サーバ、仮想ネットワーク管理方法およびプログラムに関する。
【背景技術】
【０００２】
特許文献１に、サービス毎エンド・ツー・エンドのセキュリティ、クライアントでのサービス間のセキュリティ、大規模システムに対するスケーラビリティを実現する仮想網構築装置が開示されている。同文献によると、クライアントが認証成功後にパス制御サーバから送信されたランチャーソフトから、利用可能なサービスを選択すると、対応するパス構築要求がパス制御サーバに送信される。パス制御サーバは、クライアントに対して拠点ルータとの連結指示を発行するとともに、拠点ルータ１３３に対してクライアントとの連結指示を発行する。これにより、クライアントと拠点ルータ間の拠点内ＶＬＡＮを動的に構築することができるとされている。【０００３】
特許文献２に、顧客を階層的に管理するシステムが開示されている。また、特許文献３には、新しいネットワーク・トポロジを提供できるというピア・ツー・ピアネットワークが開示されている。【０００４】
非特許文献１にオープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。転送ノードとして機能するオープンフロースイッチは、オープンフロープロトコルに従ってオープンフローコントローラにより追加・更新されるフローテーブルに従って動作する。フローテーブルには、パケットを特定するパケットマッチングルールと、特定のポートに出力する、廃棄する、ヘッダを書き換えるといったアクションの組がフローエントリとして登録される。オープンフロースイッチは、該当するエントリがあった場合、エントリに記載されたアクションに従って受信パケットの処理を行い、該当エントリがない場合は、オープンフロープロトコルにパケットの受信を通知する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１３５８０５号公報
【特許文献２】特表２００７−５２５７２８号公報
【特許文献３】特開２００８−３０６７２５号公報
【０００６】
【非特許文献１】Nick McKeownほか７名、“OpenFlow: Enabling Innovation in Campus Networks”、［online］、［平成21年7月17日検索］、インターネット〈URL：http://www.openflowswitch.org//documents/openflow-wp-latest.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献１から３及び非特許文献１の全開示内容はその引用をもって本書に繰込み記載する。
以下の分析は、本発明によってなされたものである。
特許文献１−３の技術は、ネットワークを論理的に分割するものであるが、フロー単位でポリシを決定し、きめ細かい経路制御を行うものではない。また、経路制御を行うために、ソースルーティング等の方法を用いることも考えられるが、この場合、パケットが含むことができる正味のデータ量が小さくなってしまうという問題点が生じてしまう。【０００８】
この点、非特許文献１には、フロー単位でアクションを定義したフローテーブルに基づいて動作するオープンフロースイッチにより経路制御を行う構成が提案されているが、具体的には、これらの仕組みを用いて、ネットワーク管理やアクセスコントロールができること、オープンフロースイッチを仮想化して仮想ネットワークを構築できることなどが記載されているに止まる。【０００９】
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、物理的なネットワークを仮想化して仮想ネットワークを構成し、当該仮想ネットワークにおけるきめ細かな経路制御を実現する構成を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の第１の視点によれば、パケットの特徴に応じた動作を定義した制御情報を保持し、当該制御情報に従って前記パケットの処理を行う複数の物理ノードと、前記物理ノードを一つ以上用いて構成され、所定の通信機能を実行可能な仮想ノードを含む仮想ネットワークの構成情報を記憶する第１の記憶部と、前記物理ノードから転送されたパケットに関する情報に基づいて前記仮想ネットワークを特定する仮想ネットワーク特定情報を記憶する第２の記憶部と、前記通信機能による第１のパケット処理を、前記特定された仮想ネットワークに含まれる前記仮想ノードを構成する物理ノードにより実行させる第１の手段と、前記第１のパケット処理に対応する第２のパケット処理を指示する制御情報を、前記仮想ノードを構成する物理ノードに通知する第２の手段とを含む情報システムが提供される。
【００１１】
本発明の第２の視点によれば、パケットの特徴に応じた動作を定義した制御情報を保持し、当該制御情報に従って前記パケットの処理を行う複数の物理ノードと接続され、前記物理ノードを一つ以上用いて構成され、所定の通信機能を実行可能な仮想ノードを含む仮想ネットワークの構成情報を記憶する第１の記憶部と、前記物理ノードから転送されたパケットに関する情報に基づいて前記仮想ネットワークを特定する仮想ネットワーク特定情報を記憶する第２の記憶部と、前記通信機能による第１のパケット処理を、前記特定された仮想ネットワークに含まれる前記仮想ノードを構成する物理ノードに実行させる第１の手段と、前記第１のパケット処理に対応する第２のパケット処理を指示する制御情報を、前記仮想ノードを構成する物理ノードに通知する第２の手段とを含む制御サーバが提供される。
【００１２】
本発明の第３の視点によれば、パケットの特徴に応じた動作を定義した制御情報を保持し当該制御情報に従って前記パケットの処理を行う複数の物理ノードと、接続された制御サーバに実行させる仮想ネットワーク管理方法であって、前記制御サーバが、前記物理ノードを一つ以上用いて構成され、所定の通信機能を実行可能な仮想ノードを含む仮想ネットワークの構成情報を記憶する第１の記憶部と、前記物理ノードから転送されたパケットに関する情報に基づいて前記仮想ネットワークを特定する仮想ネットワーク特定情報を記憶する第２の記憶部と、を参照し、前記通信機能による第１のパケット処理を、前記特定された仮想ネットワークに含まれる前記仮想ノードを構成する物理ノードにより実行するステップと、前記第１のパケット処理に対応する第２のパケット処理を指示する制御情報を、前記仮想ノードを構成する物理ノードに通知するステップと、を含む仮想ネットワーク管理方法が提供される。本方法は、物理ノードと接続され、その制御情報を更新する制御サーバという、特定の機械に結びつけられている。
【００１３】
本発明の第４の視点によれば、パケットの特徴に応じた動作を定義した制御情報を保持し当該制御情報に従って前記パケットの処理を行う複数の物理ノードと、接続された制御サーバを構成するコンピュータに実行させるプログラムであって、前記物理ノードを一つ以上用いて構成され、所定の通信機能を実行可能な仮想ノードを含む仮想ネットワークの構成情報を記憶する第１の記憶部と、前記物理ノードから転送されたパケットに関する情報に基づいて前記仮想ネットワークを特定する仮想ネットワーク特定情報を記憶する第２の記憶部と、を参照し、前記通信機能による第１のパケット処理を、前記特定された仮想ネットワークに含まれる前記仮想ノードを構成する物理ノードに実行させる処理と、前記第１のパケット処理に対応する第２のパケット処理を指示する制御情報を、前記仮想ノードを構成する物理ノードに通知する処理と、を前記コンピュータに実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１４】
本発明によれば、構成した仮想ネットワーク上でパケットの特徴に応じた経路制御を行うことが可能になる。また、制御情報の更新後は、前記制御サーバへの問い合わせは不要となり、また、個々の物理ノード等がルーティングテーブル等を参照する必要もないため、処理を高速化することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の概要を説明するための図である。
【図２】本発明の第１の実施形態の構成を表した図である。
【図３】本発明の第１の実施形態の物理ノードの詳細構成を表した図である。
【図４】本発明の第１の実施形態の制御サーバの詳細構成を表した図である。
【図５】本発明の第１の実施形態の制御サーバによって構築される仮想ネットワークの構成を表した図である。
【図６】本発明の第１の実施形態の制御サーバが保持する仮想ノードテーブルの例である。
【図７】本発明の第１の実施形態の制御サーバが保持する仮想ノードの設定情報の例である。
【図８】本発明の第１の実施形態の制御サーバが保持する仮想ネットワーク構成情報の例である。
【図９】図８の仮想ネットワーク構成情報に対応する仮想ネットワークの模式図である。
【図１０】本発明の第１の実施形態の制御サーバが保持する仮想ネットワーク特定情報の例である。
【図１１】本発明の第１の実施形態の制御サーバが保持する管理スイッチ情報の例である。
【図１２】本発明の第１の実施形態の制御サーバが保持するフローエントリの例である。
【図１３】図２の構成と、図５の仮想ネットワークの対応関係を示す図である。
【図１４】本発明の第１の実施形態の動作を説明するためのシーケンス図である。
【図１５】本発明の第１の実施形態の動作を説明するためのシーケンス図である。
【図１６】本発明の第１の実施形態の動作を説明するためのシーケンス図である。
【図１７】本発明の第１の実施形態の動作を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１６】
はじめに、本発明の概要について図面を参照して説明する。図１に示すように、本発明は、入出力パケットの特徴に応じた動作を定義した制御情報を保持し、当該制御情報に従って入出力パケットの処理を行う複数の物理ノード１０と、これら物理ノード１０の制御情報を更新する機能を備えた制御サーバ２０とによって実現できる。
【００１７】
制御サーバ２０は、物理ノード１０を仮想化した仮想ノードを含んで構成される仮想ネットワークの構成情報を記憶する第１の記憶部（仮想ネットワーク構成情報記憶部）２０２と、入力パケットの特徴から前記仮想ネットワークを特定する仮想ネットワーク特定情報を記憶する第２の記憶部（仮想ネットワーク特定情報記憶部）２０３と、物理ノード１０からの要求に基づいて、当該物理ノードが受信したパケットと共通する特徴を有するパケットを取り扱う仮想ネットワークを構成する物理ノードを特定して、各物理ノード１０の制御情報を更新する制御部２１０と、を備える。
【００１８】
前記物理ノード１０は、フローテーブルに従って動作する非特許文献１のＯｐｅｎＦｌｏｗスイッチと同等のスイッチやルータによって実現することが可能であり、フローテーブルにないパケットを受信すると、制御サーバ２０に対し、当該パケットを受信したことを通知する（フローエントリの作成要求；図１の物理ノード１０から制御部２１０への矢線）。
【００１９】
制御サーバ２０は、フローエントリの作成要求を受けると、前記第２の記憶部２０３を参照して、入力パケットの特徴（ポート番号、物理ノードのＩＤ、ヘッダ情報）から、当該パケットが属すべき仮想ネットワークを特定する。次に、制御サーバ２０は、前記第１の記憶部２０２を参照して、受信パケットについて適宜仮想ネットワーク内の転送処理を行うとともに、前記特定した仮想ネットワークに対応する物理ノードを特定し、前記特定した物理ノードの制御情報を更新する処理を行う（図１の制御部２１０から物理ノード１０への矢線）。このようにして、後続するパケットが、それぞれ仮想ネットワーク毎に更新された制御情報に従って物理ノードによって次々に転送される。
【００２０】
なお、上記制御サーバ２０は、非特許文献１のＯｐｅｎＦｌｏｗコントローラをベースに、上記した仮想ネットワークに関する機能をアドオンすることによって実現することができる。またあるいは、非特許文献１のＯｐｅｎＦｌｏｗコントローラと連携動作し、上記した仮想ネットワークに関する機能を提供する別個のサーバにて実現することも可能である。
【００２１】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図２は、本発明の第１の実施形態の構成を表した図である。図２を参照すると、複数の物理ノード１０と、制御サーバ２０と、外部ノード３０とが示されている。
【００２２】
物理ノード１０は、互いに接続されて外部ネットワークと、外部ノード３０との間で送受信されるパケットを転送するスイッチやルータによって構成される。本実施形態では、物理ノード１０は、ＯｐｅｎＦｌｏｗスイッチであるものとする。
【００２３】
制御サーバ２０は、物理ノード１０とセキュアなチャネルを介して接続され、物理ノード１０に対し、制御情報の更新を指示するサーバである。本実施形態では、制御サーバ２０は、物理ノード１０とＯｐｅｎＦｌｏｗプロトコルで通信するＯｐｅｎＦｌｏｗコントローラとしての機能を備えたサーバであるものとする。
【００２４】
外部ノード３０は、外部ネットワークからアクセスするユーザ端末に対して各種のサービスを提供するサーバによって構成される。本実施形態では、外部ノード３０は、Ｈｔｔｐ（Ｈｙｐｅｒ−Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）サーバであるものとして説明する。
【００２５】
図３は、本発明の第１の実施形態の物理ノードの詳細構成を表した図である。図３を参照すると、物理ノード１０は、制御サーバ２０と通信するサーバ通信部１１と、フローテーブル１２と、制御部１３を備えて構成される。制御部１３は、制御サーバ２０からの指示に従って、フローテーブル１２への新規エントリを追加する処理や、フローテーブル１２から受信パケットに適合するマッチングキーを持つエントリを検索し、該当するアクションを実行する処理等を行う。
【００２６】
図４は、本発明の第１の実施形態の制御サーバの詳細構成を表した図である。図４を参照すると、制御サーバ２０は、仮想ノードエミュレーション部２１１と、仮想ネットワーク制御部２１２と、経路制御部２１３と、ＯｐｅｎＦｌｏｗプロトコル処理部２１４と、後記する情報を記憶する記憶部として機能する記憶装置を備えている。
【００２７】
図４の例では、制御サーバ２０は、前記記憶装置によって構成された、仮想ノードオブジェクト記憶部２０１、仮想ネットワーク構成情報記憶部２０２と、仮想ネットワーク特定情報記憶部２０３と、物理トポロジ情報記憶部２０４と、最短経路情報記憶部２０５と、設定済みフロー転送経路情報記憶部２０６と、フローエントリ記憶部２０７と、管理スイッチ情報記憶部２０８とを備えている。
【００２８】
以下、本実施形態では、制御サーバ２０は、図５に示すレイヤ３スイッチ（Ｌ３ＳＷ）、ファイアウォール（ＦＷ）、ロードバランサ（ＬＢ）、レイヤ２スイッチ（Ｌ２ＳＷ）とによって構成される仮想ネットワークを構築するものとして説明する。
【００２９】
仮想ノードエミュレーション部２１１は、仮想ノードオブジェクト記憶部２０１に記憶された上記Ｌ３ＳＷ、ＦＷ、ＬＢ、Ｌ２ＳＷに対応するクラスを持つ仮想オブジェクトを用いて、仮想ノードとして処理を実行する。それぞれの仮想オブジェクトは、例えば、仮想ネットワーク上の仮想ノードＩＤと、オブジェクトＩＤとを対応付けた図６に示す仮想ノードテーブルによって特定される。
【００３０】
図７は、仮想ノードオブジェクト記憶部２０１に記憶された仮想ルータオブジェクトの設定情報の例である。基本的な動作は、通常の物理的なルータ装置と同様であり、ルーティングテーブルを参照して宛先を決定し、ＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）テーブルによりＭＡＣアドレスを解決し、ＳｏｕｒｃｅＭＡＣアドレスのルータのＭＡＣアドレスへの変換等を行う。実ネットワークにおけるルータ装置との相違点は、ルーティングテーブルに、仮想インタフェースＩＤが格納されており、宛先として仮想インタフェースＩＤを解決する点である。従って、仮想ノードエミュレーション部２１１は、仮想ネットワーク制御部２１２から仮想ノードＩＤとして上記仮想ルータを指定したパケットを受け付けると、上記仮想ネットワーク上のルータとしての処理を行い、仮想インタフェースＩＤ、宛先ＭＡＣ等の変換後のパケットを出力する。
【００３１】
図７に示したような仮想ノードの設定は、仮想ネットワークの使用権限を与えられたユーザに変更させることができる。一方、後記する物理ノードと仮想ネットワークとの対応関係等は、ユーザから隠蔽することで、ユーザとしては、仮想ネットワーク上の仮想ノードをあたかも物理的なノードと同様に利用することができる。
【００３２】
仮想ネットワーク制御部２１２は、仮想ネットワーク構成情報記憶部２０２および仮想ネットワーク特定情報記憶部２０３に記憶された仮想ネットワークの構成情報およびその実ネットワークとの対応関係情報に従って仮想ノードエミュレーション部２１１とのパケット情報の入出力を行う。また、仮想ネットワーク制御部２１２は、受信したパケットを、一時的にパケットキャッシュ２１５に格納し、最終的にパケットを出力する物理ノードに指示するパケットヘッダの変換内容を作成する。
【００３３】
図８は、仮想ネットワーク構成情報記憶部２０２に記憶された仮想ネットワーク構成情報の例である。ＫＥＹフィールドに示された仮想ノードの仮想インタフェースが、Ｖａｌｕｅフィールドの仮想ノードの仮想インタフェースで接続されていることを示している。図８の例では、ＩＤ＃１の仮想ノードが仮想インタフェースＩＤ＃１０の仮想インタフェースで、ＩＤ＃２の仮想ノードと接続され、ＩＤ＃２の仮想ノードが仮想インタフェースＩＤ＃３０の仮想インタフェースで、外部ノードと接続されていることを示している。図９は、図８の仮想ネットワーク構成情報に対応する仮想ネットワークの模式図である。仮想ネットワーク制御部２１２は、このような仮想ネットワーク構成情報に基づいて、仮想ノードエミュレーション部２１１に対し、仮想ノードＩＤを指定してパケットを入力し、その結果を得ることが可能になる。
【００３４】
図１０は、仮想ネットワーク特定情報記憶部２０３に記憶された仮想ネットワークとパケットの特徴との対応関係を示す仮想ネットワーク特定情報の例である。図１０の例では、ＫＥＹフィールドに示された条件に合致するパケットについて、属すべき仮想ネットワーク、仮想ノードＩＤ、仮想インタフェースを一意に求めることができる構成となっている。また、図１０のようなテーブルを逆引きすることにより、ある仮想ネットワーク、仮想ノードＩＤ、仮想インタフェースを持つパケットを出力すべき、実ネットワーク上の物理スイッチＩＤや物理ポートＩＤ、ｖｌａｎ−ｔａｇを決定することが可能になる。以下、本明細書では、上記仮想ネットワークと実ネットワーク間の変換操作を「物理仮想変換」という。なお、図１０の例では、物理ノードＩＤ、物理ポートＩＤ、ヘッダ情報として、送信元ＭＡＣアドレス（ｍａｃ（ｓｒｃ））、宛先ＭＡＣアドレス（ｍａｃ（ｄｓｔ））、ＶＬＡＮ番号（ｖｌａｎ−ｔａｇ）、送信元ＩＰアドレス（ｉｐ（ｓｒｃ））、宛先ＩＰアドレス（ｉｐ（ｄｓｔ））、送信元レイヤ４ポート番号（ｌ４ｐｏｒｔ（ｓｒｃ））、宛先レイヤ４ポート番号（ｌ４ｐｏｒｔ（ｄｓｔ））等を示したが、これらのすべての情報を用いる必要はないし、また、必要に応じて、その他のヘッダ情報またはパケット情報を指定できるようにしても良い。
【００３５】
図８のようなテーブルを仮想ネットワークの数だけ用意することで複数の仮想ネットワークを構築することができる。そして、図９のようなテーブルで、ユーザ毎のパケットの特徴と当該ユーザが使用権限を有する仮想ネットワークとを定義しておくことで、仮想ネットワークを論理的に分離された形態で複数のユーザに提供することができる。
【００３６】
仮想ネットワーク制御部２１２は、入力パケットを仮想ノードエミュレーション部２１１に入力し、その処理結果を得ると、経路制御部２１３に対し、当該パケットを受信した物理ノードとそのポート番号と、仮想ノードエミュレーション部２１１によるネットワーク処理後のパケットの物理仮想変換後の物理ノードとその出力ポート番号とを入力する。
【００３７】
経路制御部２１３は、物理トポロジ情報記憶部２０４に記憶された物理ネットワークトポロジ情報に基づいて、上記物理ノードに入力されたパケットを、上記物理仮想変換後の物理ノードから出力するための転送経路を計算する。この経路計算には、例えば、ダイクストラの最短経路アルゴリズムを用いることができる。
【００３８】
また、経路制御部２１３は、前記経路計算された結果を、最短経路情報記憶部２０５にキャッシュとして所定期間保存する。次回以降の経路計算の際に、経路制御部２１３は、最短経路情報記憶部２０５に記憶された最短経路を参照し、キャッシュが残っていれば、経路計算処理を省略することができる。
【００３９】
また、経路制御部２１３は、設定済みフロー転送経路情報記憶部２０６にも、前記フローと最短経路情報の組を保存する。次回以降の経路計算の際に、経路制御部２１３は、設定済みフロー転送経路情報記憶部２０６に記憶された経路情報を利用することができる。
【００４０】
上記最短経路情報記憶部２０５および設定済みフロー転送経路情報記憶部２０６は省略することもできる。また、それぞれへの経路情報にどれだけ保存するかは、本システムの用途やハードウェア仕様に応じて適宜変更することができる。
【００４１】
ＯｐｅｎＦｌｏｗプロトコル処理部２１４は、上記のように、経路制御部２１３にて起算された経路情報に従って、各物理ノード１０に対してフローテーブル１２の更新を指示する。図１１は、前記処理を行う際に、ＯｐｅｎＦｌｏｗプロトコル処理部２１４が参照する管理スイッチテーブルの例である。図１２は、フローエントリの例である。
【００４２】
図１３は、図５の仮想ネットワークと、図２に示した実ネットワーク構成の対応関係を示した図である。例えば、図１３の物理ノード１０＃１の外部ネットワークと接続されたポートからパケットが受信されると、物理ノード１０＃１は、フローテーブル１２に当該パケットに適合するエントリが無ければ、制御サーバ２０のＯｐｅｎＦｌｏｗプロトコル処理部２１４に問い合わせを発行する。ＯｐｅｎＦｌｏｗプロトコル処理部２１４は、前記問い合わせに、物理ノード１０＃１のＩＤやポート番号を付加して仮想ネットワーク制御部２１２に転送する。仮想ネットワーク制御部２１２は、上記仮想ネットワーク構成情報記憶部２０２および仮想ネットワーク特定情報記憶部２０３を参照して、受信パケットを物理仮想変換し、図１１の上段に示す仮想ネットワークに入力されたものとして適宜仮想ノードエミュレーション部２１１を用いてネットワーク処理を実行する。そして、仮想ネットワーク制御部２１２は、仮想ノードエミュレーション部２１１からの処理結果を再度物理仮想変換し、その結果を経路制御部２１３に入力する。ここで例えば、仮想ノードエミュレーション部２１１の出力を仮想物理変換した結果から物理ノード１０＃２のＨＴＴＰサーバ１に接続されたポートから出力すべきとの結果が得られ、経路制御部２１３が物理ノード１０＃１から物理ノード１０＃２に到る経路が最短であると計算すると、ＯｐｅｎＦｌｏｗプロトコル処理部２１４が、物理ノードＩＤ１０＃２の前記仮想インタフェースに対応する物理ポートから前記パケットを出力するよう制御するとともに、後続パケットも同様に処理するように経路上の、物理ノード１０＃１および物理ノード１０＃２に対しフローテーブルの更新を指示する。
【００４３】
以上により、図１３の上段の仮想ネットワークと同等のネットワーク処理が、図１３の下段に示す物理ノード１０＃１〜１０＃３と、制御サーバ２０の組み合わせにより実現される。このような構成の利点の一つは、物理ノードやＨＴＴＰサーバの物理的な構成変更を行ったとしても、図１０に例示した物理仮想変換で用いるテーブルを修正すれば対応でき、保守性が向上することである。例えば、図１３の下段に示す物理ノード１０＃１のリプレースを行った場合、図１０に例示した物理仮想変換で用いるテーブルを修正すればよく、ユーザに見えている仮想ネットワークの構成（図１３の上段参照）には影響を与えない。
【００４４】
続いて、図１４から図１７を参照して、本実施形態の一連の動作を整理して説明する。以下の説明では、物理ノード＃１が外部ネットワークに接続されたユーザ端末等から新規にパケットを受信したものとして説明する。また、説明を簡単にするため、仮想ネットワークには、仮想ノードとして１台の仮想ルータが設けられているものとして説明する。
【００４５】
図１４に示すとおり、物理ノード＃１は、パケットを受信すると、フローテーブル１２から、当該パケットに適合するマッチングキーを有するエントリを検索する（ステップＳ００１）。
【００４６】
ここでは、前記パケットは１ｓｔパケットであり、物理ノード＃１のフローテーブルに、前記受信パケットに対応するエントリが登録されていないものとする。そこで、物理ノード＃１は、前期パケットを受信したポート番号（入力ポート番号）および当該パケットを添付した制御サーバ２０への問い合わせを発行し、フローエントリの生成・送信を要求する（ステップＳ００２；パケット受信通知（Ｐａｃｋｅｔ−Ｉｎ））。
【００４７】
制御サーバ２０のＯｐｅｎＦｌｏｗプロトコル処理部２１４は、パケット受信通知（Ｐａｃｋｅｔ−Ｉｎ）を受信すると、当該パケット受信通知（Ｐａｃｋｅｔ−Ｉｎ）の送信元の物理ノードＩＤ（入力物理ノード）を付加して、仮想ネットワーク制御部２１２に転送する（ステップＳ００３）。なお、物理ノードＩＤは、図１１に示した管理スイッチテーブルや当該パケットを受信したセキュリティチャネル識別子（ＳｅｃＣｈａｎ識別子）により求めることができる。
【００４８】
仮想ネットワーク制御部２１２は、受信パケットをパケットキャッシュ２１５に保存するとともに、パケットの送信元の物理ノードＩＤ（入力物理ノード）、入力ポート番号やヘッダ情報から、図１０に例示した仮想ネットワーク特定情報を参照して当該パケットを仮想物理変換する（ステップＳ００４）。なお、パケットキャッシュ２１５を省略した構成も採用可能であり、この場合には、パケットキャッシュ２１５への受信パケットの保存は省略される。
【００４９】
次に図１５に示すとおり、仮想ネットワーク制御部２１２が、仮想物理変換後のパケットを仮想ルータに入力すると、仮想ルータは、図７（ａ）に例示したルーティングテーブルを参照してパケットの送信先の仮想インタフェースＩＤを解決し、またＭＡＣアドレスを書き換えたパケットを送出する（ステップＳ００５）。
【００５０】
仮想ネットワーク制御部２１２は、前記送信されたパケットの仮想インタフェースＩＤから図１０に例示した仮想ネットワーク特定情報を逆引きして、当該パケットを出力する物理ノードＩＤおよびその物理ポートＩＤを解決するとともに、パケットキャッシュ２１５に格納した受信時のパケットと前記送信されたパケットのヘッダ情報を比較することで、当該物理ノードに指示するヘッダ変換内容を解決する（ステップＳ００６）。なお、仮想ネットワーク制御部２１２にパケットキャッシュ２１５が設けられていない場合には、経路制御部２１３等から該当するパケットを受け取る等の方法を適宜採用すればよい。
【００５１】
次に、仮想ネットワーク制御部２１２は、入力物理ノード、入力ポート番号、ヘッダ情報、前記解決した当該パケットを出力する物理ノードＩＤおよび物理ポートＩＤ、ヘッダ変換内容を含んだフローエントリの設定を要求する。
【００５２】
次に図１６に示すとおり、前記フローエントリの設定要求を受けた経路制御部２１３が入力物理ノードから出力物理ノードまでの最短経路を解決する（ステップＳ００７）。経路制御部２１３は、物理ノード＃２に対して、前記受信パケットを送信し、指定されたポートから出力するように指示するとともに、ＯｐｅｎＦｌｏｗプロトコル処理部２１４に対し、前記解決した最短経路を実現するフローエントリの追加を要求する。
【００５３】
物理ノード＃２は、前記経路制御部２１３からの指示に従って受信パケットを指定ポートから出力する（ステップＳ００８）。またこのとき、ＯｐｅｎＦｌｏｗプロトコル処理部２１４は、物理ノード＃２に対して、受信パケットのヘッダからＩＰ  ＤＡ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）を取得し、当該受信パケットが入力されたポート以外のポートにＡＲＰリクエストを送信し、該当するＭＡＣ  ＤＡを取得するようなアクションを実行させてもよい。
【００５４】
さらに、ＯｐｅｎＦｌｏｗプロトコル処理部２１４は、前記指示された最短経路に対応する各物理ノードへのフローエントリを作成し、物理ノード＃１、物理ノード＃２に、フローエントリを送信する（フローエントリ追加要求；ＦｌｏｗＭｏｄ（Ａｄｄ））。このとき、ＯｐｅｎＦｌｏｗプロトコル処理部２１４は、物理ノード＃２に対して、ヘッダの変換を行うアクションを定めたフローエントリも送信する。
【００５５】
物理ノード＃１および物理ノード＃２は、前記ＯｐｅｎＦｌｏｗプロトコル処理部２１４からの指示に従ってフローエントリをフローテーブル１２に追加する（ステップＳ００９）。
【００５６】
その後は、図１７に示すとおり、フローテーブル１２の検索（ステップＳ１０１）にて前記設定されたフローエントリが検出されるため、物理ノード＃１は、制御サーバ２０に問い合わせ等を発行することなく、後続するパケットを次々に物理ノード＃２に転送する（ステップＳ１０２）。
【００５７】
物理ノード＃２においても同様に、フローテーブル１２の検索（ステップＳ１０３）にて前記設定されたフローエントリが検出されるため、物理ノード＃２は、物理ノード＃１から受信したパケットを次々に指定ポートから出力する（ステップＳ１０４）。
【００５８】
なお、図１４から図１７では省略したが、上記したパケットに対する応答が物理ノード＃２のパケット出力先から送信された場合には、図１４から図１７の物理ノード＃１と物理ノード＃２とを入れ替えた流れにて同様に処理が行われる。
【００５９】
以上、上記した実施形態では、仮想ノードとして仮想ルータが設けられている例を挙げて説明したが、図５に示す仮想ネットワーク上のファイアウォール（ＦＷ）、ロードバランサ（ＬＢ）等も同様に、物理ノードの振る舞いを規定することで実現することが可能である。
【００６０】
例えば、仮想ノードエミュレーション部２１１を、特定のレイヤのヘッダ情報を参照してフィルタリングするというファイアウォールポリシに従ってファイアウォールとして動作させた場合には、先の仮想ルータからの出力パケットを入力し、その結果に基づいて、物理ノードに該当パケットを廃棄（ｄｒｏｐ）させるアクションを設定することで、仮想ネットワーク上のファイアウォールと同等の機能が実現される。
【００６１】
同様に例えば、所定のロードバランスポリシに従って動作する仮想ノードエミュレーション部２１１に、前記ファイアウォールからの出力を入力し、その結果に基づき、パケットの送信先を切り替えるアクションを設定することで、仮想ネットワーク上のロードバランサと同等の機能が実現される。
【００６２】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態では、物理ノードとしてＯｐｅｎＦｌｏｗスイッチを用い、制御サーバとの通信はＯｐｅｎＦｌｏｗプロトコルを用いるものとして説明したが、同等の機能を持つものであれば、上記の例に限定されるものではない。例えば、物理ノードとしては、上記ＯｐｅｎＦｌｏｗスイッチのほか、ＩＰ網におけるルータ、ＭＰＬＳ（Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）網におけるＭＰＬＳスイッチにて実現することができる。
【００６３】
なお、本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００６４】
１０、１０＃１、１０＃２、１０＃３  物理ノード
１１  サーバ通信部
１２  フローテーブル
１３  制御部
２０  制御サーバ
３０  外部ノード
２０１  仮想ノードオブジェクト記憶部
２０２  第１の記憶部（仮想ネットワーク構成情報記憶部）
２０３  第２の記憶部（仮想ネットワーク特定情報記憶部）
２０４  物理トポロジ情報記憶部
２０５  最短経路情報記憶部
２０６  設定済みフロー転送経路情報記憶部
２０７  フローエントリ記憶部
２０８  管理スイッチ情報記憶部
２１０  制御部
２１１  仮想ノードエミュレーション部
２１２  仮想ネットワーク制御部
２１３  経路制御部
２１４  ＯｐｅｎＦｌｏｗプロトコル処理部
２１５  パケットキャッシュ
【図１】
0005494668.tif 000002
【図２】
0005494668.tif 000003
【図３】
0005494668.tif 000004
【図４】
0005494668.tif 000005
【図５】
0005494668.tif 000006
【図６】
0005494668.tif 000007
【図７】
0005494668.tif 000008
【図８】
0005494668.tif 000009
【図９】
0005494668.tif 000010
【図１０】
0005494668.tif 000011
【図１１】
0005494668.tif 000012
【図１２】
0005494668.tif 000013
【図１３】
0005494668.tif 000014
【図１４】
0005494668.tif 000015
【図１５】
0005494668.tif 000016
【図１６】
0005494668.tif 000017
【図１７】
0005494668.tif 000018