(57)【特許請求の範囲】
【請求項１】
プライベートアドレスを用いて構成されたネットワーク内において、ＮＡＴ機能を有するネットワーク機器と、端末とに接続され、当該端末についての前記ネットワーク外とのＩＰ通信の通信経路を確保するための通信装置において、
前記プライベートアドレスを設定する手段と、
前記端末に対して仮想ＩＰアドレスを割り当てる手段と、
前記端末から受信するＩＰパケットの送信元アドレスに書き込まれた前記端末に割り当てた前記仮想ＩＰアドレスを、前記通信装置に設定された前記プライベートアドレスに変換し、前記端末から受信するＩＰパケットの宛先アドレスに書き込まれた宛先端末の仮想ＩＰアドレスを、前記宛先端末にＮＡＴ機能を提供するネットワーク機器に設定されたグローバルアドレスに変換する手段と
を備えたことを特徴とする通信装置。
【請求項２】
前記端末に対して割り当てる仮想ＩＰアドレスを問い合わせる手段を備えたことを特徴とする請求項１に記載の通信装置。
【請求項３】
プライベートアドレスを用いて構成されたネットワーク内で、ＮＡＴ機能を有するネットワーク機器と、端末とに接続され、当該端末についての前記ネットワーク外とのＩＰ通信の通信経路を確保するための通信方法において、
前記プライベートアドレスを設定するステップと、
前記端末に対して仮想ＩＰアドレスを割り当てるステップと、
前記端末から受信するＩＰパケットの送信元アドレスに書き込まれた前記端末に割り当てた前記仮想ＩＰアドレスを、前記通信装置に設定された前記プライベートアドレスに変換し、前記端末から受信するＩＰパケットの宛先アドレスに書き込まれた宛先端末の仮想ＩＰアドレスを、前記宛先端末にＮＡＴ機能を提供するネットワーク機器に設定されたグローバルアドレスに変換するステップと
を含むことを特徴とする通信方法。
【請求項４】
前記端末に対して割り当てる仮想ＩＰアドレスを問い合わせるステップを含むことを特徴とする請求項３に記載の通信方法。
【請求項５】
コンピュータに、請求項３または４に記載のステップを実行させるためのプログラム。
【請求項６】
プライベートアドレスを用いて構成されたネットワーク内において、ＮＡＴ機能を有するネットワーク機器と接続される端末において、
前記プライベートアドレスと仮想ＩＰアドレスを設定する手段と、
当該端末のアプリケーションから送信されるＩＰパケットの送信元アドレスに書き込まれた前記端末に割り当てた前記仮想ＩＰアドレスを、前記端末に設定された前記プライベートアドレスに変換し、前記アプリケーションから受信するＩＰパケットの宛先アドレスに書き込まれた宛先端末の仮想ＩＰアドレスを、前記宛先端末にＮＡＴ機能を提供するネットワーク機器に設定されたグローバルアドレスに変換する手段と
を備えたことを特徴とする通信装置。
【請求項７】
プライベートアドレスを用いて構成されたネットワーク内で、ＮＡＴ機能を有するネットワーク機器と接続された端末において、当該端末についての前記ネットワーク外とのＩＰ通信の通信経路を確保するための通信方法において、
前記プライベートアドレスと仮想ＩＰアドレスを設定するステップと、
当該端末のアプリケーションから送信されるＩＰパケットの送信元アドレスに書き込まれた前記端末に割り当てた前記仮想ＩＰアドレスを、前記端末に設定された前記プライベートアドレスに変換し、前記アプリケーションから受信するＩＰパケットの宛先アドレスに書き込まれた宛先端末の仮想ＩＰアドレスを、前記宛先端末にＮＡＴ機能を提供するネットワーク機器に設定されたグローバルアドレスに変換するステップと
を含むことを特徴とする通信方法。
【請求項８】
コンピュータに、請求項７に記載のステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信方法および装置に関し、より詳細には、プライベートアドレスを用いて構成された閉域網であるＬＡＮ内の端末と、当該ＬＡＮ外の端末とのＩＰ通信において、ＮＡＴ機能が実装されている場合に通信経路を確保するための通信方法および装置に関する。
【背景技術】
【０００２】
近年、インターネットに接続するコンピュータの増大により、ＩＰアドレスの不足という問題が顕著化している。そこで、ＩＰアドレスの不足を解消するための一つの方法として、ＮＡＴ（Network Address Translator）機能が利用されている。ＮＡＴ機能は、閉域網であるＬＡＮ内のプライベートアドレスを有するクライアントと、インターネット内のグローバルアドレスを有するホストコンピュータとの間で通信を行うために、アドレス変換を行う。
【０００３】
図１に、ＮＡＴ機能を説明するためのネットワーク接続図を示す。クライアント１１には、プライベートアドレスＡとグローバルアドレスＭとが割り当てられている。ルータ１３には、ＮＡＴ機能が実装されており、プライベートアドレスをグローバルアドレスに変換するための変換テーブルが格納されている。ここでクライアント１１からインターネット内のホスト１２（グローバルアドレスＮ）へ、ルータ１３，１４を介してＩＰパケットを送信する。クライアント１１から送信されるＩＰパケットのヘッダには、宛先アドレス２１として「Ｎ」、送信元アドレス２２として「Ａ」が書き込まれ、ＴＣＰヘッダには、宛先ポート番号２３として「２００」、送信元ポート番号２４として「１００」が書き込まれている。ルータ１３は、変換テーブルを参照して、送信元アドレス２２のプライベートアドレスＡをグローバルアドレスＭに変換し、ルータ１４に向けてパケットを送信する。
【０００４】
次に、ホスト１２からクライアント１１へ、ルータ１４，１３を介してＩＰパケットを送信する。ホスト１２から送信されるＩＰパケットのヘッダには、宛先アドレス３１として「Ｍ」、送信元アドレス３２として「Ｎ」が書き込まれ、ＴＣＰヘッダには、宛先ポート番号３３として「１００」、送信元ポート番号３４として「２００」が書き込まれている。ルータ１３は、変換テーブルを参照して、宛先アドレス３１のグローバルアドレスＭをプライベートアドレスＡに変換し、ＬＡＮ内のクライアント１１に向けてパケットを送信する。
【０００５】
【特許文献１】特開２００５−１１７５８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
プライベートアドレスを用いて構成された閉域網であるＬＡＮ内のクライアント（端末）とのＩＰ通信において、ＮＡＴ機能が実装されている場合、該ＬＡＮ外のホストコンピュータなどの（端末）からクライアント（端末）に接続することができないという問題があった。
【０００７】
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、プライベートアドレスを用いて構成された閉域網であるＬＡＮ内の端末と、当該ＬＡＮ外の端末とのＩＰ通信において、ＮＡＴ機能が実装されている場合に通信経路を確保するための通信方法および装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、このような目的を達成するために、請求項１に記載の発明は、プライベートアドレスを用いて構成されたネットワーク内において、ＮＡＴ機能を有するネットワーク機器と、端末とに接続され、当該端末についての前記ネットワーク外とのＩＰ通信の通信経路を確保するための通信装置において、前記プライベートアドレスを設定する手段と、前記端末に対して仮想ＩＰアドレスを割り当てる手段と、前記端末から受信するＩＰパケットの送信元アドレスに書き込まれた前記端末に割り当てた前記仮想ＩＰアドレスを、前記通信装置に設定された前記プライベートアドレスに変換し、前記端末から受信するＩＰパケットの宛先アドレスに書き込まれた宛先端末の仮想ＩＰアドレスを、前記宛先端末にＮＡＴ機能を提供するネットワーク機器に設定されたグローバルアドレスに変換する手段とを備えたことを特徴とする。
【０００９】
請求項３に記載の発明は、プライベートアドレスを用いて構成されたネットワーク内で、ＮＡＴ機能を有するネットワーク機器と、端末とに接続され、当該端末についての前記ネットワーク外とのＩＰ通信の通信経路を確保するための通信方法において、前記プライベートアドレスを設定するステップと、前記端末に対して仮想ＩＰアドレスを割り当てるステップと、前記端末から受信するＩＰパケットの送信元アドレスに書き込まれた前記端末に割り当てた前記仮想ＩＰアドレスを、前記通信装置に設定された前記プライベートアドレスに変換し、前記端末から受信するＩＰパケットの宛先アドレスに書き込まれた宛先端末の仮想ＩＰアドレスを、前記宛先端末にＮＡＴ機能を提供するネットワーク機器に設定されたグローバルアドレスに変換するステップとを含むことを特徴とする。
【００１０】
請求項６に記載の発明は、プライベートアドレスを用いて構成されたネットワーク内において、ＮＡＴ機能を有するネットワーク機器と接続される端末において、前記プライベートアドレスと仮想ＩＰアドレスを設定する手段と、当該端末のアプリケーションから送信されるＩＰパケットの送信元アドレスに書き込まれた前記端末に割り当てた前記仮想ＩＰアドレスを、前記端末に設定された前記プライベートアドレスに変換し、前記アプリケーションから受信するＩＰパケットの宛先アドレスに書き込まれた宛先端末の仮想ＩＰアドレスを、前記宛先端末にＮＡＴ機能を提供するネットワーク機器に設定されたグローバルアドレスに変換する手段とを備えたことを特徴とする。
【００１１】
請求項７に記載の発明は、プライベートアドレスを用いて構成されたネットワーク内で、ＮＡＴ機能を有するネットワーク機器と接続された端末において、当該端末についての前記ネットワーク外とのＩＰ通信の通信経路を確保するための通信方法において、前記プライベートアドレスと仮想ＩＰアドレスを設定するステップと、当該端末のアプリケーションから送信されるＩＰパケットの送信元アドレスに書き込まれた前記端末に割り当てた前記仮想ＩＰアドレスを、前記端末に設定された前記プライベートアドレスに変換し、前記アプリケーションから受信するＩＰパケットの宛先アドレスに書き込まれた宛先端末の仮想ＩＰアドレスを、前記宛先端末にＮＡＴ機能を提供するネットワーク機器に設定されたグローバルアドレスに変換するステップとを含むことを特徴とする。
【発明の効果】
【００１２】
以上説明したように、本発明によれば、プライベートアドレスを用いて構成された閉域網であるＬＡＮ内の端末と、当該ＬＡＮ外の端末とのＩＰ通信において、ＮＡＴ機能が実装されている場合に通信経路を確保するための通信方法および装置を提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照しながら本発明の実施形態について詳細に説明する。  
なお、以下で説明する図面で、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。  
本発明の一実施形態に係る通信装置（以下、ＶＰＮ（Virtual Private Network）形成装置ともいう）は、ＬＡＮ内の端末と、ＮＡＴ機能を提供するルータなどのネットワーク機器とに接続される。
【００１４】
ＶＰＮ形成装置は、ＬＡＮ内の端末に対して通信用ＩＰアドレス（以下、仮想ＩＰアドレスともいう）を割り当てる。一実施形態では、ＶＰＮ形成装置によるＬＡＮ内の端末に対する仮想ＩＰアドレスの割り当ては、ＤＨＣＰ（Dynamic Host Configuration Protocol）を用いて行われる。
【００１５】
ＶＰＮ形成装置は、仮想ＩＰアドレスに関連するＩＰパケットのルーチング機能を提供する。
【００１６】
一実施形態では、ＶＰＮ形成装置がＬＡＮ内の端末に対して割り当てる仮想ＩＰアドレスの範囲を、予めＶＰＮ形成装置毎に定めて、当該装置内の記憶装置に記憶させることができきる。すなわち、ＶＰＮ形成装置は、記憶装置内に記憶した仮想ＩＰアドレスの範囲で、ＬＡＮ内の端末に対する仮想ＩＰアドレスの割り当て、再割り当てをすることができる。
【００１７】
別の実施形態では、ＶＰＮ形成装置は、ＬＡＮ内の端末に対して割り当てる仮想ＩＰアドレスをセッション管理サーバに問い合わせるように構成することができる。すなわち、ＶＰＮ形成装置は、セッション管理サーバによって決定された仮想ＩＰアドレスをＬＡＮ内の端末に対して割り当てることができる。さらに別の実施形態では、セッション管理サーバは、仮想ＩＰアドレスの範囲を決定し、ＶＰＮ形成装置に通知するようにしてもよい。すなわち、セッション管理サーバは、ＬＡＮの規模に応じて、ＶＰＮ形成装置がＬＡＮ内の端末に対して割り当てる仮想ＩＰアドレスの範囲を決定することができ、ＶＰＮ形成装置は、その範囲内で、ＬＡＮ内の端末に対して仮想ＩＰアドレスを割り当てることができる。
【００１８】
さらに、別の実施形態では、ＶＰＮ形成装置は、ＬＡＮ内の端末に対して割り当てる仮想ＩＰアドレスを他のＶＰＮ形成装置に対して問い合わせるようにすることができる。
【００１９】
さらに、上記ＶＰＮ形成装置の機能をソフトウェアで実装する通信モジュール（ＶＰＮ形成モジュール）として実施することができる。
【００２０】
（第１の実施形態）
図２に、本発明の第１の実施形態に係る通信装置（ＶＰＮ形成装置）を適用したネットワークを示す。
【００２１】
図２に示すネットワーク２００は、広域通信網であるＷＡＮにそれぞれ接続されたセッション管理サーバ２１０、ルータ２４１およびルータ２４２と、ルータ２４１と端末２３１および端末２３２とに接続されたＶＰＮ形成装置２２１と、ルータ２４２と端末２３３とに接続されたＶＰＮ形成装置２２２とを含む。端末２３１および端末２３２と端末２３３との間にＶＰＮが形成される、すなわち通信経路が確保される。
【００２２】
ルータ２４１と、端末２３１および２３２と、ＶＰＮ形成装置２２１とは、ＬＡＮ（以下、ＬＡＮ１ともいう）を形成する。同様に、ルータ２４２と、端末２３３と、ＶＰＮ形成装置２２２とは、ＬＡＮ（以下、ＬＡＮ２ともいう）を形成する。
【００２３】
ルータ２４１は、ＷＡＮ（インターネット）とＬＡＮ１の境界に設置され、グローバルＩＰアドレスｘ．ｘ．ｘ．ｘおよびプライベートアドレス１９２．１６８．０．１が設定されている。同様に、ルータ２４１は、ＷＡＮ（インターネット）とＬＡＮ２の境界に設置され、グローバルＩＰアドレスｙ．ｙ．ｙ．ｙおよびプライベートアドレス１９２．１６８．１．１が設定されている。
【００２４】
ルータ２４１および２４２はそれぞれ、ＬＡＮ１およびＬＡＮ２を形成する端末に対してプライベートアドレスを割り当てるＤＨＣＰサービスを提供する。また、ルータ２４１および２４２はそれぞれ、ＬＡＮ１およびＬＡＮ２を形成する端末に対して上述したＮＡＴ機能を提供する。
【００２５】
ＶＰＮ形成装置２２１は、ルータ２４１が提供するＤＨＣＰサービスによって割り当てられたプライベートアドレス１９２．１６８．０．２が設定されている。ただし、ＶＰＮ形成装置２２１に、プライベートアドレス１９２．１６８．０．２をルータ２４１が提供するＤＨＣＰサービス以外の方法で設定してもよい。したがって、ルータ２４１にとって、ＶＰＮ形成装置２２１はＬＡＮ１内の１つの端末装置として位置づけられる。
【００２６】
ＶＰＮ形成装置２２１は、端末２３１および２３２に対してＤＨＣＰサービスを提供し、仮想ＩＰアドレスを割り当てる。
【００２７】
さらに、ＶＰＮ形成装置２２１は、仮想ＩＰアドレスを用いた、端末２３１または２３２とのＩＰ通信におけるＩＰパケットのルーチング機能を有する。
【００２８】
同様に、ＶＰＮ形成装置２２２は、ルータ２４２が提供するＤＨＣＰサービスによって割り当てられたプライベートアドレス１９２．１６８．１．２が設定されている。したがって、ルータ２４２にとって、ＶＰＮ形成装置２２２はＬＡＮ２内の１つの端末装置として位置づけられる。
【００２９】
ＶＰＮ形成装置２２２は、端末２３３に対してＤＨＣＰサービスを提供し、仮想ＩＰアドレスを割り当てるとともに、仮想ＩＰアドレスを用いた端末２３３とのＩＰ通信におけるＩＰパケットのルーチング機能を有する。
【００３０】
セッション管理サーバ２１０は、ＶＰＮ形成装置がＬＡＮ内の端末に対して割り当てる仮想ＩＰアドレスおよび仮想ＩＰアドレスが設定された端末間のルーチングに関する情報を管理する。たとえば、ＶＰＮ形成装置からの問い合わせに対して、当該ＶＰＮ形成装置がＬＡＮ内の端末に対して割り当てることができる仮想ＩＰアドレスを回答することができる。また、セッション管理サーバ２１０は、ＶＰＮ形成装置に対して、異なるＬＡＮ内にある仮想ＩＰアドレスが設定された端末間のルーチングに関する情報を提供する。
【００３１】
したがって、仮想ＩＰアドレスが設定された端末間のルーチングに関する情報をセッション管理サーバ２１０から取得し、ＶＰＮ形成装置はルーチングテーブルを生成することができる。あるいは、仮想ＩＰアドレスが設定された端末間のルーチングに関する情報としてルーチングテーブルをセッション管理サーバ２１０が提供し、ＶＰＮ形成装置は、セッション管理サーバ２１０から提供されるルーチングテーブルの一部または全部を保持するようにしてもよい。
【００３２】
ＶＰＮ形成装置に、ＬＡＮ内の端末に対して割り当てる仮想ＩＰアドレス空間、およびこれらの仮想ＩＰアドレスを用いたＩＰパケットのルーチングテーブルが予め設定しておいてもよい。
【００３３】
端末２３１は、ＮＡＳ（Network Attached Storage）を例示し、ＶＰＮ形成装置２２１によって割り当てられた仮想ＩＰアドレス１０．０．０．１が設定されている。端末２３２は、パーソナルコンピュータ（ＰＣ）を例示し、ＶＰＮ形成装置２２１によって割り当てられた仮想ＩＰアドレス１０．０．０．２が設定されている。端末２３３は、パーソナルコンピュータ（ＰＣ）を例示し、ＶＰＮ形成装置２２２によって割り当てられた仮想ＩＰアドレス１０．０．０．３が設定されている。
【００３４】
ここで、仮想ＩＰアドレスを割り当てについて、ＶＰＮ形成装置２２１を例に説明する。  
ＶＰＮ形成装置２２１内の設定ファイルに予め設定された仮想ＩＰアドレスを取得して、端末２３２に割り当てる場合、ＶＰＮ形成装置２２１は、ＶＰＮ形成装置２２１内の設定ファイルから仮想ＩＰアドレス「１０．０．０．２」を取得して、端末２３２に割り当てる。次いで、ＶＰＮ形成装置２２１は、ルータ２４１に問い合わせルータの変換テーブルに設定されている自身のポート番号「１００」、グローバルアドレス「Ｘ．Ｘ．Ｘ．Ｘ」を取得し、ＲＡＭに格納する。そしてＶＰＮ形成装置２２１は、ソケット（ポート番号「１００」＋仮想ＩＰアドレス「１０．０．０．２」＋グローバルアドレス「Ｘ．Ｘ．Ｘ．Ｘ」）をセッション管理サーバ２１０へ送信し格納する。
【００３５】
セッション管理サーバ２１０から仮想ＩＰアドレスを取得して、端末２３２に割り当てる場合、ＶＰＮ形成装置２２１は、ルータ２４１に問い合わせルータの変換テーブルに設定されている自身のポート番号「１００」を取得し、ＲＡＭに格納する。ＶＰＮ形成装置２２１は、セッション管理サーバ２１０へポート番号「１００」に対する仮想ＩＰアドレス割り当てをリクエストする。そしてＶＰＮ形成装置２２１は、予めセッション管理サーバ２１０に格納されているソケット（ポート番号「１００」＋仮想ＩＰアドレス「１０．０．０．２」＋グローバルアドレス「Ｘ．Ｘ．Ｘ．Ｘ」）を取得する。ＶＰＮ形成装置２２１は、取得したソケットから仮想ＩＰアドレス「１０．０．０．２」、グローバルアドレス「Ｘ．Ｘ．Ｘ．Ｘ」を取得し、ＲＡＭに格納する。ＶＰＮ形成装置２２１は、取得した仮想ＩＰアドレス「１０．０．０．２」を端末２３２に割り当てる。
【００３６】
ＶＰＮ形成装置同士の通信によって仮想ＩＰアドレスを取得して、端末２３２に割り当てる場合、ＶＰＮ形成装置２２１は、所定の仮想ＩＰアドレス空間における空き仮想ＩＰアドレス認識をする。ＶＰＮ形成装置同士が互いに通信する際は、ＶＰＮ形成装置に仮想ＩＰアドレスを割り当て、当該仮想ＩＰアドレスを指定して通信を行うようにしてもよい。このようにすることで、例えば、ＶＰＮ形成装置２２１は、ＶＰＮ形成装置同士の通信を以下に説明する端末２３２と端末２３３との間の通信と同様に扱うことができる。仮想ＩＰアドレス間の通信は市販のＳＤＫ等によるＮＡＴ越え及びファイアウォール越えのセッションを張り、そのセッション上でパケットをトンネリングさせることで通信が行われる。ＶＰＮ形成装置２２１は、空き仮想ＩＰアドレスのうちの最若番の仮想ＩＰアドレス（この例では「１０．０．０．２」）を取得し、ＲＡＭに格納する。そしてＶＰＮ形成装置２２１は、ルータ２４１に問い合わせルータの変換テーブルに設定されている自身のポート番号「１００」、グローバルアドレス「Ｘ．Ｘ．Ｘ．Ｘ」を取得し、ＲＡＭに格納する。ＶＰＮ形成装置２２１は、ソケット（ポート番号「１００」＋仮想ＩＰアドレス「１０．０．０．２」＋グローバルアドレス「Ｘ．Ｘ．Ｘ．Ｘ」）をセッション管理サーバ２１０へ送信し格納する。
【００３７】
次に、図３を参照して、図２に示した端末２３２と端末２３３との間のＩＰ通信を説明する。  
図３（ａ）に示すように、端末２３２および２３３には、それぞれ仮想ＩＰアドレスＳＡ（１０．０．０．２）および仮想ＩＰアドレスＤＡ（１０．０．０．３）が割り当てられている。
【００３８】
ＶＰＮ形成装置２２１および２２２には、それぞれプライベートアドレスＳＢ（１９２．１６８．０．２）およびプライベートアドレスＤＢ（１９２．１６８．１．２）が割り当てられている。ＶＰＮ形成装置２２１および２２２には、仮想ＩＰアドレスに関連するＩＰパケットをルーチングするためのルーチングテーブルがそれぞれ格納されている。ルーチングテーブルは、例えば、仮想ＩＰアドレスＳＡ（１０．０．０．２）および仮想ＩＰアドレスＤＡ（１０．０．０．３）との通信を個別に、すなわち仮想ＩＰアドレス毎に設定することもでき、仮想ＩＰアドレスのネットワークアドレス部を用いて設定することもできる。
【００３９】
ルータ２４１および２４２には、それぞれグローバルアドレスＳＭ（ｘ．ｘ．ｘ．ｘ）およびグローバルアドレスＤＭ（ｙ．ｙ．ｙ．ｙ）が割り当てられている。ルータ２４１および２４２には、ＮＡＴ機能が実装されており、プライベートアドレスをグローバルアドレスに変換するための変換テーブルがそれぞれ格納されている。
【００４０】
ここでＬＡＮ１内の端末２３２からＬＡＮ２内の端末２３３へ、ＶＰＮ形成装置２２１、ルータ２４１、２４２、およびＶＰＮ形成装置２２２を介してＩＰパケットを送信する。
【００４１】
図３（ｂ）に示すように、端末２３２から送信されるＩＰパケットのヘッダには、宛先アドレス２１として「ＤＡ」、送信元アドレス２２として「ＳＡ」が書き込まれ、ＴＣＰヘッダには、宛先ポート番号２３として「２００」、送信元ポート番号２４として「１００」が書き込まれている。
【００４２】
ＶＰＮ形成装置２２１は、パケットの受信を検知すると受信したパケットについて、仮想ＩＰアドレスが設定された端末宛のパケットか否かを判定する。即ち、ＶＰＮ形成装置２２１は、仮想ＩＰアドレスに固有のネットワークセグメント（例：１０．０．０．０／８）内のＩＰアドレスが受信したパケットのＩＰヘッダの宛先アドレスに設定されている場合、そのＩＰアドレスを仮想ＩＰアドレスと判定し、受信したパケットは仮想ＩＰアドレスが設定された端末宛のパケットであると判定する。
【００４３】
ＶＰＮ形成装置２２１は、ルーチングテーブルを参照して、送信元アドレス２２の仮想ＩＰアドレスＳＡをプライベートアドレスＳＢに変換し、宛先アドレス２１の仮想ＩＰアドレスＤＡをグローバルアドレスＤＭに変換し、ルータ２４１に向けてパケットを送信する。
【００４４】
ルータ２４１は、変換テーブルを参照して、送信元アドレス２２のプライベートアドレスＳＢをグローバルアドレスＳＭに変換し、ルータ２４２に向けてパケットを送信する。
【００４５】
ルータ２４２は、変換テーブルを参照して、宛先アドレス２１のグローバルアドレスＤＭをプライベートアドレスＤＢに変換して、ＶＰＮ形成装置２２２に向けてパケットを送信する。
【００４６】
ＶＰＮ形成装置２２２は、ルーチングテーブルを参照して、送信元アドレス２２のグローバルアドレスＳＭを仮想ＩＰアドレスＳＡに変換し、宛先アドレス２１のプライベートアドレスＤＢを仮想ＩＰアドレスＤＡに変換し、端末２３３に向けてパケットを送信する。
【００４７】
次に、端末２３３から端末２３２へ、ＶＰＮ形成装置２２２、ルータ２４２，２４１、およびＶＰＮ形成装置２２１を介してＩＰパケットを送信する。
【００４８】
図３（ｃ）に示すように、端末２３３から送信されるＩＰパケットのヘッダには、宛先アドレス３１として「ＳＡ」、送信元アドレス３２として「ＤＡ」が書き込まれ、ＴＣＰヘッダには、宛先ポート番号３３として「２００」、送信元ポート番号３４として「１００」が書き込まれている。
【００４９】
ＶＰＮ形成装置２２２は、ルーチングテーブルを参照して、宛先アドレス３１のＳＡをグローバルアドレスＳＭに変換し、送信元アドレス３２のＤＡをプライベートアドレスＤＢに変換し、ルータ２４２へ送信する。
【００５０】
ルータ２４２は、変換テーブルを参照して、送信元アドレス３２のグローバルアドレスＤＢをグローバルアドレスＤＭに変換し、ルータ２４１に向けてパケットを送信する。
【００５１】
ルータ２４１は、宛先アドレス３１のＳＭをプライベートアドレスＳＢに変換し、ＶＰＮ形成装置２２１へ向けてパケットを送信する。
【００５２】
ＶＰＮ形成装置２２１は、宛先アドレス３１のＳＢを仮想ＩＰアドレスＳＡに変換し、送信元アドレス３２のＤＭを仮想ＩＰアドレスＤＡに変換し、端末２３２へ向けてパケットを送信する。
【００５３】
なお、上記の通り、ルータにとって、ＶＰＮ形成装置はＬＡＮ内の１つの端末装置として位置づけられる。したがって、端末２３２からインターネット内のグローバルアドレスを有するサーバやホストなどの端末に送信されるＩＰパケットは、ＶＰＮ形成装置を介してルータへ送信され、従来と同様にルータのＮＡＴ機能によって処理される。
【００５４】
ここで、ＶＰＮ形成装置が備えていることが望ましいＮＡＴ越え機能を説明する（特許文献１に開示された技術を適用した例である）。ＮＡＴ機能を利用した接続環境において、Ｐ２Ｐアプリケーションを実現するためには、通信の開始から終了まで、ルータにおける所定のポートを常に開いておく必要がある。そこで、図４を参照し通信の最初にポートを開いておく方法、図５を参照し一旦開いたポートを維持する方法を順次説明する。
【００５５】
図４を参照すると、端末間でＰ２Ｐ通信を行う場合には、ＩＣＭＰ（Internet Control Message Protocol）パケット（宛先到達不能メッセージ）によるブロックを避けて、最初に、セッションで使用するルータのポートを開いておく必要がある。そこで、ルータ２４１までのホップ数を調べ、ポートを開けるためのＵＤＰパケットを送信する。
【００５６】
具体的には、ＶＰＮ形成装置２２１でＩＣＭＰのエコーパケットを生成し、ＴＴＬ（Time To Live）＝１で送信する。順次、ＴＴＬ＝２．３…と増やして、複数のエコーパケットを送信する。ＴＴＬの数値がルータ２４１のホップ数と等しいエコーパケット５１を送信すると、ルータ２４１よりエコーパケット５２がＶＰＮ形成装置２２１に返送される。ＶＰＮ形成装置２２１は、返送されたエコーパケット５２により、ルータ２４１までのホップ数を知ることができる。
【００５７】
次に、ＶＰＮ形成装置２２１は、ルータ２４１のホップ数に１を加えた値αをＴＴＬに設定し、送信元ポート番号「１００」のポート設定パケット５３を送信する。これによって、ルータ２４１の送信元ポート番号「１００」のポートが開かれる。ポート設定パケット５３は、ルータ２４１の次のホップで削除されるので、他の通信に影響を与えることはない。
【００５８】
このような構成により、ルータ２４１の送信元ポート番号「１００」のポートを開けておくことにより、パケット５４、５５によるＮＮＭ間の通信を行うことができる。このとき、ルータ２４２もＩＣＭＰパケットによりブロックを行う機能を有している場合には、ＶＰＮ形成装置２２２においても、同様の処理を行う。
【００５９】
次に図５を参照すると、同一のセッションにおいて、パケットの送受信が途絶えている間は、ルータが変換テーブルをクリアしないように、いったん開いたポートを維持しておく必要がある。そこで、パケットの送受信が途絶えている間は、キープアライブパケットを一定時間間隔で送信する。例えば、上述したＩＣＭＰエコーパケットを利用して、ルータ２４１までのホップ数を予め調べておく。ＶＰＮ形成装置２２１は、ルータ２４１のホップ数に１を加えた値αをＴＴＬに設定し、送信元ポート番号「１００」のＵＤＰパケット６１を送信する。これによって、ルータ２４１に格納されている変換テーブルの内容は削除されず、以後、同一のポート番号を設定したパケットを送信することができる。
【００６０】
尚、図４及び図５の実施形態においては、ＩＣＭＰパケットによりブロックを行う機能を有しているルータにのみ送信するようにしてもよい。ルータによっては、ＴＴＬの設定値がαの場合に、パケットを破棄してポートを閉じてしまう機能を有する場合があるからである。
【００６１】
ポート設定パケットおよびキープアライブパケットが他のＶＰＮ形成装置に到達した場合に、通信の混乱が起こらないようにする。例えば、図５に示したように、全てのパケットの先頭に、フラグ６３、６４を付加し、キープアライブパケットの場合は「１」を、通常のパケットの場合は「０」を設定する。このようにして、ＶＰＮ形成装置がキープアライブパケットを受信した場合でも、これを識別して破棄することができる。
【００６２】
また、本実施形態では、宛先ポート番号および送信元ポート番号がＴＣＰヘッダ内に書き込まれる例を示したが。宛先ポート番号および送信元ポート番号がＵＤＰヘッダ内に書き込まれるようにしてもよい。
【００６３】
例えば、通信経路にファイアウォールが接続されていると、ＴＣＰまたはＵＤＰを使用した通信ができない場合がある。したがって、ＶＰＮ形成装置が、以下に説明する方法を用いて、使用可能なプロトコルを決定するようにしてもよい。
（１）ＵＤＰが使用可能かどうかの決定方法
ＶＰＮ形成装置は、ＩＰパケットのＵＤＰヘッダの宛先ポート番号を「ｎ」（ｎ：ＨＴＴＰやＰＯＰ３等のwellknownポート番号以外）に設定して、セッション管理サーバのポート番号ｎへ送信する。
【００６４】
セッション管理サーバの待ち受けポート番号ｎに当該パケットが届いた場合には、ＵＤＰを使用可能と決定する。
【００６５】
セッション管理サーバ側で待ち受けポート番号ｎに当該パケットが届かない場合には、ＩＰパケットのＵＤＰヘッダの宛先ポート番号を「４４３」（ＨＴＴＰＳが利用するポート番号）に設定して、セッション管理サーバのポート番号４４３へ送信する。セッション管理サーバ側で待ち受けポート番号４４３に当該パケットが届いた場合には、４４３番ポート宛のＵＤＰを使用可能と決定する。
【００６６】
セッション管理サーバ側で待ち受けポート番号４４３に当該パケットが届かない場合には、ＩＰパケットのＵＤＰヘッダの宛先ポート番号を「８０」（ＨＴＴＰが利用するポート番号）に設定して、セッション管理サーバのポート番号８０へ送信する。セッション管理サーバ側で待ち受けポート番号８０に当該パケットが届いた場合には、８０番ポート宛のＵＤＰを使用可能と決定する。
【００６７】
セッション管理サーバ側で待ち受けポート番号８０に当該パケットが届かない場合には、ＵＤＰを使用不可と決定する。
【００６８】
（２）ＴＣＰが使用可能かどうかの決定方法
ＶＰＮ形成装置は、ＩＰパケットのＴＣＰヘッダの宛先ポート番号を「ｎ」（ｎ：ＨＴＴＰやＰＯＰ３等のwellknownポート番号以外）に設定して、セッション管理サーバのポート番号ｎへ送信する。
【００６９】
セッション管理サーバの待ち受けポート番号ｎに当該パケットが届いた場合には、ＴＣＰを使用可能と決定する。
【００７０】
セッション管理サーバ側で待ち受けポート番号ｎに当該パケットが届かない場合には、ＩＰパケットのＴＣＰヘッダの宛先ポート番号を「４４３」（ＨＴＴＰＳが利用するポート番号）に設定して、セッション管理サーバのポート番号４４３へ送信する。セッション管理サーバ側で待ち受けポート番号４４３に当該パケットが届いた場合には、４４３番ポート宛のＴＣＰを使用可能と決定する。
【００７１】
セッション管理サーバ側で待ち受けポート番号４４３に当該パケットが届かない場合には、ＩＰパケットのＴＣＰヘッダの宛先ポート番号を「８０」（ＨＴＴＰが利用するポート番号）に設定して、セッション管理サーバのポート番号８０へ送信する。セッション管理サーバ側で待ち受けポート番号８０に当該パケットが届いた場合には、８０番ポート宛のＴＣＰを使用可能と決定する。
【００７２】
セッション管理サーバ側で待ち受けポート番号８０に当該パケットが届かない場合には、ＴＣＰを使用不可と決定する。
【００７３】
セッション管理サーバは、ＶＰＮ形成装置から送信されたＩＰパケットから、ＶＰＮ形成装置との間の通信に使用可能なＵＤＰ，ＴＣＰなどのプロトコルおよびポート番号の組を収集し、ＶＰＮ形成装置へ提供することができる。
【００７４】
（３）各種通信方法
上記の方法により、例えば、ＵＤＰが使用不可と決定された場合に、ＵＤＰ通信を行う場合には、ＵＤＰデータをＴＣＰでカプセル化する、或いはＵＤＰのペイロードのみのせ変えてＴＣＰ通信を行うようにＶＰＮ形成装置を構成してもよい。この場合には、宛先の通信スタックが元のＵＤＰを復元できるようにする必要がある。
【００７５】
あるいは、上記の方法により、ポート番号ｎ宛のＵＤＰが使用不可と決定された場合に、ＵＤＰヘッダの宛先ポート番号を４４３、或いは８０に設定してＵＤＰ通信を行うようにＶＰＮ形成装置を構成してもよい。この場合には、宛先の端末はＵＤＰの４４３番ポート、或いは８０番ポートで待ち受ける必要がある。また、宛先の端末が複数の接続（セッション）を有する場合には、端末間で通信するＵＤＰデータのヘッダに通信チャネル（セッション）を識別するフィールドを設けるなどして、各セッションの識別を行うなどの必要がある。
【００７６】
同様に、上記の方法により、ＴＣＰが使用不可と決定された場合には、ＵＤＰ通信を行うように、あるいはポート番号ｎ宛のＴＣＰが使用不可と決定された場合には、ＴＣＰヘッダの宛先ポート番号を４４３、或いは８０に設定してＴＣＰ通信を行うようにＶＰＮ形成装置を構成してもよい。
【００７７】
上記の通り、本発明によれば、ＬＡＮを構成するルータ２４１，２４２、および端末２３１，２３２，２３３には変更を加えることなく、ルータと端末の間にＶＰＮ形成装置を接続するだけで、プライベートアドレスを用いて構成された閉域網であるＬＡＮ１内の端末２３１，２３２と、ＬＡＮ１外のＬＡＮ２内の端末２３３との間のＩＰ通信において、ＮＡＴ機能（ルータ２４１，２４２）が実装されている場合に通信経路を確保することができ、ＬＡＮ１内の端末２３１，２３２と、ＬＡＮ１外のＬＡＮ２内の端末２３３との間にＶＰＮを構成することができる。
【００７８】
本実施形態では、端末２３２および２３３はパーソナルコンピュータとして、端末２３１はＮＡＳ（Network Attached Storage）として図示（図２）したが、端末はこれに限られるものではなく、ネットワークポートを有するカメラデバイス（ネットワークカメラ）、家電機器（情報家電）、ＩＰ電話器など、ＩＰ通信をすることができる機器とすることができる。
【００７９】
（第２の実施形態）
図６に、本発明の第２の実施形態に係る通信モジュール（ＶＰＮ形成モジュール）を適用したネットワークを示す。ＶＰＮ形成モジュールは、第１の実施形態で説明したＶＰＮ形成装置の諸機能をソフトウェアとして実装するものである。
【００８０】
図６に示すネットワーク４００は、広域通信網であるＷＡＮにそれぞれ接続されたセッション管理サーバ２１０、ルータ２４１およびルータ２４２と、ルータ２４１に接続されたと端末４１０と、ルータ２４２に接続されたと端末４２０とを含む。
【００８１】
端末４１０および４２０は、パーソナルコンピュータ（ＰＣ）を例示し、それぞれ、アプリケーションプログラム（４１１，４２１）と、ＶＰＮ形成モジュール（４１２，４２２）と、ネットワークインタフェース（４１３，４２３）を有する。
【００８２】
端末４１０には、ルータ２４１によって割り当てられたプライベートアドレスＳＢとセッション管理サーバ２１０から割り当てられた仮想ＩＰアドレスＳＡが設定されている。
【００８３】
端末４２０には、ルータ２４２によって割り当てられたプライベートアドレスＤＢとセッション管理サーバ２１０から割り当てられた仮想ＩＰアドレスＤＡが設定されている。
【００８４】
ＶＰＮ形成モジュールは、アプリケーションプログラムからの仮想ＩＰアドレスを用いた通信（例えば、端末４１０内のアプリケーションプログラム４１１から端末４２０内のアプリケーションプログラム４２１への通信）の要求に応じて、端末２３１または２３２とのＩＰ通信におけるＩＰパケットのルーチング機能を有する。すなわち、ＶＰＮ形成モジュールは、仮想ＩＰアドレスに関連するＩＰパケットをルーチングするためのルーチングテーブルを有している。
【００８５】
次に、図３（ｂ）を参照して、端末４１０内のアプリケーションプログラム４１１から端末４２０内のアプリケーションプログラム４２１への通信を説明する。
【００８６】
アプリケーションプログラム４１１から送信されるＩＰパケットのヘッダには、宛先アドレス２１として「ＤＡ」、送信元アドレス２２として「ＳＡ」が書き込まれ、ＴＣＰヘッダには、宛先ポート番号２３として「２００」、送信元ポート番号２４として「１００」が書き込まれている。
【００８７】
ＶＰＮ形成モジュール４１２は、ルーチングテーブルを参照して、送信元アドレス２２の仮想ＩＰアドレスＳＡをプライベートアドレスＳＢに変換し、宛先アドレス２１の仮想ＩＰアドレスＤＡをグローバルアドレスＤＭに変換し、ルータ２４１に向けてネットワークインタフェース４１３を介してパケットを送信する。
【００８８】
ルータ２４１は、変換テーブルを参照して、送信元アドレス２２のプライベートアドレスＳＢをグローバルアドレスＳＭに変換し、ルータ２４２に向けてパケットを送信する。
【００８９】
ルータ２４２は、変換テーブルを参照して、宛先アドレス２１のグローバルアドレスＤＭをプライベートアドレスＤＢに変換して、端末４２０に向けてパケットを送信する。
【００９０】
端末４２０のＶＰＮ形成モジュール４２２は、ルータ２４２からのパケットを処理する。ＶＰＮ形成モジュール４２２は、ルーチングテーブルを参照して、送信元アドレス２２のグローバルアドレスＳＭを仮想ＩＰアドレスＳＡに変換し、宛先アドレス２１のプライベートアドレスＤＢを仮想ＩＰアドレスＤＡに変換し、アプリケーションプログラム４２１に向けてパケットを送信する。
【００９１】
次に、端末４２０内のアプリケーションプログラム４２１から端末４１０内のアプリケーションプログラム４１１への通信を説明する。アプリケーションプログラム４２１から送信されるＩＰパケットのヘッダには、宛先アドレス３１として「ＳＡ」、送信元アドレス３２として「ＤＡ」が書き込まれ、ＴＣＰヘッダには、宛先ポート番号３３として「２００」、送信元ポート番号３４として「１００」が書き込まれている。
【００９２】
ＶＰＮ形成モジュール４２２は、ルーチングテーブルを参照して、宛先アドレス３１のＳＡをグローバルアドレスＳＭに変換し、送信元アドレス３２のＤＡをプライベートアドレスＤＢに変換し、ルータ２４２へ送信する。
【００９３】
ルータ２４２は、変換テーブルを参照して、送信元アドレス３２のグローバルアドレスＤＢをグローバルアドレスＤＭに変換し、ルータ２４１に向けてパケットを送信する。
【００９４】
ルータ２４１は、宛先アドレス３１のＳＭをプライベートアドレスＳＢに変換し、端末４１０へ向けてパケットを送信する。
【００９５】
端末４１０のＶＰＮ形成モジュール４１２は、ルータ２４１からのパケットを処理する。ＶＰＮ形成モジュール４１２は、宛先アドレス３１のＳＢを仮想ＩＰアドレスＳＡに変換し、送信元アドレス３２のＤＭを仮想ＩＰアドレスＤＡに変換し、アプリケーションプログラム４１１へ向けてパケットを送信する。
【図面の簡単な説明】
【００９６】
【図１】ＮＡＴ機能を説明するためのネットワーク接続図である。
【図２】本発明の第１の実施形態に係る通信装置（ＶＰＮ形成装置）を説明するためのネットワーク接続図である。
【図３】図３（ａ）は図２のネットワーク接続図の一部を示す図、図３（ｂ）は図３（ａ）の端末２３２から端末２３３へのＩＰパケットの流れを説明するための図、図３（ｃ）は図３（ａ）の端末２３３から端末２３２へのＩＰパケットの流れを説明するための図である。
【図４】本発明の第１の実施形態に係る通信装置（ＶＰＮ形成装置）のＮＡＴ越え機能の説明図である。
【図５】本発明の第１の実施形態に係る通信装置（ＶＰＮ形成装置）のＮＡＴ越え機能の説明図である。
【図６】本発明の第２の実施形態に係る通信モジュール（ＶＰＮ形成モジュール）を説明するためのネットワーク接続図である。
【符号の説明】
【００９７】
１１    クライアント
１２    サーバ
１３，１４，２４１，２４２    ルータ
２００，４００    ネットワーク
２１０    セッション管理サーバ
２３１    端末（ＮＡＳ）
２３２，２３３，４１１，４２０    端末（ＰＣ）
２２１，２２２    ＶＰＮ形成装置
４１１，４２１    アプリケーションプログラム
４１２，４２２    ＶＰＮ形成モジュール
４１３，４２３    ネットワークインタフェース
【図１】
0004712481.tif 000002
【図２】
0004712481.tif 000003
【図３】
0004712481.tif 000004
【図４】
0004712481.tif 000005
【図５】
0004712481.tif 000006
【図６】
0004712481.tif 000007