(57)【要約】  ユーザが経路制御情報を設定することなく、異なるネットワークインタフェースの中から、ＴＣＰ等のセッションに不具合の生じないネットワークインタフェースを選択することのできる構成を提供する。計算機は、第１の物理ネットワークインタフェース装置と接続された第１の仮想スイッチと、第２の物理ネットワークインタフェース装置と接続された第２の仮想スイッチと、前記仮想ネットワークインタフェース装置から送信されてきたパケットを解析して得られたパケットの送信先との通信結果に基づいて、前記仮想ネットワークインタフェース装置を第１の仮想スイッチと第２の仮想スイッチとのどちらに接続するかを選択する通信解析部（または経路制御部）と、前記通信解析部（または経路制御部）によって選択された仮想スイッチと前記仮想ネットワークインタフェース装置との接続を保持する接続設定部と、を備える。
2011087085.tif 000002
【特許請求の範囲】
【請求項１】
仮想ネットワークインタフェース装置と、
第１の物理ネットワークインタフェース装置と接続された第１の仮想スイッチと、
第２の物理ネットワークインタフェース装置と接続された第２の仮想スイッチと、
前記仮想ネットワークインタフェース装置から送信されてきたパケットを解析して得られたパケットの送信先との通信結果に基づいて、前記仮想ネットワークインタフェース装置を第１の仮想スイッチと第２の仮想スイッチとのどちらに接続するかを選択する通信解析部と、
前記通信解析部によって選択された仮想スイッチと前記仮想ネットワークインタフェース装置との接続を保持する接続設定部と、
を備える計算機。
【請求項２】
前記第１の物理ネットワークインタフェース装置は、第１のネットワークと接続され、
前記第２の物理ネットワークインタフェース装置は、第２のネットワークと接続され、
前記第１の物理ネットワークインタフェース装置と第１のネットワークとの間の接続、または、前記第２の物理ネットワークインタフェース装置と第２のネットワークとの間の接続が切断された場合、
前記接続設定部は、前記仮想ネットワークインタフェース装置と前記仮想スイッチとの間の接続を切断する請求項１の計算機。
【請求項３】
前記通信解析部を備えることに代えて、
仮想ネットワークインタフェース装置からパケットを受信すると、管理下にある複数の通信装置の接続形態を表したネットワークトポロジ情報を用いて、前記仮想ネットワークインタフェース装置を第１の仮想スイッチと第２の仮想スイッチとのどちらに接続するかを選択する経路制御部から、前記仮想ネットワークインタフェース装置と接続する仮想スイッチの指示を受信可能であり、
前記接続設定部は、前記経路制御部から指示された仮想スイッチと前記仮想ネットワークインタフェース装置との接続を保持する請求項１または２の計算機。
【請求項４】
前記第１、第２の物理ネットワークインタフェース装置は、それぞれ前記経路制御部によって制御される第１、第２の物理スイッチと接続されている請求項３の計算機。
【請求項５】
前記経路制御部は、
前記ネットワークトポロジ情報に加えて、前記ネットワークを構成する通信装置から収集した障害情報またはトラヒック情報を用いて、前記仮想ネットワークインタフェース装置を前記第１、第２の仮想スイッチとのどちらに接続するかを選択する請求項３または４の計算機。
【請求項６】
前記経路制御部は、第１のネットワークまたは第２のネットワークに配置された各通信装置の経路テーブルにエントリを設定することにより、前記仮想ネットワークインタフェース装置と、送信先計算機間で送受信されるパケットの経路制御を行う請求項３から５いずれか一の計算機。
【請求項７】
計算機に構築された仮想ネットワークインタフェース装置から送信されてきたパケットを解析して得られたパケットの送信先との通信結果に基づいて、前記仮想ネットワークインタフェース装置を第１、第２の仮想スイッチとのどちらに接続するかを選択するステップと、
前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置とを接続するステップと、
を含むネットワーク接続切替え方法。
【請求項８】
管理下にある複数の通信装置の接続形態を表したネットワークトポロジ情報を用いて、計算機に構築された仮想ネットワークインタフェース装置から送信するパケットを、前記計算機に構築された第１、第２の仮想スイッチのどちらから送信するかを選択するステップと、
前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置とを接続するステップと、
を含むネットワーク接続切替え方法。
【請求項９】
計算機に構築された仮想ネットワークインタフェース装置から送信されてきたパケットを解析して得られたパケットの送信先との通信結果に基づいて、前記仮想ネットワークインタフェース装置を第１、第２の仮想スイッチとのどちらに接続するかを選択する処理と、
前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置とを接続する処理と、
をコンピュータに実行させるプログラム。
【請求項１０】
管理下にある複数の通信装置の接続形態を表したネットワークトポロジ情報を用いて、計算機に構築された仮想ネットワークインタフェース装置から送信するパケットを、前記計算機に構築された第１、第２の仮想スイッチのどちらから送信するかを選択する処理と、
前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置とを接続する処理と、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１０−００５９１９号（２０１０年０１月１４日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、計算機、ネットワーク接続切替え方法およびプログラムに関し、特に、物理ネットワークインタフェース装置を複数備えた計算機、ネットワーク接続切替え方法およびプログラムに関する。
【背景技術】
【０００２】
特許文献１および特許文献２に、物理ネットワークインタフェース装置を複数備えたネットワーク接続システムの一例が記載されている。特許文献１には、ネットワークに接続するネットワーク接続装置（例えば、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ））を有する送信装置において、ユーザがアプリケーションごとに使用するネットワーク接続装置を設定することで、ドライバラッパがアプリケーションごとに適切なネットワーク接続装置を割り当てて通信すること構成が開示されている。【０００３】
特許文献２には、複数のネットワークインタフェースを利用可能なコンピュータシステムにおいて、応答時間が最短となるネットワークインタフェースを選択するインタフェース選択部を備えた構成が開示されている。【０００４】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。転送ノードとして機能するオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するルール（ヘッダフィールド部）と、処理内容を定義したアクション（アクション部）と、フロー統計情報（カウンタ部）との組が定義される（図８参照）。【０００５】
オープンフロースイッチは、各種ベンダによって提供されている物理スイッチに上記機能を実装することによって実現できる。例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するルールを持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容（次ホップへの転送、パケットの書き換え、パケットの廃棄）を実施する。一方、前記検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対して受信パケットを転送し、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−０７２７５９号公報
【特許文献２】特開２００９−２１９００３号公報
【非特許文献】
【０００７】
【非特許文献１】Nick McKeownほか７名、“OpenFlow: Enabling Innovation in Campus Networks”、［online］、［平成21年12月14日検索］、インターネット〈URL：http://www.openflowswitch.org//documents/openflow-wp-latest.pdf〉
【非特許文献２】"OpenFlow Switch Specification" Version 0.9.0. (Wire Protocol 0x98) ［平成21年12月14日検索］ 、インターネット〈URL：http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記特許文献１、２及び非特許文献１、２の全開示内容はその引用をもって本書に繰込み記載する。
以下の分析は、本発明によってなされたものである。
しかしながら、上記した特許文献１の方法では、送信装置側に、複数の物理ネットワークインタフェース装置に関する経路制御情報を用意する必要がある（特許文献１の図８参照）。すなわち、アプリケーション毎に、どの物理ネットワークインタフェース装置からパケットを送信すべきかを、ユーザがあらかじめ把握し、設定しなければならないという問題点がある。【０００９】
また、特許文献２の方法では、ネットワークインタフェースのそれぞれについて、同じ通信先に送信した信号の応答時間が最短となるネットワークインタフェースを選択するものであるため、パケットを受信するネットワークインタフェースとパケットを送信するネットワークインタフェースが異なる場合が生じてしまうという問題点がある。例えば、インタフェース選択部（選択エンジン）が選択していない方のネットワークインタフェースに、ある通信装置からパケットが届き、その返答をインタフェース選択部（選択エンジン）が選択した他方のネットワークインタフェースから送信することになるが、このとき、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）等のセッションに不具合が発生してしまう。【００１０】
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、ユーザが上記した経路制御情報を設定することなく、異なるネットワークインタフェースの中から、ＴＣＰ等のセッションに不具合の生じないネットワークインタフェースを選択することのできる計算機、ネットワーク接続切替え方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の視点によれば、  仮想ネットワークインタフェース装置と、第１の物理ネットワークインタフェース装置と接続された第１の仮想スイッチと、第２の物理ネットワークインタフェース装置と接続された第２の仮想スイッチと、前記仮想ネットワークインタフェース装置から送信されてきたパケットを解析して得られたパケットの送信先との通信結果に基づいて、前記仮想ネットワークインタフェース装置を第１の仮想スイッチと第２の仮想スイッチとのどちらに接続するかを選択する通信解析部と、前記通信解析部によって選択された仮想スイッチと前記仮想ネットワークインタフェース装置との接続を保持する接続設定部と、を備える計算機が提供される。【００１２】
本発明の第２の視点によれば、計算機に構築された仮想ネットワークインタフェース装置から送信されてきたパケットを解析して得られたパケットの送信先との通信結果に基づいて、前記仮想ネットワークインタフェース装置を第１、第２の仮想スイッチとのどちらに接続するかを選択するステップと、前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置との接続を保持するステップと、を含むネットワーク接続切替え方法が提供される。本方法は、その計算機資源を用いて、仮想ネットワークインタフェース装置が構築された計算機という、特定の機械に結びつけられている。【００１３】
本発明の第３の視点によれば、計算機に構築された仮想ネットワークインタフェース装置から送信されてきたパケットを解析して得られたパケットの送信先との通信結果に基づいて、前記仮想ネットワークインタフェース装置を第１、第２の仮想スイッチとのどちらに接続するかを選択する処理と、前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置との接続を保持する処理と、をコンピュータに実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１４】
本発明によれば、経路制御情報を計算機に設定しなくとも、送信するパケットの送信先ＩＰアドレスに応じて、それぞれ異なる物理ネットワークインタフェース装置と接続された複数の仮想スイッチの中から、適切なものを選択してパケットの送信に用いる構成を採用したことにある。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態の構成を示すブロック図である。
【図２】本発明におけるＯＳ（オペレーティングシステム）の位置付けを示す例である。
【図３】本発明におけるＯＳの位置付けを示す別の例である。
【図４】本発明の第１の実施形態の動作を示す流れ図である。
【図５】具体的なネットワーク構成を示して本発明の第１の実施形態の動作を説明するための図である。
【図６】具体的なネットワーク構成を示して本発明の第１の実施形態の動作を説明するための別の図である。
【図７】本発明の第２の実施形態の構成を示すブロック図である。
【図８】本発明の第２の実施形態の計算機に保持されるフローテーブルの一例を示す図である。
【図９】本発明の第２の実施形態の計算機が参照するネットワークトポロジ情報の一例を示す図である。
【図１０】本発明の第２の実施形態の動作を示す流れ図である。
【図１１】具体的なネットワーク構成を示して本発明の第２の実施形態の動作を説明するための図である。
【図１２】具体的なネットワーク構成を示して本発明の第１の実施形態の動作を説明するための別の図である。
【図１３】本発明の第３の実施形態の構成を示すブロック図である。
【図１４】本発明の第３の実施形態の動作を示す流れ図である。
【発明を実施するための形態】
【００１６】
はじめに、本発明の概要について図面を参照して説明する。本発明は、図１に示すように、第１物理ＮＩＣ１０１と、第２物理ＮＩＣ１０２といった複数の異なるネットワークインタフェースを有する計算機１００に適用することができる。本発明に係る計算機１００は、第１物理ＮＩＣ１０１と接続された第１仮想スイッチ１０３と、第２物理ＮＩＣ１０２と接続された第２仮想スイッチ１０４と、計算機１００上で動作する通信プログラム１０８からはネットワークインタフェースとして認識される仮想ＮＩＣ１０７と、仮想ＮＩＣ１０７から送信されてきたパケットを解析し、仮想ＮＩＣ１０７を第１仮想スイッチ１０３と第２仮想スイッチ１０４のどちらに接続するかを選択する通信解析部１０６と、通信解析部１０６によって選択された仮想スイッチ１０３／１０４と仮想ＮＩＣ１０７との接続を保持する接続設定部１０５と、を備える。なお、この概要に付記した図面参照符号は、専ら理解を助けるための例示であり、図示の態様に限定することを意図するものではない。
【００１７】
より具体的には、通信解析部１０６が、仮想ＮＩＣ１０７から送信されてきた送信パケットの送信先ＩＰアドレスの計算機（送信先計算機）と通信を行ない、応答時間が短い方を選択する、スループットが大きい方を選択する、通信ホップ数が少ない方を選択する、などの所定の選択規則を用いて、第１仮想スイッチ１０３と第２仮想スイッチ１０４のいずれかを選択する。これにより、経路制御情報を用いずに、しかも、ＴＣＰ等のセッションに不具合の生じない適切なネットワークインタフェースを選択するという目的が達成される。
【００１８】
また、本発明は、非特許文献１、２に記載のオープンフローコントローラに相当する経路制御部（経路制御装置）と接続された計算機における、物理ネットワークインタフェースの選択にも適用可能である。この構成については後に第２、第３の実施形態として説明する。
本発明において以下の形態が可能である。
［形態１］
前記第１の視点に記載の計算機のとおり。
［形態２］
前記第１の物理ネットワークインタフェース装置は、第１のネットワークと接続され、
前記第２の物理ネットワークインタフェース装置は、第２のネットワークと接続され、
前記第１の物理ネットワークインタフェース装置と第１のネットワークとの間の接続、または、前記第２の物理ネットワークインタフェース装置と第２のネットワークとの間の接続が切断された場合、
前記接続設定部は、前記仮想ネットワークインタフェース装置と前記仮想スイッチとの間の接続を切断することが好ましい。
［形態３］
前記通信解析部を備えることに代えて、
仮想ネットワークインタフェース装置からパケットを受信すると、管理下にある複数の通信装置の接続形態を表したネットワークトポロジ情報を用いて、前記仮想ネットワークインタフェース装置を第１の仮想スイッチと第２の仮想スイッチとのどちらに接続するかを選択する経路制御部から、前記仮想ネットワークインタフェース装置と接続する仮想スイッチの指示を受信可能であり、
前記接続設定部は、前記経路制御部から指示された仮想スイッチと前記仮想ネットワークインタフェース装置との接続を保持することもできる。
［形態４］
前記第１、第２の物理ネットワークインタフェース装置は、それぞれ前記経路制御部によって制御される第１、第２の物理スイッチと接続されていることが好ましい。
［形態５］
前記経路制御部は、
前記ネットワークトポロジ情報に加えて、前記ネットワークを構成する通信装置から収集した障害情報またはトラヒック情報を用いて、前記仮想ネットワークインタフェース装置を前記第１、第２の仮想スイッチとのどちらに接続するかを選択することが好ましい。
［形態６］
前記経路制御部は、第１のネットワークまたは第２のネットワークに配置された各通信装置の経路テーブルにエントリを設定することにより、前記仮想ネットワークインタフェース装置と、送信先計算機間で送受信されるパケットの経路制御を行うことが好ましい。
［形態７］
前記第２の視点に記載のネットワーク接続切替え方法のとおり。
［形態８］
また、前記ネットワーク接続切替え方法は、
管理下にある複数の通信装置の接続形態を表したネットワークトポロジ情報を用いて、計算機に構築された仮想ネットワークインタフェース装置から送信するパケットを、前記計算機に構築された第１、第２の仮想スイッチのどちらから送信するかを選択するステップと、
前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置とを接続するステップと、
を含む形態とすることもできる。
［形態９］
前記第３の視点に記載のプログラムのとおり。
［形態１０］
また、前記プログラムは、
管理下にある複数の通信装置の接続形態を表したネットワークトポロジ情報を用いて、計算機に構築された仮想ネットワークインタフェース装置から送信するパケットを、前記計算機に構築された第１、第２の仮想スイッチのどちらから送信するかを選択する処理と、
前記選択した仮想スイッチと前記仮想ネットワークインタフェース装置とを接続する処理と、
をコンピュータに実行させるプログラムとすることもできる。
なお、上記［形態７］〜［形態１０］のネットワーク接続切替え方法およびプログラムは、形態１の通信システムと同様に、形態２〜形態６の内容に展開することが可能である。
なお、プログラムはコンピュータが読み取り可能な記憶媒体に記憶することができる。
【００１９】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図１は、本発明の第１の実施形態の構成を示すブロック図である。図１を参照すると、第１ネットワーク２００および第２ネットワーク３００の双方に接続可能な計算機１００が示されている。
【００２０】
計算機１００は、第１物理ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１０１と、第２物理ＮＩＣ１０２と、第１仮想スイッチ１０３と、第２仮想スイッチ１０４と、接続設定部１０５と、通信解析部１０６と、仮想ＮＩＣ１０７と、通信プログラム１０８を備えている。なお、図１の例では、それぞれ一つの仮想ＮＩＣ１０７と通信プログラム１０８を示しているが、仮想ＮＩＣ１０７および通信プログラム１０８は計算機１００内にそれぞれ複数あっても良い。
【００２１】
第１物理ＮＩＣ１０１および第２物理ＮＩＣ１０２は、計算機１００が他の計算機と通信するために使用される通信装置であり、それぞれ異なるＩＰアドレスが割り当てられている。ここでは、第１物理ＮＩＣ１０１が、第１ネットワーク２００に接続され、第２物理ＮＩＣ１０２が第２ネットワーク３００に接続されているものとする。
【００２２】
第１仮想スイッチ１０３および第２仮想スイッチ１０４は、ソフトウェアでエミュレーションされた仮想的なスイッチであり、パケットの転送先を切り替える機能を有する。第１仮想スイッチ１０３は第１物理ＮＩＣ１０１と接続されており、第２仮想スイッチ１０４は第２物理ＮＩＣ１０２と接続されている。
【００２３】
仮想ＮＩＣ１０７は、ソフトウェアでエミュレーションされた仮想的なネットワークインタフェース装置である。計算機１００上で実行している通信プログラム１０８からは、この仮想ＮＩＣ１０７がＮＩＣとして認識される。
【００２４】
通信プログラム１０８は、仮想ＮＩＣ１０７を介して他の計算機と通信を行うプログラムである。
【００２５】
通信解析部１０６は、通信プログラム１０８から仮想ＮＩＣ１０７を介して送信されてきたパケットを解析し、パケットの送信先ＩＰアドレスを取得する。そして送信先ＩＰアドレスをもとに、仮想ＮＩＣ１０７を第１仮想スイッチ１０３と第２仮想スイッチ１０４のどちらに接続するかを選択する。第１仮想スイッチ１０３と第２仮想スイッチ１０４のうち、どちらを選択するかを決定する方法としては、更にパケットを送信した時の応答時間が短い方を選択する、スループットが大きい方を選択する、通信ホップ数が少ない方を選択する、などが挙げられる。
【００２６】
前記パケットを送信した時の応答時間を計測する方法としては、例えば、パケットの送信先ＩＰアドレスに対して、第１仮想スイッチ１０３および第２仮想スイッチ１０４からＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）のＥｃｈｏ  Ｍｅｓｓａｇｅを送信し、Ｅｃｈｏ  Ｒｅｐｌｙ  Ｍｅｓｓａｇｅが返ってきて、かつ返答時間が短い仮想スイッチを選択する方法が挙げられる。
【００２７】
接続設定部１０５は、通信解析部１０６によって決定された仮想スイッチの割り当てに従い、仮想ＮＩＣ１０７と仮想スイッチ１０３／１０４を接続し、その状態を保持する。
【００２８】
なお、接続設定部１０５による、仮想ＮＩＣ１０７と仮想スイッチ１０３／１０４間の接続は、第１物理ＮＩＣ１０１と第１ネットワーク２００の間の接続、または、第２物理ＮＩＣ１０２と第２ネットワーク３００の間の接続が切断された段階で、解除してもよい。その理由は、第１物理ＮＩＣ１０１および第２物理ＮＩＣ１０２がネットワーク２００／３００と再度接続された時に、仮想ＮＩＣ１０７から見たネットワークトポロジが変化している可能性があるためである。例えば、ユーザがＮＩＣに挿し込む通信ケーブルを間違え、第１物理ＮＩＣ１０１が第２ネットワーク３００と接続され、第２物理ＮＩＣ１０２が第１ネットワークと接続されることなどが考えられる。この場合、仮想ＮＩＣ１０７と仮想スイッチ１０３／１０４間の接続も再設定されることが望ましい。
【００２９】
第１ネットワーク２００および第２ネットワーク３００は、複数の通信装置で構成された電気通信網である。
【００３０】
続いて、本実施形態におけるＯＳ（オペレーティングシステム）の位置付けについて説明する。本実施形態におけるＯＳの位置付けとしては、以下の２つの場合が考えられる。
【００３１】
第１は、計算機１００内で１つのＯＳが動作しているケースである（図２の破線参照）。この場合、図２に示すように、計算機１００の構成要素は、１つのＯＳの管理下に置かれる。なお、複数の仮想ＮＩＣ１０７、通信プログラム１０８がある場合も、これら複数の仮想ＮＩＣ１０７、通信プログラム１０８は、ＯＳ上で動作し、上記と同様の動作をとる。
【００３２】
第２は、ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）などの仮想化技術によって計算機１００内で１つ以上のＯＳが動作している場合である（図３の破線参照）。この場合、図３に示すように、仮想ＮＩＣ１０７および通信プログラム１０８がＶＭＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）上で実行されるＯＳの管理下に置かれ、それ以外の構成要素はＶＭＭの管理下に置かれることになる。なおＶＭＭ上に複数のＯＳが実行されていても、これら複数の仮想ＮＩＣ１０７および通信プログラム１０８の動作は、上記と同様の動作をとる。
【００３３】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図４は、本発明の第１の実施形態の動作を示す流れ図である。
【００３４】
まず、通信プログラム１０８が他の計算機（以降、送信先計算機と表記）と通信するためにパケットを送信すると（ステップＡ１）、通信解析部１０６は、送信されてきたパケットを解析し、パケットの送信先ＩＰアドレスを取得する（ステップＡ２）。
【００３５】
そして、通信解析部１０６は、送信先ＩＰアドレスに対して、第１仮想スイッチと１０３と第２仮想スイッチ１０４のどちらから送信するかを選択する（ステップＡ３）。
【００３６】
ここでもし第１仮想スイッチ１０３と接続することを選択した場合、通信解析部１０６は、接続設定部１０５に対して、仮想ＮＩＣ１０７−第１仮想スイッチ１０３間を接続するよう指示する（ステップＡ４）。接続設定部１０５は、通信解析部１０６からの指示に基づいて仮想ＮＩＣ１０７と第１仮想スイッチ１０３を接続する（ステップＡ５）。この場合、仮想ＮＩＣ１０７は、第１仮想スイッチ１０３にパケットを送信する（ステップＡ６）。
【００３７】
その後、第１仮想スイッチ１０３は、第１物理ＮＩＣ１０１にパケットを転送し、第１物理ＮＩＣ１０１から第１ネットワーク２００にパケットが転送される。第１ネットワーク２００に送出されたパケットは、その後０個以上の通信装置を介して、最終的な送信先計算機に届けられる（ステップＡ７）。
【００３８】
一方、先のステップＡ３において、通信解析部１０６が、第２仮想スイッチ１０４と接続することを接続することを選択した場合、通信解析部１０６は、接続設定部１０５に対して、仮想ＮＩＣ１０７−第２仮想スイッチ１０４間を接続するよう指示する（ステップＡ８）。接続設定部１０５は、通信解析部１０６からの指示に基づいて仮想ＮＩＣ１０７と第２仮想スイッチ１０４を接続する（ステップＡ９）。この場合、仮想ＮＩＣ１０７は、第２仮想スイッチ１０４にパケットを送信する（ステップＡ１０）。
【００３９】
この場合、第２仮想スイッチ１０４は、第２物理ＮＩＣ１０２にパケットを転送し、第２物理ＮＩＣ１０２から第２ネットワーク３００にパケットが転送される。第２ネットワーク３００に送出されたパケットは、その後０個以上の通信装置を介して、最終的な送信先計算機に届けられる（ステップＡ７）。
【００４０】
ここで、具体的な例を示して、通信解析部１０６と接続設定部１０５の動作をより詳細に説明する。
【００４１】
例えば、図５で示すようなネットワーク構成において、通信プログラム１０８が、仮想ＮＩＣ１０７を介して、ＩＰアドレスが１０．１．１．１０２である送信先計算機６００に対してパケットを送信した場合を考える。このとき、通信解析部１０６は、第１仮想スイッチ１０３および第２仮想スイッチ１０４から、ＩＣＭＰ  Ｅｃｈｏ  Ｍｅｓｓａｇｅを送信し、応答時間を求める。図５のネットワーク構成では、第２仮想スイッチ１０４経由では返答がないため、第１仮想スイッチ１０３経由の方が、Ｅｃｈｏ  Ｒｅｐｌｙ  Ｍｅｓｓａｇｅの受信が早いと判定され、通信解析部１０６は受信したパケットを第１物理ＮＩＣ１０１から送信するため、接続設定部１０５に対し仮想ＮＩＣ１０７と第１物理スイッチ１０３を接続するよう指示する。
【００４２】
また例えば、図６で示すようなネットワーク構成において、通信プログラム１０８が、仮想ＮＩＣ１０７を介して、ＩＰアドレスが１０．１．１．１０２である送信先計算機６００に対してパケットを送信した場合を考える。このときも同様に、通信解析部１０６は、第１仮想スイッチ１０３および第２仮想スイッチ１０４から、ＩＣＭＰ  Ｅｃｈｏ  Ｍｅｓｓａｇｅを送信し、応答時間を求める。その結果、ＩＣＭＰ  Ｒｅｐｌｙ  Ｍｅｓｓａｇｅの返答が、第１仮想スイッチ１０３経由では２００ｍｓ（ミリ秒）、第２仮想スイッチ１０４経由では１５０ｍｓかかったとする。この場合、通信解析部１０６は、受信したパケットを第２物理ＮＩＣ１０２から送信するため、接続設定部１０５に対し仮想ＮＩＣ１０７と第２仮想スイッチ１０４を接続するよう指示する。
【００４３】
以上のように、本実施形態によれば、ユーザが計算機１００の経路制御情報を設定しなくても、計算機１００上で実行される通信プログラム１０８は、ネットワークトポロジを考慮した上での適切な通信を行うことができる。その理由は、仮想ＮＩＣ１０７からの通信が発生した時に、通信解析部１０６が仮想ＮＩＣ１０７の接続先となる仮想スイッチを選択するよう構成されているためである。
【００４４】
また、接続設定部１０５が、第１物理ＮＩＣ１０１と第１ネットワーク２００の間の接続、もしくは第２物理ＮＩＣ１０２と第２ネットワーク３００の間の接続が切断された時に、仮想ＮＩＣ１０７と仮想スイッチ間の接続を解除（切断）するよう構成することにより、計算機１００が備える複数の物理ＮＩＣについて、ユーザが、それぞれどのネットワークに接続させるかを厳密に把握している必要性を低減することができる。例えば、ユーザがＮＩＣに差し込む通信ケーブルを間違え、第１物理ＮＩＣ１０１が第２ネットワーク３００と接続され、第２物理ＮＩＣ１０２が第１ネットワークと接続してしまったような場合において、通信ケーブルをそれぞれ正しいＮＩＣに挿し直す、あるいは、仮想ＮＩＣ１０７−仮想スイッチ１０３／１０４間の接続を切り替えることで、仮想ＮＩＣ１０７と仮想スイッチ１０３／１０４間の接続が正しく再設定されることになる。
【００４５】
［第２の実施の形態］
続いて、本発明の第２の実施形態について図面を参照して詳細に説明する。図７は、本発明の第２の実施形態の構成を示すブロック図である。図７を参照すると、第１経路管理ネットワーク４００および第２経路管理ネットワーク５００の双方に接続可能な計算機１００Ａが示されている。
【００４６】
計算機１００Ａは、第１物理ＮＩＣ１０１と、第２物理ＮＩＣ１０２と、第１仮想スイッチ１０３Ａと、第２仮想スイッチ１０４Ａと、接続設定部１０５Ａと、仮想ＮＩＣ１０７と、通信プログラム１０８を備えている。さらに、計算機１００Ａは、経路制御部１０９と接続されている。このうち、第１の実施形態と同一の符号を付した第１物理ＮＩＣ１０１、第２物理ＮＩＣ１０２、仮想ＮＩＣ１０７、通信プログラム１０８については、第１の実施形態と同じ動作をするので、ここでは説明を省略する。以下、第１の実施形態との相違点を中心に説明する。
【００４７】
まず本実施形態では、仮想ＮＩＣ１０７と第１仮想スイッチ１０３Ａがすでに接続されている。従って、通信プログラム１０８が仮想ＮＩＣ１０７経由で送信するパケットは、まず第１仮想スイッチ１０３Ａに送信される。
【００４８】
本実施形態における第１仮想スイッチ１０３Ａおよび第２仮想スイッチ１０４Ａは、ソフトウェアでエミュレーションされ、非特許文献１、２のオープンフロースイッチに相当する動作を行う通信装置である。即ち、第１仮想スイッチ１０３Ａおよび第２仮想スイッチ１０４Ａは、内部に備えた経路テーブルに従ってパケットを転送する機能を有する。また、第１仮想スイッチ１０３Ａおよび第２仮想スイッチ１０４Ａは、経路テーブルで転送先を決定することができない場合は、経路制御部１０９にパケットを転送し、当該パケットに適用する新しいエントリを要求する。
【００４９】
図８は、非特許文献１、２のフローテーブルに相当する経路テーブルの例である。各エントリは、ヘッダフィールド部、カウンタ部、アクション部から構成されている。このうちヘッダフィールド部はさらに細かく、送信元ＩＰアドレス、送信元ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、送信先ＩＰアドレス、送信先ＭＡＣアドレス、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）のポート番号、ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）  ＩＤなどのフィールドから構成されている。カウンタ部は、受信したパケットがエントリにマッチした回数が保存される。またアクション部では、ヘッダフィールド部が一致したパケットをどのように処理するかを指定することができ、例えば、パケットを指定したポート番号から転送するアクションを格納することができる。
【００５０】
ここで例えば、第１仮想スイッチ１０３Ａが、図８のような通信フローテーブルを有している場合を考える。第１仮想スイッチ１０３Ａが、仮想ＮＩＣ１０７から、送信元ＩＰアドレスが１０．１．１．１０１であり、送信先ＩＰアドレスが１０．１．１．１０２である送信先計算機６００宛てのパケットを受信したとする（”＊”はワイルドカードを意味する）。このとき、第１仮想スイッチ１０３Ａが、通信フローテーブルを上から検索すると、送信元ＩＰアドレスとして“１０．１．１．１０１”が設定されているエントリＥ１がヒットする。この場合、第１仮想スイッチ１０３Ａは、そのアクションフィールドの内容に従って、第１物理ＮＩＣ１０１が接続されたポートへ当該パケットを転送する。一方、このパケットの応答として送信先計算機６００から、第１仮想スイッチ１０３Ａが、送信元ＩＰアドレスが１０．１．１．１０２であり、送信先ＩＰアドレスが１０．１．１．１０１であるパケットを受信した場合、送信先ＩＰアドレスとして“１０．１．１．１０１”が設定されているエントリＥ２がヒットする。この場合、第１仮想スイッチ１０３Ａは、そのアクションフィールドの内容に従って、仮想ＮＩＣ１０７が接続されたポートへパケットを転送する。以上により、ＩＰアドレスが１０．１．１．１０１であるノード（仮想ＮＩＣ１０７）と、ＩＰアドレスが１０．１．１．１０２である送信先計算機６００間の一連のパケット（フロー）が中継される。
【００５１】
経路制御部１０９は、第１仮想スイッチ１０３Ａまたは第２仮想スイッチ１０４Ａからパケットを受信すると、内部に有するネットワークトポロジ情報をもとに、仮想ＮＩＣ１０７をどちらの仮想スイッチに接続するか選択する。
【００５２】
ネットワークトポロジ情報は、経路制御部１０９の管理下にある通信装置（第１、第２経路管理ネットワーク４００／５００に配置された通信装置を含む。）の接続情報である。ネットワークトポロジ情報の形態としてはいくつか考えられるが、例えば、図９に示すように、接続されている２つの通信装置を１つの組として管理する方法が挙げられる。
【００５３】
図９のようにして経路制御部１０９の管理下にあるすべての通信装置について接続されている通信装置間を組として管理すると、ある通信装置から別の通信装置まで到達するまでの経路を求めることができる。
【００５４】
例えば、第１仮想スイッチ１０３Ａ（または第２仮想スイッチ１０４Ａ）から転送されたパケットの送信先ＩＰアドレスが、第１仮想スイッチ１０３Ａから辿り着けるのであれば、経路制御部１０９は、仮想ＮＩＣ１０７を第１仮想スイッチ１０３Ａに接続したままで良いと判断する。
【００５５】
一方、第１仮想スイッチ１０３Ａ（または第２仮想スイッチ１０４Ａ）から転送されたパケットの送信先ＩＰアドレスが、第２仮想スイッチ１０４Ａから辿り着けるのであれば、経路制御部１０９は、仮想ＮＩＣ１０７を第２仮想スイッチ１０４Ａと接続した方が良いと判断する。
【００５６】
また、第１仮想スイッチ１０３Ａ（または第２仮想スイッチ１０４Ａ）から転送されたパケットの送信先ＩＰアドレスに、第１仮想スイッチ１０３Ａおよび第２仮想スイッチ１０４Ａの両方から辿り着けるとしても、第１仮想スイッチ１０３Ａから通信した方が到達までのホップ数が少ないのであれば、経路制御部１０９は、仮想ＮＩＣ１０７を第１仮想スイッチ１０３Ａと接続した方が良いと判断し、第２仮想スイッチ１０４Ａから通信した方が到達までのホップ数が少ないのであれば、仮想ＮＩＣ１０７を第２仮想スイッチ１０４Ａと接続した方が良いと判断する。
【００５７】
経路制御部１０９は、上記のように、第１仮想スイッチ１０３Ａと接続した方が良いと判断すると、第１仮想スイッチ１０３Ａに対して適切な経路テーブルのエントリを設定する。第２仮想スイッチ１０４Ａと接続した方が良いと判断すると、経路制御部１０９は、第２仮想スイッチ１０４Ａに対して適切な経路テーブルのエントリを設定し、さらに接続設定部１０５に対して、仮想ＮＩＣ１０７−第１仮想スイッチ１０３Ａ間の接続を解除し、仮想ＮＩＣ１０７−第２仮想スイッチ１０４Ａ間を接続するよう指示する。
【００５８】
前記接続を切り替えた際に、第１仮想スイッチ１０３Ａ内に仮想ＮＩＣ１０７から送信されてきたパケットが残っている可能性がある。それらのパケットはまとめて、第２仮想スイッチ１０４Ａへ転送するようにしてもよい。また、これら残っているパケットを削除することとしても良い。
【００５９】
また、経路制御部１０９は、第１仮想スイッチ１０３Ａおよび第２仮想スイッチ１０４Ａに対して、適切な経路テーブルのエントリを設定するほか、第１経路管理ネットワーク４００および第２経路管理ネットワーク５００内の他の通信装置に対しても、経路テーブルのエントリを設定する。このような経路制御部１０９は、非特許文献１、２のオープンフローコントローラに相当する、ある通信装置（ノード）から送信先計算機までパケットを送信するかの経路制御を行う制御装置によって実現することもできる。
【００６０】
また経路制御部１０９は、前述したネットワークトポロジ情報や図８の経路テーブルのカウンタ部に保持されているトラヒック情報を定期的に収集するものとしてもよい。このようにすれば、ネットワーク内の一つの通信装置に障害や輻輳が生じたり、ネットワークトポロジが変更になった場合に、新しい経路を求め、各通信装置に経路テーブルのエントリを設定する動作を行わせることができる。
【００６１】
また、経路制御部１０９は、計算機１００Ａ内にあっても良い。この場合、計算機１００Ａは、非特許文献１、２のオープンフローコントローラに相当する装置によって実現される。
【００６２】
接続設定部１０５Ａは、経路制御部１０９からの指示に従い、仮想ＮＩＣ１０７と第１、第２仮想スイッチ１０３Ａ／１０４Ａを接続する。なお、第１物理ＮＩＣ１０１および第２物理ＮＩＣ１０２が第１、第２経路管理ネットワーク４００／５００との接続が切断された場合、その後仮想ＮＩＣ１０７から見たネットワークトポロジにも変化が生じている可能性があるので、接続設定部１０５Ａが、前記切断の時点で、仮想ＮＩＣ１０７と第１、第２仮想スイッチ１０３Ａ／１０４Ａ間の接続を解除するようにしても良い。これにより、再接続後にパケットを受信した時点で、新しいネットワークトポロジに従って、再度仮想ＮＩＣ１０７と第１、第２仮想スイッチ１０３Ａ／１０４Ａ間を接続することができる。
【００６３】
第１経路管理ネットワーク４００および第２経路管理ネットワーク５００は、複数の通信装置で構成された電気通信網である。第１経路管理ネットワーク４００および第２経路管理ネットワーク５００に属している通信装置は、第１仮想スイッチ１０３Ａおよび第２仮想スイッチ１０４Ａと同様に経路テーブルを内部に有し、エントリにマッチしない新しいパケットを受信すると経路制御部１０９に転送し、経路制御部１０９から当該パケットに適用すべきアクションを定めたエントリを設定される。従って、第１経路管理ネットワーク４００および第２経路管理ネットワーク５００に属している通信装置は、非特許文献１、２のオープンフロースイッチに相当する装置によって実現される。
【００６４】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図１０は、本発明の第２の実施形態の動作を示す流れ図である。
【００６５】
まず、通信プログラム１０８が送信先計算機６００と通信するためにパケットを送信すると（ステップＢ１）、第１仮想スイッチ１０３Ａは、経路テーブルを参照して、仮想ＮＩＣ１０７経由で送信されてきた受信パケットに対応するエントリを検索する（ステップＢ２）。
【００６６】
ここで、第１仮想スイッチ１０３Ａ内の経路テーブルに、前記受信パケットに一致するエントリが見つかった場合（ステップＢ２の「ある」）、第１仮想スイッチ１０３Ａは、そのエントリのアクションフィールドの内容に従い、第１物理ＮＩＣ１０１に受信パケットを転送する（ステップＢ３）。
【００６７】
前記受信パケットの転送を受けた第１物理ＮＩＣ１０１は、第１経路管理ネットワーク４００に受信パケットを転送し（ステップＢ４）、第１経路管理ネットワーク４００内の通信装置を経由して、受信パケットは最終的に送信先計算機６００に届けられる（ステップＢ５）。
【００６８】
一方、ステップＢ２にて、前記受信パケットに一致するエントリが見つからなかった場合（ステップＢ２の「ない」）、第１仮想スイッチ１０３Ａは、当該受信パケットを経路制御部１０９に送信する（ステップＢ６）。
【００６９】
経路制御部１０９は、第１仮想スイッチ１０３Ａからパケットを受信すると、内部に有するネットワークトポロジ情報をもとに、仮想ＮＩＣ１０７をどちらの仮想スイッチに接続すれば良いか選択する（ステップＢ７）。
【００７０】
ここで、第１仮想スイッチ１０３Ａと接続することを選択した場合、仮想ＮＩＣ１０７−第１仮想スイッチ１０３Ａ間の接続を切り替える必要はなく、経路制御部１０９は、第１仮想スイッチ１０３Ａの経路テーブルに適切なエントリを設定する（ステップＢ８）。これにより、受信パケットは、前述したステップＢ３以降の動作により、送信先計算機６００に送信される。
【００７１】
一方、ステップＢ７において第２仮想スイッチ１０４Ａと接続することを選択した場合、経路制御部１０９は、第２仮想スイッチ１０４Ａの経路テーブルに適切なエントリを設定し（ステップＢ９）、パケットを第２仮想スイッチ１０４Ａに転送する（ステップＢ１０）。さらに、経路制御部１０９は、接続設定部１０５に対して、仮想ＮＩＣ１０７−第１仮想スイッチ１０３Ａ間の接続を仮想ＮＩＣ１０７−第２仮想スイッチ１０４Ａ間の接続に切り替えるよう指示する（ステップＢ１１）。このとき更に、経路制御部１０９は、仮想ＮＩＣ１０７から送信されてきたパケットのうち、第１仮想スイッチ１０３Ａに残っているパケットを第２仮想スイッチ１０４Ａに転送するよう指示してもよい。
【００７２】
次に接続設定部１０５Ａは、仮想ＮＩＣ１０７−第１仮想スイッチ１０３Ａ間の接続を切断し、仮想ＮＩＣ１０７−第２仮想スイッチ１０４Ａ間を接続する（ステップＢ１２）。
【００７３】
すると第２仮想スイッチ１０４Ａは、新たに設定されたエントリに従って、パケットを第２物理ＮＩＣ１０２に転送する（ステップＢ１３）。その後、第２物理ＮＩＣ１０２がパケットを第２経路管理ネットワーク５００に転送し（ステップＢ１４）、第２経路管理ネットワーク５００内の通信装置を経由して、最終的にパケットは送信先計算機６００に届けられる。
【００７４】
ここで、具体的な例を示して、第１経路管理ネットワーク４００または第２経路管理ネットワーク５００を構成する通信装置に障害が発生した時の本実施形態の計算機１００Ａおよび経路制御部１０９の動作について説明する。
【００７５】
例えば、図１１で示すようなネットワーク構成において、仮想ＮＩＣ１０７から送信先計算機６００に対して、第２経路管理ネットワーク５００を介した経路が設定されていたとする。ここで、図１２で示すように、第２経路管理ネットワーク５００に障害が発生した時に、経路制御部１０９が前記障害を検知し、新しい経路テーブルのエントリを各通信装置に設定する。さらに接続設定部１０５Ａに対して、仮想ＮＩＣ１０７−第２仮想スイッチ１０４Ａ間の接続を、仮想ＮＩＣ１０７−第１仮想スイッチ１０３Ａ間の接続に切り替えるよう指示する。これにより、図１２に示すように、新たに仮想ＮＩＣ１０７から送信先計算機６００に対する経路が設定されることになる。
【００７６】
以上のように、本発明の第２の実施形態によれば、経路制御部１０９において、ネットワーク全体のネットワークトポロジ情報をもとに、仮想ＮＩＣ１０７を接続する仮想スイッチを選択し、また送信先計算機６００までの経路を設定できるよう構成されているので、ユーザが計算機１００Ａの経路制御情報を設定しなくても、計算機１００Ａ上で実行される通信プログラム１０８は、ネットワークトポロジを考慮した上での適切な通信を行うことができる。
【００７７】
また本実施形態では、さらに接続設定部１０５Ａが、第１物理ＮＩＣ１０１と第１経路管理ネットワーク４００の間の接続、または、第２物理ＮＩＣ１０２と第２経路管理ネットワーク５００の間の接続が切断された時に、仮想ＮＩＣ１０７と仮想スイッチ間の接続を切断するよう構成した場合、計算機１００Ａの複数の物理ＮＩＣについて、ユーザが、それぞれどの経路管理ネットワークに接続させるかを管理する必要はない。
【００７８】
［第３の実施の形態］
続いて、本発明の第３の実施形態について図面を参照して詳細に説明する。図１３は、本発明の第３の実施形態の構成を示すブロック図である。図１３を参照すると、第１物理スイッチ１１３、第２物理スイッチ１１４を介して、第１経路管理ネットワーク４００および第２経路管理ネットワーク５００の双方に接続可能な計算機１００Ｂが示されている。
【００７９】
計算機１００Ｂは、第１物理ＮＩＣ１０１と、第２物理ＮＩＣ１０２と、第１仮想スイッチ１０３と、第２仮想スイッチ１０４と、接続設定部１０５と、仮想ＮＩＣ１０７と、通信プログラム１０８を備えている。さらに、計算機１００Ｂは、経路制御部１０９Ａと接続されている。このうち、第１の実施形態と同一の符号を付した第１物理ＮＩＣ１０１、第２物理ＮＩＣ１０２、第１仮想スイッチ１０３、第２仮想スイッチ１０４、接続設定部１０５、仮想ＮＩＣ１０７、通信プログラム１０８については、第１の実施形態と同じ動作をするので、ここでは説明を省略する。以下、第１の実施形態との相違点を中心に説明する。
【００８０】
本実施形態における第１物理スイッチ１１３および第２物理スイッチ１１４は、通信装置であり、スイッチ内部の経路テーブルに従ってパケットを転送する機能を有する。つまり第２の実施形態における第１仮想スイッチ１０３Ａおよび第２仮想スイッチ１０４Ａと同様のパケット転送機能を持つ通信装置である。
【００８１】
また本実施の形態における経路制御部１０９Ａは、第１物理スイッチ１１３または第２物理スイッチ１１４からパケットを受信すると、内部に有するネットワークトポロジ情報をもとに、仮想ＮＩＣ１０７を第１仮想スイッチ１０３と第２仮想スイッチ１０４のどちらに接続したらよいか選択する。
【００８２】
経路制御部１０９Ａは、仮想ＮＩＣ１０７と第１仮想スイッチ１０３とを接続することを選択すると、第１物理スイッチ１１３に対して適切な経路テーブルのエントリを設定する。同様に、経路制御部１０９Ａは、仮想ＮＩＣ１０７と第２仮想スイッチ１０４とを接続することを選択すると、第２物理スイッチ１１４に対して適切な経路テーブルのエントリを設定し、さらに、経路制御部１０９Ａは、接続設定部１０５に対して、仮想ＮＩＣ１０７−第１仮想スイッチ１０３間の接続を、仮想ＮＩＣ１０７−第２仮想スイッチ１０４間の接続に切り替えるよう指示する。また、前記接続の切り替えの際に、経路制御部１０９Ａが、第１物理スイッチ１１３に対し、受信済みパケットを第２物理スイッチ１１４に転送するよう指示するものとしてもよい。また、経路制御部１０９Ａが、第１物理スイッチ１１３に対し、これらのパケットを削除するよう指示するものとしても良い。
【００８３】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図１４は、本発明の第３の実施形態の動作を示す流れ図である。
【００８４】
まず、通信プログラム１０８が送信先計算機６００と通信するためにパケットを送信すると（ステップＣ１）、そのパケットは仮想ＮＩＣ１０７から第１仮想スイッチ１０３、第１物理ＮＩＣ１０１を介して、第１物理スイッチ１１３に送信される。
【００８５】
第１物理スイッチ１１３は、パケットを受信すると、経路テーブルのエントリを検索する（ステップＣ２）。
【００８６】
ここで、第１物理スイッチ１１３内の経路テーブルに、前記パケットと一致するエントリがあれば（ステップＣ２の「ある」）、そのエントリで指定された第１経路管理ネットワーク４００の通信装置にパケットを転送する（ステップＣ３）。そのパケットは、第１経路管理ネットワーク４００内の通信装置を経由して、最終的に送信先計算機６００に届けられる（ステップＣ４）。
【００８７】
一方、ステップＣ２にて、前記受信パケットに一致するエントリが見つからなかった場合（ステップＣ２の「ない」）、第１物理スイッチ１１３は、当該受信パケットを経路制御部１０９Ａに送信する（ステップＣ５）。
【００８８】
経路制御部１０９Ａは、第１物理スイッチ１１３からパケットを受信すると、内部に有するネットワークトポロジ情報をもとに、仮想ＮＩＣ１０７をどちらの仮想スイッチに接続すれば良いか選択する（ステップＣ６）。
【００８９】
ここで、第１仮想スイッチ１０３と接続することを選択した場合、仮想ＮＩＣ１０７−第１仮想スイッチ１０３間の接続を切り替える必要はなく、経路制御部１０９Ａは、第１物理スイッチ１１３の経路テーブルに適切なエントリを設定する（ステップＣ７）。これにより、受信パケットは、前述したステップＣ３以降の動作により、送信先計算機６００に送信される。
【００９０】
一方、ステップＣ６において第２仮想スイッチ１０４と接続することを選択した場合、経路制御部１０９Ａは、第２物理スイッチ１１４の経路テーブルに適切なエントリを設定し（ステップＣ８）、パケットを第２仮想スイッチ１０４に転送する（ステップＣ９）。さらに、経路制御部１０９Ａは、接続設定部１０５に対して、仮想ＮＩＣ１０７−第１仮想スイッチ１０３間の接続を仮想ＮＩＣ１０７−第２仮想スイッチ１０４間の接続に切り替えるよう指示する（ステップＣ１０）。このとき更に、経路制御部１０９Ａは、仮想ＮＩＣ１０７から送信されてきたパケットのうち、第１仮想スイッチ１０３に残っているパケットを第２仮想スイッチ１０４に転送するよう指示してもよい。
【００９１】
次に接続設定部１０５は、仮想ＮＩＣ１０７−第１仮想スイッチ１０３間の接続を切断し、仮想ＮＩＣ１０７−第２仮想スイッチ１０４間を接続する（ステップＣ１１）。
【００９２】
すると第２物理スイッチ１１４は、新たに設定されたエントリに従って、受信したパケットを第２経路管理ネットワーク５００の通信装置に転送する（ステップＣ１２）。第２経路管理ネットワーク５００内の通信装置を経由して、最終的にパケットは送信先計算機６００に届けられる（ステップＣ４）。
【００９３】
以上のように、本発明の第３の実施形態によれば、仮想スイッチが経路制御部１０９Ａの管理外であっても、第２の実施形態と同等のネットワーク接続切り替えを行うことが可能となる。その理由は、経路制御部１０９Ａが、物理スイッチ１１３／１１４から上がってきたパケット情報をもとに、仮想ＮＩＣ１０７を接続する仮想スイッチを選択するよう構成し、計算機１００Ｂ上で実行される通信プログラム１０８が、ネットワークトポロジを考慮した上での適切な通信を行うことができるようにしたためである。
【００９４】
また本実施形態では、さらに接続設定部１０５が、第１物理ＮＩＣ１０１と第１経路管理ネットワーク４００の間の接続、または、第２物理ＮＩＣ１０２と第２経路管理ネットワーク５００の間の接続が切断された時に、仮想ＮＩＣ１０７と仮想スイッチ間の接続を切断するよう構成した場合、計算機１００Ｂの複数の物理ＮＩＣについて、ユーザが、それぞれどの経路管理ネットワークに接続させるかを管理する必要はない。
【００９５】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した各実施形態では、各所で非特許文献１、２のオープンフロースイッチやオープンフローコントローラを用いるものとして説明したが、これらに限定されるものではなく、同等の仕組みを持つ装置を適宜用いることが可能である。
【００９６】
また例えば、上記した第２、第３の実施形態では、パケットの転送を行うエントリが経路テーブルに格納されているものとして説明したが、経路制御部１０９／１０９Ａが、特定のパケットを廃棄させるエントリを設定したり、あるいは、特定のヘッダを書き換えるエントリを追加してもよいことはもちろんである。
【産業上の利用可能性】
【００９７】
本発明は、上記の通り、パケットの送信先等により、複数の物理ネットワークインタフェースを使い分ける必要のある計算機一般に適用可能であるが、計算機内でＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）に仮想的なネットワークを提供するための仮想スイッチにも適用できる。また本発明は、ＯＳがプログラムに対して提供する仮想ＮＩＣと物理ＮＩＣ間の間に置く仮想スイッチにも適用できる。【００９８】
最後に、本発明の特許請求の範囲に繰り込み可能な発明を付記する。【００９９】
［付記１］
上記第１の実施形態の通信解析部に代えて、
仮想ネットワークインタフェース装置からパケットを受信すると、管理下にある複数の通信装置の接続形態を表したネットワークトポロジ情報を用いて、前記仮想ネットワークインタフェース装置を第１の仮想スイッチと第２の仮想スイッチとのどちらに接続するかを選択する経路制御部を備える計算機。【０１００】
［付記２］
前記経路制御部は、前記第１、第２の仮想スイッチの経路テーブルにエントリを設定することにより、前記第１、第２の仮想スイッチにパケットに応じたアクションを実施させる計算機。【０１０１】
［付記３］
前記経路制御部は、前記ネットワークトポロジ情報を用いて、前記仮想ネットワークインタフェース装置を起点とする前記送信先計算機までのパケットの転送経路を決定し、前記転送経路に従って、前記仮想ネットワークインタフェース装置に接続する前記第１、第２の仮想スイッチの選択を行う計算機。【０１０２】
なお、上記非特許文献１、２の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０１０３】
１００、１００Ａ、１００Ｂ  計算機
１０１  第１物理ＮＩＣ
１０２  第２物理ＮＩＣ
１０３  第１仮想スイッチ（本発明の第１、第３の実施形態）
１０３Ａ  第１仮想スイッチ（本発明の第２の実施形態）
１０４  第２仮想スイッチ（本発明の第１、第３の実施形態）
１０４Ａ  第２仮想スイッチ（本発明の第２の実施形態）
１０５  接続設定部（本発明の第１、第３の実施形態）
１０５Ａ  接続設定部（本発明の第２の実施形態）
１０６  通信解析部
１０７  仮想ＮＩＣ
１０８  通信プログラム
１０９  経路制御部（本発明の第２の実施形態）
１０９Ａ  経路制御部（本発明の第３の実施形態）
１１３  第１物理スイッチ
１１４  第２物理スイッチ
２００  第１ネットワーク
３００  第２ネットワーク
４００  第１経路管理ネットワーク
５００  第２経路管理ネットワーク
６００  送信先計算機
【図１】
2011087085.tif 000003
【図２】
2011087085.tif 000004
【図３】
2011087085.tif 000005
【図４】
2011087085.tif 000006
【図５】
2011087085.tif 000007
【図６】
2011087085.tif 000008
【図７】
2011087085.tif 000009
【図８】
2011087085.tif 000010
【図９】
2011087085.tif 000011
【図１０】
2011087085.tif 000012
【図１１】
2011087085.tif 000013
【図１２】
2011087085.tif 000014
【図１３】
2011087085.tif 000015
【図１４】
2011087085.tif 000016
【国際調査報告】
2011087085.tif 000017
2011087085.tif 000018
2011087085.tif 000019
2011087085.tif 000020