(57)【特許請求の範囲】
【請求項１】
負荷平衡化のための方法であって、
IPsecイニシエータから負荷バランサでインターネット・プロトコル・セキュリティ（IPsec）パケットを受信するステップであって、前記受信されたパケットは、前記IPsecイニシエータのIPアドレスとセキュリティ・パラメータ識別子（SPI）とを含む、ステップと、
前記IPsecイニシエータの前記IPアドレスおよび前記受信されたパケットの前記SPIが前記負荷バランサによって認識されないとき、前記受信されたパケットを複数のIPsecエンドポイントの各々に転送するステップと、
前記転送されたパケットに応答して、前記複数のIPsecエンドポイントの1つから応答メッセージを受信するステップと、
前記受信された応答メッセージに基づいて、前記受信されたパケットの前記IPアドレスおよび前記SPIに関連付けられたIPsecエンドポイントを決定するステップと
を含む方法。
【請求項２】
前記IPアドレスおよび前記SPIに関連付けられた前記IPsecエンドポイントは、前記IPアドレスから受信されると共に前記SPIを含む後続のパケットを転送するための１つのIPsecエンドポイントまたは複数のエンドポイントを示す、請求項1に記載の方法。
【請求項３】
前記IPアドレスおよび前記SPIに関連付けられた前記IPsecエンドポイントは、IP：SPI対を前記複数のIPsecエンドポイントの少なくとも1つにマッピングするためのマッピングテーブルに格納される、請求項2に記載の方法。
【請求項４】
前記受信されたパケットを前記複数のIPsecエンドポイントのそれぞれに転送するときに、すべてのIPsecエンドポイントと前記イニシエータの前記IPアドレスと前記SPIとの間の関連付けを前記マッピングテーブルに記録するステップ、さらに含む、請求項3に記載の方法。
【請求項５】
イニシャルIPsecインターネット鍵交換（IKE）フェーズ1パケットを受信するステップと、
前記パケットのための前記複数のIPsecエンドポイントにおける1つを選択するステップと、
前記イニシャルIPsec IKEフェーズ1パケットのIPアドレスおよび前記イニシャルIPsec IKEフェーズ1パケットのSPIに関連付けて、前記複数のIPsecエンドポイントにおける前記選択された1つを記録するステップと、
前記受信されたイニシャルIPsec IKEフェーズ1パケットを、前記複数のIPsecエンドポイントにおける前記選択された1つに転送するステップと
をさらに含む、請求項1に記載の方法。
【請求項６】
前記受信されたIPsecパケットはIKEフェーズ2パケットであり、前記応答メッセージは、IKE Child SA応答メッセージを含み、前記IPアドレスおよびSPIに関連付けられたIPsecエンドポイントを更新するステップは、
前記SPIを含む前記イニシエータの前記IPアドレスから受信された後続のパケットが関連するIPsecエンドポイントに転送されるように、前記IKE child SA応答メッセージを送信した前記IPsecエンドポイントを、前記イニシエータの前記IPアドレスおよびSPIに関連付けるステップを含む、請求項1に記載の方法。
【請求項７】
前記受信されたIPsecパケットは、認証ヘッダ（AH）パケットまたはカプセル化セキュリティ・ペイロード（ESP）パケットであり、前記応答メッセージは、確立されたセキュリティ・アソシエーション（SA）の外部に送信されると共に前記SPIが無効であることを示す情報メッセージを含み、前記IPアドレスおよびSPIに関連付けられたIPsecエンドポイントを更新するステップは、
前記情報メッセージを送信した前記IPsecエンドポイントを、前記イニシエータの前記IPアドレスおよび前記SPIと一緒に、前記記録された関連付けから除去するステップを含む、請求項4に記載の方法。
【請求項８】
前記情報メッセージを送信した前記IPsecエンドポイントを除去した後に、任意のIPsecエンドポイントが前記イニシエータの前記IPアドレスおよび前記SPIに関連付けられているか否かを判定するステップと、
前記イニシエータの前記IPアドレスおよび前記SPIに関連付けられたIPsecエンドポイントが存在しないと判定されたとき、前記情報メッセージを前記イニシエータに転送するステップと
をさらに含む、請求項7に記載の方法。
【請求項９】
IPsecインターネット鍵交換（IKE）フェーズ1パケットを受信するステップと、
前記IPsec IKEフェーズ1パケットの前記IPアドレスおよびSPIに関連付けられたIPsecエンドポイントを識別するステップと、
前記受信されたIPsec IKEフェーズ1パケットを、前記識別されたIPsecエンドポイントに転送するステップと
をさらに含む、請求項1に記載の方法。
【請求項１０】
負荷平衡化装置であって、
ネットワークに結合されたネットワーク・インタフェースであって、前記ネットワーク・インタフェースは、IPsecイニシエータからインターネット・プロトコル・セキュリティ（IPsec）パケットを受信するためのものであり、前記受信されたパケットは、前記IPsecイニシエータのIPアドレスおよびセキュリティ・パラメータ識別子（SPI）を含む、ネットワーク・インタフェースと、
前記負荷平衡化装置を構成するための命令を実行するための、前記ネットワーク・インタフェースに結合されたプロセッサと、
を備え、前記命令が前記プロセッサに実行されると、前記負荷平衡化装置は、
前記IPsecイニシエータの前記IPアドレスと前記受信されたパケットのSPIとが前記負荷平衡化装置によって認識されないとき、前記受信されたパケットを、前記ネットワーク・インタフェースに接続された複数のIPsecエンドポイントのそれぞれに転送し、
前記転送されたパケットに応答して前記複数のIPsecエンドポイントの1つから応答メッセージを受信し、
前記受信されたパケットの前記IPアドレスおよび前記SPIに関連付けられたIPsecエンドポイントを、前記受信された応答メッセージに基づいて更新する、負荷平衡化装置。
【請求項１１】
前記IPアドレスおよび前記SPIに関連付けられた前記IPsecエンドポイントは、前記IPアドレスから受信されると共に前記SPIを含む後続パケットを転送するIPsecエンドポイントを示す、請求項10に記載の負荷平衡化装置。
【請求項１２】
前記IPアドレスおよび前記SPIに関連付けられた前記IPsecエンドポイントは、IP：SPI対を前記複数のIPsecエンドポイントの少なくとも1つにマッピングするマッピングテーブルに格納される、請求項11に記載の負荷平衡化装置。
【請求項１３】
前記命令が前記プロセッサに実行されると、前記負荷平衡化装置は、さらに、
前記受信されたパケットを前記複数のIPsecエンドポイントのそれぞれに転送するとき、すべてのIPsecエンドポイントと前記イニシエータの前記IPアドレスと前記SPIとの間の関連付けを前記マッピングテーブルに記録する、請求項12に記載の負荷平衡化装置。
【請求項１４】
前記ネットワーク・インタフェースは、イニシャルIPsecインターネット鍵交換（IKE）フェーズ1パケットを受信するようにさらに構成され、前記命令が前記プロセッサに実行されると、前記負荷平衡化装置は、さらに、
前記パケットのための前記複数のIPsecエンドポイントにおける1つを選択し、
前記イニシャルIPsec IKEフェーズ1パケットのIPアドレスおよび前記イニシャルIPsec IKEフェーズ1パケットのSPIに関連付けて、前記複数のIPsecエンドポイントにおける前記選択された1つを記録し、
前記受信されたイニシャルIPsec IKEフェーズ1パケットを、前記複数のIPsecエンドポイントにおける前記選択された1つに転送する、請求項10に記載の負荷平衡化装置。
【請求項１５】
前記受信されたIPsecパケットはIKEフェーズ2パケットであり、前記応答メッセージは、IKE Child SA応答メッセージを含み、前記IPアドレスおよびSPIに関連付けられたIPsecエンドポイントを更新することは、
前記SPIを含む前記イニシエータの前記IPアドレスから受信された後続のパケットが関連するIPsecエンドポイントに転送されるように、前記IKE child SA応答メッセージを送信した前記IPsecエンドポイントを、前記イニシエータの前記IPアドレスおよびSPIに関連付けることを含む、請求項10に記載の負荷平衡化装置。
【請求項１６】
前記受信されたIPsecパケットは、認証ヘッダ（AH）パケットまたはカプセル化セキュリティ・ペイロード（ESP）パケットであり、前記応答メッセージは、確立されたセキュリティ・アソシエーション（SA）の外部に送信されると共に前記SPIが無効であることを示す情報メッセージを含み、前記IPアドレスおよびSPIに関連付けられたIPsecエンドポイントを更新することは、
前記情報メッセージを送信した前記IPsecエンドポイントを、前記イニシエータの前記IPアドレスおよび前記SPIと一緒に、前記記録された関連付けから除去することを含む、請求項13に記載の負荷平衡化装置。
【請求項１７】
前記命令が前記プロセッサに実行されると、前記負荷平衡化装置は、さらに、
前記情報メッセージを送信した前記IPsecエンドポイントを除去した後に、任意のIPsecエンドポイントが前記イニシエータの前記IPアドレスおよび前記SPIに関連付けられているか否かを判定し、
前記イニシエータの前記IPアドレスおよび前記SPIに関連付けられたIPsecエンドポイントが存在しないと判定されたとき、前記情報メッセージを前記イニシエータに転送する
請求項16に記載の負荷平衡化装置。
【請求項１８】
前記ネットワーク・インタフェースは、IPsecインターネット鍵交換（IKE）フェーズ1パケットを受信するようにさらに構成され、前記命令が前記プロセッサに実行されると、前記負荷平衡化装置は、さらに、
前記IPsec IKEフェーズ1パケットの前記IPアドレスおよびSPIに関連付けられたIPsecエンドポイントを識別し、
前記受信されたIPsec IKEフェーズ1パケットを、前記識別されたIPsecエンドポイントに転送する、請求項10に記載の負荷平衡化装置。
【請求項１９】
仮想プライベート・ネットワーク（VPN）エンドポイント装置であって、
ネットワークに結合されたネットワーク・インタフェースであって、前記ネットワーク・インタフェースは、IPsec負荷バランサからインターネット・プロトコル・セキュリティ（IPsec）パケットを受信するためのものであり、前記受信されたパケットは、前記IPsecイニシエータのIPアドレスおよびセキュリティ・パラメータ識別子（SPI）を含む、ネットワーク・インタフェースと、
前記エンドポイント装置を構成するための命令を実行するための、前記ネットワーク・インタフェースに結合されたプロセッサと、
を備え、前記命令が前記プロセッサに実行されると、前記エンドポイント装置は、
前記受信されたIPsecパケットの前記SPIが、前記エンドポイント装置によって終端されたIPsecトンネルに関連付けられているか否かを決定し、
前記受信されたIPsecパケットが前記エンドポイント装置によって終端されていないことを示す情報メッセージをIPsec負荷バランサに送信する、VPNエンドポイント装置。
【請求項２０】
前記情報メッセージは、前記SPIが無効であることを示す、請求項19に記載のVPNエンドポイント装置。
【請求項２１】
前記情報メッセージは、確立されたセキュリティ・アソシエーション（SA）の外部で前記IPsec負荷バランサに送信されると共に、前記受信されたIPsecパケットが前記エンドポイント装置によって終端されていないことを示す、請求項19に記載のVPNエンドポイント装置。
【請求項２２】
前記受信されたIPsecパケットは、認証ヘッダ（AH）パケットまたはカプセル化セキュリティ・ペイロード（ESP）パケットまたはインターネット鍵交換（IKE）パケットである、請求項19に記載のVPNエンドポイント装置。
【請求項２３】
負荷平衡化に使用される方法であって、
インターネット・プロトコル・セキュリティ（IPsec）エンドポイント装置において、IPsec負荷バランサからのIPsecパケットを受信するステップであって、前記受信されたパケットは、前記IPsecイニシエータのIPアドレスとセキュリティ・パラメータ識別子（SPI）とを含む、ステップと、
前記受信されたIPsecパケットの前記SPIが、前記エンドポイント装置によって終端されたIPsecトンネルに関連付けられているか否かを判定するステップと、
前記受信されたIPsecパケットが前記エンドポイント装置によって終端されていないことを示す情報メッセージを前記IPsec負荷バランサに送信するステップと
を含む方法。
【請求項２４】
前記情報メッセージは、前記SPIが無効であることを示す、請求項23に記載の方法。
【請求項２５】
前記情報メッセージは、確立されたセキュリティ・アソシエーション（SA）の外部で前記IPsec負荷バランサに送信されると共に、前記受信されたIPsecパケットが前記エンドポイント装置によって終端されていないことを示す、請求項23に記載の方法。
【請求項２６】
前記受信されたIPsecパケットは、認証ヘッダ（AH）パケットまたはカプセル化セキュリティ・ペイロード（ESP）パケットまたはインターネット鍵交換（IKE）パケットである、請求項23に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2015年1月21日に出願された「LOAD BALANCING INTERNET PROTOCOL SECURITY TUNNELS」と題した米国仮出願第14/601,995号の優先権の利益を主張するものであり、その出願の内容は、参照によりその全体が本明細書に組み込まれる。
【０００２】
本開示は、ネットワークトラフィックの負荷平衡に関し、特に、インターネット・プロトコル・セキュリティ（IPsec）トラフィックの負荷平衡に関する。
【背景技術】
【０００３】
コーポレート、エンタープライズおよびデータセンタのネットワーキング環境では、サーバまたは処理デバイスは、より大きな処理能力を提供するために、複数のサーバまたは処理デバイスにわたって処理機能を複製することができる。
同一の機能が複数のサーバまたは処理デバイスにわたって複製されても、各デバイスはそれ自身のアドレスに関連付けられているため、機能についての要求を複数のサーバまたはコンピューティングデバイスの特定の1つに送信する必要がある。
【０００４】
処理要件が増加すると、複数のサーバまたはコンピューティングデバイスの前に負荷バランサを配置して、サーバ間にトラフィックを平衡させることができる。負荷バランサは、接続しているクライアントからデータを受信し、適切なサーバを選択し、選択したサーバにデータを転送する。
【０００５】
サーバによって提供される機能は、インターネット・プロトコル・セキュリティ（IPsec）サービスを含むことができる。IPsecトンネルは、開始側コンピューティングデバイスとサーバのうちの1つとの間に、宛先エンドポイントまたは中継ポイントのいずれかとして確立することができる。しかしながら、IPsecトンネルを維持するには、同じサーバが個々のIPsecトンネルに関連付けられたすべてのトラフィックを処理する必要がある。したがって、IPsecトンネルには、ネットワークトラフィックの負荷平衡を可能にするという課題がある。
【０００６】
したがって、ネットワーク内のIPsecトラフィックの負荷平衡を改善する必要がある。
【発明の概要】
【課題を解決するための手段】
【０００７】
本開示の一態様によれば、負荷平衡化のための方法であって、IPsecイニシエータから負荷バランサでインターネット・プロトコル・セキュリティ（IPsec）パケットを受信するステップであって、受信されたパケットは、IPsecイニシエータのIPアドレスとセキュリティ・パラメータ識別子（SPI）とを含む、ステップと、IPsecイニシエータのIPアドレスおよび受信されたパケットのSPIが前記負荷バランサによって認識されないとき、受信されたパケットを複数のIPsecエンドポイントの各々に転送するステップと、転送されたパケットに応答して、複数のIPsecエンドポイントの1つから応答メッセージを受信するステップと、受信された応答メッセージに基づいて、受信されたパケットの前記IPアドレスおよび前記SPIに関連付けられたIPsecエンドポイントを決定するステップと、を含む方法が提供される。
【０００８】
本開示の別の態様によれば、負荷平衡化装置であって、ネットワークに結合されたネットワーク・インタフェースであって、ネットワーク・インタフェースは、IPsecイニシエータからインターネット・プロトコル・セキュリティ（IPsec）パケットを受信するためのものであり、受信されたパケットは、IPsecイニシエータのIPアドレスおよびセキュリティ・パラメータ識別子（SPI）を含む、ネットワーク・インタフェースと、負荷平衡化装置を構成するための命令を実行するための、ネットワーク・インタフェースに結合されたプロセッサと、を備え、命令がプロセッサに実行されると、負荷平衡化装置は、IPsecイニシエータのIPアドレスと受信されたパケットのSPIとがバランサによって認識されないとき、受信されたパケットを、ネットワーク・インタフェースに接続された複数のIPsecエンドポイントのそれぞれに転送し、転送されたパケットに応答して複数のIPsecエンドポイントの1つから応答メッセージを受信し、受信されたパケットのIPアドレスおよびSPIに関連付けられたIPsecエンドポイントを、受信された応答メッセージに基づいて更新する、負荷平衡化装置が提供される。
【０００９】
本開示のさらに別の態様によれば、仮想プライベート・ネットワーク（VPN）エンドポイント装置であって、ネットワークに結合されたネットワーク・インタフェースであって、ネットワーク・インタフェースは、IPsec負荷バランサからインターネット・プロトコル・セキュリティ（IPsec）パケットを受信するためのものであり、受信されたパケットは、IPsecイニシエータのIPアドレスおよびセキュリティ・パラメータ識別子（SPI）を含む、ネットワーク・インタフェースと、エンドポイント装置を構成するための命令を実行するための、ネットワーク・インタフェースに結合されたプロセッサと、を備え、命令がプロセッサに実行されると、エンドポイント装置は、受信されたIPsecパケットのSPIが、エンドポイント装置によって終端されたIPsecトンネルに関連付けられているか否かを決定し、受信されたIPsecパケットがエンドポイント装置によって終端されていないことを示す情報メッセージをIPsec負荷バランサに送信する、VPNエンドポイント装置が提供される。
【００１０】
本開示のさらに別の態様によれば、負荷平衡化に使用される方法であって、インターネット・プロトコル・セキュリティ（IPsec）エンドポイント装置において、IPsec負荷バランサからのIPsecパケットを受信するステップと、受信されたIPsecパケットのSPIが、エンドポイント装置によって終端されたIPsecトンネルに関連付けられているか否かを判定するステップと、受信されたIPsecパケットがエンドポイント装置によって終端されていないことを示す情報メッセージをIPsec負荷バランサに送信するステップと、を含む方法が提供される。
【００１１】
本開示のさらに別の態様によれば、プロセッサによって実行される命令を持つ非一時的コンピュータ可読媒体であって、
前記命令がプロセッサに実行されると、コンピュータ・デバイスが、IPsecイニシエータから負荷バランサでIPsecパケットを受信し、受信されたパケットは、IPsecイニシエータのIPアドレスとセキュリティ・パラメータ識別子（SPI）とを含み、IPsecイニシエータのIPアドレスおよび受信されたパケットのSPIが負荷バランサによって認識されないとき、受信されたパケットを複数のIPsecエンドポイントの各々に転送し、転送されたパケットに応答して、複数のIPsecエンドポイントの1つから応答メッセージを受信し、受信された応答メッセージに基づいて、受信されたパケットのIPアドレスおよびSPIに関連付けられたIPsecエンドポイントを更新する、非一時的コンピュータ可読媒体が提供される。
【００１２】
本開示のさらに別の態様によれば、プロセッサによって実行される命令を持つ非一時的コンピュータ可読媒体であって、
前記命令がプロセッサに実行されると、コンピュータ・デバイスが、インターネット・プロトコル・セキュリティ（IPsec）エンドポイント装置において、IPsec負荷バランサからのIPsecパケットを受信し、受信されたIPsecパケットのSPIが、エンドポイント装置によって終端されたIPsecトンネルに関連付けられているか否かを判定し、受信されたIPsecパケットがエンドポイント装置によって終端されていないことを示す情報メッセージをIPsec負荷バランサに送信する、非一時的コンピュータ可読媒体が提供される。
【００１３】
実施形態が添付の図面を参照して本明細書において説明される。
【図面の簡単な説明】
【００１４】
【図１】IPsecトンネルの負荷平衡化が使用され得る環境を示す。
【図２】同じアクセスデバイスから発信されたIPsecトラフィックの負荷平衡化を示す。
【図３】IPsecトンネルの負荷平衡化のためのシステムのコンポーネントを示す。
【図４】IPsecトンネルの負荷平衡化のためのプロセスフローを示す。
【図５】IPsecトンネルの負荷平衡化のためのプロセスフローを示す。
【図６】IPsecトンネルの負荷平衡化のためのプロセスフローを示す。
【図７】負荷バランサの構成要素を示す。
【図８】IPsecトラフィックの負荷平衡化のための方法を示す。
【図９】IPsecトラフィックの負荷平衡化のためのさらなる方法を示す。
【図１０】IPsecトラフィックの負荷平衡化のためのさらなる方法を示す。
【発明を実施するための形態】
【００１５】
負荷平衡化データトラフィックは、リソースのより効率的な使用を提供することができる。以下にさらに説明するように、IPsecトンネル・トラフィックが同じソースIPアドレスから受信されたとしても、個々のトンネルのIPsecトラフィックを異なるトンネル・エンドポイントに送ることができる負荷バランサを提供することができる。
【００１６】
単一のIPsecトンネル・イニシエータから受信した仮想プライベート・ネットワーク（VPN）のIPsecトラフィック（インターネット・プロトコル・セキュリティ）を、ネットワーク内のVPNゲートウェイによって提供される複数のエンドポイントの1つに割り当てることができる負荷バランサが提供される。負荷バランサは、VPNトラフィックの配信を提供し、発信VPNトラフィックをエンドポイント間で平衡させることができる。しかしながら、VPNトラフィックの配信では、セッションが開始されると、負荷バランサは、後続のトラフィックの宛先となるエンドポイントを特定できないことがある。負荷バランサは、IP（インターネット・プロトコル）アドレスとSPI（セキュリティ・パラメータ識別子）を使用して、VPNの特定のパケットを処理するエンドポイントを識別する。したがって、既知の宛先IPアドレスと未知のSPI値について負荷バランサでメッセージが受信されるとき、負荷バランサはパケットが関連付けられているエンドポイントを特定できない。負荷バランサは、受信したパケットをすべてのエンドポイントに転送し、エンドポイントがトンネルのSPIを含むパケットを受信した場合、そのパケット転送は終了せず、エンドポイントは、SPIが未知であることを示すメッセージで応答する。前記応答から、負荷バランサはSPIのための適切なエンドポイントを判断できる。応答を追跡し、適切なエンドポイントを識別するために、テーブルが負荷バランサによって利用され得る。
【００１７】
図1は、IPsecトンネルの負荷平衡化を使用できる環境を示している。環境100は、ネットワーク102に通信可能に結合された多数のコンピューティングデバイスを含む。ネットワーク102は、接続されたコンピューティングデバイス間での通信を可能にする。デバイスは、異なる位置に配置された多数のコンピューティングデバイスを含むことができる。デバイスは、1つ以上のネットワークの外部にあってもよく、または1つ以上のネットワークの一部であってもよい。一例として、コンピューティングデバイスは、企業の本部またはメインキャンパス104に位置するコンピューティングデバイス、ホームロケーション106に配置されたコンピューティングデバイス、および企業の支所108に位置するコンピューティングデバイスを含むことができる。これらの例示的な実施形態は、これらのみが実現可能物ではないことは明らかである。同様のアーキテクチャを共有する多数の異なる使用例が存在するが、具体的な用途は異なる。
【００１８】
コンピューティングデバイスは、例えば企業本部104に配置され、接続されたデバイスに機能性を提供するいくつかの仮想プライベート・ネットワーク（VPN）ゲートウェイ110a、110b、110c（総称してVPNゲートウェイ110と呼ぶ）を含むことができる。さらに説明するように、VPNゲートウェイ110は、例えば企業の本部104のようなコンピューティングデバイスとホーム106および支所108などの遠隔地にあるコンピューティングデバイスとの間の安全な通信トンネルを提供するVPN終端またはVPNエンドポイントを提供する。VPNゲートウェイ110の各々は、実質的に同様のVPN機能を提供し、したがって、コンピューティングデバイスは、同じ方法でVPNゲートウェイ110のいずれかに接続することができる。処理機能またはサービスは、冗長性および拡張された処理能力を提供するために、複数のVPNゲートウェイ110にわたって複製され得る。VPNゲートウェイ110間の処理負荷を平衡させ、デバイスが異なるVPNゲートウェイ110に透過的に接続することを可能にするために、VPNゲートウェイ110の要求およびデータを受信し、前記要求をVPNゲートウェイ110のうちの1つに送る負荷平衡化機能112を設けることができる。
【００１９】
ホームロケーション106のコンピューティングデバイスは、接続されたコンピューティングデバイス116a、116b（総称してコンピューティングデバイス116と呼ぶ）へのネットワーク102へのアクセスを提供するアクセスデバイスまたはゲートウェイ114を含むことができる。図示のように、アクセスデバイス114はルータであってもよい。コンピューティングデバイス116は、無線または有線接続によってアクセスデバイス114に接続することができる。コンピューティングデバイス116は、アクセスデバイス114を介してネットワーク102にアクセスする。図示されているように、アクセスデバイス114は、5.x.x.12として示されるパブリックIPアドレスと、例えば内部ネットワークの192.x.x.1として示されるプライベート・ネットワークアドレスとに関連付けられることができる。コンピューティングデバイス116は、内部ネットワークのIPアドレス、すなわちそれぞれ192.x.x.101および192.x.x.102に関連付けられている。インターネットを介してデバイスまたはサービスにアクセスするとき、アクセスデバイス114は、アクセスデバイス114のパブリックIPアドレスから発信されているように見えるように、デバイス116からのトラフィックを変更する。
【００２０】
同様に、支所108に位置するコンピューティングデバイスは、ホームロケーション106内のアクセスデバイス114に同様の機能を提供するアクセスデバイスまたはゲートウェイ118を含むことができる。デスクトップコンピュータ120a、120b、120c（総称してコンピューティングデバイス120と呼ぶ）として示されている多くのコンピューティングデバイスが、アクセスデバイス118に接続されている。アクセスデバイス118は、ホームロケーション106と比較してオフィス環境において要求されるサービス品質を提供するために、追加の機能を提供してもよいし、追加容量を有してもよいことが理解されよう。しかしながら、アクセスデバイス118の機能は、アクセスデバイス118が内部ネットワークに接続されたコンピューティングデバイス120のためのインターネットへのアクセスを提供する点で、ホームロケーションにおけるアクセスデバイス114の機能に類似している。図示されるように、アクセスデバイス118は、12.x.x.55として示される少なくとも1つのパブリックIPアドレスと、10.x.x.1として示される内部ネットワーク上の少なくとも1つのIPアドレスとを含む。アクセスデバイス118に接続されたコンピューティングデバイス120のそれぞれは、それぞれ10.x.x.12,10.x.x.13,10.x.14として示される内部ネットワーク上のそれぞれのIPアドレスに関連付けられている。アクセスデバイス118は、コンピューティングデバイス120にインターネットアクセスを提供する。インターネットを介してコンピューティングデバイスまたはサービスにアクセスするとき、アクセスデバイス118は、コンピューティングデバイス120からのトラフィックをトンネルにカプセル化して、アクセスデバイス118のパブリックIPアドレスから発信されているように見えるようにすることができる。
【００２１】
アクセスデバイス114,118は、例えば、VPNゲートウェイ110の1つなどのVPNゲートウェイへの安全なトンネルを確立することができるIPsec対応デバイスであってもよい。理解されるように、IPsecトンネルは、トンネル・エンドポイント間で送信されるデータを認証および/または暗号化するために使用され得る。VPNゲートウェイの特定の1つにトンネルが確立されると、トンネル接続に関連するすべてのトラフィックを同じVPNゲートウェイに送信する必要がある。したがって、負荷平衡化機能112は、関連するすべてのトラフィックをVPN用の同じVPNゲートウェイ110に送信しなければならない。負荷平衡化機能112は、トラフィックが発生したIPアドレスを使用して、特定のトンネルについて関連するトラフィックを識別することができる。しかしながら、特定のアクセスデバイス114,118からのすべてのトラフィックは、同じIPアドレスから発信され、同じVPNゲートウェイ110に送信されるように負荷平衡化機能112には見える。すなわち、デバイス116aから発信されたトラフィックはVPNゲートウェイ110aによって処理され、デバイス116bから発信されたトラフィックはVPNゲートウェイ110bによって処理され得るが、発信元IPアドレスは負荷平準化機能と同じであるように見えるので、個々のトンネル・トラフィックを識別するためにソースIPアドレスのみが負荷バランサによって使用される場合、負荷平衡化機能112によって両方のトラフィックフローが同じVPNゲートウェイに送信される。
【００２２】
さらに説明するように、負荷平衡化機能112は、受信トラフィックをどこで処理すべきかを決定する際に、ソースIPアドレスよりも多くの情報を利用することが可能である。負荷平衡化機能112は、IPアドレスおよびトラフィックをそれぞれのVPNゲートウェイに誘導する際にセキュリティ・パラメータ識別子（SPI）および他の情報の両方を使用するように構成することができる。追加情報を利用することにより、負荷平衡化機能112は、トラフィックが同じアクセスデバイスから受信されたとしても、異なるコンピューティングデバイスからのトラフィックを異なるVPNゲートウェイに誘導することができる。
【００２３】
図2は、同じアクセスデバイスから発信されたIPsecトラフィックの負荷平衡化を示している。図示のように、アクセスデバイス114は、VPNゲートウェイ110とのIPsecトンネルを確立するIPsecイニシエータである。しかしながら、アクセスデバイス114は、負荷平衡化機能112とのIPsecトンネルの確立を試みる。すなわち、トンネル・イニシエート要求およびその後のトラフィックは、負荷平衡化機能112に誘導され、これにより、例えば、受信されたトラフィックのヘッダ情報を変更することによって、トラフィックが適切なVPNゲートウェイ110に送信される。負荷平衡化機能112は、VPNゲートウェイ110のうちの適切なVPNゲートウェイ110を選択して、トラフィックを誘導する。図示のように、通信デバイス116aはアクセスデバイス114と通信することができる。アクセスデバイス114とコンピューティングデバイス116aとの間の通信202は安全にされていなくてもよい。アクセスデバイス114は、VPNゲートウェイ110aと安全なトンネル204を確立することができる。負荷平衡化機能112を介して通信されるが、アクセスデバイス114と選択されたVPNゲートウェイ110aとの間にIPsecトンネルが確立される。図示のように、負荷平衡化機能112は、トラフィックが同じアクセスデバイス114から発信されたとしても、異なるVPNゲートウェイにトラフィックを正しく誘導することができる。したがって、負荷平衡化機能112は、異なるトンネルのトラフィックに対して異なるVPNゲートウェイを利用することが可能である。例えば、コンピューティングデバイス116bからの通信206は、負荷平衡化機能112によって選択されたVPNゲートウェイ110bとアクセスデバイスとの間のIPsecトンネル208を介して伝達されることができる。
【００２４】
上述のネットワーク環境は、説明の明瞭性のための例示的な実例を提供することを意図している。具体的なコンピューティングデバイスおよび接続が上記で説明されているが、多数の他の実現方式が可能であることが理解されるであろう。したがって、以下の説明では、複数のIPsecトンネルをイニシエートすることができる任意のコンピューティングデバイスであるIPsecイニシエータについて説明する。IPsecイニシエータは、アクセスポイント、ゲートウェイ、ルータ、コンピュータ、サーバまたは他のIPsec対応コンピューティングデバイスを含むことができる。IPsecイニシエータは、各種のコンピューティングデバイスに代わって各種のIPsecトンネルを確立するものとして説明されているが、単一のコンピューティングデバイスが複数の別々のIPsecトンネルをイニシエートすることが考えられる。同様に、以下の説明では、アクセスポイント、ゲートウェイ、ルータ、コンピュータ、サーバ、または他のコンピューティングデバイスに組み込むことができるIPsecトンネルを終端することができて、任意のコンピューティングデバイスとすることができるIPsecエンドポイントについて説明する。
【００２５】
図3は、IPsecトンネルの負荷平衡化のためのシステムのコンポーネントを示す。図示されているように、システムは、負荷バランサ302、多数のIPsecイニシエータ304a、304b、304c、304n（総称してイニシエータ304と呼ぶ）、およびIPsecエンドポイント306a、306b、306c、 306n（総称してエンドポイント306と呼ぶ）を含む。負荷バランサ302はイニシエータ304からトンネル・イニシエート要求を受信し、各イニシエート要求に対して、負荷バランサ302は、VPNに対するトンネルを誘導するためのエンドポイント306のいずれがを決定する。負荷バランサ302によって使用される選択基準は、変化し得る。例えば、負荷バランサは、ラウンドロビン方式でエンドポイントを選択してもよいし、エンドポイント306の1つ以上の処理負荷に基づいてエンドポイントを選択してもよい。負荷バランサがどのようにエンドポイント306ターミネータを選択するかにかかわらず、確立されたトンネルに関連するすべてのその後のトラフィックは、負荷バランサによって同じエンドポイントに送信される必要がある。
【００２６】
図3に示すように、イニシエータ304のそれぞれは、イニシエータ304と負荷バランサ302との間の通信に使用されるそれぞれのIPアドレスに関連付けられてもよい。また、各イニシエータ304は、図3に円で示された1つ以上の通信エンドポイント308と通信することができる。イニシエータ304の各々は、通信デバイス308のうちの1つからトラフィックを保護するために、負荷バランサによって選択されたエンドポイント306の1つとIPsecトンネルを確立することができる。トンネルの確立および利用において、イニシエータは、イニシエート要求を含むトンネル・トラフィックを負荷バランサに誘導する。負荷バランサは、エンドポイントに対して適切なVPNゲートウェイを選択し、エンドポイントにトラフィックを転送する。
【００２７】
負荷バランサ302は、複数のIPsecトンネル・イニシエータ304が、複数のIPsecトンネル・エンドポイント306を表すために使用される単一のIPアドレスに向けてIPsecトンネルをイニシエートすることを可能にする。同じトンネルに対応するすべてのパケットが適切なエンドポイント306に確実に到達するように、負荷バランサ302は、受信パケットを処理するためのエンドポイントを識別する情報を提供するマッピングテーブル312を維持する。IPsecパケットが到着するとき、マッピングは、パケットを処理するための正しいエンドポイントを決定するために使用され、負荷バランサ302は、パケットを決定されたエンドポイントに転送する。受信されたIPsecパケットが新しいIPsecトンネルの確立に関連する場合、すなわちパケットが既存のトンネルに関連付けられていない場合、負荷バランサ302は、任意の適切な負荷平衡化基準に基づいてパケットを転送するためのエンドポイントを選択することができる。
【００２８】
負荷バランサ302によって使用されるマッピングテーブル312は、パケットが受信されたソースIPと、パケットのセキュリティ・パラメータ識別子（SPI）と、同じソースIPおよびSPIを有するパケットを処理するために使用されるべきエンドポイントとを関連付ける。理解されるように、同じトンネルに関連するパケットは、イニシエータのIPアドレスに対応する同じIPアドレスを有することになる。さらに、同じトンネルに関連するパケットは、異なるSPI値を有することができる。パケットが既知のソースIPアドレスおよび未知のSPI値と共に到着するとき、負荷バランサ302は、パケットが関連付けられているエンドポイントを特定することができない。したがって、負荷バランサ302は、どのエンドポイントがSPIに関連しているかを識別するプロセスを含む。負荷バランサ302においてパケットが受信されたとき、未知のSPIによる、すなわちマッピングテーブル312にないSPIによる、負荷平衡化決定を行うために使用されるイニシャルIKEフェーズ1メッセージの後に、負荷バランサ302は、受信したパケットをすべてのエンドポイント306に転送する。エンドポイント306がトンネルに対するSPIでパケットを受信した場合、終端せず、エンドポイント306はSPIが未知であることを示すメッセージで応答する。エンドポイント306がパケットのSPIを認識した場合、パケットは通常通り処理され、応答メッセージは負荷バランサ302を介してイニシエータに返される。負荷バランサ302は、ゲートウェイから受信したメッセージを監視し、応答を使用してマッピングテーブル312を更新する。
【００２９】
図3のマッピングテーブル312は、同じイニシエータ、すなわちイニシエータ304aでイニシエートされたが、異なるエンドポイント306b、306aによって終端された2つの異なるIPsecトンネル314,316を示す。図示のように、第1のIPsecトンネル314は、3つの異なるSPI、すなわち、s1、s2、s3に関連付けられている。したがって、ソースIPアドレス「IP1」から負荷バランサ302で受信され、s1、s2またはs3のSPIを有するパケットは、処理のためにエンドポイント306bに転送される。しかしながら、同じソースIPアドレス、すなわち「IP1」から受信された他のパケットは、他のエンドポイントに宛てられてもよい。例えば、ソースIPアドレス「IP1」から開始される第2のトンネルは、2つのSPI、すなわちs10およびs11に関連付けられてもよい。ソースIPアドレス「IP1」から負荷バランサに到着し、s10またはs11のSPIを有するパケットは、さらなる処理のためにエンドポイント306aに転送される。
【００３０】
IPsecトンネル内のトラフィックは暗号化されている可能性がある。しかしながら、SPIは、暗号化されておらず、負荷バランサ302によって見られることができる。SPIは、セキュリティ・アソシエーション（SA）またはchild SAを一意に識別するために、イニシエータおよびエンドポイントによって使用される。SPIは暗号化されないかもしれないが、SPIが認識されなかったことを示す応答などのターミネータからの応答は、暗号化されたSA内で送信される可能性がある。負荷バランサ302が応答を利用することを可能にするために、エンドポイントは、追加的または代替的に、応答をSAの外部に送信することができる。したがって、認識されないSPIを示すエンドポイントからのメッセージは、負荷バランサ302によって受信され、マッピングテーブル312の更新に使用される。
【００３１】
IPsecトンネルを確立するためには、さまざまなメッセージを交換する必要がある。トンネル・エンドポイント間でイニシャル・セキュリティ・アソシエーション（SA）を確立するために、イニシャル鍵交換（IKE）プロセスが実行される。SAは、トンネルを確立する際に最初に使用される、使用される暗号化アルゴリズム、共有鍵などの、セキュリティ情報を定義する。SAが確立されると、トンネル・エンドポイント間の通信用に1つ以上の子SAが確立されます。各child SAは一方向の通信に使用され、双方向通信が必要な場合、少なくとも2つのchild SAが確立される。双方向トラフィックの場合、通常、child SAは同じIKEエクスチェンジ内にペアで確立される。確立されたトンネル内のパケットは、暗号化されていてもよいが、暗号化される必要はない。パケットは、転送中に変更されるパケットの内容に対する保護を提供する認証されたヘッダ(Authenticated Header: AH）パケットでもよいが、AHパケットは個別に暗号化されない。カプセル化セキュリティ・ペイロード（ESP）パケットは、パケットを暗号化し、場合によっては認証するために使用することができる。
【００３２】
上述のように、負荷バランサ302は、パケットを受信し、パケットを転送するための複数のIPsecエンドポイント306のうちの1つを決定する。受信したパケットが既存のIPsecトンネルに関連付けられていない場合、例えばパケットがIPsecトンネルを確立する要求に関連付けられている場合、負荷バランサ302は、選択基準に従って複数のIPsecエンドポイント306の1つを選択することができる。受信されたパケットが既存のIPsecトンネルに関連付けられている場合、例えばパケットがSPIを含む場合、負荷バランサ302は、パケット、特にパケットのソースIPアドレスおよびSPIと、関連するトンネルを担当するIPsecエンドポイント306との間のマッピングを決定することを試みる。負荷バランサ302は、パケットのソースIPアドレスおよびSPI値を、パケットを処理する責任を負うIPsecエンドポイントに関連付けるマッピングテーブルを利用することができる。マッチングが見つかった場合、パケットはIPsecエンドポイント306を提供する関連するVPNに転送される。
【００３３】
SPIに関連付けられたトンネルを担当するエンドポイントでIKEパケットが受信されたとき、パケットは通常どおり処理される。メッセージのタイプに応じて、エンドポイントは、 child SAを確立するIKEメッセージ、または他の関連メッセージを送信することができる。エンドポイントから送信されたchild SAメッセージは、ヘッダ情報に基づいて負荷バランサ302によって認識され、ヘッダ情報は暗号化されていなくてもよい。したがって、負荷バランサ302は、メッセージを受信し、child SPIを識別し、メッセージを送信したエンドポイントに新しいSPIを関連付けることができる。したがって、マッチングするソースIPおよびSPIを有する別のパケットが受信されたとき、パケットはエンドポイントに転送されることができる。
【００３４】
IKEパケットが負荷バランサ302で受信され、マッピングテーブル内のソースIPおよびSPI対にマッチングしないが、負荷バランサ決定を実行するために使用される第1のIKEフェーズ1メッセージではない場合、負荷バランサ302は、 処理のためにパケットを転送する正しいIPsecエンドポイントを特定できない。したがって、負荷バランサ302は、パケットをすべてのIPsecエンドポイント306に転送し、エンドポイント306からの応答を監視して、その後にパケットを転送するための適切なエンドポイントを決定する。負荷バランサ302が監視する応答は、転送されたパケットのSPIがエンドポイントによって認識されないことを示す任意の確立されたSAの外側のエンドポイントから送信される情報メッセージを含むことができる。情報メッセージにより、負荷バランサ302は、後続のパケットを転送すべきではないエンドポイントを決定することができる。パケットのトンネルに関連するエンドポイントによってパケットが処理されるとき、その応答は、暗号化される可能性があるため、負荷バランサ302にアクセスできないAH/ESPパケットで送信され得る。したがって、負荷バランサ302は、パケットの処理を担当するエンドポイントを確実に識別することはできず、代わりに、パケットを処理するためのエンドポイントを決定するための消去プロセスに依存し得る。負荷バランサ302がSPIを認識しないことを示す情報メッセージを受信したとき、対応するエンドポイントは、マッチンングするソースIPおよびSPIに関連するパケットを処理する可能性のあるエンドポイントのリストから除外される。
【００３５】
図4,5,6は、IPsecトンネルの負荷平衡化のためのプロセスフローを示す。図4,5,6に示すプロセスフローは、IPsecトンネルの負荷平衡化のための全体的なプロセスを表すことを目的としているため、送信される特定のメッセージに関する詳細については詳しく説明していない。しかしながら、IKE、AH、ESPなどのIPsecで使用される他のプロトコルと同様に、IPsecプロトコルも十分に文書化されていると共に、理解されている。
【００３６】
イニシエータ304は、イニシャルIPsec、より具体的にはIKEメッセージ402を負荷バランサ302に送信することによって、IPsecエンドポイントとのIPsecトンネルの確立を試みる。イニシャルメッセージは、結果として生じるSAを識別するために使用されるSPIを含む。負荷バランサ302は、IPsecトンネルを確立するためのイニシャル要求メッセージを受信し、トンネルを確立するために可能なIPsecエンドポイントの1つを選択する（404）。図4においてエンドポイント306aとして示されているエンドポイントが選択されると、負荷バランサは、図4に示されるように、イニシエータ304aに関連する「IP1」であるソースIPアドレスと、受信メッセージのSPI、すなわち「s1」と、選択されたエンドポイントとの関連付けを記録する。ソースIPとSPIとエンドポイントとの間の関連付けは、マッピングテーブル312に格納されてもよい（406）。さらに、エンドポイントがトンネル要求の処理のためにゲートウェイによって選択されると、メッセージは、選択されたエンドポイント306aに転送されるが（408）、宛先アドレスを最初に変更してもよい。エンドポイント306aは、メッセージを受信して処理し、IKEフェーズ1応答メッセージ410で応答し、これは負荷バランサ302によって受信され、イニシエータ412に転送される。
【００３７】
IKEフェーズ1エクスチェンジは、単一の要求および応答をエクスチェンジするとして上述したが、使用されるプロトコルおよび鍵などのセキュリティ情報をネゴシエートするために、複数のメッセージの交換を伴ってもよい。IKEフェーズ1エクスチェンジが完了すると、イニシエータ304aと選択されたエンドポイント306aとの間にイニシャルSAが確立される(414)。IKEフェーズ1に続いて、イニシエータは、IKEフェーズ2メッセージ・エクスチェンジを伴う追加のchild SAを確立することができる。IKEフェーズ2メッセージは、確立されたSA内で送信される。しかしながら、それらには、新しいchild SAを識別するための新しいSPIが含まれている。図示のように、イニシエータは、新しいSPI s2を含むIKEフェーズ2メッセージ416を送信することができる。負荷バランサ302がフェーズ2メッセージを受信したとき、負荷バランサは、ソースIPおよびメッセージのSPIをマッピングテーブル312内のものと比較する。しかしながら、SPI s2はマッピングテーブル内のソースIPに関連付けられていないので、SPIは負荷バランサ302に認識されず（418）、負荷バランサ302は受信したメッセージを送信するためのゲートウェイを決定できない。認識されていないIP：SPI対、すなわちマッピング312にないIPおよびSPIを有するメッセージが受信されたとき、負荷バランサ302は、すべてのエンドポイント420に関連づけてマッピングテーブルにIP：SPIを記録し、負荷バランサ422,424に関連付けられたすべてのIPsecエンドポイントにパケットを転送する。各エンドポイント306a、306nは、転送されたメッセージを受信する。エンドポイント306aの場合、エンドポイントはパケットの処理を担当するエンドポイントであり、パケットを正しく処理することができ、child SA応答426で応答することができる。負荷バランサ302は、トンネルに関連するエンドポイントからのchild SA応答を受信する。負荷バランサは、メッセージのヘッダ情報に基づいて、エンドポイントからのchild SA応答(426)を識別することができる。したがって、child SAメッセージがエンドポイント306の1つから受信されたとき、 負荷バランサは、child SAメッセージで応答したエンドポイント306aをマッピングテーブル312のIP：SPIに関連付けるために、マッピングテーブルを適切に更新することができる（428）。エンドポイントからの負荷バランサで受信されたchild SA応答は、イニシエータ304aに転送される（430）。child SA応答430は、イニシエータ304aで受信され、child SAが確立される（432）。これは、認証されたおよび/または暗号化された、安全なデータ送信(434)に使用される。双方向トラフィックのために同じメッセージ交換において確立された2つのchild SAが存在してもよい。
【００３８】
エンドポイント306nとして示されているトンネルの処理に関連付けられていないエンドポイントは、受信したSPIが無効であるという指示、すなわちSPIがエンドポイントによって処理されたトンネルに関連付けられていないという指示と共に、転送されたメッセージに応答することができる(436)。IKEメッセージに応答するとき、エンドポイントはSA内で応答することができる。しかしながら、以下でさらに説明するように、AHメッセージまたはESPメッセージに応答するとき、エンドポイントは、SAの外部で無効なSPIを示す情報メッセージを送信する。負荷バランサ302がSPIが無効であるという情報メッセージを受信したとき、対応するIP：SPI toを有するメッセージを転送するためにエンドポイントのリストから前記エンドポイントを除去することによってマッピングテーブルを更新することができる。図4に示すように、マッピングテーブルは、child SA応答に基づいて既に更新されており、更なる更新を必要としない。
【００３９】
図5は、AH/ESPメッセージのプロセスフローを示している。イニシエータ304aは、SA内でAHおよび/またはESPパケットを送信することができる。AH/ESPメッセージ502は、それぞれのSPIを含む。パケットは暗号化されてもよいが、パケットのSPI部分は暗号化されないので、パケット内のSPIは負荷バランサによってアクセスされてもよい。図5に示すように、AH/ESPメッセージ502は、「s3」のSPIを含む。負荷バランサで受信されるとき、メッセージのソースIPおよび含まれているSPIがマッピングテーブル312に対してチェックされ、メッセージを送信するためのエンドポイントが決定される。IP：SPI対がマッピングテーブルにおいて見つからないとき、すなわちそれらが負荷バランサ302によって認識されない場合、マッピングは更新されて、すべてのエンドポイントをIP：SPI対に関連付ける（506）。IP：SPIが負荷バランサによって認識されないとき、メッセージはすべてのエンドポイントに転送される(508,510)。図5では、メッセージ(502)が関連するトンネルを担当するのはエンドポイント306aである。エンドポイント306aは、転送されたメッセージ(510)を受信し、AH/ESP応答(512)で応答するメッセージを処理する。AH  SP応答メッセージは、ロードバランサ302で受信され、イニシエータに転送される(514)。負荷バランサ302は、AH/ESPメッセージの内容を判定することができず、マッピングテーブルを更新する際に応答を使用することができない。さらに、SPI値はローカルであるため、すなわち、発信元には1つのSPI値があると共に、ターミネータには1つの値が存在し、さらに、AH/ESPメッセージには1つの値しか現れないので、負荷バランサ302は、どのエンドポイントがパケットを処理するかを決定するためにメッセージ内のSPI値を利用することができず、逆方向のSPIと一方向のSPIを関連付けることができない。AH/ESPメッセージ(508)がエンドポイント306nで受信されたとき、SPIは認識されず、そのためエンドポイントはSPIが無効であることを示す情報メッセージを送信する（516）。エンドポイント306nは、情報メッセージをSAの外部に送信する。メッセージ(516)が負荷バランサ302で受信されたとき（518）、メッセージ(516)は、IP：SPIに関連付けられたマッピングテーブルから情報メッセージを送信したエンドポイント306nを削除するために、マッピングテーブル520を更新するために使用される。負荷バランサ302は、マッピングテーブル内で見つかったSPIを含むソースIPからの後続のパケットが受信されたとき、そのパケットをマッピングテーブルで識別されたターミネータまたはエンドポイントに転送する。したがって、複数のトンネルが同じIPアドレスからの異なるエンドポイントに設定されていても、特定のトンネルに関連付けられたパケットは正しいターミネータに転送される。
【００４０】
図6は、同じイニシエータから負荷バランサで新しいトンネル要求を受信するプロセスを示している。このプロセスは、図4に関して上述したものと同様である。イニシエータ304aは、新しいIPsecトンネルの確立を試み、対応する新しいSPI、すなわち「s10」(602)を伴うIKEフェーズ1要求を負荷バランサ302に送信する。負荷バランサ302は、IPsecターミネータにまだ関連付けられていない新しいトンネルを確立するための要求メッセージを受信し、トンネルを確立するためのエンドポイント306nとして示されているIPsecエンドポイントの1つを選択する。負荷バランサ302がVPN用のエンドポイント306nを選択すると、要求メッセージのソースIPおよびSPIが、マッピングテーブル606内の選択されたエンドポイントに関連付けられる。負荷バランサ302は、選択されたエンドポイントにIKEフェーズ1応答を転送し(608)、それに応じて負荷バランサ302に応答がされる（610）。負荷バランサ302は、応答メッセージ612をイニシエータに転送して、イニシャルSA614を確立する。
【００４１】
上述のように、メッセージのIPおよびSPI、およびメッセージに使用されるエンドポイントを追跡することによって、同じソースIPアドレスから受信したIPsecトンネルの負荷を平衡化することができる。認識されないIPおよびSPI対に関連付けられた負荷平衡化決定に使用された元のIKEフェーズ1メッセージを超えるメッセージが受信されると、前記メッセージはすべてのエンドポイントに転送され、応答として受信されたメッセージは、IP：SPI対を有する後続のメッセージに使用するエンドポイントを指定するマッピングテーブルを更新するために使用される。転送されたメッセージのSPIが認識されないかまたは無効であることを示すエンドポイントからの応答メッセージは、AHおよび/またはESPメッセージへの応答のためにSAの外部に送信され得る。受信されたメッセージは、エンドポイントがIP：SPI対を処理するための正しいエンドポイントであるという肯定的な指示を提供することができる。例えば、エンドポイントから受信されたchild SA応答は、IP：SPI対を処理するための正しい位置としてエンドポイントを確実に識別する。しかしながら、他のメッセージは、メッセージを処理するためにエンドポイントを確実に識別できないことがある。むしろ、情報応答メッセージは、エンドポイントがIP：SPI対メッセージを処理するための正しいエンドポイントではないことを示すことができる。そのような情報メッセージは、転送されたSPIが無効であることを示したエンドポイントを除去するための除去プロセスにおいて負荷バランサ302によって使用され得る。
【００４２】
図7は、負荷バランサの構成要素と、VPNゲートウェイなどの協働エンドポイントの構成要素とを示している。負荷バランサ302は、命令を実行するための処理ユニット702を含むことができる。処理ユニット702は、それぞれが1つ以上の処理コアを有する1つ以上の物理的中央処理ユニット（CPU）によって提供されてもよい。負荷バランサ302は、処理ユニット702による実行のためのデータおよび命令を格納するためのメモリユニット704を含むことができる。メモリユニットは、揮発性および不揮発性記憶構成要素の両方を含むことができる。メモリユニット704は、例えば、処理ユニット、ランダムアクセスメモリ（RAM）、フラッシュメモリ、およびソリッドステートドライブ（SSD）ならびにハードディスクドライブ（HDD）に関連するレジスタおよびメモリを含むことができる。また、負荷バランサ302は、1つまたは複数の入出力（I/O）コンポーネント706を含むことができる。I/Oコンポーネントは、I/Oバス、および/または前記処理ユニットに接続された構成要素を含むことができる。接続されたI/Oデバイスは、例えば、ネットワーク、モニタ、スピーカ、キーボード、マウス、マイクロフォンなどを介して通信するためのネットワーク・インタフェースを含むことができる。メモリユニット704は、同じイニシエータから複数のIPsecトンネルを負荷平衡化できる負荷バランサを提供するためのデータおよび命令を含む。
【００４３】
負荷平衡化機能708は、処理装置702によって実行されたとき、イニシエータデバイスからIPsecパケットを受信するようにサーバを構成する（710）。負荷バランサで受信された各IPsecパケットは、特定のSPIを含み、ソースIPアドレスに関連付けられたイニシエータから受信される。負荷バランサは、IP：SPI対がマッチングするパケットを処理することに関連するソース IPs:SPIとIPsecエンドポイントとの間のマッピングテーブルを維持する。負荷バランサが負荷平衡化決定を実行するために使用されるオリジナルIKEフェーズ1メッセージを超えてマッピングテーブルにはない認識されないIP：SPI対を有するパケットを受信するとき、受信されたパケットは、すべてのIPsecエンドポイントに転送され（712 ）、これらのエンドポイントは負荷バランサに関連付けられている。IPsecパケットがすべてのエンドポイントに転送されると、エンドポイントから1つまたは複数の応答メッセージを受信することができる（714）。受信されたメッセージは、メッセージを送信するエンドポイントがSPIに関連するトンネルを処理しないことを示してもよいし、エンドポイントと共に確立されたchild SAを示す応答メッセージであってもよい。負荷バランサは、1つまたは複数の受信メッセージに基づいて、転送されたパケットが処理されるものと同じソースIP：SPIを有する負荷バランサで受信されたさらなるパケットがIPsecターミネータまたはエンドポイントを決定する（716）。負荷バランサはマッピングテーブルを適宜更新し、新しいパケットがIP：SPI対で受信されたときに、それらが最初にすべてのエンドポイントに転送されることなく対応するターミネータに送信されるようにする。
【００４４】
エンドポイント装置306は、負荷バランサ302に関連する複数のエンドポイント装置のうちの1つとすることができ、命令を実行するための処理ユニット718を含むことができる。処理ユニット718は、それぞれが1つまたは複数の処理コアを有する1つまたは複数の物理的中央処理ユニット（CPU）によって提供されてもよい。エンドポイント装置306は、処理ユニット718による実行のためのデータおよび命令を格納するためのメモリユニット720を含むことができる。メモリユニット720は、揮発性および不揮発性記憶構成要素の両方を含むことができる。メモリユニット720は、例えば、処理ユニット、ランダムアクセスメモリ（RAM）、フラッシュメモリ、およびソリッドステートドライブ（SSD）ならびにハードディスクドライブ（HDD）に関連するレジスタおよびメモリを含むことができる。また、エンドポイント装置306は、1つまたは複数の入出力（I / O）コンポーネント722を含むことができる。I/Oコンポーネントは、I/Oバス、および/または前記処理ユニットに接続された構成要素を含むことができる。接続されたI/Oデバイスは、例えば、ネットワーク、モニタ、スピーカ、キーボード、マウス、マイクロフォンなどを介して通信するためのネットワーク・インタフェースを含むことができる。メモリユニット720は、IPsecトンネルの負荷平衡化に使用するためのエンドポイント装置を提供するためのデータおよび命令を含む。
【００４５】
命令の実行によって提供されるエンドポイント機能724は、パケットを受信することを含む（726）。パケットは、負荷バランサから受信され、エンドポイント装置306によって終端されたIPsecトンネルにパケットが関連付けられているか否かを判定する際に使用されるSPI値を含む（728）。パケットがエンドポイント装置306によってIPsecトンネル・エンドポイントに関連付けられている場合（728でYes）、エンドポイント装置はIPsecパケットを正常に処理する（730）。パケットがエンドポイント装置306によって終端されたIPsecトンネルに関連付けられていない場合（728でNo）、エンドポイント装置306は、受信したパケットがエンドポイント装置（732）によって終端されたトンネルに関連していないことを示す情報メッセージを負荷バランサ302に返信する。情報メッセージは、負荷バランサが、情報を受信し、同じSPIを有するパケットが転送されるエンドポイントのリストから前記エンドポイント装置を削除することを可能にするために、確立されたSAの外部に送信されることができる。
【００４６】
図8は、IPsecトラフィックの負荷平衡化のための方法を示している。方法800は、IKEフェーズ1パケットに関連する処理を示す。方法800は、イニシエータから第1のSPIを有するIKEフェーズ1パケットを受信する（802）。この方法は、受信したパケットのSPIが認識された場合であって（804）、さらにSPIが認識された場合（804でYes）、すなわち、同じSPIを有する別のパケットが受信されると共に、特定のターミネータに送信された場合、関連エンドポイントが決定される（806）。関連付けられたエンドポイントが決定されると、受信されたパケットは決定されたエンドポイントに転送され（808）、これにより処理される。SPIが認識されない場合（804でNo）、例えば、受信したパケットが第1のIKEフェーズ1パケットであって、IPsecエンドポイントがまだトンネルを処理するために割り当てられていない場合、パケットおよび関連するトンネルを処理するためのエンドポイントが決定される(810）。負荷バランサは、ラウンドロビン方式で、または個々のエンドポイントの現在の処理負荷に基づいて、様々な方法でエンドポイントを決定することができる。エンドポイントが決定されると、例えば、マッピングテーブルまたは同様の構造において、前記エンドポイントがイニシャルメッセージからのソースIPおよびSPIに関連付けられて記録される（812）。受信されたIKEフェーズ1パケットは、決定されたエンドポイントに転送され（814）、イニシエータと決定されたエンドポイントとの間にセキュリティ・アソシエーション（SA）が確立される（816）。エンドポイントが選択され、前記アソシエーションが記録されると、その後、同じIP：SPI対を有する受信されたパケットは、処理のために同じエンドポイントに転送される。
【００４７】
図9は、IPsecトラフィックの負荷平衡化のためのさらなる方法を示す。方法900は、IKEフェーズ2パケットに関連する処理を示す。IKEフェーズ2パケットは、同じイニシエータから受信することができるが、異なるSPIを有することができる（902）。パケットを受信すると、決定されたエンドポイントにIP：SPI対が既に記録されているか否かが判定される（904）。図9では、受信されたIKEフェーズ2パケットが、図8に関して上述したように以前に受信されたIKEフェーズ1パケットに関連付けられているので、同じターミネータによって処理されるべきであると仮定する。しかしながら、第2のSPIはエンドポイントに関連付けられていないため、負荷バランサは受信メッセージをどこに転送するのかわからない。受信パケットのSPIが認識された場合（904でYes）、IP：SPIに関連付けられたエンドポイントが決定され（906）、パケットはエンドポイントに転送される（908）。しかしながら、IP：SPIが認識されない場合（904でNo）、IP：SPIはすべてのIPsecエンドポイント（910）に関連づけられて記録され、パケットはすべてのエンドポイントに転送される（912）。エンドポイントからの応答が受信され（914）、すべての応答が処理されるまで（926）、受信された応答（916）のそれぞれが処理される。受信された各応答について、応答がChild SAメッセージであるか情報メッセージであるかが判定される（918）。メッセージがSPIが無効であることを示す情報メッセージである場合（918で情報）、情報メッセージを送信したエンドポイントは、IP：SPIとの関連付けから削除され（920）、同じIP：SPIを有するその後に受信されたパケットはエンドポイントに転送されない。メッセージがchild SAメッセージ（918におけるchild SA）である場合、child SA応答はイニシエータに転送され（922）、child SAメッセージを送信したエンドポイントはIP：SPIに関連づけられて記録され、前記エンドポイントはIP：SPI（924）に関連する唯一のものとなる。処理すべき応答がもはや受信されなくなると（926）、IP：SPIに関連づけられて記録された少なくとも1つのエンドポイントがあるか否かが判定される（928）。IP：SPIに関連してまだ登録されていないエンドポイントが存在しない場合（928でNo）、エンドポイントのいずれもSPIを認識せず、最後に受信した情報メッセージがイニシエータ（930）にエラーメッセージとして転送される。最後の情報メッセージを転送した後、またはIP：SPIに関連づけられて記録されたエンドポイントがまだ存在する場合（928でYes）、処理は完了する（932）。
【００４８】
図10は、IPsecトラフィックの負荷平衡化のためのさらなる方法を示している。方法1000は、AHおよび/またはESPパケットに関連する処理を示す。イニシエータからのSPIを伴うAH/ESPパケットが受信される（1002）。受信されたパケットのSPIが認識されたか否かを判定する（1004）。SPIは、IP：SPI対が特定のエンドポイントに関連付けられている場合に認識される。前記関連付けは、例えば、マッピングテーブルまたは同様の構造を使用することを含む、様々な方法で記録されることができる。SPIが認識された場合（1004でYes）、IP：SPIに関連付けられたエンドポイントが決定され（1006）、決定されたエンドポイントに転送されるパケット（1008）およびAH/ESPパケットの処理が終了する（1018）。しかしながら、SPIが認識されない場合（1004でNo）、すべてのエンドポイントはIP：SPIに関連して登録され（1010）、受信されたパケットは各エンドポイントに転送される（1012）。AH/ESPパケットを受信したが、SPIによって示されるSAを有さないいずれのエンドポイントも、SPIが無効であることを示しつつSAの外部に送信される情報メッセージと共に前記パケットに応答する。SPIによって示されたSAを担当するエンドポイントは、AH/ESP応答で応答し、これは、負荷バランサがトンネル暗号化の結果として識別できないためであり、AH/ESP応答メッセージが適切なイニシエータに転送される。したがって、IP：SPIを用いてパケットを転送するエンドポイントを決定するために、本方法は、SPIが無効であることを示す情報メッセージが受信されたときに、記録された関連付けからの除去プロセスを使用する。無効なSPIを示す情報メッセージがエンドポイントから受信されると（1014）、対応するエンドポイントはIP：SPIとの関連付けから除去され（1016）、AH/ESPパケットの処理が終了する（1018）。
【００４９】
上記では、IPsecトラフィックの負荷平衡化のさまざまな態様について説明した。説明したように、複数のIPsecトンネルが単一のイニシエータから確立されたとしても、トンネルは、複数の別々のIPsecエンドポイントにわたって平衡化されることができる。上記では、様々な具体的な内容を参照して負荷平衡化について説明したが、IPsecトラフィックの負荷平衡化を提供しながら、具体的な内容を変更してもよいことは理解されよう。一例として、上記では、マッピングテーブル内のIPsecエンドポイント、ソースIPおよびSPI間の関連付けを格納することについて説明した。しかしながら、前記関連付けを記録するために他の記憶構造が使用されてもよい。さらに、方法を参照して説明したステップの特定の順序を変更してもよい。例えば、関連付けを記録することとして説明されているが、エンドポイントにパケットを転送すると、パケットを転送すると共に関連付けを記録することが可能であり、またはそれを並行して行うことができる。IPsecイニシエータ、負荷バランサ、およびIPsecエンドポイントなどの様々な構成要素は、別々の物理構成要素として説明することができるが、1つまたは複数の構成要素を同じ物理コンピューティングハードウェア上に提供することも考えられる。一例として、複数のイニシエータが単一のコンピューティングデバイス上に提供されてもよい。さらに、例えば、負荷バランサは、1つまたは複数のIPsecエンドポイントと同じ物理コンピューティングデバイス上に提供されてもよい。
【００５０】
特定の構成要素およびステップが記載されているが、個々に記載された構成要素およびステップは、より少数の構成要素またはステップに一緒に組み合わされてもよく、またはステップが順次、非連続的にまたは同時に実行されてもよい。同様に、個々の構成要素またはステップは、複数の構成要素またはステップによって提供されてもよい。当業者は、本明細書の教示を考慮して、IPsec負荷平衡化機能が、例示的な実施形態として本明細書で説明される特定の実装形態以外のソフトウェア、ファームウェアおよび/またはハードウェアの様々な組み合わせによって提供され得ることを理解するであろう。
【符号の説明】
【００５１】
302 負荷バランサ
304a イニシエータA
304b イニシエータB
304c イニシエータC
304n イニシエータN
306a エンドポイントA
306b エンドポイントB
306c エンドポイントC
306n エンドポイントN
312 マッピングテーブル
【図１】
0006452181.tif 000002
【図２】
0006452181.tif 000003
【図３】
0006452181.tif 000004
【図４】
0006452181.tif 000005
【図５】
0006452181.tif 000006
【図６】
0006452181.tif 000007
【図７】
0006452181.tif 000008
【図８】
0006452181.tif 000009
【図９】
0006452181.tif 000010
【図１０】
0006452181.tif 000011