(57)【要約】【課題】より面倒の少ない、ネットワーク内のアドレス衝突を解決するための方法を提供する。【解決手段】第１ネットワーク１１８０内の第１プロセッサ１５４０と第２ネットワーク１１７０内の第２プロセッサ１５６０との間のアドレス指定衝突を解決する方法及びシステムを提供する。第１プロセッサ１５４０の第１アドレスと第２プロセッサ１５６０との間のアドレス指定衝突が検出されると、第１プロセッサ１５４０から受信される１つ以上のパケットからトンネル情報が取り出される。このトンネル情報に基づいて、このパケットが、検出されたアドレス指定衝突と関連付けられることが決定され、また変換済アドレスが決定される。その後、この変換済アドレスに基づいてパケットが転送される。【選択図】図１
2010161823.tif 000002
【特許請求の範囲】
【請求項１】
第１ネットワーク内の第１プロセッサと、第２ネットワーク内の第２プロセッサと、の間のアドレス指定衝突を解決する方法であって、
前記第１プロセッサの第１アドレスと、前記第２プロセッサの第２アドレスと、の間のアドレス指定衝突を検出するステップと、
トンネルを形成する１つ以上のパケットを、前記第１プロセッサから受信するステップと、
前記１つ以上のパケットから、前記トンネルについての情報を取り出すステップと、
前記の取り出したトンネル情報に基づいて、前記１つ以上のパケットが前記の検出されたアドレス指定衝突と関連付けられる、と決定するステップと、
前記取り出したトンネル情報に基づいて、変換済アドレスを決定するステップと、
前記変換済アドレスに基づいて、前記１つ以上のパケットを転送するステップと、
を有する方法。
【請求項２】
前記の検出するステップは、さらに前記第１アドレスが前記第２アドレスと同一であることを検出するステップ、を有する請求項１に記載の方法。
【請求項３】
前記の検出するステップは、さらに、前記第１プロセッサ及び前記トンネルについての情報に基づいて、前記第１アドレスが前記第２アドレスと同一であることを検出するステップ、を有する請求項１に記載の方法。
【請求項４】
前記の取り出すステップは、さらに前記トンネルのアドレスを指示する情報を取り出すステップ、を有す請求項１に記載の方法。
【請求項５】
前記の取り出すステップは、さらに前記トンネルのインターネット・プロトコル（ＩＰ）アドレスを指示する情報を取り出すステップ、を有する請求項１に記載の方法。
【請求項６】
前記の前記１つ以上のパケットが前記の検出されたアドレス指定衝突と関連付けられる、と決定するステップは、さらに、
前記取り出したトンネル情報に基づいて、前記１つ以上のパケット内の前記第１アドレスが、アドレス指定衝突を生じる、と決定するステップ、
を有する請求項１に記載の方法。
【請求項７】
前記の変換済アドレスを決定するステップは、さらに、前記第１アドレスに基づいて前記変換済アドレスを決定するステップ、を有する請求項１に記載の方法。
【請求項８】
前記の変換済アドレスを決定するステップは、さらに、前記１つ以上のパケットが前記第１及び第２ネットワーク以外のネットワーク上に、アドレス指定衝突を起こさないで転送されるような、前記変換済アドレスに、前記第１アドレスをマッピングするステップ、を有する請求項１に記載の方法。
【請求項９】
前記の変換済アドレスを決定するステップは、さらに、前記１つ以上のパケットが前記第２ネットワーク上に、アドレス指定衝突を起こさないで転送されるような、前記変換済アドレスに、前記第１アドレスをマッピングするステップ、を有する請求項１に記載の方法。
【請求項１０】
前記の変換済アドレスを決定するステップは、さらに、前記１つ以上のパケットが前記第１ネットワーク上に、アドレス指定衝突を起こさないで転送されるような、前記変換済アドレスに、前記第１アドレスをマッピングするステップ、を有する請求項１に記載の方法。
【請求項１１】
さらに、ゲートウェイ上で前記第１アドレスを前記変換済アドレスにマッピングするステップ、を有する請求項１０に記載の方法。
【請求項１２】
前記の検出するステップは、さらに、前記第１及び第２ネットワーク以外のネットワークに接続するゲートウェイにおいて、アドレス指定衝突を検出するステップ、を有する請求項１に記載の方法。
【請求項１３】
前記の検出するステップは、さらに、前記第２ネットワークに接続するゲートウェイにおいて、アドレス指定衝突を検出するステップ、を有する請求項１に記載の方法。
【請求項１４】
前記の検出するステップは、さらに、前記第１ネットワークに接続するゲートウェイにおいて、アドレス指定衝突を検出するステップ、を有する請求項１に記載の方法。
【請求項１５】
第１ネットワーク内の第１プロセッサの第１アドレスと第２ネットワーク内の第２プロセッサの第２アドレスとの間のアドレス指定衝突を検出し、トンネルを形成する１つ以上のパケットを前記第１プロセッサから受信し、前記１つ以上のパケットから前記トンネルについての情報を取り出し、前記の取り出したトンネル情報に基づき前記１つ以上のパケットが前記の検出されたアドレス指定衝突と関連付けられると決定し、前記取り出したトンネル情報に基づき変換済アドレスを決定し、前記変換済アドレスに基づき前記１つ以上のパケットを転送するコードを含むメモリと、
前記コードを実行する、少なくとも１つのプロセッサと、
を備える装置。
【請求項１６】
前記コードは、前記第１アドレスが前記第２アドレスと同一であることを検出する請求項１５に記載の装置。
【請求項１７】
前記コードは、前記第１プロセッサ及び前記トンネルについての情報に基づいて、前記第１アドレスが前記第２アドレスと同一であることを検出する請求項１５に記載の装置。
【請求項１８】
前記コードは、前記トンネルのアドレスを指示する情報を取り出す請求項１５に記載の装置。
【請求項１９】
前記コードは、前記トンネルのインターネット・プロトコル（ＩＰ）アドレスを指示する情報を取り出す請求項１５に記載の装置。
【請求項２０】
前記コードは、前記取り出したトンネル情報に基づいて、前記１つ以上のパケット内の前記第１アドレスが、アドレス指定衝突を生じる、と決定する請求項１５に記載の装置。
【請求項２１】
前記コードは、前記第１アドレスに基づいて前記変換済アドレスを決定する請求項１５に記載の装置。
【請求項２２】
前記コードは、前記１つ以上のパケットが前記第１及び第２ネットワーク以外のネットワーク上に、アドレス指定衝突を起こさないで転送されるような、前記変換済アドレスに、前記第１アドレスをマッピングする請求項１５に記載の装置。
【請求項２３】
前記コードは、前記１つ以上のパケットが前記第２ネットワーク上に、アドレス指定衝突を起こさないで転送されるような、前記変換済アドレスに、前記第１アドレスをマッピングする請求項１５に記載の装置。
【請求項２４】
前記コードは、前記１つ以上のパケットが前記第１ネットワーク上に、アドレス指定衝突を起こさないで転送されるような、前記変換済アドレスに、前記第１アドレスをマッピングする請求項１５に記載の装置。
【請求項２５】
さらに、ゲートウェイ上で前記第１アドレスを前記変換済アドレスにマッピングするコード、を備える請求項１５に記載の装置。
【請求項２６】
第１ネットワーク上の第１プロセッサの第１アドレスと、第２ネットワーク上の第２プロセッサの第２アドレスと、の間のアドレス指定衝突を検出する手段と、
トンネルを形成する１つ以上のパケットを、前記第１プロセッサから受信する手段と、
前記１つ以上のパケットから、前記トンネルについての情報を取り出す手段と、
前記の取り出したトンネル情報に基づいて、前記１つ以上のパケットが前記の検出されたアドレス指定衝突と関連付けられる、と決定する手段と、
前記取り出したトンネル情報に基づいて、変換済アドレスを決定する手段と、
前記変換済アドレスに基づいて、前記１つ以上のパケットを転送する手段と、
を備えるシステム。
【請求項２７】
前記の検出する手段は、前記第１アドレスが前記第２アドレスと同一であることを検出する請求項２６に記載のシステム。
【請求項２８】
前記の検出する手段は、前記第１プロセッサ及び前記トンネルについての情報に基づいて、前記第１アドレスが前記第２アドレスと同一であることを検出する請求項２６に記載のシステム。
【請求項２９】
前記の取り出す手段は、前記１つ以上のパケットから、前記トンネルのアドレスを指示する情報を取り出す請求項２６に記載のシステム。
【請求項３０】
前記の取り出す手段は、前記１つ以上のパケットから、前記トンネルのインターネット・プロトコル（ＩＰ）アドレスを指示する情報を取り出す請求項２６に記載のシステム。
【請求項３１】
第１ネットワーク上の、第１アドレスを有する第１プロセッサと、
第２ネットワーク上の、第２アドレスを有する第２プロセッサと、
前記第１及び第２プロセッサ以外の他のプロセッサであって、前記第１アドレスと前記第２アドレスとの間の衝突を検出して、この他のプロセッサと前記第１ネットワークの間に確立されたトンネルについての情報に基づいて前記衝突を解決することにより、前記第１プロセッサと前記第２ネットワークとの間の通信を可能にする、プロセッサと、
を備えるネットワーク。
【請求項３２】
前記他のプロセッサは、前記のトンネルについての情報に基づいて変換済アドレスを決定し、この変換済アドレスに基づいて１つ以上のパケットを前記第２ネットワークに転送する、請求項３１に記載のネットワーク。
【請求項３３】
前記他のプロセッサは、ゲートウェイとして機能する請求項３１に記載のネットワーク。
【請求項３４】
前記他のプロセッサは、この他のプロセッサと前記第２ネットワークとの間に確立される他のもう一つのトンネルについての情報に基づいて、前記衝突を解決する、請求項３１に記載のネットワーク。
【請求項３５】
前記他のプロセッサは、前記衝突を解決して、前記第２プロセッサと前記第１ネットワークとの間の通信を可能にする請求項３１に記載のネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドレス指定における衝突（コンフリクト）を解決するためのシステム及び方法に関する。より詳しくは、トンネル情報に基づいてアドレスを変換するシステム及び方法に関する。
【背景技術】
【０００２】
広域ネットワークによって、ユーザは、地理上の何処にいるかに関わらず、会社資料やコンピュータプログラムにアクセスできるようになった。最近まで、広域ネットワークの構築は、十分な技術的能力と財源とを有する大企業の範疇だけに属したままであった。団体組織は、一定の構築手法を使用して、分散オフィス、共同経営者、又は従業員らと接続する広域ネットワークを構築していた。これらの「従来の」接続手法には、例えば、ポイント・トゥ・ポイント賃貸回線、パケット交換ネットワーク、及び専用の仮想プライベート・ネットワーク（ＶＰＮｓ）が含まれる。
【０００３】
ポイント・トゥ・ポイント賃貸回線は、相互に通信する必要があるサイト間の個々の連結を設けることを必要とする、物理的なネットワークである。ポイント・トゥ・ポイント賃貸回線は、設置に３０〜９０日を要することもあり、かつ費用も高い。
【０００４】
フレーム・リレーを用いたパケット交換網は、コストを低減し、かつ自由度を増大する、ポイント・トゥ・ポイント賃貸回線の従来の代替手段である。フレーム・リレー・ネットワークの初期設置は、上記ポイント・トゥ・ポイント解決法と同様に長い時間がかかる。例えば、アクセス回線を追加する際、設置に通常２〜３週間を要する。また保守費用がかなり高い。
【０００５】
あるネットワーク・サービス・プロバイダにより提案されている、さらに最近の導入サービスは、専用の仮想プライベート・ネットワークである。この経路選択サービス（routed service）は、専用配置箇所間の接続を設ける複雑さとコストを解消する。しかし、他の顧客とネットワークを共用するので、セキュリティを管理するためのネットワーク・サービス・プロバイダを要することになる。仮想プライベート・ネットワークが「仮想」であるのは、専用線による完全なプライベート・ネットワークに対して、その基幹としてインターネットのような共有ネットワーク又は基本ネットワークを使用しているからである。また、「プライベート」でもあるのは、ユーザ間で交換される情報が、暗号化又は符号化されて秘密保持がなされるからである。
【０００６】
インターネットの出現と遍在により、共有される公共の又は個人のインフラ又は機能を経由するプライベート通信ネットワークを基本ネットワークとして構築する方法として、仮想プライベート・ネットワークが浮上してきた。仮想プライベート・ネットワークは、ユーザ及び所在地の認証を有効にし、ユーザ又は所在地間の安全かつプライベートな「トンネル」を供給し、さらにユーザ通信を暗号化することによって、インターネットを経由する確実なプライベート接続を提供する。さらに、仮想プライベート・ネットワークは、種々のアドレス指定スキームを使用する種々のネットワーク内のコンピュータが、例えばインターネットのような、共有又は基本ネットワークを経由して非公開に通信することを容易にする。
【０００７】
仮想プライベート・ネットワーク以前は、１つのネットワーク（又はサブネットワーク）上のコンピュータに対するアドレス割り当てを、単一のエンティティ（又はプロセッサ（処理装置））が行なうことによってアドレスの適合性を確保していた。すなわち、１つのネットワーク内の異なる２つのコンピュータが同じアドレスを使用することはなかった。しかし、仮想プライベート・ネットワークでは、異なるネットワーク内のコンピュータが異なるエンティティの管理下に置かれることが起こりうる。これら異なるエンティティは、コンピュータに対して、相互に衝突（コンフリクト）しあうアドレスを割り当てることがある。もしそうなれば、中央エンティティ（又はコントローラ）が、衝突を起こしたアドレスを有するコンピュータのための相互に適した一意のアドレスをネゴシエートして、アドレス衝突を解決しなければならない。そして、相互に適したアドレスが決定した後、各コンピュータのアドレスを、（例えばネットワーク・アドレス変換（ＮＡＴ）プロトコルを使用して）上記ネゴシエートされたアドレスに変換する。
【０００８】
例えば、異なるネットワーク（又はサブネットワーク）内の３つのコンピュータが同一のアドレスを共有するとき、プロセッサは、衝突を引き起こさないアドレスを、３つのコンピュータ及び／又はそれらのネットワークとネゴシエートする。ネゴシエートされたアドレスを決定すると、あるコンピュータにより送信される各パケット・アドレスは、（例えばＮＡＴを使って）ネゴシエートされたアドレスに変換され、その後ネットワーク上に送られる。このようなネゴシエーションと変換を実行せずに、コンピュータが通信をすることはできない。
【０００９】
ある中央機関（central authority）によりネゴシエートされたアドレス空間を使用することは、アドレス衝突を解決する解決方法としての役目を果たす。しかしながら、コンピュータの台数が多いと、上述の相互に適したアドレスによる解決手法は非効率となる。つまり、３台のコンピュータと比較した場合、１，０００台のコンピュータに対するアドレスのネゴシエートは非常に難しいものとなる。したがって、より面倒の少ない、ネットワーク内のアドレス衝突を解決するための方法を見つける必要がある。
【発明の概要】
【００１０】
先行技術の上述の及び他の制限を解決するために、第１ネットワーク内の第１プロセッサと第２ネットワーク内の第２プロセッサとの間の、アドレス指定の衝突の解決を容易にするシステム及び方法が提供される。第１プロセッサの第１アドレスと、第２プロセッサの第２アドレスと、の間のアドレス指定衝突を検出すると、第１プロセッサから受信される１つ以上のパケットからトンネル情報が取り出される。パケットは、取り出されたトンネル情報に基づいて、検出されたアドレス指定衝突に関連付けられ、また変換済アドレスが決定される。そして、パケットは変換済アドレスに基づいて転送される。
【００１１】
前述の一般的な説明及び後述の詳細な説明は、単なる例示及び説明であり、本発明を記述のように制限するものではないと理解されるべきである。ここに記載される特徴及び／又は変更に加えて、さらなる特徴及び／又は変更が与えられることとしてよい。例えば、本発明は、開示される特徴、並びに／又は以下の詳細な説明に開示される様々なさらなる特徴のコンビネーション及びサブコンビネーションの、様々なコンビネーション及びサブコンビネーションを対象としてもよい。
【００１２】
本明細書に組み込まれることにより本明細書の一部を成す添付図面は、本発明の様々な実施例を図説し、明細書本文とともに本発明の原理を説明する役目を果たす。
【図面の簡単な説明】
【００１３】
【図１】本発明と整合性を有する方法及びシステムによる第１の例示的なネットワークの概略ブロック図である。
【図２】本発明と整合性を有する方法及びシステムが実現される例示的なプロセッサの概略ブロック図である。
【図３】本発明と整合性を有する方法及びシステムによって、アドレス衝突を解決するための、例示的なフローチャートである。
【図４】本発明と整合性を有する方法及びシステムによる第２の例示的なネットワークの概略ブロック図である。
【図５】本発明と整合性を有する方法及びシステムによる、アドレス決定のための例示的なリスト（又はテーブル）を示す図である。
【図６】本発明と整合性を有する方法及びシステムによる第３の例示的なネットワークの概略ブロック図である。
【発明を実施するための形態】
【００１４】
本発明の例示的な実施例を詳細に参照する。これらの例示は添付図面に示されたものである。同じ又は同様の部分を参照する際には、これらの図面を通して可能な限り同じ参照番号を使用する。
【００１５】
本発明のある実施例に従って、１つ以上のトンネルを含む仮想プライベート・ネットワーク内のプロセッサ間において、アドレス指定の衝突が解決される。アドレス指定の衝突は、例えば、ネットワーク（又はサブネットワーク）が、重複するアドレス範囲を有したり、及び／又はパケットの発信元又は宛先の解決（resolution）に影響する他の衝突を有したりするために、第１ネットワーク内の第１プロセッサと、第２ネットワーク内の第２プロセッサと、が衝突するアドレスを使用したとき、例えば同じアドレスを使用したときに存在する。アドレス衝突が存在するとき、パケット・アドレスは一意に解決しないことが起こりうる。パケットの宛先及び発信元が容易に決定できなくなり、したがって、パケットを適切な宛先に経路決定することも、返答を適切な発信元に送信することもできなくなる。
【００１６】
この実施例の場合には、第１ネットワークの第１プロセッサと第２ネットワークの第２プロセッサとの間のアドレス指定の衝突を解決するために、ゲートウェイとして機能するプロセッサが、インターネットのような通信チャネルを通過するトンネルを形成するパケットを受信する。
このゲートウェイは、トンネルに関する情報をパケットから取り出して、この取り出された情報に基づいて変換済アドレスを決定し、この変換済アドレスを使用してパケットを転送する。この結果、ゲートウェイは、第１及び第２プロセッサ間のアドレス衝突を解消する。
【００１７】
図１は、本発明と整合性を有するシステム及び方法による、ネットワーク１０００の概略ブロック図を示す。ネットワーク１０００は、１つ以上のネットワーク（又はサブネットワーク）１１６０〜１１８０と、１つ以上のプロセッサ１５４０〜１５７０と、ゲートウェイとして働く１つ以上のプロセッサ１５００〜１５２０と、１つ以上のトンネル１１８５、１１９０と、を含むこととしてよい。
【００１８】
プロセッサ１５４０〜１５７０は、図２に示すコンピュータ２０００をおのおの含むこととしてよい。コンピュータ２０００は、入力モジュール２０５０、中央処理ユニット（ＣＰＵ）２２００と、記憶モジュール２５００と、出力モジュール２３００と、を含むこととしてよい。出力モジュール２３００は、ディスプレイ２３５０と、プリンター２３６０と、ネットワーク・インタフェース２３８０と、を含むこととしてよい。図２にはコンピュータ２０００を示したが、プロセッサ１５４０〜１５７０は、その代わりに、例えばプリンター、携帯情報端末（personal digital assistant）、ワイヤレス装置、移動電話、ルータ、サーバ、及びファイヤウォールのような、他の装置のいずれをも各々含むこととしてよい。
【００１９】
入力モジュール２０５０は、ユーザの入力を受ける、及び／又はＣＰＵ２２００に入力を与える種々な機構により与えられることとしてよい。このような装置（図示せず）の一部には、例えば、ネットワーク・インタフェース・モジュール、モデム、キーボード、マウス、及び入力記憶装置が含まれることとしてよい。
【００２０】
図２には、１つのＣＰＵ２２００のみが図示されているが、コンピュータ２０００は、その代わりに複数のＣＰＵを含むこととしてよい。またＣＰＵ２２００は、必要に応じて、例えばコプロセッサー、メモリ、レジスタ、及び他のプロセッシング装置及びシステム、のうち１以上をも含むこととしてよい。
【００２１】
記憶モジュール２５００は、例えば、ハードドライブ、光学式ドライブ、汎用記憶装置、リムーバブル記憶装置、及び／又は他の記憶可能装置を含む、種々の構成要素又はサブシステムによって具体化されることとしてよい。さらに、図２では記憶モジュール２５００がＣＰＵ２２００から分離又は独立して示されるが、記憶モジュールとＣＰＵ２２００とは、１つのプラットフォーム又はシステムの一部として実装されることとしてもよい。
【００２２】
再び図１を参照すると、ネットワーク１１６０〜１１８０は、ネットワーク１０００内に示される様々なエンティティ間の通信を円滑に行なう。ネットワーク１１６０〜１１８０は、例えば、電話技術に基づくネットワーク、ローカルエリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、専用イントラネット、インターネット及び／又はワイヤレス・ネットワークを含むこととしてよい。さらに有線及び／又は無線の構成要素及びシステムの適切な組合せは、どれもネットワーク１１６０〜１１８０に組み込んでもよい。また、ポイント・トゥ・ポイント通信又はネットワーク通信の適切な組合せは、どれもネットワーク１１６０〜１１８０に組み込んでもよく、これにより図１に示すエンティティ間の通信を円滑に行なうこととしてよい。さらに、このようなネットワークの１つ以上を、例えばインターネットのような共有ネットワークとしてよく、又はイントラネットやポイント・トゥ・ポイント接続のような専用ネットワークとしてもよい。
【００２３】
各ゲートウェイ１５００〜１５２０は、プロセッサ（又はコンピュータ）を含み、このプロセッサ等は、例えばもう一つの他のゲートウェイといった、もう一つの他のプロセッサとのトンネル（例えばトンネル１１８５、１１９０）を確立することができる。さらに、各ゲートウェイは、仮想プライベート・ネットワークの一部であってよく、またネットワーク・オペレーション・センター（又はコントローラ）の管理及び／又は制御下にあるとしてよい。典型的なゲートウェイ及び典型的なネットワーク・オペレーション・センター（又はコントローラ）の説明は、係属中の米国出願第０９／８３２，３４１（発明の名称「仮想ネットワークの為の仮想アドレスの管理方法及びそのシステム」）により与えられ、その内容は参照によりそのまま本明細書に組み込まれる。
【００２４】
図１には、ゲートウェイ１５００〜１５２０が、プロセッサ１５４０〜１５７０から分離されて図示されているが、当業者には、プロセッサ１５４０〜１５７０の各々が、ゲートウェイとして機能し、またその逆も可能であることが理解できるであろう。
【００２５】
ゲートウェイ（又はプロセッサ）により確立されたトンネル１１８５、１１９０のそれぞれは、その中を通る通信の秘密を保持する暗号化情報フローを形成する。トンネル（暗号化トンネルとも呼ばれる）は、あるプロトコルを別のプロトコル内へカプセル化（encapsulating）することにより、例えばインターネットのような基本ネットワークの中を通して確立してよい。例えば、インターネットプロトコル（ＩＰ）パケットが暗号化プロトコルをカプセル化するときにトンネルを暗号化することとしてよい。暗号化プロトコルの例には、ＲＳＡ、ディジタル情報暗号化標準（ＤＥＳ:Digital Encryption Standard）、及びトリプルＤＥＳ（３ＤＥＳ）を含むこととしてよい。ある実施例では、インターネットプロトコル（ＩＰ）パケットを使用してトンネルを確立することにより、各パケットのペイロードを暗号化しつつ、各パケットのアドレスは暗号化されないまま（すなわち平文（clear text）のまま）としてよい。その結果、暗号化されたペイロードは、平文のＩＰアドレスによってカプセル化され、インターネットのような基本ネットワークを通過する仮想トンネルが形成される。
【００２６】
２つのゲートウェイ間に確立された仮想トンネルは、各ゲートウェイにおけるトンネルを一意に識別する仮想アドレスを持つこととしてよい。各ゲートウェイはまた、パケットがゲートウェイへ及びゲートウェイから伝送されることを可能にする現実世界の（又はパブリックな）ＩＰアドレスをも有することとしてよい。
【００２７】
例えば、プロセッサは、パケットを暗号化し、さらにまた、トンネルの起点及び終点を識別して暗号化されたパケットがトンネルを通過するように経路選択（ルーティング）することを可能とするための仮想アドレスを付加することとしてよい。さらに、プロセッサは、トンネルに接続する起点ゲートウェイ及び終点ゲートウェイのためのパブリックＩＰアドレスを付加する（これは一般に、ラップ又はカプセル化と呼ばれる）こととしてよい。このようにパブリックＩＰアドレスは、起点ゲートウェイから終点ゲートウェイへのパケットの経路選択を円滑にする。
【００２８】
図１には、２つのトンネル１１８５及び１１９０が示されるが、複数のゲートウェイ、プロセッサ、及びトンネルを設けることとしてもよい。さらに、１つ以上のゲートウェイ間において、インターネットを通過するトンネルが確立される場合、これらのトンネルは仮想トンネルと呼ばれることがある。さらに、トンネルが暗号化される場合、その結果生じるネットワークは仮想プライベート・ネットワークと呼ばれることがある。
【００２９】
図３は、本発明と整合性を有する方法及びシステムによって、アドレス衝突を解決するステップの例示的なフローチャートを示す。これらのステップの各々は、図３に示す概略的な説明にしたがって、さらに詳しく明確になるであろう。
【００３０】
図１〜３を参照する。第１プロセッサ（例えばプロセッサ１５４０）と第２プロセッサ（例えばプロセッサ１５６０）とにアドレス衝突が生じると、このアドレス衝突がゲートウェイによって検出される（ステップ３１００）。例えば、第１プロセッサ１５４０はネットワーク１１８０内のアドレスとして「Ｘ」を使用しており、第２プロセッサ１５６０もまたネットワーク１１７０内のアドレスとして”Ｘ”を使用しているものとする。
【００３１】
図３は、第１ネットワーク内の第１プロセッサと、第２ネットワーク内の第２プロセッサと、の間のアドレス衝突を解決するための例示的な複数ステップ３０００を図示している。図３は、アドレス衝突を検出するステップ（ステップ３１００）と、第１プロセッサからトンネルへパケットを送信するステップ（ステップ３２００）と、トンネルを形成するパケットを受信するステップと（ステップ３３００）と、トンネルについての情報をパケットから取り出すステップ（ステップ３４００）と、取り出されたトンネル情報に基づき検出されたアドレス指定衝突に該パケットが関連付けられていると決定するステップ（ステップ３５００）と、取り出されたトンネル情報に基づき変換済アドレスを決定するステップ（ステップ３６００）と、変換済アドレスに基づいてパケットを転送するステップ（ステップ３７００）と、を図示している。
【００３２】
上記図３のステップを、図４と関連して以下説明する。図４は、さらに発信元アドレス”Ｘ”４３００を有するパケット４１００を生成するプロセッサ１５４０と、発信元アドレス”Ｘ”４３１０を有するパケット４１１０を生成するプロセッサ１５６０と、アドレス”Ｙ”４３２０を有するプロセッサ１５７０と、を含む図１の例示的ネットワーク１０００を図示する。ネットワーク１０００では、アドレス”Ｘ”４３００及び４３１０がプロセッサ１５４０及び１５６０の双方に共有されているために、アドレス衝突が生じている。このアドレス衝突は、ゲートウェイ１５００〜１５２０のうちの１つに検出され、下記実施例において説明されるように解決されることとしてよい（ステップ３１００）。
【００３３】
１つの実施例において、ゲートウェイ１５００〜１５２０と、トンネル１１８５及び１１９０は、仮想プライベート・ネットワークを形成してよい。この仮想プライベート・ネットワークでは、各トンネルはネットワーク・オペレーション・センター（図示せず）によって有効化される。ネットワーク・オペレーション・センターもまた、トンネル１１８５及び１１９０を確立し有効化する際に、アドレス衝突を検出することとしてよい。そしてネットワーク・オペレーション・センターが、このアドレス衝突をゲートウェイに通知することとしてよい。
【００３４】
第１プロセッサ、例えばプロセッサ１５４０は、ネットワーク１１８０及びゲートウェイ１５００を経由して、アドレスＹのプロセッサ１５７０へ、パケット４１００を送信したとする。このとき、ゲートウェイ１５００は、トンネル１１８５のアドレスによってそのパケットをカプセル化するトンネル情報を加え、パケット４１００を暗号化し、起点ゲートウェイ及び終点ゲートウェイの実ＩＰアドレス（又はパブリックＩＰアドレス）を加えることにより、パケット４１００を加工する。トンネル１１８５のアドレスは仮想ＩＰ（ＶＩＰ）アドレスに対応するものであり、ゲートウェイ１５００におけるトンネルのアドレスを識別する。その後、トンネル１５００は加工済みパケットを転送する。
【００３５】
その後、ネットワーク１１６０に接続されるゲートウェイ１５２０は、トンネル１１８５を経由してパケットを受信し（ステップ３３００）、パブリックＩＰアドレスを取り出し、トンネル１１８５に関連付けられたＶＩＰアドレスを取り出す（これは一般にアンラップ又は逆カプセル化とも呼ばれる）（ステップ３４００）。ゲートウェイ１５２０はまた、必要に応じてパケットを解読してもよい。この時点では、パケットはそのオリジナルのペイロードとアドレスを含んでいる（例えばパケット４１００を参照のこと）。しかしながら、発信元アドレス”Ｘ”４３００がネットワーク１１６０内で一意でないため、プロセッサ１５７０は、パケット４１００が、第１プロセッサ１５４０から発信されたのか又は第２プロセッサ１５６０から発信されたのかを解決することができない。
【００３６】
その後、ゲートウェイ１５２０が、取り出されたトンネル情報に基づいて、このパケットが第１プロセッサ１５４０と第２プロセッサ１５６０との間のアドレス衝突に関連付けられると、決定することとしてよい（ステップ３５００）。例えば、ゲートウェイ１５２０は、トンネル１１８５から受信したいずれのパケットもアドレス衝突の可能性について判断する必要がある、と決定してよい。
【００３７】
ゲートウェイ１５２０は、取り出されたトンネル情報に基づき変換済アドレスを決定することにより、アドレス衝突を解決することとしてよい（ステップ３６００）。例えば、ゲートウェイ１５２０は、このパケットのための変換済アドレスを、トンネルから取り出した情報、例えばトンネル１１８５のＶＩＰアドレス、及び／又はパケット４１００に関連付けられた発信元アドレス（例えばアドレス”Ｘ”４３００）、に基づいて決定することとしてよい。この例では、ゲートウェイ１５２０が、変換済アドレスをパケット４１００に加える。例示のパケット４１２０がその変換済アドレス（Ｘ１）を有する様子を図４に示す。ここでパケット４１２０のペイロードには、パケット４１００が含まれている。この実施例では、変換済アドレス（Ｘ１）をパケット４１２０に付加することとしたが、これに代えて、変換済アドレスでパケット４１００内のアドレス「Ｘ」を置き換えることとしてよい。
【００３８】
他の実施例では、ゲートウェイ１５２０は、変換済アドレスの決定を円滑に行なうためのリスト（又はテーブル）を保持することとしてよい。図５は、このようなリストの１つの例を示す。図示するとおり、ゲートウェイ１５２０は、プロセッサ名と、そのプロセッサのローカルネットワーク上のアドレスと、トンネル情報と、ゲートウェイ１５２０に接続するネットワーク１１６０内における変換済アドレスと、を含むリストを保存する。例えば、ゲートウェイ１５２０は、プロセッサ１５４０について、その名称を「Ａ」として、ローカルアドレスを「Ｘ」として、トンネルアドレス（例えばＶＩＰアドレス）を「１０」として、変換済アドレスを「Ｘ１」として保存する。ゲートウェイ１５２０は、ＶＩＰが「１０」であり、かつローカルアドレスが「Ｘ」であるとき、変換済アドレスをＸ１として決定することとしてよい。
【００３９】
ゲートウェイ１５２０はまた、ネットワーク１１６０内の宛先アドレス（例えばアドレス「Ｙ」）にパケット１４２０を転送することとしてよい（ステップ３７００）。このようにして、パケット４１２０はプロセッサ１５７０に受信される。その結果プロセッサ１５７０は、アドレス衝突なしに第１プロセッサ１５４０からのパケットを受信することができ、プロセッサ１５７０は第１プロセッサと通信することが可能となる。さらに、ゲートウェイ１５２０は、許容可能なアドレスをゲートウェイ１５００とネゴシエートすることなく、局所的にアドレス衝突を解決することができる。
【００４０】
第１プロセッサ１５４０がパケットを送信する一方で、第２プロセッサ１５６０もまた、ネットワーク１１７０、ゲートウェイ１５１０、及びトンネル１１９０を経由してパケット４１１０を送信することとしてよい（ステップ３２００）。そして、ゲートウェイ１５２０は、パケット４１１０を受け取り、トンネル情報、例えばトンネルのＶＩＰアドレスを取り出すこととしてよい。そしてゲートウェイ１５２０は、取り出したトンネル情報に基づいて、パケット４１１０が「Ｘ」におけるアドレス衝突と関連付けられる、と決定することとしてよい（ステップ３３００〜３３５０）。
【００４１】
ゲートウェイ１５２０もまた、ステップ３６００において、取り出されたトンネル情報に基づいて、上述のとおり変換済アドレスを決定することとしてよい。その後ゲートウェイ１５２０は、そのパケットに変換済アドレスを付加して、アドレス衝突を生じることなくそのパケットをプロセッサ１５７０に転送することとしてよい（ステップ３７００）。
【００４２】
ゲートウェイ１５２０が、第１プロセッサ１５４０のためのアドレスを「Ｘ１」へ変換することにより、ネットワーク１１６０（又はネットワーク１１６０内のプロセッサ）は、変換済アドレス「Ｘ１」と「Ｘ」を区別することが可能となる。そうなれば、ゲートウェイ１５２０は、変換が必要でないと決定することができる。なぜならば、第２プロセッサ１５６０と関連付けられたアドレス「Ｘ」は、第１プロセッサ１５４０と関連付けられたアドレス「Ｘ１」と、ネットワーク１１６０において衝突していないからである。したがって、ネットワーク１１６０と接続するゲートウェイ１５２０は、プロセッサ１５４０についてアドレス「Ｘ」を「Ｘ１」に変換する一方で（例えばパケット４１２０を参照のこと）、第２プロセッサ１５６０についてアドレス「Ｘ」を変換しないこととしてよい（例えばパケット４１３０を参照のこと）。
【００４３】
図６は、本発明と整合性を有する方法及びシステムによる例示的なネットワーク６０００を示す。ネットワーク６０００は、第１ゲートウェイ１５００と接続するネットワーク１１８０に接続される第１プロセッサ１５４０と、第２ゲートウェイ１５１０と接続するネットワーク１１７０に接続される第２プロセッサ１５６０と、を含んでいる。さらに、ゲートウェイ１５００及び１５１０の間に、インターネットのような通信チャネルを通るトンネル１１８６が確立されている。
【００４４】
図６の実施例において、第１ゲートウェイ１５００は、172.16.1.1〜255のアドレスレンジで、アドレス172.16.1.2の第１プロセッサ１５４０を有するネットワーク１１８０に接続される（すなわち、ネットワーク１１８０内のプロセッサはこの範囲内のアドレスを使用する）。第２ゲートウェイ１５１０は、172.16.2.1〜255のアドレスレンジで、アドレス172.16.2.2の第２プロセッサ１５６０を有するネットワーク１１７０に接続される。このアドレス指定スキームではアドレス衝突を生じないが、実際には第２ゲートウェイ１５１０は、アドレスレンジ172.16.2.1〜255内ではなく、172.16.1.0〜255のアドレスレンジ内でパケットをエクスポート（又は変換）する。その結果、第２ゲートウェイ１５１０は、第２プロセッサのアドレスを、172.16.2.2ではなく172.16.1.2としてエクスポートすることとなる。ゲートウェイ１５１０は、その真正アドレスを隠したことにより、第１プロセッサ１５４０と（また172.16.1.2において）アドレス衝突を生じるパケットをエクスポートすることになる。
【００４５】
ゲートウェイ１５００及び１５１０がトンネル１１８６を確立するとき、ゲートウェイ１５００及び１５１０が、各ゲートウェイに付随されたネットワーク（又はサブネットワーク）のアドレスを含む情報を交換することとしてよい。このとき、第１ゲートウェイ１５００が、アドレス衝突を検出することとしてよい（図３のステップ３１００）。というのは、第２ネットワーク１１７０に関連付けられたアドレス（すなわちエクスポートされるアドレス）が、第１ネットワーク１１８０に関連付けられたアドレスと衝突しているからである。上述のとおり、第２ゲートウェイ１５１０は、プロセッサ１５６０からのパケットを、プロセッサ１５４０のアドレスと衝突するアドレス172.16.1.2で、エクスポートしている。
【００４６】
第２ゲートウエイ１５１０とのアドレス衝突を解決する際に、第１ゲートウェイ１５００は、トンネル１１８６を通って第２ゲートウェイ１５１０から受信したパケット用のアドレスレンジ192.168.1.0〜255を決定することとしてよい。したがって、第１ゲートウェイ１５００は、第２ゲートウェイ１５１０や第２プロセッサ１５６０と、アドレスをネゴシエートすることなく、アドレス衝突を解決することができる。
【００４７】
図３及び図６を参照する。第２プロセッサ１５６０が、ネットワーク１１７０及びゲートウェイ１５１０へパケットを送信することとする（ステップ３２００）。第２プロセッサ１５６０は、以下のようにパケットのアドレス指定を行なう。
<SRC=172.16.2.2><DEST=172.16.1.2>
ここで、「SRC」はパケットの発信元アドレスであり、「DEST」はパケットの宛先である。そして、ゲートウェイ１５１０はトンネル１１８６行きのこのパケットを受信して、ネットワーク・アドレス変換（ＮＡＴ）プロトコルを使用することにより、起点アドレスを書き換える。例えば、書き換えられたパケットは以下に示すようになる。
<SRC=172.16.1.2><DEST=172.16.1.2>
ここで、「SRC」はパケットのエクスポート後のアドレスであり、「DEST」は第１ネットワーク１１８０における宛先アドレスである。上記のとおり、ゲートウェイ１５１０は、エクスポートする（又はパブリックにする）発信元アドレスを、ネットワーク１１７０で実際に使用されているアドレスレンジと異なるアドレスレンジに書き換える。この書き換えが起きると、このパケットは第１ネットワーク１１８０においてアドレス衝突を生じる。なぜなら、発信元アドレス172.16.1.2が、第１ネットワーク１１８０内の宛先アドレス172.16.1.2と衝突するからである。
【００４８】
また、第２ゲートウェイ１５１０は、このパケットのペイロードを暗号化し、トンネル１１８６の起点及び終点アドレスを識別するためのＶＩＰアドレスを付加し、そしてこのパケットにパブリックＩＰアドレスを付加することとしてよい。これにより、このパケットは以下に示す形となる。
<PUBLIC SRC=128.6.4.4><PUBLIC DEST=64.15.12.1>
<VIP SRC=10.2.3.4><VIP DEST=10.1.2.3>
｛<ペイロード><SRC=172.16.1.2><DEST=172.16.1.2>｝
ここで、「PUBLIC SRC」はこのパケットのパブリック発信元アドレスであり、「PUBLIC DEST」は宛先ＩＰアドレスである。そしてインターネット（又はイントラネット）は、PUBLIC SRCアドレスとPUBLIC DESTアドレスとに基づき、経路選択を行なうことが可能である。「VIP SRC」は、第２ゲートウェイ１５１０におけるトンネル１１８６のＶＩＰアドレスを示す一方で、「VIP DEST」は、第１ゲートウェイ１５００におけるトンネル１１８６のＶＩＰアドレスを示す。さらに上記の例において、ペイロード、発信元アドレス（SRC）及び宛先アドレス（DEST）が大括弧「｛」及び「｝」に収容されているが、これはこれらが暗号化されていることを示す。
【００４９】
その後、第１ゲートウェイ１５００は、トンネル１１８６を形成するこのパケットを受信し（ステップ３３００）、パブリックＩＰアドレスを取り出し、トンネル１１８６を識別するＶＩＰアドレスを取り出し（ステップ３４００）、パケットを復号化する。
【００５０】
ステップ３４００で取り出した情報は、パケットがトンネル１１８６に由来するものとして識別するが、第１ゲートウェイは、この情報に基づき、検出されたアドレス衝突とパケットとが関連付けられていると決定することとしてよい（ステップ３５００）。例えば、第１ゲートウェイ１５００は、トンネル１１８６を形成するパケットもまた、アドレス衝突を生じているゲートウェイである第２ゲートウェイ１５１０から発信される、と決定してよい。
【００５１】
さらに第１ゲートウェイは、取り出したトンネル情報に基づき変換済アドレスを決定することとしてよい（ステップ３６００）。例えば、第１ゲートウェイ１５００は、ＶＩＰアドレス及び／又は起点アドレスに基づいてパケットを変換することとしてよい。この例では、第１ゲートウェイ１５００は、トンネル１１８６及びプロセッサ１５６０から得たパケットの発信元アドレス「SRC=172.16.1.2」を変換して、以下のように読み込む。
<SRC=198.168.1.2><DEST=172.16.1.2>
そして第１ゲートウェイ１５００は、この変換済アドレス198.168.1.2に基づいて、第１ネットワーク１１８０を経由して、パケットを第１プロセッサ１５４０へ転送する（ステップ３７００）。
【００５２】
一方で、第１プロセッサ１５４０が、ネットワーク１１８０及びゲートウェイ１５００を経由して第２プロセッサ１５６０へパケットを送信するとき、第１プロセッサ１５４０は、以下のようにパケットのアドレス選択をすることとしてよい。
<SRC=172.16.1.2><DEST=198.168.1.2>
ここで、「SRC」はパケットの発信元アドレスであり、「DEST」はネットワーク１１８０における第２プロセッサ１５６０の変換済アドレスである。
【００５３】
第１ゲートウェイ１５００は、このパケットを受信して、このパケットがアドレス衝突に関連付けられていると決定してよい。例えば、あるパケットを第１ゲートウェイ１５００が受信したとき、第１ゲートウェイ１５００は、宛先アドレス192.168.1.2に基づいてそのアドレスを処理し、そしてこのパケットが第２ゲートウェイ１５１０のアドレス衝突と関連付けられていると決定してよい。
【００５４】
そして、第１ゲートウェイ１５００は、このパケットを第２ゲートウェイ１５１０が認識するアドレスに書き換えることとしてよい。この例では、第１ゲートウェイ１５００は、このアドレスを192.168.1.2から、第２ゲートウェイ１５１０に認識されるアドレスである172.16.1.2へ変換する（又はマッピングする）。
【００５５】
また第１ゲートウェイ１５００は、このパケットを暗号化し、トンネル１１８６の起点／終点アドレスを識別するためのＶＩＰアドレスを付加し、そしてこのパケットにパブリックＩＰアドレスを付加してもよい。これによりこのパケットは以下に示す形となる。
<PUBLIC SRC=64.15.12.1><PUBLIC DEST=128.6.4.4>
<VIP SRC=10.1.2.3><VIP DEST=10.2.3.4>
｛<ペイロード><SRC=172.16.1.2><DEST=172.16.1.2>｝
そして、第２ゲートウェイ１５１０は、このパケットをトンネル１１８６から受信し、パブリックＩＰアドレスを取り出し、トンネル１１８６を識別するＶＩＰアドレスを取り出し、このパケットを復号化し、第２ネットワーク１１７０上で使用される現実のアドレスにこのパケットを変換することとしてよい。その結果このパケットのアドレスは以下のようになる。
<SRC=172.16.1.2><DEST=172.16.2.2>
そして、第２ゲートウェイ１５４０は、このパケットを第２ネットワーク１１７０上の第２プロセッサ１５６０へ転送する。
【００５６】
上記図６の説明では、第２ゲートウェイ１５１０が第２ネットワーク１１７０からアドレスをエクスポートする（又は変換する）ときに、第２ゲートウェイ１５１０がアドレス衝突を生じさせたが、アドレス衝突は本質的に存在しうるものである。というのは、第２プロセッサ１５６０が、例えば、第１ネットワーク１１８０（又はプロセッサ１５４０）と直接衝突するアドレス172.16.1.2を代わりに使用することもあるからである。もしそうだとしても、上記システム及び方法はこのようなアドレス衝突も解決可能である。
【００５７】
上記実施例、並びに本発明の他の形態及び原理は、様々な環境で実行することが可能である。このような環境及び関連するアプリケーションは、本発明の様々なプロセス及び動作を実行するために特別に構成することとしてもよく、又は、それらは、必要な機能を提供するために選択的に起動され又はプログラム・コード（コードとも呼ばれる）によって再構成された、汎用のコンピュータ又はコンピュータプラットフォームを含むこととしてよい。ここに開示されるプロセスは、特定のコンピュータやその他の装置のいずれにも本質的に関連するものではなく、ハードウエア、ソフトウエア及び／又はファームウェアの適切な組合せによって実施可能である。例えば、様々な汎用機械を、本発明の教示に従って記述されたプログラムとともに使用してよく、また、そのような機械を、必要な方法及び技術を実行するために特化した装置又はシステムを構成して、より便利にしてもよい。
【００５８】
本発明はまた、本発明の方法及びプロセスに基づく様々なコンピュータにインプリメントされた動作を、実行するためのプログラム命令又はプログラム・コードを含むコンピュータ可読メディアにも関する。メディア及びプログラム命令は、本発明の目的の為に特別に設計され構成されたものであってもよいが、周知で、かつコンピュータソフトウエア分野の当業者に入手可能な種類のものであってもよい。プログラム命令の例には、例えば、コンパイラにより生成されるマイクロコード及びマシンコードや、コンピュータがインタプリタを使用して実行可能な、高レベルのコードを含むファイルが含まれる。
【００５９】
当業者には、ここに開示された本発明の明細書及び説明を考慮することにより、本発明の他の実施例が明らかになるであろう。これら明細書及び例は例示としてのみ考慮されるべきであり、本発明の真正な範囲及び精神は以下の特許請求の範囲によって示されることが意図される。
【図１】
2010161823.tif 000003
【図２】
2010161823.tif 000004
【図３】
2010161823.tif 000005
【図４】
2010161823.tif 000006
【図５】
2010161823.tif 000007
【図６】
2010161823.tif 000008
【手続補正書】
【提出日】平成22年4月22日(2010.4.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１アドレス範囲を有する第１ネットワーク上の第１プロセッサと、
第２アドレス範囲を有する第２ネットワーク上の第２プロセッサと、
前記第１及び第２プロセッサ以外の、第３アドレス範囲を有する第３ネットワーク上の第３プロセッサであって、前記第１ネットワーク及び第２ネットワークとの通信に先だって前記第１プロセッサのアドレスと前記第２プロセッサのアドレスとの間の衝突を検出して、第３プロセッサと前記第１プロセッサとの間に確立されたトンネルの仮想アドレスを用いて取り出されたアドレス翻訳情報に基づいて前記衝突を解決することにより、前記第１ネットワークと前記第３ネットワークとの間の通信及び前記第２ネットワークと前記第３ネットワークとの間の通信を可能にする、第３プロセッサと、を備え、
前記第３プロセッサは、アドレスが前記第１プロセッサと前記第２プロセッサの間で共有されていることに基づいて、前記衝突を検出し、
前記第３プロセッサは、前記第１及び第２ネットワーク以外の第３ネットワークにおいて局所的に前記衝突を解決する、少なくとも１つの変換済アドレスを決定するネットワーク。
【請求項２】
前記第３プロセッサは、前記トンネルの仮想アドレスに基づいて変換済アドレスを決定し、この変換済アドレスに基づいて１つ以上のパケットを前記第２ネットワークに転送する、請求項１に記載のネットワーク。
【請求項３】
前記第３プロセッサは、ゲートウェイとして機能する請求項１に記載のネットワーク。
【請求項４】
前記第３プロセッサは、前記第３プロセッサと前記第２プロセッサとの間に確立される他のもう一つのトンネルの仮想アドレスに基づいて、前記衝突を解決する、請求項１に記載のネットワーク。