(57)【特許請求の範囲】
【請求項１】
ネットワーク・アドレス変換（ＮＡＴ）とＩＰセキュリティ（ＩＰＳｅｃ）処理とを統合するＩＰＳｅｃに基づいて、仮想私設網（ＶＰＮ）を操作する方法であって、
ＮＡＴ  ＩＰアドレス・プールを構成するステップと、
前記ＮＡＴ  ＩＰアドレス・プールを使用するようにＶＰＮ接続を構成するステップと、
前記ＮＡＴ  ＩＰアドレス・プールから特定のＩＰアドレスを取得し、その特定のＩＰアドレスを前記ＶＰＮ接続に割り当てるステップと、
前記ＶＰＮ接続を開始するステップと、
前記ＶＰＮ接続用のセキュリティ連合および接続フィルタをオペレーティング・システムのカーネルにロードするステップと、
前記ＶＰＮ接続に対してＩＰデータグラムを処理するステップと、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用するステップと
を備え、
前記ＶＰＮ接続がアウトバウンド処理用に構成されており、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用する前記ステップが、アウトバウンド送信元ＩＰ  ＮＡＴ処理を含んでいる、
方法。
【請求項２】
ネットワーク・アドレス変換（ＮＡＴ）とＩＰセキュリティ（ＩＰＳｅｃ）処理とを統合するＩＰＳｅｃに基づいて、仮想私設網（ＶＰＮ）を操作する方法であって、
ＮＡＴ  ＩＰアドレス・プールを構成するステップと、
前記ＮＡＴ  ＩＰアドレス・プールを使用するようにＶＰＮ接続を構成するステップと、
前記ＮＡＴ  ＩＰアドレス・プールから特定のＩＰアドレスを取得し、その特定のＩＰアドレスを前記ＶＰＮ接続に割り当てるステップと、
前記ＶＰＮ接続を開始するステップと、
前記ＶＰＮ接続用のセキュリティ連合および接続フィルタをオペレーティング・システムのカーネルにロードするステップと、
前記ＶＰＮ接続に対してＩＰデータグラムを処理するステップと、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用するステップと
を備え、
前記ＶＰＮ接続がインバウンド処理の組み合わせ用に構成されており、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用する前記ステップが、インバウンド送信元ＩＰ  ＮＡＴ処理、またはインバウンド送信先ＩＰ  ＮＡＴ処理を含んでいる、
方法。
【請求項３】
さらに、ＮＡＴと、動的に施錠されたＩＫＥセキュリティ・アソシエーションとを統合するために、
前記ＶＰＮ接続を構成して、前記ＶＰＮ接続用の鍵を自動的に取得するステップをさらに備えた、
請求項１または２に記載の方法。
【請求項４】
さらに、ＮＡＴと、ＩＫＥが動的にネゴシエーションしたＩＰＳｅｃセキュリティ・アソシエーションとを統合するために、
前記ＶＰＮ接続を開始するステップが、ＩＫＥが前記ＮＡＴ  ＩＰアドレス・プールから前記ＩＰアドレスを取得するためのメッセージを生成するステップをさらに備え、
さらに、
ＩＫＥを操作してネゴシエーションされた鍵を動的に取得するステップ
を備えた、
請求項１または２に記載の方法。
【請求項５】
さらに、動的に取得した鍵と前記ＮＡＴ  ＩＰアドレス・プールとを組み合わせるステップを備え、
前記ＶＰＮ接続用のセキュリティ・アソシエーションと接続フィルタとをオペレーティング・システムのカーネルにロードする前記ステップが、セキュリティ・アソシエーションとしての結果を前記オペレーティング・システムのカーネルにロードする、
請求項４に記載の方法。
【請求項６】
ＩＰＳｅｃベースのＶＰＮ接続とＶＰＮポリシーの、定義と構成を直接使って、ＮＡＴの定義と構成を可能にする方法であって、
ＶＰＮ  ＮＡＴタイプａアウトバウンド送信元ＩＰ  ＮＡＴ、ＶＰＮ  ＮＡＴタイプｃインバウンド送信元ＩＰ  ＮＡＴ、およびＶＰＮ  ＮＡＴタイプｄインバウンド送信先ＩＰ  ＮＡＴから成る３つのタイプのＶＰＮ  ＮＡＴの各々に対して、サーバがポリシー・データベースにおける使用可能なＩＰアドレスがあるか否かの諾否判断によってＶＰＮ  ＮＡＴに対する要求を構成するステップと、
前記ＶＰＮ  ＮＡＴの各々に対する前記諾否判断に選択的に応答してサーバがポリシー・データベースのフラグを調べ、リモートＩＰアドレス・プールすなわちサーバＩＰアドレス・プールを構成するステップと
を備え、
前記ポリシー・データベースの送信元−アウト（ｓｏ）フラグがオン、または送信元−イン（ｓｉ）フラグがオンである場合には、リモートＶＰＮ接続の終点アドレスに基づいてリモートＩＰアドレス・プールすなわちサーバＩＰアドレス・プールを構成し、
前記ポリシー・データベースの送信先−イン（ｄｉ）フラグがオンである場合には、送信先アドレスが指示しているリモートＩＰアドレス・プールすなわちサーバＩＰアドレス・プールを構成する、
方法。
【請求項７】
さらに、
ＶＰＮ接続が必要されることになる各リモートＩＰアドレス用に前記リモートＩＰアドレス・プールを一意に構成し、これにより、前記リモートＩＰアドレス・プールがリモートＩＤによって施錠されるステップ
を備えた、
請求項６に記載の方法。
【請求項８】
さらに、
構成中のシステムに対して前記サーバＩＰアドレス・プールをただ１つ構成するステップ
を備えた、
請求項６に記載の方法。
【請求項９】
請求項１または２に記載の方法におけるＩＰデータグラムにＶＰＮ  ＮＡＴを適用するステップにおいて、ＶＰＮ  ＮＡＴアクティビティがオペレーティング・システムのカーネルで起きるときに、当該ＶＰＮ  ＮＡＴアクティビティを利用者が追跡することができるようにする方法であって、
ＶＰＮ接続の構成に応答して、ジャーナル・レコードを生成するステップと、
ＶＰＮ接続を通じて処理された各データグラムごとに、新しいレコードで前記ジャーナル・レコードを更新するステップと、
利用者が前記ジャーナル・レコードを管理するのを可能にするステップと
を備えた方法。
【請求項１０】
請求項１または２に記載の方法において、ＶＰＮ  ＮＡＴアドレス・プールがゲートウエイに関連付けられるのを可能にし、それにより、サーバの負荷平衡を実現する方法であって、
構成中のシステム用にサーバＮＡＴ  ＩＰアドレス・プールを構成するステップと、
前記サーバＮＡＴ  ＩＰアドレス・プールに、グローバルにルーティング可能な特定のＩＰアドレスを格納するステップと、
ＶＰＮ接続を構成して、前記サーバＮＡＴ  ＩＰアドレス・プールを使用するステップと、
前記サーバＮＡＴ  ＩＰアドレス・プール中のアドレスの数に応じて、並行するＶＰＮ接続の総量を管理するステップと
を備えた方法。
【請求項１１】
請求項１または２に記載の方法において、ＮＡＴアドレスの使用可能性に基づいて、システム当りのＶＰＮ接続の総数を制御する方法であって、
ＩＰアドレスの共通集合でリモートＩＰアドレス・プールの総量を構成するステップであって、前記ＩＰアドレスが、範囲として、単一のアドレスのリストとして、または、複数の範囲と単一のアドレスとの任意の組み合わせとして構成されているステップと、
前記リモートＩＰアドレス・プールの総量にわたって構成された前記ＩＰアドレスの数に応じて、並行してアクティブなＶＰＮ接続が成功裏に開始するのを制限するステップと
を備えた方法。
【請求項１２】
請求項１または２に記載の方法におけるＩＰデータグラムにＶＰＮ  ＮＡＴを適用するステップが、選択したＩＣＭＰデータグラムに対してネットワーク・アドレス変換を実行するステップであって、
ＩＣＭＰタイプのパケットから選択したタイプを検出するステップと、
前記選択したタイプに応じて、ＩＣＭＰデータを含む全データグラムに対してネットワーク・アドレス変換を実行するステップと
を備えた方法。
【請求項１３】
請求項１または２に記載の方法におけるＩＰデータグラムにＶＰＮ  ＮＡＴを適用するステップが、選択したＦＴＰデータグラムに対してネットワーク・アドレス変換を実行するステップであって、
ＦＴＰ  ＰＯＲＴコマンドまたはＰＡＳＶ  ＦＴＰコマンドの出現を検出するステップと、
前記ＦＴＰ  ＰＯＲＴコマンドまたはＰＡＳＶ  ＦＴＰコマンドに応答して、ＦＴＰデータおよびヘッダーに対してネットワーク・アドレス変換を実行するステップと
を備えた方法。
【請求項１４】
ＮＡＴとＩＰＳｅｃ処理とを統合するＩＰＳｅｃに基づいて、ＶＰＮを操作するシステムであって、
ＮＡＴ  ＩＰアドレス・プールを構成する手段と、
ＶＰＮ接続を構成して、前記ＮＡＴ  ＩＰアドレス・プールを使用する手段と、
前記ＮＡＴ  ＩＰアドレス・プールから特定のＩＰアドレスを取得し、その特定のＩＰアドレスを前記ＶＰＮ接続に割り当てる手段と、
前記ＶＰＮ接続を開始する手段と、
前記ＶＰＮ接続用のセキュリティ・アソシエーションおよび接続フィルタをオペレーティング・システムのカーネルにロードする手段と、
前記ＶＰＮ接続に対してＩＰデータグラムを処理する手段と、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用する手段と
備え、
前記ＶＰＮ接続がアウトバウンド処理用に構成されており、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用する手段が、アウトバウンド送信元ＩＰ  ＮＡＴ処理する手段を含んでいる、
システム。
【請求項１５】
ＮＡＴとＩＰＳｅｃ処理とを統合するＩＰＳｅｃに基づいて、ＶＰＮを操作するシステムであって、
ＮＡＴ  ＩＰアドレス・プールを構成する手段と、
ＶＰＮ接続を構成して、前記ＮＡＴ  ＩＰアドレス・プールを使用する手段と、
前記ＮＡＴ  ＩＰアドレス・プールから特定のＩＰアドレスを取得し、その特定のＩＰアドレスを前記ＶＰＮ接続に割り当てる手段と、
前記ＶＰＮ接続を開始する手段と、
前記ＶＰＮ接続用のセキュリティ・アソシエーションおよび接続フィルタをオペレーティング・システムのカーネルにロードする手段と、
前記ＶＰＮ接続に対してＩＰデータグラムを処理する手段と、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用する手段と
備え、
前記ＶＰＮ接続がインバウンド処理の組み合わせ用に構成されており、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用する手段が、インバウンド送信元ＩＰ  ＮＡＴ処理、またはインバウンド送信先ＩＰ  ＮＡＴ処理する手段を含んでいる、
システム。
【請求項１６】
ＩＰＳｅｃベースのＶＰＮ接続とＶＰＮポリシーの、定義と構成を直接使って、ＮＡＴの定義と構成を可能にするシステムであって、
ＶＰＮ  ＮＡＴタイプａアウトバウンド送信元ＩＰ  ＮＡＴ、ＶＰＮ  ＮＡＴタイプｃインバウンド送信元ＩＰ  ＮＡＴ、およびＶＰＮ  ＮＡＴタイプｄインバウンド送信先ＩＰ  ＮＡＴから成る３つのタイプのＶＰＮ  ＮＡＴの各々に対する使用可能なＩＰアドレスがあるか否かの諾否判断によってサーバがＶＰＮ  ＮＡＴに対する要求を構成するポリシー・データベースと、
前記ＶＰＮ  ＮＡＴの各々に対する前記諾否判断に応答してサーバがポリシー・データベースのフラグを調べることによって選択的に構成されたリモートＩＰアドレス・プールすなわちサーバＩＰアドレス・プールと
を備え、
前記ポリシー・データベースの送信元−アウト（ｓｏ）フラグがオン、または送信元−イン（ｓｉ）フラグがオンである場合には、リモートＶＰＮ接続の終点アドレスに基づいてリモートＩＰアドレス・プールすなわちサーバＩＰアドレス・プールが構成され、
前記ポリシー・データベースの送信先−イン（ｄｉ）フラグがオンである場合には、送信先アドレスが指示しているリモートＩＰアドレス・プールすなわちサーバＩＰアドレス・プールが構成される、
システム。
【請求項１７】
ＶＰＮ  ＮＡＴアドレス・プールがゲートウエイに関連付けられるのを可能にし、それにより、サーバの負荷平衡を実現する手段であって、
範囲として、単一のアドレスのリストとして、または、複数の範囲と単一のアドレスとの任意の組み合わせとして構成された複数のアドレスを含むように、構成中の所定のシステム用に構成されたサーバＮＡＴ  ＩＰアドレス・プールと、
グローバルにルーティング可能な特定のＩＰアドレスを格納する前記サーバＮＡＴ  ＩＰアドレス・プールと、
前記サーバＮＡＴ  ＩＰアドレス・プールを使用するように構成されたＶＰＮ接続と、
前記サーバＮＡＴ  ＩＰアドレス・プール中のアドレスの数に応じて、並行するＶＰＮ接続の総量を管理する接続コントローラと
を備えた手段を含む請求項１４または１５に記載のシステム。
【請求項１８】
ＮＡＴとＩＰＳｅｃ処理とを統合するＩＰＳｅｃに基づいて、ＶＰＮを操作する請求項１または２記載の方法を実行する、機械実行可能な命令から成るプログラムを有形的に記録した機械読み取り可能なプログラム記憶装置。
【請求項１９】
自身の中にＮＡＴとＩＰＳｅｃ処理とを統合するＩＰＳｅｃに基づいて、ＶＰＮを操作するコンピュータ読み取り可能なプログラム・コード手段を記録したコンピュータ使用可能な記憶媒体であって、
前記記憶媒体中のコンピュータ読み取り可能なプログラム・コード手段が、
ＮＡＴ  ＩＰアドレス・プールを構成するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
ＶＰＮ接続を構成して、前記ＮＡＴ  ＩＰアドレス・プールを使用するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＮＡＴ  ＩＰアドレス・プールから特定のＩＰアドレスを取得し、その特定のＩＰアドレスを前記ＶＰＮ接続に割り当てるようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＶＰＮ接続を開始するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＶＰＮ接続用のセキュリティ・アソシエーションおよび接続フィルタをオペレーティング・システムのカーネルにロードするようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＶＰＮ接続に対してＩＰデータグラムを処理するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と
を備え、
前記ＶＰＮ接続がアウトバウンド処理用に構成されており、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段が、アウトバウンド送信元ＩＰ  ＮＡＴ処理する手段を含んでいる、
記憶媒体。
【請求項２０】
自身の中にＮＡＴとＩＰＳｅｃ処理とを統合するＩＰＳｅｃに基づいて、ＶＰＮを操作するコンピュータ読み取り可能なプログラム・コード手段を記録したコンピュータ使用可能な記憶媒体であって、
前記記憶媒体中のコンピュータ読み取り可能なプログラム・コード手段が、
ＮＡＴ  ＩＰアドレス・プールを構成するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
ＶＰＮ接続を構成して、前記ＮＡＴ  ＩＰアドレス・プールを使用するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＮＡＴ  ＩＰアドレス・プールから特定のＩＰアドレスを取得し、その特定のＩＰアドレスを前記ＶＰＮ接続に割り当てるようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＶＰＮ接続を開始するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＶＰＮ接続用のセキュリティ・アソシエーションおよび接続フィルタをオペレーティング・システムのカーネルにロードするようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＶＰＮ接続に対してＩＰデータグラムを処理するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と
を備え、
前記ＶＰＮ接続がインバウンド処理の組み合わせ用に構成されており、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段が、インバウンド送信元ＩＰ  ＮＡＴ処理、またはインバウンド送信先ＩＰ  ＮＡＴ処理する手段を含んでいる、
記憶媒体。
【請求項２１】
ネットワーク・アドレス変換（ＮＡＴ）を使って仮想私設網（ＶＰＮ）にＩＰセキュリティ（ＩＰＳｅｃ）を実現する方法であって、
動的にＮＡＴ規則を生成し、それらと人手でまたは動的に生成した（ＩＫＥ）セキュリティ・アソシエーションとを関連付けるステップと、その後、
前記セキュリティ・アソシエーションを使うＩＰＳｅｃを開始するステップと、次いで、
アウトバウンド・データグラムおよびインバウンド・データグラムに対してＩＰＳｅｃを実行するときに、ＶＰＮ  ＮＡＴタイプａアウトバウンド送信元ＩＰ  ＮＡＴ、ＶＰＮ  ＮＡＴタイプｃインバウンド送信元ＩＰ  ＮＡＴ、およびＶＰＮ  ＮＡＴタイプｄインバウンド送信先ＩＰ  ＮＡＴのうちの少なくとも１つを選択的に実行するステップと
を備え、
ＶＰＮ接続がアウトバウンド処理用に構成されており、
アウトバウンド・データグラムおよびインバウンド・データグラムに対してＩＰＳｅｃを実行するときに、ＶＰＮ  ＮＡＴタイプａアウトバウンド送信元ＩＰ  ＮＡＴ、ＶＰＮ  ＮＡＴタイプｃインバウンド送信元ＩＰ  ＮＡＴ、およびＶＰＮ  ＮＡＴタイプｄインバウンド送信先ＩＰ  ＮＡＴのうちの少なくとも１つを選択的に実行する前記ステップが、アウトバウンド送信元ＩＰ  ＮＡＴ処理を含んでいる、
方法。
【請求項２２】
ネットワーク・アドレス変換（ＮＡＴ）を使って仮想私設網（ＶＰＮ）にＩＰセキュリティ（ＩＰＳｅｃ）を実現する方法であって、
動的にＮＡＴ規則を生成し、それらと人手でまたは動的に生成した（ＩＫＥ）セキュリティ・アソシエーションとを関連付けるステップと、その後、
前記セキュリティ・アソシエーションを使うＩＰＳｅｃを開始するステップと、次いで、
アウトバウンド・データグラムおよびインバウンド・データグラムに対してＩＰＳｅｃを実行するときに、ＶＰＮ  ＮＡＴタイプａアウトバウンド送信元ＩＰ  ＮＡＴ、ＶＰＮ  ＮＡＴタイプｃインバウンド送信元ＩＰ  ＮＡＴ、およびＶＰＮ  ＮＡＴタイプｄインバウンド送信先ＩＰ  ＮＡＴのうちの少なくとも１つを選択的に実行するステップと
を備え、
ＶＰＮ接続がインバウンド処理の組み合わせ用に構成されており、
アウトバウンド・データグラムおよびインバウンド・データグラムに対してＩＰＳｅｃを実行するときに、ＶＰＮ  ＮＡＴタイプａアウトバウンド送信元ＩＰ  ＮＡＴ、ＶＰＮ  ＮＡＴタイプｃインバウンド送信元ＩＰ  ＮＡＴ、およびＶＰＮ  ＮＡＴタイプｄインバウンド送信先ＩＰ  ＮＡＴのうちの少なくとも１つを選択的に実行する前記ステップが、インバウンド送信元ＩＰ  ＮＡＴ処理、またはインバウンド送信先ＩＰ  ＮＡＴ処理を含んでいる、
方法。
【請求項２３】
前記ＮＡＴ  ＩＰアドレス・プールが、範囲として、単一のアドレスのリストとして、または、複数の範囲と単一のアドレスとの任意の組み合わせとして構成された複数のアドレスを含んでいる、
請求項１または２に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＶＰＮ接続のセキュリティに関する。本発明は，特に、ＶＰＮ  ＮＡＴ、すなわちＮＡＴとＩＰＳｅｃプロトコルとを並行して使用することに関する。ＶＰＮ（virtual private network:仮想私設網）とは公衆網の中に仮想的に構築した私設網のことである。ＮＡＴ（network address translation)とは少ないグローバル・アドレスで利用することのできる端末の数を増やすために、プライベート・アドレスとグローバル・アドレスとを変換することであり、ＲＦＣ１６３１で規定されている。ＲＦＣ（request for comments）とはインターネット関連技術の標準化団体であるＩＥＴＦ（Internet Engineering Task Force)が取りまとめている一連の文書のことである。ＩＰＳｅｃプロトコル（Internet Protocol Security protocols）とはＴＣＰ／ＩＰ（Transmission Control Protocol / Internet Protocol)にセキュリティ機能を付加するプロトコルの枠組みのことである。
【０００２】
【従来の技術】
ＶＰＮ（仮想私設網）は、インターネットとコンピューティングの産業を通じて技術的な発展が盛んな分野である。これは、ＶＰＮによって初めて大部分の形態のｅビジネス（e-buisiness)が成り立ちうるようになるからである。ＶＰＮではプロトコル・トンネリングと暗号化・復号化技術（ＩＰＳｅｃプロトコル）を使っているので、クライアントとサーバ、支店、あるいは独立機関が、専用線を購入するよりもはるかに少ない費用で、専用線の主要な便益であるプライバシーを損なうことなく、インターネットを自分たちのＴＣＰ／ＩＰ通信用に利用することが可能になる。
【０００３】
ＶＰＮが使っているトンネリング（途中にある別のネットワークを経由してデータを送信すること）には、以前は直接通信していなかった、サブネットや企業など２つのユーザが通信を始めることに起因して、ＩＰアドレスが衝突する可能性が非常に大きくなる、という問題を引き起こす副作用がある。
【０００４】
ＩＰアドレスの衝突を克服するために、インターネット、およびインターネットに接続している企業ではＮＡＴが広く使われている。これらＩＰアドレスの衝突は、一般に、指定された「専用（private)」のＩＰアドレス空間（たとえば１０．＊．＊．＊）同士の間で起こる。
【０００５】
しかしながら、ＮＡＴとＩＰＳｅｃ（ＩＰセキュリティ）とは、アーキテクチャ上矛盾対立する関係にある。実際、ＮＡＴは、ＩＰＳｅｃを破ってしまう。すなわち、ＮＡＴは「ロケータ（locator)および終点識別子（end-point identifier）双方としてのＩＰアドレスの意味上の過負荷を最終的には破ってしまう機能である」（「ＮＡＴのアーキテクチャ上の意味」〔draft-iab-nat-implication-00.txt, １９９８年３月〕〔"architectural Implications of NAT", draft-iab-nat-implication-00.txt, March 1998.〕参照。ＩＰＳｅｃは、ケントとアトキンソン「ＩＰのためのセキュリティ・アーキテクチャ」〔ＲＦＣ２４０１、１９９８年１１月〕〔Kent, S., and Atkinson, "Securuty Architecture for the Internet Protocol", RFC 2401, November 1998〕、ケントとアトキンソン「ＩＰ認証プロトコル」〔ＰＦＣ２４０２、１９９８年１１月〕〔Kent, S., and Atkinson, "IP Authentication Protocol", RFC 2402, November 1998 〕、および、ケントとアトキンソン「ＩＰカプセル化セキュリティ・ペイロード」〔ＲＦＣ２４０６、１９９８年１１月〕〔Kent, S., and Atkinson, "IP Encapsulation Security Payload", RFC 2406, November 1998. 〕に記載されている）。この結果、２つのホストは、中間にＮＡＴシステムがあると、ＩＰＳｅｃ接続を確立することができない。これには、以下に示す２つの理由がある。その前に、（ＩＰＳｅｃ接続の場合、）２つのホストの間を流れるＩＰデータには、ＡＨ（authentication header:認証用ヘッダー）とＥＳＰ（encapsulation security payload: ＩＰパケットの暗号化プロトコル）とが適用されることになる。（上掲ＲＦＣ２４０２、ＲＦＣ２４０６参照）。
【０００６】
第１に、トンネル・モードにおけるＥＳＰに関しては、変換する必要のあるＩＰアドレスは、ＥＳＰトンネルの内部にあるとともに、暗号化されている。したがって、上記ＩＰアドレスは、ＮＡＴには入手不可能である（トンネル・モードにおけるＥＳＰではＩＰパケットをヘッダーを含めて暗号化する）。トランスポート・モードまたはトンネル・モードにおけるＡＨに関しては、変換する必要のあるＩＰアドレスは、ＮＡＴで見ることができる。しかし、ＡＨ認証には、上記ＩＰアドレスが含まれいてる。したがって、ＩＰアドレスを変更することにより、ＩＰＳｅｃ接続のリモート側における認証を破ることができる。トランスポート・モードにおけるＥＳＰに関しては、ＥＳＰを認証とともに使ったとしても、ＩＰアドレスは、ＮＡＴにとって入手可能である（トランスポート・モードにおけるＥＳＰではＩＰパケットのデータ部だけしか暗号化しない）。したがって、ＩＰアドレスを変更すると、ＩＰＳｅｃ接続のリモート側での認証が破れるのに起因してＩＰＳｅｃ接続が破れてしまう。
【０００７】
第２に、ＩＰＳｅｃ接続用のＩＰ通信データを変換することがたとえできたとしても、ＩＰＳｅｃ接続は２つのホストＩＰアドレスを含むセキュリティ・アソシエーション（Security Association: ＳＡ、相互に認証しあったネットワーク上の実体〔コンピュータやそのユーザ、ソフトウェア・コンポーネントなど〕の一群）に基づいているので、それはうまくゆかないだろう。これらの事柄は、セキュリティ・アソシエーションアーキテクチャ（上掲ＲＦＣ２４０１参照）にとって重要である。というのは、暗号化（または認証）がなされるべきホストでは、インバウンドＩＰＳｅｃは、次に示す３要素によって一意に決定される必要があるからである。
｛送信先ＩＰアドレス，ＳＰＩ，ＩＰＳｅｃプロトコル｝
ただし、ＳＰＩとはセキュリティ・プロトコル・インデックス（security protocol index)のことである（上掲ＲＦＣ２４０１参照）。
【０００８】
たとえば、いま２つのホストＡ、Ｗがあるものとして、ホストＡからホストＷへ流れる、トランスポート・モードにおけるＥＳＰが施されたＩＰデータグラム（電線を流れるディジタル・データに対する一般用語〔正確には、データグラムとは、非コネクション型の経路を流れるパケットのことである。ＴＣＰ／ＩＰは非コネクション型の経路制御を行なう〕）にＮＡＴが適用されている、と仮定する。したがって、ＩＰ送信元アドレスは、変更されている。パケットは、ホストＷに到着すると、恐らく首尾よく復号化される。なぜなら、パケットは、ＩＰ送信元アドレスに依存していないからである（パケットはトンネル化されず、平文のままである）。しかし、実装が厳密である場合には、復号化に続くインバウンドＳＰＤチェックは、ＩＰ送信元アドレスが変更されたことに起因して、失敗する（なぜなら、変更されたＩＰ送信元アドレスは、セキュリティ・アソシエーションとネゴシエーションするのに使ったアドレスではないからである）。以上のように、トランスポート・モードのＥＳＰの場合であるにもかかわらず、失敗する。
【０００９】
ＮＡＴとＩＰＳｅｃとを相互に排他的にするだけでは、当技術分野で捜し求めている解決策にはならない。ＮＡＴは、グローバルなアドレス変更を実現する、アドレスの利用率を低減する、ＩＳＰ（Internet service provider:インターネット接続業者）のサポート負担を低減する、仮想ホストとして負荷の分担を可能にする、というように多くの問題を解決することができるので、ＮＡＴは、広く配置されている。
【００１０】
しかし、今日では、ＮＡＴは、インターネットに配置されているセキュリティ統合にとって、唯一最大の脅威であるとみなされている。この「ＮＡＴ問題」（いつも決まってこのように呼ばれる）は、アーキテクチャ上重要である。しかし、レガシーなアプリケーションおよびサービス（たとえば、ＩＰバージョン４〔ＩＰｖ２〕用に開発されたもの）は、ＩＰバージョン６〔ＩＰｖ６〕用に開発されたアプリケーションおよびサービスと長く共存してゆくことになる。したがって、ＮＡＴとＩＰＳｅｃとの共存を実現する技術が、少なくとも選ばれた状況では、大いに必要とされている。しかも、深刻な構成上の問題を引き起こさずに、ＮＡＴとＩＰＳｅｃとの共存を実現する技術が必要とされている。（ＩＰバージョン４は、「インターネット・プロトコル」〔ＲＦＣ７９１、１９８１年９月〕〔"Internet Protocol", RFC791, September 1981.〕に記載されている。ＩＰバージョン６は、ディアリングとヒンデンの「インターネット・プロトコル、バージョン６（ＩＰｖ６）仕様」〔ＲＦＣ２４６０、１９９８年１２月〕〔Deering, S., Hindrn, R., "Internet Protocol, Version 6 (IPv6) Specification", RFC2460, December 1998. 〕に記載されている）。
【００１１】
２つのアドレス・ドメインの間をＶＰＮで接続すると、接続する予定がない２つのアドレス・ドメインを直接接続することができる、という効果が得られる。したがって、ＶＰＮの使用が増大すると、アドレスの衝突が増大しやすくなる（なぜなら、接続する予定がない２つのアドレス・ドメインの間では、アドレスの重複を避ける方策がとられないからである）。また、ＶＰＮはネットワークの可視性を再定義するものであるから、ＶＰＮがＮＡＴを横切ると、アドレスが衝突する可能性が増大する、ということが分かる。今後、ＮＡＴの陰に隠れたアドレス空間においてアドレスを管理することが、多大な負担になるであろう。したがって、この負担を軽減する技術が必要とされている。
【００１２】
米国特許出願第０９／２４０７２０号には、ＩＰＳｅｃとＮＡＴとを統合する際に生じる一般的な問題に対する解決策が述べられている。そこでは、ＮＡＴを使うＶＰＮにおけるＩＰセキュリティ（ＩＰＳｅｃ）を、４種類のＶＰＮ  ＮＡＴのうちの１つまたはそれらの組み合わせを実行することによって実現している。（３種類のＶＰＮ  ＮＡＴは後述する。第４のＶＰＮ  ＮＡＴはこの出願の出願人の出願に係る米国特許出願に記載さている）。上記米国特許出願は、ＮＡＴ規則を動的に生成し、それらと、セキュリティ・アソシエーションを使うＩＰセキュリティを開始する前に、人手であるいは動的に生成したＩＫＥ（Internet key exchange:インターネット鍵交換) セキュリティ・アソシエーションとを関連付ける点を含んでいる。（ハーキンスとキャレルの「インターネット鍵交換（ＩＫＥ）」〔ＲＦＣ２４０９、１９９８年１１月〕〔Harkins, D., Carrel, D., "The Internet Key Exchange (IKE)", RFC2409, Novemner 1998. 〕参照。セキュリティ・アソシエーション（Security Association) は、上掲ＲＦＣ２４０１で定義されている用語である）。したがって、アウトバウンド・データグラムとインバウンド・データグラムとの双方でＩＰＳｅｃを実行しているので、ＮＡＴ機能も実行している。「ＩＰＳｅｃを実行」なる記載は、上掲したＩＰＳｅｃに関する３つのＲＦＣ（および他のＲＦＣ）によって定義されているように、ＩＰＳｅｃアウトバウンド処理またはＩＰＳｅｃインバウンド処理から成るステップを実行することを意味している。「ＮＡＴを実行」なる記載は、後述するＶＰＮ  ＮＡＴ処理から成るステップを実行することを意味している。
【００１３】
上記米国特許出願第０９／２４０７２０号では、利用者は、個別のＶＰＮ  ＮＡＴ規則を個別のＶＰＮ接続として構成しなければならない。これは、時間の無駄であるとともに、間違いを犯しやすい。したがって、ＶＰＮ接続は、実際には通信を保護することになっており、また、特定のＶＰＮ  ＮＡＴとは無関係であるべきである。
すなわち、ＶＰＮ  ＮＡＴ規則は、今まで１対１であった。これでは、ＮＡＴを利用することによって、必要なＶＰＮ接続の数が増大してしまう。
【００１４】
【発明が解決しようとする課題】
本発明の目的は、ＮＡＴ（Network address Translation ）とＩＰセキュリティ（IP Security:ＩＰＳｅｃ）との双方を並行して実現する、改良され、かつ大幅に簡易化されたシステムと方法とを提供することである。
【００１５】
本発明の他の目的は、ＶＰＮ（virtual Private netwrk）の使用に内在する、ＩＰアドレスの衝突の可能性が増大するという問題を解決するシステムと方法とを提供することである。
【００１６】
本発明の他の目的は、ドメインの再アドレス指定（高価な代替手段）を必要とすることなく、ＶＰＮを利用することができるようにするシステムと方法とを提供することである。
【００１７】
本発明の他の目的は、ドメイン・ホストにおける変更を必要とすることなく、ＩＰＳｅｃゲートウエイで全て実現される、ＶＰＮ  ＮＡＴ用のシステムと方法とを提供することである。
【００１８】
本発明の他の目的は、接続された各ドメインにおけるルーティングの変更を全く、あるいは少ししか必要としない、ＶＰＮ  ＮＡＴ用のシステムと方法とを提供することである。
【００１９】
本発明の他の目的は、単純な構成をした、ＶＰＮ  ＮＡＴ用のシステムと方法とを提供することである。
【００２０】
本発明の他の目的は、ＶＰＮが引き起こすアドレス衝突の問題の解決策を提供することである。
【００２１】
本発明の他の目的は、利用者がＶＰＮ接続を構成するのを支援する簡単化した解決策を提供することである。
【００２２】
本発明の他の目的は、単一のＶＰＮ接続が複数のＶＰＮ  ＮＡＴ規則をサポートすることができるようにすることである。
【００２３】
本発明の他の目的は、暗黙的にすなわち動的に割り当てられたＶＰＮ  ＮＡＴ規則内の衝突を、システム全体の観点から避けることのできるシステムと方法とを提供することである。
【００２４】
本発明の他の目的は、各ＮＡＴ規則に対する多数の別々のＶＰＮ接続を管理する必要を無くすことにより、動的ＮＡＴ規則に要するシステムのオーバーヘッドを低減することのできるシステムと方法とを提供することである。
【００２５】
本発明の他の目的は、ネットワークの監視とトラフィックの分析とを簡単化することのできるＶＰＮ  ＮＡＴシステムと方法とを提供することである。
【００２６】
【課題を解決するための手段】
本発明によると、仮想私設網（ＶＰＮ）ネットワーク・アドレス変換（ＮＡＴ）の複数のタイプのうちの１つまたは組み合わせを実行することにより、ＮＡＴを使ったＶＰＮでＩＰセキュリティ（ＩＰＳｅｃ）を実現することができる。これには、ＮＡＴ規則の集合を動的に生成し、このＮＡＴ規則の集合と人手でまたは動的に生成した（ＩＫＥ）セキュリティ・アソシエーションとを関連付けた後に、このセキュリティ・アソシエーションを使うＩＰセキュリティを開始することが含まれる。アウトバウンド・データグラムに対してＩＰＳｅｃを実行する直前に、接続（connection: コネクション）に関連付けられたＮＡＴ規則の集合から特定の規則を選んで、ＮＡＴ機能を実行し、その後、ＩＰＳｅｃが続く。インバウンド・データグラムに対してＩＰＳｅｃを実行した直後に、接続に関連付けられたＮＡＴ規則の集合から特定の規則を選んで、ＮＡＴ機能を実行する。
【００２７】
本発明の他の特徴と利点は、次に述べる本発明の好適な実施形態の詳細な説明および添付図面から明らかになる。
【００２８】
【発明の実施の形態】
本発明の好適な実施形態に従って、単一のＮＡＴ変換規則ではなく、単一のＶＰＮ接続に適用される複数のＮＡＴ変換規則を備えたＶＰＮ  ＮＡＴ機能を通じてＮＡＴ問題に焦点を当てる。これにより、利用者がＶＰＮ接続を構成するのが非常に簡単になる。従来、ＮＡＴとＶＰＮとを必要とする各アドレスは、別々に構成しなければならなかった。本発明による新たな機能は、上掲米国特許出願第０９／２４０７２０号を参照すると、「タイプａ送信元−アウト（type a source-out ）」・「タイプｄ送信先−イン（type d destination-in)」ＶＰＮ  ＮＡＴを備えている。ＨＩＤＥ  ＮＡＴ規則とＭＡＰ  ＮＡＴ規則（既存のＮＡＴとも呼ばれる）が誤って使用され、ＩＰＳｅｃがこの誤使用と結びついてしまう、という機能不全を避けるために、既存のＮＡＴの間にＡＨまたはＥＳＰをチェックする。ＨＩＤＥ  ＮＡＴ規則とＭＡＰ  ＮＡＴ規則は、図３と図４に関連して後述する既存のＮＡＴの基本的な２つの形態である。ＡＨヘッダーまたはＥＳＰヘッダー以外のＩＰパケットに所定のＮＡＴ規則を適用しても、アドレス変換は行なわれない。このことは、インバウンドＮＡＴとアウトバウンドＮＡＴの双方に当てはまる。したがって、この結果は、既存のＮＡＴ（対ＩＰＳｅｃ用ＶＰＮＮＡＴすなわち対ＩＰＳｅｃ  ＮＡＴ）の場合には、ＩＰＳｅｃが選ばれる、ということである。すなわち、ＩＰＳｅｃは、既存のＮＡＴに優先する。
【００２９】
ＮＡＴ規則がロードされた時点では、ＩＰＳｅｃ接続が（たとえば動的ＩＰと）衝突するか否かは分からないので、このような問題のチェックは、オペレーティング・システムのカーネルで実際にＮＡＴ処理が行なわれるまで、行なうことができない。これらの処置に対するユーザ可視性は、ＮＡＴ規則に対してジャーナリングがオンの場合、ＮＡＴ規則がデータグラムに適合している旨をジャーナル・エントリに表示することにより、提供される。しかし、これは、ＩＰＳｅｃ用には実行されていなかった。さらに、オペレーティング・システムのカーネルによるこれらの処置の情報ロギングは、既存のＮＡＴ規則１つ当たり限定された数のオカレンス（実現値）を備えることができる。同様に、１つのオカレンス当たりではなく、１つの接続当たりに１つのメッセージを、接続マネージャのジョブ・ログすなわち接続ジャーナルに提供することができる。「ジャーナリング」、「ジャーナル」なる用語は、当技術分野では、通常、それぞれ「ロギング」、「ログ・エントリ」とも呼ばれている。
【００３０】
ＶＰＮ  ＮＡＴと呼ばれているが、ＩＰＳｅｃゲートウエイでＮＡＴをＩＰＳｅｃと一緒に使うことができるようにするために、利用者は、専用のＩＰアドレスを保持している。そして、ＩＰＳｅｃ接続の開始と終了をＩＰＳｅｃゲートウエイで行なうことにより、アドレスの衝突が増大するのを避けている。ＩＰＳｅｃゲートウエイは、上掲ＲＦＣ２４０１で定義されている用語である。「ＶＰＮ接続」は、一般に「ＩＰＳｅｃトンネル」と呼ばれているものを指す別の用語である。「ＩＰＳｅｃトンネル」は、上掲ＲＦＣ２４０１で定義されている。
【００３１】
ＶＰＮは、統合ＮＡＴ機能を備えたイニシエータ・モードとレスポンダ・モードの双方で実現されている。セキュリティ・アソシエーションは、適切な外部（ＮＡＴ  ＲＨＳ）ＩＰアドレスを使ってネゴシエーションされる。対応する内部（ＮＡＴ  ＬＨＳ）ＩＰアドレスのＮＡＴ処理は、ＩＰＳｅｃへの接続のロードとオペレーティング・システムのカーネルにおけるＩＰＳｅｃ処理とに同期して、生成されたＮＡＴ規則によって行なわれる。アウトバウンドでは、通常の送信元ＩＰアドレスのほかに、インバウンド送信元ＩＰアドレスを変換する（インバウンドでは、送信先ＩＰアドレスの対応する変換をする）。「ＶＰＮ  ＮＡＴ規則」は、図５のブロック１２６、１２４によって表されている。すなわち、ＬＨＳアドレスとＲＨＳアドレスとの２つの組は、１つのＶＰＮ  ＮＡＴ規則から成る。
【００３２】
本発明では、ＶＰＮ接続に関連付けられたＮＡＴ規則のクラスを利用者が指定することができるようにするとともに、システムがこの指定されたクラスから特定のＮＡＴバインディング（規則）を動的に生成することができるようにして、単一のＶＰＮ接続が複数のＶＰＮ  ＮＡＴ規則をサポートしている。さらに、システム全体を基礎として、ＶＰＮ  ＮＡＴのタイプが送信元インバウンドである場合には、利用者が構成したＮＡＴアドレスのプールとローカルＩＰアドレスとを関連付けることにより、暗黙的にすなわち動的に割り当てられたＶＰＮ  ＮＡＴ規則の間における衝突を回避している。また、この出願にとって重要なＶＰＮ  ＮＡＴの３つの型は、下に示すテーブル１によって定義されている。
【００３３】
図１は、本発明の好適な実施形態の方法を示す図である。ステップ２０でＮＡＴを必要とする接続を構成する。ステップ２２でＩＰＳｅｃ  ＮＡＴアドレス・プールを定義する。ステップ２４でイニシエータ・モードの接続を開始する。ステップ２６でレスポンダ・モードの接続を開始する（これらは接続の反対側で開始される）。ステップ２８でＳＡ（セキュリティ・アソシエーション）対の更新を処理する。そして、ステップ３０で接続を終了する。（ＮＡＴプールとは、ＩＰアドレスの集合である）。これらのステップは、それぞれ、下でさらに説明する。
【００３４】
ステップ２０では、ユーザは、ＮＡＴが必要になる接続をすることに決め、それらを構成する。これは、論理的には、ＮＡＴ規則を書くのと等価である。このようにする際に考慮される４つの場合をテーブル１に示す。
【００３５】
0003636095.tif 000002
【００３６】
ＶＰＮ接続は、４つの終点、すなわち２つの「接続終点」と２つの「データ終点」を有するものとして定義されている。（したがって、トランスポート・モードは、接続の各終わりで、接続終点がデータ終点と等しい、ということを意味する）。ＩＤｃｉなる用語とＩＤｃｒなる用語とは、特にどれがイニシエータであり、どれがレスポンダであるかを示すことにより、２つのデータ終点を指している（上掲ＲＦＣ２４０９参照）。また、これらの識別子は、ＩＤｃｒ定義とＩＤｃｉ定義の一部を成す約６つの異なった形態のうちの１つをとることができる。この出願の場合、識別子の型は、特に関係はない。
【００３７】
たとえばＩＰＳｅｃポリシー・データベースでＮＡＴの特定のインスタンスを指定するとき、ユーザは、たとえばチェック・ボックスでＹｅｓ／Ｎｏを決める。ＩＰＳｅｃポリシーとは、ここで使っているように、システムで構成されたＩＰＳｅｃ情報の完全な集合のことである。この情報は、いわゆるＩＰＳｅｃデータベースすなわちＩＰＳｅｃ・ポリシー・データベースに格納されている。レスポンダ・モードのＮＡＴフラグＩＤｃｉ、ＩＤｃｒには、接続定義の一部を用いることができる。イニシエータ・モードのフラグには、「ローカル・クライアントＩＤ」（だけ）に関連付けられたユーザ−クライアント対の一部を用いることができる。レスポンダＩＤｃｉ  ＮＡＴフラグとレスポンダＩＤｃｒ  ＮＡＴフラグとは、独立に設定することができる。両者は、接続定義が外部開始モードを有する場合にしか関係しない。
【００３８】
今までは、全ての場合で、ＮＡＴフラグが「オン」のときには、対応する細分値は、接続定義で「ｓ」（スカラー）であることが必要であった。しかし、本発明によれば、これは、もはや動的ＶＰＮ  ＮＡＴに対する制約とはならない。すなわち、「ｓ」（スカラー）の細分度、「ｆ」（フィルタ〕の細分度、「ｃ」（クライアント）の細分度が全てサポートされている。「細分度（granuality）」は、上掲ＲＦＣ２４０１の第１５〜１６頁に記載されている。本発明の典型的な実施形態、たとえばＩＢＭ  ＡＳ／４００によれば、「細分度」は次のように実現されている。すなわち、各ＶＰＮ接続は、データグラム中に、当該ＶＰＮ接続中に通信があるべきか否かを判断するのにチェックされうる５つのセレクタ（フィールド）を備えている。これら５つのセレクタは、送信元ＩＰ、送信先ＩＰ、送信元ポート、送信先ポート、プロトコルである。この典型的な実施形態によれば、各セレクタは、（１）当該ＶＰＮ接続用のポリシー・フィルタ（セレクタ細分度「ｆ」の場合）、（２）ＩＫＥからの単一の値（セレクタ細分度「ｓ」の場合）、（３）ＩＫＥからの連続した範囲の値（セレクタ細分度「ｃ」の場合）のうちのいずれかからその値を取得する。
【００３９】
図２は、ＶＰＮ  ＮＡＴ  ＩＰプールがネットワークのシナリオに関係する形態を示す図である。線３４、３６は、インターネット４０におけるゲートウエイ（ＧＷ）４２、４４、４６間のＩＰＳｅｃ接続を表わしている。タイプ「ａ送信元−アウト」と「ｃ送信元−イン」用のＮＡＴプール５２、５４は、各リモートＩＤ（ゲートウエイ４４、４６）に独立に関連付けられている。タイプ「ｄ送信先−イン」のＶＰＮ  ＮＡＴの場合には、ＶＰＮ  ＮＡＴゲートウエイ４２が保持しているグローバルＩＰアドレス用に単一のＮＡＴプール５０を定義することができる。この典型的な実施形態では、ＮＡＴプール５０、５２、５４用のＩＰＳｅｃポリシーは、ＩＰＳｅｃデータベース４８に格納されている。この例では、３つの内部ネットワーク５６、５８、６０は、全て、同じ１０．＊．＊．＊というアドレス空間を使っている。これは、ＶＰＮ  ＮＡＴに対して初期値と契機とを与える。すなわち、これら３つの内部ネットワーク５６、５８、６０の間のＩＰＳｅｃトンネル（接続とも呼ばれる）は、それらを組み合わせる論理的な効果を有している。これは、一般に、アドレスの衝突なくして行なうことができない。ＶＰＮ  ＮＡＴは、ゲートウエイ（Ｇｗ１）４２が内部ネットワーク６０、５８上のゲートウエイ（ＧｗＱ）４４およびゲートウエイ（ＧｗＹ）４６の後ろのホストとそれぞれ取引をする必要がある場合にゲートウエイ（Ｇｗ１）４２に招来する問題の解決策を提供する。
【００４０】
ステップ２２で、ユーザは、ＶＰＮ  ＮＡＴ機能が排他的に使用するのに使用可能なＩＰアドレスの集合を（ＮＡＴプール５０、５２、５４に）定義する。各ＮＡＴプールは、ＩＰアドレスのある範囲として定義可能であるのが望ましいが、しかし、不連続なＩＰアドレスのリストであってもかまわない。また、各ＮＡＴプールは、リモートＩＤ  ＩＰＳｅｃポリシー・データベースのエンティティとローカルＩＤ  ＩＰＳｅｃポリシー・データベースのエンティティとに自然に関連付けられている。
【００４１】
テーブル２に、様々なＮＡＴプールの動機付けを行なうＶＰＮ  ＮＡＴの各特徴の様々な意味を示す。リモートＩＤまたはローカルＩＤごとに特定してあるけれども、ＮＡＴプールは、はっきり区別のできる３つのＩＰアドレスのグループとして管理することができる。これにより、ユーザは、たとえば、複数のリモートＩＤに対して同じ範囲を指定することが可能になる。文字ａ、ｃ、ｄは、ＶＰＮ  ＮＡＴのタイプ（テーブル１）に対応している。「ロ」の列は、ローカルにルーティング可能（locally routable）であることを意味している（これは、グローバルにルーティング可能（globally routable)と区別したものである）。
【００４２】
0003636095.tif 000003
【００４３】
ステップ２４でイニシエータ・モードの接続が開始する。イニシエータ・モードの接続が開始すると、接続マネージャが、ローカルＩＤを変換すべきか否かを調べる。変換する必要がある場合、接続マネージャは、データベース中でリモートＩＤに関連付けられているＮＡＴプール（たとえば５２）から使用可能なＩＰアドレスを捜し出す。ＩＰアドレスが使用可能であるか否かは、接続マネージャが次のようにして判断する。接続マネージャは、常時動作しており、ＶＰＮ接続を開始・終了させるとともに、状態を知らせるサーバである。このサーバ（接続マネージャ）は、任意のタイプ「ａ送信元−アウト」プール（テーブル１参照）からの、あるアクティブな接続（状態：開始、動作中、終了）で使われているＩＰアドレスの単一のリストを保持している。システム当り１つの接続マネージャしか動作していないから、「単一」はシステム全体で１つを意味する。接続マネージャは、使用済みのリストに載っていない、上記プールの最初のＩＰアドレスを選んで、使用済みのリストに付加する。使用可能なＩＰアドレスを見つけ出すことができない場合には、接続は開始せず、適切なエラー・メッセージ（およびＯＰ  ＮＡＶ  ＧＵＩへの戻りコード）を生成する。ポリシー・データベースは、ＩＰアドレスが使用中であることを示すためには更新しない。そうではなく、ポリシー・データベースの更新は、アクティブな接続の集合だけに基づいて、接続マネージャが動的に決める。「ＯＰ  ＮＡＶ  ＧＵＩ」とは、「ＡＳ／４００操作ナビゲータ・グラフィカル・ユーザ・インタフェース（ＧＵＩ）（AS/400 Operations Navigator graphical user interface) 」のことであり、ＶＰＮを含むＡＳ／４００の様々な側面を構成するのに使うＰＣ（パーソナル・コンピュータ）ベースのＧＵＩである。
【００４４】
接続マネージャがＩＫＥに送る開始メッセージ（ｍｓｇ）は、プールから選択されたＮＡＴ  ＲＨＳ  ＩＰアドレスを持つことになる。このＮＡＴ  ＲＨＳ  ＩＰアドレスは、セキュリティ・アソシエーション（ＳＡ）対に付加される。これは、ＩＫＥからの戻りＳＡが完了させる。次いで、接続マネージャは、接続をＩＰＳｅｃにロードする。ＳＡ対は、２つのセキュリティ・アソシエーションであり（上掲ＲＦＣ２４０１で定義されている）、１つはインバウンド用であり、他の１つはアウトバウンド用である。
【００４５】
この２つのＳＡ用のＮＡＴ規則を、ＩＰＳｅｃが生成する。アウトバウンドでは、フィルタリング後でＩＰＳｅｃ前にＮＡＴが行なわれる。インバウンドでは、ＩＰＳｅｃ後に（要すればフィルタリング前に）ＮＡＴが行なわれる。この意味で、ＮＡＴは、ＩＰＳｅｃ接続のローカル接続終点に対する「ラッピング（wrapping）」である。
【００４６】
図３および図４は、本発明によるＶＰＮ  ＮＡＴタイプを示す後続する図面の背景および対照をなすものとして、既存のＮＡＴ機能を説明する図である。
【００４７】
図３は、最も簡単な形である静的なＮＡＴを示す図である。既存のＮＡＴの両方のタイプとも、ユーザがＯｐＮａｖ  ＧＵＩで対応するＮＡＴ規則文を書くことにより、明示的に構成する。これは、実際のＮＡＴ規則すなわちＮＡＴ文をシステムが生成するＩＰＳｅｃ  ＮＡＴと対照的である。このような文の例として、図３のＭＡＰ文＜MAP lhs TO rhs＞、図４のＨＩＤＥ文＜HIDE ip addr set BEHIND rhs ＞が挙げられる。
【００４８】
再び図３を参照すると、インバウンド処理では、送信元ＩＰ７０が＜MAP lhs TO rhs＞文のＬＨＳ７２と一致する場合、送信元ＩＰ７０をＲＨＳ７６に変換する。アウトバウンド処理では、送信先ＩＰ７４がＲＨＳ７６と一致する場合、送信先ＩＰ７４をＬＨＳ７２に変換する。
【００４９】
図４を参照すると、マスカレードＮＡＴ（ＮＡＰＴ〔network address and port translation〕とも呼ばれる）は、上掲ＨＩＤＥ文＜HIDE ip addr set BEHIND rhs ＞を使い、自身のポート・プール１１８（ＵＤＰ、ＴＣＰ）を使ってインバウンド通信の変換方法を思い起こすことにより、多対１のアドレス変換を実現している。静的ＮＡＴ（図３）と異なり、マスカレードＮＡＴの会話＜CONVERSATION src ip, src port, rhs ip, rhs port, ...＞は、内部（ＬＨＳ）アドレスしか開始させることができない。ＶＰＮ  ＮＡＴ（これは、後述するように、本発明の好適な実施形態を識別するのに使う名前である）は、ポート変換を備えていないので、静的ＮＡＴに近い。
【００５０】
さらに図４を参照すると、アウトバウンド・データグラムの処理では、ステップ＜１＞で送信元ＩＰアドレス９０がＨＩＤＥ文のＩＰアドレス・セット９２中にあると判断された場合、ステップ＜２＞で送信元ＩＰアドレス９０をCONVERSATIONフィールド９４に、ステップ＜３＞でポート９８をフィールド９６に、ステップ＜４＞でＲＨＳ１０４をフィールド１００に、ステップ＜５＞でポート・プール群１１８の正しいプールからＲＨＳポートをフィールド１０２に、それぞれコピーすることによってCONVERSATIONを構成する。次いで、ステップ＜６＞で送信元ＩＰ９０はＲＨＳ１０４に変換され、ステップ＜７＞で送信元ポート９８はＲＨＳポート１０２に変更される。インバウンド・データグラムに対する処理では、ステップ＜８＞で送信先ＩＰアドレス１０６および送信先ポート１０８がCONVERSATIONフィールドのＲＨＳ  ＩＰ１００およびＲＨＳポート１０２とそれぞれ一致する場合、ステップ＜９＞で送信先ＩＰアドレス１０６はCONVERSATIONの送信元ＩＰアドレス９４に変換され、ステップ＜１０＞で送信先ポート１０８はCONVERSATIONの送信元ポート９６に変換される。
【００５１】
以上の他にもＮＡＴによって処理される特別な状況がいくつかあるが、それらは、本発明にとって興味がないので、説明しない。それらには、ＦＴＰやＩＣＭＰが生成する特別な状況の処理などがある。これらは、共に、変換されるＩＰアドレスを含んでいる。ＦＴＰ（＝File Transfer Protocol) はＲＦＣ９５９で定義されている。ＩＣＭＰ（＝Internet Control Message Protocol)はＲＦＣ７９２で定義されている。チェックサムの再計算を行なう。マスカレードＮＡＴでは、まず会話が存在し、その後、元の（性急な）ＨＩＤＥ規則ではなく、CONVERSATIONにデータグラムを一致させ、ポート・プールを管理し、時間に合わせて会話を終了させ、そして、ポートをマップする。ＶＰＮ  ＮＡＴがＩＣＭＰと（有名なＦＴＰ  ＰＯＲＴコマンドとＰＡＳＶコマンドならびに付随する諸問題を含む）ＦＴＰとをサポートしている点は、本発明の特別な利点である。
【００５２】
本発明によれば、動的に決められるＶＰＮ  ＮＡＴ規則は、次のようにして実現する。まず、利用者が、ＶＰＮ  ＮＡＴ処理を行なうべきである旨を、ＧＵＩ（グラフィカル・ユーザ・インタフェース）で指定する。ローカルで開始した接続の送信元ＩＰアドレスとして、複数のＩＰアドレスが許される。これら複数のＩＰアドレスは、（連続した）範囲またはアドレス、およびマスクで特定する。これらは、ＶＰＮ  ＮＡＴ規則のＬＨＳ（left-hand-side: 左手側）アドレス・セットを構成する。ＶＰＮ  ＮＡＴ規則のＲＨＳ（right-hand-side:右手側）アドレス・セットは、リモートのＶＰＮゲートウエイ・アドレスに関連付けられている。接続が開始すると、当該接続用のＩＰＳｅｃセキュリティ・アソシエーションの一部として、ＬＨＳアドレス・セットとＲＨＳアドレス・セットとの双方を当該接続と一緒にロードする。次いで、ＶＰＮ接続マネージャは、ＲＨＳアドレス・セットに使用済みの印を付けて、後刻開始する接続との間で生じうるＮＡＴ規則の衝突を避ける。
【００５３】
ロードされ（すなわちオペレーティング・システムのカーネルにインストールされ）、ローカルで開始された接続に対してＩＰ通信を行なう場合には、特定のデータグラムに適用すべき特定のＮＡＴを決めるのにＬＨＳアドレス・セットとＲＨＳアドレス・セットとを使う。各アドレス・セットを順序付けることによって、データグラムに特有のＮＡＴ規則を生成する。ＬＨＳアドレス・セットの各アドレスをＲＨＳアドレス・セットの対応する要素に１対１でマップする。ＬＨＳアドレス・セットの基数がＲＨＳアドレス・セットの基数よりも大きい場合には、ＬＨＳアドレス・セットの第ｎ番目の要素に対してＶＰＮ  ＮＡＴは行なわれない（ただし、ｎ＞ＲＨＳアドレス・セットの基数、基数とは集合の要素の個数を表わす数のことである）。（しかしながら、これは、ＧＵＩレベルの監査によって回避することができる）。アウトバウンド通信の場合には、データグラムの送信元ＩＰアドレスに基づいて、ＬＨＳアドレス・セットの第ｎ番目の要素を選択する。インバウンド通信の場合には、データグラムの送信先ＩＰアドレスに基づいて、ＲＨＳアドレス・セットの第ｎ番目の要素を選択する。
【００５４】
ロードされ、リモートで開始された（レスポンダ・モードの）接続に対してＩＰ通信を行なう場合、解決策は、ローカルで開始された接続の場合と基本的に同じであるが、しかし、逆である。この場合、ＲＨＳアドレス・セットを、ＬＨＳアドレス・セットの対応する要素にマップされている、インバウンド・データグラムの送信先ＩＰアドレスに一致させる。ＲＨＳアドレス・セットがＬＨＳアドレス・セットよりも大きい場合、ＮＡＴ処理は、全く行なわれない。ここでも、この処置は、人間の要因の観点から望ましくないかも知れない。したがって、この場合も、この処置は、ＧＵＩレベルの監査によって不許可になるかも知れない。
【００５５】
図５、図６、図７を参照すると、ＬＨＳとＲＨＳとは、連続した範囲のＩＰアドレスなどの集合（セット）を表わしている。ｘが集合であると仮定すると、ｓｉｚｅ（ｘ）は集合ｘの要素の個数を表わす。次に示す３つの場合を導入する。
場合１：ｓｉｚｅ（ＬＨＳ）＝ｓｉｚｅ（ＲＨＳ）＝１
場合２：ｓｉｚｅ（ＬＨＳ）＝ｓｉｚｅ（ＲＨＳ）＆ｓｉｚｅ（ＬＨＳ）＞１
場合３：ｓｉｚｅ（ＬＨＳ）！＝ｓｉｚｅ（ＲＨＳ）
【００５６】
場合１は、上掲米国特許出願第０９／２４０７２０号のシステムと方法によって取り扱われている。
【００５７】
場合２では、２つのセットは等しいから、各接続が開始するときに各接続用に生成される暗黙的なＭＡＰ規則は、２つのセットの文に固有のものである。
すなわち、ＬＨＳアドレス・セットの要素とＲＨＳアドレス・セットの要素との間には一意的な１対１の対応関係が存在する。したがって、特定のＶＰＮ接続負荷用の暗黙的なＭＡＰ規則は、簡単明瞭に生成される。たとえば、図５のプロセスでは、送信元−アウトＶＰＮ  ＮＡＴの場合、送信元ＩＰに一致する（ステップ１）ＬＨＳアドレス・セットの第ｎ番目の要素が見つかると、ＲＨＳアドレス・セットの第ｎ番目の要素を見つけ出して、送信元ＩＰを置き換えるのに使う（ステップ２）。
【００５８】
場合３では、ＬＨＳアドレス・セットの要素とＲＨＳアドレス・セットの要素との動的な関連付け（すなわちバインディング(binding) ）を、以前に生成されたバインディングに基づいて生成する。バインディングは必要に応じて通信が生成するか、あるいは、既存のバインディングを使う。バインディングは、接続期間中、あるいは、非アクティブ状態タイムアウト値に到達するまで続く。バインディングには、ローカルとリモートとの２つのタイプがある。また、バインディングは、システム全体で一意である。
【００５９】
ＶＰＮ接続が開始する時にＶＰＮ接続当りにいずれかの場合が一旦（いったん）決められると、それは、取り扱う各データグラムごとに再計算されることはない。
【００６０】
図５は、タイプａ「送信元−アウト」のＶＰＮ  ＮＡＴに関する、本発明の好適な実施形態を説明する図である。タイプａ「送信元−アウト」のＶＰＮ  ＮＡＴでは、ＩＤｃｉは、イニシエータ・モードの会話用に変換される。システムを生成した後、暗黙的なＭＡＰ規則１２８＜MAP lhs TO rhs＞をロードするが、それは、静的ＮＡＴとして機能する。この作業を行なう秘訣（ひけつ）は、ＩＫＥによってネゴシエーションされるセキュリティ・アソシエーションが暗黙的なＭＡＰ規則１３０＜MAP lhs TO rhs＞を使う点である。したがって、ＳＡ（セキュリティ・アソシエーション）とＶＰＮ  ＮＡＴとは、同期する。
【００６１】
さらに図５を参照すると、ローカルで開始した会話の場合、ステップ＜−２＞で、ＮＡＴが要求されているので、ローカル・クライアントＩＤ１２２をＬＨＳ１２６にコピーすることより、暗黙的なＭＡＰ規則１２８を生成する。ＲＨＳ１２４は、適切なプール１２０から取得する。ステップ＜０＞は、ＶＰＮ接続を開始する作業の一部であり、図１のステップ２４とステップ２６とを実行する間に行なう。ステップ＜０＞では、ＲＨＳ１２４を使ってＩＫＥネゴシエーションを完了した後、暗黙的なＭＡＰ規則１３０をオペレーティング・システムのカーネルにロードする。このステップ＜０＞は、接続のＳＡと接続のフィルタをロードするステップと、ローカル・バインディング・テーブル２１０の空白版を生成するステップとを備えている。アウトバウンド処理では、ステップ＜１＞で送信元ＩＰ１３２が暗黙的なＭＡＰ規則１３０の特定のＬＨＳと一致した場合、ステップ＜２＞で上述した場合１、場合２、場合３のいずれかに決定する。この結果、ＲＨＳ１３８のＩＰアドレスが得られる。この選択されたＲＨＳ１３８は、送信元ＩＰ１３２に取って代わる。ローカル・バインディング・テーブル２１０に、選択されたバインディングのエントリを作成する。インバウンド処理では、ステップ＜３＞で送信先ＩＰアドレス１４０がローカル・バインディング・テーブル２１０のＲＨＳと一致した場合、ステップ＜４＞で送信先ＩＰ１４０をローカル・バインディング・テーブル２１０のＬＨＳで置き換える。
【００６２】
ＬＨＳとＲＨＳとは、ＩＰアドレスの２つの集合のことである。ＶＰＮ  ＮＡＴ規則は、１つずつから成る。すなわち、ＶＰＮ  ＮＡＴ規則は、ＬＨＳアドレスのＲＨＳアドレスへのマッピング（ＬＨＳ−＞ＲＨＳ）を定義している。
【００６３】
図１のステップ２６で、レスポンダ・モードの接続が開始する。この際、ＩＫＥ機能が現在構成されているポリシーに基づいてＳＡ群とネゴシエーションする。ネゴシエーションが終わると、上記ＳＡ群は、１〜ｎのＳＡ対から成るＳＡ集合体として接続マネージャに送られる。
【００６４】
図６は、送信元−イン・タイプのＶＰＮ  ＮＡＴを説明する図である。図７は、送信先−イン・タイプのＶＰＮ  ＮＡＴを説明する図である。
【００６５】
図８を参照すると、接続マネージャ・サーバ３００は、ＩＫＥサーバ３３０から開始メッセージ（ｍｓｇ）３３２を受け取ると、ＶＰＮポリシー・データベース３０４の接続定義３０６を見て、ＮＡＴフラグ３１４を調べる。ＮＡＴリモート・フラグｓｏ３０８、ｓｉ３１０、ｄｉ３１２のうちの少なくとも１つが「オン」でる場合、ＩＤ１５２（図６）、ＩＤ１８２（図７）に関連付けられたＮＡＴフラグに応じて、適切なＮＡＴプール５０、５２、５４（図２）から、ＩＰアドレス１５４（図６）、１８６（図７）を取得する。ＮＡＴフラグとＮＡＴプールとの間の関係は、次の通りである。送信元−アウト（ｓｏ）フラグ３０８がオン、または送信元−イン（ｓｉ）フラグがオンの場合には、図２のＮＡＴプール・タイプ５２（５４と同じタイプ）を使い、リモートＶＰＮ接続の終点アドレスに基づいてＮＡＴプールを選択する。送信先−イン（ｄｉ）フラグ３１２がオンである場合には、送信先アドレスが指示している、図２のＮＡＴプール５０を使う。
【００６６】
リモートＩＤプール１５０からのＩＰアドレスの使用可能性の管理は、接続マネージャがアクティブな接続の集合に基づいて基づいて行なう（タイプａ「送信先−アウト」のＶＰＮ  ＮＡＴの場合）。接続マネージャは、ＩＤｃｒプール１８０（図７）に対する使用可能性も取り扱う。これにより、負荷平衡をとるのが可能になる。ＩＤｃｒプール１８０は、ＩＤｃｒのＮＡＴ処理を行なうためのＩＰアドレスの集合である。次に示す２つの基本的な手法がある。（１）開始ごとに、ＩＤｃｒプール１８０を始めのエントリから検索する。（２）開始ごとに、ＩＤｃｒプール１８０を最後に使ったＩＰから検索する。
【００６７】
ＩＰＳｅｃへのロードは、上述したイニシエータ・モードの場合と同様に行なう。リモートで開始された接続の通信を処理する場合、インバウンド・パケットとアウトバウンド・パケットとの各々に対して、２つの変換を行なうことができる（送信元と送信先）。
【００６８】
図６を参照すると、タイプｃ「送信元−イン」のＶＰＮ  ＮＡＴは、次に示すようにレスポンダ・モードの接続を開始する。ステップ＜−２＞で、ＩＤｃｉ１５２をＲＨＳ１５４にコピーすることにより、暗黙的なＭＡＰ規則１５８＜MAP lhs TO rhs＞を生成する。次いで、ステップ＜−１＞で、適切なＩＰアドレス・プール１５０からＩＰアドレスを選択して、それをＬＨＳ１５６にコピーする。ステップ＜０＞で、ＲＨＳ１５４を使ったＩＫＥネゴシエーションが完了した後、暗黙的なＭＡＰ規則１６０をロードする。このステップ＜０＞には、上述したステップ＜０＞の処理と同じものが含まれる。つまり、２つのステップ＜０＞は、ＶＰＮ  ＮＡＴの３つのタイプで全て同じである（ただし、いくつかの低レベルの詳細を除く）。インバウンド・データグラムの処理では、ステップ＜１＞で送信元ＩＰ１７２がＲＨＳ１６８と一致した場合、ステップ＜２＞で送信元ＩＰ１７２を対応するＬＨＳ１６６に変換する。次いで、上述した場合１、場合２、または場合３に基づいて、リモート・バインディング・テーブル２１２にエントリを作成する。アウトバウンド・データグラムの処理では、ステップ＜３＞で送信先ＩＰ１６４がＬＨＳと一致した場合、ステップ＜４＞で送信元ＩＰ１７２を対応するＲＨＳ１６８に変換する。送信先ＩＰ１６４用の検索は、場合３のときにはリモート・バインディング・テーブル２１２を使い、場合１または場合２のときには暗黙的なＭＡＰ規則１６０を使う。
【００６９】
図７を参照すると、タイプｄ「送信先−イン」のＶＰＮ  ＮＡＴは、次に示すように実行して、レスポンダ・モードの会話用にＩＤｃｒを変換する。ステップ＜−２＞でＩＤｃｒ１８２をＲＨＳ１８４にコピーして、暗黙的なＭＡＰ規則１８８を生成する。ステップ＜−１＞で適切なＩＰアドレス・プール１８０からＩＰアドレスを取得して、それをＬＨＳ１８６にコピーする。ステップ＜０＞では、ＲＨＳ１８４を使ったＩＫＥネゴシエーションが完了した後、暗黙的なＭＡＰ規則１９０をロードする。（ステップ＜０＞は、低レベルな詳細を除いて、図５および図６の場合と同じである）。
【００７０】
インバウンド・データグラムの処理では、ステップ＜１＞で送信先ＩＰ２００がＲＨＳ１９８と一致した場合、ステップ＜２＞で送信先ＩＰ２００をＬＨＳ１９６に変換する。アウトバウンド・データグラムの処理では、ステップ＜３＞で送信元ＩＰ１９２がＬＨＳ１９６と一致した場合、ステップ＜４＞で送信元ＩＰ１９２をＲＨＳ１９８に変換する。
【００７１】
図８を参照すると、図１のステップ２８で、接続マネージャ・サーバ３００は、ＳＡ対更新３０２を得ると、新しいＳＡ対の情報を接続プロセス・メモリ３２０のＳＡ対テーブル３２２にコピーする。
【００７２】
図１のステップ３０で、接続３４、３６を終了させるとき、接続マネージャ・サーバ３００は、当該接続に関連付けられたＮＡＴ  ＩＰアドレス５２、５４をを解放する（使用可能にする）。図８を参照して、ＮＡＴ  ＩＰアドレスを、接続マネージャ・サーバ３００が維持している適切なリスト３１６から除去する。
【００７３】
ＬＨＳアドレス・セットとＲＨＳアドレス・セットのサイズは、次に示す３項目の最小値をとることによって制御する。すなわち、（１）利用者が構成するサブネットのサイズ（すなわちアドレス範囲）、（２）ＮＡＴプール当りを基礎にして利用者が構成する接続当たりの並行ＶＰＮ  ＮＡＴセッションの最大数、（３）始めに構成したＮＡＴプールの中で今なお使用可能な値の残存範囲の最大値、である。これは、接続の始動（図１のステップ２４とステップ２６）の間に、ＶＰＮ接続マネージャが決める。
【００７４】
〔別の実施形態〕
ここでは説明のために本発明の特定の実施形態を述べたけれども、本発明の本旨と範囲から離れることなく、様々な変形をなしうる、ということが認識できる。特に、本発明の方法に従ってコンピュータの動作を制御する、および／または、本発明のシステムに従って構成要素を組み立てる、コンピューター・プログラム製品またはコンピューター・プログラム要素、あるいは、本発明の方法に従ってコンピュータの動作を制御する、および／または、本発明のシステムに従って構成要素を組み立てる、機械読み取り可能な信号を格納する、固体または流体の伝送媒体、磁気ワイヤまたは光ワイヤ、テープまたはディスク、などのプログラム格納装置すなわちプログラム記憶装置、を提供することは、本発明の範囲内である。（「Ａおよび／またはＢ」は「ＡおよびＢ、Ａ、またはＢ」を表わす）。
【００７５】
さらに、本発明の方法の各ステップは、ＩＢＭ  Ｓｙｓｔｅｍ３９０、ＡＳ／４００、ＰＣ（パーソナル・コンピュータ）など任意の汎用コンピュータで実行するとこができる。また、本発明の方法の各ステップは、Ｃ＋＋、Ｊａｖａ（Ｒ）、ＰＬ／１、Ｆｏｒｔｒａｎなど任意のプログラミング言語から生成したプログラム要素、モジュール、またはオブジェクトのうちの少なくとも１つ、あるいは、それ（またはそれら）の一部に従うことができる。さらに、上記各ステップ、または上記各ステップを実現するファイルやオブジェクトなどは、専用ハードウェアまたは回路モジュールによって実行することができる。
【００７６】
したがって、本発明の保護範囲は、特許請求の範囲およびその均等物によってしか限定されない。
【００７７】
まとめとして以下の事項を開示する。
（１）ネットワーク・アドレス変換（ＮＡＴ）とＩＰセキュリティ（ＩＰＳｅｃ）処理とを統合するＩＰＳｅｃに基づいて、仮想私設網（ＶＰＮ）を操作する方法であって、
ＮＡＴ  ＩＰアドレス・プールを構成するステップと、
ＶＰＮ接続を構成して、前記ＮＡＴ  ＩＰアドレス・プールを使用するステップと、
前記ＮＡＴ  ＩＰアドレス・プールから特定のＩＰアドレスを取得し、その特定のＩＰアドレスを前記ＶＰＮ接続に割り当てるステップと、
前記ＶＰＮ接続を開始するステップと、
前記ＶＰＮ接続用のセキュリティ・アソシエーションおよび接続フィルタをオペレーティング・システムのカーネルにロードするステップと、
前記ＶＰＮ接続に対してＩＰデータグラムを処理するステップと、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用するステップと
を備えた方法。
（２）前記ＶＰＮ接続がアウトバウンド処理用に構成されており、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用する前記ステップが、アウトバウンド送信元ＩＰ  ＮＡＴ処理を含んでいる、
上記（１）に記載の方法。
（３）前記ＶＰＮ接続がインバウンド処理の組み合わせ用に構成されており、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用する前記ステップが、インバウンド送信元ＩＰ  ＮＡＴ処理、またはインバウンド送信先ＩＰ  ＮＡＴ処理を含んでいる、
上記（１）に記載の方法。
（４）さらに、ＮＡＴと、人手で施錠されたＩＰＳｅｃ接続用のＩＰＳｅｃとを統合するために、
接続鍵を人手で構成するステップをさらに備えた、
上記（１）に記載の方法。
（５）さらに、ＮＡＴと、動的に施錠された（たとえばＩＫＥ）ＩＰＳｅｃ接続用のＩＰＳｅｃとを統合するために、
前記ＶＰＮ接続を構成して、前記ＶＰＮ接続用の鍵を自動的に取得するステップをさらに備えた、
上記（１）に記載の方法。
（６）さらに、ＮＡＴと、ＩＫＥが動的にネゴシエーションしたＩＰＳｅｃセキュリティ・アソシエーションとを統合するために、
前記ＶＰＮ接続を開始するステップが、ＩＫＥが前記ＮＡＴ  ＩＰアドレス・プールから前記ＩＰアドレスを取得するためのメッセージを生成するステップをさらに備え、
さらに、
ＩＫＥを操作してネゴシエーションされた鍵を動的に取得するステップ
を備えた、
上記（１）に記載の方法。
（７）さらに、動的に取得した鍵と前記ＮＡＴ  ＩＰアドレ・スプールとを組み合わせるステップを備え、
前記ＶＰＮ接続用のセキュリティ・アソシエーションと接続フィルタとをオペレーティング・システムのカーネルにロードする前記ステップが、セキュリティ・アソシエーションとしての結果を前記オペレーティング・システムのカーネルにロードする、
上記（６）に記載の方法。
（８）ＩＰＳｅｃベースのＶＰＮ接続とＶＰＮポリシーの、定義と構成を直接使って、ＮＡＴの定義と構成を可能にする方法であって、
ＶＰＮ  ＮＡＴタイプａアウトバウンド送信元ＩＰ  ＮＡＴ、ＶＰＮ  ＮＡＴタイプｃインバウンド送信元ＩＰ  ＮＡＴ、およびＶＰＮ  ＮＡＴタイプｄインバウンド送信先ＩＰ  ＮＡＴから成る３つのタイプのＶＰＮ  ＮＡＴの各々に対して、ポリシー・データベースにおける諾否判断によってＶＰＮ  ＮＡＴに対する要求を構成するステップと、
前記ＶＰＮ  ＮＡＴの各々に対する前記諾否判断に選択的に応答してリモートＩＰアドレス・プールすなわちサーバＩＰアドレス・プールを構成するステップと
を備えた方法。
（９）さらに、ＶＰＮ接続が必要されることになる各リモートＩＰアドレス用に前記リモートＩＰアドレス・プールを一意に構成し、これにより、前記リモートＩＰアドレス・プールがリモートＩＤによって施錠されるステップ
を備えた、
上記（８）に記載の方法。
（１０）さらに、構成中のシステムに対して前記サーバＩＰアドレス・プールをただ１つ構成するステップ
を備えた、
上記（８）に記載の方法。
（１１）ＶＰＮ  ＮＡＴアクティビティがオペレーティング・システムのカーネルで起きるときに、当該ＶＰＮ  ＮＡＴアクティビティを利用者が追跡することができるようにする方法であって、
ＶＰＮ接続の構成に応答して、ジャーナル・レコードを生成するステップと、
ＶＰＮ接続を通じて処理された各データグラムごとに、新しいレコードで前記ジャーナル・レコードを更新するステップと、
利用者が前記ジャーナル・レコードを管理するのを可能にするステップと
を備えた方法。
（１２）ＶＰＮ  ＮＡＴアドレス・プールがゲートウエイに関連付けらるのを可能にし、それにより、サーバの負荷平衡を実現する方法であって、
構成中のシステム用にサーバＮＡＴ  ＩＰアドレス・プールを構成するステップと、
前記サーバＮＡＴ  ＩＰアドレス・プールに、グローバルにルーティング可能な特定のＩＰアドレスを格納するステップと、
ＶＰＮ接続を構成して、前記サーバＮＡＴ  ＩＰアドレス・プールを使用するステップと、
前記サーバＮＡＴ  ＩＰアドレス・プール中のアドレスの数に応じて、並行するＶＰＮ接続の総量を管理するステップと
を備えた方法。
（１３）ＮＡＴアドレスの使用可能性に基づいて、システム当りのＶＰＮ接続の総数を制御する方法であって、
ＩＰアドレスの共通集合でリモートＩＰアドレス・プールの総量を構成するステップであって、前記ＩＰアドレスが、範囲として、単一のアドレスのリストとして、または、複数の範囲と単一のアドレスとの任意の組み合わせとして構成されているステップと、
前記リモートＩＰアドレス・プールの総量にわたって構成された前記ＩＰアドレスの数に応じて、並行してアクティブなＶＰＮ接続が成功裏に開始するのを制限するステップと
を備えた方法。
（１４）選択したＩＣＰＭデータグラムに対してネットワーク・アドレス変換を実行する方法であって、
ＩＣＭＰタイプのパケットから選択したタイプを検出するステップと、
前記選択したタイプに応じて、ＩＣＰＭデータを含む全データグラムに対してネットワーク・アドレス変換を実行するステップと
を備えた方法。
（１５）選択したＦＴＰデータグラムに対してネットワーク・アドレス変換を実行する方法であって、
ＦＴＰ  ＰＯＲＴコマンドまたはＰＡＳＶ  ＦＴＰコマンドの出現を検出するステップと、
前記ＦＴＰ  ＰＯＲＴコマンドまたはＰＡＳＶ  ＦＴＰコマンドに応答して、ＦＴＰデータおよびヘッダーに対してネットワーク・アドレス変換を実行するステップと
を備えた方法。
（１６）ＮＡＴとＩＰＳｅｃ処理とを統合するＩＰＳｅｃに基づいて、ＶＰＮを操作するシステムであって、
ＮＡＴ  ＩＰアドレス・プールを構成する手段と、
ＶＰＮ接続を構成して、前記ＮＡＴ  ＩＰアドレス・プールを使用する手段と、
前記ＮＡＴ  ＩＰアドレス・プールから特定のＩＰアドレスを取得し、その特定のＩＰアドレスを前記ＶＰＮ接続に割り当てる手段と、
前記ＶＰＮ接続を開始する手段と、
前記ＶＰＮ接続用のセキュリティ・アソシエーションおよび接続フィルタをオペレーティング・システムのカーネルにロードする手段と、
前記ＶＰＮ接続に対してＩＰデータグラムを処理する手段と、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用する手段と
備えたシステム。
（１７）ＩＰＳｅｃベースのＶＰＮ接続とＶＰＮポリシーの、定義と構成を直接使って、ＮＡＴの定義と構成を可能にするシステムであって、
ＶＰＮ  ＮＡＴタイプａアウトバウンド送信元ＩＰ  ＮＡＴ、ＶＰＮ  ＮＡＴタイプｃインバウンド送信元ＩＰ  ＮＡＴ、およびＶＰＮ  ＮＡＴタイプｄインバウンド送信先ＩＰ  ＮＡＴから成る３つのタイプのＶＰＮ  ＮＡＴの各々に対する諾否判断によってＶＰＮ  ＮＡＴに対する要求を構成するポリシー・データベースと、
前記ＶＰＮ  ＮＡＴの各々に対する前記諾否判断に応答して選択的に構成されたリモートＩＰアドレス・プールすなわちサーバＩＰアドレス・プールと
を備えたシステム。
（１８）ＶＰＮ  ＮＡＴアドレス・プールがゲートウエイに関連付けらるのを可能にし、それにより、サーバの負荷平衡を実現するシステムであって、
範囲として、単一のアドレスのリストとして、または、複数の範囲と単一のアドレスとの任意の組み合わせとして構成された複数のアドレスを含むように、構成中の所定のシステム用に構成されたサーバＮＡＴ  ＩＰアドレス・プールと、
グローバルにルーティング可能な特定のＩＰアドレスを格納する前記サーバＮＡＴ  ＩＰアドレス・プールと、
前記サーバＮＡＴ  ＩＰアドレス・プールを使用するように構成されたＶＰＮ接続と、
前記サーバＮＡＴ  ＩＰアドレス・プール中のアドレスの数に応じて、並行するＶＰＮ接続の総量を管理する接続コントローラと
を備えたシステム。
（１９）ＮＡＴとＩＰＳｅｃ処理とを統合するＩＰＳｅｃに基づいて、ＶＰＮを操作する方法であって、
ＮＡＴ  ＩＰアドレス・プールを構成するステップと、
ＶＰＮ接続を構成して、前記ＮＡＴ  ＩＰアドレス・プールを使用するステップと、
前記ＮＡＴ  ＩＰアドレス・プールから特定のＩＰアドレスを取得し、その特定のＩＰアドレスを前記ＶＰＮ接続に割り当てるステップと、
前記ＶＰＮ接続を開始するステップと、
前記ＶＰＮ接続用のセキュリティ・アソシエーションおよび接続フィルタをオペレーティング・システムのカーネルにロードするステップと、
前記ＶＰＮ接続に対してＩＰデータグラムを処理するステップと、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用するステップと
を備えた方法を実行する、機械実行可能な命令から成るプログラムを有形的に記録した機械読み取り可能なプログラム記憶装置。
（２０）自身の中にＮＡＴとＩＰＳｅｃ処理とを統合するＩＰＳｅｃに基づいて、ＶＰＮを操作するコンピュータ読み取り可能なプログラム・コード手段を記録したコンピュータ使用可能な媒体を備えた製品であって、
前記製品中のコンピュータ読み取り可能なプログラム・コード手段が、
ＮＡＴ  ＩＰアドレス・プールを構成するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
ＶＰＮ接続を構成して、前記ＮＡＴ  ＩＰアドレス・プールを使用するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＮＡＴ  ＩＰアドレス・プールから特定のＩＰアドレスを取得し、その特定のＩＰアドレスを前記ＶＰＮ接続に割り当てるようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＶＰＮ接続を開始するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＶＰＮ接続用のセキュリティ・アソシエーションおよび接続フィルタをオペレーティング・システムのカーネルにロードするようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＶＰＮ接続に対してＩＰデータグラムを処理するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と、
前記ＩＰデータグラムにＶＰＮ  ＮＡＴを適用するようにコンピュータに働きかけるコンピュータ読み取り可能なプログラム・コード手段と
を備えた製品。
（２１）ネットワーク・アドレス変換（ＮＡＴ）を使って仮想私設網（ＶＰＮ）にＩＰセキュリティ（ＩＰＳｅｃ）を実現する方法であって、
動的にＮＡＴ規則を生成し、それらと人手でまたは動的に生成した（ＩＫＥ）セキュリティ・アソシエーションとを関連付けるステップと、その後、
前記セキュリティ・アソシエーションを使うＩＰＳｅｃを開始するステップと、次いで、
アウトバウンド・データグラムおよびインバウンド・データグラムに対してＩＰＳｅｃを実行するときに、ＶＰＮ  ＮＡＴタイプａアウトバウンド送信元ＩＰＮＡＴ、ＶＰＮ  ＮＡＴタイプｃインバウンド送信元ＩＰ  ＮＡＴ、およびＶＰＮ  ＮＡＴタイプｄインバウンド送信先ＩＰ  ＮＡＴのうちの少なくとも１つを選択的に実行するステップと
を備えた方法。
（２２）前記ＮＡＴ  ＩＰアドレス・プールが、範囲として、単一のアドレスのリストとして、または、複数の範囲と単一のアドレスとの任意の組み合わせとして構成された複数のアドレスを含んでいる、
上記（１）に記載の方法。
【００７８】
【発明の効果】
本発明の効果は、ＮＡＴ（Network address Translation ）とＩＰセキュリティ（IP Security:ＩＰＳｅｃ）との双方を並行して実現する、改良され、かつ大幅に簡易化したシステムと方法とが実現することである。
【００７９】
本発明の他の効果は、ＶＰＮ（virtual Private netwrk）の使用に内在する、ＩＰアドレスの衝突の可能性が増大するという問題を解決するシステムと方法とが実現することである。
【００８０】
本発明の他の効果は、ドメインの再アドレス指定（高価な代替手段）を必要とすることなく、ＶＰＮを利用することができるようにするシステムと方法とが実現することである。
【００８１】
本発明の他の効果は、ドメイン・ホストにおける変更を必要とすることなく、ＩＰＳｅｃゲートウエイで全て実現する、ＶＰＮ  ＮＡＴ用のシステムと方法とが実現することである。
【００８２】
本発明の他の効果は、接続された各ドメインにおけるルーティングの変更を全く、あるいは少ししか必要としない、ＶＰＮ  ＮＡＴ用のシステムと方法とが実現することである。
【００８３】
本発明の他の効果は、単純な構成をした、ＶＰＮ  ＮＡＴ用のシステムと方法とが実現することである。
【００８４】
本発明の他の効果は、ＶＰＮが引き起こすアドレス衝突の問題の解決策が実現することである。
【００８５】
本発明の他の効果は、利用者がＶＰＮ接続を構成するのを支援する簡単化した解決策が実現することである。
【００８６】
本発明の他の効果は、単一のＶＰＮ接続が複数のＶＰＮ  ＮＡＴ規則をサポートすることができるようにすることである。
【００８７】
本発明の他の効果は、暗黙的にすなわち動的に割り当てられたＶＰＮ  ＮＡＴ規則内の衝突を、システム全体の観点から避けることのできるシステムと方法とが実現することである。
【００８８】
本発明の他の効果は、各ＮＡＴ規則に対する多数の別々のＶＰＮ接続を管理する必要を無くすことにより、動的ＮＡＴ規則に要するシステムのオーバーヘッドを低減することのできるシステムと方法とが実現することである。
【００８９】
本発明の他の効果は、ネットワークの監視とトラフィックの分析とを簡単化することのできるＶＰＮ  ＮＡＴシステムと方法とが実現することである。
【図面の簡単な説明】
【図１】  本発明の好適な実施形態のＶＰＮ  ＮＡＴ方法のフローチャートを示す図である。
【図２】  典型的なＩＰＳｅｃシナリオと関連するＶＰＮ  ＮＡＴプールを示す図である。
【図３】  説明のために静的ＮＡＴ（最も簡単な既存のＮＡＴ）を示す図である。
【図４】  説明のためにマスカレードＮＡＴ（既存のＮＡＴの典型例）を示す図である。
【図５】  イニシエータ・モードの会話用にＩＤｃｉを変換したタイプａ（「送信元−アウト」とも呼ばれる）のＶＰＮ  ＮＡＴを示す図である。
【図６】  レスポンダ・モードの会話用にＩＤｃｉを変換したタイプｃ（「送信元−イン」とも呼ばれる）のＶＰＮ  ＮＡＴを示す図である。
【図７】  レスポンダ・モードの会話用にＩＤｃｒを変換したタイプｄ（「送信先−イン」とも呼ばれる）のＶＰＮ  ＮＡＴを示す図である。
【図８】  本発明のシステムと方法を実現する様々なプログラム要素とデータ要素との間の関係を説明する高レベルのフロー図を示す図である。
【符号の説明】
３４…線、３６…線、４０…インターネット、４２…ゲートウエイ（ＧＷ）、４４…ゲートウエイ（ＧＷ）、４６…ゲートウエイ（ＧＷ）、４８…ＩＰＳｅｃポリシー・データベース、５０…ＮＡＴプール、５２…ＮＡＴプール、５４…ＮＡＴプール、５６…内部ネットワーク、５８…内部ネットワーク、６０…内部ネットワーク、７０…送信元ＩＰ、７２…ＬＨＳ、７４…送信先ＩＰ、７６…ＲＨＳ、７８…送信先ＩＰ、８０…送信元ＩＰ、９０…送信元ＩＰ、９２…ＩＰアドレス・セット、９４…フィールド、９６…フィールド、９８…送信元ポート、１００…フィールド、１０２…フィールド、１０４…ＲＨＳ、１０６…送信先ＩＰ、１０８…送信先ポート、１１０…送信元ＩＰ、１１２…送信元ポート、１１４…送信先ＩＰ、１１６…送信先ポート、１１８…ポート・プール、１２０…リモートＩＤ、１２２…ローカル・クライアントＩＤ、１２４…ＲＨＳ、１２６…ＬＨＳ、１２８…暗黙的なＭＡＰ規則、１３０…暗黙的なＭＡＰ規則、１３２…送信元ＩＰ、１３４…送信先ＩＰ、１３６…ＬＨＳ、１３８…ＲＨＳ、１４０…送信先ＩＰ、１４２…送信元ＩＰ、１５０…リモートＩＤ、１５２…ローカル・クライアントＩＤ、１５４…ＲＨＳ、１５６…ＬＨＳ、１５８…暗黙的なＭＡＰ規則、１６０…暗黙的なＭＡＰ規則、１６２…送信元ＩＰ、１６４…送信先ＩＰ、１６６…ＬＨＳ、１６８…ＲＨＳ、１７０…送信先ＩＰ、１７２…送信元ＩＰ、１８０…リモートＩＤ、１８２…ローカル・クライアントＩＤ、１８４…ＲＨＳ、１８６…ＬＨＳ、１８８…暗黙的なＭＡＰ規則、１９０…暗黙的なＭＡＰ規則、１９２…送信元ＩＰ、１９４…送信先ＩＰ、１９６…ＬＨＳ、１９８…ＲＨＳ、２００…送信先ＩＰ、２０２…送信元ＩＰ、２１０…ローカル・バインディング・テーブル、２１２…リモート・バインディング・テーブル、２１４…ローカル・バインディング・テーブル、３００…接続マネージャ・サーバ、３０２…ＳＡ対更新、３０４…ＶＰＮポリシー・データベース、３０６…接続定義、３０８…ＮＡＴリモート・フラグｓｏ、３１０…ＮＡＴリモート・フラグｓｉ、３１２…ＮＡＴリモート・フラグｄｉ、３１４…ＮＡＴフラグ、３１６…ＮＡＴアドレス・リスト、３２０…接続プロセス・メモリ、３２２…ＳＡ対テーブル。
【図１】
0003636095.tif 000004
【図２】
0003636095.tif 000005
【図３】
0003636095.tif 000006
【図４】
0003636095.tif 000007
【図５】
0003636095.tif 000008
【図６】
0003636095.tif 000009
【図７】
0003636095.tif 000010
【図８】
0003636095.tif 000011