(57)【特許請求の範囲】
【請求項１】
ユーザの操作する情報処理装置と同じネットワークに属し、該情報処理装置とＶＰＮ技術を利用して構成されたネットワークである複数のＶＰＮネットワークとの間に配置され、
前記情報処理装置と前記複数のＶＰＮネットワークとのネットワーク接続を行うＶＰＮ接続手段と、
前記情報処理装置からの通信パケットについてルーティングを行うルーティング手段と、
ルーティング先とアドレス情報を対応付けてルーティング情報として保持し管理するルーティング情報管理手段と、
前記ルーティング手段で取得された宛先ＩＰアドレス情報と前記ルーティング情報管理手段で管理された前記ルーティング情報とを用いて、前記情報処理装置からの通信パケットのルーティング先を予測する予測手段と、
を有し、
前記ルーティング手段は、前記ＶＰＮ接続手段によるネットワーク接続の確立後、前記情報処理装置からの通信パケットをモニタリングして前記通信パケットに含まれる宛先ＩＰアドレス情報を取得し、前記宛先ＩＰアドレス情報に基づいて前記通信パケットのルーティングを行い、
前記予測手段は、前記宛先ＩＰアドレス情報に対応するアドレス情報が前記ルーティング情報に含まれない場合に、ＶＰＮネットワークのＤＮＳサーバに対し、リバースＤＮＳリクエストを送信してホスト検索を行って見つかったホストの属するＶＰＮネットワークを前記通信パケットのルーティング先と予測し、
前記宛先ＩＰアドレス情報に対応するアドレス情報が前記ルーティング情報に含まれる場合に、該アドレス情報に対応付けられたＶＰＮネットワークを前記通信パケットのルーティング先と予測し、
前記ルーティング情報管理手段は、前記ホスト検索結果でホストが見つかった場合に、該検索結果を用いて前記ルーティング情報を更新することを特徴とするルータ装置。
【請求項２】
前記ルーティング手段は、前記予測手段で予測されたルーティング先に前記情報処理装置からの通信パケットをルーティングすることを特徴とする請求項１に記載のルータ装置。
【請求項３】
前記ＤＮＳサーバが持つホストのアドレスに関する情報を保持するＤＮＳキャッシュ手段を有し、
前記予測手段は、前記ＤＮＳサーバへのリバースＤＮＳリクエストの送信前に、前記ＤＮＳキャッシュ手段にＡＲＰリクエストを送信し、
前記ＤＮＳキャッシュ手段は、前記ＡＲＰリクエストに含まれる前記宛先ＩＰアドレス情報に対応する前記情報を保持する場合に、前記情報を含めたＡＲＰレスポンスを前記予測手段に送信することを特徴とする請求項１又は２に記載のルータ装置。
【請求項４】
ユーザの操作する情報処理装置と、ＶＰＮ技術を利用して構成され該情報処理装置と異なるネットワークである複数のＶＰＮネットワークとの間の際に行われ、
前記情報処理装置と前記複数のＶＰＮネットワークとのネットワーク接続を行うＶＰＮ接続ステップと、
前記情報処理装置からの通信パケットについてルーティングを行うルーティングステップと、
ルーティング先とアドレス情報を対応付けてルーティング情報として保持し管理するルーティング情報管理ステップと、
前記ルーティングステップで取得された宛先ＩＰアドレス情報と前記ルーティング情報管理ステップで管理される前記ルーティング情報とを用いて、前記情報処理装置からの通信パケットのルーティング先を予測する予測ステップと、
を有し、
前記ルーティングステップは、前記ＶＰＮ接続ステップによるネットワーク接続の確立後、前記情報処理装置からの通信パケットをモニタリングして前記通信パケットに含まれる宛先ＩＰアドレス情報を取得し、前記宛先ＩＰアドレス情報に基づいて前記通信パケットのルーティングを行い、
前記予測ステップは、前記宛先ＩＰアドレス情報に対応するアドレス情報が前記ルーティング情報に含まれない場合に、ＶＰＮネットワークのＤＮＳサーバに対し、リバースＤＮＳリクエストを送信してホスト検索を行って見つかったホストの属するＶＰＮネットワークを前記通信パケットのルーティング先と予測し、
前記宛先ＩＰアドレス情報に対応するアドレス情報が前記ルーティング情報に含まれる場合に、該アドレス情報に対応付けられたＶＰＮネットワークを前記通信パケットのルーティング先と予測し、
前記ルーティング情報管理ステップは、前記ホスト検索結果でホストが見つかった場合に、該検索結果を用いて前記ルーティング情報を更新することを特徴とするルーティング方法。
【請求項５】
前記ルーティングステップは、前記予測ステップで予測されたルーティング先に前記情報処理装置からの通信パケットをルーティングすることを特徴とする請求項４に記載のルーティング方法。
【請求項６】
ユーザの操作する情報処理装置と同じネットワークに属し、該情報処理装置とＶＰＮ技術を利用して構成されたネットワークである複数のＶＰＮネットワークとの間に配置されるルータ装置に用いられ、
コンピュータに、
前記情報処理装置と前記複数のＶＰＮネットワークとのネットワーク接続を行うＶＰＮ接続処理と、
前記情報処理装置からの通信パケットについてルーティングを行うルーティング処理と、
ルーティング先とアドレス情報を対応付けてルーティング情報として保持し管理するルーティング情報管理処理と、
前記ルーティング処理で取得された宛先ＩＰアドレス情報と前記ルーティング情報管理処理で管理される前記ルーティング情報とを用いて、前記情報処理装置からの通信パケットのルーティング先を予測する予測処理と、
を実行させ、
前記ルーティング処理は、前記ＶＰＮ接続機能によるネットワーク接続の確立後、前記情報処理装置からの通信パケットをモニタリングして前記通信パケットに含まれる宛先ＩＰアドレス情報を取得し、前記宛先ＩＰアドレス情報に基づいて前記通信パケットのルーティングを行い、
前記予測処理は、前記宛先ＩＰアドレス情報に対応するアドレス情報が前記ルーティング情報に含まれない場合に、ＶＰＮネットワークのＤＮＳサーバに対し、リバースＤＮＳリクエストを送信してホスト検索を行って見つかったホストの属するＶＰＮネットワークを前記通信パケットのルーティング先と予測し、
前記宛先ＩＰアドレス情報に対応するアドレス情報が前記ルーティング情報に含まれる場合に、該アドレス情報に対応付けられたＶＰＮネットワークを前記通信パケットのルーティング先と予測し、
前記ルーティング情報管理処理は、前記ホスト検索結果でホストが見つかった場合に、該検索結果を用いて前記ルーティング情報を更新することを特徴とするプログラム。
【請求項７】
前記ルーティング処理は、前記予測処理で予測されたルーティング先に前記情報処理装置からの通信パケットをルーティングすることを特徴とする請求項６に記載のプログラム。
【請求項８】
請求項６又は７に記載のプログラムを記録しコンピュータ読み取り可能なことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルータ装置、ルーティング方法、プログラム及び記録媒体に関し、特に、ローカルネットワーク内のクライアント端末が複数のＶＰＮネットワークと接続する場合に好ましく適用される技術に関するものである。
【背景技術】
【０００２】
一般に、グローバルネットワークからコーポレートネットワークにアクセスするために、ＶＰＮ（Virtual Private Network：仮想プライベートネットワーク）技術が多く利用されている（以下、本願明細書ではＶＰＮ技術を用いて構成されたネットワークをＶＰＮネットワークという）。そして、多くの場合、ＶＰＮネットワークに接続するためのクライアントソフトがクライアントマシン（パソコン、モバイル端末等）にインストールされている。しかし、ＶＰＮネットワークでの通信時に利用されている暗号の相違、クライアントマシンでインストールする際の設定間違い、ＶＰＮクライアント管理等、いくつかの問題がある。
【０００３】
また、クライアントマシンは単一のＶＰＮネットワークと通信を行うことが一般的であるが、場合によって複数のＶＰＮネットワークに接続することもある。例えば、日本に拠点を置くグローバル企業が、アメリカの現地法人のＶＰＮネットワークと同時に、ヨーロッパ（例えばフランス）の現地法人のＶＰＮネットワークと接続したいような場合が考えられる。しかしながら、上記のように同時に複数のＶＰＮネットワークに接続することは現実的ではない。それは、ネットワークルーティングが非常に困難なためである。通常、ＶＰＮネットワークに接続するためのクライアントソフトがクライアントマシンにインストールされているため、接続するＶＰＮネットワークに応じたルーティング設定をユーザ側で行わなければならない。このようなルーティング設定は、内容が複雑で、ユーザにとっても煩雑な作業となる。
【０００４】
ところで、例えば特許文献１では、遠隔ユーザがホームＩＳＰに加えて訪問中のＩＳＰによるＶＰＮネットワークにアクセスできるようにするために、パケットサーバは他のパケット終端間に多重ホップトンネルを確立し、多重ホップトンネルの部分間でメッセージの中継を行うようにした方法が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したように、今まで同時に複数のＶＰＮネットワークに接続して通信することができなかったため、例えばＶＰＮネットワークであるネットワークＡにあるサーバにアクセスしたかった場合、他のＶＰＮネットワークであるネットワークＢとの接続を切断してネットワークＡと接続する必要があった。そして、その瞬間にネットワークＢにあるサーバへアクセスできなくなっていた。特許文献１で開示された発明はＶＰＮ技術そのものに関するものであるが、当該発明ではクライアントとサーバの間で単一のＶＰＮネットワークに接続している形態が示されており、同時に複数のＶＰＮネットワークと接続する場合は考慮されていない。
【０００６】
したがって、複数のＶＰＮネットワークと同時に接続する場合、特許文献１の発明で開示されている方法では、シームレスな（複数のＶＰＮネットワークに接続していることを意識せずに）通信を行うことはできないし、またインテリジェントなルーティング（通常（単一のＶＰＮネットワークと接続する場合）、ローカルネットワーク以外のパケット通信は全てＶＰＮネットワークへルーティングされるが、複数ＶＰＮネットワークに接続されている場合に、パケットの宛先アドレスに応じて接続先のＶＰＮネットワークへのルーティングを行う）もできない。
【０００７】
そこで、本発明は、ユーザがルーティング設定を行うことなく、クライアント端末からのパケットをインテリジェントにＶＰＮネットワークにルーティングできるようにして、クライアント端末と複数のＶＰＮネットワークとのシームレスな通信を実現することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面であるルータ装置は、ユーザの操作する情報処理装置と同じネットワークに属し、該情報処理装置とＶＰＮ技術を利用して構成されたネットワークである複数のＶＰＮネットワークとの間に配置されるルータ装置で、情報処理装置と複数のＶＰＮネットワークとのネットワーク接続を行うＶＰＮ接続手段と、情報処理装置からの通信パケットについてルーティングを行うルーティング手段と、ルーティング先とアドレス情報を対応付けてルーティング情報として保持し管理するルーティング情報管理手段と、ルーティング手段で取得された宛先ＩＰアドレス情報とルーティング情報管理手段で管理されたルーティング情報とを用いて、情報処理装置からの通信パケットのルーティング先を予測する予測手段と、を有し、ルーティング手段が、ＶＰＮ接続手段によるネットワーク接続の確立後、情報処理装置からの通信パケットをモニタリングして通信パケットに含まれる宛先ＩＰアドレス情報を取得し、宛先ＩＰアドレス情報に基づいて通信パケットのルーティングを行い、予測手段は、宛先ＩＰアドレス情報に対応するアドレス情報がルーティング情報に含まれない場合に、ＶＰＮネットワークのＤＮＳサーバに対し、リバースＤＮＳリクエストを送信してホスト検索を行って見つかったホストの属するＶＰＮネットワークを通信パケットのルーティング先と予測し、宛先ＩＰアドレス情報に対応するアドレス情報がルーティング情報に含まれる場合に、アドレス情報に対応付けられたＶＰＮネットワークを通信パケットのルーティング先と予測し、ルーティング情報管理手段は、ホスト検索結果でホストが見つかった場合に、該検索結果を用いてルーティング情報を更新する。
【０００９】
上記ルータ装置は、ルーティング手段が、予測手段で予測されたルーティング先に情報処理装置からの通信パケットをルーティングするように構成することもできる。
【００１１】
本発明の一側面であるルーティング方法は、ユーザの操作する情報処理装置と、ＶＰＮ技術を利用して構成され該情報処理装置と異なるネットワークである複数のＶＰＮネットワークとの間の際に行われ、情報処理装置と複数のＶＰＮネットワークとのネットワーク接続を行うＶＰＮ接続ステップと、情報処理装置からの通信パケットについてルーティングを行うルーティングステップと、ルーティング先とアドレス情報を対応付けてルーティング情報として保持し管理するルーティング情報管理ステップと、ルーティングステップで取得された宛先ＩＰアドレス情報とルーティング情報管理ステップで管理されるルーティング情報とを用いて、情報処理装置からの通信パケットのルーティング先を予測する予測ステップと、を有し、ルーティングステップで、ＶＰＮ接続ステップによるネットワーク接続の確立後、情報処理装置からの通信パケットをモニタリングして通信パケットに含まれる宛先ＩＰアドレス情報を取得し、宛先ＩＰアドレス情報に基づいて通信パケットのルーティングを行い、予測ステップは、宛先ＩＰアドレス情報に対応するアドレス情報がルーティング情報に含まれない場合に、ＶＰＮネットワークのＤＮＳサーバに対し、リバースＤＮＳリクエストを送信してホスト検索を行って見つかったホストの属するＶＰＮネットワークを通信パケットのルーティング先と予測し、宛先ＩＰアドレス情報に対応するアドレス情報がルーティング情報に含まれる場合に、アドレス情報に対応付けられたＶＰＮネットワークを通信パケットのルーティング先と予測し、ルーティング情報管理ステップは、ホスト検索結果でホストが見つかった場合に、該検索結果を用いてルーティング情報を更新する。
【００１２】
上記ルーティング方法は、ルーティングステップで、予測ステップで予測されたルーティング先に情報処理装置からの通信パケットをルーティングするように構成することもできる。
【００１４】
本発明の一側面であるプログラムは、ユーザの操作する情報処理装置と同じネットワークに属し、該情報処理装置とＶＰＮ技術を利用して構成されたネットワークである複数のＶＰＮネットワークとの間に配置されるルータ装置に用いられるプログラムで、コンピュータに、情報処理装置と複数のＶＰＮネットワークとのネットワーク接続を行うＶＰＮ接続処理と、情報処理装置からの通信パケットについてルーティングを行うルーティング処理と、ルーティング先とアドレス情報を対応付けてルーティング情報として保持し管理するルーティング情報管理処理と、ルーティング処理で取得された宛先ＩＰアドレス情報とルーティング情報管理処理で管理されるルーティング情報とを用いて、情報処理装置からの通信パケットのルーティング先を予測する予測処理と、を実行させ、ルーティング処理で、ＶＰＮ接続機能によるネットワーク接続の確立後、情報処理装置からの通信パケットをモニタリングして通信パケットに含まれる宛先ＩＰアドレス情報を取得し、宛先ＩＰアドレス情報に基づいて通信パケットのルーティングを行い、予測処理は、宛先ＩＰアドレス情報に対応するアドレス情報がルーティング情報に含まれない場合に、ＶＰＮネットワークのＤＮＳサーバに対し、リバースＤＮＳリクエストを送信してホスト検索を行って見つかったホストの属するＶＰＮネットワークを通信パケットのルーティング先と予測し、宛先ＩＰアドレス情報に対応するアドレス情報がルーティング情報に含まれる場合に、アドレス情報に対応付けられたＶＰＮネットワークを通信パケットのルーティング先と予測し、ルーティング情報管理処理は、ホスト検索結果でホストが見つかった場合に、該検索結果を用いてルーティング情報を更新する。
【００１５】
上記プログラムは、ルーティング処理で、予測処理で予測されたルーティング先に情報処理装置からの通信パケットをルーティングするように構成してもよい。
【００１７】
本発明の一側面である記録媒体は、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００１８】
本発明によれば、ユーザがルーティング設定を行うことなく、クライアント端末からのパケットをインテリジェントにＶＰＮネットワークにルーティングでき、クライアント端末と複数のＶＰＮネットワークとのシームレスな通信が実現される。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態におけるネットワーク構成を示した図である。
【図２】本発明の実施形態に係るネットワークルータのハードウェア構成を示した図である。
【図３】本発明の実施形態に係るネットワークルータの機能ブロックを示した図である。
【図４】本発明の実施形態におけるルーティング処理（全体処理）の流れを示したフローチャートである。
【図５】本発明の実施形態におけるルーティング処理（ＷＡＮ側ネットワークでの検索処理）の流れを示したフローチャートである。
【図６】本発明の実施形態におけるルーティング処理（ルータ内のＤＮＳサーバ処理）の流れを示したフローチャートである。
【図７】本発明の実施形態におけるマニュアルでのルーティング設定例を示した図である。
【図８】本発明の実施形態におけるＶＰＮ接続処理の流れを示したフローチャートである。
【発明を実施するための形態】
【００２０】
本発明では、ＶＰＮネットワークに接続するためのクライアントソフトがクライアントマシンでなくルータにインストールされることによって、ユーザがクライアントマシンから一切作業をせずに、また種々のルーティング設定を行うことなく、複数のＶＰＮネットワークへ同時にアクセスできる。また、該クライアントソフトがルータにインストールされるため、クライアントマシンからルータを経由しているネットワークパケットをモニタリングすることができ、複数のＶＰＮネットワークへのルーティングを行うためのヒントが得られる。さらに、本発明では、ＤＮＳ（Domain Name System）、リバースＤＮＳのリクエストを利用するが、これによって、どのサブネットがどのＶＰＮネットワークにあるかを予測でき、ユーザから１つ１つのサブネットを設定せずにルータでのネットワークルーティングができるようになる。
【００２１】
以下、本発明の実施形態について図面を参照して説明する。
【００２２】
図１は、本発明の実施形態に係るネットワークルータを含むシステムのネットワーク構成を示した図である。本発明の実施形態としてのルータ装置が、ＬＡＮであるネットワークＸ１００内のネットワークルータ１０２である。また、ネットワークＸ１００内において、パソコンやモバイル端末等のクライアントマシン１０１がＩＰネットワークでネットワークルータ１０２に接続されている。また、クライアントマシン１０１は、ネットワークルータ１０２を経由して、ＷＡＮ  ＩＰネットワークで、２つのＶＰＮネットワーク（ネットワークＡ１０３、ネットワークＢ１０４）に接続している。
【００２３】
本システムでは、ＶＰＮネットワークに接続するためのＶＰＮクライアントソフトウェアがネットワークルータ１０２にインストールされており、ネットワークルータ１０２上で実行されている。つまり、ＶＰＮネットワークをつなぐＶＰＮトンネルは、ネットワークルータ１０２とネットワークＡ１０３及びネットワークＢ１０４との間のみに存在する。なお、先に述べたが、ネットワークルータ１０２とＬＡＮ側にあるクライアントマシン１０１の間には、一般のＩＰネットワークが存在する。
【００２４】
ネットワークルータ１０２は、ＶＰＮクライアント機能のほかに、一般的なネットワークルータ機能を備える。例えば、ＤＨＣＰ（Dynamic Host Configuration Protocol）サーバ機能やＤＮＳサーバ機能等である。ＬＡＮ側にあるクライアントマシン１０１は、ネットワークルータ１０２に接続する際に、ＬＡＮ内で用いるＩＰアドレスを取得し、ＤＮＳリクエストをネットワークルータ１０２のＤＮＳサーバに出す。
【００２５】
図２は、本実施形態のネットワークルータ１０２のハードウェア構成を示した図である。ネットワークルータ１０２は、ＣＰＵ２０１、ＲＯＭ２０２、メモリ２０３、記憶装置ＦＬＡＳＨ２０４、ＷＡＮ側通信インターフェース２０５、アクセラレータ２０６、ＬＡＮ側通信インターフェース２０７を有する。ＲＯＭ２０２には本発明特有の処理（ルーティング処理）を行うためのプログラム（ファームウェア）が格納され、ＣＰＵ２０１が該プログラムをＲＯＭ２０２から読み出して主記憶上に図３に示す各手段を構成する。図３の各手段は、上記のようにソフトウェアで実現するほか、回路等のハードウェアで構成することももちろん可能である。
【００２６】
アクセラレータ２０６は、ＶＰＮネットワークに接続する際に多く利用されるＩＰＳＥＣ暗号化のハードウェアエンジンである。ＶＰＮ接続時の暗号化処理は、アクセラレータ２０６を用いてハード的に行うほか、ＣＰＵ２０１を用いてソフト的に行うようにすることもできる。また、記憶装置ＦＬＡＳＨ２０４は、ルーティングの設定内容を保存できる記憶領域を持つ。
【００２７】
図３は、本実施形態のネットワークルータ１０２の機能ブロックを示した図である。ネットワークルータ１０２は、一般的なネットワークルータ機能のほか、ルーティングテーブル管理手段３０１、パケットルーティング予測手段３０２、通信パケットルーティング手段３０３、ＬＡＮ側通信手段３０４、ＷＡＮ側通信手段３０５、ＶＰＮ通信手段３０６、ルータ設定／ＶＰＮ設定管理手段３０７、ＤＮＳキャッシュサーバ機能３０８を有する。
【００２８】
通信パケットルーティング手段３０３は、本発明特有の処理を行う手段で、ＷＡＮ側にある複数のＶＰＮネットワークと同時に接続して通信を行う場合に、パケットの宛先アドレスからどのネットワークで通信すればよいかを判断する。その判断を行うために、パケットルーティング予測手段３０２とルーティングテーブル管理手段３０１が利用される。既にルーティングされたパケットから生成されたルーティングルールは、ルーティングテーブル管理手段３０１においてルーティングテーブルで保存され管理される。ルーティングルールが存在しない場合に、ルーティング予測手段３０２において、ＤＮＳやリバースＤＮＳを利用してルーティングルールが作成される。
【００２９】
ＶＰＮ通信手段３０６は、ＶＰＮネットワークと通信を行うための手段で、ＶＰＮネットワークへの接続時に通信されるパケットの暗号化を行う等、ＶＰＮネットワークとの通信に関する様々な処理を行う。また、ＤＮＳキャッシュサーバ機能３０８は、接続先のＷＡＮ側ネットワークに関してのヒントを取得するために利用される。後述するフローチャートに示すように、ＤＮＳリクエスト及びＤＮＳレスポンスをモニタリングすることで、ルーティング予測手段３０２でどのネットワークにどのサブネットがあるかを予測することができる。
【００３０】
図４は、本実施形態におけるルーティング処理の流れを示したフローチャートで、ＬＡＮ側のクライアントマシンからネットワークパケットを通信する際のルータの動き（ルータでのパケットハンドリング）を表す。
【００３１】
ネットワークルータ１０２は、ＬＡＮ側からのネットワークパケットの宛先ＩＰアドレスを取り出し、その情報を見てルーティングを判断する（ステップＳ４０１）。はじめに宛先ＩＰアドレスがＬＡＮネットワークのアドレスであるか判定する（ステップＳ４０２）。ＬＡＮネットワークのアドレスであった場合（ステップＳ４０２／ＹＥＳ）は、ネットワークパケットをＬＡＮネットワークにルーティングする（ステップＳ４０８）。ＬＡＮネットワークのアドレスでなかった場合（ステップＳ４０２／ＮＯ）は、ルータのアドレスか否かを判定する（ステップＳ４０３）。宛先ＩＰアドレスがルータのアドレスであった場合（ステップＳ４０３／ＹＥＳ）は、ネットワークパケットをルータ自身にルーティングする（ステップＳ４０９）。すなわち、ネットワークルータ１０２は、他の一般なルータと同様に、パケットの宛先がＬＡＮ側のネットワークかルータ自身かを確認して、ＬＡＮネットワークあるいはルータ自身へルーティングする。
【００３２】
ネットワークパケットの宛先ＩＰアドレスがＬＡＮネットワークのアドレスでもルータのアドレスでもなかった場合（ステップＳ４０１／ＮＯ、ステップＳ４０２／ＮＯ）、ネットワークルータ１０２は、その宛先ＩＰアドレスがルータ内のルーティングテーブルに既に登録されているかどうかを判定する（ステップＳ４０４）。ルータ内のルーティングテーブル内を検索し、宛先ＩＰアドレスが該テーブル上のホストあるいはサブネットに該当する場合（ステップＳ４０４／ＹＥＳ）は、ルーティングテーブルにあるルーティング情報を用いてルーティングを行う（ステップＳ４１０）。
【００３３】
ネットワークパケットの宛先ＩＰアドレスがルータ内のルーティングテーブルにも登録されておらず、該宛先ＩＰアドレスが該テーブルのサブネット情報に適合しない場合（ステップＳ４０４／ＮＯ）には、ネットワークルータ１０２は、ＷＡＮ側にある各ＶＰＮネットワークに対して、その宛先ＩＰアドレスを持っているホストが存在するか順次問い合わせ、ホストの検索を行う（ステップＳ４０５）。ホスト検索の具体的な方法は図５のフローを用いて後述する。
【００３４】
ホスト検索の結果、ＷＡＮ側のＶＰＮネットワークでネットワークパケットの宛先ＩＰアドレスに一致するホストが見つかった場合（ステップＳ４０６／ＹＥＳ）、ネットワークルータ１０２は、そのホストの属するネットワークにルーティングを行う（ステップＳ４１１）。その宛先ＩＰアドレスに一致するホストが見つからなかった場合（ステップＳ４０６／ＮＯ）、ネットワークルータ１０２は、ルーティングエラーをＬＡＮ側のクライアントマシン１０１に返す（ステップＳ４０７）。
【００３５】
図５は、本実施形態におけるルーティング処理の流れを示したフローチャートで、ＬＡＮ側のクライアントマシンが要求するＩＰアドレスを複数のＶＰＮネットワークで検索する際のルータの動き（ホスト検索）を表す。本フローは、ルータ内でのパケットルーティング時でルータがルーティングするパケットのルーティング情報を持っていない場合に、ＷＡＮ側にあるＶＰＮネットワークから、該パケットの宛先アドレスを持つホストを検索する処理である。
【００３６】
まず、ネットワークルータ１０２は、ＷＡＮ側のＶＰＮネットワークから宛先アドレスを持つホストを探すために、ネットワークのリストアップを行う（ステップＳ５０１）。そして、通信可能なネットワークの中から順番にホストを探していく（ステップＳ５０２／ＹＥＳ、ステップＳ５０３）。
【００３７】
本実施形態では、各ネットワークからのホスト検索で、ＡＲＰ（Address Resolution Protocol）に準拠したリバースＤＮＳのリクエスト及びレスポンスを利用することとする。リバースＤＮＳは、あるネットワークのＤＮＳサーバにホストのＩＰアドレスを渡すとホスト名が返される仕組みである。ＤＮＳサーバでは、リクエストされたＩＰアドレスに対応する情報がある場合はホスト名を返すが、対応する情報がない場合にはホストなしのレスポンスを出す。上記方法で検索を行えば、あるネットワークにホストが存在するかどうかの確認が可能である。
【００３８】
フローに戻ると、ホスト検索（ステップＳ５０３）の結果、リバースＤＮＳに有効な答えがある、つまりネットワークパケットの宛先ＩＰアドレスを持つホストが存在する旨のレスポンスが得られた場合（ステップＳ５０４／ＹＥＳ）、検索は終了となり、ルーティングテーブルのアップデート作業が行う（ステップＳ５０５）。すなわち、リバースＤＮＳのレスポンスに含まれるホストのサブネット（２４ビット）をルーティングテーブルに追加し、ルーティングテーブルのアグリゲーション（統合）を行う。
【００３９】
ルータのルーティングテーブルのアップデートについて捕捉する。通常、２つのネットワークで同じサブネットを利用することはないため、ルーティングテーブルに情報を追加する際には、ホストのＩＰアドレスでなく、ホストが属するサブネットの情報（サブネットアドレス等）を追加する。例えば、“１２２．１３３．１４４．６”のホストがｔｕｎ０のネットワークで見つかった場合には、サブネット情報“１２２．１３３．１４４．０／２４”をテーブルに追加し、サブネットの一致する宛先ＩＰアドレスを持つネットワークパケットがｔｕｎ０にルーティングされるようにルーティングテーブルを更新する。
【００４０】
他方、ホスト検索（ステップＳ５０３）の結果、ネットワークパケットの宛先ＩＰアドレスを持つホストをリストアップしたネットワークから検索できなかった場合（ステップＳ５０２／ＮＯ）には、ホスト検索処理は終了する。この場合、図４のフローに従って、ホスト見つからなかったためルーティングエラーとなる。
【００４１】
図６は、本実施形態におけるルーティング処理の流れを示したフローチャートで、ＬＡＮ側のクライアントマシンによるＤＮＳリクエストに応じて行われるルータの動き（ＤＮＳキャッシュ機能）を表す。本フローは、ネットワークパケットのルーティング情報がない場合にルーティング情報を作成するための方法で、ルータをＤＮＳサーバとして動作させて該ルータにおいてルーティング情報を作成する処理である。ネットワークルータ１０２内にＤＮＳキャッシュ機能を持たせることで、ＬＡＮ側にあるクライアントマシン１０１からのＡＲＰパケットがルータ内でモニタリングされるため、ＡＲＰパケットに含まれる情報がルーティングのヒントとなる。
【００４２】
まず、ネットワークルータ１０２のＤＮＳキャッシュ機能は、ＬＡＮ側のクライアントマシン１０１から、ＡＲＰパケットとしてホストのＩＰアドレスがリクエストされる際に、ルータ内のＤＮＳキャッシュに該ＩＰアドレスに対応する情報があるかどうかを確認する（ステップＳ６０１）。ＤＮＳキャッシュに該ＩＰアドレスに対応する情報がある場合（ステップＳ６０１／ＹＥＳ）、ＤＮＳキャッシュ機能は、ＷＡＮ側にリクエストを転送せずに、ＤＮＳキャッシュの情報を用いてＬＡＮ側にＡＲＰレスポンスを返す（ステップＳ６０５）。
【００４３】
一方、ＤＮＳキャッシュにリクエストされている情報がなかった場合（ステップＳ６０１／ＮＯ）、ＷＡＮ側のＶＰＮネットワークのＤＮＳサーバへＡＲＰリクエストを転送する（ステップＳ６０２）。ネットワークルータ１０２には、ＷＡＮ側の各ネットワークにおけるＤＮＳサーバの情報が保存されている。
【００４４】
ここで、ＷＡＮ側の全てのＤＮＳサーバからホスト不明のレスポンスがあった場合（ステップＳ６０３／ＮＯ）、ＬＡＮ側のクライアントマシンにホスト不明のレスポンスを送信する（ステップＳ６０４）。あるＤＮＳサーバからリクエストしたホストの情報が送信されてきた場合（ステップＳ６０３／ＹＥＳ）は、その情報をルータ内のＤＮＳキャッシュに追加する（ステップＳ６０６）とともに、ルータ内のルーティングテーブルにルーティング情報を追加し（ステップＳ６０７）、ＬＡＮ側のクライアントマシンにＡＲＰレスポンスを送信する（ステップＳ６０８）。
【００４５】
ルーティングテーブルのアップデート（情報追加）は、図５のフローで説明したのと同様に、ホストのＩＰアドレスでなく、ホストのサブネットの情報をルーティングテーブルに追加することで行う。例えば、クライアントマシン１０１がホスト“ｍｙｈｏｓｔ．ｍｙｄｏｍａｉｎ”をリクエストし、ｔｕｎ０のＤＮＳサーバからホスト“ｍｙｈｏｓｔ．ｍｙｄｏｍａｉｎ”のＩＰアドレス“１２２．１３３．１４４．１２”が送信されたとき、サブネットの一致する宛先ＩＰアドレスを持つネットワークパケットがｔｕｎ０にルーティングされるように、サブネット情報の“１２２．１３３．１４４．０．／２４”をルーティングテーブルに追加する。
【００４６】
図７は、本実施形態におけるマニュアルでのルーティング設定例を示した図である。上述したルータのルーティング予測機能でルーティングの予測ができない場合、この状態ではクライアントマシンからホストへアクセスができないため、ルータにおいてユーザがマニュアルでルーティング設定情報を入力できるようにする必要がある。そこで、例えばＷＥＢ上の設定画面等にて、図７に示すようなルーティング設定情報（インターフェースとそのサブネット情報）をマニュアルで入力するように構成することができる。
【００４７】
図８は、本実施形態におけるＶＰＮ接続処理の流れを示したフローチャートで、ルータ内にあるＶＰＮクライアントでＶＰＮネットワークに接続する際の動きを表す。
【００４８】
最初に、ネットワークルータ１０２は、ＶＰＮクライアントにより、ＶＰＮ設定に従ってＷＡＮ側のＶＰＮネットワークに接続する（ステップＳ８０１）。そして、ＶＰＮ接続する際のＶＰＮクライアントとＶＰＮサーバ間のやり取りで、いくつかの項目のネゴシエーションが行われる。その中で、ルータ内のＶＰＮインターフェースのＩＰアドレスがＶＰＮサーバからアサインされる。アサインされたアドレスのサブネットが新しく作られたＶＰＮネットワークにルーティングするので、そのサブネット（アサインされたインターフェースのＩＰアドレス）とＶＰＮネットワーク（インターフェース元）を、新しいエントリとしてルータ内のルーティングテーブルに追加する（ステップＳ８０２）。
【００４９】
さらに、ネットワークルータ１０２は、ＶＰＮサーバから接続したＶＰＮネットワークにあるＤＮＳサーバのＩＰアドレスを取得し、同様に、取得したＤＮＳサーバのＩＰアドレスとＶＰＮネットワークのサブネット情報（新しくできたインターフェース元）を、新しいエントリとしてルータのルーティングテーブルに追加する（ステップＳ８０３）。最後に、ルータの設定にマニュアルに設定されたルーティング情報（図７）があったら、ルータのルーティングテーブルに追加する（ステップＳ８０４）。
【００５０】
上記ステップＳ８０４でＶＰＮ接続時のフローが終了するが、その後、ＶＰＮ切断時に、ルータのルーティングミスが発生しないように、ネットワークルータ１０２は、切断されたＶＰＮネットワーク（コネクションのなくなったネットワーク）に対してのルーティング情報を全てルーティングテーブルから削除する。
【００５１】
なお、上述する実施形態は、本発明の好適な実施形態であり、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【００５２】
例えば、本実施形態におけるネットワークルータ１０２で実行されるプログラムは、先述したように、各手段（ルーティングテーブル管理手段３０１、パケットルーティング予測手段３０２、通信パケットルーティング手段３０３、ルータ設定／ＶＰＮ設定管理手段３０７等）を含むモジュール構成となっており、実際のハードウェアを用いて具体的手段を実現する。すなわち、コンピュータ（ＣＰＵ２０１）が所定の記録媒体（ＲＯＭ２０２）からプログラムを読み出して実行することにより上記各手段が主記憶装置上にロードされて生成される。
【００５３】
本実施形態におけるネットワークルータ１０２で実行されるプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納され、ネットワーク経由でダウンロードさせることにより提供されるように構成してもよい。また、上記プログラムをインターネット等のネットワーク経由で提供あるいは配布するように構成してもよい。
【００５４】
また、上記プログラムは、インストール可能な形式又は実行可能な形式のファイルで、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ、不揮発性のメモリカード等のコンピュータで読み取り可能な記録媒体に記録されて提供されるように構成してもよい。また、上記プログラムは、ＲＯＭ等にあらかじめ組み込んで提供するように構成してもよい。
【００５５】
この場合、上記記録媒体から読み出された又は通信回線を通じてロードし実行されたプログラムコード自体が前述の実施形態の機能を実現することになる。そして、そのプログラムコードを記録した記録媒体は本発明を構成する。
【符号の説明】
【００５６】
１００    ネットワークＸ（ＬＡＮ）
１０１    クライアントマシン
１０２    ネットワークルータ
１０３    ネットワークＡ
１０４    ネットワークＢ
２０１    ＣＰＵ
２０２    ＲＯＭ
２０３    メモリ
２０４    記憶装置ＦＬＡＳＨ
２０５    ＷＡＮ側通信インターフェース
２０６    アクセラレータ
２０７    ＬＡＮ側通信インターフェース
３０１    ルーティングテーブル管理手段
３０２    パケットルーティング予測手段
３０３    通信パケットルーティング手段
３０４    ＬＡＮ側通信手段
３０５    ＷＡＮ側通信手段
３０６    ＶＰＮ通信手段
３０７    ルータ設定／ＶＰＮ設定管理手段
３０８    ＤＮＳキャッシュサーバ機能
【先行技術文献】
【特許文献】
【００５７】
【特許文献１】特許第３４７０８８２号公報
【図１】
0005413014.tif 000002
【図２】
0005413014.tif 000003
【図３】
0005413014.tif 000004
【図４】
0005413014.tif 000005
【図５】
0005413014.tif 000006
【図６】
0005413014.tif 000007
【図７】
0005413014.tif 000008
【図８】
0005413014.tif 000009