(57)【要約】【課題】特定ネットワーク上の相手通信機器と通信を行う際に用いるインタフェースを切り替えても、相手通信機器との通信を容易に継続することができる通信装置を提供する。【解決手段】予め定められたリンク層アドレスを記憶するアドレス記憶手段を備え、特定ネットワークを含む複数のネットワークのうちの１つに接続して、接続したネットワークへ、アドレス記憶手段に記憶したリンク層アドレスを送信元アドレスとするフレームを送信するとともに、接続したネットワークから、アドレス記憶手段に記憶したリンク層アドレスを宛先アドレスとするフレームを受信する通信インタフェースを備え、通信インタフェースが特定ネットワークに接続しているとき、通信インタフェースを用いて特定ネットワーク上の通信機器と通信を行うために、当該通信インタフェースのアドレス記憶手段に記憶されているリンク層アドレスを、当該特定ネットワーク上の通信機器と通信を行うための予め定められた特定リンク層アドレスに書き換える。【選択図】図１
2007089019.tif 000002
【特許請求の範囲】
【請求項１】
予め定められたリンク層アドレスを記憶するアドレス記憶手段を備え、特定ネットワークを含む複数のネットワークのうちの１つに接続して、接続したネットワークへ、前記アドレス記憶手段に記憶したリンク層アドレスを送信元アドレスとするフレームを送信するとともに、前記接続したネットワークから、前記アドレス記憶手段に記憶したリンク層アドレスを宛先アドレスとするフレームを受信する通信インタフェースと、
前記特定ネットワーク上の通信機器と通信を行うための予め定められた特定リンク層アドレスを記憶する記憶手段と、
前記通信インタフェースが前記特定ネットワークに接続しているか否かを検知する検知手段と、
前記通信インタフェースが前記特定ネットワークに接続しているとき、当該通信インタフェースを用いて前記特定ネットワーク上の通信機器と通信を行うために、当該通信インタフェースの前記アドレス記憶手段に記憶されているリンク層アドレスを、前記特定リンク層アドレスに書き換える手段と、
を備えたことを特徴とする通信装置。
【請求項２】
予め定められたリンク層アドレスを記憶するアドレス記憶手段を備え、特定ネットワークを含む複数のネットワークのうちの１つに接続して、接続したネットワークへ、前記アドレス記憶手段に記憶したリンク層アドレスを送信元アドレスとするフレームを送信するとともに、前記接続したネットワークから、前記アドレス記憶手段に記憶したリンク層アドレスを宛先アドレスとするフレームを受信する複数の通信インタフェースと、
当該特定ネットワーク上の通信機器と通信を行うための予め定められた特定リンク層アドレスを記憶する第１の記憶手段と、
前記複数の通信インタフェースのうち、前記特定ネットワーク上の通信機器と通信を行うために用いるスレーブインタフェースの元のリンク層アドレスを記憶する第２の記憶手段と、
前記複数の通信インタフェースのうち、前記特定ネットワークに接続している通信インタフェースを検知する検知手段と、
前記特定ネットワークに接続している通信インタフェースのうちの１つを、前記スレーブインタフェースとして選択する選択手段と、
前記選択された通信インタフェースの前記アドレス記憶手段に記憶されているリンク層アドレスを、前記第２の記憶手段に記憶し、当該アドレス記憶手段に記憶されているリンク層アドレスを、前記特定リンク層アドレスに書き換えることにより、当該選択された通信インタフェースを前記スレーブインタフェースに設定する設定手段と、
を備えたことを特徴とする通信装置。
【請求項３】
前記複数の通信インタフェースのうちの１つは、前記アドレス記憶手段に記憶したリンク層アドレスを送信元アドレスとするフレームを含むパケットを生成し、当該パケットを送信するとともに、前記アドレス記憶手段に記憶したリンク層アドレスを宛先アドレスとするフレームを含むパケットを受信するＬ２ＶＰＮ（layer 2 virtual private network）インタフェースであることを特徴とする請求項２記載の通信装置。
【請求項４】
前記複数の通信インタフェースの中から、前記特定ネットワークに接続している通信インタフェースを検知しないとき、前記選択手段は、前記Ｌ２ＶＰＮインタフェースを前記スレーブインタフェースとして選択することを特徴とする請求項３記載の通信装置。
【請求項５】
前記スレーブインタフェースに設定された前記Ｌ２ＶＰＮインタフェースは、前記複数の通信インタフェースのうち前記特定ネットワーク以外のネットワークに接続している前記Ｌ２ＶＰＮインタフェース以外の通信インタフェースを介して、前記パケットを送受信することを特徴とする請求項４記載の通信装置。
【請求項６】
前記選択手段で、現在のスレーブインタフェースとは異なる通信インタフェースを新たなスレーブインタフェースとして選択したとき、
前記設定手段は、現在のスレーブインタフェースの前記アドレス記憶手段に、前記第２の記憶手段に記憶したリンク層アドレスを書き込んだ後に、新たにスレーブインタフェースとして選択された通信インタフェースの前記アドレス記憶手段に記憶されているリンク層アドレスを、前記第２の記憶手段に記憶し、当該アドレス記憶手段に記憶されているリンク層アドレスを、前記特定リンク層アドレスに書き換えることを特徴とする請求項２記載の通信装置。
【請求項７】
前記検知手段は、各通信インタフェースから、前記特定ネットワーク上の予め定められたホスト通信機器を宛先とするＩＣＭＰ（internet control message protocol）／ＩＣＭＰｖ６ ｅｃｈｏリクエストフレームを送信し、予め定められた所定時間内に、前記ホスト通信機器のリンク層アドレスを送信元アドレスとする応答フレームを受信した通信インタフェースを検知することを特徴とする請求項２記載の通信装置。
【請求項８】
前記検知手段は、各通信インタフェースから、ターゲットＩＰアドレスを前記特定ネットワーク上の予め定められたホスト通信機器のＩＰアドレスとするＡＲＰ（address resolution protocol）リクエストフレームを送信し、予め定められた所定時間内に、前記ホスト通信機器のリンク層アドレスを送信元アドレスとする応答フレームを受信した通信インタフェースを検知することを特徴とする請求項２記載の通信装置。
【請求項９】
前記検知手段は、各通信インタフェースから、ターゲットリンク層アドレスを前記特定ネットワーク上の予め定められたホスト通信機器のリンク層アドレスとするＲＡＲＰ(reverse address resolution protocol)リクエストフレームを送信し、予め定められた所定時間内に、前記ホスト通信機器のリンク層アドレスを送信元アドレスとする応答フレームを受信した通信インタフェースを検知することを特徴とする請求項２記載の通信装置。
【請求項１０】
前記検知手段は、各通信インタフェースから、ＤＨＣＰ(dynamic host configuration protocol)  ｄｉｓｃｏｖｅｒフレームを送信し、予め定められた所定時間内に、前記特定ネットワークに対応するネットワークアドレスを有するＩＰｖ４アドレスを含むＤＨＣＰ  ｏｆｆｅｒフレームを受信した通信インタフェースを検知することを特徴とする請求項２記載の通信装置。
【請求項１１】
前記検知手段は、各通信インタフェースから、ＤＨＣＰｖ６(dynamic host configuration protocol for IPv6)  リクエストフレームを送信し、予め定められた所定時間内に、前記特定ネットワークに対応するネットワークアドレスを有するＩＰｖ６アドレスを含むＤＨＣＰｖ６  リプライフレームを受信した通信インタフェースを検知することを特徴とする請求項２記載の通信装置。
【請求項１２】
前記検知手段は、各通信インタフェースから、ＩＣＭＰ（internet control message protocol）ｖ６  ＲＳ（Router Solicitation）フレームを送信し、予め定められた所定時間内に、前記特定ネットワークに対応するＩＰｖ６アドレスのプレフィックスを含むＩＣＭＰｖ６  ＲＡ(Router Advertisement)フレームを受信した通信インタフェースを検知することを特徴とする請求項２記載の通信装置。
【請求項１３】
前記検知手段は、前記特定ネットワークに対応するＩＰｖ６アドレスのプレフィックスを含むＩＣＭＰ（internet control message protocol）ｖ６  ＲＡ(Router Advertisement)フレームを受信した通信インタフェースを検知することを特徴とする請求項２記載の通信装置。
【請求項１４】
前記検知手段は、
前記特定ネットワークに接続している通信インタフェースを検知するまで、前記複数の通信インタフェースを順番に、前記特定ネットワークに接続しているか否かチェックし、
前記特定ネットワークに接続している通信インタフェースを検知したとき、当該最初に検知された通信インタフェースから前記特定ネットワーク内へのマルチキャストフレームを送信し、当該最初に検知された通信インタフェースより順番が後の通信インタフェースのなかから、前記マルチキャストフレームを受信した通信インタフェースを検知する請求項７乃至１２のいずれか１つに記載の通信装置。
【請求項１５】
予め定められたリンク層アドレスを記憶するアドレス記憶手段を備え、特定ネットワークを含む複数のネットワークのうちの１つに接続して、接続したネットワークへ、前記アドレス記憶手段に記憶したリンク層アドレスを送信元アドレスとするフレームを送信するとともに、前記接続したネットワークから、前記アドレス記憶手段に記憶したリンク層アドレスを宛先アドレスとするフレームを受信する通信インタフェースを備えた通信装置における前記特定ネットワークへのアクセス方法であって、
当該特定ネットワーク上の通信機器と通信を行うための予め定められた特定リンク層アドレスを記憶手段に記憶するステップと、
前記通信インタフェースが前記特定ネットワークに接続しているか否かを検知する検知ステップと、
前記通信インタフェースが前記特定ネットワークに接続しているとき、当該通信インタフェースを用いて前記特定ネットワーク上の通信機器と通信を行うために、当該通信インタフェースの前記アドレス記憶手段に記憶されているリンク層アドレスを、前記特定リンク層アドレスに書き換えるステップと、
を有することを特徴とするアクセス方法。
【請求項１６】
予め定められたリンク層アドレスを記憶するアドレス記憶手段を備え、特定ネットワークを含む複数のネットワークのうちの１つに接続して、接続したネットワークへ、前記アドレス記憶手段に記憶したリンク層アドレスを送信元アドレスとするフレームを送信するとともに、前記接続したネットワークから、前記アドレス記憶手段に記憶したリンク層アドレスを宛先アドレスとするフレームを受信する複数の通信インタフェースを備えた通信装置における前記特定ネットワークへのアクセス方法であって、
前記特定ネットワーク上の通信機器と通信を行うための予め定められた特定リンク層アドレスを第１の記憶手段に記憶するステップと、
前記複数の通信インタフェースのうち、前記特定ネットワークに接続している通信インタフェースを検知する検知ステップと、
前記特定ネットワークに接続している通信インタフェースのうちの１つを、前記特定ネットワーク上の通信機器と通信を行うために用いるスレーブインタフェースとして選択する選択ステップと、
前記選択された通信インタフェースの前記アドレス記憶手段に記憶されているリンク層アドレスを第２の記憶手段に記憶し、当該アドレス記憶手段に記憶されているリンク層アドレスを、前記特定リンク層アドレスに書き換えることにより、当該選択された通信インタフェースを前記スレーブインタフェースに設定する設定ステップと、
を有するアクセス方法。
【請求項１７】
前記スレーブインタフェースが、当該スレーブインタフェースの前記アドレス記憶手段に記憶したリンク層アドレスを送信元アドレスとするフレームを、前記特定ネットワークへ送信する送信ステップと、
前記スレーブインタフェースが、前記アドレス記憶手段に記憶したリンク層アドレスを宛先アドレスとするフレームを受信する受信ステップと、
をさらに有する請求項１６記載のアクセス方法。
【請求項１８】
前記複数の通信インタフェースのうちの１つは、前記アドレス記憶手段に記憶したリンク層アドレスを送信元アドレスとするフレームを含むパケットを生成し、当該パケットを送信するとともに、前記アドレス記憶手段に記憶したリンク層アドレスを宛先アドレスとするフレームを含むパケットを受信するＬ２ＶＰＮ（layer 2 virtual private network）インタフェースであることを特徴とする請求項１６記載のアクセス方法。
【請求項１９】
前記複数の通信インタフェースの中から、前記特定ネットワークに接続している通信インタフェースを検知しないとき、前記選択ステップは、前記Ｌ２ＶＰＮインタフェースを前記スレーブインタフェースとして選択することを特徴とする請求項１８記載のアクセス方法。
【請求項２０】
前記スレーブインタフェースに設定された前記Ｌ２ＶＰＮインタフェースは、前記複数の通信インタフェースのうち前記特定ネットワーク以外のネットワークに接続している前記Ｌ２ＶＰＮインタフェース以外の通信インタフェースを介して、前記パケットを送受信することを特徴とする請求項１９記載のアクセス方法。
【請求項２１】
前記選択ステップで、現在のスレーブインタフェースとは異なる通信インタフェースを新たなスレーブインタフェースとして選択したとき、
前記設定ステップは、現在のスレーブインタフェースの前記アドレス記憶手段に、前記第２の記憶手段に記憶したリンク層アドレスを書き込んだ後に、新たにスレーブインタフェースとして選択された通信インタフェースの前記アドレス記憶手段に記憶されているリンク層アドレスを、前記第２の記憶手段に記憶し、当該アドレス記憶手段に記憶されているリンク層アドレスを、前記特定リンク層アドレスに書き換えることを特徴とする請求項１６記載のアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のネットワークに接続して通信可能な通信装置に関する。
【背景技術】
【０００２】
通信ネットワークの分野では、ＩＴＵ−ＴとＩＳＯが共同で定めたＯＳＩ基本参照モデルを基に通信プロトコルが規定されている。
【０００３】
そのＯＳＩ基本参照モデルは、通信プロトコルを７つの層（物理層(Ｌ１)・データリンク層（Ｌ２）・ネットワーク層（Ｌ３）・トランスポート層（Ｌ４）・セッション層（Ｌ５）・プレゼンテーション層（Ｌ６）・アプリケーション層（Ｌ７）で規定している。
【０００４】
オフィスや家庭などで広く使われている物理層及びリンク層の通信方式の代表的なものとして、イーサネット（登録商標）や無線ＬＡＮが挙げられる。通信装置が持つインタフェースには、固有のアドレスであるリンク層アドレスが割り当てられている。イーサネット（登録商標）に代表される有線ネットワーク及び無線ＬＡＮは、ネットワーク層のパケットをリンク層フレームにカプセル化し、通信回線上にて送受信を行う。
【０００５】
ＩＰｖ６（internet protocol version 6）とは、現在インターネットにて広く使われているＩＰｖ４（internet protocol version 4）の後継プロトコルである。ＩＰｖ６アドレスは、１２８ビットで表現され、ネットワークを識別するために使用される上位６４ビット（プレフィックス）と、端末を識別するために使用される下位６４ビット（インタフェースＩＤ）から成る。
【０００６】
ＩＰｖ６では、ＩＰアドレスを自動的に設定することができる自動構成という機能を持つ。自動構成はさらにステートフルな自動構成とステートレスな自動構成の２つに分類される。ステートフルな自動構成とは、ＩＰｖ４でのＩＰアドレス自動設定技術であるＤＨＣＰ（dynamic host configuration protocol）のＩＰｖ６版であるＤＨＣＰｖ６という技術を用いて、ホストはＤＨＣＰｖ６サーバからＩＰｖ６アドレスを取得する方法である。また、ステートレスな自動構成とは、まず下位６４ビットのインタフェースＩＤをインタフェースのＭＡＣアドレスから生成し、ＤＡＤ（duplicate address detection）によってサブネット内で重複が無いか確認する。そして、ＩＰｖ６ルータが配信するＲＡ（Ｒｏｕｔｅｒ  Ａｄｖｅｒｔｉｓｅｍｅｎｔ）メッセージを受信し、メッセージ内に載っているプレフィックスを取得する。このプレフィックスとインタフェースＩＤを組み合わせて、インタフェースのＩＰアドレスを構成する。
【０００７】
Ｍｏｂｉｌｅ  ＩＰ（mobile internet protocol）は、異なるネットワーク間を端末が移動しても、同じＩＰアドレスを使用してＩＰ通信を継続することができる技術として知られていて、ＩＥＴＦ（インターネット・エンジニアリング・タスク・フォース）が発行するＲＦＣ（リクエスト・フォー・コメント）２００２及びＲＦＣ３２２０（非特許文献１参照）によって規定されている。
【０００８】
このＭｏｂｉｌｅ  ＩＰ技術を実施するためには、移動元のサブネットにて端末の移動先の管理とデータパケットの中継を行う「ホームエージェント」と、移動先のサブネットにて端末の現在位置をホームエージェントに伝え、データパケットを転送する「フォーリンエージェント」などの機器を使用する。このため、Ｍｏｂｉｌｅ  ＩＰを実施するためには、端末がＭｏｂｉｌｅ  ＩＰプロトコルに対応するだけでなく、移動元・移動先共にＭｏｂｉｌｅ  ＩＰ対応のエージェントが動作している必要がある。
【０００９】
Ｍｏｂｉｌｅ  ＩＰｖ６（モバイルアイピーブイ６）は、Ｍｏｂｉｌｅ  ＩＰのＩＰｖ６版で、主な相違点としてフォーリンエージェントが廃止された点が挙げられる。これにより、移動先のネットワークにフォーリンエージェントが動作していなくても、ホームエージェントを介した通信が可能となる。ＩＥＴＦでは現在標準化作業が進められている。
【００１０】
Ｍｏｂｉｌｅ  ＩＰやＭｏｂｉｌｅ  ＩＰｖ６では、ＩＰパケットを遠隔まで転送することを特徴としているため、ＩＰプロトコル以外のパケットを転送することができず、ＩＰ以外の代表的なプロトコルであるＡＲＰやＡｐｐｌｅＴａｌｋ（登録商標），ＮｅｔＢＩＯＳ等のプロトコルでの通信ができない。このため、Ｍｏｂｉｌｅ  ＩＰ並びにＭｏｂｉｌｅ  ＩＰｖ６は、遠隔から同一サブネットでの通信を行うことは不可能である。
【００１１】
ＶＰＮ（virtual private network）とは、既存のネットワークにオーバーレイな仮想ネットワークを構築する技術である。ＩＰパケットを、実ネットワークのＩＰパケットに格納する「カプセル化」を行うことにより、実ネットワーク上に仮想的なネットワークを構築することが可能である。しかし、ＩＰパケットをカプセル化して転送する形態のＶＰＮ（これをＩＰ−ＶＰＮと呼ぶ）は、Ｍｏｂｉｌｅ  ＩＰと同様に、ＩＰ以外のプロトコルを用いたパケットを扱うことができないうえ、ブロードキャストやマルチキャスト通信を扱う際に特別な配慮が必要になる。
【００１２】
Ｌａｙｅｒ２  ＶＰＮ（layer 2 virtual private network、略してＬ２ＶＰＮ）とは、イーサネット（登録商標）等のリンク層フレームをＩＰパケット内にカプセル化して転送する技術で、Ｌａｙｅｒ２とは、ＯＳＩ基本参照モデルでのデータリンク層を表している。
【００１３】
実際のネットワーク回線を介して、遠隔のネットワークまたはホスト間で仮想のイーサネット（登録商標）接続を可能にするものであるため、それらが同じＩＰサブネットで接続することが可能になる。また、ＩＰ以外のプロトコルを使用したパケットを扱うことが可能であるため、ＡＲＰやＡｐｐｌｅＴａｌｋ（登録商標），ＮｅｔＢＩＯＳのようなＩＰ以外のプロトコルでの通信も可能になる。従って、例えば職場や宅内のネットワークに接続された機器等へ、あたかも職場や宅内にいるかのように遠隔からアクセスすることが可能になる。
【００１４】
このように、Ｌ２ＶＰＮ技術は遠隔から宅内や職場等のネットワークに、同一サブネットでアクセスできる技術として知られている。しかし、通信端末が異なるネットワーク間を移動する場合は、その都度Ｌ２ＶＰＮの接続と切断を繰り返すことになる。このような場合、Ｌ２ＶＰＮのインタフェースが有効化と無効化を繰り返し、その度にＯＳのルーティングテーブルに影響が出る。このような端末上でアプリケーションが通信を行っていると、アプリケーションの通信に影響が出る可能性がある。
【００１５】
ＯＳ（オペレーティングシステム）に搭載されているＡＰＩ（アプリケーション・プログラム・インタフェース）を使用して、通信機器に搭載されているネットワークインタフェースの状態を検知することができる。インタフェースの状態としては、イーサネット（登録商標）ケーブルが接続されているか（キャリア・センス）や、ＯＳ上でインタフェースが有効であるか否か、インタフェースの生成・消滅のようなものが挙げられる。ソフトウェアがＯＳに対して問合せをし、返答を得るという方法で取得するＡＰＩや、状態の変化をＯＳが検出して随時ソフトウェアに報知するＡＰＩが知られている。
【００１６】
ＩＰｖ６ネットワークのリンク層（Ｌ２）やネットワーク層（Ｌ３）に関する情報を取得する方法が、ＤＮＡ（detecting network attachment）というＩＥＴＦのワーキンググループによって議論されており、ＩＰｖ６ルータがＲＡを配布する際に、ＲＡメッセージの情報から接続サブネットを識別する方式などが検討されている。
【００１７】
同一サブネット内で異なるネットワークアクセス技術（以下、「リンク」と表記）を切り替えながら通信を継続するための方法が考案されている。
【００１８】
一つ目の例は、ネットワークアプリケーションが通信する際に、実際のネットワークインタフェースを切り替ながら使うかわりに、代表する１つの仮想ネットワークインタフェースを通信に使うという方法（特許文献１参照）がある。アプリケーションは常に代表する仮想アンカー・アダプタ・ドライバを通じて通信を行う。実際のネットワーク・アダプタがネットワークフレームを受信した際は、そのフレームのリンク層アドレスを仮想アンカー・アダプタ・ドライバのリンク層アドレスに書き換えて、仮想アンカー・アダプタ・ドライバに転送する。仮想アンカー・アダプタ・ドライバからネットワークフレームを送信する際は、そのフレームのリンク層アドレスを実際のネットワーク・アダプタのリンク層アドレスに書き換えて、実際のネットワーク・アダプタから送信される。
【００１９】
実際のネットワーク・アダプタのリンク層アドレスはアダプタ毎に異なっているため、リンクが切り替わると、ノードのＩＰアドレスに対応するリンク層アドレスが変化することになる。
【００２０】
二つ目の例として、ノードのＩＰアドレスを、異なるネットワーク・アダプタのリンク層アドレスに動的に結合させることでリンク切替を行うという方法（特許文献２参照）である。優先すべきネットワーク・アダプタを選択し、ノードのＩＰアドレスを優先アダプタのリンク層アドレスに対応付ける。優先アダプタが変化した場合は、ＩＰアドレスに対応づけられるリンク層アドレスを変更することでリンクを切替えることができる。一つ目の例と同様に、実際のネットワーク・アダプタのリンク層アドレスはアダプタ毎に異なっているため、リンク切替時にノードのＩＰアドレスに対応するリンク層アドレスが変化することになる。
【００２１】
特許文献１記載の技術では、フレームの送受信する際に、受信フレームの宛先リンク層アドレス、送信フレームの送信元リンク層アドレスを書き替える必要があり、フレーム処理に負荷がかかるという問題点がある。
【００２２】
また、特許文献１並びに特許文献２記載の技術では、インタフェース切り替え時に、ＩＰアドレスに対するリンク層アドレスが変わるため、通信相手が保持しているＩＰアドレスとリンク層アドレスの対応関係（ＡＲＰテーブル）を変更させなければ、通信が継続できないという問題があった。
【００２３】
さらに、特許文献１並びに特許文献２記載の技術は、同一サブネットに接続されたインタフェース同士を切り替えることを原則としているため、遠隔からのアクセスについては十分考慮されていないという問題もある。
【特許文献１】特開２００１−１２７８２２号公報
【特許文献２】特開２００３−３３３０８０号公報
【非特許文献１】ＩＥＴＦ編集「ＲＦＣ２００２」「ＲＦＣ３２２０」
【発明の開示】
【発明が解決しようとする課題】
【００２４】
以上説明したように、従来は、複数のインタフェースを備え、複数のネットワークに接続して通信可能な通信装置が、ある特定ネットワーク上の通信機器と通信を行う際に用いるインタフェースを切り替える場合、当該通信装置は変わらないにもかかわらず、当該通信装置が備えるインタフェース毎にリンク層アドレスが異なるため、当該通信装置では、送受信フレーム中の宛先アドレスや送信元アドレスの書き換えを行うか、当該特定ネットワーク上の通信相手は、ＩＰアドレスとリンク層アドレスの対応関係（ＡＲＰテーブル）を変更しなければ、通信を継続することができないという問題点があった。
【００２５】
さらに、従来の技術では、前記通信装置が具備する複数のインタフェースのうち、どのインタフェースが特定ネットワークに接続しているかを認識することができないため、当該複数のインタフェースが、特定ネットワークと、特定ネットワーク以外のネットワークに接続している場合、特定ネットワーク上の通信相手との通信に使うインタフェースを選択することができず、通信を継続することができないという問題があった。
【００２６】
そこで、本発明は、上記問題点に鑑み、複数のネットワークに接続して通信可能な通信装置が、ある特定ネットワークに接続しているインタフェースを認識することができ、ある特定ネットワーク上の相手通信機器と通信を行う際に用いるインタフェースを切り替えても、送受信フレーム中のアドレスの書き換え、相手通信機器におけるＩＰアドレスとリンク層アドレスの対応関係の変更を行うことなく、容易に当該特定ネットワーク上の相手通信機器との通信を継続することができる通信装置及び当該特定ネットワークへのアクセス方法を提供することを目的とする。
【課題を解決するための手段】
【００２７】
（１）本発明の通信装置は、予め定められたリンク層アドレスを記憶するアドレス記憶手段を備え、特定ネットワークを含む複数のネットワークのうちの１つに接続して、接続したネットワークへ、前記アドレス記憶手段に記憶したリンク層アドレスを送信元アドレスとするフレームを送信するとともに、前記接続したネットワークから、前記アドレス記憶手段に記憶したリンク層アドレスを宛先アドレスとするフレームを受信する通信インタフェースと、当該特定ネットワーク上の通信機器と通信を行うための予め定められた特定リンク層アドレスを記憶する記憶手段とを備え、前記通信インタフェースが前記特定ネットワークに接続しているとき、当該通信インタフェースを用いて前記特定ネットワーク上の通信機器と通信を行うために、当該通信インタフェースの前記アドレス記憶手段に記憶されているリンク層アドレスを、前記特定リンク層アドレスに書き換える。
【００２８】
（２）本発明の通信装置は、予め定められたリンク層アドレスを記憶するアドレス記憶手段を備え、特定ネットワークを含む複数のネットワークのうちの１つに接続して、接続したネットワークへ、前記アドレス記憶手段に記憶したリンク層アドレスを送信元アドレスとするフレームを送信するとともに、前記接続したネットワークから、前記アドレス記憶手段に記憶したリンク層アドレスを宛先アドレスとするフレームを受信する複数の通信インタフェースと、当該特定ネットワーク上の通信機器と通信を行うための予め定められた特定リンク層アドレスを記憶する第１の記憶手段と、前記複数の通信インタフェースのうち、前記特定ネットワーク上の通信機器と通信を行うために用いるスレーブインタフェースの元のリンク層アドレスを記憶する第２の記憶手段とを備え、（ａ）前記複数の通信インタフェースのうち、前記特定ネットワークに接続している通信インタフェースを検知し、（ｂ）前記特定ネットワークに接続している通信インタフェースのうちの１つを、前記スレーブインタフェースとして選択し、（ｃ）前記選択された通信インタフェースの前記アドレス記憶手段に記憶されているリンク層アドレスを、前記第２の記憶手段に記憶し、当該アドレス記憶手段に記憶されているリンク層アドレスを、前記特定リンク層アドレスに書き換えることにより、当該選択された通信インタフェースを前記スレーブインタフェースに設定する。
【発明の効果】
【００２９】
本発明によれば、複数のネットワークに接続して通信可能な通信装置が、ある特定ネットワーク上の相手通信機器と通信を行う際に用いるインタフェースを切り替えても、容易に当該特定ネットワーク上の相手通信機器との通信を継続することができる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の実施形態について図面を参照して説明する。
【００３１】
図１は、２つのネットワークインタフェースを有する通信装置１００の構成例を示したものである。ここでは、これら２つのネットワークインタフェースを第１のインタフェース１０６、第２のインタフェース１０８とする。
【００３２】
図１では、通信装置１００は、２つのサブネット（ホームサブネット１１３とリモートサブネット１１４）のうち、第１のインタフェース１０６を介してホームサブネット１１３に接続している場合を示している。
【００３３】
ホームサブネット１１３は、通信装置１００のホームネットインタフェース部１０２が接続する必要のあるネットワーク（例えば、宅内や職場のサブネット等）のことである。すなわち、ホームサブネット１１３は、ホームネットインタフェース部１０２に対し、予め定められたネットワークである。
【００３４】
リモートサブネット１１４は、ホームサブネット１１３以外のネットワークである。
【００３５】
ホームサブネット１１３とリモートサブネット１１４の物理レイヤ、データリンクレイヤなどの仕様は、同一であってもよいし、異なっていてもよい。
【００３６】
通信装置１００は、アプリケーション１０１、第１及び第２のインタフェース１０６，１０８の他に、Ｌ２ＶＰＮインタフェース１２０，ホームネットインタフェース部１０２、ホームネットインタフェースコントローラ（以下、簡単にコントローラと呼ぶことがある）１１５を備える。
【００３７】
第１の及び第２のインタフェース１０６、１０８は、イーサネット（登録商標）などの有線ネットワークインタフェースや無線ネットワークインタフェースである。
【００３８】
ホームネットインタフェース部１０２は、アプリケーション１０１がホームサブネット１１３と通信する際に用いる仮想ネットワークインタフェースである。
【００３９】
ホームネットインタフェース部１０２は、アプリケーション１０１がホームネットインタフェース部１０２を介してホームサブネット１１３上の通信機器と通信を行う際に用いるＩＰアドレスを記憶するＩＰアドレス記憶部１０３、ホームネットインタフェース部１０２のリンク層アドレス（ここでは、「ＨＮＩＦ」）を記憶する第１のリンク層アドレス記憶部１０４、通信装置１００が備える各インタフェース（ここでは、第１のインタフェース１０６，第２のインタフェース１０８、Ｌ２ＶＰＮインタフェース１２０）のうち、スレーブ化したインタフェースのリンク層アドレスを記憶する第２のリンク層アドレス記憶部１０５を有する。
【００４０】
なお、ＩＰアドレス記憶部１０３に記憶されているＩＰアドレスは、予め静的に割り当てられたＩＰアドレスか、自動構成によって設定されたＩＰアドレスか、ホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」に対応して、ＤＨＣＰを用いるなどして取得したＩＰアドレスである。
【００４１】
ホームネットインタフェース部１０２は、ホームサブネット１１３に接続しているインタフェース（図１では、第１のインタフェース１０６）を通じて、ホームサブネット１１３上の通信機器とデータフレームのやり取りを行う。これにより、アプリケーション１０１はホームネットインタフェース部１０２を通じて、ホームサブネット１１３とフレームの送受信を行うことが可能になる。
【００４２】
ホームネットインタフェース部１０２がホームサブネット１１３上の通信機器との通信に使用するネットワークインタフェースを「スレーブインタフェース」と呼ぶ。ホームネットインタフェース部１０２が、通信装置１００が持ついずれかのインタフェースを、ホームサブネット１１３との間での通信に利用できるように設定することを「スレーブ化」と呼ぶことにする。
【００４３】
図１において、現在、ホームネットインタフェース部１０２のスレーブインタフェースである第１のインタフェース１０６が、ホームネットインタフェース部１０２とホームサブネット１１３を介してリンク層フレームを配送する際には、データフレームのリンク層ヘッダのみを参照し、ネットワーク層のヘッダを参照する必要がない。そのため、スレーブ化された第１のインタフェース１０６にＩＰアドレスを設定する必要はない。
【００４４】
ホームネットインタフェース部１０２は、仮想ネットワークインタフェースであるため、ホームネットインタフェース部１０２の初期設定時に、ホームネットインタフェース部１０２が使用するリンク層アドレスを決定する必要がある。
【００４５】
ホームネットインタフェース部１０２のリンク層アドレスの決定方法としては複数考えられるが、ここではそのうちのいくつかを例にとり説明する。
【００４６】
１つ目の方法は、設定ファイルや設定ツールを用いて、アドレスを静的に決める方法である。予め定められたリンク層アドレスを記憶媒体に記録しておき、ホームネットインタフェース部１０２の機能を実現するためのソフトウェアの起動時にその記憶媒体から、ホームネットインタフェース部１０２で使用するリンク層アドレスを読み出し、ホームネットインタフェース１０２部の第１のリンク層アドレス記憶部１０４に記憶する。
【００４７】
２つ目の方法は、通信装置１００が持つネットワークインタフェースのリンク層アドレスを利用する方法である。ホームネットインタフェース部１０２が最初にスレーブ化したネットワークインタフェースのリンク層アドレスを、ホームネットインタフェース部１０２に初期設定する。すなわち、当該リンク層アドレスを第２のリンク層アドレス記憶部１０４に記憶する。以後スレーブのネットワークインタフェースを変更してもホームネットインタフェース部１０２はそのリンク層アドレスをそのままホームネットインタフェース部１０２のリンク層アドレスとして使用する。なお、初期設定以後にリンク層アドレス記憶部１０４のリンク層アドレスを変更することも可能である。
【００４８】
次に、アプリケーション１０１とネットワークとの間でのデータフレーム送受信について図１及び図２を参照して説明する。
【００４９】
アプリケーション１０１からホームネットインタフェース部１０２に入力された送信フレームは、現在、ホームネットインタフェース部１０２のスレーブインタフェースに設定されている第１のインタフェース１０６に転送され、ホームサブネット１１３に送信される。
【００５０】
図２において、スレーブインタフェース（ここでは、第１のインタフェース１０６）が、ホームサブネット１１３からのフレームを受信すると（ステップＳ１）、第１のインタフェース１０６は、ホームサブネット１１３から受信したフレームを、ホームネットインタフェース部１０２に転送するか否かを、２つの条件に従って決定する。
【００５１】
ここで、スレーブインタフェースは、受信したフレームを全て、ホームネットインタフェース部１０２に転送する無差別モード（プロミスキャスモード）と、受信したフレームの宛先リンク層アドレスが、当該スレーブインタフェースのアドレス（つまりここでは、後述するように、ホームネットインタフェース部１０２のリンク層アドレス）、マルチキャストアドレス及びブロードキャストアドレスであるフレームのみをホームネットインタフェース部１０２に転送する、無差別モードでない通常の動作モードのいずれか一方に設定されているものとする。
【００５２】
第１のインタフェース１０６が無差別モード（プロミスキャスモード）に設定されている場合には（ステップＳ２）、受信したフレームは、全て、ホームネットインタフェース部１０２に転送する（ステップＳ４）。
【００５３】
第１のインタフェース部１０２が無差別モードに設定されていると、ホームネットインタフェース部１０２で受信する必要のない、ホームネットインタフェース部１０２宛でないユニキャストフレーム（マルチキャストやブロードキャスト宛でないフレーム）も受信してしまうことになり、必要の無いフレームを処理する負荷が通信装置１００に掛かってしまうという欠点がある。
【００５４】
第１のインタフェース１０６が、上記無差別モードに設定されていない場合には（ステップＳ３）、ホームネットインタフェース部１０２宛でないユニキャストフレームは破棄し、ホームネットインタフェース部１０２宛てのユニキャストフレーム、マルチキャストアドレス及びブロードキャストアドレスのフレームは、ホームネットインタフェース部１０２に転送する（ステップＳ４）。
【００５５】
スレーブインタフェースのリンク層アドレスをホームネットインタフェース部１０２のリンク層アドレスに変更することにより、スレーブインタフェースを無差別モードに設定しなくても、当該スレーブインタフェースのアドレス（つまりここでは、ホームネットインタフェース部１０２のリンク層アドレス）、マルチキャストアドレス及びブロードキャストアドレスであるフレームを、ホームネットインタフェースに転送させ、それ以外のフレームを破棄させることができる。不要なフレームをスレーブインタフェースに破棄させることにより、スレーブインタフェースからホームネットインタフェース部１０２へのフレーム転送の負荷や、ホームネットインタフェース部１０２でのフレーム受信処理の負荷を軽減することが可能になる。
【００５６】
次に、スレーブインタフェースを変更する際の処理手順について説明する。
【００５７】
図３は、ホームネットインタフェース部１０２にスレーブ化されているインタフェースと各インタフェースのリンク層アドレスの関係を示すテーブルである。
【００５８】
図３（ｃ）は、通信装置１００のインタフェース１０６、１０８のいずれもスレーブインタフェースとして設定されていない場合を示している。この場合には、ホームネットインタフェース部１０２のリンク層アドレスは、当該ホームネットインタフェース部１０２に予め定められた（あるいは上述のように設定された）リンク層アドレス「ＨＮＩＦ」であり、このリンク層アドレス「ＨＮＩＦ」が第１のリンク層アドレス記憶部１０４に記憶されている。また、スレーブインタフェースが存在しないことから、第２のリンク層アドレス記憶部１０５には、何も記憶されていない。
【００５９】
第１のインタフェース１０６のリンク層アドレスは、当該第１のインタフェースに予め定められているリンク層アドレス「ＩＦ１」であり、このリンク層アドレス「ＩＦ１」がリンク層アドレス記憶部１０７に記憶されている。
【００６０】
第２のインタフェース１０８のリンク層アドレスは、当該第２のインタフェースに予め定められているリンク層アドレス「ＩＦ２」であり、このリンク層アドレス「ＩＦ２」がリンク層アドレス記憶部１０９に記憶されている。
【００６１】
図３（ａ）は、第１のインタフェース１０６がスレーブ化されている場合を示している。スレーブインタフェースである第１のインタフェース１０６のリンク層アドレス記憶部１０７は、ホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」で上書きされている。第１のインタフェース１０６のスレーブ化される前の、もともとのリンク層アドレス「ＩＦ１」は、ホームネットインタフェース部１０２の第２のリンク層アドレス記憶部１０５に記憶される。
【００６２】
図３（ｂ）は、第２のインタフェース１０８がスレーブ化されている場合を示している。図３（ａ）と同様に、スレーブインタフェースである第２のインタフェース１０８のリンク層アドレス記憶部１０９は、ホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」で上書きされている。また、第２のインタフェース１０８のスレーブ化される前の、もともとのリンク層アドレス「ＩＦ２」は、ホームネットインタフェース部１０２の第２のリンク層アドレス記憶部１０５に記憶される。
【００６３】
スレーブインタフェースを切替える際の処理手順について説明する。ここでは、スレーブインタフェースを第１のインタフェース１０６から第２のインタフェース１０８に切替える場合を例にとり説明する。
【００６４】
まず、第１のインタフェース１０６のリンク層アドレス記憶部１０７に、第１のインタフェース１０６のスレーブ化前のアドレス「ＩＦ１」を書き込む。次に、スレーブ化される第２のインタフェース１０８のリンク層アドレス記憶部１０９に記憶されているアドレス「ＩＦ２」を、ホームネットインタフェース１０２の第２のリンク層アドレス記憶部１０５に記憶する。そして、ホームネットインタフェース１０２の第１のリンク層アドレス１０４に記憶されているアドレス「ＨＮＩＦ」をスレーブインタフェースである第２のインタフェース１０８のリンク層アドレス記憶部１０９に書き込む。
【００６５】
この結果、図３（ａ）に対応する状態から図３（ｂ）に対応する状態へと移行した。
【００６６】
ホームネットインタフェース部１０２・スレーブインタフェース間では、全ての送受信フレームをそのまま転送する。ホームネットインタフェース部１０２とスレーブインタフェースのリンク層アドレスは同じアドレスになっているため、転送するフレームのアドレスの書換え等を行う必要はない。
【００６７】
スレーブインタフェースを変更する際に、変更前と変更後の各インタフェースのリンク層アドレスが変更されるため、その変更をスイッチに知らせ、スイッチのＦＤＢ（フォワーディングデータベース）を更新させる。ＦＤＢは、スイッチがどのポートにどの宛先アドレスのフレームを転送するかを示す情報を記憶する。
【００６８】
スイッチに対してＦＤＢを更新させるための方法として、スレーブ化されたインタフェースが、無償ＡＲＰ（ｇｒａｔｕｉｔｏｕｓ  ＡＲＰ）要求などの、送信元リンク層アドレスとしてホームネットインタフェース部１０２のアドレス「ＨＮＩＦ」を有するフレームをブロードキャストする方法がある。
【００６９】
インタフェースのリンク層アドレスと、スイッチ２００のフォワーディングデータベース（ＦＤＢ）との関係について、図４及び図５を参照して説明する。
【００７０】
図４は、通信装置１００の第１のインタフェース１０６がスイッチ２００の第１のポート２０１に接続されている様子を示している。また、第１のＦＤＢ２１１は、第１のポート２０１に対応するＦＤＢであり、第１のポート２０１に転送すべきフレームの宛先アドレスを記憶する。
【００７１】
図５は、第１のインタフェース１０６が、ホームネットインタフェース部１０２にスレーブ化される際の、リンク層アドレス、及びスイッチ２００の第１のＦＤＢ２１１の状態を示している。
【００７２】
まず、第１のインタフェース１０６が、図５（ａ）の状態から、ホームネットインタフェース部１０２にスレーブ化されると、第１のインタフェース１０６のリンク層アドレス「ＩＦ１」がホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」に変更され、図５（ｂ）に示す状態に移る。
【００７３】
しかし、スイッチ２００の第１のポート２０１に対応する第１のＦＤＢ２１１は、変更前の第１のインタフェース１０６のリンク層アドレス「ＩＦ１」のままであるため、ホームネットインタフェース部１０２のリンク層アドレスを宛先とするデータフレームは、第１のポート２０１には転送されない。
【００７４】
そこで、第１のインタフェース１０６のリンク層アドレスの変化をスイッチ２００の第１のポート２０１に知らせるため、第１のインタフェース１０６は、無償ＡＲＰ（ｇｒａｔｕｉｔｏｕｓ  ＡＲＰ）等の、送信元リンク層アドレスが変更後の「ＨＮＩＦ」であるフレームを、スイッチ２００の第１のポート２０１に送信する。これにより、第１のポート２０１に対応する第１のＦＤＢ２１１に、変更後のアドレス「ＨＮＩＦ」が登録され、図５（ｃ）の状態へと移行する。
【００７５】
第１のポート２０１の第１のＦＤＢ２１１に、変更後のリンク層アドレスが登録されたことにより、スイッチ２００は、ホームネットインタフェース部１０２宛のフレームを第１のポート２０１に転送するようになり、第１のインタフェース１０６はホームネットインタフェース部１０２宛のフレームを受信できるようになる。
【００７６】
このように、インタフェースのリンク層アドレスが変化する場合や、インタフェースが接続しているスイッチやポートが変わる場合などに、通信装置１００が無償ＡＲＰ等のフレームを能動的に送信することで、スイッチのフォワーディングデータベース（ＦＤＢ）の更新を早めることが可能である。
【００７７】
但し、これはあくまでスイッチのフォワーディングデータベースを更新するための処理であり、通信相手ホストのＡＲＰテーブル等スイッチ以外の通信機器のデータベースを変更させるものではない。
【００７８】
本実施形態では、ホームネットインタフェース部１０２のリンク層アドレスは変更しないため、インタフェース切り替え時に、ＩＰアドレスとリンク層アドレスの対応は変化せず、通信相手のホストのＡＲＰテーブルを変更させる必要性は生じないことは前述の通りである。
【００７９】
ホームネットインタフェースコントローラ（簡単に、コントローラと呼ぶ）１１５は、ホームネットインタフェース部１０２がスレーブ化するインタフェースを選択するために、通信装置１００が持つ各ネットワークインタフェースの情報を取得する。通信装置１００が持つ各ネットワークインタフェースのリストや、設定されているＩＰアドレスやリンク層アドレス、リンク状態（インタフェースの有効／無効、キャリアのＯＮ／ＯＦＦ等）などの各インタフェースの情報は、ホームサブネット１１３に接続しているインタフェースの検出（後述）を行う場合に有用である。
【００８０】
また、各インタフェースの状態が変化した場合は、随時インタフェース状態の変化を検知する。例えば、通信装置１００として、ノートパソコン（ノートＰＣ）を使用している場合、本体にあるネットワークインタフェース部１０２に加えて、新たに、例えばＰＣＭＣＩＡ（personal computer memory card international association）規格のＰＣカード型のネットワークインタフェースが挿入されてオペレーティング・システムに認識された場合、そのインタフェースがホームサブネットに接続されているか否かを検知する必要性が出てくるため、インタフェースの追加・削除やリンク状態の変化、ＩＰアドレスやリンク層アドレスの変化を検知する。
【００８１】
インタフェースの情報が変化した際に、随時インタフェースの情報を取得するためには、例えば、定期的にインタフェースの状態を取得するためのＡＰＩ等を通じて問合せを行う方法や、インタフェースの状態変化をその都度検知するためのＡＰＩを利用する方法などがある。
【００８２】
ホームネットインタフェースコントローラ１１５が、スレーブ化するインタフェースを選択する際には、通信装置１００が備える各インタフェースの情報を保持するインタフェース状態テーブル１１６を用いる。インタフェース状態テーブル１１６を参照することで、ホームネットインタフェース部１０２がスレーブ化するインタフェースを選択する際の処理を効率化することが可能である。
【００８３】
各インタフェースの情報とは、接続しているサブネットがホームサブネットであるか否かや、インタフェースのＩＰアドレス、リンク層アドレス、各種パラメータ（リンクスピードやＩＰパケットのカプセル化方式等）のような、スレーブ化するインタフェースを選択する際に基準とする情報のことである。
【００８４】
ホームネットインタフェースコントローラ１１５は、各インタフェースの情報の変化を監視し、インタフェース状態テーブル１１６を随時検知・更新し、常に最新の情報を保持するようにする。
【００８５】
次に、ホームネットインタフェースコントローラ１１５がスレーブ化するインタフェースを選択するための処理手順について説明する。
【００８６】
ホームネットインタフェースコントローラ１１５がスレーブ化するインタフェースを選択するためには、各インタフェースがホームサブネット１１３に接続されているか否かを検知する必要がある。
【００８７】
例えば、図１ではホームサブネット１１３に接続している第１のインタフェース１０６がホームネットインタフェース部１０２にスレーブ化されているため、ホームネットインタフェース部１０２は、ホームサブネット１１３と通信を行うことが可能になっている。
【００８８】
第１のインタフェース１０８がリモートサブネット１１４に接続しているとする。このとき、もしホームネットインタフェース１部０２が第２のインタフェース１０８をスレーブ化すると、第２のインタフェース１０８はリモートサブネット１１４に接続しているため、ホームネットインタフェース部１０２は、ホームサブネット１１３と通信をすることができなくなってしまう。
【００８９】
つまり、通信装置１００が持つインタフェースのなかから、ホームサブネット１１３に接続しているインタフェースを検出する必要がある。
【００９０】
通信装置１００が備える各インタフェースが、ホームサブネット１１３に接続されているかどうかを検知する方法を大きく２つに分類して示す。
【００９１】
第１の種別の方法は、ホームサブネット１１３内の特定のホストへの通信可能性（アクセシビリティ）を調べることである。但し、ここでは例としてホームサブネット１１３に接続されているルータにフレームを送信する場合を扱うが、ルータに限らずホームサブネットに接続されているホストであれば利用可能である。
【００９２】
第２の種別の方法は、各インタフェースが接続しているネットワークで使用されているＩＰアドレスに関する情報から、ホームサブネットであるか否かを検知する方法である。
【００９３】
第１の種別の方法について説明する。
【００９４】
まず、通信装置１００が備えるネットワークインタフェース夫々から、ホームサブネット１１３に接続している特定のホストに対してＩＣＭＰ（internet control message protocol）／ＩＣＭＰｖ６ ｅｃｈｏフレームを送信することで検知する方法を説明する。
【００９５】
図６は、通信装置１００のホームネットインタフェースコントローラ１１５の処理動作を示すフローチャートである。
【００９６】
ホームネットインタフェースコントローラ１１５は、通信装置１００が備えるネットワークインタフェース夫々からホームサブネット１１３のルータへ向けてＩＣＭＰ  ｅｃｈｏリクエストまたはＩＣＭＰｖ６  ｅｃｈｏリクエストを、各インタフェースが接続しているネットワークに対して送信する（ステップＳ１１）。
【００９７】
その後、各インタフェースで、当該インタフェースが接続するネットワークから、予め定められた時間内に、フレームを受信した場合（ステップＳ１２，ステップＳ１３）、当該フレームの宛先リンク層アドレスが、ホームサブネット１１３のルータのアドレスか否かを調べる（ステップＳ１４）。
【００９８】
宛先リンク層アドレスが、ホームサブネット１１３のルータのアドレスであれば、ホームネットインタフェースコントローラ１１５は、そのフレームを受信したインタフェースは、ホームサブネット１１３に接続されていると検知する（ステップＳ１５）。宛先リンク層アドレスが、ホームサブネット１１３のルータのアドレスでなければ（ステップＳ１４）、再びフレーム受信ループステップＳ１２に戻る。
【００９９】
予め定められた時間内に、ホームサブネット１１３のルータからのフレームの受信を確認できなかったインタフェースについては、当該インタフェースの接続先ネットワークはホームサブネット１１３ではなく、リモートサブネット１１４であると検知する（ステップＳ１６）。
【０１００】
ＩＣＭＰ／ＩＣＭＰｖ６  ｅｃｈｏリクエストフレームのフォーマットを図７に示す。宛先リンク層アドレスは、ホームサブネット１１３のルータのリンク層アドレス、送信元リンク層アドレスは、ホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」である。また、宛先ＩＰ／ＩＰｖ６アドレスは、ホームサブネット１１３のルータのＩＰ／ＩＰｖ６アドレス、送信元ＩＰ／ＩＰｖ６アドレスは、ホームネットインタフェース部１０２のＩＰ／ＩＰｖ６アドレスである。
【０１０１】
もし、ＩＣＭＰ／ＩＣＭＰｖ６  ｅｃｈｏリクエストフレームの送信元リンク層アドレスを、そのフレームを送信する実際のインタフェースのアドレスに設定してしまうと、ホームサブネット１１３のルータが、ホームネットインタフェース部１０２のＩＰ／ＩＰｖ６アドレスに対して複数の異なるリンク層アドレスからフレームを受信してしまい、ルータのＡＲＰ（address resolution protocol）テーブルを混乱させてしまう要因になりかねない。これを回避するために、当該フレームの送信元リンク層アドレスをホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」に設定する。
【０１０２】
ＩＣＭＰ／ＩＣＭＰｖ６  ｅｃｈｏリクエストフレームの送信元リンク層アドレスをホームネットインタフェース部１０２のリンク層アドレスに設定すると、ホームサブネット１１３のルータからの返信フレームの宛先リンク層アドレスもホームネットインタフェース部１０２のリンク層アドレスになる。その結果、ＩＣＭＰ／ＩＣＭＰｖ６  ｅｃｈｏリクエストフレームの送信元のインタフェースが当該フレームの返信フレームを受信した場合、自分宛のフレームでないと判断し、ルータからの当該返信フレームを破棄してしまう可能性がある。このため、図６の処理手順では、ホームネットインタフェースコントローラ１１５は、各インタフェースを無差別モード（プロミスキャスモード）に設定し、全てのフレームを受信するように設定する。
【０１０３】
以上の方法は、ホームサブネット１１３のルータが通信装置１００からのＩＣＭＰ／ＩＣＭＰｖ６  ｅｃｈｏリクエストフレームを受信した直後に、通信装置１００宛のＩＣＭＰ  ｅｃｈｏ  ｒｅｐｌｙを送信する場合を想定しているが、当該ルータがｒｅｐｌｙを返す代わりに、ホームネットインタフェース部１０２のＩＰアドレスに対するリンク層アドレスを問い合わせるためのＡＲＰ  ｒｅｑｕｅｓｔフレームを送信する可能性がある。この場合の通信装置１００とルータとの間の処理シーケンスを図８及び図９に示す。
【０１０４】
図８は、ホームサブネット１１３に接続しているインタフェースからＩＣＭＰ  ｅｃｈｏリクエストフレームを送信する場合を示している。
【０１０５】
通信端末１００の備える複数のインタフェースのうちの１つが、ホームサブネット１１３に接続している場合、当該インタフェースがＩＣＭＰ  ｅｃｈｏリクエストフレームを送信する（ステップＳ２１）。当該フレームが、ホームサブネット１１３のルータが受信すると、ルータは、ＡＲＰ  ｒｅｑｕｅｓｔフレームを送信する（ステップＳ２２）。
【０１０６】
当該ＡＲＰ  ｒｅｑｕｅｓｔフレームの送信元リンク層アドレスは、当該ルータのリンク層アドレスである。このフレームを受信した通信装置１００のコントローラ１１５は、当該フレームの送信元リンク層アドレスが、ホームサブネット１１３のルータのアドレスであることから、当該インタフェースは、ホームサブネット１１３に接続されていると検知する（ステップＳ２３）。
【０１０７】
なお、冗長ではあるが、ホームサブネット１１３のルータからのＡＲＰ  ｒｅｑｕｅｓｔフレームを通信装置１００が受信すると、そのフレームに対して、ホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」を返答するＡＲＰ  ｒｅｐｌｙフレームを送信し、ルータからのＩＣＭＰ  ｅｃｈｏ  ｒｅｐｌｙフレームを受信することで検知する方法も考えられる（ステップＳ２４〜ステップＳ２５）。
【０１０８】
ホームサブネット１１３のルータのＩＰアドレスがグローバルアドレスである場合は、当該ルータから送信されるフレームの送信元ＩＰアレスが当該ルータのＩＰアドレスかどうかを調べることでも検知することができる。通信装置１００のいずれかのインタフェースで受信したフレームの送信元ＩＰアドレスが、ホームサブネット１１３のルータのＩＰアドレスと一致した場合、当該インタフェースはホームサブネット１１３に接続されていると検知する。
【０１０９】
図９は、ホームサブネット１１３ではない別のネットワーク、すなわち、リモートサブネット１１４に接続されているインタフェースからＩＣＭＰ  ｅｃｈｏリクエストフレームを送信する場合を示している。
【０１１０】
リモートサブネット１１４に接続されているインタフェースから、ＩＣＭＰ  ｅｃｈｏフレームを送信すると（ステップＳ３１）、当該フレームの宛先リンク層アドレスは、ホームサブネット１１３上のルータのリンク層アドレスであるため、当該フレームは、ホームサブネット１１３上のルータへは到達できない。従って、当該インタフェースは、当該ルータからのフレームを受信できず、コントローラ１１５は、当該インタフェースはホームサブネット１１３に接続されていない、すなわち、リモートサブネット１１４に接続されていると検知する（ステップＳ３２）。
【０１１１】
ホームサブネット１１３上のルータのＩＰアドレスに対するリンク層アドレスを問い合わせるＡＲＰ  ｒｅｑｕｅｓｔフレームを送信することにより、ホームサブネット１１３に接続されているか否かを検知する方法について、図１０を参照して説明する。
【０１１２】
図１０は、通信装置１００のホームネットインタフェースコントローラ１１５の処理動作を示すフローチャートである。
【０１１３】
通信装置が備えるネットワークインタフェースからＡＲＰ  ｒｅｑｕｅｓｔフレームを送信する（ステップＳ４１）。これ以降の処理フローは、図６のＩＣＭＰ  ｅｃｈｏを使った検知方法のステップＳ１２以降と同様である。
【０１１４】
すなわち、インタフェースが所定時間内に受信したフレームのリンク層アドレスが、ホームサブネット１１３上のルータのアドレスであれば、コントローラ１１５は、当該インタフェースはホームサブネット１１３に接続されていると検知する（ステップＳ４２〜ステップＳ４５）。リンク層アドレスがホームサブネット１１３上のルーラのアドレスであるフレームを所定時間内に受信できなかったインタフェースは、リモートサブネット１１４に接続されていると検知する（ステップＳ４２，ステップＳ４３、ステップＳ４６）。
【０１１５】
ＡＲＰ  ｒｅｑｕｅｓｔフレームのフォーマットを図１１に示す。宛先リンク層アドレスはマルチキャストアドレス、送信元リンク層アドレスはホームネットインタフェース部のリンク層アドレス「ＨＮＩＦ」である。ＡＲＰヘッダの送信元リンク層アドレス及びＩＰアドレスは、「ＨＮＩＦ」及びホームネットインタフェース部１０２のＩＰアドレスである。また、ＡＲＰヘッダのターゲットＩＰアドレスは、ホームサブネット１１３上のルータのＩＰアドレスである。
【０１１６】
ホームサブネット１１３がＩＰｖ６で運用されている場合も、上記同様に、ルータに対してＩＣＭＰｖ６  ｅｃｈｏを送信し、ルータからのＩＣＭＰｖ６  ｅｃｈｏ  ｒｅｐｌｙフレームを受信することで検知が可能である。ＩＰｖ４の場合と異なる点として、送信する検知フレームの宛先ＩＰアドレスは、グローバルスコープのアドレスではなくリンクローカルアドレスを使用する方が検知の正確さが向上する。なぜなら、もしグローバルアドレスを使用した場合、プレフィックスが変更されるネットワークでは、ルータのグローバルアドレスが変化した場合に検知できなくなってしまうからである。検知手順は、ＩＰｖ４の場合の図６と同様である。
【０１１７】
また、ＩＣＭＰｖ６  ｅｃｈｏフレーム送信の際に、宛先ＩＰアドレスをＡｌｌ  Ｒｏｕｔｅｒ  ＭｕｌｔｉｃａｓｔアドレスまたはＡｌｌ  Ｎｏｄｅ  Ｍｕｌｔｉｃａｓｔアドレスに設定することによっても実施可能である。この場合、同一リンク内のルータ全てにｅｃｈｏフレームを送信することができ、ホームサブネット１１３のルータからのｅｃｈｏ  ｒｅｐｌｙを受信することができる。この方法の特徴は、ホームサブネット１１３のルータのＩＰアドレスを予め知っておく必要がなく、当該ルータのリンク層アドレスさえ保持してあれば検知が可能である点である。検知手順は、ＩＰｖ４の場合の図６と同様である。
【０１１８】
ホームサブネット１１３に接続されている特定のホストへのアクセシビリティを基準にホームサブネットに接続しているか否かを検知するためには、通信装置１００は予め、検知する対象のホストの情報を記憶しておく必要がある。ホストの情報とは、リンク層アドレスやＩＰアドレスで、検知フレームの生成の際と、受信フレームがルータからのフレームか否かを判断する際に必要になる。
【０１１９】
オームサブネット１１３のルータに対して、ＲＡＲＰ(reverse address resolution protocol)  ｒｅｑｕｅｓｔフレームを送信することにより、通信装置１００がホームサブネットに接続されているか否かを検知することができる。この場合の通信装置１００のホームネットインタフェースコントローラ１１５の処理動作を図１２に示す。
【０１２０】
通信装置１００が備えるネットワークインタフェースのそれぞれから、ホームサブネット１１３のルータのリンク層アドレスから当該ルータのＩＰアドレスを問い合わせるためのＲＡＲＰ  ｒｅｑｕｅｓｔフレームを送信する（ステップＳ５１）。
【０１２１】
その後、各インタフェースで、当該インタフェースが接続するネットワークから、予め定められた時間内に、フレームを受信した場合（ステップＳ５２、ステップＳ５３）、当該フレームの宛先リンク層アドレスが、ホームサブネット１１３のルータのアドレスか否かを調べる（ステップＳ５４）。
【０１２２】
宛先リンク層アドレスが、ホームサブネット１１３のルータのアドレスであれば、コントローラ１１５は、そのフレームを受信したインタフェースは、ホームサブネット１１３に接続されていると検知する（ステップＳ５５）。宛先リンク層アドレスが、ホームサブネット１１３のルータのアドレスでなければ（ステップＳ５４）、再びフレーム受信ループステップＳ５２に戻る。
【０１２３】
予め定められた時間内に、ホームサブネット１１３のルータからのフレームの受信を確認できなかったインタフェースについては、当該インタフェースの接続先ネットワークはホームサブネット１１３ではなく、リモートサブネット１１４であると検知する（ステップＳ５６）。
【０１２４】
ＲＡＲＰ  ｒｅｑｕｅｓｔフレームのフォーマットを図１３に示す。宛先リンク層アドレスは、ホームサブネット１１３のルータのリンク層アドレス、送信元リンク層アドレスは、ホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」である。また、ＲＡＲＰヘッダ内のターゲットアドレスは、ホームサブネット１１３のルータのリンク層アドレス、送信元アドレスは、ホームネットインタフェース部１０２のＩＰアドレスである。
【０１２５】
この方法の特徴は、ホームサブネット１１３のルータについて予め保持するべき情報はリンク層アドレスのみでよく、ＩＰアドレスを必要としない点である。ＩＰアドレスが変化してしまうホストに対してもリンク層アドレスが変更されない限り検知可能である。但し、アクセシビリティを調べるためのターゲットとなるホストがＲＡＲＰ  ｒｅｑｅｓｔに対して返答しない場合は、この方法を使うことはできない。
【０１２６】
次に、第２の種別の方法について説明する。
【０１２７】
第２の種別の方法は、各インタフェースが接続しているネットワークで使用されているＩＰアドレスに関する情報から、ホームサブネットであるか否かを検知する方法である。
【０１２８】
ＩＰｖ４ネットワークでは、ＤＨＣＰ(dynamic host configuration protocol)によってグローバルアドレスを取得できる場合、そのアドレス中のサブネットアドレス（ネットワークアドレス）を比較することで検知する方法を説明する。
【０１２９】
図１４は、通信装置１００のコントローラ１１５の処理動作を示すフローチャートである。
【０１３０】
コントローラ１１５は、通信装置１００が備えるネットワークインタフェース夫々からＤＨＣＰ  ｄｉｓｃｏｖｅｒフレームを送信する（ステップＳ６１）。
【０１３１】
その後、各インタフェースで、当該インタフェースが接続するネットワークから、予め定められた時間内に、ＤＨＣＰサーバからＤＨＣＰ  ｏｆｆｅｒフレームを受信した場合（ステップＳ６２、ステップＳ６３）、当該フレームに含まれる取得可能なＩＰアドレスがグローバルアドレスであり（ステップＳ６４）、しかも、当該アドレスに含まれるネットワークアドレスは、ホームサブネット１１３で使用されている当該ホームサブネット１１３に対応するネットワークアドレスであるとき（ステップＳ６５）、当該インタフェースはホームサブネット１１３に接続されていると検知する（ステップＳ６６）。
【０１３２】
予め定められた時間内に受信された、ＤＨＣＰ  ｏｆｆｅｒフレームに含まれる取得可能なＩＰアドレスがグローバルアドレスでないとき（ステップＳ６４）、あるいは、グローバルアドレスであっても当該アドレスのネットワークアドレスは、ホームサブネット１１３に対応するネットワークアドレスでないとき（ステップＳ６５）、当該インタフェースはリモートサブネット１１４に接続されていると検知する（ステップＳ６７）。
【０１３３】
さらに、ＤＨＣＰ  ｄｉｓｃｏｖｅｒフレームを送信した後、予め定められた時間内に、ＤＨＣＰ  ｏｆｆｅｒフレームを受信できなったときも、ステップＳ６７へ進む。
【０１３４】
なお、ホームサブネット１１３で使われているＩＰアドレスがプライベートアドレスである場合は、ＩＰアドレスだけではホームサブネット１１３であるか否かを同定できないため、この方法によるサブネット検知は適用できない。
【０１３５】
ＩＰｖ６ネットワークでは、ＩＣＭＰｖ６  ＮＤ(Neighbor Discovery)機能を利用することで検知が可能である。ＲＡ(Router Advertisement)でＩＰｖ６アドレスのプレフィックスが配布されている場合、そのプレフィックスがホームサブネット１１３のものかどうか比較することで検知可能である。
【０１３６】
この場合の通信装置１００のコントローラ１１５の処理動作を、図１５に示す。
【０１３７】
ホームサブネット１１３のルータからＲＡを受信するために、通信装置１００が備えるネットワークインタフェース夫々からＩＣＭＰｖ６  ＲＳ（Router Solicitation）フレームを送信する（ステップＳ７１）。なお、上記ＲＳフレームを送信することなく、ホームサブネット１１３のルータから定期的に送信されるＲＡフレームを受信する、という手法もある。
【０１３８】
その後、各インタフェースで、当該インタフェースが接続するネットワークから、予め定められた時間内に、ＲＡフレームを受信した場合（ステップＳ７２，ステップＳ７３）、当該フレーム中のプレフィックスが、ホームサブネット１１３のプレフィックスと同一であれば、コントローラ１１５は、そのフレームを受信したインタフェースは、ホームサブネット１１３に接続されていると検知する（ステップＳ７５）。
【０１３９】
受信したＲＡフレーム中のプレフィックスが、ホームサブネット１１３のプレフィックスとは異なるとき（ステップＳ７４）、当該インタフェースはリモートサブネット１１４に接続されていると検知する（ステップＳ７６）。
【０１４０】
さらに、ＲＳフレームを送信した後、予め定められた時間内に、ＲＡフレームを受信できなったときも、ステップＳ７６へ進む。
【０１４１】
ＩＣＭＰｖ６  ＲＳフレームのフォーマットを図１６に示す。リンク層ヘッダの宛先リンク層アドレスは、マルチキャストアドレス、送信元アドレスは、ホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」である。また、ＩＰｖ６ヘッダの送信元アドレスは、ホームネットインタフェース部１０２のＩＰｖ６アドレス、宛先アドレスは、ＡＲＭ（All Router Multicast）、もしくはAll Node Multicastである。
【０１４２】
ＩＰｖ６グローバルアドレスをＤＨＣＰｖ６によって取得できる場合には、ＩＰｖ４のＤＨＣＰの場合と同様に、取得したＩＰアドレスがホームサブネットのものかどうかを調べることで検知が可能である。
【０１４３】
この場合、図１４と同様に、コントローラ１１５は、通信装置１００が備えるネットワークインタフェースそれぞれから、上記ＤＨＣＰ  ｄｉｓｃｏｖｅｒフレームに対応する、ＤＨＣＰｖ６リクエストフレームを送信する。その後、各インタフェースで、当該インタフェースが接続するネットワークから、予め定められた時間内に、ＤＨＣＰｖ６サーバから、上記ＤＨＣＰ  ｏｆｆｅｒフレームに対応するＤＨＣＰｖ６リプライフレームを受信した場合、当該フレームに含まれる取得可能なＩＰｖ６アドレスがグローバルアドレスであり、しかも、当該アドレスに含まれるネットワークアドレスは、ホームサブネット１１３で使用されている当該ホームサブネット１１３に対応するネットワークアドレスであるとき、当該インタフェースはホームサブネット１１３に接続されていると検知する。
【０１４４】
予め定められた時間内に受信された、ＤＨＣＰｖ６リプライフレームに含まれる取得可能なＩＰｖ６アドレスがグローバルアドレスでないとき、あるいは、グローバルアドレスであっても当該アドレスのネットワークアドレスは、ホームサブネット１１３に対応するネットワークアドレスでないとき、当該インタフェースはリモートサブネット１１４に接続されていると検知する。さらに、ＤＨＣＰｖ６リクエストフレームを送信した後、予め定められた時間内に、ＤＨＣＰｖ６リプライフレームを受信できなったときも、当該インタフェースはリモートサブネット１１４に接続されていると検知する。
【０１４５】
ここまでは、それぞれの方法を単独で適用する方法を述べてきたが、上記のような方法を組み合わせてホームサブネットに接続しているか否かを検知することも可能である。
【０１４６】
ここでは一例として、ＩＣＭＰｖ６  ｅｃｈｏフレームと、ＩＣＭＰｖ６  ＮＤを使ってホームサブネットに接続しているか否かの検知を行う方法について、図１７に示すフローチャートを参照して説明する。
【０１４７】
コントローラ１１５は、通信装置１００が備えるネットワークインタフェース夫々から、ＩＣＭＰｖ６  ＲＳフレームと、ＩＣＭＰｖ６  ｅｃｈｏリクエストフレームとを送信する（ステップＳ８１、ステップＳ８２）。
【０１４８】
その後、各インタフェースで、当該インタフェースが接続するネットワークから、予め定められた時間内に、フレームを受信した場合（ステップＳ８３、ステップＳ８４）、当該フレームの送信元リンク層アドレスが、ホームサブネット１１３のルータのリンク層アドレスであるときには（ステップＳ８５）、コントローラ１１５は、当該フレームを受信したインタフェースは、ホームサブネット１１３に接続されていると検知する（ステップＳ８８）。
【０１４９】
送信元リンク層アドレスが、ホームサブネット１１３のルータのものでない場合は、当該フレームは、ホームサブネット１１３のルータ以外のホストから送信されたＩＣＭＰｖ６  ＲＡフレームである可能性がある。当該フレームが、ＩＣＭＰｖ６  ＲＡフレームである場合には（ステップＳ８６）、当該フレーム中のＩＰアドレスのプレフィックスがホームサブネット１１３のプレフィックスであるとき（ステップＳ８７）、コントローラ１１５は、当該フレームを受信したインタフェースは、ホームサブネット１１３に接続されていると検知する（ステップＳ８８）。
【０１５０】
ＩＣＭＰｖ６  ＲＡフレームと、ＩＣＭＰｖ６  ｅｃｈｏリクエストフレームとを送信した後、予め定められた時間内に、ＩＣＭＰ  ｅｃｈｏ  ｒｅｐｌｙフレームあるいはＩＣＭＰｖ６  ＲＡフレームを受信できなったときは、当該インタフェースはホームサブネット１１３に接続されていないことを検知する（ステップＳ８９）。
【０１５１】
以上のような方法で、通信装置１００が備える各インタフェースが接続しているネットワークがホームサブネット１１３であるか否かを検知することができる。
【０１５２】
ホームサブネット１１３に接続しているインタフェースの検出方法について、以下いくつかの例を挙げる。
【０１５３】
第一の例は、図１８に示すように、ホームサブネット１１３に接続しているインタフェースが見つかるまで、コントローラ１１５は、前述の図６〜図１７を用いて説明した検知処理のいずれかを用いて、ホームサブネットに接続しているインタフェースを検知する方法である。
【０１５４】
通信装置１００が備える各ネットワークインタフェースについて、コントローラ１１５は、前述の図６〜図１７を用いて説明した検知処理のいずれかを用いてホームサブネット１１３に接続されているインタフェースを検知する（ステップＳ９１〜ステップＳ９２）。ホームサブネット１１３に接続されているインタフェースが１つでも検知されたら（ステップＳ９３）、処理を終了する。
【０１５５】
図１８に示す処理手順では、ホームサブネット１１３に接続しているインタフェースが１つでも検知されたら、その時点で処理を終了してしまうので、ホームサブネット１１３に接続しているインタフェースが複数ある場合は、そのうちの１つしか検出できないことになる。
【０１５６】
例えば、通信装置１００が、無線ネットワークインタフェースと有線ネットワークインタフェースインタフェースを具備していて、その両方が同じサブネットに接続されている場合には、そのどちらか一方しか検出できないことになる。
【０１５７】
第二の例は、図１９に示すように、単純に、無線端末１００が備える全てのインタフェースについて、コントローラ１１５は、当該インタフェースが接続するネットワークがホームサブネット１１３であるか否かを前述の図６〜図１７を用いて説明した検知処理のいずれかを用いて調べる方法である。
【０１５８】
図１９に示す処理手順は、図１８に示す処理手順と違い、ホームサブネット１１３に接続しているインタフェースを検出しても処理を終了せずに、全てのインタフェースについて検知処理を行う。これにより、ホームサブネット１１３に接続されているインタフェースが複数であっても、その全て検出することができる。
【０１５９】
但し、図１９に示す処理手順を用いた場合、通信装置１００の複数のインタフェースがホームサブネットに接続している場合、検知処理に不具合が生じる可能性がある。接続先のネットワークを検知するために送信するフレームの送信元アドレスには、いずれもホームネットインタフェース部１０２のアドレスを使用しているが、通信装置１００からホームサブネット１１３へのリンクが複数ある場合、スイッチ２００が、送信元リンク層アドレスが同じフレームを異なるポートで受信してしまうため、スイッチ２００のＦＤＢが混乱してしまう問題が発生しかねないためである。
【０１６０】
第三の例として、第一及び第二の例の問題を回避することのできる方法を図２０に示すフローチャートを参照して説明する。
【０１６１】
通信装置１００が備える各ネットワークインタフェースについて、順番に、コントローラ１１５は、前述の図６〜図１７を用いて説明した検知処理のいずれかを用いてホームサブネット１１３に接続されているインタフェースを検知する（ステップＳ１１１〜ステップＳ１１３）。
【０１６２】
検知処理を実行するインタフェースの順番は、ホームネットインタフェース部１０２にスレーブ化されているインタフェースがあれば、一番目に当該インタフェースに対し検知処理を実行する。それ以外のインタフェースについては、任意の順番で検知処理を実行する。
【０１６３】
ホームサブネット１１３に接続しているインタフェースを検出した場合は（ステップＳ１１３）、当該インタフェースから、ホームサブネット１１３にブロードキャストアドレスまたはマルチキャストアドレスのフレーム（ここでは、同一リンク検知フレームと呼ぶ）を送信し（ステップＳ１１４）、まだ検知処理を実行していないインタフェースがこのフレームを受信するかどうかを調べる。検知処理を実行していないインタフェースが、同一リンク検知フレームを受信した場合には（ステップＳ１１５）、当該インタフェースはホームサブネット１１３に接続されているインタフェースと同一サブネットに接続されている、つまりホームサブネット１１３に接続されていると検知できる（ステップＳ１１６）。一方、まだ検知処理を実行していないインタフェースが、同一リンク検知フレームを予め定められた時間までに受信しなければ、当該インタフェースは、ホームサブネット１１３に接続していないと検知できる（ステップＳ１１７）。
【０１６４】
ステップＳ１１４で送信する同一リンク検知フレームは、例えば、図７のＩＣＭＰ／ＩＣＭＰｖ６  ｅｃｈｏリクエストフレームであり、このフレームの宛先リンク層アドレスと宛先ＩＰアドレスがブロードキャストまたはマルチキャストアドレスに設定されたフレームである。なお、上記同一リンク検知フレームは、図７のＩＣＭＰ  ｅｃｈｏフレームに限るものではなく、ネットワークにブロードキャストまたはマルチキャスト送信できる他のプロトコルのフレームでも可能である。
【０１６５】
図２０に示す手順によれば、通信装置１００は、当該通信装置１００が備える複数のネットワークインタフェースのうち、ホームサブネット１１３に接続されているインタフェース全てを検出することができる。
【０１６６】
コントローラ１１５は、例えば、図２０に示す手順により、ホームサブネット１１３に接続しているインタフェースを検出すると、そのインタフェースをスレーブ化するようにホームネットインタフェース部１０２に対して指示を出す。ホームサブネット１１３に接続しているインタフェースが検出されなかった場合には、ホームサブネット１１３へＬ２ＶＰＮ接続を行う。
【０１６７】
（Ｌ２ＶＰＮ（Ｌａｙｅｒ２バーチャルプライベートネットワーク）接続）
次に、コントローラ１１５が、例えば、図２０に示す手順を行った後のコントローラ１１５の処理動作について、図２１に示すフローチャートを参照して説明する。
【０１６８】
例えば、図２０に示す手順を行った後、ホームサブネット１１３に接続しているインタフェースがあった場合には（ステップＳ２０１）、コントローラ１１５は、ホームサブネット１１３に接続されている複数のインタフェースのうち、最も優先度の高いインタフェースを選択する（ステップＳ２０２）。これは、ホームサブネット１１３に接続しているインタフェースが複数あった場合に、どのインタフェースをスレーブ化させるかを選ぶための処理である。選択する基準となるポリシーは様々なものが考えられるが、例えば、無線ＬＡＮでホームサブネット１１３に接続するインタフェースと、有線ＬＡＮでホームサブネット１１３に接続するインタフェースが存在する場合、「無線より有線を優先する」といったポリシーが考えられる。また、各インタフェースのリンクスピードを参照したり、予め設定ファイル等で優先するインタフェースを指示しておき、それを参照して優先度を決める方法等も考えられる。
【０１６９】
選択されたインタフェースが、ホームネットインタフェース部１０２にスレーブ化されていない場合は、ホームネットインタフェース部１０２に対して、当該インタフェースをスレーブ化するよう指示を出す（ステップＳ２０４）。選択されたインタフェースが既にスレーブ化されている場合は何もせず、処理を終了する。
【０１７０】
ホームサブネット１１３に接続しているインタフェースが存在しない場合は（ステップＳ２０１）、Ｌ２ＶＰＮを用いた接続により、ホームサブネット１１３と同一サブネットでの遠隔アクセスを実現する必要がある。
【０１７１】
ホームサブネットへＬ２ＶＰＮ接続が可能である場合は（ステップＳ２０５）、Ｌ２ＶＰＮ接続を行う（ステップＳ２０６）。Ｌ２ＶＰＮ接続中は、ホームネットインタフェース部１０２からみれば、Ｌ２ＶＰＮインタフェース１２０がホームサブネット１１３に接続していることになる。
【０１７２】
通信装置１００がどのネットワークにも接続していない場合や、いずれかのリモートサブネットに接続していてもホームサブネットへのＬ２ＶＰＮ接続ができない場合は、Ｌ２ＶＰＮ接続を行わず終了する。
【０１７３】
以下、通信装置１００がサブネット間を移動する場合に、ホームサブネット１１３とＬ２ＶＰＮ接続して通信を行う場合の処理動作について説明する。なお、ここで、リモートサブネット１１４とは、ホームサブネット１１３以外のネットワークを指し、ホームサブネット１１３へ接続するためのＬ２ＶＰＮサーバへアクセスすることが可能であることを想定している。
【０１７４】
また、ホームネットインタフェース部１０２を備える通信装置１００としては、図１に示すような、有線ＬＡＮに接続するための第１のインタフェース１０６、無線ＬＡＮに接続するための第２のインタフェース１０８、Ｌ２ＶＰＮインタフェース１２０といった３つのインタフェースを持つ通信装置１００を例にとり説明する。
【０１７５】
なお、Ｌ２ＶＰＮインタフェース１２０は、当該インタフェースに予め定められたリンク層アドレスを記憶するリンク層アドレス記憶部１２１を有する。
【０１７６】
図２２は、通信装置１００のホームネットインタフェースコントローラ（簡単にコントローラとも呼ぶ）１１５の構成例を示したもので、コントローラ１１５とともに、ネットワークインタフェース部１０２と、Ｌ２ＶＰＮ接続した場合に有効化されるＬ２ＶＰＮインタフェース１２０と、第１及び第２のインタフェース１０６，１０８を示している。
【０１７７】
コントローラ１１５は、インタフェース状態テーブル１１６、ＩＦ状態変化検出部１１７、サブネット検出部１１８、制御部１１９を含む。
【０１７８】
ＩＦ状態変化検出部１１７は、通信装置１００へのインタフェースの追加・削除やリンク状態の変化、ＩＰアドレスやリンク層アドレスなどの各インタフェースの状態の変化を検知し、通信装置１００が持つ各インタフェースの情報を取得する。通信装置１００が持つ各ネットワークインタフェースのリストや、設定されているＩＰアドレスやリンク層アドレス、リンク状態（インタフェースの有効／無効、キャリアのＯＮ／ＯＦＦ等）などの各インタフェースの情報は、インタフェース状態テーブル１１６に記憶されている。また、各インタフェースの状態の変化を検知した場合には、その都度、インタフェース状態テーブル１１６を更新する。
【０１７９】
サブネット検出部１１８は、前述の図６〜図１７を用いて説明した検知処理のいずれかと、図１８〜図１０のうちのいずれからの手順を用いてホームサブネット１１３に接続されているインタフェースを検出する。検出結果は、インタフェース状態テーブル１１６に記憶する。
【０１８０】
制御部１１９は、ホームネットインタフェース部１０２に対して、スレーブインタフェースを変更する指示や、Ｌ２ＶＰＮインタフェース１２０に対してＬ２ＶＰＮ接続・切断の制御を行う。
【０１８１】
Ｌ２ＶＰＮインタフェース１２０は、制御部１１９からの制御により、有効化／無効化され、Ｌ２ＶＰＮ接続の接続・切断の処理や、Ｌ２ＶＰＮで送受信するデータの処理を行う。データの処理とは、フレームをカプセル化する処理や、カプセル化を解いてフレームを取り出す処理のことを指す。これらの処理の詳細は後述する。
【０１８２】
図２３は、図２２に示したコントローラ１１５の処理動作を説明するためのフローチャートである。
【０１８３】
ＩＦ状態変化検出部１１７は、通信装置１００が備える各インタフェースの状態変化を検出し（ステップＳ２０１）、インタフェース状態テーブル１１６の更新を行う（ステップＳ２０２）。サブネット検出部１１８は、前述の図６〜図１７を用いて説明した、ホームサブネット１１３に接続しているインタフェースの検知処理のいずれかと、図１８〜図１０のうちのいずれからの手順を用いてホームサブネット１１３に接続されているインタフェースを検出し（ステップＳ２０３）、検出結果をインタフェース状態テーブル１１６に記憶する（ステップＳ２０４）。
【０１８４】
制御部１１９は、インタフェース状態テーブル１１６を参照して、ホームサブネット１１３に接続しているインタフェースがある場合には（ステップＳ２０５）、図２１に示すような処理動作を行って、そのうちのいずれか１つを、ホームネットインタフェース部１０２のスレーブインタフェースとして選択し、ホームネットインタフェース１０２へ、当該選択されたインタフェースをスレーブインタフェースとするための指示を出す。この指示を受けて、ホームネットインタフェース１０２は、選択されたインタフェースをスレーブ化する（ステップＳ２０６）。
【０１８５】
制御部１１９は、ホームサブネット１１３に接続しているインタフェースが存在しない場合には、Ｌ２ＶＰＮ接続を行う（ステップＳ２０７）。
【０１８６】
以上の処理が終了すると、コントローラ１１５は、再びステップＳ２０１へ戻り、上記ステップＳ２０１〜ステップＳ２０７の処理を行うことで、ホームネットインタフェース部１０２は、第１及び第２のインタフェース１０６，１０８、Ｌ２ＶＰＮインタフェース１２０のうちのいずれかのインタフェースをスレーブインタフェースとして用い、常にホームサブネット１１３に接続していることになる。
【０１８７】
［動作例１］
通信装置１００が、ホームサブネット１１３に接続している状態から、ホームサブネット１１３以外のネットワーク（リモートサブネット１１４）に接続する場合の通信装置１００の動作について説明する。
【０１８８】
図２４、図２５、及び図２６はそれぞれ、通信装置１００がホームサブネット１１３に接続している場合、通信装置１００がホームサブネット・リモートサブネット間を移動中の場合、通信装置１００がリモートサブネット１１４に接続した場合を示す図である。
【０１８９】
図２４に示すように、通信装置１００がホームサブネット１１３に接続されている初期状態では、通信装置１００のホームネットインタフェース部１０２は、ホームサブネット１１３に接続している第１のインタフェース１０５をスレーブ化している。ホームネットインタフェース部１０２のＩＰアドレスはＤＨＣＰ等にて動的に割り当てられているか、固定的に割り当てられているか、または自動構成によって設定されているものとする。
【０１９０】
ＩＦ状態変化検出部１１７は、常時または定期的に、通信装置１００の各インタフェースの状態を監視していて（図２３のステップＳ２０１）、インタフェースの状態の変化を検出したか、予め設定された一定時間、インタフェースの状態の変化が無かった場合は、ステップＳ２０３のサブネット検出部１１８の処理に移る。
【０１９１】
ステップＳ２０３で、スレーブインタフェースが変更されない場合、再びステップＳ２０１に戻る。このように、サブネット検出部１１８は、インタフェースの状態に変化がない場合でも定期的に処理を行い、各インタフェースの接続されているネットワークが変化していないかどうか監視を行う。
【０１９２】
ここで、通信装置１００の第１のインタフェース１０６が、一旦ホームサブネット１１３との接続を切断すると、図２５に示す状態に移行する。
【０１９３】
図２５に示す状態では、ホームサブネット１１３へのアクセシビリティが無くなっているため、図２３のステップＳ２０３のサブネット検出部１１８の処理が行われると、ホームサブネット１１３に接続しているインタフェースを検出できないため、図２３のステップＳ２０７のＬ２ＶＰＮ接続の処理に移る。図２５に示す状態では、通信装置１００は、どのネットワークにも接続されていないため、ステップＳ２０７では、Ｌ２ＶＰＮ接続を行わず処理を終了し、再びステップＳ２０１に戻る。
【０１９４】
この間、ホームネットインタフェース部１０２とスレーブインタフェースである第１のインタフェース１０６の状態は変化しない。すなわち、第１のインタフェース１０６のリンク層アドレス記憶部１０７には、ホームネットワークインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」が記憶され、ホームネットワークインタフェース部１０２の第２のリンク層アドレス記憶部１０５には、第１のインタフェース１０６のリンク層アドレスが記憶されており、第１のインタフェース１０６は、スレーブインタフェースのままである。また、アプリケーション１０１から見ると、パケットの送信はできるものの受信ができないという状態である。
【０１９５】
この後、通信装置１００が、ホームサブネット１１３以外のネットワークであるリモートサブネット１１４に接続すると、図２６に示す状態に移行する。図２６では、通信装置１００は、第１のインタフェースを通じて、リモートサブネット１１４に接続している。
【０１９６】
ＩＦ状態変化検出部１１７は、このようなインタフェースの状態変化を検出する（図２３のステップＳ２０１）。そして、ステップＳ２０３では、第１のインタフェース１０６はホームサブネット１１３に接続されていないため、サブネット検出部１１８は、ホームサブネット１１３に接続されているインタフェースを検出できない。そこで、ステップＳ２０７へ進み、Ｌ２ＶＰＮ接続処理を行う。
【０１９７】
この場合、制御部１１９は、Ｌ２ＶＰＮインタフェース１２０を制御し、ホームサブネット１１３へのＬ２ＶＰＮ接続を行う。Ｌ２ＶＰＮインタフェース１２０は、実際にリモートサブネット１１４に接続している第１のインタフェース１０６を通じて、ホームサブネット１１３のルータ３０１との間で通信を行い、Ｌ２ＶＰＮ接続のための予め定められた処理手順を実行する。
【０１９８】
Ｌ２ＶＰＮ接続が成功すると、無線端末１００のＬ２ＶＰＮインタフェース１２０と、ホームサブネット１１３のルータ３０１のＬ２ＶＰＮインタフェース３０４とが有効となり、通信装置１００のＬ２ＶＰＮインタフェース１２０と、ホームサブネット１１３のルータ３０１のＬ２ＶＰＮインタフェース３０４との間のＬ２ＶＰＮトンネル５０１が有効となる。
【０１９９】
この時、ルータ３０１では、ホームサブネット１１３に接続されている第１のインタフェース３０２とＬ２ＶＰＮインタフェース３０４とをブリッジ３０５で接続する。
【０２００】
これにより、Ｌ２ＶＰＮインタフェース１２０は、Ｌ２ＶＰＮトンネル５０１を介してホームサブネット１１３上の通信機器とデータの送受信を行うことができる。
【０２０１】
通信装置１００でＬ２ＶＰＮインタフェース１２０が有効化されると、ＩＦ状態変化検出部１１７は、Ｌ２ＶＰＮインタフェース１２０が新たに有効化されたことを検知し（図２３のステップＳ２０１）、インタフェース状態テーブル１１６に、Ｌ２ＶＰＮインタフェース１２０に関する情報を記憶する（ステップＳ２０２）。そして、ステップＳ２０３へ進む。
【０２０２】
ステップＳ２０３において、Ｌ２ＶＰＮインタフェース１２０は、第１のネットワーク１０６を介してホームサブネット１１３とフレームの送受信が可能なため、サブネット検出部１１８は、Ｌ２ＶＰＮインタフェース１２０は、ホームサブネット１１３に接続されていると検知する。従って、ステップＳ２０５からステップＳ２０６へ進む。
【０２０３】
ステップＳ２０６では、制御部１１９は、ホームネットインタフェース部１０２に対し、Ｌ２ＶＰＮインタフェース１２０をスレーブ化すべく指示を出す。
【０２０４】
この指示を受けて、ホームネットワークインタフェース部１０２は、Ｌ２ＶＰＮインタフェース１２０のリンク層アドレス記憶部１２１に記憶されている、当該Ｌ２ＶＰＮインタフェース本来のリンク層アドレスを第２のリンク層アドレス記憶部１０５に記憶し、ホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」をＬ２ＶＰＮインタフェース１２０のリンク層アドレス記憶部１２１に書き込む。この結果、Ｌ２ＶＰＮインタフェース１２０は、ホームネットインタフェース部１０２のスレーブインタフェースとして設定され、ホームネットインタフェース部１０２が、ホームサブネット１１３と再び接続されたことになり、アプリケーション１０１は、ホームネットインタフェース部１０２を用いてホームサブネット１１３上の通信機器との通信が行える。
【０２０５】
次に、図２４に示すように、通信装置１００が第１のインタフェースをスレーブインタフェースとして用いてホームサブネット１１３に接続しているときの、通信装置１００におけるフレーム送受信の手順について、図２７を参照して説明する。
【０２０６】
通信装置１００で動作しているアプリケーション１０１が、送信すべきデータ「データ１」をホームネットインタフェース部１０２へ渡す（ステップＳ３０１）。
【０２０７】
ホームネットインタフェース部１０２は、アプリケーション１０１から渡されたデータ「データ１」に、宛先リンク層アドレスＤ１として、ホームサブネット１１３上の通信機器のリンク層アドレスを付加し、送信元リンク層アドレスＳ１として、ホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」を付加して、ホームサブネット１１３上の通信機器へ送信するフレームを生成し、生成されたフレームを、スレーブインタフェースである第１のインタフェース１０６に渡す（ステップＳ３０２）。
【０２０８】
第１のインタフェース１０６は、渡されたフレームの送信元リンク層アドレスＳ１が、リンク層アドレス記憶部１０７に記憶されているリンク層アドレス「ＨＮＩＦ」と同一であることから、（このフレームの送信元リンク層アドレスＳ１を書き換えることなく）そのまま、接続しているホームサブネット１１３へ送出する（ステップＳ３０３）。
【０２０９】
これにより、ホームネットインタフェース部１０２から出力されたフレームが、ホームサブネット１１３に送信されたことになる。
【０２１０】
一方、ホームサブネット１１３上の通信機器から送信されたフレームを通信装置１００が受信する場合には、まず、スレーブインタフェースである第１のインタフェース１０６が当該フレームを受信する（ステップＳ３１１）。第１のインタフェース１０６のリンク層アドレス記憶部１０７に記憶されているリンク層アドレスが「ＨＮＩＦ」であることから、第１のインタフェース１０６は、受信したフレームに付加されている宛先リンク層アドレスＤ２が、「ＨＮＩＦ」、マルチキャストアドレス、ブロードキャストアドレスのうちのいずれかであれば、当該フレームをホームネットインタフェース部１０２へ出力する（ステップＳ３１２）。ホームネットインタフェース部１０２は、渡されたフレーム中のデータ「データ２」をアプリケーション１０１へ渡す（ステップＳ３１３）。
【０２１１】
これにより、ホームサブネット１１３上の通信機器からホームネットインタフェース部１０２宛に送信されたフレームが、ホームネットインタフェース部１０２に送信されたことになる。
【０２１２】
次に、図２６に示すように、第１のインタフェース１０６を介して、リモートサブネット１１４に接続している通信装置１００が、Ｌ２ＶＰＮインタフェース１２０をスレーブインタフェースとして用いてホームサブネット１１３に接続しているときの、通信装置１００におけるフレーム送受信の手順について、図２８を参照して説明する。
【０２１３】
通信装置１００で動作しているアプリケーション１０１が、送信すべきデータ「データ１」をホームネットインタフェース部１０２へ渡す（ステップＳ３２１）。
【０２１４】
ホームネットインタフェース部１０２は、アプリケーション１０１から渡されたデータ「データ１」に、宛先リンク層アドレスＤ１として、ホームサブネット１１３上の通信機器のリンク層アドレスを付加し、送信元リンク層アドレスＳ１として、ホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」を付加して、ホームサブネット１１３上の通信機器へ送信するフレームを生成し、生成されたフレームを、スレーブインタフェースであるＬ２ＶＰＮインタフェース１２０に渡す（ステップＳ３２２）。
【０２１５】
Ｌ２ＶＰＮインタフェース１２０は、渡されたフレームの送信元リンク層アドレスＳ１が、Ｌ２ＶＰＮインタフェース１２０のリンク層アドレス記憶部１２１に記憶されているリンク層アドレス「ＨＮＩＦ」と同一であることから、当該フレームの送信元リンク層アドレスＳ１を書き換えることなく、当該フレームにＬ２ＶＰＮプロトコルヘッダを付加するなどのＬ２ＶＰＮの所定の処理を施し、Ｌ２ＶＰＮデータを生成する。生成された当該Ｌ２ＶＰＮデータは、第１のインタフェース１０６へ出力される（ステップＳ３２３）。
【０２１６】
第１のインタフェース１０６は、渡されたＬ２ＶＰＮデータにＩＰヘッダを付加し、ＩＰパケットを生成し、当該ＩＰパケットに宛先リンク層アドレスＤ２を付加し、さらに、送信元リンク層アドレスＳ２として、リンク層アドレス記憶部１０７に記憶されているリンク層アドレス「ＩＦ１」を付加して、接続しているリモートサブネット１１４へ送出する（ステップＳ３２４）。
【０２１７】
なお、宛先リンク層アドレスＤ２は、リモートサブネット１１４上のルータ４０１の当該リモートサブネット１１４に接続するインタフェース４０２のリンク層アドレスである。
【０２１８】
また、第１のインタフェース１０６で生成されるＩＰパケットの送信元ＩＰアドレスは、第１のインタフェース１０６のＩＰアドレスであり、宛先ＩＰアドレスは、ホームサブネット１１３上のルータ３０１の第２のインタフェース３０３のＩＰアドレスである。
【０２１９】
リモートサブネット１１４のルータ４０１は、通信装置１００の第１のインタフェース１０６から送信されたフレームを受信すると、当該フレームのＩＰパケット部分を取り出して、インターネット５００へ送出する（ステップＳ３２５）。
【０２２０】
ホームサブネット１１３上のルータ３０１は、図２６に示すように、第２のインタフェース３０３でインターネット５００に接続されている。ルータ３０１は、第２のインタフェース３０３を通じて当該ＩＰパケットを受信し、当該ＩＰパケットからＬ２ＶＰＮデータを取り出す。当該Ｌ２ＶＰＮデータは、Ｌ２ＶＰＮインタフェース３０４に渡される（ステップＳ３２６）。
【０２２１】
Ｌ２ＶＰＮインタフェース３０４は、当該Ｌ２ＶＰＮデータから、フレームを取り出し、当該フレームをブリッジ３０５に渡す。なお、このフレームの送信元リンク層アドレスＳ１は、前述したように、「ＨＮＩＦ」である。
【０２２２】
ブリッジ３０５は、当該フレームを第１のインタフェース３０２から、ホームサブネット１１３へ送出する（ステップＳ３２７）。
【０２２３】
これにより、通信装置１００のホームネットインタフェース部１０２から出力されたフレームが、ホームサブネット１１３上の通信機器に送信されたことになる。
【０２２４】
次に、ホームサブネット１１３上の通信機器から送信されたフレームを通信装置１００が受信する場合について、図２８を参照して説明する。
【０２２５】
ホームサブネット上の通信機器から送信されたフレームには、宛先リンク層アドレスＤ３として、「ＨＮＩＦ」、マルチキャストアドレス、ブロードキャストアドレスのうちのいずれかが付加されているものとする（ステップＳ３３１）。このフレームは、ルータ３０１の第１のインタフェース３０２で受信され、そのままブリッジ３０５へ出力される。ブリッジ３０５は、当該フレームをＬ２ＶＰＮインタフェース３０４へ渡し、Ｌ２ＶＰＮインタフェース３０４は、当該フレームにＬ２ＶＰＮプロトコルヘッダを付加するなどの、Ｌ２ＶＰＮの所定の処理を施す。生成された当該Ｌ２ＶＰＮデータは、第２のインタフェース３０３にてＩＰヘッダが付加され、当該インタフェースからインターネット５００へ送出される（ステップＳ３３２）。
【０２２６】
なお、当該ＩＰパケットの送信元ＩＰアドレスは、第２のインタフェース３０３のＩＰアドレスであり、宛先ＩＰアドレスは、通信装置１００の第１のインタフェース１０６のＩＰアドレスである。
【０２２７】
当該ＩＰパケットは、リモートサブネット１１４のルータ４０１により受信される（ステップＳ３３３）。ルータ４０１は、当該ＩＰパケットに、宛先リンク層アドレスＤ４として、第１のインタフェースのリンク層アドレス「ＩＦ１」を付加し、さらに、送信元リンク層アドレスＳ４として、リモートサブネット１１４上のルータ４０１の当該リモートサブネット１１４に接続するインタフェース４０２のリンク層アドレスを付加して、リモートサブネット１１４へ送出する（ステップＳ３３４）。
【０２２８】
ルータ４０１で、宛先及び送信元リンク層アドレスが付加されて、リモートサブネット１１４へ送出されたフレームは、第１のインタフェース１０６で受信される。第１のインタフェース１０６は、当該フレーム中のＬ２ＶＰＮデータをＬ２ＶＰＮインタフェース１２０へ出力する（ステップＳ３３５）。
【０２２９】
Ｌ２ＶＰＮインタフェース１２０は、当該Ｌ２ＶＰＮデータからフレームを取り出す。当該フレームに付加されている宛先リンク層アドレスが、「ＨＮＩＦ」、マルチキャストアドレス、ブロードキャストアドレスのうちのいずれかである場合には、当該フレームをホームネットインタフェース部１０２へ出力する（ステップＳ３３６）。なお、Ｌ２ＶＰＮインタフェース１２０が無差別モードに設定されている場合は、宛先リンク層アドレスに係わらず全てのフレームをホームネットインタフェース部１０２へ出力する。
【０２３０】
ホームネットインタフェース部１０２は、入力されたフレームからアプリケーション１０１へ渡すべきデータ「データ２」を取り出して、それをアプリケーション１０１へ出力する（ステップＳ３３７）。
【０２３１】
これにより、ホームサブネット１１３から、通信装置１００のホームネットインタフェース部１０２宛に送信されたフレームが、ホームネットインタフェース部１０２に受信されたことになる。
【０２３２】
［動作例２］
上記［動作例２］とは逆に、通信装置１００が、リモートサブネット１１４に接続している状態から、ホームサブネット１１３に接続する場合の通信装置１００の動作について説明する。
【０２３３】
図２６に示すように、通信装置１００が、第１のインタフェース１０６を通じて、リモートサブネット１１４に接続されている初期状態では、ホームネットインタフェース部１０２は、Ｌ２ＶＰＮインタフェース１２０をスレーブインタフェースとして用いて、ホームサブネット１１３上の通信機器と通信を行っている。
【０２３４】
Ｌ２ＶＰＮインタフェース１２０のリンク層アドレスは、ホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」である。すなわち、第１のインタフェース１０６をスレーブ化してホームサブネット１１３に接続されているときと同じリンク層アドレスであるから、当該Ｌ２ＶＰＮインタフェース１２０及びホームネットインタフェース部１０２のＩＰアドレスは、第１のインタフェース１０６をスレーブ化してホームサブネット１１３に接続されているときと同じＩＰアドレスである。
【０２３５】
リモートサブネット１１４に接続している間は、［動作例１］で述べたように、ホームサブネット１１３に接続されていた場合と同様、定期的にＩＦ状態変化検出部１１７やサブネット検出部１１８による監視が行われる。
【０２３６】
この状態から、通信装置１００の第１のインタフェース１０６が一旦リモートサブネット１１４との接続を切断した場合、図２５に示す状態に移行する。
【０２３７】
通信装置１００は、Ｌ２ＶＰＮトンネル５０１を介したホームサブネット１１３との通信ができなくなるため、この間、ホームサブネット１１３へのアクセシビリティが失われる。この間の動作は、[動作例１]で述べた、ホームサブネット１１３との接続を切断さいた場合の動作と同様である。
【０２３８】
この後、通信装置１００が、ホームサブネット１１３に接続すると、図２４に示す状態に移行する。図２４では、通信装置１００が、第１のインタフェース１０６を介してホームサブネット１１３に接続している。
【０２３９】
ＩＦ状態変化検出部１１７で、このようなインタフェースの状態変化を検出する（図２３のステップＳ２０１）。そして、ステップＳ２０３では、サブネット検出部１１８は、第１のインタフェース１０６はホームサブネット１１３に接続されていると検知し、ステップＳ２０６へ進む。
【０２４０】
ステップＳ２０６では、制御部１１９は、ホームネットインタフェース部１０２に対し、第１のインタフェース１０６をスレーブ化するための指示を出す。
【０２４１】
ホームネットインタフェース部１０２は、この指示を受けて、第１のインタフェース１０６のリンク層アドレス記憶部１０７に記憶されている、第１のインタフェース１０６のリンク層アドレス「ＩＦ１」をホームネットワークインタフェース部１０２の第２のリンク層アドレス記憶部１０５に記憶し、第１のインタフェース１０６のリンク層アドレス記憶部１０７に、ホームネットワークインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」を書き込み、第１のインタフェース１０６をスレーブインタフェースとする。
【０２４２】
これにより、ホームネットインタフェース部１０２が、ホームサブネット１１３と再び接続されたことになり、アプリケーション１０１はホームネットインタフェース部１０２を用いてホームサブネット１１３との通信が可能になる。
【０２４３】
［動作例３］
次に、通信装置１００が複数のネットワークに接続する場合の通信装置１００の動作を説明する。
【０２４４】
通信装置１００が備える複数のインタフェースのうちの１つが、既にホームサブネット１１３に接続しているときに、当該複数のインタフェースのうちの他の１つが、さらにホームサブネット１１３に接続した場合の通信装置１００の動作について説明する。
【０２４５】
図２９は、通信装置１００が、第２のインタフェース１０８を通じて無線ＬＡＮで、ホームサブネット１１３に接続している状態を示している。通信装置１００のホームネットインタフェース部１０２は、第２のインタフェース１０８をスレーブインタフェースに設定して、ホームサブネット１１３と無線接続して通信を行っている。
【０２４６】
ホームネットインタフェース部１０２のＩＰアドレスは、ＤＨＣＰで割り当てられているか、固定的に割り当てられているか、または自動構成によって設定されているものとする。
【０２４７】
この後、通信装置１００の第１のインタフェース１０８が、第１のインタフェース１０６を通じて有線ＬＡＮで、ホームサブネット１１３に接続すると、図３０に示す状態に移行する。
【０２４８】
ＩＦ状態変化検出部１１７が、このようなインタフェースの状態の変化を検出し（図２３のステップＳ２０１）、ステップＳ２０３において、サブネット検出部１１８の処理が行われる。この場合のサブネット検出部１１８の処理動作を、図２０を参照して説明する。
【０２４９】
図２０のステップＳ１１３では、ホームネットインタフェース部１０２の現在のスレーブインタフェースである第２のインタフェース１０８が、ホームサブネット１１３に接続されていると検知されるので、ステップＳ１１４へ進み、この第２のインタフェース１０８から同一リンク検知フレームを送信する。
【０２５０】
図３０に示す状態では、第１のインタフェース１０６がホームサブネット１１３に接続しているため、第１のインタフェース１０６は、当該同一リンク検知フレームを受信するので（ステップＳ１１５）、サブネット検出部１１８は、第１のインタフェース１０６は、ホームサブネット１１３に接続していると検知する（ステップＳ１１６）。
【０２５１】
そこで、次に、制御部１１９は、ホームサブネット１１３に接続されている第１及び第２のインタフェース１０６，１０８のうちのいずれか一方を選択する。
【０２５２】
図３０に示すような状況は、例えば有線ＬＡＮと無線ＬＡＮが同じ場所で運用されていて、通信装置１００の有線インタフェースと無線インタフェースの両方がそれぞれ有線ＬＡＮと無線ＬＡＮに接続するような場合に起こり得る。
【０２５３】
ここでは、制御部１１９は、無線より有線を優先するポリシーに基づき、有線ＬＡＮで接続されている第１のインタフェース１０６をスレーブインタフェースとして選択する（図２３のステップＳ２０６、図２１のステップＳ２０２）。制御部１１９は、ホームネットインタフェース部１０２に、第１のインタフェース１０６をスレーブ化するための指示を出力する（図２３のステップＳ２０６，図２１のステップＳ２０４）。
【０２５４】
この指示を受けて、ホームネットインタフェース部１０２は、まず、第２のリンク層アドレス記憶部１０５に記憶されている、現在のスレーブインタフェースである第２のインタフェース１０８のリンク層アドレスを、第２のインタフェース１０８のリンク層アドレス記憶部１０９に書き込み、第２のインタフェース１０８のスレーブ化を解く。次に、新たなスレーブインタフェースである第１のインタフェース１０６のリンク層アドレス記憶部１０７に記憶されている、第１のインタフェース１０６のリンク層アドレス「ＩＦ１」をホームネットワークインタフェース部１０２の第２のリンク層アドレス記憶部１０５に記憶し、第１のインタフェース１０６のリンク層アドレス記憶部１０７に、ホームネットワークインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」を書き込み、第１のインタフェース１０６をスレーブインタフェースとする。
【０２５５】
これにより、ホームネットインタフェース部１０２が、第１のインタフェース１０６を介してホームサブネット１１３と接続されたことになり、アプリケーション１０１はホームネットインタフェース部１０２を用いてホームサブネット１１３との通信が可能になる。
【０２５６】
［動作例４］
リモートサブネット１１４に接続されている通信装置１００のホームネットインタフェース部１０２が、Ｌ２ＶＰＮインタフェース１２０をスレーブインタフェースとして用いてホームサブネット１１３に接続しているときに、当該通信装置１００の備える他のインタフェースが、さらにホームサブネット１１３に接続した場合の通信装置１００の動作について説明する。
【０２５７】
図３１に示すように、通信装置１００が、第１のインタフェース１０６を通じて、リモートサブネット１１４に接続されている初期状態では、ホームネットインタフェース部１０２は、Ｌ２ＶＰＮインタフェース１２０をスレーブインタフェースとして用いて、ホームサブネット１１３上の通信機器と通信を行っている。この状態は、図２６と同様である。
【０２５８】
ホームネットインタフェース部１０２のＩＰアドレスは、ＤＨＣＰで割り当てられているか、固定的に割り当てられているか、または自動構成によって設定されているものとする。
【０２５９】
この後、通信装置１００の第２のインタフェース１０８が、ホームサブネット１１３に接続する。
【０２６０】
ＩＦ状態変化検出部１１７は、このようなインタフェースの状態変化を検知し（図２３のステップＳ２０１）、ステップＳ２０３において、サブネット検出部１１８の処理が行われる。この場合のサブネット検出部１１８は、前述の［動作例３］と同様、図２０に示す処理動作を行い、Ｌ２ＶＰＮインタフェース１２０の他に、第２のインタフェース１０８もホームサブネット１１３に接続していると検知する。
【０２６１】
このような状況は、例えば有線ＬＡＮと無線ＬＡＮが同じ場所で運用されていて、有線ＬＡＮと無線ＬＡＮが別のセグメントで運用されている場合に、通信装置１００の有線インタフェースと無線インタフェースの両方がそれぞれ有線ＬＡＮと無線ＬＡＮに接続するような場合に起こり得る。
【０２６２】
次に、制御部１１９は、ホームサブネット１１３に接続されているＬ２ＶＰＮインタフェース１２０及び第２のインタフェース１０８のうちのいずれか一方を選択する。ここでは、Ｌ２ＶＰＮインタフェースよりも直接ホームサブネット１１３に接続している第２のインタフェース１０８を優先するというポリシーが適用されていると仮定する。すると、制御部１１９は、第２のインタフェース１０８を新たなスレーブインタフェースとして選択し、ホームネットインタフェース部１０２へ第２のインタフェース１０８をスレーブ化するよう指示する（図２３のステップＳ２０６）。
【０２６３】
この指示を受けて、ホームネットインタフェース部１０２は、まず、第２のリンク層アドレス記憶部１０５に記憶されている、現在のスレーブインタフェースであるＬ２ＶＰＮインタフェース１２０のリンク層アドレスを、Ｌ２ＶＰＮインタフェース１２０のリンク層アドレス記憶部１２１に書き込み、スレーブ化を解く。次に、新たなスレーブインタフェースである第２のインタフェース１０８のリンク層アドレス記憶部１０９に記憶されている、第２のインタフェース１０６のリンク層アドレス「ＩＦ２」をホームネットワークインタフェース部１０２の第２のリンク層アドレス記憶部１０５に記憶し、第２のインタフェース１０８のリンク層アドレス記憶部１０９に、ホームネットワークインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」を書き込み、第２のインタフェース１０８をスレーブインタフェースとする。
【０２６４】
以上の動作を行った結果を図３２に示す。ホームサブネット１１３に接続されている第２のインタフェース１０８をホームネットインタフェース部１０２がスレーブ化している。ホームサブネットインタフェース部１０２は、第２のインタフェース１０８から、直接ホームサブネット１１３に接続するため、ルータ３０１と通信装置１０００間のＬ２ＶＰＮ接続が切断されている。但し、スレーブインタフェースを切替えてからすぐにＬ２ＶＰＮを切断しなければならないというわけではなく、例えば一定時間Ｌ２ＶＰＮの切断を保留するようなポリシーも考えられる。
【０２６５】
［動作例５］
図３２に示すように、通信装置１００の備える第１のインタフェース１０６，第２のインタフェースがリモートサブネット１１４とホームサブネット１１３とにそれぞれ接続している状態から、ホームサブネット１１３への接続が切断された場合の通信装置１００の動作について説明する。
【０２６６】
図３２に示すように、通信装置１００の第２のインタフェース１０８は、ホームサブネット１１３に接続し、ホームネットインタフェース部１０２のスレーブインタフェースに設定されている。ホームネットインタフェース部１０２のＩＰアドレスは、ＤＨＣＰで割り当てられているか、固定的に割り当てられているか、または自動構成によって設定されているものとする。
【０２６７】
この後、第２のインタフェース１０８とホームサブネット１１３との接続が切断されると、ＩＦ状態変化検出部１１７は、このようなインタフェースの状態変化を検出し（図２３のステップＳ２０１）、ステップＳ２０３において、サブネット検出部１１８の処理が行われる。
【０２６８】
この場合、ホームサブネット１１３に接続しているインタフェースが存在しないため（ステップＳ２０５）、ステップＳ２０７へ進み、Ｌ２ＶＰＮ接続のための処理が行われる。
【０２６９】
制御部１１９は、Ｌ２ＶＰＮインタフェース１２０を制御し、ホームサブネット１１３へのＬ２ＶＰＮ接続を行う。Ｌ２ＶＰＮインタフェース１２０は、実際にリモートサブネット１１４に接続している第１のインタフェース１０６を通じて、ホームサブネット１１３のルータ３０１との間で通信を行い、Ｌ２ＶＰＮ接続のための予め定められた処理手順を実行する。
【０２７０】
Ｌ２ＶＰＮ接続が成功すると、図３１に示すように、無線端末１００のＬ２ＶＰＮインタフェース１２０と、ホームサブネット１１３のルータ３０１のＬ２ＶＰＮインタフェース３０４とが有効となり、通信装置１００のＬ２ＶＰＮインタフェース１２０と、ホームサブネット１１３のルータ３０１のＬ２ＶＰＮインタフェース３０４との間のＬ２ＶＰＮトンネル５０１が有効となる。
【０２７１】
ＩＦ状態変化検出部１１７は、Ｌ２ＶＰＮインタフェース１２０が新たに有効化されたことを検知し（図２３のステップＳ２０１）、インタフェース状態テーブル１１６に、Ｌ２ＶＰＮインタフェース１２０に関する情報を記憶する（ステップＳ２０２）。そして、ステップＳ２０３へ進む。
【０２７２】
ステップＳ２０３において、Ｌ２ＶＰＮインタフェース１２０は、第１のネットワーク１０６を介してホームサブネット１１３とフレームの送受信が可能なため、サブネット検出部１１８は、Ｌ２ＶＰＮインタフェース１２０は、ホームサブネット１１３に接続されていると検知する。従って、ステップＳ２０５からステップＳ２０６へ進む。
【０２７３】
ステップＳ２０６では、制御部１１９は、ホームネットインタフェース部１０２に対し、Ｌ２ＶＰＮインタフェース１２０をスレーブ化すべく指示を出す。
【０２７４】
この指示を受けて、ホームネットワークインタフェース部１０２は、まず、第２のリンク層アドレス記憶部１０５に記憶されている、現在のスレーブインタフェースである第２のインタフェース１０８のリンク層アドレスを、第２のインタフェース１０８のリンク層アドレス記憶部１０９に書き込み、スレーブ化を解く。次に、Ｌ２ＶＰＮインタフェース１２０のリンク層アドレス記憶部１２１に記憶されている、当該Ｌ２ＶＰＮインタフェース本来のリンク層アドレスを第２のリンク層アドレス記憶部１０５に記憶し、ホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」をＬ２ＶＰＮインタフェース１２０のリンク層アドレス記憶部１２１に書き込む。この結果、Ｌ２ＶＰＮインタフェース１２０は、ホームネットインタフェース部１０２のスレーブインタフェースとして設定され、ホームネットインタフェース部１０２が、ホームサブネット１１３と再び接続されたことになり、アプリケーション１０１は、ホームネットインタフェース部１０２を用いてホームサブネット１１３上の通信機器との通信が行える。
【０２７５】
以上説明したように、上記実施形態によれば、ホームネットインタフェース部１０２がホームサブネット１１３上の通信機器と通信を行う際に用いるスレーブインタフェースが切り替わっても（図１の第１のインタフェース１０６、第２のインタフェース１０８、Ｌ２ＶＰＮインタフェース１２０のうちのどれがスレーブインタフェースに設定されようと）、スレーブインタフェースのリンク層アドレスは、常に、ホームネットインタフェース部１０２のリンク層アドレス「ＨＮＩＦ」である。
【０２７６】
スレーブインタフェースのＩＰアドレスがＤＨＣＰ等で動的に割り当てられる場合、スレーブインタフェースであるインタフェースのリンク層アドレスは、常に同じリンク層アドレス「ＨＮＩＦ」であるから、このリンク層アドレス「ＨＮＩＦ」に対応して、ＩＰアドレスを取得するようにＤＨＣＰ等が適切に設定されていれば、ホームネットインタフェース部１０２が、どのインタフェースをスレーブインタフェースとして用いていようと、同じＩＰアドレスである確率が非常に高くなる。
【０２７７】
すなわち、通信装置１００は、どこにいようと（どのインタフェースをスレーブインタフェースとして用いようとも）、常に同じリンク層アドレス「ＨＮＩＦ」とＩＰアドレスを用いて、ホームサブネット１１３上の通信機器と通信を行うことができる。
【０２７８】
通信装置１００が、どのインタフェースをスレーブインタフェースとして用いようとも、ホームサブネット１１３上の通信機器と通信を行う際に用いるリンク層アドレスとＩＰアドレスの組合せが不変であると、ホームサブネット１１３上の通信機器のＡＲＰテーブル上の書き換えを行う必要が無くなり、より安定した通信の継続が可能となる。
【０２７９】
また、通信装置１００では、スレーブインタフェースの切替が起こった場合に、フレーム中の送信元・宛先リンク層アドレスの書き換えが不要となり、フレーム処理の負荷を軽減することができる。
【０２８０】
通信装置１００がどのネットワーク（サブネット）に接続していても、Ｌ２ＶＰＮ接続が可能な限り、アプリケーション１０１は、ホームサブネット１１３内にいる場合と同様の環境で継続的にホームサブネット１１３へアクセスすることが可能になる。
【図面の簡単な説明】
【０２８１】
【図１】本発明の実施形態にかかる通信装置の構成例を示した図。
【図２】スレーブインタフェースのフレーム受信動作を説明するためのフローチャート。
【図３】ホームネットインタフェース部にスレーブ化されているインタフェースと各インタフェースのリンク層アドレスの関係を示す図。
【図４】通信装置の第１のインタフェースがスイッチの第１のポートに接続されている様子を示す図。
【図５】第１のインタフェースが、ホームネットインタフェース部にスレーブ化される際の、リンク層アドレス、及びスイッチの第１のＦＤＢの状態を示す図。
【図６】通信装置が備える複数のインタフェースのうち、ホームサブネットに接続しているインタフェースの検知方法の一例を説明するためのフローチャート。
【図７】ＩＣＭＰ／ＩＣＭＰｖ６  ｅｃｈｏリクエストフレームのフォーマットを示す図。
【図８】通信装置が備える複数のインタフェースのうち、ホームサブネットに接続しているインタフェースの検知方法の他の例を示すシーケンス図。
【図９】通信装置が備える複数のインタフェースのうち、ホームサブネットに接続しているインタフェースの検知方法の他の例を示すシーケンス図。
【図１０】通信装置が備える複数のインタフェースのうち、ホームサブネットに接続しているインタフェースの他の検知方法を説明するためのフローチャート。
【図１１】ＡＲＰフレームのフォーマットを示す図。
【図１２】通信装置が備える複数のインタフェースのうち、ホームサブネットに接続しているインタフェースのさらに他の検知方法を説明するためのフローチャート。
【図１３】ＲＡＲＰフレームのフォーマットを示す図。
【図１４】通信装置が備える複数のインタフェースのうち、ホームサブネットに接続しているインタフェースのさらに他の検知方法を説明するためのフローチャート。
【図１５】通信装置が備える複数のインタフェースのうち、ホームサブネットに接続しているインタフェースのさらに他の検知方法を説明するためのフローチャート。
【図１６】ＩＣＭＰｖ６  ＲＳフレームのフォーマットを示す図。
【図１７】通信装置が備える複数のインタフェースのうち、ホームサブネットに接続しているインタフェースのさらに他の検知方法を説明するためのフローチャート。
【図１８】通信装置が、ホームサブネットに接続している全てのインタフェースを検知するための処理手順を示すフローチャート。
【図１９】通信装置が、ホームサブネットに接続している全てのインタフェースを検知するための他の処理手順を示すフローチャート。
【図２０】通信装置が、ホームサブネットに接続している全てのインタフェースを検知するためのさらに他の処理手順を示すフローチャート。
【図２１】ホームネットインタフェース部の制御部において、スレーブインタフェースとするイオンタフェースを選択するための処理手順を示すフローチャート。
【図２２】ホームネットインタフェース部の構成例を示す図。
【図２３】ホームネットインタフェースの処理動作を説明するためのフローチャート。
【図２４】通信装置がホームサブネットに接続している状態を示す図。
【図２５】通信装置がホームサブネット・リモートサブネット間を移動中の状態を示す図。
【図２６】通信装置がリモートサブネットに接続している状態を示す図。
【図２７】通信装置が第１のインタフェースをスレーブインタフェースとして用いてホームサブネットに接続しているときの、通信装置におけるフレーム送受信の手順を説明するための図。
【図２８】第１のインタフェースを介して、リモートサブネットに接続している通信装置が、Ｌ２ＶＰＮインタフェースをスレーブインタフェースとして用いてホームサブネットに接続しているときの、通信装置におけるフレーム送受信の手順を説明するための図。
【図２９】通信装置が、第２のインタフェースを通じて無線ＬＡＮで、ホームサブネットに接続している状態を示す図。
【図３０】通信装置が、第２のインタフェースを通じて無線ＬＡＮでホームサブネットに接続し、さらに、第１のインタフェースを通じて有線ＬＡＮでホームサブネット１１３に接続している状態を示す図。
【図３１】通信装置が、第１のインタフェースを通じて、リモートサブネットに接続されている状態を示す図。
【図３２】通信装置の備える第１のインタフェース、第２のインタフェースがリモートサブネットとホームサブネット１１３とにそれぞれ接続している状態を示す図。
【符号の説明】
【０２８２】
１００…通信装置；１０１…アプリケーション；１０２…ホームネットインタフェース部；
１０３…ＩＰアドレス記憶部；１０４…第１のリンク層アドレス記憶部；
１０５…第２のリンク層アドレス記憶部；１０６…第１のインタフェース；
１０７…リンク層アドレス記憶部；１０８…第２のインタフェース；
１０９…リンク層アドレス記憶部；１１５…ホームネットインタフェースコントローラ（コントローラ）；１１６…インタフェース状態テーブル；
１２０…Ｌ２ＶＰＮインタフェース；１２１…リンク層アドレス記憶部
【図１】
2007089019.tif 000003
【図２】
2007089019.tif 000004
【図３】
2007089019.tif 000005
【図４】
2007089019.tif 000006
【図５】
2007089019.tif 000007
【図６】
2007089019.tif 000008
【図７】
2007089019.tif 000009
【図８】
2007089019.tif 000010
【図９】
2007089019.tif 000011
【図１０】
2007089019.tif 000012
【図１１】
2007089019.tif 000013
【図１２】
2007089019.tif 000014
【図１３】
2007089019.tif 000015
【図１４】
2007089019.tif 000016
【図１５】
2007089019.tif 000017
【図１６】
2007089019.tif 000018
【図１７】
2007089019.tif 000019
【図１８】
2007089019.tif 000020
【図１９】
2007089019.tif 000021
【図２０】
2007089019.tif 000022
【図２１】
2007089019.tif 000023
【図２２】
2007089019.tif 000024
【図２３】
2007089019.tif 000025
【図２４】
2007089019.tif 000026
【図２５】
2007089019.tif 000027
【図２６】
2007089019.tif 000028
【図２７】
2007089019.tif 000029
【図２８】
2007089019.tif 000030
【図２９】
2007089019.tif 000031
【図３０】
2007089019.tif 000032
【図３１】
2007089019.tif 000033
【図３２】
2007089019.tif 000034