(57)【要約】【課題】  接続する仮想ネットワークの種類を検出し、仮想ネットワークへの接続性を向上することを目的とする。【解決手段】  ネットワークと接続される通信装置の制御方法において、複数種類の仮想ネットワーク検出パケットを生成し、前記生成した複数種類の仮想ネットワーク検出パケットを前記ネットワークへ送信し、前記送信した仮想ネットワーク検出パケットに対する応答を受信し、前記受信した応答に応じて、前記ネットワークの仮想ネットワークの情報を特定する。【選択図】  図５
2017046211.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークと接続される通信装置の制御方法において、
複数種類の仮想ネットワーク検出パケットを生成し、
前記生成した複数種類の仮想ネットワーク検出パケットを前記ネットワークへ送信し、
前記送信した仮想ネットワーク検出パケットに対する応答を受信し、
前記受信した応答に応じて、前記ネットワークの仮想ネットワークの情報を特定すること、
を特徴とする通信装置の制御方法。
【請求項２】
請求項１に記載の通信装置の制御方法であって、
前記ネットワークの仮想ネットワークの情報は、仮想ネットワークの種類の情報を含み、
前記受信した応答に応じて特定した前記ネットワークの仮想ネットワークの情報を、記憶する期限とともに、記憶すること、
を特徴とする通信装置の制御方法。
【請求項３】
請求項２に記載の通信装置の制御方法であって、
前記記憶する期限を判定し、
前記記憶する期限の判定が期限切れの判定である場合、複数種類の仮想ネットワーク検出パケットを生成し、前記生成した複数種類の仮想ネットワーク検出パケットを前記ネットワークへ送信し、前記送信した仮想ネットワーク検出パケットに対する応答を受信し、前記受信した応答に応じて、前記ネットワークの仮想ネットワークの情報を特定すること、
を特徴とする通信装置の制御方法。
【請求項４】
請求項３に記載の通信装置の制御方法であって、
前記記憶する期限の判定が期限切れでない判定である場合、前記記憶した仮想ネットワークの情報を特定すること、
を特徴とする通信装置の制御方法。
【請求項５】
請求項４に記載の通信装置の制御方法であって、
予め設定された複数の仮想ネットワーク種別を取得し、
前記複数の仮想ネットワーク種別それぞれに予め設定された仮想ネットワーク識別ＩＤの範囲を取得し、
前記取得した複数の仮想ネットワーク種別と前記取得した仮想ネットワーク識別ＩＤの範囲に基づき、前記複数種類の仮想ネットワーク検出パケットを生成すること、
を特徴とする通信装置の制御方法。
【請求項６】
請求項５に記載の通信装置の制御方法であって、
前記特定した仮想ネットワークの情報に基づき送信するパケットを取得し、
前記取得したパケットのヘッダに含まれる情報を取得し、
前記取得したヘッダに含まれる情報を用いて、前記複数種類の仮想ネットワーク検出パケットを生成すること、
を特徴とする通信装置の制御方法。
【請求項７】
ネットワークと接続される通信装置において、
複数種類の仮想ネットワーク検出要求を生成し、
前記複数種類の仮想ネットワーク検出要求に対する応答通知に応じて前記ネットワークの仮想ネットワークの情報を特定する検出部と、
前記生成した複数種類の仮想ネットワーク検出要求に基づき、複数種類の仮想ネットワーク検出パケットを生成し、
前記生成した複数種類の仮想ネットワーク検出パケットを前記ネットワークへ送信し、
前記送信した仮想ネットワーク検出パケットに対する応答パケットを受信し、
前記受信した応答パケットに応じて、前記複数種類の仮想ネットワーク検出要求に対する応答通知を生成する送受信部と、
を備えたことを特徴とする通信装置。
【請求項８】
請求項７に記載の通信装置であって、
前記ネットワークの仮想ネットワークの情報は、仮想ネットワークの種類の情報を含み、
前記特定した前記ネットワークの仮想ネットワークの情報を、記憶する期限とともに、記憶する情報保持部
をさらに備えたことを特徴とする通信装置。
【請求項９】
請求項８に記載の通信装置であって、
前記情報保持部は、
前記記憶する期限を判定し、
前記記憶する期限の判定が期限切れの判定である場合、前記記憶した前記ネットワークの仮想ネットワークの情報を削除し、前記期限切れに関する情報を前記検出部へ通知し、
前記検出部は、
前記情報保持部から通知された前記期限切れに関する情報に応じて、複数種類の仮想ネットワーク検出要求を生成すること、
を特徴とする通信装置。
【請求項１０】
請求項９に記載の通信装置であって、
前記情報保持部は、
前記記憶する期限の判定が期限切れでない判定である場合、前記記憶した前記ネットワークの仮想ネットワークの情報を前記検出部へ通知し、
前記検出部は、
前記情報保持部から通知された前記記憶した仮想ネットワークの情報を特定すること、
を特徴とする通信装置。
【請求項１１】
請求項１０に記載の通信装置であって、
予め設定された複数の仮想ネットワーク種別と、前記複数の仮想ネットワーク種別それぞれに予め設定された仮想ネットワーク識別ＩＤの範囲を記憶する記憶部
をさらに備え、
前記検出部は、
前記記憶した複数の仮想ネットワーク種別と仮想ネットワーク識別ＩＤの範囲に基づき、前記複数種類の仮想ネットワーク検出パケットを生成すること、
を特徴とする通信装置。
【請求項１２】
請求項１１に記載の通信装置であって、
前記送受信部は、
前記特定した仮想ネットワークの情報に基づき送信するパケットのヘッダに含まれる情報を取得し、
前記取得したヘッダに含まれる情報を用いて、前記複数種類の仮想ネットワーク検出パケットを生成すること、
を特徴とする通信装置。
【請求項１３】
請求項１２に記載の通信装置であって、
前記検出部は、
前記複数種類の仮想ネットワーク検出要求を生成し、
前記生成した複数種類の仮想ネットワーク検出要求を前記送受信部へ通知するとともにタイマを設定し、
前記タイマの満了に対して、前記通知した仮想ネットワーク検出要求を前記送受信部へ再通知すると判定する、あるいは前記通知した仮想ネットワーク検出要求は検出失敗であると判定し、
前記生成した複数種類の仮想ネットワーク検出要求に関して検出中の仮想ネットワークがなくなると、前記複数種類の仮想ネットワーク検出要求に対する応答通知の中から前記ネットワークの仮想ネットワークの情報を特定すること、
を特徴とする通信装置。
【請求項１４】
ネットワークと接続されるコンピュータに通信処理を実行させるプログラムにおいて、
複数種類の仮想ネットワーク検出パケットを生成し、
前記生成した複数種類の仮想ネットワーク検出パケットを前記ネットワークへ送信し、
前記送信した仮想ネットワーク検出パケットに対する応答を受信し、
前記受信した応答に応じて、前記ネットワークの仮想ネットワークの情報を特定すること
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、制御方法およびプログラムに関するものである。
【背景技術】
【０００２】
仮想化技術を用いることで、ある物理サーバ上に複数の仮想サーバを構築することが実現されつつある。同様に、各サーバ間をつなぐ通信ネットワークにおいても仮想化技術を用いることで、より柔軟な通信ネットワークの構築が実現されつつある。これらの仮想化技術は、ＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ）およびＮＦＶ（Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）と呼ばれている。
【０００３】
従来、ネットワークの仮想化は、ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を用いたレイヤ２（以下、「Ｌ２」と呼ぶ）ネットワークにおいて実現していたが、新しい仮想ネットワークの実現技術として、オープンフローが規定された。オープンフローは、従来のスイッチやルータなどのネットワーク装置が扱う情報よりも多くの情報をもとにフロー情報と呼ばれるトラフィック転送のための識別情報を規定し、そのフロー情報により、通信トラフィックの転送を行う技術で、ホップバイホップ方式と呼ばれる。フロー情報は、フローコントローラにより、オープンフローに対応した通信サーバとスイッチやルータなどのネットワーク機器に設定される。
【０００４】
他の仮想ネットワークを構築する技術として、オーバーレイ方式が規定された。オーバーレイ方式は、通信を行うエンド−エンドの各装置間においてカプセル化による論理的なトンネルを構築することで、従来のＶＬＡＮと同様な仮想ネットワークを実現する方法である。特徴として、ＶＬＡＮはレイヤ２（Ｅｔｈｅｒネットワークレイヤ）における技術であり、オーバーレイ方式を実現するカプセリング技術としては、現在、ＶＸＬＡＮ（Ｖｉｒｔｕａｌ  ｅＸｔｅｎｓｉｂｌｅ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＮＶＧＲＥ（Ｎｅｔｗｏｒｋ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）、ＳＴＴ（Ｓｔａｔｅｌｅｓｓ  Ｔｒａｎｓｐｏｒｔ  Ｔｕｎｎｅｌｉｎｇ）の三技術が提案されており、混在している。
【０００５】
このような技術に関し、特許文献１では、仮想マシンを有する通信装置において、オーバーレイを用いた仮想ネットワークへの接続を実現する技術が記載されている。また、特許文献２では、オープンフローを用いた仮想ネットワークシステムに関する技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１４−５２６２１６号公報
【特許文献２】国際公開第２０１２／１２７８８６号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
仮想ネットワークの構築方法は、上述の通り、オープンフローを用いたホップバイホップ方式による構築、三種類のオーバーレイ方式による構築、合わせて四方式の構築方法が少なくとも存在する。そして、１つの通信ネットワークであっても、他の仮想ネットワークの構築方法すなわち仮想ネットワークの種類に順次更新される可能性もあり、１つの通信ネットワークの中で複数種類の仮想ネットワークが混在する可能性もある。
【０００８】
これに対して、仮想ネットワークに応じて通信装置を用意したり、複数種類の仮想ネットワークに対応する通信装置であっても、仮想ネットワークの種類に応じて設定したりすることは、通信装置の仮想ネットワークへの接続性が悪い。
【０００９】
そこで、本発明は、上記課題を解決するためになされたものであり、接続する仮想ネットワークの種類を検出し、仮想ネットワークへの接続性を向上することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る代表的な通信装置の制御方法は、ネットワークと接続される通信装置の制御方法において、複数種類の仮想ネットワーク検出パケットを生成し、前記生成した複数種類の仮想ネットワーク検出パケットを前記ネットワークへ送信し、前記送信した仮想ネットワーク検出パケットに対する応答を受信し、前記受信した応答に応じて、前記ネットワークの仮想ネットワークの情報を特定することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、接続する仮想ネットワークの種類を検出し、仮想ネットワークへの接続性を向上することができる。
【図面の簡単な説明】
【００１２】
【図１】通信ネットワークの例を示す図である。
【図２】通信装置の例を示す図である。
【図３】コンフィグパラメータの例を示す図である。
【図４】仮想ネットワーク情報の例を示す図である。
【図５】仮想ネットワークを検出する動作の例を示すシーケンス図である。
【図６】メイン部の処理の例を示すフローチャート図である。
【図７】仮想ネットワーク情報保持部の処理の例を示すフローチャート図である。
【図８】仮想ネットワーク検出部の要求処理の例を示すフローチャート図である。
【図９】仮想ネットワーク検出部のタイマ満了処理の例を示すフローチャート図である。
【図１０】仮想ネットワーク検出部の応答処理の例を示すフローチャート図である。
【図１１】パケット送受信部の処理の例を示すフローチャート図である。
【図１２】仮想ネットワーク検出パケットの例を示す図である。
【図１３】実施例２におけるＮＷ機器の例を示す図である。
【図１４】実施例２におけるネットワーク別仮想ネットワーク情報の例を示す図である。
【発明を実施するための形態】
【００１３】
以下、実施例について、図面を用いて説明する。
【実施例１】
【００１４】
図１は、通信ネットワーク１３０の例を示す図である。図１の例では、通信ネットワーク１３０にＶＸＬＡＮ方式のオーバーレイネットワーク１３１とオープンフローネットワーク１３２とＮＶＧＲＥ方式のオーバーレイネットワーク１３３とが混在する。これ以外に図示を省略したＳＴＴ方式のオーバーレイネットワークなどを含んでもよい。
【００１５】
オーバーレイネットワーク１３１において、通信パケットの送受信を行う通信エンド装置である通信装置１００−１と通信装置１０３は、複数のＮＷ（Ｎｅｔｗｏｒｋ）機器１０２−１、１０２−２、１０２−３、１０３−４とケーブルの通信経路１０４を介して接続されている。通信装置１００−１と通信装置１０３は、オーバーレイによる仮想ネットワークを実現する機能を備えている。通信装置１００−１と通信装置１０３は相互通信可能なように、事前に通信装置１０３にオーバーレイによる仮想ネットワークに関する設定を行っておく。この設定により、通信装置１００−１と通信装置１０３との間にトンネル１０５が仮想的に構築される。
【００１６】
このトンネル１０５は、通信装置１００−１と通信装置１０３とが通信に使用するパケットの上にＮＷ機器１０２−１、１０２−２、１０２−３で通信可能なパケットをかぶせるパケットのカプセル化で実現され、このカプセル化方式には三種類あり、各方式における互換性は無い。よって、事前に使用するカプセル化方式を通信装置１００と通信装置１１１で合わせておく必要がある。オーバーレイネットワーク１３１では、ＶＸＬＡＮの情報でカプセル化される。
【００１７】
オープンフローネットワーク１３２において、通信パケットの送受信を行う通信エンド装置である通信装置１００−２と通信装置１１３は、複数のＮＷ機器１１２−１、１１２−２、１１２−３、１１２−４とケーブルの通信経路１１４を介して接続されている。これらの通信装置１００−２、１１３、およびＮＷ機器１１２−１、１１２−２、１１２−３、１１２−４は、いずれもオープンフローによる仮想ネットワークを実現する機能を備えている。そして、これらへ通信経路１１７を介してオープンフローによりフロー情報を通知するフローコントローラ１１６がある。
【００１８】
通信装置１００−２が送信したパケットは、事前にフローコントローラ１１６より指定された経路を通り、通信装置１１３に到達する。経路の変更は、フローコントローラ１１６に対する経路設定変更により、通信装置１００−２、１１３、ＮＷ機器１１２−１、１１２−２、１１２−３、１１２−４の設定を変更することなく、柔軟に経路を変更することが可能である。
【００１９】
オーバーレイネットワーク１３３において、通信パケットの送受信を行う通信エンド装置である通信装置１００−３と通信装置１２３は、複数のＮＷ機器１２２−１、１２２−２、１２２−３、１２３−４とケーブルの通信経路１２４を介して接続されている。トンネル１２５を実現するためのカプセル化がＮＶＧＲＥであることを除き、他はオーバーレイネットワーク１３１と同じである。
【００２０】
通信装置１００−１と通信装置１００−２と通信装置１００−３とは同じ構造の通信装置であり、互いに入れ替えることも可能である。通信装置１００−１、１００−２、１００−３のそれぞれは、仮想ネットワーク通信部２５０−１、２５０−２、２５０−３を備え、接続された仮想ネットワークの情報を検出し、検出した仮想ネットワークの情報により、通信装置１０３、１１３、１２３のそれぞれと通信を行うことが可能となる。
【００２１】
このために、仮想ネットワーク通信部２５０−１、２５０−２、２５０−３は、複数の仮想ネットワーク種別の仮想ネットワーク検出パケットを送信し、応答の有無により、接続された仮想ネットワーク種別などを検出する。以下では、仮想ネットワーク通信部２５０−１、２５０−２、２５０−３についてさらに説明する。なお、通信装置１００−１、１００−２、１００−３は構成が同じであるので通信装置１００と代表的に表し、仮想ネットワーク通信部２５０−１、２５０−２、２５０−３は構成が同じであるので仮想ネットワーク通信部２５０と代表的に表す。
【００２２】
図２は、通信装置１００の構成の例を示す図である。通信装置１００は、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ：通信インタフェース）２００、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などを含むハードウェア２０１、主記憶装置（メインメモリ）２０４に格納され、ハードウェア２０１上で動作するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）２０２とアプリケーション２０３などのプログラムにより構成される。
【００２３】
ＯＳ２０２には、通信制御部２１０とＮＩＣ制御部２１１が含まれる。通信制御部２１０は、通信装置１００が外部の装置とネットワーク通信を行う際に、プロトコル処理などを行うプログラムである。なお、ここでの部はプログラムモジュール、サブルーチンなどを表す。
【００２４】
通信制御部２１０は、仮想ネットワーク通信部２５０を含む。仮想ネットワーク通信部２５０は、仮想ネットワークを用いたネットワーク通信を行う際に、自動的に使用する仮想ネットワーク種別を検出するプログラムである。この仮想ネットワーク通信部２５０は、メイン部２５１、仮想ネットワーク情報保持部２５２、パケット送受信部２５４、仮想ネットワーク検出部２５３から構成される。
【００２５】
仮想ネットワーク通信部２５０は、通信装置１００を起動時、ハードウェア２０１により主記憶装置２０４上へロードされ、さらにハードウェア２０１のＣＰＵにより読み出されて実行される。
【００２６】
メイン部２５１は、通信制御部２１０のプロトコルスタックなどからの仮想ネットワークによるパケット送信要求を受信し、仮想ネットワーク情報保持部２５２、パケット送受信部２５４、仮想ネットワーク検出部２５３と連携することで、パケット送信に使用する仮想ネットワーク種別を決定するプログラムである。そして、決定した仮想ネットワーク種別に従い、通信制御部２１０のプロトコルスタックなどから受信したパケットを通信装置１００外部へ送信するために、パケット送受信部２５４へパケット送信要求を行う。
【００２７】
メイン部２５１は、コンフィグパラメータ４００を含み、コンフィグパラメータ４００に設定されたパラメータ値に基づいて動作するとともに、仮想ネットワーク検出部２５３に検出のためのパラメータ値を渡す。コンフィグパラメータ４００は、仮想ネットワークの各種別とそれぞれの優先度などの情報を含む。コンフィグパラメータ４００については図３を用いて後で説明し、メイン部２５１の処理フローについては図６を用いて後で説明する。
【００２８】
仮想ネットワーク情報保持部２５２は、検出の重複を避けるため、以前に検出した仮想ネットワークに関する情報を仮想ネットワーク情報５００として保持し、その仮想ネットワーク情報５００の中から特定の情報の検索するプログラムおよびデータである。仮想ネットワーク情報５００については図４を用いて後で説明し、仮想ネットワーク情報保持部２５２の処理フローについては図７を用いて後で説明する。
【００２９】
パケット送受信部２５４は、仮想ネットワーク検出パケットの生成および送受信を行うプログラムであり、また、使用する仮想ネットワーク種別に従い、通信装置１００の外部へパケットを送信するプログラムである。パケット送受信部２５４の処理フローについては図１１を用いて後で説明する。
【００３０】
仮想ネットワーク検出部２５３は、コンフィグパラメータ４００ において設定された情報および仮想ネットワーク検出パケットの送受信により得た使用可能な仮想ネットワーク情報から、各仮想ネットワークの使用優先度も判定して、使用する仮想ネットワーク種別の決定を行うプログラムである。仮想ネットワーク検出部２５３の処理フローについては図８〜１０を用いて後で説明する。
【００３１】
ＮＩＣ制御部２１１は、パケットの送受信時において、ＮＩＣ２００を制御するドライバプログラムである。また、キーボードやマウスなどの入力装置に接続されるインタフェースおよびディスプレイに接続されるインタフェースを備えてもよく、管理ネットワークに接続されるインタフェースを備えてもよい。ＯＳの一般的な処理により、これらを制御してもよい。
【００３２】
なお、図２に示した各部はプログラムであるが、以下の記載では、各部を読み出して実行するＣＰＵを、各部そのものとして記載する。このため、動作の主体として記載された各部は、ＣＰＵに読み替えられてもよい。また、主記憶装置２０４に格納された各部のプログラムおよびデータを読み出して動作するＣＰＵの動作の一部またはすべてを専用のハードウェア部として、ハードウェア２０１に含めてもよい。
【００３３】
図３は、コンフィグパラメータ４００の例を示す図である。コンフィグパラメータ４００は、項番４０１、パラメータ４０２、値４０３、説明４０４からなる。コンフィグパラメータ４００のパラメータ４０２の「ＭＯＤＥ」において、値４０３に「１：ＡＵＴＯ」が設定されている場合、メイン部２５１は、仮想ネットワークの種別を検出する。値４０３に「２：ＨｏｐＢｙＨｏｐ」、「３：Ｏｖｅｒｌａｙ−ＶＸＬＡＮ」、「４：Ｏｖｅｒｌａｙ−ＮＶＧＲＥ」、「５：Ｏｖｅｒｌａｙ−ＳＴＴ」のいずれかが設定されている場合、メイン部２５１は、仮想ネットワークの種別を検出することなく、設定された仮想ネットワークの種別によるパケット送信を行う。
【００３４】
パラメータ４０２の「ＶＮ＿ＨＯＰＢＹＨＯＰ」、「ＶＮ＿ＶＸＬＡＮ」、「ＶＮ＿ＮＶＧＲＥ」、「ＶＮ＿ＳＴＴ」において、値４０３にそれぞれ０〜４の値が設定されており、優先度を表す。仮想ネットワーク検出部２５３は、メイン部２５１からこれら優先度を受け取り、仮想ネットワーク検出処理の実施有無、および複数の仮想ネットワーク検出時における仮想ネットワークの選択に使用する。なお、優先度について、０または４のいずれを優先度が高いとしてもよいが、本実施例においては、優先度の値が４を優先度が高いとし、値が大きいほど優先度が高いとする。
【００３５】
パラメータ４０２の「ＶＮ＿ＶＸＬＡＮ＿ＩＤ」、「ＶＮ＿ＮＶＧＲＥ＿ＩＤ」、「ＶＮ＿ＳＴＴ＿ＩＤ」において、値４０３は、オーバーレイによる仮想ネットワーク通信時に、各方式で使用する仮想ネットワーク識別ＩＤの範囲を表す。仮想ネットワーク検出部２５３は、メイン部２５１からこれらの範囲を受け取り、仮想ネットワーク検出時に、これらの範囲の仮想ネットワーク識別ＩＤの中で、有効な仮想ネットワーク識別ＩＤを検出する。
【００３６】
パラメータ４０２の「ＤＥＴＥＣＴ＿ＷＡＩＴ」、「ＤＥＴＥＣＴ＿ＴＩＭＥ」において、値４０３のそれぞれは、仮想ネットワーク検出部２５３が仮想ネットワーク検出失敗とするまでの応答待ち時間および仮想ネットワーク検出パケットの送信回数である。パラメータ４０２の「ＣＬＥＡＲ＿ＴＩＭＥ」において、値４０３は、保持している仮想ネットワーク情報の有効期限の算出に使用される値である。
【００３７】
なお、コンフィグパラメータ４００は、図２において図示を省略したインタフェースを経由して設定されてもよく、通信装置１００の製造時あるいは出荷時などに設定されてもよい。また、コンフィグパラメータ４００は、通信装置１００を使用する保守者が、値４０３を変更することで、仮想ネットワーク通信部２５０の動作を指定してもよい。
【００３８】
図４は、仮想ネットワーク情報５００の例を示す図である。仮想ネットワーク情報５００は、項番５０１、ＤＥＳＴＩＮＡＴＩＯＮ５０２、ＶＩＲＴＵＡＬ＿ＮＥＴ５０３、ＶＮＥＴ＿ＩＤ５０４、ＥＸＰＩＲＥ＿ＴＩＭＥ５０５からなる。
【００３９】
ＤＥＳＴＩＮＡＴＩＯＮ５０２は、送信先のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスである。ＶＩＲＴＵＡＬ＿ＮＥＴ５０３は、使用する仮想ネットワーク種別である。ＶＮＥＴ＿ＩＤ５０４は、使用する仮想ネットワーク識別ＩＤである。また、ＥＸＰＩＲＥ＿ＴＩＭＥ５０５は、これらの情報の有効期限を示す。
【００４０】
仮想ネットワーク情報５００は、仮想ネットワーク情報保持部２５２により、情報検索、情報保持、情報削除が行われる。仮想ネットワーク情報保持部２５２の処理フローは図７を用いて後で説明する。
【００４１】
図５は、仮想ネットワークを検出する動作の例を示すシーケンス図である。通信装置１００のメイン部２５１が、アプリケーション２０３から通信制御部２１０のプロトコルスタックなどを経由して、通信装置３８０を送信先とするパケットの送信要求３００を受け取ると、メイン部２５１は、仮想ネットワーク情報保持部２５２へ、通信装置３８０を送信先とする仮想ネットワーク情報の検索要求３０１を行う。この検索要求３０１には、要求種別（検索要求）と、通信装置３８０へ送信すべきパケット（オリジナルパケット）と、送信先となる通信装置３８０のＩＰアドレスと、が含まれる。
【００４２】
仮想ネットワーク情報の検索要求３０１を受けた仮想ネットワーク情報保持部２５２は、受信したＩＰアドレスが仮想ネットワーク情報５００に存在するかを検索し、その検索結果３０２をメイン部２５１へ応答する。この検索結果３０２には、ＩＰアドレスが存在する場合は検索結果ありの情報が含まれ、ＩＰアドレスが存在しない場合は検索結果なしの情報が含まれる。検索結果ありの場合には、さらに仮想ネットワーク種別および仮想ネットワーク識別ＩＤが含まれる。
【００４３】
検索結果３０２を受信したメイン部２５１は、検索結果ありの場合のシーケンス３０３として、送受信種別（送信）と、送信要求種別（パケット送信要求）と、検索結果３０２に含まれた仮想ネットワーク種別および仮想ネットワーク識別ＩＤと、送信すべきパケットと、を含むパケット送信要求３０４を、パケット送受信部２５４へ渡す。
【００４４】
パケット送信要求３０４を受け取ったパケット送受信部２５４は、パケット送信要求３０４に含まれる仮想ネットワーク種別および仮想ネットワーク識別ＩＤを用いて、通信装置１００から通信装置３８０へパケット送信３０５を行う。パケット送受信部２５４は、パケット送信３０５が完了すると、メイン部２５１へパケット送信完了３０６を応答する。なお、パケット送信３０５は、ＮＩＣ制御部２１１およびＮＩＣ２００を経由する。
【００４５】
一方、検索結果３０２を受信したメイン部２５１は、検索結果なしの場合のシーケンス３０７として、仮想ネットワーク検出部２５３へ仮想ネットワーク検出要求３０８を行う。仮想ネットワーク検出要求３０８にはコンフィグパラメータ４００の情報が含まれる。仮想ネットワーク検出要求３０８を受け取った仮想ネットワーク検出部２５３は、パケット送受信部２５４へ、送受信種別（送信）と、コンフィグパラメータ４００の情報に基づく送信要求種別（仮想ネットワーク検出パケット送信要求）と、を含む仮想ネットワーク検出要求を渡す。
【００４６】
仮想ネットワーク検出要求には、ホップバイホップ送信要求３０９、ＶＸＬＡＮ送信要求３１１、ＮＶＧＲＥ送信要求３１３、ＳＴＴ送信要求３１５が含まれ、これらの各要求は、前の要求の応答を待たずに実施される。ここで、オーバーレイによる各仮想ネットワーク検出パケットの送信は、コンフィグパラメータ４００に設定された仮想ネットワーク識別ＩＤの範囲に含まれる数だけ行われる。なお、ホップバイホップ方式の場合には、仮想ネットワーク識別ＩＤを必要としないため、複数送信する必要がない。
【００４７】
これらの仮想ネットワーク検出パケット送信要求を受け取ったパケット送受信部２５４は、各仮想ネットワーク検出パケットを生成し、送信先の通信装置３８０へ送信する。パケット送受信部２５４は、ホップバイホップ送信要求３０９を受け取った場合には、ホップバイホップ検出パケット３１０を生成し、通信装置３８０へ送信する。ＶＸＬＡＮ送信要求３１１を受け取った場合には、ＶＸＬＡＮ検出パケット３１２を通信装置３８０へ送信する。ＮＶＧＲＥ送信要求３１３を受け取った場合には、ＮＶＧＲＥ検出パケット３１４を生成し、通信装置３８０へ送信する。ＳＴＴ送信要求３１５を受け取った場合には、ＳＴＴ検出パケット３１６を生成し、通信装置３８０へ送信する。
【００４８】
これに対して、仮想ネットワーク検出パケットを受信した通信装置３８０が、ホップバイホップによる仮想ネットワーク方式を用いている場合には、通信装置１００から受信した仮想ネットワーク検出パケットのＩＰヘッダに設定されている送信先ＩＰアドレスが通信装置３８０宛てであり、仮想ネットワーク検出パケットの応答可能であれば、通信装置３８０はホップバイホップ方式による通信が可能とし、通信装置１００へ仮想ネットワーク検出応答を返す。
【００４９】
一方、通信装置１００から受信した仮想ネットワーク検出パケットに応答できない場合は、通信装置３８０は仮想ネットワーク検出パケットを破棄し、通信装置１００へ仮想ネットワーク検出応答は返らない。
【００５０】
また、仮想ネットワーク検出パケットを受信した通信装置３８０が、オーバーレイによる仮想ネットワーク方式を用いている場合には、受信した仮想ネットワーク検出パケットの送信先ＩＰアドレスが通信装置３８０宛てである場合、続いて仮想ネットワーク種別の一部であるオーバーレイ種別の判定を行う。つまり、受信した仮想ネットワーク検出パケットの仮想ネットワーク種別と通信装置３８０が用いている仮想ネットワーク種別との比較が行われ、合致している場合には、さらに、仮想ネットワーク識別ＩＤが合致するかの比較が行われる。
【００５１】
仮想ネットワーク識別ＩＤの比較は、受信した仮想ネットワーク検出パケットの仮想ネットワーク用のヘッダに設定された仮想ネットワーク識別ＩＤが通信装置３８０で用いている仮想ネットワーク識別ＩＤと合致するかを比較することで行われる。受信した仮想ネットワーク検出パケットの送信先ＩＰアドレスが通信装置３８０宛てでない場合、もしくは、仮想ネットワーク種別もしくは仮想ネットワーク識別ＩＤが合致しない場合には、通信装置３８０は仮想ネットワーク検出パケットを破棄し、通信装置１００へ仮想ネットワーク検出応答は返らない。
【００５２】
仮想ネットワーク種別および仮想ネットワーク識別ＩＤの両方が合致する場合は、仮想ネットワーク用のヘッダ情報が削除され、この時点で通信装置３８０は、トンネリングのためのカプセル化がされていない後述する仮想ネットワーク検出パケットを受信することが可能となる。ホップバイホップ方式同様に受信した仮想ネットワーク検出パケットの送信先ＩＰアドレスが通信装置３８０宛てかどうかを判定する。
【００５３】
仮想ネットワーク検出パケットの送信先ＩＰアドレスが通信装置３８０宛てであれば、通信装置１００へ仮想ネットワーク検出応答を返すが、通信装置３８０宛てでなければ、仮想ネットワーク検出パケットを破棄し、通信装置１００へ仮想ネットワーク検出応答は返らない。
【００５４】
図５に示した例では、通信装置１００より送信されたＶＸＬＡＮ検出パケット３１２の仮想ネットワーク検出応答として通信装置３８０からＶＸＬＡＮ応答パケット３１７が送信され、パケット送受信部２５４がＶＸＬＡＮ応答パケット３１７を受信する。この際、パケット送受信部２５４には、送受信種別（受信）が付加情報として渡される。このＶＸＬＡＮ応答パケット３１７には、通信装置３８０との通信の仮想ネットワーク識別ＩＤも含まれる。パケット送受信部２５４がＶＸＬＡＮ応答パケット３１７を受信すると、受信したＶＸＬＡＮ応答パケット３１７が正常な仮想ネットワーク検出応答であるかを判定する。この判定は、ＶＸＬＡＮ応答パケット３１７のパケットデータ部に設定されているデータにより行なわれる。
【００５５】
この例ではデータとしてＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）を用いているため、ＩＣＭＰ−ＲＥＰＲＹがデータとして設定されている場合に、正常な仮想ネットワーク検出応答と判定する。正常な仮想ネットワーク検出応答であると判定された場合、パケット送受信部２５４は、仮想ネットワーク検出部２５３へＶＸＬＡＮ応答通知３１８をわたす。なお、ＶＸＬＡＮ応答通知３１８には、ＶＸＬＡＮ応答パケット３１７に含まれた仮想ネットワーク識別ＩＤも含まれる。
【００５６】
ＶＸＬＡＮ応答通知３１８を受け取った仮想ネットワーク検出部２５３は、仮想ネットワーク情報保持部２５２へ検出結果保持要求３１９を行う。検出結果保持要求３１９には、要求種別（検出結果保持要求）と、通信対象である通信装置３８０のＩＰアドレスと、仮想ネットワーク種別と、仮想ネットワーク識別ＩＤとが含まれる。検出結果保持要求３１９を受け取った仮想ネットワーク情報保持部２５２は、検出結果保持要求３１９に含まれる情報を仮想ネットワーク情報５００として保持し、仮想ネットワーク検出部２５３へ保持の完了を示す検出結果保持応答３２０を通知する。
【００５７】
検出結果保持応答３２０を受け取った仮想ネットワーク検出部２５３は、メイン部２５１へ仮想ネットワーク検出応答３２１を行う。この仮想ネットワーク検出応答３２１には、検出結果保持要求３１９でも含まれた仮想ネットワーク種別および仮想ネットワーク識別ＩＤが含まれる。
【００５８】
仮想ネットワーク検出応答３２１を受信したメイン部２５１は、仮想ネットワーク検出応答３２１に含まれた仮想ネットワーク種別および仮想ネットワーク識別ＩＤと、送信すべきパケットを含むパケット送信要求３２２を、パケット送受信部２５４へわたす。
【００５９】
パケット送信要求３２２を受け取ったパケット送受信部２５４は、パケット送信要求３２２に含まれる仮想ネットワーク種別および仮想ネットワーク識別ＩＤを用いて、通信装置１００から通信装置３８０へパケット送信３２３を行う。パケット送受信部２５４は、パケット送信３２３が完了すると、メイン部２５１へパケット送信完了３２４を応答する。なお、パケット送信３０５は、ＮＩＣ制御部２１１およびＮＩＣ２００を経由する。
【００６０】
仮想ネットワークによるパケットの送信が完了すると、メイン部２５１は、通信制御部２１０のプロトコルスタックなどを経由してアプリケーション２０３へ送信完了３２５を通知する。
【００６１】
図５に示した例では、ＶＸＬＡＮ応答パケット３１７の１つの仮想ネットワーク種別による仮想ネットワーク検出応答を説明したが、複数の仮想ネットワーク種別を用いて仮想ネットワーク検出応答が送信されてもよい。このような複数の場合に１つの仮想ネットワーク種別を選択するための優先度が、コンフィグパラメータ４００に含まれており、優先度を用いた処理の例は後で説明する。
【００６２】
図６は、メイン部２５１の送信要求受信処理の例を示すフローチャート図である。送信要求受信処理は、図５を用いて説明した送信要求３００を受信してから送信完了３２５を通知するまでのメイン部２５１の処理である。まず、メイン部２５１が処理を開始すると（ステップ６００）、通信制御部２１０のプロトコルスタックなどを経由して送信要求３００を受信する（ステップ６０１）。送信要求３００には送信すべきパケットと送信先ＩＰアドレスが含まれる。
【００６３】
次に、コンフィグパラメータ４００のパラメータ４０２の「ＭＯＤＥ」における値４０３を取得する（ステップ６０２）。取得した「ＭＯＤＥ」の値を判定し（ステップ６０３）、「ＭＯＤＥ」の値が「１：ＡＵＴＯ」以外であれば、使用する仮想ネットワーク種別が「ＭＯＤＥ」の値として設定されているため、取得した「ＭＯＤＥ」の値を仮想ネットワーク種別としてパケットを送信する要求であるパケット送信要求をパケット送受信部２５４へ行い、パケット送受信部２５４の処理となる（ステップ６０４）。パケット送受信部２５４へは、送信すべきパケット、使用する仮想ネットワーク種別、仮想ネットワーク識別ＩＤを通知する。ただし、ホップバイホップによる送信時には、仮想ネットワーク識別ＩＤは通知しない。パケット送受信部２５４の処理は図１１を用いて後で説明する。
【００６４】
メイン部２５１はステップ６０３において、「ＭＯＤＥ」の値が「１：ＡＵＴＯ」であれば、送信先に対する仮想ネットワーク情報がすでに存在するかを検索する要求である検索要求３０１を仮想ネットワーク情報保持部２５２へ行い、仮想ネットワーク情報保持部２５２の処理となる（ステップ６０５）。この要求には、送信先ＩＰアドレスと検索要求であることを示す情報が含まれる。仮想ネットワーク情報保持部２５２の処理は図７を用いて後で説明する。
【００６５】
メイン部２５１はステップ６０６において、仮想ネットワーク情報保持部２５２からの検索結果を判定する。検索結果として該当あり（検索結果あり）が得られた場合は、パケット送受信部２５４へ該当する仮想ネットワークでのパケットの送信を要求するパケット送信要求３０４を行う（ステップ６１０）。つまり、メイン部２５１は、その検索結果に含まれる仮想ネットワーク種別および仮想ネットワーク識別ＩＤ、送信先ＩＰアドレス、送信すべきパケットを用いたパケット送信要求をパケット送受信部２５４へ行い、パケット送受信部２５４の処理となる（ステップ６１０）。ステップ６１０のパケット送受信部２５４の処理も図１１を用いて後で説明する。
【００６６】
メイン部２５１はステップ６０６において、検索結果として該当なし（検索結果なし）と判定した場合には、仮想ネットワークの検出が必要となるため、仮想ネットワーク検出部２５３へ仮想ネットワークを検出する要求である仮想ネットワーク検出要求を行い、仮想ネットワーク検出部２５３の処理となる（ステップ６０７）。仮想ネットワーク検出要求には、コンフィグパラメータ４００の情報が含まれ、送信すべきパケットが含まれてもよい。仮想ネットワーク検出部２５３の処理は図８〜１０を用いて後で説明する。
【００６７】
その後、メイン部２５１は、仮想ネットワーク検出部２５３により検出された仮想ネットワーク種別および仮想ネットワーク識別ＩＤを仮想ネットワーク検出応答として受信し（ステップ６０８）、受信した仮想ネットワーク種別および仮想ネットワーク識別ＩＤと、送信先ＩＰアドレス、送信すべきパケットを用いたパケットを送信する要求であるパケット送信要求をパケット送受信部２５４へ行い、図１１を用いて後で説明するパケット送受信部２５４の処理となる（ステップ６０９）。そして、パケット送受信部２５４からパケットの送信が完了したことを通知する送信完了通知を受け取ると、通信制御部２１０のプロトコルスタックなどへ送信完了通知を行い（送信し）（ステップ６１１）、処理を終了する（ステップ６１２）。
【００６８】
図７は、仮想ネットワーク情報保持部２５２の処理の例を示すフローチャート図である。仮想ネットワーク情報保持部２５２は、検索要求および検出結果保持要求の２種類の要求を処理する。仮想ネットワーク情報保持部２５２は、処理を開始すると（ステップ７００）、仮想ネットワーク情報保持部２５２が呼び出される際の付加情報から要求種別を取得し（ステップ７０１）、要求種別を判定する（ステップ７０２）。
【００６９】
仮想ネットワーク情報保持部２５２は、ステップ７０２の判定結果として、要求種別が検索要求であった場合は、検索処理を行う（ステップ７０３）。なお、検索要求には、検索する送信先ＩＰアドレスが含まれ、検出結果保持要求には、保持する送信先ＩＰアドレス、仮想ネットワーク種別、仮想ネットワーク識別ＩＤが含まれる。この検索処理は、検索要求に含まれる送信先ＩＰアドレスと一致するＩＰアドレスが仮想ネットワーク情報５００のＤＥＳＴＩＮＡＴＩＯＮ５０２に存在するかを検索する。その検索の結果、一致するＩＰアドレスが存在する（該当ありの）場合は、一致するＩＰアドレスに対応するＥＸＰＩＲＥ＿ＴＩＭＥ５０５の値を期限として取得する（ステップ７０５）。
【００７０】
仮想ネットワーク情報保持部２５２は、現在の日時と期限とを比較して期限切れであるかを判定し（ステップ７０６）、期限内であれば、ステップ７０３で一致したＩＰアドレスに対応するＶＩＲＴＵＡＬ＿ＮＥＴ５０３の値およびＶＮＥＴ＿ＩＤ５０４の値をそれぞれ仮想ネットワーク種別および仮想ネットワーク識別ＩＤを含む該当ありとメイン部２５１に応答する（ステップ７０７）。
【００７１】
仮想ネットワーク情報保持部２５２がステップ７０６で、期限切れと判定した場合は、ステップ７０３で一致したＩＰアドレスに対応する項番５０１の内容（エントリ）の情報を削除し（ステップ７０８）、該当なしとメイン部２５１に応答する（ステップ７０９）。
【００７２】
仮想ネットワーク情報保持部２５２はステップ７０２で、要求種別が検出結果保持要求であると判定した場合、検出結果保持処理を行い（ステップ７１０）、処理を終了する（ステップ７１１）。この検出結果保持処理は、仮想ネットワーク情報５００に、項番５０１の値を追加し、送信先ＩＰアドレス、仮想ネットワーク種別、仮想ネットワーク識別ＩＤ、期限のそれぞれを、ＤＥＳＴＩＮＡＴＩＯＮ５０２、ＶＩＲＴＵＡＬ＿ＮＥＴ５０３、ＶＮＥＴ＿ＩＤ５０４、ＥＸＰＩＲＥ＿ＴＩＭＥ５０５のそれぞれに追加登録する。ＥＸＰＩＲＥ＿ＴＩＭＥ５０５の期限は、登録する時点での日時にコンフィグパラメータ４００の「ＣＬＥＡＲ＿ＴＩＭＥ」で設定された時間を加算した日時とする。
【００７３】
図８は、仮想ネットワーク検出部２５３の仮想ネットワーク検出要求処理の例を示すフローチャート図である。図８を用いて説明する処理により、仮想ネットワーク検出パケットを送信し、図９を用いて説明する処理により、送信した仮想ネットワーク検出パケットに対する応答のない場合に再送信し、図１０を用いて説明する処理により、受信した応答から仮想ネットワークの情報を決定する。
【００７４】
仮想ネットワーク検出部２５３は処理を開始すると（ステップ８００）、仮想ネットワーク検出要求を受信する（ステップ８０１）。仮想ネットワーク検出要求に含まれるコンフィグパラメータ４００の情報により、検出対象とする仮想ネットワーク種別を特定する（ステップ８０２）。検出対象とする仮想ネットワーク種別の特定するため、コンフィグパラメータ４００のパラメータ４０２に含まれる「ＶＮ＿ＨＯＰＢＹＨＯＰ」、「ＶＮ＿ＶＸＬＡＮ」、「ＶＮ＿ＮＶＧＲＥ」、「ＶＮ＿ＳＴＴ」を抽出する。ただし、値４０３の優先度が「０」の仮想ネットワーク種別は検索対象外とする。検出対象となる仮想ネットワーク種別は複数であってもよい。
【００７５】
仮想ネットワーク検出部２５３は、検出対象として特定した仮想ネットワーク種別を用いてパケット送受信部２５４へ仮想ネットワーク検出パケットの送信を要求し、図１１を用いて後で説明するパケット送受信部２５４の処理となる（ステップ８０３）。この要求には、検出対象として特定した仮想ネットワーク種別のうち、いずれか一つと、コンフィグパラメータ４００で指定される、その仮想ネットワーク種別にて使用される仮想ネットワーク識別ＩＤを要求が含まれる。なお、オーバーレイ方式の仮想ネットワーク種別が検出対象となった際には、検出する仮想ネットワーク種別ごとに、コンフィグパラメータ４００の値４０３に設定された仮想ネットワーク識別ＩＤの範囲に含まれる数だけ検出要求を行う。
【００７６】
仮想ネットワーク検出部２５３は、応答待ちタイマを開始する（ステップ８０４）。応答待ちタイマは、パケット送受信部２５４への仮想ネットワーク検出要求ごと、すなわち仮想ネットワーク種別および仮想ネットワーク識別ＩＤとともに設定される。応答待ちタイマの待ち時間は、コンフィグパラメータ４００のパラメータ４０２の「ＤＥＴＥＣＴ＿ＷＡＩＴ」に対応する値４０３の時間が設定される。応答待ちタイマが満了した際の処理は、図９を用いて後で説明する。
【００７７】
仮想ネットワーク検出部２５３は、送信要求した仮想ネットワーク検出パケットの情報を一時保持し（ステップ８０５）、それまでに一時保持した送信要求済みの仮想ネットワーク検出パケットの情報を取得し（ステップ８０６）、未送信すなわち検出対象のすべての仮想ネットワーク種別および仮想ネットワーク識別ＩＤに対して送信要求済みでないものがあるかを判定する（ステップ８０７）。そして、未送信なしすなわち検出対象のすべての仮想ネットワーク種別および仮想ネットワーク識別ＩＤに対して送信要求済みであれば、処理を終了する（ステップ８０８）。
【００７８】
仮想ネットワーク検出部２５３は、未送信ありと判定した場合、ステップ８０３へ戻り、未送信の仮想ネットワーク種別および仮想ネットワーク識別ＩＤのうちのいずれかについて、パケット送受信部２５４へ仮想ネットワーク検出パケットの送信を要求するようにして、ステップ８０３からステップ８０７までを繰り返す。この結果、検出対象としたすべての仮想ネットワーク種別および仮想ネットワーク識別ＩＤでの仮想ネットワーク検出パケット送信要求がなされることとなる。
【００７９】
図９は、仮想ネットワーク検出部２５３の応答待ちタイマ満了処理の例を示すフローチャート図である。図８に示したステップ８０４で設定された応答待ちタイマ満了すると、仮想ネットワーク検出部２５３は処理を開始する（ステップ８５０）。応答待ちタイマ満了の情報には、ステップ８０４で設定された仮想ネットワーク種別および仮想ネットワーク識別ＩＤが含まれる。
【００８０】
仮想ネットワーク検出部２５３は、応答待ちタイマ満了の仮想ネットワーク種別および仮想ネットワーク識別ＩＤに対応する仮想ネットワーク検出試行回数を取得する（ステップ８５１）。この仮想ネットワーク検出試行回数は、パケット送受信部２５４へ仮想ネットワーク検出パケットの送信要求を行った際に計数される回数である。そして、取得した仮想ネットワーク検出試行回数と、コンフィグパラメータ４００のパラメータ４０２の「ＤＥＴＥＣＴ＿ＴＩＭＥ」における値４０３に設定された回数の比較を行う（ステップ８５２）。
【００８１】
仮想ネットワーク検出部２５３は、仮想ネットワーク検出試行回数が満了した場合、仮想ネットワーク種別および仮想ネットワーク識別ＩＤとともに仮想ネットワーク検出の失敗を設定する（ステップ８５３）。この設定は、例えば、主記憶装置２０４に確保される検出状況などの記録領域である。
【００８２】
また、仮想ネットワーク検出部２５３は、仮想ネットワーク検出試行回数が満了していない場合、パケット送受信部２５４へ仮想ネットワーク検出パケットの送信を要求し、図１１を用いて後で説明するパケット送受信部２５４の処理となる（ステップ８５４）。この要求には、応答待ちタイマ満了の仮想ネットワーク種別および仮想ネットワーク識別ＩＤが含まれる。そして、ステップ８０４と同様に応答待ちタイマを開始する（ステップ８５５）。
【００８３】
図１０は、仮想ネットワーク検出部２５３の仮想ネットワーク検出応答処理の例を示すフローチャート図である。図８のステップ８０４または図９のステップ８５５にて仮想ネットワーク検出部２５３が応答待ちタイマ開始を開始すると処理を開始し（ステップ９００）、図８のステップ８０３または図９のステップ８５４にて仮想ネットワーク検出部２５３が送信を要求した仮想ネットワーク検出パケットに対する応答である仮想ネットワーク応答通知を受信するか判定する（ステップ９０１）。仮想ネットワーク応答通知を受信するかの判定は、パケットデータ部にＩＣＭＰ−ＲＥＰＲＹが設定されている応答通知を受信するかによって判定する。なお、仮想ネットワーク応答通知には、仮想ネットワーク種別と仮想ネットワーク識別ＩＤが含まれる。
【００８４】
仮想ネットワーク検出部２５３は、仮想ネットワーク応答通知を受信した場合、応答を受信した仮想ネットワークの優先度を取得する（ステップ９０３）。この優先度の取得は、コンフィグパラメータ４００のパラメータ４０２の仮想ネットワーク種別であって、応答通知に含まれる仮想ネットワーク種別と一致するものに対応する値４０３の優先度を取得する。
【００８５】
仮想ネットワーク検出部２５３は、取得した優先度を判定し（ステップ９０４）、取得した優先度すなわち応答を受信した仮想ネットワーク種別の優先度が、最も高い「４」である場合には、その仮想ネットワーク種別が検出結果となる。よって、仮想ネットワーク情報保持部２５２へ検出結果保持要求を行い、仮想ネットワーク情報保持部２５２の処理となる（ステップ９０９）。この検出結果保持要求には、検出結果となった仮想ネットワーク種別、送信先のＩＰアドレス、仮想ネットワーク識別ＩＤが含まれる。
【００８６】
その後、仮想ネットワーク検出部２５３は、検出結果となった仮想ネットワーク種別および仮想ネットワーク識別ＩＤをメイン部２５１へ仮想ネットワーク検出応答通知として通知し（ステップ９１０）、処理を終了する（ステップ９１１）。
【００８７】
仮想ネットワーク検出部２５３は、ステップ９０１で仮想ネットワーク応答通知を受信しない場合、仮想ネットワーク検出の失敗がステップ８５３で設定されているかを判定する（ステップ９０２）。仮想ネットワーク検出部２５３は、仮想ネットワーク検出の失敗が設定されていないと判定した場合、ステップ９０１に戻る。
【００８８】
仮想ネットワーク検出部２５３は、仮想ネットワーク検出の失敗が設定されていたと判定した場合、あるいはステップ９０４で応答を受信した仮想ネットワーク種別の優先度が４以外であると判定した場合、仮想ネットワーク検出状況の一時保持を行う（ステップ９０５）。例えば、ステップ９０１で受信した仮想ネットワーク応答通知の仮想ネットワーク種別および仮想ネットワーク識別ＩＤが蓄積されてもよい。
【００８９】
仮想ネットワーク検出部２５３は、例えば、ステップ８０２で特定した仮想ネットワーク種別および仮想ネットワーク識別ＩＤと、ステップ９０５でそれまでに一時保持された仮想ネットワーク種別および仮想ネットワーク識別ＩＤとを比較し、仮想ネットワーク応答がなく、検出処理を実施中の仮想ネットワーク種別および仮想ネットワーク識別ＩＤがあるかを判定することで仮想ネットワークの検出状態を取得する（ステップ９０６）。そして、その取得した仮想ネットワーク検出状態をもとに仮想ネットワーク検出中か否かを判定する（ステップ９０７）。
【００９０】
仮想ネットワーク検出部２５３は、検出処理中の仮想ネットワーク種別および仮想ネットワーク識別ＩＤがなければ、検出済みの仮想ネットワークの中から検出結果として適用する仮想ネットワーク種別および仮想ネットワーク識別ＩＤを特定する（ステップ９０８）。このために、仮想ネットワーク応答の仮想ネットワーク種別のうち、コンフィグパラメータ４００のパラメータ４０２において一致する仮想ネットワーク種別に対応する値４０３の優先度の高い仮想ネットワーク種別を検出結果とする。
【００９１】
また、仮想ネットワーク検出部２５３は、優先度の同じ複数の仮想ネットワーク種別がある場合、コンフィグパラメータ４００の項番４０１が若い仮想ネットワーク種別を検出結果とする。また、１つの仮想ネットワーク種別において複数の仮想ネットワーク識別ＩＤに対する応答を受信した場合には、先に受信した仮想ネットワーク識別ＩＤを検出結果とする。
【００９２】
仮想ネットワーク検出部２５３は、ステップ９０６で特定した検出結果に基づき、既に説明したステップ９０９〜９１１を実行する。また、ステップ９０７において検出処理中の仮想ネットワーク種別があれば、その仮想ネットワーク種別の検出を待つため、検出結果を特定せずに、ステップ９０１に戻る。
【００９３】
図１１は、パケット送受信部２５４の処理の例を示すフローチャート図である。パケット送受信部２５４は、ＮＩＣ制御部２１１とＮＩＣ２００を経由しての通信装置１００の外部とのパケットの送受信の処理であり、送信と受信があり、送信には仮想ネットワーク検出パケットの送信と図５に示したパケット３０５、３２３などの送信とがある。
【００９４】
例えば図６に示したステップ６０４などでパケット送信要求が行われると、パケット送受信部２５４は、処理を開始し（ステップ１５０）、パケット送受信部２５４が呼び出される際の付加情報から送受信種別を取得し（ステップ１５１）、送受信種別が送信か受信かを判定する（ステップ１５２）。そして、送信の場合は、パケット送受信部２５４が呼び出される際の付加情報から、さらに、送信要求種別の取得を行い（ステップ１５３）、送信要求種別が仮想ネットワーク検出パケット送信要求かパケット送信要求かを判定する（ステップ１５４）。
【００９５】
パケット送受信部２５４は、ステップ１５４の判定結果が仮想ネットワーク検出パケット送信要求すなわち仮想ネットワーク検出パケットを送信することの要求であれば、さらに、仮想ネットワーク検出要求から仮想ネットワーク種別を取得し（ステップ１５５）、取得した仮想ネットワーク種別を判定する（ステップ１５６）。この判定結果の仮想ネットワーク種別に応じて、仮想ネットワーク検出パケットを生成して送信する。
【００９６】
つまり、パケット送受信部２５４は、判定結果の仮想ネットワーク種別がホップバイホップであれば、ホップバイホップ検出用パケットを生成して送信する（ステップ１５７）。また、判定結果の仮想ネットワーク種別がＶＸＬＡＮであれば、ＶＸＬＡＮ検出用パケットを生成して送信する（ステップ１５８）。また、判定結果の仮想ネットワーク種別がＮＶＧＲＥであれば、ＮＶＧＲＥ検出用パケットを生成して送信する（ステップ１５９）。また、判定結果の仮想ネットワーク種別がＳＴＴであれば、ＳＴＴ検出用パケットを生成して送信する（ステップ１６０）。生成される仮想ネットワーク検出パケットについては、図１２を用いて後で説明する。
【００９７】
パケット送受信部２５４は、ステップ１５４の判定結果がパケット送信要求であれば、パケット送信要求３０４に含まれる仮想ネットワーク種別を用いて、パケット送信要求３０４に含まれる仮想ネットワーク識別ＩＤ、送信すべきパケットの送信を行い（ステップ１６１）、メイン部２５１へパケット送信完了通知を行う（ステップ１６２）。
【００９８】
パケット送受信部２５４は、通信装置１００が通信装置３８０からのパケットを受信すると、ＯＳ２０２から順に、通信制御部２１０、仮想ネットワーク通信部２５０を経由して呼び出される。この際、送受信種別（受信）を付加情報として受け取り、ステップ１５２の判定結果で受信と判定され、仮想ネットワーク検出応答受信処理を行い（ステップ１６３）、仮想ネットワーク検出部２５３へ仮想ネットワーク検出パケット応答を通知し（ステップ１６４）、処理を終了する（ステップ１６５）。なお、仮想ネットワーク検出応答受信処理は、ＮＩＣ２００とＮＩＣ制御部２１１を経由したパケットの受信処理である。
【００９９】
図１２は、仮想ネットワーク検出パケットの例を示す図である。図１２の例は、図面の右がパケットの先頭であり、右から先に送信され、ＶＸＬＡＮでの仮想ネットワーク検出パケット２９０の例である。この仮想ネットワーク検出パケット２９０では、以下に説明するように、オリジナルパケット２８０の情報を用いてパケットのオプションを含めることで、より精度の高い仮想ネットワーク検出を行うことができる。
【０１００】
オリジナルパケット２８０は、図５を用いて既に説明したように、送信要求３００に含まれる送信すべきパケットであって、パケット３０５、３２３である。オリジナルパケット２８０は、ＥＴＨＥＲヘッダ２８３、ＩＰヘッダ２８２、パケットデータ部であるＤＡＴＡ２８１から構成され、ＥＴＨＥＲヘッダ２８３にはオプションが含まれてもよい。
【０１０１】
仮想ネットワーク検出パケット２９０は、検出対象となる仮想ネットワーク種別のヘッダ情報２９４に続き、ＥＴＨＥＲヘッダ２９３は、オリジナルパケット２８０のＥＴＨＥＲヘッダ２８３と同じ情報である。オリジナルパケット２８０のＥＴＨＥＲヘッダ２８３にオプションが付与されていれば、それらのオプションも仮想ネットワーク検出パケット２９０に反映される。
【０１０２】
オリジナルパケット２８０のＳｏｕｒｃｅＩＰおよびＤｅｓｔｉｎａｔｉｏｎＩＰが設定されたＩＰヘッダ２８２と同じ情報であるＩＰヘッダ２９２が続き、ＤＡＴＡ２８１として仮想ネットワーク検出パケットのＩＣＭＰ−ＲＥＱＵＥＳＴを示すＩＣＭＰ２９１で構成される。
【０１０３】
検出対象となる仮想ネットワーク種別のヘッダ情報２９４には、パケット生成時に指定される仮想ネットワーク識別ＩＤが設定され、ＩＰヘッダ２８２と同じ情報のＩＰが設定されてもよい。仮想ネットワーク検出パケット２９０は、以上の情報が生成されると、各ヘッダにおいて必要となるデータの再計算、例えば、ＩＰヘッダ２９２のＬｅｎｇｔｈやＣｈｅｃｋｓｕｍなどの再計算が行なわれる。
【０１０４】
図１２の例では、仮想ネットワーク検出パケット２９０として、ＩＰヘッダ２９２およびＩＣＭＰ２９１を示すが、仮想ネットワークの検出が可能であれば、他のプロトコルを用いてもよい。なお、他のオーバーレイであるＮＶＧＲＥ、ＳＴＴにおける仮想ネットワーク検出パケットについても同様なパケットフォーマットである。ホップバイホップについては、カプセル化が不要のため、仮想ネットワーク種別のヘッダ情報２９４が付与されない。
【０１０５】
以上で説明したように、実施例１によれば、通信装置に接続された仮想ネットワークの種類に応じて、通信装置は送信することができるため、通信装置の仮想ネットワークに対する接続性が向上する。特に、仮想ネットワーク検出パケットを実際に送信することにより、通信装置に接続された仮想ネットワークの情報を特定できるため、送信の事前確認にもなる。
【０１０６】
これにより、接続前に収集した仮想ネットワークの情報に含まれる誤りやオペレータの設定のミスなどにより、通信装置が接続できないというトラブルを未然に防ぐことができる。また、使用するネットワーク構成の変更により、適用する仮想ネットワーク方式が変更となった場合においても、通信装置の変更をすることなく、ネットワーク構成の変更に対応することが可能である。
【０１０７】
また、いったん検出した仮想ネットワークの情報は記憶して再利用可能とすることにより、無駄な仮想ネットワーク検出パケットの送信を抑止できる。
【実施例２】
【０１０８】
実施例１では通信装置１００に仮想ネットワーク通信部２５０を有する例を説明したが、実施例２では通信装置１００に仮想ネットワーク通信部２５０を有さず、ＮＷ機器にて異なる仮想ネットワークと通信可能にする例を説明する。
【０１０９】
図１３は、実施例２の通信ネットワークの例を示す図である。図１３に示した通信ネットワークは、通信装置１００の代わりに仮想ネットワーク通信部２５０を有しない通信装置３６０を備え、ＮＷ機器３５０を備える。ＮＷ機器３５０は、一般的なＮＷ機器としてのルーティング部３５１を有し、ルーティング部３５１はルーティングテーブル３５２を含む。ルーティング部３５１は、ＮＷ機器３５０の受信したパケットのルーティング情報を解決するため、受信したパケットに対応するルーティングテーブル３５２のルーティングエントリ番号を特定し、他のＮＷ機器あるいは通信装置へ受信したパケットをルーティングする。
【０１１０】
ＮＷ機器３５０のルーティング部３５１は、さらに、メイン部２５１、仮想ネットワーク情報保持部２５２、パケット送受信部２５４を含む。メイン部２５１は、送信先ＩＰアドレスの代わりにルーティングエントリ番号を処理するものの、実施例１のメイン部２５１の処理と同じである。仮想ネットワーク情報保持部２５２は、仮想ネットワーク情報５００の代わりにネットワーク別仮想ネットワーク情報３５３を使用するものの、実施例１の仮想ネットワーク情報保持部２５２の処理と同じである。パケット送受信部２５４も実施例１で説明した処理と同じである。
【０１１１】
また、通信装置１０３、通信経路１０４、トンネル１０５、およびＮＷ機器１０２−２、１０２−３、１０２−４は、実施例１のそれぞれ同じ符号を付したものと同じであるので、説明を省略する。
【０１１２】
図１４は、ネットワーク別仮想ネットワーク情報３５３の例を示す図である。ネットワーク別仮想ネットワーク情報３５３は、項番５０１、ＲＯＵＴＩＮＧ＿ＥＮＴＲＹ＿ＮＯ４５１、ＶＩＲＴＵＡＬ＿ＮＥＴ５０３、ＶＮＥＴ＿ＩＤ５０４、ＥＸＰＩＲＥ＿ＴＩＭＥ５０５から構成される。ＲＯＵＴＩＮＧ＿ＥＮＴＲＹ＿ＮＯ４５１以外は、仮想ネットワーク情報５００と同じである。
【０１１３】
ＲＯＵＴＩＮＧ＿ＥＮＴＲＹ＿ＮＯ４５１は、ＮＷ機器３５０が保持するルーティングテーブル３５２のルーティングエントリ番号を示し、ルーティングエントリ番号ごとに、適用可能な仮想ネットワーク種別と仮想ネットワーク識別ＩＤを保持する。
【０１１４】
ＮＷ機器３５０が通信装置３６０からパケットを受信すると、パケットを受信したＮＷ機器３５０のルーティング部３５１は、一般的なＮＷ機器のルーティング動作として、受信したパケットに対応するルーティングエントリ番号を特定する。そして、メイン部２５１は、送信先ＩＰアドレスの代わりにルーティングエントリ番号を受け取り、仮想ネットワーク情報保持部２５２へルーティングエントリ番号に基づき検索要求する。仮想ネットワーク情報保持部２５２は、検索要求に含まれるルーティングエントリ番号をネットワーク別仮想ネットワーク情報３５３で検索し、実施例１で説明したように仮想ネットワーク種別と仮想ネットワーク識別ＩＤを特定する。
【０１１５】
仮想ネットワーク情報保持部２５２は、特定した仮想ネットワーク種別と仮想ネットワーク識別ＩＤを検索結果としてメイン部２５１へ渡し、メイン部２５１は、パケット送受信部２５４へパケット送信要求する。
【０１１６】
以上で説明したように、実施例２によれば、通信装置が変更できない場合であっても、ＮＷ機器により仮想ネットワークの種類に応じて通信することができるため、仮想ネットワークに対する接続性が向上する。
【実施例３】
【０１１７】
実施例１では、ホップバイホップ、ＶＸＬＡＮ、ＮＶＧＲＥ、ＳＴＴの４種類の仮想ネットワーク種別を例に説明したが、実施例３ではこの４種類以外の仮想ネットワーク種別をサポートする例を説明する。新たな仮想ネットワーク種別をサポートするためには、コンフィグパラメータ４００のパラメータ４０２に新たな仮想ネットワーク種別が登録され、新たな仮想ネットワーク種別に対応する優先度と必要に応じて識別ＩＤが値４０３に登録され、パケット送受信部２５４のステップ１５６の判定および仮想ネットワーク検出パケット送信処理に新たな仮想ネットワーク種別が追加されればよい。
【０１１８】
以上で説明したように、実施例３によれば、新たな仮想ネットワーク種別が通信ネットワークに加わっても、簡単な登録などにより新たな仮想ネットワークに応じて送信することができるため、仮想ネットワークに対する接続性が向上する。
【実施例４】
【０１１９】
実施例１では、ＯＳ２０２に仮想ネットワーク通信部２５０を含める例を説明したが、実施例４では、ＮＩＣ制御部２１１に仮想ネットワーク通信部２５０を含める例を説明する。仮想ネットワーク通信部２５０の処理は、実施例１で説明したとおりである。
【０１２０】
以上で説明したように、実施例４によれば、ＯＳ２０２を変更することなく、仮想ネットワークの種類に応じて通信することができるため、仮想ネットワークに対する接続性が向上する。また、ＮＩＣ２００の製造メーカがＮＩＣ２００とともに仮想ネットワーク通信部２５０を含むＮＩＣ制御部２１１を提供することが可能になる。
【符号の説明】
【０１２１】
１００  通信装置
２１０  通信制御部
２１１  ＮＩＣ制御部
２５１  メイン部
２５２  仮想ネットワーク情報保持部
２５３  仮想ネットワーク検出部
２５４  パケット送受信部
４００  コンフィグパラメータ
５００  仮想ネットワーク情報
【図１】
2017046211.tif 000003
【図２】
2017046211.tif 000004
【図３】
2017046211.tif 000005
【図４】
2017046211.tif 000006
【図５】
2017046211.tif 000007
【図６】
2017046211.tif 000008
【図７】
2017046211.tif 000009
【図８】
2017046211.tif 000010
【図９】
2017046211.tif 000011
【図１０】
2017046211.tif 000012
【図１１】
2017046211.tif 000013
【図１２】
2017046211.tif 000014
【図１３】
2017046211.tif 000015
【図１４】
2017046211.tif 000016