(57)【要約】【課題】L2VPNを構築する際に、VPNサーバでは、VPNクライアントから受信したデータを送信元VPNクライアント用の鍵で復号化し、送信先VPNクライアント用の鍵で暗号化する必要がある。暗号化、復号化の処理は負荷が高く、VPNサーバのスループットが低下する。【解決手段】VPNクライアントが送信するIPパケットの宛先アドレスをマルチキャストアドレスとし、VPNサーバから配布されたマルチキャストアドレスのセキュリティアソシエーションに従って暗号化する。暗号化したIPパケットをVPNサーバのIPアドレスでカプセル化し、VPNサーバに送信する。このIPパケットを受信したVPNサーバは、IPパケットにカプセル化されたIPパケットのマルチキャストアドレスから、送信先のVPNクライアントを決定し、送信先のVPNクライアントのIPアドレスでカプセル化してVPNクライアントに送信する。【選択図】図１
2006101051.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して複数のVPNクライアント装置と接続され、メモリと、送受信部を有するサーバであって、
上記メモリには、上記複数のVPNクライアント装置に共通の宛先アドレスと、上記複数のVPNクライアント装置に共通の暗号化情報とを対応付けて格納され、
上記送受信部から上記宛先アドレスと上記暗号化情報を対応付けて上記複数のVPNクライアント装置に送信し、
さらに、上記複数のVPNクライアント装置のうち一のVPNクライアント装置から、上記暗号化情報に基づいて暗号化されたIPパケットであって上記宛先アドレスを含むIPパケットを上記送受信部から受信した際には、該IPパケットを上記暗号化されたまま上記送受信部から、上記複数のVPNクライアント装置のうち上記一のVPNクライアント装置以外のVPNクライアント装置に向けて送信することを特徴とするサーバ。
【請求項２】
上記複数のVPNクライアント装置で形成されるVPNグループの構成が変更された際に、新たなVPNグループに属するVPNクライアント装置に通知するための暗号化情報を変更することを特徴とする請求項１記載のサーバ。
【請求項３】
上記複数のVPNクライアント装置に共通のアドレスは、マルチキャストアドレスであることを特徴とする請求項１記載のサーバ。
【請求項４】
上記暗号化情報は、上記複数のVPNクライアント装置に共通の宛先アドレス毎に生成されたセキュリティアソシエーションであることを特徴とする請求項１記載のサーバ。
【請求項５】
上記暗号化情報は、上記複数のVPNクライアント装置に共通の宛先アドレスごとに生成された、暗号化アルゴリズム、鍵、又はSPI(Security Parameter Index)のうち少なくともいずれか一つであることを特徴とする請求項１記載のサーバ。
【請求項６】
少なくとも一つの他のVPNクライアント装置とネットワークを介して接続されたVPNクライアント装置であって、
上記他のVPNクライアントと共通の宛先アドレスと、上記他のVPNクライアントと共通の暗号化情報とを対応づけて格納するメモリと、
上記暗号化情報に基づいて暗号化され、宛先を上記共通の宛先アドレスとしたIPパケットをさらにIPパケットでカプセル化して送信する送受信部を有するVPNクライアント装置。
【請求項７】
上記送受信部は、
上記ネットワークを介して接続されたサーバから、上記共通の宛先アドレスと上記共通の暗号化情報を受信可能であることを特徴とする請求項６記載のVPNクライアント装置
【請求項８】
上記共通の宛先アドレスは、マルチキャストアドレスであることを特徴とする請求項６記載のVPNクライアント装置。
【請求項９】
上記暗号化情報は、上記共通の宛先アドレス毎に生成されたセキュリティアソシエーションであることを特徴とする請求項６記載のVPNクライアント装置。
【請求項１０】
ネットワークを介して接続されたサーバおよび複数のVPNクライアント装置を備えたVPNシステムであって、
上記サーバは、
上記複数のVPNクライアント装置に共通の宛先アドレスと、上記複数のVPNクライアント装置に共通の暗号化情報とを対応付けて格納するメモリと、
上記共通の宛先アドレスと上記共通の暗号化情報とを上記複数のVPNクライアント装置に通知するインタフェースを有し、
上記複数のVPNクライアント装置はそれぞれ、
上記共通の宛先アドレスと上記共通の暗号化情報とを対応付けて格納するメモリと、
上記共通の暗号化情報に基づいて暗号化され、宛先を上記共通の宛先アドレスとしたIPパケットをさらにIPパケットでカプセル化して上記サーバに向けて送信するインタフェースとを有するとすることを特徴とするVPNシステム。
【請求項１１】
複数のVPNクライアント装置と接続され、制御部とメモリと送受信部を有するサーバの該制御部で実行されるソフトウェアであって、
上記複数のVPNクライアント装置に共通の宛先アドレスと、上記複数のVPNクライアント装置に共通の暗号化情報をメモリに格納するステップと、
上記共通の宛先アドレスと上記共通の暗号化情報を上記送信部から上記複数のVPNクライアント装置に向けて送信するステップとを有するVPN生成方法を実行可能なソフトウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インタネットプロトコルを用いて、物理的に離れた拠点間で論理的な閉域ネットワーク（VPN）を構成する通信システムに関する。
【背景技術】
【０００２】
インタネットを用いてL2VPNを構築する方式として、トンネリングによる方式が知られている。本方式では、送信側VPN装置が接続するLAN上を流れるイーサフレームを補足し、IPでカプセル化して受信側VPN装置に送信する。イーサフレームをカプセル化したIPパケットを受信した受信側VPN装置は、受信したIPパケットからイーサフレームを取り出し、受信側装置が接続するLANにイーサフレームを送信することで、L2VPNを構築することが可能である。
【０００３】
インタネットを経由した通信では、通信経路上でデータを第三者に盗聴や改ざんされる可能性がある。そのため、データを安全に送受信するためには、暗号化を用いる必要がある。IPパケットの盗聴や改ざんからデータを守る技術としてIPsec(IP Security Protocol)が一般的に知られている（例えば、非特許文献１参照）。IPsecでは、暗号化方式や鍵等を事前に定めたセキュリティアソシエーションに従って、IPパケットの暗号化や復号化を行う。セキュリティアソシエーションの確立には、IKE(Internet Key Exchange)を用いて動的に確立する方法の他、手動で事前に設定しておく方法がある。
【０００４】
ひとつの送信端末から、複数の受信端末へ同一内容のIPパケットを送信するための技術としてマルチキャストが知られている。ユニキャストを用いた通信では、受信端末が複数存在する場合、送信端末が受信端末数だけパケットを複製して送信する必要がある。しかし、マルチキャストを用いた通信では、送信端末は１つのパケットだけを送信し、パケットの複製は経路上の適切なマルチキャストルータによって行われる。そのため、送信端末の負荷を軽減するとともに、トラヒックを削減し、ネットワークを効率に使用することができる。
【０００５】
【非特許文献１】IETF, RFC2401
【発明の開示】
【発明が解決しようとする課題】
【０００６】
インタネットを利用して閉域性と秘匿性を保ってL2VPNを構築するためには、VPNクライアントとVPNサーバ間で暗号化してデータを交換する必要がある。VPNサーバでは、VPNクライアントから受信したデータを、データ送信元のVPNクライアント用の鍵で復号化し、データの送信先となるVPNクライアントを決定した後、送信先のVPNクライアント用の鍵で暗号化する必要がある。暗号化、復号化の処理は負荷が高く、VPNサーバのスループットが低下する。
【課題を解決するための手段】
【０００７】
VPNクライアントがイーサフレームをVPNサーバから配布されたマルチキャストアドレスのセキュリティアソシエーションに従って暗号化し、宛先アドレスをマルチキャストアドレスとしたIPパケットでカプセル化する。この暗号化したマルチキャストIPパケットを宛先アドレスをVPNサーバのIPアドレスとしたIPパケットでさらにカプセル化し、VPNサーバにユニキャストで送信する。VPNクライアントからのIPパケットを受信したVPNサーバは、一度IPパケットをデカプセル化し、中身のマルチキャストIPパケットのマルチキャストアドレスから、送信先のVPNクライアントを決定し、宛先アドレスを送信先のVPNクライアントのIPアドレスとしたIPパケットでもう一度カプセル化してVPNクライアントに送信する。VPNクライアントは、受信したIPパケットを一度でカプセル化した後、中身のマルチキャストIPパケットを、マルチキャストのセキュリティアソシエーションに従って復号化し、カプセル化されたイーサフレームを取得する。
【発明の効果】
【０００８】
本発明によるとVPNサーバの処理負荷を大幅に軽減することができ、VPNサーバのスループットを向上させることができる。
【実施例１】
【０００９】
図２は本発明が実施される通信システムを示している。本通信システムは、VPNサーバ101、VPNクライアントA102、VPNクライアントB103、VPNクライアントC104、および各VPNクライアントが接続するLAN105、106、107、LAN105に所属する端末(1)108、LAN106に所属する端末(2)109、LAN107に所属する端末(3)110から構成される。VPNサーバ101と各VPNクライアント102、103、104はインタネット111を介して接続される。
【００１０】
図３−１はVPNクライアントA102の構成例である。VPNクライアントA102は、CPU(Central Processing Unit)301、メモリ302、インタフェース部304、305から構成される。CPU301は、各種アプリケーションプログラムや、OS(Operating System)を実際に実行する。メモリ302はCPU301の実行において使用するプログラムや、各種アプリケーションプログラムが格納される。CPU301とメモリ302は、バス303を介して接続される。インタフェース部304、305はCPU301やメモリ302から供給されたデータを外部の機器に供給する。インタフェース部304、305のうちどちらか一方はLAN105に接続され、もう一方はインタネット111に接続されている。図３−２はメモリ302内に格納された情報を示している。メモリ302内には、IPsec処理312、VPN確立処理313、VPN転送処理314などのプログラム、セキュリティアソシエーション（SA）管理テーブル308、VPN情報管理テーブル309、認証情報管理テーブル310、外部LAN MAC管理テーブル311などの情報管理テーブルが格納されている。
【００１１】
セキュリティアソシエーション管理テーブル308はIPsecのセキュリティアソシエーションを管理している。VPN情報管理テーブル309は、VPNクライアントが利用可能なVPNサーバのユニキャストアドレス、および、VPN転送用のマルチキャストアドレスを管理する。
図４−１はVPN情報管理テーブル309の構成例を示している。例では、VPNサーバのIPアドレスは3ffe::1000、VPN転送用のマルチキャストアドレスがff1e::1であることを示している。
認証情報管理テーブル310では、VPN確立時のユーザ認証に必要な、VPNクライアントのユーザIDやパスワードを管理する。
【００１２】
外部LAN MAC管理テーブル311は、VPNクライアントA102がVPNサーバ101を介して接続しているVPNクライアントB103、C104が接続するLAN106、107に所属する端末(2)109 および端末(3)110のMACアドレスと、MACアドレスの有効時間を管理する。有効時間は、端末との通信が発生するたびに更新され、一定時間更新がなく、有効時間が0になると、登録されたMACアドレスは外部LAN MACアドレス管理テーブル311から削除される。
図４−２は外部LAN MAC管理テーブル311の構成例を示している。例では、端末(2)109および端末(3)110のMACアドレスbb、ccと、それらMACアドレスの有効時間が3600秒、3000秒であることを示している。
【００１３】
図５−１はVPNサーバ101の構成例である。VPNサーバ101は、CPU501、メモリ502、インタフェース部504から構成される。CPU501、メモリ502、インタフェース部504はバス503を介して接続される。インタフェース部504はインタネット111に接続されている。
図５−２はメモリ502に格納された情報を示している。メモリ502内には、IPsec処理510、ユーザ，VPN管理処理511、VPN転送処理512などのプログラム、および、ユーザVPNグループ管理テーブル506、ユニキャストグループ管理テーブル507、マルチキャストアドレス管理テーブル508、MAC IP対応管理テーブル509などの情報管理テーブルが格納されている。
【００１４】
図６−１はユーザVPNグループ管理テーブル506の構成例である。ユーザVPN情報管理テーブルは、ユーザが所属するVPNのグループを管理する。例では、User A、B、CはVPNグループ1001、User DはVPNグループ1002に所属している。
図６−２は、ユニキャストグループ管理テーブル507の構成例である。ユニキャストグループ管理テーブル507は、同じVPNグループに属するユーザが現在使用しているユニキャストのIPアドレスを管理する。例では、VPNグループ1001に所属するユーザ（User A、B、C）が使用しているIPアドレスが、3ffe:aaaa::1、3ffe:bbbb::1、3ffe:cccc::1であることを示している。
図６−３は、マルチキャストアドレス管理テーブル508の構成例である。マルチキャストアドレス管理テーブル508は、VPNグループが現在利用しているマルチキャストアドレスと、マルチキャストアドレスに対応したセキュリティアソシエーションを管理する。例では、VPNグループ1001は、マルチキャストアドレスff1e::1を利用し、マルチキャストアドレスff1e::1用のセキュリティアソシエーションはSA１であることを示している。セキュリティアソシエーションとはIPsecのセキュリティアソシエーションを示しており、暗号化アルゴリズム、鍵、SPI(Security Parameter Index)などが含まれる。
図６−４は、MAC IP対応管理テーブル509の構成例である。MAC IP対応管理テーブル509は、端末のMACアドレスと、端末が所属するLANに接続するVPNクライアントIPアドレスとの対応関係を管理する。例では、端末(1)108のMACアドレスaaは、VPNクライアントA102のIPアドレス3ffe:aaaa::1に対応し、端末(2)109のMACアドレスbbは、VPNクライアントB103のIPアドレス3ffe:bbbb::1に対応していることを示している。
【００１５】
図１は、本発明にかかるLAN間接続方式によって、LAN105、106、107がL2VPNで接続される際のシーケンスを示している。クライアントA102、クライアントB103、クライアントC104はすべてVPNクライアントであり、各VPNクライアントの利用者A、B、Cは、LAN105、106、107がL2VPNで接続されることに同意しているものとする。
VPNグループ間でマルチキャストのセキュリティアソシエーションを確立するVPNクライアント側の処理は、VPN確立処理313によって行われる。また、VPNサーバ側の処理は、ユーザ，VPN管理処理511によって行われる。
【００１６】
まず、VPNクライアントA102とVPNサーバ101間でユニキャストのセキュリティアソシエーションを確立する。VPNクライアントA102は、IPsecを用いてデータを暗号化した上で、認証情報管理テーブル310に登録された情報をもとに、ユーザ認証要求を行う。VPNサーバ101は、ユーザ認証を行い、ユーザが認証された場合は、VPN接続で利用するマルチキャストアドレスおよび、マルチキャストアドレスのセキュリティアソシエーションをセキュリティパラメタとしてVPNクライアントに通知する。VPNクライアントは、配布されたセキュリティパラメタをセキュリティアソシエーション管理テーブル308に登録し、VPNグループ間でセキュリティアソシエーションを確立する。クライアントBおよびクライアントCも同様にしてVPNグループ間でセキュリティアソシエーションを確立する。
【００１７】
図７−１にVPNサーバ101のユーザ，VPN管理処理511の処理フローを示す。本処理は、図１のシーケンス図において、VPNクライアントがマルチキャストのセキュリティアソシエーションを確立するまでのVPNサーバの処理を示している。
【００１８】
VPNサーバで101はクライアントA102からの要求に従い、IKE等により、VPNクライアントとVPNサーバ間でユニキャストアドレスを用いたセキュリティアソシエーションを確立する（ステップ701）。VPNクライアントとVPNサーバ間のセキュリティアソシエーション確立後、IPsecを用いてデータを暗号化し、ユーザ認証を行う。ユーザ認証は、XAUTH等を用いて、セキュリティアソシエーション確立中に行ってもよい。ユーザ認証が成功したかを判定し（ステップ702）、失敗した場合は処理を終了する。成功した場合は、ユーザ認証に用いたユーザIDから、ユーザVPNグループ管理テーブル506を用いて、ユーザのVPN IDを特定する（ステップ703）。VPN IDから、ユニキャストグループ管理テーブル507の検索を行い、VPN IDが既登録か否かを判定する（ステップ704）。
【００１９】
ユニキャストグループ管理テーブル507にVPN IDが未登録の場合は、同一VPN IDを共有しているユーザグループ内で最初のVPNクライアントからの接続と判定し、以後のVPN接続で利用するマルチキャストアドレスを決定する。また、決定したマルチキャストアドレスに対するセキュリティアソシエーションを生成し、マルチキャストアドレスとともにマルチキャストアドレス管理テーブル508に保存する（ステップ705）。さらに、ステップ703で特定したVPN IDのユニキャストグループ管理テーブル508を生成し、VPNクライアントのユニキャストアドレスを登録する（ステップ706）。ユニキャストグループ管理テーブル506にVPN IDが既登録の場合（ステップ704）は、マルチキャストアドレス、およびセキュリティアソシエーションの生成、登録は行わない。既登録のユニキャストグループ管理テーブル507に、VPNクライアントのユニキャストアドレスの追加を行う（ステップ707）。VPNグループで使用するマルチキャストアドレスと、マルチキャストアドレス用セキュリティアソシエーションをVPNクライアントに通知し、処理を終了する（ステップ708）。
以上の処理により、同一VPNグループ間でマルチキャストのセキュリティアソシエーションが確立できる。
【００２０】
図１にもどり、イーサフレームの転送処理を説明する。VPNクライアントA102は、イーサフレームをIPパケットでカプセル化してVPNサーバ101に送信する。本処理は、VPNクライアントA102のVPN転送処理314によって行われる。VPNクライアントA102からVPNサーバ101宛に送信されたIPパケットを、適切なVPNクライアントに転送する処理は、VPNサーバ101のVPN転送処理511によって行われる。
【００２１】
図８−１にVPNクライアントにおけるVPN転送処理の送信処理フローを示す。VPNクライアントA102では、VPNクライアントA102が接続するLAN105上を流れるイーサフレームをすべて捕捉する（ステップ801）。イーサフレームの送信元MACアドレスが外部LAN MAC管理テーブル311に登録されているか検索する（ステップ802）。外部LAN MAC管理テーブル311に登録されている場合は、捕捉したイーサフレームを破棄し、処理を終了する。登録されていない場合は、VPN情報管理テーブル309からVPNグループで利用するマルチキャストアドレスを取得する（ステップ803）。ステップ801で捕捉したイーサフレームをペイロードとするIPパケットを作成する。IPパケットの宛先アドレスはステップ803で取得したマルチキャストアドレスとする（ステップ804）。以後、ステップ804で作成したIPパケットを内部IPパケット、内部IPパケットのヘッダ部を内部IPヘッダと称す。
【００２２】
このように、内部IPヘッダの宛先アドレスをマルチキャストアドレスにすることで、VPNサーバがこのマルチキャストアドレスをもとに、転送先VPNクライアントを特定することができる。宛先アドレスをマルチキャストアドレスとしたセキュリティアソシエーションが、セキュリティアソシエーション管理テーブル308に登録されているかを判定する（ステップ805）。正常系であれば、ステップ708によって配布されたマルチキャストアドレスのセキュリティアソシエーションが登録されている。セキュリティアソシエーションが登録されていない場合は、処理を終了する。セキュリティアソシエーションが登録されている場合は、登録情報に従って、ステップ804で作成した内部IPパケットを暗号化する（ステップ806）。このように、内部IPパケットをマルチキャストアドレスのセキュリティアソシェーションに従って暗号化することで、VPNサーバで復号化、再暗号化の処理をしなくても、送信先VPNクライアントが内部IPパケットを復号化できる。ステップ806で暗号化した内部IPパケットにVPNヘッダ901を付与する（ステップ807）。
【００２３】
図９にVPNヘッダの構成例を示す。VPNヘッダ901は、次フィールドがMACアドレスかIPヘッダかを示す次データフィールド902。次データフィールド902がMACアドレスを示す場合には、送信元MACアドレス903および宛先MACアドレス904を含む。VPN情報管理テーブル309からVPNサーバのIPアドレスを取得する（ステップ808）。ステップ807で作成したデータをUDPペイロードに含むIPパケットを作成し、宛先IPアドレスをステップ808で取得したVPNサーバのアドレスに設定し、インタネットに接続する回線に出力する（ステップ809）。以後、ステップ809で作成したIPパケットを外部IPパケット、外部IPパケットのヘッダ部を外部IPヘッダと称す。
【００２４】
図10は、VPNクライアントA102の送信処理で作成されるIPパケットの構成を示している。VPNサーバを宛先とする外部IPパケットのUDPペイロード部1001に、VPNヘッダ901を付与したマルチキャストアドレス宛の内部IPパケット1002を格納し、さらに、マルチキャストアドレス宛の内部IPパケット1002のなかに捕捉したイーサフレームを格納する構成となる。このように、内部IPヘッダの宛先アドレスをマルチキャストアドレスとしておくことで、VPNサーバは、内部IPパケットの暗号化された部分を復号化することなく、宛先VPNクライアントを特定することができる。
【００２５】
図７−２にVPNクライアントA102からのIPパケットを受信したVPNサーバ101の処理フローを示す。VPNサーバ101が自宛のIPパケットを受信する（ステップ709）。VPNサーバ101は外部IPパケットのUDPペイロード部1001を解析し（ステップ710）、VPNヘッダ901を取得する。VPNヘッダの次データフィールド902を調査し、VPNヘッダ901にMACアドレスが含まれているか否かを判定する（ステップ711）。MACアドレスが含まれている場合には、VPNヘッダ901から取得した送信元MACアドレス904から、MAC IP対応管理テーブル509を検索する（ステップ712）。MAC IP対応管理テーブル509にMACアドレスの登録があるかを判定し（ステップ713）、登録がない場合は、MAC IP管理テーブル509にVPNヘッダ901で通知された送信元MACアドレスと、ステップ709で受信したIPパケットの送信元IPアドレスの対応を登録する（ステップ714）。VPNヘッダ901から取得した宛先MACアドレス903から、MAC IP管理テーブル509を検索し（ステップ715）、宛先MACアドレスの登録があるかを判定する（ステップ716）。
【００２６】
MAC IP対応管理テーブル509に、VPNヘッダ901の宛先MACアドレス903から取得したMACアドレスの登録がある場合は、ステップ709で受信したIPパケットのVPNヘッダ以下をUDPペイロードとした外部IPパケットを作成し、作成した外部IPパケットの宛先IPアドレスは、MAC IP対応管理テーブル509から取得したIPアドレスとする。作成した外部IPパケットを回線に出力する（ステップ719） MAC IP対応管理テーブル509に、VPNヘッダの宛先MACアドレス903から取得したMACアドレスの登録がない場合は、ステップ709で受信した外部IPパケットのUDPペイロード1001に含まれる内部IPパケット1002の宛先アドレスからマルチキャスト管理テーブル508を検索しVPN IDを取得する。取得したVPN IDからユニキャストグループ管理テーブルを検索し、IPパケットの送信元のVPNクライアントと同一のVPNグループに属するクライアントのIPアドレスを取得する（ステップ718）。IPアドレスの取得に失敗した場合は、処理を終了する。IPアドレスの取得に成功した場合は、ステップ717で取得したIPアドレスの中から、ステップ709で取得した外部IPパケットの送信元IPアドレス以外のIPアドレスをすべて選択する。ステップ709で受信したIPパケットのVPNヘッダ以下をUDPペイロードとしたIPパケットを作成する。作成した外部IPパケットの宛先IPアドレスは、選択したIPアドレスとし、外部IPパケットを回線に出力する（ステップ719）。
【００２７】
ステップ711でVPNヘッダにMACアドレスが含まれていない場合、すなわち、VPNヘッダの次データフィールドが2の場合は、MACアドレスの検索は行わず、ステップ709で受信した外部IPパケットのUDPペイロード1001に含まれる内部IPパケット1002の宛先アドレスからマルチキャスト管理テーブル508を検索しVPN IDを取得する。取得したVPN IDからユニキャストグループ管理テーブル507を検索し、外部IPパケットの送信元のVPNクライアントと同一のVPNグループに属するクライアントのIPアドレスを取得する（ステップ718）。IPアドレスの取得に失敗した場合は、処理を終了する。IPアドレスの取得に成功した場合は、ステップ717で取得したIPアドレスの中から、ステップ709で取得した外部IPパケットの送信元IPアドレス以外のIPアドレスをすべて選択する。ステップ709で受信したIPパケットのVPNヘッダ以下をUDPペイロードとした外部IPパケットを作成する。作成した外部IPパケットの宛先IPアドレスは、選択したIPアドレスとし、外部IPパケットを回線に出力する（ステップ719）。
【００２８】
図８−２にVPNサーバ101からVPNクライアントB103宛のパケットを受信したVPNクライアントの受信処理フローを示す。本処理は、VPNクライアントのVPN転送処理314で行われる。
VPNクライアントB102は、自宛のIPパケットを受信する（ステップ810）。受信したIPパケットのUDPペイロード1001を調べ、UDPペイロード1001に含まれる内部IPパケット1002を取得する（ステップ811）。セキュリティアソシエーション管理テーブル308を検索し、取得した内部IPパケット1002に該当するセキュリティアソシエーションを検索する（ステップ812）し、該当するセキュリティアソシエーションが登録されているかを判定する（ステップ813）。該当するセキュリティアソシエーションが登録されていない場合は、処理を終了する。正常系であれば、VPN接続時にVPNサーバ101から配布されたマルチキャストアドレスのセキュリティアソシエーションが登録されている。該当するセキュリティアソシエーションが存在する場合は、取得したセキュリティアソシエーションに従って、ステップ811で取得した内部IPパケット1002を復号化する（ステップ814）。復号化した内部IPパケットから、イーサフレームを取得する（ステップ815）。ステップ815で取得したイーサフレームの送信元MACアドレスから外部LAN MAC管理テーブル311を検索する（ステップ816）。
【００２９】
検索した送信元MACアドレスが外部LAN MAC管理テーブル311に既に登録されている場合は、該当するMACアドレスの有効時間を更新し（ステップ818）、ステップ815で取得したイーサフレームを回線に出力し（ステップ820）、処理を終了する。検索した送信元MAVアドレスが外部LAN MAC管理テーブル311に登録されていない場合は、送信元MACアドレスを外部LAN MAC管理テーブルに登録し（ステップ819）、ステップ815で取得したイーサフレームを回線に出力(ステップ820)して処理を終了する。
以上の実施例１で示した構成により、セキュリティの保たれた閉域網を実現する際に、VPNサーバで内部IPパケットの暗号化、復号化の処理を行わないために、VPNサーバの処理負荷を軽減でき、同時にスループットが向上する。
【実施例２】
【００３０】
実施例２では、VPN IDにSub IDを導入し、同一VPNグループ内でL2VPNを構成するユーザを任意に変更する例について説明する。図１１は、VPNサーバ101から配布するセキュリティパラメタを任意に変更することで、L2VPNを構成するユーザが変更される様子を示している。
【００３１】
各VPNクライアント（102、103、104）は実施例１と同様にVPNクライアントとVPNサーバ間でユニキャストアドレスのセキュリティアソシエーションを確立し、ユーザ認証を行う。ユーザが認証された場合は、VPN接続で利用するマルチキャストアドレスおよび、マルチキャストアドレスのセキュリティアソシエーションを、セキュリティパラメタとしてVPNクライアントに通知する。本実施例では、VPNサーバ101から各VPNクライアント（102、103、104）に配布するセキュリティアソシエーションをVPN Sub IDごとに変えて配布する。そのために、マルチキャストアドレス管理テーブル508にVPN Sub IDフィールド1201を追加する。図１２−１に拡張したマルチキャストアドレス管理テーブルの概念図を示す。
VPN Sub IDは同一VPNグループ内の管理者が事前に設定しておく。VPNグループ管理者用のポータルページ等を用いて、VPN接続中に各ユーザが属するSub IDを変更することも可能である。図１２−２にVPN Sub IDグループ管理テーブルの概念図を示す。
【００３２】
図１１では、VPNグループ管理者による初期設定は、User AおよびUser BのSub IDは１、User CのSub IDは２に設定されている。ユーザ認証後、VPNサーバ101は、VPNクライアントA102およびB103にはマルチキャストのセキュリティアソシエーション１を、VPNクライアントC103にはマルチキャストのセキュリティアソシエーション10をセキュリティパラメタとして配布する。VPNクライアントA102およびB103には同じセキュリティアソシエーションが配布されたため、VPNクライアントA102、B103間では、マルチキャストのセキュリティアソシエーションが確立するが、VPNクライアントC103には、異なるセキュリティアソシエーションが配布されているため、クライアントA102およびB103とのセキュリティアソシエーションは確立されない。
【００３３】
この状態で、VPNクライアントA102は、実施例1と同様にして、捕捉したイーサフレームをIPパケットでカプセル化してVPNサーバ101に送信する。VPNサーバは、UDPペイロード部1001から取り出した内部IPパケット1002の宛先マルチキャストアドレスからVPNクライアントB103およびVPNクライアントC104を選択し、実施例１と同様の方法で送信する。VPNサーバ101からのIPパケットを受信したVPNクライアントB103およびC104は、暗号化されたマルチキャストパケットの復号化を試みる。VPNクライアントB103はVPNクライアントA102とセキュリティアソシエーションを共有しているため、復号化可能であるが、VPNクライアントC104はセキュリティアソシエーションが共有していないため、復号化できない。そのため、VPNクライアントA102およびB103はL2VPNを構成することが可能であるが、VPNクライアントC104は、VPNクライアントA102およびB103とL2VPNを構築することができない。つまり、VPNクライアントC104は、VPNクライアントA102またはVPNクライアントB103からL2VPN経由で受信したイーサフレームを復号化することができない。
【００３４】
VPNグループ管理者がSub IDの変更を行い、User CのSub IDを１に変更する。
VPNサーバ101は、Sub IDの変更を検知し、変更があったユーザのVPN IDをユーザVPNグループ管理テーブル506から取得する。マルチキャストアドレス管理テーブル508を用いて、VPN ID、Sub IDからセキュリティアソシエーションを取得する。取得したセキュリティアソシエーションをセキュリティパラメタとして、VPNクライアントC104に通知する。VPNクライアントC104は、配布されたセキュリティパラメタの中から、マルチキャストのセキュリティアソシエーションを取得し、セキュリティアソシエーション管理テーブル308に登録する。これにより、VPNクライアントA102、B103、C104間でマルチキャストのセキュリティアソシエーションが確立する。以後、VPNクライアントA102またはVPNクライアントB103から送信されたデータは、C104でも復号化可能となる。
【００３５】
以上の実施例２で示した構成により、一つのVPNグループに所属するクライアントを柔軟に変更することができる。
【実施例３】
【００３６】
図１３は本発明をマルチキャストネットワークによって実施する様子を示している。本実施例では、各VPNクライアント（102、103、104）は、マルチキャストネットワーク1302を介して接続している。マルチキャストネットワーク1302にはマルチキャストルータ1301が所属している。
VPNサーバ101は、IP通信が可能な場所に設置されていれば、マルチキャストネットワーク1302内に存在しなくてもよい。
【００３７】
図１４に本実施例に沿った通信手順の例を示す。各VPNクライアント（102、103、104）は、実施例１と同様にVPNサーバ101とユニキャストのセキュリティアソシエーションを確立し、ユーザ認証を行う。ユーザが認証された場合は、VPN接続で利用するマルチキャストアドレスおよび、マルチキャストアドレスのセキュリティアソシエーションをVPNクライアントに通知し、VPNグループ間でのセキュリティアソシエーションを確立する。
【００３８】
クライアントA102は、端末(1)108から送信されたイーサフレームを捕捉し、IPパケットを暗号化する処理（ステップ801からステップ806）は第１実施例と同様である。本実施例では、VPNクライアントA102は、VPNヘッダ901やVPNサーバ101を宛先とするIPヘッダの付与は行わず回線に出力する。つまり内部IPアドレスのまま送信する。マルチキャストアドレスを宛先アドレスとするIPパケットは、マルチキャストネットワーク1302内のマルチキャストルータ1301によって複製され、VPNクライアントB103およびC104に送信される。VPNクライアントA102から送信されたマルチキャスト宛のIPパケットを受信した各クライアントは、該当のセキュリティアソシエーションでIPパケットを復号化し、実施例１と同様の処理を行う（ステップ812からステップ820）。
【００３９】
以上の実施例３で示した構成により、イーサフレームの転送にVPNサーバを用いることなく、マルチキャストネットワークを用いて閉域網を構成することができ、VPNサーバの処理負荷を軽減できると同時にスループットが向上する。
【実施例４】
【００４０】
図１５は本発明を複数のVPNサーバを用いて実施する様子を示している。本実施例では、VPNサーバをインタネット111上に複数配置し、VPNクライアントは最寄りのVPNサーバに接続することにより、他のVPNクライアントと接続する。本実施例では、VPNクライアントA102、B103、C104および代表VPNサーバ1501、VPNサーバA1502、B1503は、インタネット111を介して接続している。
【００４１】
図１６に本実施例に沿った通信手順の例を示す。各VPNクライアント（102、103、104）は、実施例１と同様に代表VPNサーバ1501とユニキャストのセキュリティアソシエーションを確立する。代表VPNサーバ1501は、ユーザVPN管理処理511を行い、VPN接続で利用するマルチキャストアドレス、マルチキャストアドレスのセキュリティアソシエーションを配布する。このとき、以後L2データの転送に用いるVPNサーバのアドレスを各VPNクライアントに配布する。例えば、VPNクライアントA102が代表VPNサーバ1501で認証された場合、代表VPNサーバ1501はVPNサーバA1501のアドレスと、VPN接続で利用するマルチキャストアドレス、マルチキャストアドレスのセキュリティアソシエーションをVPNクライアントA102に通知する。
【００４２】
他のVPNクライアントも同様の方法で、最寄りのVPNサーバのアドレスを取得する。代表VPNサーバ1501は、ユーザ、VPN管理処理511を行った後、クライアントA102 を収容するVPNサーバ1502に、VPN転送処理時に必要なマルチキャストアドレス管理テーブル508と、ユニキャストグループ管理テーブル507とを配布する。マルチキャストアドレス管理テーブル508とユニキャストグループ管理テーブル507は、VPNクライアント接続時に変更された差分のみを配布してもよい。以後、VPNサーバA1502、B1503がVPNクライアントA102、B103、C104からのL2データを転送する処理は第１実施例と同様である。
【００４３】
以上の実施例４に示す構成により、複数のVPNサーバを備えたネットワークでも、VPNサーバにおける内部IPパケットの復号化、暗号化をせずにVPNを構築でき、さらに複数のVPNサーバを用いることによって、VPN上を流れるパケットの転送処理の負荷を分散することができる。
【実施例５】
【００４４】
図１７は本発明を複数のVPNサーバを経由して実施する様子を示している。本実施例では、VPNサーバをインタネット111上に複数配置し、VPNクライアントは最寄りのVPNサーバに接続することにより、他のVPNクライアントと接続する。本実施例では、VPNクライアントA102、B103、C104および代表VPNサーバ1501、VPNサーバA1502、B1503は、インタネット111を介して接続している。
【００４５】
図１８に本実施例に沿った通信手順の例を示す。各VPNクライアント（102、103、104）は、実施例３と同様に代表VPNサーバ1501とユニキャストのセキュリティアソシエーションを確立し、代表VPNサーバ1501は、ユーザ認証後、VPN接続に利用するマルチキャストアドレス、マルチキャストアドレスのセキュリティアソシエーション、VPNサーバのアドレスをVPNクライアントに配布する。その後、代表VPNサーバ1501は、ユーザ、VPN管理処理を行った後、クライアントA102 を収容するVPNサーバ1502に、VPN転送処理時に必要なマルチキャストアドレス管理テーブル508と、ユニキャストグループ管理テーブル507とを配布する。
【００４６】
本実施例では、代表VPNサーバ1501から各VPNサーバ1502、1503にユニキャストグループ管理テーブルを配布する際に、各VPNサーバが収容するVPNクライアント以外のユニキャストアドレスは、各VPNクライアントを収容するVPNサーバのユニキャストアドレスに変更する。図１９に本実施例で代表VPNサーバ1501からVPNサーバB1502に配布されるユニキャストグループ管理テーブルの概念図を示す。VPNクライアントA102、B103はVPNサーバA1502に収容されているので、各VPNクライアントのユニキャストアドレスの代わりに、サーバAのアドレス3ffe::1000:aを設定する。
【００４７】
マルチキャストアドレス管理テーブル508とユニキャストグループ管理テーブル507は、VPNクライアント接続時に変更された差分のみを配布してもよい。以後、VPNサーバA1502、B1503がVPNクライアントA102、B103、C104からのL2データを転送する処理は第１実施例と同様である。
【００４８】
以上の実施例５で示す構成により、各VPNサーバは他のVPNサーバが収容するVPNクライアント宛てのパケットは直接転送せずに、宛先VPNクライアントを収容するVPNサーバを介して転送することができ、他のVPNサーバが収容するVPNクライアントのアドレスを管理する必要がなくなる。
【図面の簡単な説明】
【００４９】
【図１】本発明が実施される様子を示したシーケンス図。
【図２】本発明が実施されるネットワークを示した概念図。
【図３−１】本発明で用いられるVPNクライアントの内部構成を示した概念図。
【図３−２】本発明で用いられるVPNクライアントの内部処理を示した概念図。
【図４−１】VPN情報管理テーブルを示した概念図。
【図４−２】外部LAN MAC管理テーブルを示した概念図。
【図５−１】本発明で用いられるVPNサーバの内部構成を示した概念図。
【図５−２】本発明で用いられるVPNサーバの内部処理を示した概念図。
【図６−１】ユーザVPNグループ管理テーブルを示した概念図。
【図６−２】ユニキャストグループ管理テーブルを示した概念図。
【図６−３】マルチキャストアドレス管理テーブルを示した概念図。
【図６−４】MAC IP対応管理テーブルを示した概念図。
【図７−１】VPNサーバのユーザ、VPN管理処理を示すフローチャート。
【図７−２】VPNサーバのVPN転送処理を示すフローチャート。
【図８−１】VPNクライアントのVPN転送送信処理を示すフローチャート。
【図８−２】VPNクライアントのVPN転送受信処理を示すフローチャート。
【図９】VPNヘッダを示す概念図。
【図１０】回線を流れるデータ構成を示す概念図。
【図１１】L2VPNを構成するクライアントが任意に変更される様子を示したシーケンス図。
【図１２−１】マルチキャストアドレス管理テーブルを示した概念図。
【図１２−２】VPN Sub ID管理テーブルを示した概念図。
【図１３】本発明がマルチキャストネットワーク上で実施される様子を示した概念図。
【図１４】本発明がマルチキャストネットワーク上で実施される様子を示したシーケンス図。
【図１５】複数のVPNサーバを利用して本発明が実施されるネットワークを示した概念図。
【図１６】複数のVPNサーバを利用して本発明が実施される様子を示したシーケンス図。
【図１７】複数のVPNサーバを経由して本発明が実施されるネットワークを示した概念図。
【図１８】複数のVPNサーバを経由して本発明が実施される様子を示したシーケンス図。
【図１９】複数のVPNサーバを経由して本発明が実施する際に用いられるユニキャストグループ管理テーブルを示した概念図。
【符号の説明】
【００５０】
101…VPNサーバ、102…VPNクライアントA、103…VPNクライアントB、104…VPNクライアントC、105…VPNクライアントAが接続するLAN、106…VPNクライアントBが接続するLAN、107…VPNクライアントCが接続するLAN、108…端末(1)、109…端末(2)、110…端末(3)、111…インタネット、301…CPU、302…メモリ、303…バス、304…インタフェース、305…インタフェース、308…セキュリティアソシエーション管理テーブル、309…VPM情報管理テーブル、310…認証情報管理テーブル、311…外部LAN MACアドレス管理テーブル。312…IPsec処理、313…VPN確立処理、314…VPN転送処理…314、 501…CPU、502…メモリ、503…バス、304…インタフェース、506…ユーザVPNグループ管理テーブル、507…ユニキャストグループ管理テーブル、508…マルチキャストアドレス管理テーブル、509…MAC IP対応管理テーブル、510…IPsec処理、511…ユーザ，VPN管理処理、512…VPN転送処理、901…VPNヘッダ、902…次データフィールド、903…宛先MACアドレスフィールド、904…送信元MACアドレスフィールド、1001…UDPペイロード部、1002…IPパケット、1201…Sub IDフィールド、1301…マルチキャストルータ、1302…マルチキャストネットワーク、1501…代表VPNサーバ、1502…VPNサーバA、1503…VPNサーバB。
【図１】
2006101051.tif 000003
【図２】
2006101051.tif 000004
【図３−１】
2006101051.tif 000005
【図３−２】
2006101051.tif 000006
【図４−１】
2006101051.tif 000007
【図４−２】
2006101051.tif 000008
【図５−１】
2006101051.tif 000009
【図５−２】
2006101051.tif 000010
【図６−１】
2006101051.tif 000011
【図６−２】
2006101051.tif 000012
【図６−３】
2006101051.tif 000013
【図６−４】
2006101051.tif 000014
【図７−１】
2006101051.tif 000015
【図７−２】
2006101051.tif 000016
【図８−１】
2006101051.tif 000017
【図８−２】
2006101051.tif 000018
【図９】
2006101051.tif 000019
【図１０】
2006101051.tif 000020
【図１１】
2006101051.tif 000021
【図１２−１】
2006101051.tif 000022
【図１２−２】
2006101051.tif 000023
【図１３】
2006101051.tif 000024
【図１４】
2006101051.tif 000025
【図１５】
2006101051.tif 000026
【図１６】
2006101051.tif 000027
【図１７】
2006101051.tif 000028
【図１８】
2006101051.tif 000029
【図１９】
2006101051.tif 000030