(57)【要約】【課題】ユーザ網１３０に動的なネットワーク接続を提供するＢＡＳ（Broadband Access Server）と、複数の負荷分散対象装置１１１のうちの一つへユーザ網１３０の通信トラフィックを中継するロードバランサとを一体化し、任意の負荷分散アルゴリズムが適用可能なＢＡＳ兼ロードバランサを提供する。【解決手段】本発明のＢＡＳ兼ロードバランサ１００は、ユーザ網１３０との間の動的な接続を確立した際に、そのユーザ網１３０の送信・受信双方の通信トラフィックについて、中継先となる負荷分散対象装置１１１を任意の負荷分散アルゴリズムを用いて決定する。【選択図】図１
2006245841.tif 000002
【特許請求の範囲】
【請求項１】
パケットに対して処理を行う複数の負荷分散装置と接続され、さらにネットワークを介して第一及び第二の通信装置とも接続され、メモリとＣＰＵを有するパケット転送装置であって、
上記第一の通信装置から受信した上記第二の通信装置宛てのパケットを上記複数の負荷分散装置のうちの一の負荷分散装置に送信し、さらに該一の負荷分散装置で処理された該パケットを上記第二の通信装置に送信するインターフェースを有し、
上記ＣＰＵは、上記第一の通信装置から、該第一の通信装置のユーザを特定する情報を含むパケットを受信した際に、該ユーザを特定する情報に基づいて、上記第一の通信装置から受信するパケットを送信する上記一の負荷分散装置を決定することを特徴とするパケット転送装置。
【請求項２】
請求項１記載のパケット転送装置であって、
上記メモリには、上記第一の通信装置のユーザを特定する情報と、上記一の負荷分散装置を特定する情報との対応情報が記憶されていることを特徴とするパケット転送装置。
【請求項３】
請求項１記載のパケット転送装置であって、
上記ユーザを特定する情報は、上記第一の端末装置と該パケット転送装置との接続を識別する情報であることを特徴とするパケット転送装置。
【請求項４】
請求項３記載のパケット転送装置であって、
上記第一の端末と該パケット転送装置との接続を識別する情報は、セッション識別子であることを特徴とするパケット転送装置。
【請求項５】
請求項１記載のパケット転送装置であって、
上記ユーザを特定する情報は、上記第一の端末装置のIPアドレスであることを特徴とするパケット転送装置。
【請求項６】
請求項１記載のパケット転送装置であって、
上記メモリには、上記第一の通信装置のIPアドレスと上記一の負荷分散装置を特定する情報との対応情報が記憶されており、
上記ＣＰＵは、上記第二の通信装置から上記第一の通信装置宛てのパケットを受信した際には、上記第一の通信装置宛てのパケットの宛先IPアドレスと上記対応情報に基づいて、上記第一の通信装置宛てのパケットを上記一の負荷分散装置に送信することを決定することを特徴とするパケット転送装置。
【請求項７】
請求項１記載のパケット転送装置であって、
上記ＣＰＵは、上記第一の通信装置のユーザを特定する情報を含むパケットを受信した際に、特定のアルゴリズムに従って上記第一の通信装置から受信するパケットを処理すべき上記一の負荷分散装置を決定することを特徴とするパケット転送装置。
【請求項８】
請求項１記載のパケット転送装置であって、
第一及び第二の仮想通信装置を有し、
上記第一の仮想通信装置は、上記第一の通信装置から上記第二の通信装置宛てのパケットを受信して、該パケットを上記一の負荷分散装置に送信し、
上記第二の仮想通信装置は、上記一の負荷分散装置から上記パケットを受信して、該パケットを上記第二の通信装置に送信することを特徴とするパケット転送装置。
【請求項９】
請求項８記載のパケット転送装置であって、
上記第二の仮想通信装置は、上記第二の通信装置から上記第一の通信装置宛てのパケットを受信し、該パケットを上記一の負荷分散装置に送信し、
上記第一の仮想通信装置は、上記一の負荷分散装置から上記パケットを受信し、該パケットを上記第一の通信装置に送信することを特徴とするパケット転送装置。
【請求項１０】
請求項８記載のパケット転送装置であって、
上記第一及び第二の仮想通信装置の組を複数有することを特徴とするパケット転送装置。
【請求項１１】
請求項１記載のパケット転送装置であって、
さらに認証装置に接続され、
上記インターフェースは、上記第一通信装置からパケットを受信した際に、上記第一の通信装置に関する認証情報を上記認証装置に送信し、かつ上記認証装置から、上記第一の通信装置のユーザを特定する情報を受信することを特徴とするパケット転送装置。
【請求項１２】
請求項１記載のパケット転送装置であって、
上記ＣＰＵは、上記第一の通信装置のユーザを特定する情報と、該ユーザのサービスレベルを特定する情報に基づいて、上記第一の通信装置から受信するパケットを送信する上記一の負荷分散装置を決定し、
上記メモリには、上記ユーザを特定する情報と、上記決定された一の負荷分散装置を特定する情報との対応情報が記憶されており、
上記インターフェースは、上記対応情報に基づいて、上記第一の通信装置から受信したパケットを上記一の負荷分散装置に送信することを特徴とするパケット転送装置。
【請求項１３】
請求項１２記載のパケット転送装置であって、
上記ユーザのサービスレベルを特定する情報は、上記第一の通信装置から受信して取得することを特徴とするパケット転送装置。
【請求項１４】
請求項１２記載のパケット転送装置であって、
さらに認証装置に接続されており、
上記ユーザのサービスレベルを特定する情報を、上記認証装置から受信して取得することを特徴とするパケット転送装置。
【請求項１５】
請求項１４記載のパケット転送装置であって、
上記認証装置との間の通信プロトコルとして、ＲＡＤＩＵＳ（Remote Authentication Dial-In User Service）を用いることを特徴とするパケット転送装置。
【請求項１６】
請求項１記載のパケット転送装置であって、
上記第一の通信装置との通信プロトコルとしてＰＰＰ（point-to-Point Protocol）を用いることを特徴とするパケット転送装置。
【請求項１７】
請求項１記載のパケット転送装置であって、
上記第一の通信装置との接続プロトコルとしてＤＨＣＰ（Dynamic Host Configuration Protocol）を用いることを特徴とするパケット転送装置。
【請求項１８】
請求項１１記載のパケット転送装置であって、
上記認証装置との間の通信プロトコルとして、ＲＡＤＩＵＳ（Remote Authentication Dial-In User Service）を用いることを特徴とするパケット転送装置。
【請求項１９】
請求項１記載のパケット転送装置であって、
上記複数の負荷分散装置を、自装置内に有することを特徴とするパケット転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルータ装置、特にアクセス網に設置されるルータ装置において、その内部に通信トラフィックの負荷分散中継機能を備える方法、および負荷分散中継機能を備えたルータ装置に関する。
【背景技術】
【０００２】
ネットワークでは、あるホストとホストとの間で通信が行われると、それらの末端ホスト（サーバやクライアント端末等）や、それらの中間に位置する通信中継装置（ルータやファイアウォール等）において、様々な処理が行われる。これらの各処理の負荷は、処理対象とするトラフィックの総量や、処理内容の複雑さによって、それぞれ異なる。このため、いくつかの処理が高負荷となり、これがボトルネックとなって末端ホスト間の通信性能に影響が出る場合がある。これを回避もしくは緩和する既存技術として、同一処理を提供する装置を複数用意し、通信トラフィックをそれらの装置に振り分ける、負荷分散中継技術が挙げられる。
負荷分散中継技術は、その用途により、末端ホスト（主にサーバ）向け負荷分散と、通信中継装置（ファイアウォール等）向け負荷分散の二つに分けることができる。前者の末端ホスト向け負荷分散を行う方法には、ロードバランサ（負荷分散中継装置）を用いる方法と、ＤＮＳ（Domain Name System）サーバを用いる方法の二つがある。後者の通信中継装置向け負荷分散を行う方法には、末端ホスト向けと同様にロードバランサを用いる方法と、負荷分散対象の処理を行う装置自体が持つ自律負荷分散機能を用いる方法の二つがある。
このロードバランサは、あるインターフェースからトラフィックが届いた際に、所定のアルゴリズムを用いて負荷分散対象処理を行う複数の装置の中から一つを選び、その装置へトラフィックを中継する機能を持つ。この所定のアルゴリズム（負荷分散アルゴリズム）には、送信元ＩＰ（Internet Protocol）アドレスや宛先ＩＰアドレス等のヘッダ情報を元にハッシュ値を計算して中継先装置を決める方法、ラウンドロビンアルゴリズムで順番に中継先装置を決める方法、負荷が最も軽い（または現在割り当てられているホスト数やフロー数が最も少ない）負荷分散対象装置を中継先装置とする方法等がある。
【０００３】
ロードバランサを用いた末端ホスト向けの負荷分散では、負荷分散対象装置（この場合はサーバ等の末端ホスト）は通信トラフィックの末端に位置する。このため、ロードバランサは、負荷分散対象装置（主にサーバ）と、それらとの間で通信を行う末端ホスト（主にクライアント端末）との間の経路上にのみ置かれる。そして、後者の末端ホストから負荷分散対象装置へ向かう通信トラフィックのみを負荷分散中継処理の対象とする。一方、負荷分散対象装置から後者の末端ホストへ向かう通信トラフィックについては、単に後者の末端ホストへ向かうインターフェースへ中継するだけである。このため、ロードバランサで用いる負荷分散アルゴリズムには、ハッシュ、ラウンドロビン、負荷分散対象装置の負荷、割当フロー数等の、様々なアルゴリズムを用いることができる。
また、末端ホスト向けの負荷分散における負荷分散対象装置では、一般的に特定のアプリケーションのサーバソフトウェアが動作している。このアプリケーションがユーザ認証を伴うものであれば、負荷分散対象装置は通信トラフィックとクライアント側ユーザ情報の対応付けを把握していることになる。加えて、負荷分散対象装置とロードバランサは、同一の管理者によって管理・運用されているのが一般的である。このため特殊なロードバランサを用いてユーザ毎に異なるサービスを提供することも可能である（例えば特許文献１参照）。この特許文献１は、ＳＳＬ（Secure Socket Layer）セッション識別子に対応する優先度をサーバが決め、その対応づけをロードバランサへ伝達することによって、ユーザ毎に異なるサービスを提供することが可能なロードバランサについて述べている。
【０００４】
一方、ロードバランサを用いた通信中継装置向けの負荷分散の場合、負荷分散対象装置（この場合はファイアウォール等の通信中継装置）は通信トラフィックの末端ではなく中間に位置するため、負荷分散対象装置の両側にロードバランサを配置する。そして、一方のネットワーク（例えば企業内ネットワーク）からそのネットワークに近い側のロードバランサに届いた通信トラフィックは、そのロードバランサによって複数の負荷分散対象装置のうちの一つへ中継され、その負荷分散対象装置と他方のロードバランサを通って、他方のネットワーク（例えばインターネット）へ中継される。逆方向のトラフィックについても同様である。
この場合の負荷分散対象装置（ファイアウォール等）の多くは、その装置における処理を正しく行うために、同一の末端ホスト間の通信を行き、帰りともに同一の負荷分散対象装置へ通すことを必要とする。このため、負荷分散対象装置の両側のロードバランサは、次の二つのうちのいずれかの手法を用いて、行きと帰りの通信トラフィックを同一の負荷分散対象装置へ中継する。（１）宛先ＩＰアドレスと送信元ＩＰアドレスの組合せが同じならば必ず同じ中継先装置を自律的かつ一意に決定できる、ハッシュ等の負荷分散アルゴリズムを用いる。（２）一方のロードバランサは、他方のロードバランサが負荷分散中継したパケットを観察し、その送信元・宛先ＩＰアドレスの組合せと通過してきた負荷分散対象装置を記憶し、逆方向のパケットが来たらその情報に基づいて中継先装置を決める。
また、負荷分散対象装置の自律負荷分散機能を用いた通信中継装置向け負荷分散の場合、負荷分散対象装置全てが通信トラフィックを受信し、そのトラフィックを自ら処理すべきかどうかを判断する。そして、自ら処理すべきと判断した装置のみがそのトラフィックを処理・中継し、他の装置はそのトラフィックを破棄する。自ら処理すべきかどうかの判断は各装置が自律的に行うため、ロードバランサを用いた場合の（１）と同様に、負荷分散アルゴリズムは自律的に計算を行っても必ず一意な結果を得られるもの（ハッシュ等）に限定される。
さらに、通信中継装置向けの負荷分散では、ロードバランサや負荷分散対象装置は通信トラフィックの中間地点に位置する。一般的に、このような通信の中間地点では、通信トラフィックと末端ホストのユーザとを対応付けるための情報はＩＰアドレスしか得られない。このため、ＩＰアドレスがユーザホストに固定的に割り当てられており、かつ、ロードバランサの管理者がその割当を知っている場合を除いて、ユーザ毎に異なるサービスを提供する処理をロードバランサで行うことは不可能である。
【０００５】
一方、ＩＳＰ（Internet Service Provider）は、ユーザホストからのインターネット接続要求を受け付け、ユーザ認証を行い、接続を提供するために、ＢＡＳ（Broadband Access Server）という装置を用いる。ＢＡＳは一般的に、ＩＳＰ（またはユーザとＩＳＰとの間の回線をＩＳＰへ提供するアクセス回線業者）が有するレイヤ３パケット中継装置（ルータ）の中で、ユーザに最も近い位置にある。また、ＢＡＳは、ＰＰＰ（Point to Point Protocol）やＶＬＡＮ（Virtual Local Area Network）等によるユーザ毎のレイヤ２セッションや、ＰＰＰやＤＨＣＰ（Dynamic Host Configuration Protocol）等を用いてユーザに動的に割り当てたＩＰアドレスと、そのユーザに関する情報（ユーザ識別子等）との対応づけを持つ。
つまり、ＢＡＳはユーザホストとインターネット上にあるサーバとの中間地点に位置する装置であるにもかかわらず、通信トラフィックとユーザ情報との対応付けが可能な装置である。このため、ＢＡＳを用いることによって、ユーザ毎に異なるレベルのサービス（例えばファイアウォール等によるセキュリティサービス）をＩＳＰ等がユーザへ提供することも考えられる。
なお、本明細書において「レイヤ２」とは、ＯＳＩ（Open Systems Interconnection）参照モデルのデータリンク層を指す。「レイヤ３」とは、ＯＳＩ参照モデルのネットワーク層を指す。本発明では、レイヤ３のプロトコルにＩＰ（ＩＰｖ４またはＩＰｖ６）を用いることを想定する。
【０００６】
【特許文献１】特開２００３−１５２７８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ＢＡＳとファイアウォール等のセキュリティ装置を用いてセキュリティサービスをユーザへ提供しようとすると、ＢＡＳとセキュリティ装置との間のパケット中継性能の格差が問題となる。例えば、ＢＡＳの中継性能は現時点で低性能な機種でも１ギガビット／秒はある一方、パケットのＴＣＰ（Transmission Control Protocol）・ＵＤＰ（User Datagram Protocol）ペイロードまで検査するタイプの高機能ファイアウォールは、高性能な機種でも５００メガビット／秒程度が上限である。しかも今後は、ネットワークの転送性能向上、末端ホストの処理性能向上、攻撃手法の高度化等の要因により、ＢＡＳやルータといった高度なセキュリティ機能を提供しない通信中継装置は中継性能が向上する一方、ファイアウォール等のセキュリティ装置は更に高機能化が進むと予想される。このため、ＢＡＳやルータとセキュリティ装置との間の中継性能格差は今後さらに開いていく可能性がある。このような条件の下で、ＢＡＳが収容した大部分のユーザにセキュリティサービスを提供できる程度のセキュリティ処理性能を得るには、セキュリティ装置の負荷分散が有効である。
しかし、従来技術を用いた負荷分散では、ロードバランサをＢＡＳや負荷分散対象装置（セキュリティ装置等）と別に設けるか、もしくは負荷分散対象装置が自律負荷分散機能を持つ必要がある。前者の方法では、ロードバランサを追加導入することによる金銭コストの上昇やパケット転送性能低下が生じる可能性がある。加えて、先述の（１）の場合には、負荷分散アルゴリズムがハッシュ等に制限されるため、管理者の望む負荷分散性能が得られない可能性がある。先述の（２）の場合には、一方のロードバランサを通過したパケットを他方のロードバランサが監視する必要があるため、さらなるパケット転送性能低下が起こる可能性がある。また、後者の自律負荷分散機能による方法では、この機能を持つ負荷分散対象装置が高価となる可能性があることに加え、前者の（１）の場合と同様に、負荷分散アルゴリズムが制限されてしまう。
また、ＢＡＳが収容するユーザホストには一般的に動的にＩＰアドレスが割り当てられる。しかも、通常のロードバランサや自律負荷分散機能付き負荷分散対象装置には、他のサーバ等からユーザ情報を動的に得る手段も備わっていない。このため、これらの装置がユーザ情報に基づいて振分先を決めて、ユーザ毎に異なるサービスを提供することはできない。
【０００８】
本発明は、ＢＡＳの位置でファイアウォール等の通信中継装置の負荷分散を行う場合に、低コストかつ高転送性能で、かつ、任意の負荷分散アルゴリズムを用いた負荷分散が可能な負荷分散中継方法、およびそれに対応したＢＡＳ兼ロードバランサを提供することを目的とする。また、これに加えて、ＢＡＳがユーザホストにレイヤ２セッションやＩＰアドレスを動的に割り当てる環境において、ユーザ毎に異なる負荷分散中継処理を適用することが可能な負荷分散中継方法、およびそれに対応したＢＡＳ兼ロードバランサを提供することも目的とする。
【課題を解決するための手段】
【０００９】
本発明では、負荷分散対象装置の両側に位置するロードバランサ機能を、ＢＡＳと同一の装置に収める。そして、ユーザホストのレイヤ２セッション確立時もしくはユーザホストへのＩＰアドレス割当時に、そのユーザホストからＩＳＰやインターネットへ向かうトラフィック、ＩＳＰやインターネットからそのユーザホストへ向かうトラフィックの両方向について、任意の負荷分散アルゴリズムを用いて中継先の負荷分散対象装置を同時に決定する。この中継先情報は、ユーザホストから届く通信トラフィックについては、ユーザホストのレイヤ２セッション識別子もしくはＩＰアドレス（ＩＰアドレスプレフィックスでも可）と、中継先のインターフェース識別子またはＩＰアドレス（レイヤ２アドレスでも可）との対応付けである。ＩＳＰから届く通信トラフィックについては、ユーザホストのＩＰアドレス（ＩＰアドレスプレフィックスでも可）と、中継先のインターフェース識別子またはＩＰアドレス（レイヤ２アドレスでも可）との対応付けである。
【００１０】
この本発明のＢＡＳ兼ロードバランサは、ユーザホストからＩＳＰやインターネットへ向かうパケットを中継するときは、パケットが届いたレイヤ２セッション識別子もしくはパケットの送信元ＩＰアドレスと、先述の中継先情報を用いて、中継先の負荷分散対象装置を決定する。そして、その負荷分散対象装置へパケットを中継する。ＩＳＰからユーザホストへ向かうパケットを中継するときは、届いたパケットの宛先ＩＰアドレスと、先述の中継先情報を用いて、中継先の負荷分散対象装置を決定する。そして、その負荷分散対象装置へパケットを中継する。以上の処理により、本発明のＢＡＳ兼ロードバランサは、ユーザホストやＩＳＰから届いたパケットを、負荷分散対象装置へ中継する。なお、負荷分散対象装置から届いたパケットについては、本発明のＢＡＳ兼ロードバランサは通常のＢＡＳと同様に中継する。
【００１１】
また、本発明では、ユーザ毎に異なる負荷分散処理を適用可能にするために、ユーザおよび負荷分散対象装置にサービスレベル識別子を対応付ける。本発明のＢＡＳ兼ロードバランサは、ユーザ認証を行う際に、外部の認証サーバもしくは内部設定等から、そのユーザに対応するサービスレベル識別子を得る。そして、このサービスレベル識別子と、負荷分散対象装置毎に予め割り当てたサービスレベル識別子とを照合し、一致するもののみを中継先候補とする。これらの中継先候補の中から、任意の負荷分散アルゴリズムを用いて、中継先の負荷分散対象装置を決定する。以上の処理により、ユーザホストの通信トラフィックは、そのユーザのサービスレベルと一致するレベルの負荷分散対象装置のみを通るようになる。そして、ユーザと同一サービスレベルの負荷分散対象装置が複数あれば、それらの中から任意の負荷分散アルゴリズムを用いて、中継先装置を一つ選ぶことができる。  
【発明の効果】
【００１２】
このように、本発明ではユーザホストのレイヤ２セッション確立時もしくはＩＰアドレス割当時に、そのユーザと負荷分散対象装置との対応付けを、行き・帰り両方向のトラフィックについて同時に一括して決定する。このため、負荷分散アルゴリズムに任意のアルゴリズムを用いることができ、管理者が望む負荷分散性能を得やすい。
また、本発明ではＢＡＳとロードバランサを一体にし、ユーザホストからの通信トラフィックを負荷分散対象装置へ中継する際には、そのユーザホストのレイヤ２セッション識別子を中継先決定のために用いる。このため、ＢＡＳとロードバランサを別々に用意する場合と比べると、装置自体のコストや装置管理コストの点で有利なだけでなく、良好なパケット転送性能も期待できる。しかも、負荷分散対象装置には自律負荷分散機能のような特殊な機能が不要である。
【００１３】
さらに、本発明では、ユーザ情報と負荷分散対象装置の双方にサービスレベル識別子を割り当て、ユーザ情報とサービスレベル識別子が一致する負荷分散対象装置のみに負荷分散中継先の選択肢を限定する。これにより、たとえユーザホストに割り当てられたレイヤ２セッション識別子やＩＰアドレスが動的に変化する場合でも、ユーザ毎に異なるサービスレベルの提供と、負荷分散中継処理の両立が可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を用いて本発明の実施例について説明する。
【実施例１】
【００１５】
図１は、実施例１のネットワーク構成、および、本実施例における本発明の通信装置の仮想的な内部構成を表す図である。
本実施例では、本発明のＢＡＳ兼ロードバランサ１００はユーザ網１３０とＩＳＰ網１２０との間に置かれる。なお、本実施例ではユーザにインターネットへの接続サービスを提供することを想定しているため、ＩＳＰ網１２０はインターネット１４０と接続されている。しかし、本発明を実施するにあたっては、ユーザへ提供するネットワーク接続サービスは必ずしもインターネットへの接続サービスでなくとも良い。例えば、ＶＰＮ（Virtual Private Network）と呼ばれる、複数のユーザ網間を相互に接続する仮想的な閉域網を提供するサービスであっても良い。
本発明のＢＡＳ兼ロードバランサ１００は、ＩＳＰ網エッジルータ１２１と論理的もしくは物理的な回線によって接続されている。なお、本実施例では、本発明のＢＡＳ兼ロードバランサ１００はＩＳＰ網１２０とは異なるアクセス回線業者が所有する網に置かれ、ＩＳＰ網エッジルータ１２１はＩＳＰ網１２０の内部に置かれる場合を想定している。しかし、本発明は、アクセス回線業者とＩＳＰとの間の組織的な境界の位置に関係なく実施可能である。すなわち、ＩＳＰ網エッジルータ１２１はＩＳＰ網１２０の外に置かれていても良いし、逆に、本発明のＢＡＳ兼ロードバランサ１００とＩＳＰ網エッジルータ１２１の両方がＩＳＰ網１２０の内部に置かれていても良い。
【００１６】
本発明のＢＡＳ兼ロードバランサ１００は、ユーザ網１３０それぞれの中に置かれたホームルータ１３２もしくはユーザホスト１３３からのネットワーク接続要求を受け、それらのホームルータ１３２もしくはユーザホスト１３３との間でネットワーク接続確立処理を行う。このネットワーク接続確立処理が完了すると、ユーザホスト１３３や、ホームルータ１３２が存在するユーザ網の内部に置かれているユーザホスト１３１は、ネットワーク接続サービス（本実施例では、ＩＳＰが提供するインターネット接続サービス）を受けることが可能になる。
このネットワーク接続確立処理は、本発明のＢＡＳ兼ロードバランサ１００とホームルータ１３２もしくはユーザホスト１３３との間のレイヤ２セッション（論理的なレイヤ２回線）の動的確立と、ホームルータ１３２もしくはユーザホスト１３３へのＩＰアドレスの動的割当の、２つの処理の一方あるいは両方で構成される。例えば、本発明のＢＡＳ兼ロードバランサ１００とホームルータ１３２もしくはユーザホスト１３３とを接続するレイヤ２セッションにＰＰＰ（Point-to-Point Protocol）を用いる場合は、レイヤ２セッションの動的確立とＩＰアドレスの動的割当の両方を行うのが一般的である。
【００１７】
また、本発明のＢＡＳ兼ロードバランサ１００は、一般的には、ユーザにネットワーク接続を提供すべきかどうかを判断するために、ユーザ認証処理を行う。具体的には、ホームルータ１３２もしくはユーザホスト１３３からのネットワーク接続要求を受けた際に、そのユーザの認証処理を行う。その認証処理の結果、接続を認可すべきユーザであることが判明した場合に限り、ネットワーク接続確立処理を行う。本明細書の実施例１および実施例２においては、必ずしもこのユーザ認証処理を行わなくても良い。後述するように、本明細書の実施例３においては、このユーザ認証処理を行うことが前提となる。
【００１８】
ユーザ認証処理を行う場合、一般的には、認証サーバ１２２がユーザ認証処理を行うためのユーザ情報を保持する。本発明のＢＡＳ兼ロードバランサ１００は、ユーザ認証処理を行う際に、ホームルータ１３２もしくはユーザホスト１３３から受信したユーザ認証情報（ユーザ名やパスワード等）を、この認証サーバ１２２へ送信する。そして、認証サーバはそのユーザにネットワーク接続を提供してよいかどうかの認可情報と、必要ならばそのユーザに関する付加情報を返信する。本発明のＢＡＳ兼ロードバランサ１００は、そのユーザにネットワーク接続を提供すべきとの認可情報が返信された場合に限り、ネットワーク接続確立処理を行う。
なお、本発明のＢＡＳ兼ロードバランサ１００と認証サーバ１２２との間の認証・認可情報や付加情報の送受信には、一般的に用いられている認証プロトコルであるＲＡＤＩＵＳ（Remote Authentication Dial-In User Service）を適用可能である。しかし、本発明は認証プロトコルの種類に関わらず実施可能である。また、本実施例では認証サーバ１２２がＩＳＰ網１２０内に置かれる場合を想定している。しかし、本発明を実施するに当たっては、認証サーバ１２２は本発明のＢＡＳ兼ロードバランサ１００と通信可能な場所であればどこに置かれても良く、本発明のＢＡＳ兼ロードバランサ１００に認証サーバ１２２に相当する機能を内蔵してもかまわない。
【００１９】
本実施例における本発明のＢＡＳ兼ロードバランサ１００の中には、仮想ＢＡＳ兼ロードバランサ１０１と、仮想ロードバランサ１０２の、合わせて二つの仮想ルータが存在する。本発明のＢＡＳ兼ロードバランサ１００の外部から見える動作（ネットワーク構成、パケット入出力、管理者による設定）に関しては、それぞれの仮想ルータは独立したルータ装置と同様に動作する。ただし、後述するように、装置の内部処理アーキテクチャに関しては、それぞれの仮想ルータは必ずしも独立した構成である必要はない。なお、以降では、仮想ルータをＶＲ（Virtual Router）、仮想ＢＡＳ兼ロードバランサをＶ−ＢＡＳ（Virtual BAS）、仮想ロードバランサをＶ−ＬＢ（Virtual Load Balancer）と称する。
【００２０】
ネットワーク構成上では、Ｖ−ＢＡＳ１０１は、本発明のＢＡＳ兼ロードバランサ１００の中でユーザ網１３０に近い側に位置する。一方、Ｖ−ＬＢ１０２は、本発明のＢＡＳ兼ロードバランサ１００の中でＩＳＰ網１２０に近い側に位置する。Ｖ−ＢＡＳ１０１とＶ−ＬＢ１０２は、本発明のＢＡＳ兼ロードバランサ１００の内部に設けられた仮想回線によって相互に接続されている。この仮想回線についても、後述するように、装置の内部処理アーキテクチャにおいて実際に回線が設けられている必要はない。
Ｖ−ＢＡＳ１０１はユーザからのネットワーク接続要求を受け、必要ならばユーザ認証処理を行い、ネットワーク接続確立処理を行う。ネットワーク接続が確立されると、そのユーザのホームルータ１３２もしくはユーザホスト１３３にはＩＰアドレスが割り振られ、それらの装置とＶ−ＢＡＳ１０１とは、物理的または論理的な回線で接続された状態となる。
また、Ｖ−ＢＡＳ１０１は、複数の負荷分散対象装置１１１と、１つ以上の物理的または論理的な回線で接続される。本実施例において、Ｖ−ＢＡＳ１０１は、ユーザ網１３０から届いた、ＩＳＰ網１２０もしくはインターネット１４０宛のパケットを、複数の負荷分散対象装置１１１のうちの一つへ中継する。なお、本発明を実施するにあたっては、実施例３で述べるように、ユーザ網１３０から届いたパケットを、複数の負荷分散対象装置１１１のうちの一つ、もしくはＶ−ＬＢ１０２と接続された仮想回線のいずれかへ中継してもよい。Ｖ−ＢＡＳ１０１は、複数の負荷分散対象装置１１１のうちの一つ、もしくはＶ−ＬＢ１０２と接続された仮想回線のいずれかから受信した、ユーザ網１３０を宛先とするパケットを、宛先となっているユーザ網１３０へ中継する。
【００２１】
Ｖ−ＬＢ１０２は、複数の負荷分散対象装置１１１と、１つ以上の物理的または論理的な回線で接続される。本実施例において、Ｖ−ＬＢ１０２は、ＩＳＰ網エッジルータ１２１から届いた、ユーザ網１３０を宛先とするパケットを、複数の負荷分散対象装置１１１のうちの一つへ中継する。なお、本発明を実施するにあたっては、実施例３で述べるように、ユーザ網１３０から届いたパケットを、複数の負荷分散対象装置１１１のうちの一つ、もしくはＶ−ＢＡＳ１０１と接続された仮想回線のいずれかへ中継してもよい。Ｖ−ＬＢ１０２は、複数の負荷分散対象装置１１１のうちの一つ、もしくはＶ−ＢＡＳ１０１と接続された仮想回線のいずれかから受信した、ＩＳＰ網１２０もしくはインターネット１４０宛のパケットを、ＩＳＰ網エッジルータ１２１へ中継する。
Ｖ−ＢＡＳ１０１、Ｖ−ＬＢ１０２はそれぞれが特殊なルータとして機能するため、それぞれが持つ回線インターフェースには、一般的なルータやＢＡＳと同様にＩＰアドレスが割り当てられる。これは、ＩＳＰ網エッジルータ１２１が接続される回線インターフェースはもちろん、ユーザ網１３０や負荷分散対象装置１１１が接続される回線インターフェースについても、Ｖ−ＢＡＳ１０１とＶ−ＬＢ１０２とを相互接続する仮想回線のインターフェースについても同様である。
ユーザ網１３０との間のレイヤ２セッションが設けられる回線インターフェースについては、複数のレイヤ２セッションに対して一つのＩＰアドレスがＶ−ＢＡＳ側に割り当てられるのが一般的であるが、本発明はその場合でも、そうでない場合（一つのレイヤ２セッションに対して一つのＩＰアドレスをＶ−ＢＡＳ側に割り当てる場合）でも適用可能である。本実施例のＶ−ＢＡＳ１０１では、ユーザ網側が接続される複数のレイヤ２セッションに対して一つのＩＰアドレスを割り当てる。
【００２２】
また、本発明のＶ−ＢＡＳ１０１やＶ−ＬＢ１０２には、通常のルータと同様に、パケット転送が行われるにもかかわらずＩＰアドレスが割り当てられない回線インターフェース（unnumberedインターフェース）が存在してもよい。その場合、パケット転送先を示すために、ネクストホップＩＰアドレスの代わりにレイヤ２アドレスや回線インターフェース識別子を用いれば、本発明を適用可能である。本実施例では、Ｖ−ＢＡＳ１０１、Ｖ−ＬＢ１０２の双方とも、unnumberedインターフェースを持たないこととする。
【００２３】
本実施例では、負荷分散対象装置１１１の、Ｖ−ＢＡＳ１０１側回線インターフェースと、Ｖ−ＬＢ１０２側回線インターフェースに、それぞれ異なるＩＰアドレスを割り当てる。そして、負荷分散対象装置１１１は、一方の回線インターフェースにパケットが届いたら、適切な処理（ファイアウォール等の装置本来の処理）を施した後に、そのパケットを他方の回線インターフェースへレイヤ３（ＩＰレイヤ）で中継する。Ｖ−ＢＡＳ１０１およびＶ−ＬＢ１０２は、複数の負荷分散対象装置１１１を、それらの装置に割り当てたＩＰアドレスで識別する。Ｖ−ＢＡＳ１０１から負荷分散対象装置１１１へパケット転送を行う際には、その負荷分散対象装置１１１のＶ−ＢＡＳ１０１側回線インターフェースに割り当てたＩＰアドレスを、負荷分散中継先のネクストホップＩＰアドレスとして扱って転送する。Ｖ−ＬＢ１０２についても同様である。本実施例では、負荷分散中継先を一意に示すためにＩＰアドレスを用いるので、Ｖ−ＢＡＳ１０１やＶ−ＬＢ１０２の一つの回線インターフェースに、複数の負荷分散対象装置１１１が接続されていても良い。
【００２４】
なお、例えば透過型ファイアウォールのように、負荷分散対象装置１１１がパケットをレイヤ２で中継する装置の場合でも、本実施例における本発明のＢＡＳ兼ロードバランサ１００を用いて負荷分散中継が可能である。ただし、その場合は、負荷分散中継先を一意に示すために、Ｖ−ＢＡＳ１０１はＶ−ＬＢ１０２の回線インターフェースに割り当てたＩＰアドレスを用い、Ｖ−ＬＢ１０２はＶ−ＢＡＳ１０１の回線インターフェースに割り当てたＩＰアドレスを用いる。もしくは、実施例２と同様に、ネクストホップＩＰアドレスでなく回線インターフェース識別子を用いる。負荷分散対象装置１１１がレイヤ２中継を行う場合は、中継先の負荷分散対象装置１１１を一意に決定する方法にどちらを用いるとしても、Ｖ−ＢＡＳ１０１やＶ−ＬＢ１０２の一つの回線インターフェースに接続する負荷分散対象装置を一つのみとする必要がある。
【００２５】
以上のネットワーク構成において、本発明のＢＡＳ兼ロードバランサ１００は、本発明に特徴的な、次の動作を行う。
本発明のＢＡＳ兼ロードバランサ１００は、その内部にロードバランサ転送表２３４を持つ。このロードバランサ転送表２３４のエントリの生成は、ユーザ網１３０のホームルータ１３２もしくはユーザホスト１３３との間のネットワーク接続確立処理を契機として、Ｖ−ＢＡＳ１０１が行う。Ｖ−ＢＡＳ１０１は、ネットワーク接続確立処理を行った際に、そのユーザ網１３０とＩＳＰ網１２０との間で流れるパケットの負荷分散中継先となる負荷分散対象装置１１１を、任意の負荷分散アルゴリズムを用いて決定する。そして、その装置のＶ−ＢＡＳ１０１側回線インターフェースのＩＰアドレスを、Ｖ−ＢＡＳ１０１が用いる負荷分散中継先のネクストホップＩＰアドレスとする。同様に、その装置のＶ−ＬＢ１０２側回線インターフェースのＩＰアドレスを、Ｖ−ＬＢ１０２が用いる負荷分散中継先のネクストホップＩＰアドレスとする。本発明のＢＡＳ兼ロードバランサ１００内にロードバランサ転送表２３４を設けることにより、ユーザホストに割り当てたＩＰアドレスもしくはレイヤ２セッション識別子と、中継先の負荷分散対象装置１１１とを対応付けることができる。
そして、ユーザ網１３０とＶ−ＢＡＳ１０１との接続に用いられているレイヤ２セッションの識別子、Ｖ−ＢＡＳ１０１側のネクストホップＩＰアドレス、ユーザ網１３０に割り当てられたＩＰアドレス、Ｖ−ＬＢ１０２側のネクストホップＩＰアドレスの四項目を含むエントリを、ロードバランサ転送表２３４に追加する。なお、この四項目のうち、ユーザ網１３０とＶ−ＢＡＳ１０１との接続に用いられているレイヤ２セッションの識別子については、代わりにユーザ網１３０に割り当てられたＩＰアドレスを用いてもよい。また、ユーザ網１３０に割り当てられたＩＰアドレスの代わりに、ユーザ網１３０に割り当てられたＩＰアドレス空間を表すＩＰアドレスプレフィックスを用いてもよい。レイヤ２セッションの識別子の代わりにＩＰアドレス（もしくはＩＰアドレスプレフィックス）を用いることにより、ホームルータ１３２もしくはユーザホスト１３３との間で個別のレイヤ２セッション確立を行わずに、ＤＨＣＰ等を用いてＩＰアドレス（もしくはＩＰアドレスプレフィックス）の動的割当のみを行うネットワーク構成においても、本発明を適用可能である。
【００２６】
Ｖ−ＢＡＳ１０１は、ユーザ網１３０側からパケットを受信すると、受信したレイヤ２セッションと一致する（もしくは、パケットの送信元ＩＰアドレスとマッチする）エントリを、ロードバランサ転送表２３４の中から探す。そして、一致したエントリのＶ−ＢＡＳ１０１側ネクストホップＩＰアドレスへ、パケットを中継する。Ｖ−ＬＢ１０２は、ＩＳＰ網１２０側からパケットを受信すると、パケットの宛先ＩＰアドレスとマッチするエントリを、ロードバランサ転送表２３４の中から探す。そして、一致したエントリのＶ−ＬＢ１０２側ネクストホップＩＰアドレスへ、パケットを中継する。このようにＶ−ＢＡＳ１０１およびＶ−ＬＢ１０２が同一のロードバランサ転送表２３４を用いてパケットを転送することにより、任意の負荷分散アルゴリズムを用いながらも、行きと帰りの通信トラフィックを同一の負荷分散対象装置１１１へ中継することができる。
なお、ロードバランサ転送表２３４からのエントリの削除についても、ユーザ網１３０のホームルータ１３２もしくはユーザホスト１３３との間のネットワーク接続解除を契機として、Ｖ−ＢＡＳ１０１が行う。Ｖ−ＢＡＳ１０１は、ネットワーク接続解除処理を行った際に（もしくは、ネットワーク接続解除を検知した際に）、そのユーザ網１３０とＶ−ＢＡＳ１０１との接続に用いられていたレイヤ２セッションの識別子（もしくは、ユーザ網１３０に割り当てられていたＩＰアドレスまたはＩＰアドレスプレフィックス）が一致するエントリを、ロードバランサ転送表２３４から削除する。ネットワーク接続が解除されたユーザに対応するエントリをロードバランサ転送表２３４から削除することにより、エントリ数を最小限に保ち、ひいてはメモリ使用量の増大やパケット転送速度の低下を防止できる。
【００２７】
図２は、実施例１、実施例２、実施例３、および実施例４における本発明の通信装置の内部処理アーキテクチャを示す図である。
なお、本発明を実施するためには、必ずしも図２の内部処理アーキテクチャである必要はない。ユーザのネットワーク接続確立処理を契機として、そのユーザの通信トラフィックの負荷分散中継先を、ユーザ発、ユーザ宛の双方向のトラフィックについて決定するという、本発明の特徴を実現できればよい。
本実施例において、本発明のＢＡＳ兼ロードバランサ１００の内部ハードウェアは、制御処理部２０１、バックプレーン２０２、インターフェース部２０３で構成される。
【００２８】
本発明のＢＡＳ兼ロードバランサ１００の内部には、一つ以上のインターフェース部２０３が備わっている。インターフェース部２０３は、外部の通信装置（ホームルータ１３２、ユーザホスト１３３、負荷分散対象装置１１１、ＩＳＰ網エッジルータ１２１）と接続するための、論理的または物理的な回線インターフェースを持つ。それぞれの回線インターフェースは、本発明のＢＡＳ兼ロードバランサ１００の装置管理者が施した設定に従って、本発明のＢＡＳ兼ロードバランサ１００に存在するＶＲのうちのいずれか一つに所属する。
あるインターフェース部２０３に属する回線インターフェースが外部の通信装置からＩＰパケットを受信すると、そのインターフェース部２０３で動作しているパケット転送処理２８１は、そのパケットがその回線インターフェースが属するＶＲ自身を宛先としているかどうかを判断する。もし、ＶＲ自身を宛先としているならば、パケット転送処理２８１はバックプレーン２０２経由でそのパケットを制御処理部２０１へ転送する。
もしＶＲ自身を宛先としているのでなければ、パケット転送処理２８１はそのパケットの出力回線インターフェースを決定する。そして、もし出力回線インターフェースがそのインターフェース部２０３に属していなければ、パケット転送処理２８１はバックプレーン２０２経由でそのパケットを出力回線インターフェースが属するインターフェース部２０３へ転送する。出力回線インターフェースが属するインターフェース部２０３で動作しているパケット転送処理２８１は、そのパケットを出力回線インターフェースへ出力する。
【００２９】
なお、以上の処理を行うパケット転送処理２８１は、パケット転送処理用メモリ２０８に記憶されているプログラムコードを、パケット転送処理用プロセッサ２０９が実行することによって動作する。
パケット転送処理用メモリ２０８の内部には、パケット転送処理２８１が用いる情報として、ＩＰパケット転送表２３２、ロードバランサ転送表２３４、インターフェース表２３５が記憶される。
インターフェース表２３５には、各回線インターフェースに割り当てられた所属ＶＲやＩＰアドレス等の情報が記録される。インターフェース表２３５は、回線インターフェースが属するＶＲの決定や、受信したパケットがＶＲ自身を宛先とするパケットかどうかの判断のために、パケット転送処理２８１によって用いられる。
ＩＰパケット転送表２３２には、所属ＶＲ、宛先ＩＰアドレスプレフィックス、ネクストホップＩＰアドレス等を項目とする、パケット転送先エントリが記録される。パケット転送処理２８１は、回線インターフェースから受信したパケットの宛先ＩＰアドレスが最長マッチし、所属ＶＲも一致するパケット転送先エントリを、ＩＰパケット転送表２３２から探す。そして、そのエントリに記されているネクストホップＩＰアドレスや出力回線インターフェースへ、パケットを出力する。
ロードバランサ転送表２３４には、ユーザ網１３０とＶ−ＢＡＳ１０１との接続に用いられているレイヤ２セッションの識別子、Ｖ−ＢＡＳ１０１側のネクストホップＩＰアドレス、ユーザ網１３０に割り当てられたＩＰアドレス（またはＩＰアドレスプレフィックス）、Ｖ−ＬＢ１０２側のネクストホップＩＰアドレスの４項目（もしくは、レイヤ２セッションの識別子を除く３項目）を含むエントリが記録される。パケット転送処理２８１は、Ｖ−ＢＡＳ１０１がユーザ網１３０からパケットを受信した場合については、パケットを受信したレイヤ２セッションが一致する（もしくは、パケットの送信元ＩＰアドレスがマッチする）エントリをロードバランサ転送表２３４から探す。Ｖ−ＬＢ１０２がＩＳＰ網１２０からパケットを受信した場合については、パケットの宛先ＩＰアドレスがマッチするエントリをロードバランサ転送表２３４から探す。パケット転送処理２８１は、いずれの場合も、見つかったエントリに記されているネクストホップＩＰアドレスや出力回線インターフェースへ、パケットを出力する。Ｖ−ＢＡＳ１０１およびＶ−ＬＢ１０２が同一のロードバランサ転送表２３４を用いてパケットを転送することにより、任意の負荷分散アルゴリズムを用いながらも、行きと帰りの通信トラフィックを同一の負荷分散対象装置へ中継することができる。
制御処理部２０１は、インターフェース部２０３が保持するＩＰパケット転送表２３２、ロードバランサ転送表２３４、インターフェース表２３５を適切に生成する役割を担う。このために、制御処理部２０１では、ＩＰ経路制御処理２６４、セッション制御処理２６３、インターフェース管理処理２６８、ロードバランサ設定処理２６５が動作する。
制御処理部２０１で動作しているＩＰ経路制御処理２６４は、インターフェース管理処理２６８で行われたインターフェース設定や、装置管理者が施した静的経路設定や、経路制御プロトコルを用いた動的経路制御処理の結果に基づいて、制御処理部２０１内のＩＰパケット転送表２１２を生成する。そして、このＩＰパケット転送表２１２の項目やエントリの全て、もしくは必要となる一部の項目やエントリを、インターフェース部２０３内のＩＰパケット転送表２３２に反映する。
制御処理部２０１で動作しているセッション制御処理２６３は、ホームルータ１３２もしくはユーザホスト１３３からのネットワーク接続要求を受け、必要ならばユーザ認証処理を行い、認可されればそのユーザのネットワーク接続確立処理を行う。そして、このネットワーク接続確立処理の結果に基づいて、制御処理部２０１内のセッション管理表２１１を生成する。
制御処理部２０１で動作しているインターフェース管理処理２６８は、装置管理者が各回線インターフェースに施した所属ＶＲ、ＩＰアドレス、ネットマスク等の設定、および、回線インターフェースがアクティブか否かといったハードウェア情報に基づいて、制御処理部２０１内のインターフェース表２１５を生成する。そして、このインターフェース表２１５の項目やエントリの全て、もしくは必要となる一部の項目やエントリを、インターフェース部２０３内のインターフェース表２３５に反映する。
制御処理部２０１で動作しているロードバランサ設定処理２６５は、装置管理者が施したロードバランサ転送先候補の設定に基づき、ロードバランサ転送先候補表２１３を生成する。この、ロードバランサ転送先候補の設定には、各負荷分散対象装置の、Ｖ−ＢＡＳ１０１側回線インターフェースに割り当てられたＩＰアドレスと、Ｖ−ＬＢ１０２側回線インターフェースに割り当てられたＩＰアドレスとの対が含まれる。ロードバランサ設定処理２６５が、両者のＩＰアドレスが適切に対応付けられたロードバランサ転送先候補表２１３を用いて制御処理部２０１内のロードバランサ転送表２１４のエントリを生成することにより、そのロードバランサ転送表を用いて、行きと帰りの通信トラフィックを同一の負荷分散対象装置に通すパケット中継が可能になる。
【００３０】
また、ロードバランサ設定処理２６５は、セッション制御処理２６３がユーザのネットワーク接続確立処理を行った際に、ロードバランサ転送先候補表２１３から任意の負荷分散アルゴリズムを用いてエントリを選択することによって、そのユーザに割り当てる負荷分散中継先を決定し、制御処理部２０１内のロードバランサ転送表２１４のエントリを生成する。ネットワーク接続が確立されたユーザに対応するエントリを制御処理部２０１内のロードバランサ転送表２１４に生成することにより、ネットワーク接続確立時にユーザに割り当てた識別子（レイヤ２セッション識別子やＩＰアドレス）、ユーザ認証処理時に得られる認証・認可情報、ネットワーク接続確立時点での動的なネットワークの状況変化（トラフィックをどれだけ均等に負荷分散できているか等）といった多様な条件を用いて、負荷分散中継先を決定できる。
【００３１】
また、セッション制御処理２６３がユーザのネットワーク接続解除処理（または解除検知）を行った際に、制御処理部２０１内のロードバランサ転送表２１４から、そのユーザに対応するエントリを削除する。ネットワーク接続が解除されたユーザに対応するエントリを制御処理部２０１内のロードバランサ転送表２１４から削除することにより、エントリ数を最小限に保ち、ひいてはメモリ使用量の増大やパケット転送速度の低下を防止できる。
そして、ロードバランサ設定処理２６５は、このロードバランサ転送表２１４の項目やエントリの全て、もしくは必要となる一部の項目やエントリを、インターフェース部２０３内のロードバランサ転送表２３４に反映する。
【００３２】
以上で述べた処理の中に含まれる、装置管理者による設定については、本発明を実施するにあたってどのような方法で実現してもよい。このような設定は、制御処理部２０１内に記憶されている初期設定データや、制御処理部２０１に備わっている装置設定用ユーザインターフェースを通して行われるのが一般的である。
なお、以上で述べたＩＰ経路制御処理２６４、セッション制御処理２６３、インターフェース管理処理２６８、ロードバランサ設定処理２６５は、制御処理部２０１内の主記憶装置２０６に記憶されているプログラムコードを、制御処理用プロセッサ２０７が実行することによって動作する。また、制御処理部２０１内のＩＰパケット転送表２１２、セッション管理表２１１、インターフェース表２１５、ロードバランサ転送先候補表２１３、ロードバランサ転送表２１４は、制御処理部２０１内の主記憶装置２０６に記憶される。
以上に挙げた内部処理アーキテクチャのうち、本発明に特徴的な動作に関わるのは、インターフェース部２０３内のロードバランサ転送表２３４、パケット転送処理２８１内のロードバランサ転送表２３４に関する処理部分、制御処理部２０１内のロードバランサ設定処理２６５、ロードバランサ転送表２１４、ロードバランサ転送先候補表２１３である。これら以外の内部アーキテクチャは、従来の一般的なルータと同様の構成である。
【００３３】
図３は、実施例１および実施例３におけるＩＰパケット転送表を表す図である。
この表の用途や構成は、ＶＲ機能を有する一般的なルータと同様である。
制御処理部２０１内のＩＰパケット転送表２１２の各行は、一つ一つのパケット転送先エントリであり、受信したＩＰパケットの宛先ＩＰアドレスと、そのパケットの転送先のネクストホップＩＰアドレスや出力回線インターフェースとの対応付けを表す。
制御処理部２０１内のＩＰパケット転送表２１２の列は、ＶＲ識別子３０１、宛先ＩＰアドレスプレフィックス３０２、経路タイプ３０３、ネクストホップＩＰアドレス３０４、出力インターフェースまたはセッションの識別子３０５の、５つの項目で構成される。もちろん、これら以外の項目が含まれていてもよい。逆に、これらの項目の一部をこの表に含めず、代わりに別の表を再度引くことによって同等の情報を得てもよい。例えば、出力インターフェースまたはセッションの識別子３０５の項目をこの表に含めず、代わりに、ネクストホップＩＰアドレス３０４と同一サブネットに存在する回線インターフェースをインターフェース表２１５から探し、見つかったエントリを出力インターフェースとしてもよい。
【００３４】
ＶＲ識別子３０１は、ＩＰパケット転送表２１２の各行のエントリが属するＶＲを表す。実施例１および実施例３の場合は、その行のエントリがＶ−ＢＡＳによって用いられるか、Ｖ−ＬＢによって用いられるかを示すために、いずれかのＶＲ識別子が格納される。実施例４のように、本発明の装置内に複数のＶ−ＢＡＳやＶ−ＬＢが存在する場合は、どのＶ−ＢＡＳもしくはＶ−ＬＢに属するかを示すために、それぞれに割り当てられたＶＲ識別子のうちのいずれかが格納される。
宛先ＩＰアドレスプレフィックス３０２は、各行のエントリの適用対象となる宛先ＩＰアドレスの範囲を表す。この宛先ＩＰアドレスプレフィックス３０２は、一般的には、マスク長と、その値の分の有効ビット長を持つＩＰアドレスで表されるが、それ以外の表記方法（例えばＩＰアドレスとマスクビット）であってもよい。ＩＰパケット転送表２１２を用いて受信したパケットの転送先を決定する際は、パケットを受信した回線インターフェースが属するＶＲとＶＲ識別子３０１が一致し、かつ、パケットの宛先ＩＰアドレスが宛先ＩＰアドレスプレフィックス３０２と最長マッチするエントリが、転送先決定に用いられる。
なお、「あるＩＰアドレスに最長マッチするＩＰアドレスプレフィックス」とは、そのＩＰアドレスにマッチする（すなわち、ＩＰアドレスのうちマスク長で示された数の先頭ビットが一致する）ＩＰアドレスプレフィックスの中で、マスク長が最も大きいものを指す。
【００３５】
経路タイプ３０３は、エントリが生成された由来を示す項目である。あるＶＲに属するエントリにおいて、そのＶＲのインターフェースが属するサブネット（もしくは、そのインターフェースに直接接続されているホスト）のＩＰアドレスプレフィックスと、そのエントリの宛先ＩＰアドレスプレフィックス３０２の値とが一致する場合、そのエントリの経路タイプ３０３の値は「直結」となる。それ以外の、そのエントリが属するＶＲと直接つながっていない（他の装置経由もしくは他のＶＲ経由でつながっている）サブネットやホストを宛先ＩＰアドレスプレフィックス３０２とするエントリの経路タイプ３０３の値は「非直結」となる。「直結」のエントリは、ＶＲが持つ回線インターフェースや、Ｖ−ＢＡＳが収容したユーザホストにＩＰアドレスを割り当てると同時に生成される。「非直結」のエントリは、ＶＲの管理者による静的な経路設定や、経路制御プロトコルによる動的な経路制御に基づいて生成される。
【００３６】
もちろん、実際の装置では、「直結」、「非直結」のいずれも、さらに細分化されたタイプを用いてもよい。例えば、「直結」ならば静的な回線インターフェースの直結経路と動的に接続されたユーザホストの直結経路を異なるタイプにしてもよいし、「非直結」ならば静的な経路設定による経路と動的な経路制御による経路を異なるタイプにしてもよい。その場合でも、本発明を実施することは可能である。
【００３７】
ネクストホップＩＰアドレス３０４は、経路タイプ３０３の値が「非直結」の場合に、パケットをどのホストへ次に中継すればよいかを示す項目である。本発明のＢＡＳ兼ロードバランサ１００は、ネクストホップＩＰアドレス３０４で示されたＩＰアドレスのホストへ、パケットをレイヤ２回線経由で転送する。なお、「直結」の場合は、パケットの宛先ＩＰアドレスが示すホストへレイヤ２回線経由で直接届けることが可能なので、ネクストホップＩＰアドレス３０４は不要である。
出力インターフェースまたはセッションの識別子３０５には、中継するパケットを出力する回線インターフェースの識別子が格納される。ユーザホストを接続するレイヤ２セッションが設けられる場合は、そのセッションの識別子が格納される。なお、ここで言うレイヤ２セッションは、ユーザ単位に独立して設けられたレイヤ２回線を指す。これは、例えばＰＰＰｏＡ（PPP over ATM）を用いる場合は、ＡＴＭの仮想レイヤ２回線であるＶＣ（Virtual Channel）となる。
インターフェース部２０３内のＩＰパケット転送表２３２も、制御処理部２０１内のＩＰパケット転送表２１２と基本的に同じである。ただし、必ずしもＩＰパケット転送表２１２の内容を全て含む必要はない。例えば、本発明のＢＡＳ兼ロードバランサ１００が複数のインターフェース部２０３で構成されており、そのうちの一つにはＶ−ＢＡＳ１に属するインターフェースしかない場合、そのインターフェース部２０３はＩＰパケット転送表２１２のうちのＶ−ＢＡＳ１に関する部分２３２−Ａのみを持てばよい。これにより、インターフェース部２０３内のＩＰパケット転送表２３２が保持するエントリ数を最小限に保ち、ひいてはメモリ使用量の増大やパケット転送速度の低下を防止できる。
なお、図３を含めて、本明細書ではＩＰアドレスの具体的な値の例にＩＰｖ４アドレスを用いているが、もちろんＩＰｖ６アドレスを用いても本発明を実施可能である。
【００３８】
図４は、実施例１および実施例２におけるセッション管理表を表す図である。
この表の用途や構成は、ＶＲ機能を有する一般的なＢＡＳと同様である。
制御処理部２０１内のセッション管理表２１１の各行は、ネットワーク接続が確立された各ユーザホストに割り当てた、レイヤ２セッションやＩＰアドレス（もしくはＩＰアドレスプレフィックス）を表すエントリである。
制御処理部２０１内のセッション管理表２１１の列は、ＶＲ識別子４０１、インターフェース識別子４０２、セッション識別子４０３、割当ＩＰアドレスプレフィックス４０４の、４つの項目で構成される。もちろん、これら以外の項目が含まれていてもよい。逆に、これらの項目の一部を表に含めず、代わりに別の表を再度引くことによって同等の情報を得てもよい。
ＶＲ識別子４０１は、ＩＰパケット転送表２１２の各行のエントリが属するＶＲを表す。実施例１および実施例２の場合は、Ｖ−ＢＡＳのＶＲ識別子が格納される。実施例４のように、本発明の装置内に複数のＶ−ＢＡＳが存在する場合は、どのＶ−ＢＡＳに属するかを示すために、それぞれに割り当てられたＶＲ識別子のうちのいずれかが格納される。
インターフェース識別子４０２には、ユーザホストが接続される静的な回線インターフェースの識別子が格納される。ユーザ単位にレイヤ２セッションが設けられる場合は、そのレイヤ２セッションが属する静的な回線インターフェースの識別子が格納される。
セッション識別子４０３には、ユーザ単位に設けられたレイヤ２セッションの識別子が格納される。ユーザ単位にレイヤ２セッションが設けられない場合（すなわち、複数のユーザが同一の静的なレイヤ２回線を通して接続される場合）は、この項目を使用しない。
割当ＩＰアドレスプレフィックス４０４には、ユーザホストに割り当てたＩＰアドレス、もしくはユーザ網に割り当てたＩＰアドレスプレフィックスが格納される。ＩＰアドレス体系にＩＰｖ４を用いる場合は単一のＩＰｖ４アドレスが、ＩＰｖ６を用いる場合は単一のＩＰｖ６アドレスもしくはＩＰｖ６アドレスプレフィックスのいずれかがユーザに割り当てられるのが一般的である。本発明はいずれの場合にも適用可能である。
【００３９】
図５は、実施例１および実施例３におけるインターフェース表を表す図である。
この表の用途や構成は、ＶＲ機能を有する一般的なルータと同様である。
制御処理部２０１内のインターフェース表２１５の各行は、回線インターフェースと、その回線インターフェースに割り当てられたＶＲ、ＩＰアドレス、マスク長との対応付けを表すエントリである。
制御処理部２０１内のインターフェース表２１５の列は、ＶＲ識別子５０１、インターフェース識別子５０２、インターフェースのＩＰアドレス５０３、インターフェースのネットマスク長５０４、仮想回線識別子５０５の、５つの項目で構成される。もちろん、これら以外の項目が含まれていてもよい。逆に、これらの項目の一部を表に含めず、代わりに別の表を再度引くことによって同等の情報を得てもよい。
ＶＲ識別子５０１は、インターフェース表２１５の各行のエントリが属するＶＲを表す。実施例１および実施例３の場合は、Ｖ−ＢＡＳもしくはＶ−ＬＢのＶＲ識別子が格納される。実施例４のように、本発明の装置内に複数のＶ−ＢＡＳやＶ−ＬＢが存在する場合は、どのＶ−ＢＡＳもしくはＶ−ＬＢに属するかを示すために、それぞれに割り当てられたＶＲ識別子のうちのいずれかが格納される。
インターフェース識別子５０２は、インターフェース表２１５の各行のエントリに対応する、静的な回線インターフェースを表す。
インターフェースのＩＰアドレス５０３には、各行のエントリに対応する回線インターフェースに割り当てられたＩＰアドレスが格納される。インターフェースのネットマスク長５０４には、各行のエントリに対応する回線インターフェースが属するサブネットのマスク長が格納される。
仮想回線識別子５０５は、本発明の装置内に存在する複数のＶＲ間の接続回線を、本発明の装置内で仮想的に設けるための項目である。仮想回線識別子５０５の項目に同じ値が格納されているエントリ同士は、仮想的な回線で接続されているとみなされる。
【００４０】
なお、本発明を実施するために必要となるのは、同一装置内のＶ−ＢＡＳとＶ−ＬＢを接続する回線インターフェースおよび回線であり、これを実現する手段は問わない。実現手段として、上記の仮想回線識別子５０５を用いてもよいし、同一装置内のＶＲ間を接続する他の手段を設けても良いし、装置外に設けられた二つの回線インターフェースを物理的な回線で接続することで実現してもかまわない。
インターフェース部２０３内のインターフェース表２３５も、制御処理部２０１内のインターフェース表２１５と基本的に同じである。ただし、必ずしもインターフェース表２１５の内容を全て含む必要はない。例えば、本発明のＢＡＳ兼ロードバランサ１００が複数のインターフェース部２０３で構成されており、そのうちの一つにはＶ−ＢＡＳ１に属する回線インターフェースしかない場合、そのインターフェース部２０３はインターフェース表２１５のうちのＶ−ＢＡＳ１に関する部分２３５−Ａのみを持てばよい。
【００４１】
図６は、実施例１におけるロードバランサ転送先候補表を表す図である。
制御処理部２０１内のロードバランサ転送先候補表２１３の各行は、各負荷分散対象装置のＶ−ＢＡＳから見たＩＰアドレスとＶ−ＬＢから見たＩＰアドレスとの対応付けを表すエントリである。また、各エントリは、ＩＰパケット転送表を引くことによって得られるネクストホップＩＰアドレスに対して対応付ける負荷分散対象装置の候補をも表している。Ｖ−ＢＡＳは、この候補を元にして、ユーザホストのネットワーク接続確立時にロードバランサ転送表を生成する。この表の各項目の値は、装置管理者が施したロードバランサ転送先候補の設定に基づいて設定される。
制御処理部２０１内のロードバランサ転送先候補表２１３の列は、Ｖ−ＢＡＳ側のＶＲ識別子６０１、Ｖ−ＢＡＳ側の対象ネクストホップＩＰアドレス６０２、Ｖ−ＢＡＳからのパケット転送先ＩＰアドレス６０３、Ｖ−ＬＢ側のＶＲ識別子６０４、Ｖ−ＬＢ側の対象ネクストホップＩＰアドレス６０５、Ｖ−ＬＢからのパケット転送先ＩＰアドレス６０６の、６つの項目で構成される。もちろん、これら以外の項目が含まれていてもよい。
Ｖ−ＢＡＳ側のＶＲ識別子６０１は、各行のエントリについて、Ｖ−ＢＡＳ側の対象ネクストホップＩＰアドレス６０２とＶ−ＢＡＳからのパケット転送先ＩＰアドレス６０３の適用対象となるＶ−ＢＡＳを表す。実施例１の場合は、Ｖ−ＢＡＳのＶＲ識別子がこの項目に格納される。実施例４のように、本発明の装置内に複数のＶ−ＢＡＳが存在する場合は、どのＶ−ＢＡＳに適用するかを示すために、それぞれに割り当てられたＶＲ識別子のうちのいずれかが格納される。
【００４２】
−ＢＡＳ側の対象ネクストホップＩＰアドレス６０２は、各エントリの適用対象となるネクストホップＩＰアドレスを示す。該当するＶ−ＢＡＳが受信したパケットについて、ＩＰパケット転送表を引くことによって得られるネクストホップＩＰアドレスがこの項目の値と一致するエントリのみが、そのパケットに対する適用候補のエントリとなる。
Ｖ−ＢＡＳからのパケット転送先ＩＰアドレス６０３には、負荷分散中継の中継先となるネクストホップＩＰアドレスが格納される。
Ｖ−ＬＢ側のＶＲ識別子６０４は、各行のエントリについて、Ｖ−ＬＢ側の対象ネクストホップＩＰアドレス６０５とＶ−ＬＢからのパケット転送先ＩＰアドレス６０６の適用対象となるＶ−ＬＢを表す。実施例１の場合は、Ｖ−ＬＢのＶＲ識別子がこの項目に格納される。実施例４のように、本発明の装置内に複数のＶ−ＬＢが存在する場合は、どのＶ−ＬＢに適用するかを示すために、それぞれに割り当てられたＶＲ識別子のうちのいずれかが格納される。
Ｖ−ＬＢ側の対象ネクストホップＩＰアドレス６０５は、各エントリの適用対象となるネクストホップＩＰアドレスを示す。該当するＶ−ＬＢが受信したパケットについて、ＩＰパケット転送表を引くことによって得られるネクストホップＩＰアドレスがこの項目の値と一致するエントリのみが、そのパケットに対する適用候補のエントリとなる。
Ｖ−ＬＢからのパケット転送先ＩＰアドレス６０６には、負荷分散中継の中継先となるネクストホップＩＰアドレスが格納される。
【００４３】
図７は、実施例１におけるロードバランサ転送表を表す図である。
制御処理部２０１内のロードバランサ転送表２１４の各行は、あるユーザを送信元もしくは宛先とするＩＰパケットに関して、ＩＰパケット転送表を引くことによって得られた仮ネクストホップＩＰアドレスと、負荷分散中継先として実際に用いられるネクストホップＩＰアドレスとの対応を表すエントリである。Ｖ−ＢＡＳは、ロードバランサ転送先候補表２１３を元にして、ユーザホストのネットワーク接続確立時にこの表を生成する。ユーザのネットワーク接続確立時に、そのユーザに対応するエントリを制御処理部２０１内のロードバランサ転送表２１４に生成することにより、ネットワーク接続確立時にユーザに割り当てた識別子（レイヤ２セッション識別子やＩＰアドレス）、ユーザ認証処理時に得られる認証・認可情報、ネットワーク接続確立時点での動的なネットワークの状況変化（トラフィックをどれだけ均等に負荷分散できているか等）といった多様な条件を用いて、負荷分散中継先を決定できる。
制御処理部２０１内のロードバランサ転送表２１４の列は、Ｖ−ＢＡＳ用ロードバランサ転送表７０１と、Ｖ−ＬＢ用ロードバランサ転送表７０２の二つの部分に大別することができる。Ｖ−ＢＡＳ用ロードバランサ転送表７０１の列は、Ｖ−ＢＡＳ側のＶＲ識別子７１１、Ｖ−ＢＡＳ側の仮ネクストホップＩＰアドレス７１２、ユーザからのパケットの入力セッション識別子７１３、Ｖ−ＢＡＳ側の新たなネクストホップＩＰアドレス７１４、Ｖ−ＢＡＳ側の出力インターフェース識別子７１５の５項目で構成される。Ｖ−ＬＢ用ロードバランサ転送表７０２の列は、Ｖ−ＬＢ側のＶＲ識別子７２１、Ｖ−ＬＢ側の仮ネクストホップＩＰアドレス７２２、ユーザ宛のパケットの宛先ＩＰアドレスプレフィックス７２３、Ｖ−ＬＢ側の新たなネクストホップＩＰアドレス７２４、Ｖ−ＬＢ側の出力インターフェース識別子７２５の５項目で構成される。もちろん、これら以外の項目が含まれていてもよい。
【００４４】
Ｖ−ＢＡＳ側のＶＲ識別子７１１は、各行のエントリについて、Ｖ−ＢＡＳ用ロードバランサ転送表７０１の適用対象となるＶ−ＢＡＳを表す。実施例１の場合は、Ｖ−ＢＡＳのＶＲ識別子がこの項目に格納される。実施例４のように、本発明の装置内に複数のＶ−ＢＡＳが存在する場合は、どのＶ−ＢＡＳに適用するかを示すために、それぞれに割り当てられたＶＲ識別子のうちのいずれかが格納される。
Ｖ−ＢＡＳ側の仮ネクストホップＩＰアドレス７１２には、ロードバランサ転送先候補表２１３内のＶ−ＢＡＳ側の対象ネクストホップＩＰアドレス６０２と同じ値が格納される。
ユーザからのパケットの入力セッション識別子７１３には、ユーザホストを接続する、ユーザ毎に異なるレイヤ２セッションの識別子が格納される。ＩＰパケットを受信したＶ−ＢＡＳは、Ｖ−ＢＡＳ側のＶＲ識別子７１１の値が自身と一致し、かつ、ＩＰパケット転送表を引くことによって得られるネクストホップＩＰアドレスがＶ−ＢＡＳ側の仮ネクストホップＩＰアドレス７１２の項目値と一致し、かつ、パケットを受信したレイヤ２セッションがユーザからのパケットの入力セッション識別子７１３の項目値と一致すれば、そのエントリを用いてパケットの負荷分散中継先を決定する。
【００４５】
なお、ユーザホスト毎にレイヤ２セッションを設けず、ＩＰアドレスの動的割当のみを行う場合は、ユーザからのパケットの入力セッション識別子７１３の項目の代わりに、ユーザホストに割り当てた送信元ＩＰアドレスプレフィックスを用いてもよい。ただしその場合、ＩＰパケットの送信元ＩＰアドレスは詐称される可能性があることに注意する必要がある。
Ｖ−ＢＡＳ側の新たなネクストホップＩＰアドレス７１４には、負荷分散中継の中継先となるネクストホップＩＰアドレスが格納される。
Ｖ−ＢＡＳ側の出力インターフェース識別子７１５には、負荷分散中継の際にパケットを出力する回線インターフェースの識別子が格納される。なお、この項目をロードバランサ転送表に設けずに、Ｖ−ＢＡＳ側の新たなネクストホップＩＰアドレス７１４とインターフェース表から出力インターフェースを導き出してもよい。
【００４６】
ＩＰパケットを受信したＶ−ＢＡＳは、ＶＲ識別子、仮ネクストホップＩＰアドレス、入力セッション識別子が一致するエントリをＶ−ＢＡＳ用ロードバランサ転送表７０１に発見したら、そのエントリのＶ−ＢＡＳ側の新たなネクストホップＩＰアドレス７１４とＶ−ＢＡＳ側の出力インターフェース識別子７１５の値を用いて、パケットのネクストホップと出力インターフェースを変更する。
Ｖ−ＬＢ側のＶＲ識別子７２１は、各行のエントリについて、Ｖ−ＬＢ用ロードバランサ転送表７０２の適用対象となるＶ−ＬＢを表す。実施例１の場合は、Ｖ−ＬＢのＶＲ識別子がこの項目に格納される。実施例４のように、本発明の装置内に複数のＶ−ＬＢが存在する場合は、どのＶ−ＬＢに適用するかを示すために、それぞれに割り当てられたＶＲ識別子のうちのいずれかが格納される。
Ｖ−ＬＢ側の仮ネクストホップＩＰアドレス７２２には、ロードバランサ転送先候補表２１３内のＶ−ＬＢ側の対象ネクストホップＩＰアドレス６０５と同じ値が格納される。
ユーザ宛のパケットの宛先ＩＰアドレスプレフィックス７２３には、ユーザホストに割り当てられたＩＰアドレスプレフィックス（もしくは単一のＩＰアドレス）が格納される。ＩＰパケットを受信したＶ−ＬＢは、Ｖ−ＬＢ側のＶＲ識別子７２１の値が自身と一致し、かつ、ＩＰパケット転送表を引くことによって得られるネクストホップＩＰアドレスがＶ−ＬＢ側の仮ネクストホップＩＰアドレス７２２の項目値と一致し、かつ、パケットの宛先ＩＰアドレスがユーザ宛のパケットの宛先ＩＰアドレスプレフィックス７２３の項目値とマッチすれば、そのエントリを用いてパケットの負荷分散中継先を決定する。
Ｖ−ＬＢ側の新たなネクストホップＩＰアドレス７２４には、負荷分散中継の中継先となるネクストホップＩＰアドレスが格納される。
Ｖ−ＬＢ側の出力インターフェース識別子７２５には、負荷分散中継の際にパケットを出力する回線インターフェースの識別子が格納される。なお、この項目をロードバランサ転送表に設けずに、Ｖ−ＬＢ側の新たなネクストホップＩＰアドレス７２４とインターフェース表から出力インターフェースを導き出してもよい。
【００４７】
ＩＰパケットを受信したＶ−ＬＢは、ＶＲ識別子、仮ネクストホップＩＰアドレス、宛先ＩＰアドレスが一致もしくはマッチするエントリをＶ−ＬＢ用ロードバランサ転送表７０２に発見したら、そのエントリのＶ−ＬＢ側の新たなネクストホップＩＰアドレス７２４とＶ−ＬＢ側の出力インターフェース識別子７２５の値を用いて、パケットのネクストホップと出力インターフェースを変更する。
インターフェース部２０３内のロードバランサ転送表２３４も、制御処理部２０１内のロードバランサ転送表２１４と基本的に同じである。ただし、必ずしもロードバランサ転送表２１４の内容を全て含む必要はない。例えば、本発明のＢＡＳ兼ロードバランサ１００が複数のインターフェース部２０３で構成されており、そのうちの一つにはＶ−ＢＡＳ１に属する回線インターフェースしかない場合、そのインターフェース部２０３はＶ−ＢＡＳ用ロードバランサ転送表７０１のうちのＶ−ＢＡＳ１に関する部分のみを持てばよい。
【００４８】
図８は、実施例１におけるロードバランサ転送表のエントリ生成処理フローを表す図である。
本発明の装置の制御処理部２０１は、ホームルータ１３２もしくはユーザホスト１３３からのネットワーク接続要求を受けると、通常のＢＡＳと同様のネットワーク接続確立処理を行う（ステップ８１０）。この処理は、制御処理部２０１で動作するセッション制御処理２６３が行う。この処理によって、ネットワーク接続確立処理の対象となったユーザのレイヤ２セッションや割当ＩＰアドレス等の情報が、セッション管理表２１１に新たなエントリとして追加登録される。
制御処理部２０１は、ステップ８１０のネットワーク接続確立処理の終了後、引き続いてステップ８２０からステップ８６０までを順に実行する。これらの処理は、制御処理部２０１で動作するロードバランサ設定処理２６５によって実行される。
ステップ８２０では、ロードバランサ設定処理２６５は、ステップ８１０で新たにネットワーク接続確立処理が行われたユーザセッションに対応するＶＲ識別子（セッション管理表２１１のＶＲ識別子４０１の値）と、ロードバランサ転送先候補表２１３の各エントリのＶ−ＢＡＳのＶＲ識別子６０１の値とを比較し、一致したエントリのみを抽出する。
ステップ８３０では、一致したエントリを、Ｖ−ＢＡＳ側の対象ネクストホップＩＰアドレス６０２の値が同一のもの毎のグループに分ける。
ステップ８４０では、ステップ８３０で分けた各グループから、任意の負荷分散アルゴリズムを用いて、エントリを一つずつ選択する。ここで用いる負荷分散アルゴリズムには、どのようなアルゴリズムを用いてもよい。すなわち、自律的に計算を行っても必ず一意な結果を得られるもの（ハッシュ等）を用いてもよいし、必ずしも一意な結果を得られるとは限らないもの（ラウンドロビン、割当ユーザ数、装置負荷等）を用いてもよい。このように、本発明ではユーザに対するネットワーク接続確立処理の直後に、そのユーザの行きと帰りの両方向のトラフィックの負荷分散中継先を、同一装置内の同一処理が決定するため、使用する負荷分散アルゴリズムの制約がない。
【００４９】
ステップ８５０では、選択した各エントリに、セッション管理表２１１の処理対象エントリに含まれる幾つかの項目を付加し、制御処理部２０１内のロードバランサ転送表２１４に新たなエントリとして追加登録する。この新規エントリの項目のうち、Ｖ−ＢＡＳ側のＶＲ識別子７１１、Ｖ−ＢＡＳ側の仮ネクストホップＩＰアドレス７１２、Ｖ−ＢＡＳ側の新たなネクストホップＩＰアドレス７１４、Ｖ−ＬＢ側のＶＲ識別子７２１、Ｖ−ＬＢ側の仮ネクストホップＩＰアドレス７２２、Ｖ−ＬＢ側の新たなネクストホップＩＰアドレス７２４の６項目には、ステップ８４０で選択したエントリの各項目（Ｖ−ＢＡＳ側のＶＲ識別子６０１、Ｖ−ＢＡＳ側の対象ネクストホップＩＰアドレス６０２、Ｖ−ＢＡＳからのパケット転送先ＩＰアドレス６０３、Ｖ−ＬＢ側のＶＲ識別子６０４、Ｖ−ＬＢ側の対象ネクストホップＩＰアドレス６０５、Ｖ−ＬＢからのパケット転送先ＩＰアドレス６０６）の値がそのまま用いられる。新規エントリの残りの項目のうち、ユーザからのパケットの入力セッション識別子７１３の項目には、セッション管理表２１１の対象エントリのセッション識別子４０３の値が入る。ユーザ宛のパケットの宛先ＩＰアドレスプレフィックス７２３の項目には、セッション管理表２１１の割当ＩＰアドレスプレフィックス４０４の値が入る。Ｖ−ＢＡＳ側の出力インターフェース識別子７１５、Ｖ−ＬＢ側の出力インターフェース識別子７２５の項目については、Ｖ−ＢＡＳ側の新たなネクストホップＩＰアドレス７１４、Ｖ−ＬＢ側の新たなネクストホップＩＰアドレス７２４へパケットを送出するための出力インターフェースを、制御処理部２０１内のインターフェース表２１５を用いて決定し、そのインターフェース識別子をそれぞれの項目に登録する。
ステップ８６０では、制御処理部２０１のロードバランサ設定処理２６５から、インターフェース部２０３へ、ステップ８５０で新たに登録したエントリを送る。これを受け取ったインターフェース部２０３は、自身のロードバランサ転送表２３４に、受け取ったエントリを追加登録する。
【００５０】
図９は、実施例１、実施例２、および実施例３におけるロードバランサ転送表のエントリ削除処理フローを表す図である。
本発明の装置の制御処理部２０１は、ホームルータ１３２もしくはユーザホスト１３３からユーザのネットワーク接続解除要求を受けるか、または、ホームルータ１３２もしくはユーザホスト１３３との間のネットワーク接続解除を検知すると、通常のＢＡＳと同様のネットワーク接続解除処理を行う（ステップ９１０）。この処理は、制御処理部２０１で動作するセッション制御処理２６３が行う。この処理によって、ネットワーク接続解除処理の対象となったユーザに対応するエントリが、セッション管理表２１１から削除される。この際、削除したエントリのセッション識別子４０３の項目の値を記憶しておき、次のステップ９２０で用いる。
制御処理部２０１は、ステップ９１０のネットワーク接続解除処理の終了後、引き続いてステップ９２０からステップ９３０までを順に実行する。これらの処理は、制御処理部２０１で動作するロードバランサ設定処理２６５によって実行される。
ステップ９２０では、制御処理部２０１のロードバランサ設定処理２６５は、制御処理部２０１内のロードバランサ転送表２１４から、ユーザからのパケットの入力セッション識別子７１３の項目値がセッション管理表２１１の削除対象エントリのセッション識別子４０３の項目値と一致するエントリを検索し、見つかったエントリを全て削除する。なお、実施例４のように本発明の装置内にＶ−ＢＡＳが複数存在し、かつ、異なるＶ−ＢＡＳ同士でユーザからのパケットの入力セッション識別子７１３の項目の値が同一になる可能性がある場合は、セッション管理表２１１のＶＲ識別子４０１とロードバランサ転送表２１４のＶ−ＢＡＳのＶＲ識別子７１１も値が一致することを確認する必要がある。
【００５１】
ステップ９３０では、制御処理部２０１のロードバランサ設定処理２６５から、インターフェース部２０３へ、ステップ９２０で削除したエントリを示す情報を送る。これを受け取ったインターフェース部２０３は、自身のロードバランサ転送表２３４から、受け取った情報に対応するエントリを全て削除する。このフローに従ってロードバランサ転送表のエントリ削除処理を行うことにより、ネットワーク接続が解除されたユーザに対応するエントリを制御処理部２０１、インターフェース部２０３の両者が保持するロードバランサ転送表２１４、２３４から削除することができる。これにより、ロードバランサ転送表のエントリ数を最小限に保ち、ひいてはメモリ使用量の増大やパケット転送速度の低下を防止できる。
【００５２】
図１０は、実施例１および実施例３における本発明の通信装置のパケット転送処理フローを表す図である。
この処理フローは、インターフェース部２０３で動作するパケット転送処理２８１によって実行される。
図１０の処理フローは、入力インターフェースが属するＶＲの確定（ステップ１０１０）、自宛ＩＰパケットの判定と処理（ステップ１０２０からステップ１０２６まで）、ＩＰパケット転送表による転送先の決定（ステップ１０３０）、ロードバランサ転送表による転送先の変更（ステップ１０４０からステップ１０５６まで）、仮想回線の処理（ステップ１０６０からステップ１０６６まで）、パケットの出力（ステップ１０７０）の六つの部分に大きく分けることができる。このうち、ステップ１０１０からステップ１０３０までとステップ１０７０の処理は、ＶＲ機能を持つ一般的なルータが行うパケット転送処理と同様である。ステップ１０６０からステップ１０６６までの処理は、仮想回線の機能を実現するためのものであるが、この機能は本発明の特徴を成すものではない。ステップ１０４０からステップ１０５６までの処理が、本発明の特徴を成す処理である。
また、図１０の処理フローは、入力インターフェースを持つインターフェース部２０３と出力インターフェースを持つインターフェース部２０３が同一の場合（本発明の装置内に設けられたインターフェース部２０３が一つのみの場合等）のものである。両者のインターフェース部２０３が同一でない場合は、入力インターフェースを持つインターフェース部２０３がステップ１０５６までを実行し、そのパケットをバックプレーン２０２経由で出力インターフェースを持つインターフェース部２０３へ転送する。ステップ１０６０以降については、出力インターフェースを持つインターフェース部２０３が実行する。
【００５３】
以下、パケット転送処理のフローを、順を追って説明する。
本発明の装置のインターフェース部２０３内のパケット転送処理２８１は、自身が持つインターフェースからＩＰパケットが入力されると、ステップ１０１０からパケット中継処理を開始する。ステップ１０１０では、入力インターフェースの識別子がインターフェース識別子５０２の項目値と一致するエントリをインターフェース表２３５から探し、見つかったエントリのＶＲ識別子５０１を、入力インターフェースが属するＶＲとみなす。
続くステップ１０２０では、インターフェース表２３５から、ＶＲ識別子５０１の項目値がステップ１０１０で調べた入力インターフェースのＶＲと一致し、かつ、インターフェースのＩＰアドレス５０３の項目値が入力パケットの宛先ＩＰアドレスと一致するエントリを探す。そして、一致するエントリが見つかれば（ステップ１０２１）、入力パケットは自宛であるとみなし、パケットをバックプレーン２０２経由で制御処理部２０１へ転送し（ステップ１０２６）、パケット中継処理を終了する。転送された自宛パケットを受信した制御処理部２０１は、一般的なルータやＢＡＳと同様に、自宛パケットの内容に応じた適切な処理（経路制御プロトコルの処理等）を行う。ステップ１０２１で一致するエントリが見つからなければ、ステップ１０３０へ移行する。
ステップ１０３０では、ＩＰパケット転送表２３２から、ＶＲ識別子３０１の項目値がステップ１０１０で調べた入力インターフェースのＶＲと一致し、かつ、宛先ＩＰアドレスプレフィックス３０２の項目値に入力パケットの宛先ＩＰアドレスが最長マッチするエントリを探す。そして、一致したエントリのネクストホップＩＰアドレス３０４の値を仮ネクストホップ、出力インターフェースまたはセッションの識別子３０５の値を仮出力インターフェースとする。ただし、経路タイプ３０３の値が「直結」の場合は、入力パケットの宛先ＩＰアドレスを仮ネクストホップとする。
続くステップ１０４０では、ステップ１０１０で調べた入力インターフェースのＶＲが、Ｖ−ＢＡＳかＶ−ＬＢかを判定する。この結果、Ｖ−ＬＢであればステップ１０４６へ、Ｖ−ＢＡＳであればステップ１０５０へ移行する。なお、本実施例ではこの判定を行う具体的な方法を示していないが、例えばＶ−ＢＡＳのＶＲ識別子を全て登録する表を別途用意してもよいし、例えばＶ−ＢＡＳのＶＲ識別子を偶数にすると予め決めておいてもよい。また、ステップ１０４０の判定処理を行わずに、ＶＲがＶ−ＢＡＳの場合もＶ−ＬＢの場合も、ステップ１０４６とステップ１０５０の両方の処理を行うことにしてもよい。
【００５４】
ステップ１０４６では、Ｖ−ＬＢ用ロードバランサ転送表７０２から、Ｖ−ＬＢ側のＶＲ識別子７２１の項目値がステップ１０１０で調べた入力インターフェースのＶＲと一致し、かつ、Ｖ−ＬＢ側の仮ネクストホップＩＰアドレス７２２の項目値がステップ１０３０で決めた仮ネクストホップと一致し、かつ、ユーザ宛のパケットの宛先ＩＰアドレスプレフィックス７２３の項目値に入力パケットの宛先ＩＰアドレスがマッチするエントリを探す。そして、ステップ１０５１へ移行する。
ステップ１０５０では、Ｖ−ＢＡＳ用ロードバランサ転送表７０１から、Ｖ−ＢＡＳ側のＶＲ識別子７１１の項目値がステップ１０１０で調べた入力インターフェースのＶＲと一致し、かつ、Ｖ−ＢＡＳ側の仮ネクストホップＩＰアドレス７１２の項目値がステップ１０３０で決めた仮ネクストホップと一致し、かつ、ユーザからのパケットの入力セッション識別子７１３の項目値が入力パケットのレイヤ２セッションと一致するエントリを探す。そして、ステップ１０５１へ移行する。
ステップ１０５１では、ステップ１０４６またはステップ１０５０で一致するエントリが見つかった場合は、ステップ１０５６へ移行する。見つからなかった場合は、ステップ１０３０で決定した仮ネクストホップおよび仮出力インターフェースを、そのまま以降のステップのネクストホップＩＰアドレスおよび出力インターフェースとして扱うこととし、ステップ１０６０へ移行する。
ステップ１０５６では、見つかったエントリの新たなネクストホップＩＰアドレス（ステップ１０４６で見つかった場合はＶ−ＬＢ側の新たなネクストホップＩＰアドレス７２４、ステップ１０５０で見つかった場合はＶ−ＢＡＳ側の新たなネクストホップＩＰアドレス７１４）の値で仮ネクストホップを置き換え、以降のステップのネクストホップＩＰアドレスとして扱う。また、そのエントリの出力インターフェース識別子（ステップ１０４６で見つかった場合はＶ−ＬＢ側の出力インターフェース識別子７２５、ステップ１０５０で見つかった場合はＶ−ＢＡＳ側の出力インターフェース識別子７１５）の値で仮出力インターフェースを置き換え、以降のステップの出力インターフェースとして扱う。以上に示したステップ１０４０からステップ１０５６までの処理により、ステップ１０３０までに示した一般的なルータと同様の処理によって一旦決定したネクストホップを、ロードバランサ転送表２３４を用いて適切な負荷分散対象装置１１１のＩＰアドレスで置き換えることができる。
【００５５】
続くステップ１０６０では、出力インターフェースの識別子がインターフェース識別子５０２の項目値と一致するエントリをインターフェース表２３５から探し、見つかったエントリの仮想回線識別子５０５の項目に値が格納されているかを調べる。そして、値が格納されていれば（ステップ１０６１）、ステップ１０６６へ移行し、格納されていなければステップ１０７０へ移行する。
ステップ１０６６では、ステップ１０６０で格納されていた仮想回線識別子５０５の値と同じ仮想回線識別子５０５を持ち、かつ、パケットのネクストホップＩＰアドレスがインターフェースのＩＰアドレス５０３と一致するエントリをインターフェース表２３５から探す。そして、見つかったエントリのインターフェース識別子５０２を、パケットの新たな入力インターフェースの識別子とみなし、パケット転送処理を最初から（ステップ１０１０から）やり直す。
ステップ１０７０では、決定したネクストホップＩＰアドレスに向けて、決定した出力インターフェースから、パケットを送出し、パケット転送処理を終了する。
【００５６】
図１１は、実施例１において、本発明の通信装置がＩＳＰ網内もしくはその先のネットワークに存在するホストを宛先とするＩＰパケットをユーザ網から受信し、それをＩＳＰ網へ中継する際の送受信シーケンス図である。
まず、本発明のＢＡＳ兼ロードバランサ１００は、その装置内のＶ−ＢＡＳに接続されたユーザ網のホームルータ１３２もしくはユーザホスト１３３からＩＰパケットを受信する（ステップ１１１１、１１３１）。ここでは、このパケットの宛先ＩＰアドレスは、Ｖ−ＢＡＳと同一装置内のＶ−ＬＢに接続されたＩＳＰ網の内側、もしくはその先のネットワーク（インターネット等）に存在するホストのＩＰアドレスとする。
ユーザ網からパケットを受信した本発明の装置内のＶ−ＢＡＳは、パケット転送処理フローに基づいてネクストホップＩＰアドレスおよび出力インターフェースを決定する。この場合のパケット転送処理では、ＩＰパケット転送表２３２を用いていったん決定したネクストホップＩＰアドレスや出力インターフェースを、Ｖ−ＢＡＳ用ロードバランサ転送表７０１を用いて置き換えることになる。このため、最終的なネクストホップＩＰアドレスは負荷分散対象装置１１１のいずれかのＩＰアドレスとなり、出力インターフェースはその装置と接続されている回線インターフェースとなる。本発明の装置内のＶ−ＢＡＳは、決定した出力インターフェースから、決定したネクストホップＩＰアドレスに向けてパケットを中継する（ステップ１１１２、１１３２）。
このパケットを受信した負荷分散対象装置１１１は、その装置が実行すべき処理を行い、本発明の装置内のＶ−ＬＢへパケットを中継する（ステップ１１１３、１１３３）。
【００５７】
負荷分散対象装置１１１からパケットを受信した本発明の装置内のＶ−ＬＢは、パケット転送処理フローに基づいてネクストホップＩＰアドレスおよび出力インターフェースを決定する。この場合のパケット転送処理では、ＩＰパケット転送表２３２を用いて決定したネクストホップＩＰアドレスや出力インターフェースをそのまま用いることになる。このため、ネクストホップＩＰアドレスはＩＳＰ網エッジルータ１２１のＩＰアドレスとなり、出力インターフェースはその装置と接続されている回線インターフェースとなる。本発明の装置内のＶ−ＬＢは、決定した出力インターフェースから、決定したネクストホップＩＰアドレスに向けてパケットを中継する（ステップ１１１４、１１３４）。中継されたパケットは、必要に応じてＩＳＰ網エッジルータおよびその先にある通信装置によってさらに中継され、最終的な宛先ホストに届くことになる。
【００５８】
図１２は、実施例１において、本発明の通信装置がユーザ網内に存在するホストを宛先とするＩＰパケットをＩＳＰ網から受信し、それをユーザ網へ中継する際の送受信シーケンス図である。
まず、本発明のＢＡＳ兼ロードバランサ１００は、その装置内のＶ−ＬＢに接続されたＩＳＰ網エッジルータ１２１からＩＰパケットを受信する（ステップ１２１１、１２３１）。ここでは、このパケットの宛先ＩＰアドレスは、Ｖ−ＬＢと同一装置内のＶ−ＢＡＳに接続されたユーザ網に存在するホストのＩＰアドレスとする。
ＩＳＰ網からパケットを受信した本発明の装置内のＶ−ＬＢは、パケット転送処理フローに基づいてネクストホップＩＰアドレスおよび出力インターフェースを決定する。この場合のパケット転送処理では、ＩＰパケット転送表２３２を用いていったん決定したネクストホップＩＰアドレスや出力インターフェースを、Ｖ−ＬＢ用ロードバランサ転送表７０２を用いて置き換えることになる。このため、最終的なネクストホップＩＰアドレスは負荷分散対象装置１１１のいずれかのＩＰアドレスとなり、出力インターフェースはその装置と接続されている回線インターフェースとなる。本発明の装置内のＶ−ＬＢは、決定した出力インターフェースから、決定したネクストホップＩＰアドレスに向けてパケットを中継する（ステップ１２１２、１２３２）。
【００５９】
このパケットを受信した負荷分散対象装置１１１は、その装置が実行すべき処理を行い、本発明の装置内のＶ−ＢＡＳへパケットを中継する（ステップ１２１３、１２３３）。
負荷分散対象装置１１１からパケットを受信した本発明の装置内のＶ−ＢＡＳは、パケット転送処理フローに基づいてネクストホップＩＰアドレスおよび出力インターフェースを決定する。この場合のパケット転送処理では、ＩＰパケット転送表２３２を用いて決定したネクストホップＩＰアドレスや出力インターフェースをそのまま用いることになる。このため、ネクストホップＩＰアドレスは宛先となっているユーザ網のホームルータ１３２もしくはユーザホスト１３３のＩＰアドレスとなり、出力インターフェースはその装置と接続されているレイヤ２セッションとなる。本発明の装置内のＶ−ＢＡＳは、決定した出力インターフェースから、決定したネクストホップＩＰアドレスに向けてパケットを中継する（ステップ１２１４、１２３４）。中継されたパケットは、必要に応じてユーザ網のホームルータ１３２およびその先にある通信装置によってさらに中継され、最終的な宛先ホストに届くことになる。
【００６０】
以上に示したように実施例１では、Ｖ−ＢＡＳ１０１との間でネットワーク接続が確立されたユーザに対応するエントリをロードバランサ転送表２３４に生成し、これを用いてＶ−ＢＡＳ１０１からＶ−ＬＢ１０２へ向かうトラフィック、Ｖ−ＬＢ１０２からＶ−ＢＡＳ１０１へ向かうトラフィックの双方の負荷分散中継を行う。これにより、動的にネットワーク接続を行うユーザの行き・帰り両方向のトラフィックを同一の負荷分散対象装置１１１へ中継することができ、しかも負荷分散アルゴリズムに任意のアルゴリズムを用いることができる。
また、Ｖ−ＢＡＳ１０１とＶ−ＬＢ１０２は同一の装置内に設けられることに加え、Ｖ−ＢＡＳ１０１がトラフィックを負荷分散対象装置１１１へ中継する際には、そのトラフィックを受信したレイヤ２セッション識別子を中継先決定のために用いる。このため、ＢＡＳとロードバランサを別々に用意する場合と比べると、装置自体のコストや装置管理コストの点で有利なだけでなく、良好なパケット転送性能も期待できる。しかも、負荷分散対象装置には自律負荷分散機能のような特殊な機能が不要である。
【実施例２】
【００６１】
図１３は、実施例２のネットワーク構成、および、本実施例における本発明の通信装置の仮想的な内部構成を表す図である。
実施例２における本発明のＢＡＳ兼ロードバランサ１３００は、負荷分散中継処理をレイヤ２で行うことを除けば、実施例1における本発明のＢＡＳ兼ロードバランサ１００と同じである。
実施例２における本発明の装置１３００も、実施例１と同様に、内部にＶ−ＢＡＳ１３０１とＶ−ＬＢ１３０２の二つの仮想的な装置が存在する。ただし、実施例１と異なり、Ｖ−ＬＢ１３０２はルータではなく、レイヤ２スイッチとして動作する。このため、Ｖ−ＬＢ１３０２の各インターフェース（Ｖ−ＢＡＳ１３０１と接続される仮想回線インターフェースを含む）には、ＩＰアドレスが割り振られない。
【００６２】
一方、Ｖ−ＢＡＳ１３０１は実施例１と同様にルータとして動作する。ただし、負荷分散対象装置に接続されるインターフェースの全て、およびＶ−ＬＢ１３０２と接続される仮想回線インターフェースは、レイヤ３の観点からはまとめて一つのインターフェースとして扱われる。すなわち、これらのインターフェース全体に対して、ＩＰアドレスが一つだけ割り当てられる。これは、Ｖ−ＢＡＳ１３０１が、純粋なルータと、そのインターフェースの一つに接続されたレイヤ２負荷分散スイッチとの組み合わせで構成されている、と解釈することもできる。
負荷分散対象装置１３１１は、例えば透過型ファイアウォールのように、パケットをレイヤ２で中継する装置である。Ｖ−ＢＡＳ１３０１と負荷分散対象装置１３１１は、負荷分散対象装置１３１１それぞれについて、独立した物理的または論理的な回線で接続される。Ｖ−ＬＢ１３０２と負荷分散対象装置１３１１についても同様である。
【００６３】
図１４は、実施例２におけるＩＰパケット転送表を表す図である。
この表の用途や構成は、実施例１や実施例３におけるＩＰパケット転送表と同様である。唯一の違いは、実施例２ではＶ−ＬＢがルータではなくレイヤ２スイッチとして動作するため、Ｖ−ＬＢはこの表を使用しないし、ＶＲ識別子３０１がＶ−ＬＢとなるエントリも存在しないことである。
【００６４】
図１５は、実施例２におけるインターフェース表を表す図である。
この表の用途は、実施例１や実施例３におけるインターフェース表と同様である。ただし、負荷分散中継の対象となる回線インターフェースを明示するために、負荷分散元インターフェース識別子１５０６の項目が新たに設けられている。
Ｖ−ＢＡＳにおいては、インターフェースのＩＰアドレス５０３とインターフェースのネットマスク長５０４は、負荷分散元インターフェース識別子１５０６の項目が空か、もしくは負荷分散元インターフェース識別子１５０６の項目値とインターフェース識別子５０２の項目値が等しいか、いずれかのエントリにのみ設定される。負荷分散元インターフェース識別子１５０６の項目が空でなく、かつ、負荷分散元インターフェース識別子１５０６の項目値とインターフェース識別子５０２の項目値が異なるエントリは、レイヤ３の観点からは負荷分散元インターフェース識別子１５０６の値が示す回線インターフェースと同一の回線インターフェースとして扱われる。
Ｖ−ＬＢにおいては、インターフェースのＩＰアドレス５０３とインターフェースのネットマスク長５０４の値はどの回線インターフェースにも設定されない。負荷分散元インターフェース識別子１５０６の項目が空でなく、かつ、負荷分散元インターフェース識別子１５０６の項目値とインターフェース識別子５０２の項目値が異なるエントリは、通常のレイヤ２スイッチの観点からは負荷分散元インターフェース識別子１５０６の値が示す回線インターフェースと同一の回線インターフェースとして扱われる。すなわち、負荷分散元インターフェース識別子１５０６の項目が空でない回線インターフェースから受信したパケットをＶ−ＬＢがフラッディング中継する際には、負荷分散元インターフェース識別子１５０６の値がその回線インターフェースと同じ回線インターフェースへは出力しない。また、ある回線インターフェースから受信したパケットをＶ−ＬＢがフラッディング中継する際に、負荷分散元インターフェース識別子１５０６の値が空でなくかつ等しい複数の回線インターフェースが存在する場合は、それらのうちでいずれか一つを選択して出力し、負荷分散元インターフェース識別子１５０６の値が等しい他の回線インターフェースへは出力しない。
なお、負荷分散元インターフェース識別子１５０６の値は、ロードバランサ転送先候補表２１３の設定を装置管理者が行った際に、同時に設定される。
【００６５】
図１６は、実施例２におけるロードバランサ転送先候補表を表す図である。
この表の用途は、実施例１におけるロードバランサ転送先候補表と同様である。ただし、ネクストホップＩＰアドレスの代わりに、出力インターフェース識別子で負荷分散中継先を示している。これは、実施例２では、本発明の装置がレイヤ２で負荷分散中継を行うことと、負荷分散対象装置もレイヤ２で中継を行うことから、ネクストホップＩＰアドレスで負荷分散対象装置を一意に示すことができないためである。
具体的には、Ｖ−ＢＡＳ側の対象ネクストホップＩＰアドレス６０２、Ｖ−ＢＡＳからのパケット転送先ＩＰアドレス６０３、Ｖ−ＬＢ側の対象ネクストホップＩＰアドレス６０５、Ｖ−ＬＢからのパケット転送先ＩＰアドレス６０６の各項目が、それぞれＶ−ＢＡＳ側の対象インターフェース識別子１６０２、Ｖ−ＢＡＳからの出力インターフェース識別子１６０３、Ｖ−ＬＢ側の対象インターフェース識別子１６０５、Ｖ−ＬＢからの出力インターフェース識別子１６０６で置き換えられている。
【００６６】
図１７は、実施例２におけるロードバランサ転送表を表す図である。
この表の用途は、実施例１におけるロードバランサ転送表と同様である。ただし、ネクストホップＩＰアドレスの代わりに、出力インターフェース識別子で負荷分散中継先を示している。この理由は、ロードバランサ転送先候補表の場合と同様である。
具体的には、Ｖ−ＢＡＳ側の仮ネクストホップＩＰアドレス７１２、Ｖ−ＬＢ側の仮ネクストホップＩＰアドレス７２２の各項目が、それぞれＶ−ＢＡＳ側の仮出力インターフェース１７１２、Ｖ−ＬＢ側の仮出力インターフェース識別子１７２２で置き換えられている。また、Ｖ−ＢＡＳ側の新たなネクストホップＩＰアドレス７１４、Ｖ−ＬＢ側の新たなネクストホップＩＰアドレス７２４の各項目は、レイヤ２中継では不要なので、実施例２のロードバランサ転送表には存在しない。
【００６７】
図１８は、実施例２におけるロードバランサ転送表のエントリ生成処理フローを表す図である。
この処理の内容は、以下の相違を除いて、実施例１のロードバランサ転送表のエントリ生成処理フローと同様である。
実施例１のステップ８３０ではＶ−ＢＡＳ側の対象ネクストホップＩＰアドレス６０２を用いていたが、実施例２のステップ１８３０では代わりにＶ−ＢＡＳ側の対象インターフェース識別子１６０２を用いている。
実施例１のステップ８５０ではエントリ生成にインターフェース表２１５も参照する必要があったが、実施例２のステップ１８５０では不要になっている。ステップ１８５０で登録する新規エントリの項目のうち、Ｖ−ＢＡＳ側のＶＲ識別子７１１、Ｖ−ＢＡＳ側の仮出力インターフェース１７１２、Ｖ−ＢＡＳ側の出力インターフェース識別子７１５、Ｖ−ＬＢ側のＶＲ識別子７２１、Ｖ−ＬＢ側の仮出力インターフェース識別子１７２２、Ｖ−ＬＢ側の出力インターフェース識別子７２５の６項目には、ステップ８４０で選択したエントリの各項目（Ｖ−ＢＡＳ側のＶＲ識別子６０１、Ｖ−ＢＡＳ側の対象インターフェース識別子１６０２、Ｖ−ＢＡＳからの出力インターフェース識別子１６０３、Ｖ−ＬＢ側のＶＲ識別子６０４、Ｖ−ＬＢ側の対象インターフェース識別子１６０５、Ｖ−ＬＢからの出力インターフェース識別子１６０６）の値がそのまま用いられる。新規エントリの残りの項目（ユーザからのパケットの入力セッション識別子７１３、ユーザ宛のパケットの宛先ＩＰアドレスプレフィックス７２３）については、実施例１のステップ８５０と同様である。
【００６８】
図１９は、実施例２における本発明の通信装置のパケット転送処理フローを表す図である。
この処理の内容は、負荷分散中継先の指定にネクストホップＩＰアドレスの代わりに出力インターフェース識別子が用いられることと、Ｖ−ＬＢがレイヤ２負荷分散スイッチとして動作することを除けば、実施例１のパケット転送処理フローとほぼ同様である。
図１９の処理フローは、入力インターフェースが属するＶＲの確定（ステップ１０１０）、自宛ＩＰパケットの判定と処理（ステップ１０２０からステップ１０２６まで）、パケット転送先の決定、仮想回線の処理（ステップ１０６０からステップ１０６１までとステップ１９６６）、パケットの出力（ステップ１０７０）の五つの部分に大きく分けることができる。このうち、パケット転送先の決定の部分以外は、実施例１のパケット中継処理フローと同様である。ただし、実施例１のステップ１０６６ではネクストホップＩＰアドレスの一致もチェックしていたが、実施例２ではＶ−ＬＢがレイヤ２スイッチであり、回線インターフェースにはＩＰアドレスもＭＡＣアドレスも割り当てられていないため、実施例２のステップ１９６６ではこのチェックを省いてある。なお、上記のＭＡＣ（Media Access Control）アドレスは、回線インターフェースに割り当てられたレイヤ２アドレスを指す。
【００６９】
パケット転送先の決定の部分については、Ｖ−ＢＡＳの場合とＶ−ＬＢの場合で処理内容が大きく異なる。Ｖ−ＢＡＳの場合の処理内容（ステップ１０３０、ステップ１９５０、ステップ１０５１、ステップ１９５６）については、実施例１のパケット転送処理フローにおける、ＩＰパケット転送表による転送先の決定およびロードバランサ転送表による転送先の変更の処理内容（ステップ１０３０、ステップ１０５０、ステップ１０５１、ステップ１０５６）と同様である。ただし、実施例１のステップ１０５０およびステップ１０５６ではネクストホップＩＰアドレスを用いているが、実施例２のステップ１９５０およびステップ１９５６では代わりに出力インターフェース識別子を用いる。
Ｖ−ＬＢの場合の処理内容（図１９の処理フローのＡとＢの間の処理）については、図２０を用いて説明する。
【００７０】
図２０は、実施例２における本発明の通信装置のパケット転送処理のうち、仮想レイヤ２ロードバランサが行う処理の一部のフローを表す図である。
Ｖ−ＬＢにおけるパケット転送先の決定処理では、まず、Ｖ−ＬＢにＭＡＣアドレス学習機能があれば、そのＭＡＣアドレス学習表からＶＲ識別子の項目値がそのＶ−ＬＢと一致し、かつ、ＭＡＣアドレスの項目値が入力パケットの宛先ＭＡＣアドレスと一致するエントリを探す（ステップ２０１０）。その結果、一致するエントリが見つかれば（ステップ２０１１）、そのエントリに登録されている出力インターフェースのみを出力インターフェース識別子集合の要素とする（ステップ２０１２）。そして、ステップ２０２０へ移行する。
一致するエントリが見つからなければ、出力インターフェース識別子集合は、ＶＲ識別子５０１がそのＶ−ＬＢと一致するインターフェース表２３５の全エントリのうち、次の二つの条件のうちいずれかを満たすエントリに対応する回線インターフェース全ての集合とする（ステップ２０１６）。（１）負荷分散元インターフェース識別子１５０６の値が空のエントリ（入力インターフェースのエントリを除く）、（２）負荷分散元インターフェース識別子１５０６が空でなく、かつ、その値とインターフェース識別子５０２の値が等しいエントリ（負荷分散元インターフェース識別子１５０６の値が入力インターフェースの負荷分散元インターフェース識別子１５０６の値と等しいエントリを除く）。
なお、本発明を実施するに当たって、Ｖ−ＬＢにはＭＡＣアドレス学習機能がなくてもかまわない。すなわち、Ｖ−ＬＢは負荷分散中継機能以外についてはリピータハブとして動作してもかまわない。この場合、ステップ２０１０、２０１１、２０１２は不要となり、Ｖ−ＬＢにおけるパケット転送先の決定処理はステップ２０１６から開始される。
【００７１】
ステップ２０３０以降の処理については、出力インターフェース識別子集合の各要素について個別に実行する（ステップ２０２０）。
ステップ２０３０、２０３１、２０３６の処理内容は、実施例１のパケット転送処理フローにおける、ロードバランサ転送表による転送先の変更の処理内容（ステップ１０４６、１０５１、１０５６）と同様である。ただし、実施例１のステップ１０４６およびステップ１０５６ではネクストホップＩＰアドレスを用いているが、実施例２のステップ２０３０およびステップ２０３６では代わりに出力インターフェース識別子を用いる。
ステップ２０４０では、図１９に示したメイン処理フローに戻るが、戻ってからもステップ２０３０からステップ２０３６までと同様に、出力インターフェース識別子集合の各要素について個別に処理を実行する。
【００７２】
以上に示したように実施例２では、Ｖ−ＢＡＳ１３０１とＶ−ＬＢ１３０２との間の負荷分散中継をレイヤ２で行うため、実施例１と異なり、Ｖ−ＬＢ１３０２がレイヤ３に関して完全に透過な装置として動作する。これにより、Ｖ−ＢＡＳ１３０１とＩＳＰ網エッジルータ１２１との間に余分なルータが挟まらないネットワーク構成となることに加え、負荷分散対象装置１３１１に接続されているＶ−ＢＡＳ１３０１やＶ−ＬＢ１３０２のインターフェースに個別のＩＰアドレスを割り当てる必要がなくなる。
【実施例３】
【００７３】
図２１は、実施例３のネットワーク構成、および、本実施例における本発明の通信装置の仮想的な内部構成を表す図である。
実施例３における本発明のＢＡＳ兼ロードバランサ２１００は、サービスレベル識別子を用いた負荷分散中継処理を行うことを除けば、実施例1における本発明のＢＡＳ兼ロードバランサ１００と同じである。
本実施例では、本発明のＢＡＳ兼ロードバランサ２１００は、ユーザ毎に異なるレベルのサービスを提供する。例えば、ユーザ網１  １３０−Ａに対しては負荷分散対象装置によるファイアウォールサービスを提供せず、ユーザ網２  １３０−Ｂおよびユーザ網４  １３０−Ｄに対しては一般契約ユーザ用の負荷分散対象装置１１１−Ｂ、１１１−Ｃによるファイアウォールサービスを提供し、ユーザ網３  １３０−Ｃに対しては特別契約ユーザ用の負荷分散対象装置１１１−Ａによるファイアウォールサービスを提供する。
【００７４】
このようなサービス提供を実現するために、本発明のＢＡＳ兼ロードバランサ２１００内のＶ−ＢＡＳ２１０１は、ユーザ毎に割り当てられたサービスレベル識別子と、負荷分散対象装置１１１毎に割り当てられたサービスレベル識別子とを照合し、一致する負荷分散対象装置１１１のみをそのユーザの通信トラフィックの中継先候補とする。そして、これらの中継先候補の中から、任意の負荷分散アルゴリズムを用いて中継先の負荷分散対象装置を決定し、ロードバランサ転送表２３４に登録する。
ロードバランサ転送表２３４を用いたパケット中継処理は、実施例１とまったく同じである。
【００７５】
図２２は、実施例３におけるセッション管理表を表す図である。
この表の用途は、実施例１や実施例２におけるセッション管理表と同様である。ただし、ユーザ毎に割り当てられたサービスレベル識別子が格納される、サービスレベル識別子２２０５の項目が新たに設けられている。
本発明では、このサービスレベル識別子２２０５に設定する値を得る方法を特に定めない。例えば、ユーザ毎のサービスレベル識別子の値を認証サーバ１２２に予め登録しておき、ネットワーク接続確立処理の中で行われるユーザ認証処理時に、本発明の装置がその認証サーバ１２２から認証対象のユーザに対応するサービスレベル識別子の値を得る方法が考えられる。他の方法としては、ユーザ毎のサービスレベル識別子の値を管理者が本発明の装置に予め登録しておく方法も考えられるし、ホームルータ１３２もしくはユーザホスト１３３から本発明の装置に届くネットワーク接続要求にサービスレベル識別子の値を含める方法も考えられる。
なお、図２２の具体的なサービスレベル識別子の値に０が用いられているが、本実施例における０のサービスレベル識別子は、負荷分散対象装置１１１を通さずに、Ｖ−ＢＡＳとＶ−ＬＢとの間に設けられた仮想回線を通して通信トラフィックを中継することを表している。もちろん、このような中継方法を表すサービスレベル識別子に０以外の値を用いてもかまわないし、このような中継方法をユーザに一切提供しなくてもかまわない。
【００７６】
図２３は、実施例３におけるロードバランサ転送先候補表を表す図である。
この表の用途は、実施例１におけるロードバランサ転送先候補表と同様である。ただし、負荷分散対象装置毎に割り当てられたサービスレベル識別子が格納される、サービスレベル識別子２３０７の項目が新たに設けられている。
本発明の装置は、ユーザのネットワーク接続確立処理の実行時に、そのユーザのサービスレベル識別子２２０５と、ロードバランサ転送先候補表２１３の各エントリのサービスレベル識別子２３０７とを比較し、一致しないエントリをそのユーザに割り当てる負荷分散中継先の候補から除外する。これ以外の処理は、実施例１のロードバランサ転送先候補表に関する処理と同様である。
【００７７】
図２４は、実施例３におけるロードバランサ転送表を表す図である。
この表の用途や構成は、実施例１とまったく同じである。ただし、負荷分散中継先の決定材料にサービスレベル識別子が加わるため、この表に格納される具体的な値は、実施例１と必ずしも一致しない。
【００７８】
図２５は、実施例３におけるロードバランサ転送表のエントリ生成処理フローを表す図である。
この処理の内容は、以下の相違を除いて、実施例１のロードバランサ転送表のエントリ生成処理フローと同様である。
実施例１のステップ８１０ではサービスレベル識別子を扱わないが、実施例３のステップ２５１０ではユーザ毎に適切なサービスレベル識別子２２０５の値をセッション管理表２１１に設定する。
サービスレベル識別子が０のユーザを扱うために、ステップ２５１０の直後にステップ２５１５を設ける。セッション管理表２１１のサービスレベル識別子２２０５の値が０であるユーザについては、ロードバランサ転送表のエントリを生成せずに、エントリ生成処理を終了する。
実施例１のステップ８２０ではＶＲ識別子のみが一致するエントリを抽出するが、実施例３のステップ２５２０ではＶＲ識別子、サービスレベル識別子の両方が一致するエントリのみを抽出する。
【００７９】
図２６は、実施例３において、本発明の通信装置がＩＳＰ網内もしくはインターネットに存在するホストを宛先とするＩＰパケットをユーザ網から受信し、それをＩＳＰ網へ中継する際の送受信シーケンス図である。
以下では、サービスレベル識別子が０のユーザ網から、本発明の装置がＩＰパケットを受信した場合（ステップ２６１１、２６１４）について説明する。サービスレベル識別子が０以外のユーザ網の場合（ステップ２６３１、２６３２、２６３３、２６３４）については、ロードバランサ転送表２３４の具体的な値が異なるために中継先となる負荷分散対象装置１１１も異なるということを除いて、実施例１の場合とまったく同じである。
まず、本発明のＢＡＳ兼ロードバランサ２１００は、その装置内のＶ−ＢＡＳに接続された、サービスレベル識別子が０のユーザ網のホームルータ１３２もしくはユーザホスト１３３からＩＰパケットを受信する（ステップ２６１１）。ここでは、このパケットの宛先ＩＰアドレスは、Ｖ−ＢＡＳと同一装置内のＶ−ＬＢに接続されたＩＳＰ網の内側、もしくはその先のネットワーク（インターネット等）に存在するホストのＩＰアドレスとする。
ユーザ網からパケットを受信した本発明の装置内のＶ−ＢＡＳは、パケット転送処理フローに基づいてネクストホップＩＰアドレスおよび出力インターフェースを決定する。この場合のパケット転送処理では、ＩＰパケット転送表２３２を用いて決定したネクストホップＩＰアドレスや出力インターフェースをそのまま用いることになる。このため、最終的なネクストホップＩＰアドレスはＶ−ＬＢのＩＰアドレスとなり、出力インターフェースはＶ−ＬＢと接続されている仮想回線のインターフェースとなる。本発明の装置内のＶ−ＢＡＳは、仮想回線を通してＶ−ＬＢへパケットを中継する。
【００８０】
続いて、本発明の装置内のＶ−ＬＢは、パケット転送処理フローに基づいてネクストホップＩＰアドレスおよび出力インターフェースを決定する。この場合のパケット転送処理でも、ＩＰパケット転送表２３２を用いて決定したネクストホップＩＰアドレスや出力インターフェースをそのまま用いることになる。このため、ネクストホップＩＰアドレスはＩＳＰ網エッジルータ１２１のＩＰアドレスとなり、出力インターフェースはその装置と接続されている回線インターフェースとなる。本発明の装置内のＶ−ＬＢは、決定した出力インターフェースから、決定したネクストホップＩＰアドレスに向けてパケットを中継する（ステップ２６１４）。中継されたパケットは、必要に応じてＩＳＰ網エッジルータおよびその先にある通信装置によってさらに中継され、最終的な宛先ホストに届くことになる。
【００８１】
図２７は、実施例３において、本発明の通信装置がユーザ網に存在するホストを宛先とするＩＰパケットをＩＳＰ網から受信して、それをユーザ網へ中継する際の送受信シーケンス図である。
以下では、サービスレベル識別子が０のユーザ網へ向かうＩＰパケットを、本発明の装置が受信した場合（ステップ２７１１、２７１４）について説明する。サービスレベル識別子が０以外のユーザ網の場合（ステップ２７３１、２７３２、２７３３、２７３４）については、ロードバランサ転送表２３４の具体的な値が異なるために中継先となる負荷分散対象装置１１１も異なるということを除いて、実施例１の場合とまったく同じである。
まず、本発明のＢＡＳ兼ロードバランサ２１００は、その装置内のＶ−ＬＢに接続されたＩＳＰ網エッジルータ１２１からＩＰパケットを受信する（ステップ２７１１）。ここでは、このパケットのＩＰアドレスは、Ｖ−ＬＢと同一装置内のＶ−ＢＡＳに接続されたユーザ網に存在するホストのＩＰアドレスとする。
ＩＳＰ網からパケットを受信した本発明の装置内のＶ−ＬＢは、パケット転送処理フローに基づいてネクストホップＩＰアドレスおよび出力インターフェースを決定する。この場合のパケット転送処理では、ＩＰパケット転送表２３２を用いて決定したネクストホップＩＰアドレスや出力インターフェースをそのまま用いることになる。このため、最終的なネクストホップＩＰアドレスはＶ−ＢＡＳのＩＰアドレスとなり、出力インターフェースはＶ−ＢＡＳと接続されている仮想回線のインターフェースとなる。本発明の装置内のＶ−ＬＢは、仮想回線を通してＶ−ＢＡＳへパケットを中継する。
続いて、本発明の装置内のＶ−ＢＡＳは、パケット転送処理フローに基づいてネクストホップＩＰアドレスおよび出力インターフェースを決定する。この場合のパケット転送処理では、ＩＰパケット転送表２３２を用いて決定したネクストホップＩＰアドレスや出力インターフェースをそのまま用いることになる。このため、ネクストホップＩＰアドレスは宛先となっているユーザ網のホームルータ１３２もしくはユーザホスト１３３のＩＰアドレスとなり、出力インターフェースはその装置と接続されているレイヤ２セッションとなる。本発明の装置内のＶ−ＢＡＳは、決定した出力インターフェースから、決定したネクストホップＩＰアドレスに向けてパケットを中継する（ステップ２７１４）。中継されたパケットは、必要に応じてユーザ網のホームルータ１３２およびその先にある通信装置によってさらに中継され、最終的な宛先ホストに届くことになる。
【００８２】
以上に示したように実施例３では、ロードバランサ転送先候補表２１３を用いて負荷分散対象装置１１１それぞれにサービスレベル識別子を割り当て、この値がユーザに割り当てたサービスレベル識別子と一致するエントリのみを用いてロードバランサ転送表２１４を生成する。これにより、特定のサービスレベル識別子が割り当てられたユーザのトラフィックの負荷分散中継先候補を、同一のサービスレベル識別子が割り当てられた負荷分散対象装置１１１のみに限定できる。これを用いれば、ユーザが動的にネットワーク接続を行う環境において、ユーザ毎に異なるサービスレベルの提供と、負荷分散中継処理の両立が可能となる。
なお、以上の実施例３では、実施例１に示したレイヤ３負荷分散中継を行う本発明のＢＡＳ兼ロードバランサ１００にサービスレベル識別子に関する処理を付加したが、もちろん、実施例２に示したレイヤ２負荷分散中継を行う本発明のＢＡＳ兼ロードバランサ１３００にサービスレベル識別子に関する処理を付加することも可能である。
【実施例４】
【００８３】
図２８は、実施例４のネットワーク構成、および、本実施例における本発明の通信装置の仮想的な内部構成を表す図である。
実施例４における本発明のＢＡＳ兼ロードバランサ２８００は、その内部に複数のＶ−ＢＡＳ２８０１と、Ｖ−ＢＡＳと同数のＶ−ＬＢ２８０２を有している。それぞれのＶ−ＢＡＳ２８０１とＶ−ＬＢ２８０２は、一つずつ対となり、内部の仮想回線や外部の回線を通して接続されている。これらの回線の途中には、必要に応じて負荷分散対象装置１１１が設置される。各Ｖ−ＬＢ２８０２は、それぞれ相異なるＩＳＰ網１２０に存在する、ＩＳＰ網エッジルータ１２１と接続される。各Ｖ−ＢＡＳ２８０１は、対になっているＶ−ＬＢ２８０２が接続されているＩＳＰのユーザが有するホームルータ１３２またはユーザホスト１３３から、インターネット接続要求を受け付け、ユーザ認証を行い、ＩＳＰやインターネット等への接続を該当ユーザに提供する。
それぞれのＶ−ＢＡＳ２８０１とＶ−ＬＢ２８０２との対は、実施例１、２、３のいずれかに示した、本発明のＢＡＳ兼ロードバランサに相当する。この対を１台の装置内に複数収めることにより、１台の装置を用いて複数のＩＳＰがインターネット等のネットワーク接続サービスをユーザに提供できる。また、インターフェース表やロードバランサ転送先候補表の設定を管理者が変更することにより、どの負荷分散対象装置１１１をどのＩＳＰに割り当てるかを、柔軟に変更することが可能になる。
【図面の簡単な説明】
【００８４】
【図１】実施例１のネットワーク構成、および、本実施例における本発明の通信装置の仮想的な内部構成を表す図である。
【図２】実施例１、実施例２、実施例３、および実施例４における本発明の通信装置の内部処理アーキテクチャを示す図である。
【図３】実施例１および実施例３におけるＩＰパケット転送表を表す図である。
【図４】実施例１および実施例２におけるセッション管理表を表す図である。
【図５】実施例１および実施例３におけるインターフェース表を表す図である。
【図６】実施例１におけるロードバランサ転送先候補表を表す図である。
【図７】実施例１におけるロードバランサ転送表を表す図である。
【図８】実施例１におけるロードバランサ転送表のエントリ生成処理フローを表す図である。
【図９】実施例１、実施例２、および実施例３におけるロードバランサ転送表のエントリ削除処理フローを表す図である。
【図１０】実施例１および実施例３における本発明の通信装置のパケット転送処理フローを表す図である。
【図１１】実施例１において、本発明の通信装置がＩＳＰ網内もしくはその先のネットワークに存在するホストを宛先とするＩＰパケットをユーザ網から受信し、それをＩＳＰ網へ中継する際の送受信シーケンス図である。
【図１２】実施例１において、本発明の通信装置がユーザ網内に存在するホストを宛先とするＩＰパケットをＩＳＰ網から受信し、それをユーザ網へ中継する際の送受信シーケンス図である。
【図１３】実施例２のネットワーク構成、および、本実施例における本発明の通信装置の仮想的な内部構成を表す図である。
【図１４】実施例２におけるＩＰパケット転送表を表す図である。
【図１５】実施例２におけるインターフェース表を表す図である。
【図１６】実施例２におけるロードバランサ転送先候補表を表す図である。
【図１７】実施例２におけるロードバランサ転送表を表す図である。
【図１８】実施例２におけるロードバランサ転送表のエントリ生成処理フローを表す図である。
【図１９】実施例２における本発明の通信装置のパケット転送処理フローを表す図である。
【図２０】実施例２における本発明の通信装置のパケット転送処理のうち、仮想レイヤ２ロードバランサが行う処理の一部のフローを表す図である。
【図２１】実施例３のネットワーク構成、および、本実施例における本発明の通信装置の仮想的な内部構成を表す図である。
【図２２】実施例３におけるセッション管理表を表す図である。
【図２３】実施例３におけるロードバランサ転送先候補表を表す図である。
【図２４】実施例３におけるロードバランサ転送表を表す図である。
【図２５】実施例３におけるロードバランサ転送表のエントリ生成処理フローを表す図である。
【図２６】実施例３において、本発明の通信装置がＩＳＰ網内もしくはインターネットに存在するホストを宛先とするＩＰパケットをユーザ網から受信し、それをＩＳＰ網へ中継する際の送受信シーケンス図である。
【図２７】実施例３において、本発明の通信装置がユーザ網に存在するホストを宛先とするＩＰパケットをＩＳＰ網から受信して、それをユーザ網へ中継する際の送受信シーケンス図である。
【図２８】実施例４のネットワーク構成、および、本実施例における本発明の通信装置の仮想的な内部構成を表す図である。
【符号の説明】
【００８５】
１００  実施例１における本発明のＢＡＳ兼ロードバランサ
１０１  実施例１における仮想ＢＡＳ兼ロードバランサ（Ｖ−ＢＡＳ）
１０２  実施例１、３における仮想ロードバランサ（Ｖ−ＬＢ）
１１１  負荷分散対象装置
１２０  ＩＳＰ網
１２１  ＩＳＰ網エッジルータ
１２２  認証サーバ
１３０  ユーザ網
１３１  ホームルータが存在するユーザ網の内部に置かれているユーザホスト
１３２  ホームルータ
１３３  ユーザホスト
１４０  インターネット
２０１  制御処理部
２０２  バックプレーン
２０３  インターフェース部
２０６  主記憶装置
２０７  制御処理用プロセッサ
２０８  パケット転送処理用メモリ
２０９  パケット転送処理用プロセッサ
２１１  セッション管理表
２１２  ＩＰパケット転送表（制御処理部内）
２１３  ロードバランサ転送先候補表
２１４  ロードバランサ転送表（制御処理部内）
２１５  インターフェース表（制御処理部内）
２３２  ＩＰパケット転送表（インターフェース部内）
２３４  ロードバランサ転送表（インターフェース部内）
２３５  インターフェース表（インターフェース部内）
２６３  セッション制御処理
２６４  ＩＰ経路制御処理
２６５  ロードバランサ設定処理
２６８  インターフェース管理処理
２８１  パケット転送処理
３０１  ＶＲ識別子（ＩＰパケット転送表内）
３０２  宛先ＩＰアドレスプレフィックス（ＩＰパケット転送表内）
３０３  経路タイプ（ＩＰパケット転送表内）
３０４  ネクストホップＩＰアドレス（ＩＰパケット転送表内）
３０５  出力インターフェースまたはセッションの識別子（ＩＰパケット転送表内）
４０１  ＶＲ識別子（セッション管理表内）
４０２  インターフェース識別子（セッション管理表内）
４０３  セッション識別子（セッション管理表内）
４０４  割当ＩＰアドレスプレフィックス（セッション管理表内）
５０１  ＶＲ識別子（インターフェース表内）
５０２  インターフェース識別子（インターフェース表内）
５０３  インターフェースのＩＰアドレス（インターフェース表内）
５０４  インターフェースのネットマスク長（インターフェース表内）
５０５  仮想回線識別子（インターフェース表内）
６０１  Ｖ−ＢＡＳ側のＶＲ識別子（ロードバランサ転送先候補表内）
６０２  Ｖ−ＢＡＳ側の対象ネクストホップＩＰアドレス（ロードバランサ転送先候補表内）
６０３  Ｖ−ＢＡＳからのパケット転送先ＩＰアドレス（ロードバランサ転送先候補表内）
６０４  Ｖ−ＬＢ側のＶＲ識別子（ロードバランサ転送先候補表内）
６０５  Ｖ−ＬＢ側の対象ネクストホップＩＰアドレス（ロードバランサ転送先候補表内）
６０６  Ｖ−ＬＢからのパケット転送先ＩＰアドレス（ロードバランサ転送先候補表内）
７０１  Ｖ−ＢＡＳ用ロードバランサ転送表
７０２  Ｖ−ＬＢ用ロードバランサ転送表
７１１  Ｖ−ＢＡＳ側のＶＲ識別子（ロードバランサ転送表内）
７１２  Ｖ−ＢＡＳ側の仮ネクストホップＩＰアドレス（ロードバランサ転送表内）
７１３  ユーザからのパケットの入力セッション識別子（ロードバランサ転送表内）
７１４  Ｖ−ＢＡＳ側の新たなネクストホップＩＰアドレス（ロードバランサ転送表内）
７１５  Ｖ−ＢＡＳ側の出力インターフェース識別子（ロードバランサ転送表内）
７２１  Ｖ−ＬＢ側のＶＲ識別子（ロードバランサ転送表内）
７２２  Ｖ−ＬＢ側の仮ネクストホップＩＰアドレス（ロードバランサ転送表内）
７２３  ユーザ宛のパケットの宛先ＩＰアドレスプレフィックス（ロードバランサ転送表内）
７２４  Ｖ−ＬＢ側の新たなネクストホップＩＰアドレス（ロードバランサ転送表内）
７２５  Ｖ−ＬＢ側の出力インターフェース識別子（ロードバランサ転送表内）
１３００  実施例２における本発明のＢＡＳ兼ロードバランサ
１３０１  実施例２における仮想ＢＡＳ兼レイヤ２ロードバランサ（Ｖ−ＢＡＳ）
１３０２  実施例２における仮想レイヤ２ロードバランサ（Ｖ−ＬＢ）
１３１１  負荷分散対象装置（透過型）
１５０６  負荷分散元インターフェース識別子（インターフェース表内）
１６０２  Ｖ−ＢＡＳ側の対象インターフェース識別子（ロードバランサ転送先候補表内）
１６０３  Ｖ−ＢＡＳからの出力インターフェース識別子（ロードバランサ転送先候補表内）
１６０５  Ｖ−ＬＢ側の対象インターフェース識別子（ロードバランサ転送先候補表内）
１６０６  Ｖ−ＬＢからの出力インターフェース識別子（ロードバランサ転送先候補表内）
１７１２  Ｖ−ＢＡＳ側の仮出力インターフェース（ロードバランサ転送表内）
１７２２  Ｖ−ＬＢ側の仮出力インターフェース識別子（ロードバランサ転送表内）
２１００  実施例３における本発明のＢＡＳ兼ロードバランサ
２１０１  実施例３における仮想ＢＡＳ兼ロードバランサ（Ｖ−ＢＡＳ）
２２０５  サービスレベル識別子（セッション管理表内）
２３０７  サービスレベル識別子（ロードバランサ転送先候補表内）
２８００  実施例４における本発明のＢＡＳ兼ロードバランサ
２８０１  実施例１、２、３のいずれかに示したＶ−ＢＡＳ
２８０２  実施例１、２、３のいずれかに示したＶ−ＬＢ。
【図１】
2006245841.tif 000003
【図２】
2006245841.tif 000004
【図３】
2006245841.tif 000005
【図４】
2006245841.tif 000006
【図５】
2006245841.tif 000007
【図６】
2006245841.tif 000008
【図７】
2006245841.tif 000009
【図８】
2006245841.tif 000010
【図９】
2006245841.tif 000011
【図１０】
2006245841.tif 000012
【図１１】
2006245841.tif 000013
【図１２】
2006245841.tif 000014
【図１３】
2006245841.tif 000015
【図１４】
2006245841.tif 000016
【図１５】
2006245841.tif 000017
【図１６】
2006245841.tif 000018
【図１７】
2006245841.tif 000019
【図１８】
2006245841.tif 000020
【図１９】
2006245841.tif 000021
【図２０】
2006245841.tif 000022
【図２１】
2006245841.tif 000023
【図２２】
2006245841.tif 000024
【図２３】
2006245841.tif 000025
【図２４】
2006245841.tif 000026
【図２５】
2006245841.tif 000027
【図２６】
2006245841.tif 000028
【図２７】
2006245841.tif 000029
【図２８】
2006245841.tif 000030