Cisco セキュリティ アプライアンス コマンドライン コンフィギュレーション ガイド v.8.0
IPSec VPN の一般パラメータの設定
IPSec VPN の一般パラメータの設定
発行日;2012/02/03 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 20MB) | フィードバック

目次

IPSec VPN の一般パラメータの設定

単一のルーテッド モードでの VPN の設定

アクセス コントロール リスト(ACL)をバイパスするための IPSec の設定

インターフェイス内トラフィックの許可

インターフェイス内トラフィックにおける NAT の注意事項

アクティブな IPSec VPN セッションの最大数の設定

許可されるクライアント リビジョン レベル確認のためのクライアント アップデートの使用

ロード バランシングの概要

ロード バランシングの実装

前提条件

適格なプラットフォーム

適格なクライアント

VPN ロード バランシング クラスタ コンフィギュレーション

一部の一般的な混在クラスタのシナリオ

シナリオ 1:WebVPN 接続のない混在クラスタ

シナリオ 2:WebVPN 接続を処理する混在クラスタ

ロード バランシングの設定

ロード バランシング用のパブリック インターフェイスとプライベート インターフェイスの設定

ロード バランシング クラスタ アトリビュートの設定

完全修飾ドメイン名を使用したリダイレクションのイネーブル化

ロード バランシングの表示

VPN セッション制限の設定

IPSec VPN の一般パラメータの設定

バーチャル プライベート ネットワークのセキュリティ アプライアンスの実装には、カテゴリの枠を超えた便利な機能があります。この章では、これらの機能のいくつかについて説明します。この章は、次の項で構成されています。

「単一のルーテッド モードでの VPN の設定」

「アクセス コントロール リスト(ACL)をバイパスするための IPSec の設定」

「インターフェイス内トラフィックの許可」

「アクティブな IPSec VPN セッションの最大数の設定」

「許可されるクライアント リビジョン レベル確認のためのクライアント アップデートの使用」

「ロード バランシングの概要」

「ロード バランシングの設定」

「VPN セッション制限の設定」

単一のルーテッド モードでの VPN の設定

VPN は、単一のルーテッド モードだけで動作します。セキュリティ コンテキストが含まれるコンフィギュレーション(マルチモード ファイアウォールとも呼ばれる)、または Active/Active ステートフル フェールオーバーが含まれるコンフィギュレーションでは、VPN 機能は利用できません。

例外として、管理上の目的で、透過モードでのセキュリティ アプライアンスへの接続(通過はしない)を 1 つ設定して使用することができます。

アクセス コントロール リスト(ACL)をバイパスするための IPSec の設定

IPSec トンネルから送信されるすべてのパケットに対して、ACL で発信元インターフェイスと宛先インターフェイスをチェックせずに許可するには、グローバル コンフィギュレーション モードで sysopt connection permit-ipsec コマンドを入力します。

IPSec トラフィックのインターフェイス ACL をバイパスする必要があるのは、セキュリティ アプライアンスの背後で別の VPN コンセントレータを使用し、なおかつセキュリティ アプライアンスのパフォーマンスを最大限にする場合などです。通常、IPSec パケットを許可する ACL を access-list コマンドを使用して作成し、これを発信元インターフェイスに適用します。ACL を使用すると、セキュリティ アプライアンスを通過できるトラフィックを正確に指定できるため、セキュリティが向上します。

シンタックスは、 sysopt connection permit-ipsec です。このコマンドには、キーワードも引数もありません。

次の例では、ACL をチェックせずにセキュリティ アプライアンスを通過する IPSec トラフィックをイネーブルにします。

hostname(config)# sysopt connection permit-ipsec
 

) クライアントからの復号化された「通過」トラフィックは、no sysopt connection permit-vpn が設定されていても、外部インターフェイスに「deny ip any any」アクセス リストを呼び出すアクセス グループがあるにもかかわらず許可されます。

外部インターフェイス上で no sysopt permit コマンドとアクセス コントロール リスト(ACL)を使用して、保護されたネットワークへの、サイトツーサイト VPN またはリモート アクセス VPN を経由したアクセスを制御しようとしても、成功しません。

この状況では、内部の管理アクセスをイネーブルにすれば、ACL は適用されずに、ユーザは引き続き SSH を使用してセキュリティ アプライアンスに接続できます。内部ネットワーク上のホストに対するトラフィックは ACL によって正しくブロックされますが、内部インターフェイスへの復号化された「通過」トラフィックはブロックできません。

ssh コマンドおよび http コマンドのプライオリティは ACL より上です。つまり、VPN セッションからのボックスに対する ssh、telnet、または ICMP トラフィックを拒否するには、ssh、telnet、および icmp の各コマンドを使用して、IP ローカル プールの拒否を追加する必要があります。


インターフェイス内トラフィックの許可

セキュリティ アプライアンスには、IPSec で保護されたトラフィックに対して、同じインターフェイスの出入りを許可することにより、VPN クライアントが別の VPN ユーザに IPSec で保護されたトラフィックを送信できる機能があります。「ヘアピニング」とも呼ばれるこの機能は、VPN ハブ(セキュリティ アプライアンス)を介して接続している VPN スポーク(クライアント)と見なすことができます。

別のアプリケーションでは、この機能により、着信 VPN トラフィックを同じインターフェイスを介して暗号化されていないトラフィックとしてリダイレクトできます。この機能は、たとえば、スプリット トンネリングがない状態で、VPN へのアクセスと Web のブラウズの両方を行う必要がある VPN クライアントに役立ちます。

図 31-1 では、VPN クライアント 1 が VPN クライアント 2 に対してセキュアな IPSec トラフィックを送信し、パブリック Web サーバに対しては暗号化されていないトラフィックを送信していることを示しています。

図 31-1 ヘアピニングにインターフェイス内機能を使用する VPN クライアント

 

この機能を設定するには、グローバル コンフィギュレーション モードで intra-interface 引数を指定して same-security-traffic コマンドを実行します。

コマンドのシンタックスは、same-security-traffic permit { inter-interface | intra-interface } です。

次の例では、インターフェイス内トラフィックをイネーブルにする方法を示しています。

hostname(config)# same-security-traffic permit intra-interface
hostname(config)#
 

same-security-traffic コマンドに inter-interface 引数を指定すると、セキュリティ レベルが同一のインターフェイス間の通信を許可します。この機能は、IPSec 接続に固有のものではありません。詳細については、このマニュアルの「インターフェイス パラメータの設定」を参照してください。


ヘアピニングを使用するには、次の項で説明するように、適切な NAT 規則をセキュリティ アプライアンス インターフェイスに適用する必要があります。

インターフェイス内トラフィックにおける NAT の注意事項

セキュリティ アプライアンスがインターフェイスを介して暗号化されていないトラフィックを送信するには、そのインターフェイスに対する NAT をイネーブルにし、プライベート IP アドレスをパブリックにルーティング可能なアドレスに変換する必要があります(ただし、ローカル IP アドレス プールですでにパブリック IP アドレスを使用している場合は除きます)。次の例では、クライアント IP プールから発信されたトラフィックに、インターフェイス PAT 規則を適用しています。

hostname(config)# ip local pool clientpool 192.168.0.10-192.168.0.100
hostname(config)# global (outside) 1 interface
hostname(config)# nat (outside) 1 192.168.0.0 255.255.255.0
 

ただし、セキュリティ アプライアンスがこの同じインターフェイスから暗号化された VPN トラフィックを送信する場合、NAT は任意です。VPN 間ヘアピニングは、NAT を使用してもしなくても機能します。すべての発信トラフィックに NAT を適用するには、上記のコマンドだけを実装します。VPN 間トラフィックを NAT から免除するには、次のように、VPN 間トラフィックの NAT 免除を実装するコマンドを(上記のコマンドに)追加します。

hostname(config)# access-list nonat permit ip 192.168.0.0 255.255.255.0 192.168.0.0 255.255.255.0
hostname(config)# nat (outside) 0 access-list nonat

 

NAT 規則の詳細については、このマニュアルの「NAT の適用」を参照してください。

アクティブな IPSec VPN セッションの最大数の設定

VPN セッションの数をセキュリティ アプライアンスが許可する数よりも小さい値に制限するには、グローバル コンフィギュレーション モードで vpn-sessiondb max-session-limit コマンドを入力します。

このコマンドは、WebVPN を含むあらゆるタイプの VPN セッションに適用されます。

このセッション数の制限は、VPN ロード バランシング用に算出されたロード率に影響します。

シンタックスは、 vpn-sessiondb max-session-limit { session-limit } です。

次の例では、VPN セッションの最大数を 450 に設定する方法を示しています。

hostname (config)# vpn-sessiondb max-session-limit 450
hostname (config)#

許可されるクライアント リビジョン レベル確認のためのクライアント アップデートの使用

クライアント アップデート機能を使用すると、中央にいる管理者は、VPN クライアント ソフトウェアをアップデートする時期と VPN 3002 ハードウェア クライアント イメージを、VPN クライアント ユーザに自動的に通知できます。

リモート ユーザは、旧式の VPN ソフトウェア バージョンまたはハードウェア クライアント バージョンを使用している可能性があります。 client-update コマンドを使用すると、いつでもクライアント リビジョンのアップデートをイネーブルにして、アップデートを適用するクライアントのタイプおよびリビジョン番号を指定し、アップデートを取得する URL または IP アドレスを提供できます。また、Windows クライアントの場合は、オプションで、VPN クライアント バージョンをアップデートする必要があることをユーザに通知できます。Windows クライアントの場合、アップデートを実行するメカニズムをユーザに提供できます。VPN 3002 ハードウェア クライアント ユーザの場合、アップデートは通知せずに自動的に行われます。このコマンドは、IPSec リモート アクセス トンネル グループ タイプにだけ適用されます。

クライアント アップデートを実行するには、一般コンフィギュレーション モードまたはトンネル グループ ipsec アトリビュート コンフィギュレーション モードで client-update コマンドを入力します。クライアントがリビジョン番号リストにあるソフトウェア バージョンをすでに実行している場合、ソフトウェアをアップデートする必要はありません。クライアントがリストにあるソフトウェア バージョンを実行していない場合、アップデートする必要があります。次の手順は、client-update の実行方法を示しています。


ステップ 1 グローバル コンフィギュレーション モードで、次のコマンドを入力してクライアント アップデートをイネーブルにします。

hostname(config)# client-update enable
hostname(config)#
 

ステップ 2 グローバル コンフィギュレーション モードで、特定のタイプのすべてのクライアントに適用するクライアント アップデートのパラメータを指定します。つまり、クライアントのタイプ、アップデート イメージを取得する URL または IP アドレス、および許可されるリビジョン番号または対象クライアントの番号を指定します。最大 4 つのリビジョン番号をカンマで区切って指定できます。

ユーザのクライアントのリビジョン番号が、指定したリビジョン番号のいずれかと一致している場合、そのクライアントをアップデートする必要はありません。このコマンドは、セキュリティ アプライアンス全体にわたって指定されているタイプのすべてのクライアントの client-update 値を指定します。

これを行うコマンドのシンタックスは次のとおりです。

hostname(config)# client-update type type url url-string rev-nums rev-numbers
hostname(config)#
 

使用可能なクライアント タイプは、 win9X (Windows 95、Windows 98、および Windows ME プラットフォーム)、 winnt (Windows NT 4.0、Windows 2000、および Windows XP プラットフォーム)、 windows (すべての Windows ベースのプラットフォーム)、および vpn3002 (VPN 3002 ハードウェア クライアント)です。

クライアントがリビジョン番号リストにあるソフトウェア バージョンをすでに実行している場合、ソフトウェアをアップデートする必要はありません。クライアントがリストにあるソフトウェア バージョンを実行していない場合、アップデートする必要があります。これらのクライアント アップデート エントリから 3 つまで指定することができます。キーワード windows を指定すると、許可されるすべての Windows プラットフォームがカバーされます。 windows を指定する場合は、個々の Windows クライアント タイプは指定しないでください。


) すべての Windows クライアントでは、URL のプレフィクスとしてプロトコル http:// または https:// を使用する必要があります。VPN 3002 ハードウェア クライアントの場合、代わりにプロトコル tftp:// を指定する必要があります。


次の例では、リモート アクセス トンネル グループのクライアント アップデート パラメータを設定しています。リビジョン番号は 4.6.1、アップデートを取得するための URL は https://support/updates を指定しています。

hostname(config)# client-update type windows url https://support/updates/ rev-nums 4.6.1
hostname(config)#
 

あるいは、特定のタイプのすべてのクライアントではなく、個々のトンネル グループだけのためのクライアント アップデートを設定できます(ステップ 3 を参照)。

VPN 3002 クライアントのアップデートはユーザの介入なしに行われ、ユーザは通知メッセージを受け取りません。次の例は、VPN 3002 ハードウェア クライアントにだけ適用されます。トンネル グループ ipsec アトリビュート コンフィギュレーション モードに入ると、IPSec リモート アクセス トンネル グループ「salesgrp」用のクライアント アップデート パラメータが設定されます。ここでは、リビジョン番号 4.7 を指定し、IP アドレスが 192.168.1.1 のサイトからアップデートされたソフトウェアを取得するために TFTP プロトコルを使用します。

hostname(config)# tunnel-group salesgrp type ipsec-ra
hostname(config)# tunnel-group salesgrp ipsec-attributes
hostname(config-tunnel-ipsec)# client-update type vpn3002 url tftp:192.168.1.1 rev-nums 4.7
hostname(config-tunnel-ipsec)#
 

) URL の末尾にアプリケーション名を含めることで、ブラウザに自動的にアプリケーションを開始させることができます。例:https://support/updates/vpnclient.exe


ステップ 3 特定の ipsec-ra トンネル グループに対して client-update パラメータのセットを定義するには、次の手順を実行します。トンネル グループ ipsec アトリビュート モードで、トンネル グループ名とそのタイプ、アップデートされたイメージを取得する URL または IP アドレス、およびリビジョン番号を指定します。ユーザのクライアントのリビジョン番号が、指定されているリビジョン番号のいずれかと一致している場合、Windows クライアントなどのクライアントをアップデートする必要はありません。

hostname(config)# tunnel-group remotegrp type ipsec-ra
hostname(config)# tunnel-group remotegrp ipsec-attributes
hostname(config-tunnel-ipsec)# client-update type windows url https://support/updates/ rev-nums 4.6.1
hostname(config-tunnel-ipsec)#
 

ステップ 4 オプションで、クライアントのアップデートが必要な旧式の Windows クライアントを使用しているアクティブなユーザに通知を送信できます。これらのユーザにはポップアップ ウィンドウが表示され、ブラウザを起動して、URL で指定したサイトからアップデートされたソフトウェアをダウンロードする機会が提供されます。このメッセージのうち、設定可能な部分は URL だけです (ステップ 2 または 3 を参照)。アクティブでないユーザは、次回ログインしたときに通知メッセージを受け取ります。この通知は、すべてのトンネル グループのすべてのアクティブなクライアントに送信するか、または特定のトンネル グループのクライアントに送信することができます。たとえば、すべてのトンネル グループのすべてのアクティブなクライアントに通知を送信するには、特権 EXEC モードで次のコマンドを入力します。

hostname# client-update all
hostname#
 

ユーザのクライアントのリビジョン番号が、指定されているリビジョン番号のいずれかと一致している場合、そのクライアントをアップデートする必要はなく、通知メッセージはユーザに送信されません。VPN 3002 クライアントのアップデートはユーザの介入なしに行われ、ユーザは通知メッセージを受け取りません。


 


) client-update タイプを windows と指定(Windows ベースのすべてのプラットフォームを指定)した後、同じエンティティに win9x または winnt の client-update タイプを入力する場合、まずこのコマンドの no 形式を使用して windows クライアント タイプを削除してから、新しく client-update コマンドを使用して新しいクライアント タイプを指定する必要があります。


ロード バランシングの概要

リモート セッションを処理するために同じネットワークに接続されている 2 つ以上のセキュリティ アプライアンスまたは VPN コンセントレータを使用しているリモート アクセス コンフィギュレーションがある場合、それぞれのセッションの負荷を共有するようにこれらのデバイスを設定できます。この機能は、 ロード バランシング と呼ばれます。ロード バランシングを実装するには、同じプライベート LAN-to-LAN ネットワーク、プライベート サブネット、およびパブリック サブネット上の 2 つ以上のデバイスを論理的に 仮想クラスタ にグループ化します。

仮想クラスタ内のすべてのデバイスがセッションの負荷を伝送します。ロード バランシングにより、セッションのトラフィックはクラスタ内の最も負荷の少ないデバイスに転送され、負荷はすべてのデバイス間に分散されます。これにより、システム リソースが効率的に使用され、パフォーマンスが向上し、ハイ アベイラビリティが実現します。

仮想クラスタ内の 1 つのデバイスである 仮想クラスタ マスター は、着信トラフィックを セカンダリ デバイス と呼ばれる他のデバイスに転送します。仮想クラスタ マスターは、クラスタ内の全デバイスを監視し、それぞれのビジー状態を追跡して、適宜セッションの負荷を分散します。仮想クラスタ マスターの役割は、1 つの物理デバイスに結び付けられるものではなく、デバイス間でシフトできます。たとえば、現在の仮想クラスタ マスターで障害が発生すると、クラスタ内のセカンダリ デバイスの 1 つがその役割を引き継いで、すぐに新しい仮想クラスタ マスターになります。


show コマンドの出力は、クラスタ内のセカンダリ デバイスをバックアップ デバイスとして表示する場合があります。


仮想クラスタは、外部のクライアントには 1 つの 仮想クラスタ IP アドレス として表示されます。この IP アドレスは、特定の物理デバイスに結び付けられていません。現在の仮想クラスタ マスターに属しているため、仮想のアドレスです。接続の確立を試みている VPN Client は、最初にこの仮想クラスタ IP アドレスに接続します。次に、仮想クラスタ マスターは、クラスタ内で使用可能な最も負荷の少ないホストのパブリック IP アドレスをクライアントに送り返します。2 番目のトランザクション(ユーザには意識されない)で、クライアントはそのホストに直接接続します。このような方法で、仮想クラスタ マスターは、リソース全体に均一かつ効率的にトラフィックを転送します。


) Cisco VPN クライアントまたは Cisco 3002 ハードウェア クライアント以外のすべてのクライアントは、通常どおりセキュリティ アプライアンスに直接接続する必要があります。これらのクライアントは、仮想クラスタ IP アドレスを使用しません。


クラスタ内のマシンで障害が発生すると、終了したセッションはただちに仮想クラスタ IP アドレスに再接続できます。次に、仮想クラスタ マスターは、これらの接続をクラスタ内の別のアクティブなデバイスに転送します。仮想クラスタ マスター自体に障害が発生した場合、クラスタ内のセカンダリ デバイスが、ただちに新しい仮想セッション マスターを自動的に引き継ぎます。クラスタ内の複数のデバイスで障害が発生しても、クラスタ内のデバイスが 1 つ稼動していて使用可能である限り、ユーザはクラスタに引き続き接続できます。

ロード バランシングの実装

ロード バランシングをイネーブルにするには、次の手順を実行します。

共通仮想クラスタ IP アドレス、UDP ポート(必要に応じて)、およびクラスタの IPSec 共有秘密情報を確立することによりロード バランシング クラスタを設定する。これらの値は、クラスタ内のすべてのデバイスに対して同一に設定する必要があります。

デバイスでロードバランシングをイネーブルにし、デバイス固有のプロパティを定義することにより、参加デバイスを設定する。これらの値はデバイスによって異なります。


) VPN ロード バランシングには、アクティブな 3DES/AES ライセンスが必要です。セキュリティ アプライアンスは、ロード バランシングをイネーブルにする前に、この暗号化ライセンスの存在をチェックします。アクティブな 3DES または AES ライセンスを検出できない場合、セキュリティ アプライアンスは、ロード バランシングのイネーブル化を回避し、さらにライセンスがこの使用を許可していない限り、ロード バランシング システムによる 3DES の内部コンフィギュレーションも回避します。


前提条件

ロード バランシングはデフォルトではディセーブルになっています。ロード バランシングは明示的にイネーブルにする必要があります。

まず、パブリック(外部)インターフェイスおよびプライベート(内部)インターフェイスを設定し、さらに仮想クラスタ IP アドレスが参照するインターフェイスを事前に設定しておく必要があります。これらのインターフェイスに異なる名前を設定するには、 interface コマンドと nameif コマンドを使用します。この項では、これ以降の参照に外部および内部の名前を使用します。

クラスタに参加するすべてのデバイスは、同じクラスタ固有の値である IP アドレス、暗号設定、暗号キー、およびポートを共有する必要があります。

適格なプラットフォーム

ロード バランシング クラスタには、セキュリティ アプライアンス モデルの ASA 5510(Plus ライセンスあり)および Model 5520 以降を含めることができます。VPN 3000 シリーズ コンセントレータをクラスタに含めることもできます。混在のコンフィギュレーションも可能ですが、一般にクラスタが同種であれば管理は容易になります。

適格なクライアント

ロード バランシングは、次のクライアントで開始されるリモート セッションだけで有効です。

Cisco AnyConnect VPN Client(Release 2.0 以降)

Cisco VPN Client(Release 3.0 以降)

Cisco VPN 3002 Hardware Client(Release 3.5 以降)

Easy VPN クライアントとして動作している場合、Cisco PIX 501/506E

ロード バランシングは、IPSec クライアント セッションと WebVPN セッションの両方で機能します。その他すべてのクライアント(LAN-to-LAN 接続を含む)は、ロードバランシングがイネーブルになっているセキュリティ アプライアンスに接続できますが、ロードバランシングには参加できません。

VPN ロード バランシング クラスタ コンフィギュレーション

ロード バランシング クラスタは、すべてが ASA Release 7.0(x) セキュリティ アプライアンス、すべてが ASA Release 7.1(1) セキュリティ アプライアンス、すべてが VPN 3000 コンセントレータ、またはこれらの混在で構成することができます。次の制限があります。

すべてが ASA 7.0(x) セキュリティ アプライアンス、すべてが ASA 7.1(1) セキュリティ アプライアンス、またはすべてが VPN 3000 コンセントレータで構成されるロード バランシング クラスタでは、IPSec セッションおよび WebVPN セッションの混在に対してロード バランシングを実行できます。

ASA 7.0(x) セキュリティ アプライアンスと VPN 3000 コンセントレータの両方で構成されるロード バランシング クラスタでは、IPSec セッションと WebVPN セッションの混在に対してロード バランシングを実行できます。

ASA 7.1(1) セキュリティ アプライアンスおよび ASA 7.0(x) または VPN 3000 コンセントレータのいずれか、または両方を含むロード バランシング クラスタは、IPSec セッションだけをサポートできます。ただし、このようなコンフィギュレーションでは、ASA 7.1(1) セキュリティ アプライアンスは、それぞれの IPSec のキャパシティに完全に到達しない可能性があります。 シナリオ 1:WebVPN 接続のない混在クラスタ は、この状況を示しています。

Release 7.1(1) を使用すると、IPSec セッションと WebVPN セッションは、クラスタ内の各デバイスが伝送する負荷を決定するときに均等にカウントまたは重み付けします。これは、ASA Release 7.0(x) ソフトウェアと VPN 3000 コンセントレータ用のロード バランシングの計算からの逸脱を意味しています。つまり、これらのプラットフォームでは、いずれも一部のハードウェア プラットフォームにおいて、IPSec セッションの負荷とは異なる WebVPN セッションの負荷を計算する重み付けアルゴリズムを使用しています。

クラスタの仮想マスターは、クラスタのメンバーにセッション要求を割り当てます。ASA Release 7.1(1) セキュリティ アプライアンスは、すべてのセッション(WebVPN または IPSec)を同等と見なし、適宜これらを割り当てます。ASA Release 7.0(x) セキュリティ アプライアンスまたは VPN 3000 コンセントレータでは、セッションの負荷を割り当てるときに重み付け計算を実行します。


) 許可する IPSec セッションと WebVPN セッションの数は、コンフィギュレーションおよびライセンスで許可されている最大数まで設定できます。これらの制限の設定方法については、「VPN セッション制限の設定」を参照してください。


一部の一般的な混在クラスタのシナリオ

混在コンフィギュレーション、つまりロード バランシング クラスタにさまざまな ASA ソフトウェア リリースを実行しているデバイスが含まれている、または ASA Release 7.1(1) および VPN 3000 コンセントレータを実行しているセキュリティ アプライアンスが少なくとも 1 つ含まれる場合、最初のクラスタ マスターで障害が発生し、別のデバイスがマスターを引き継ぐときに、重み付けアルゴリズムの違いが問題になります。

次のシナリオは、ASA Release 7.1(1)、ASA Release 7.0(x) ソフトウェアを実行しているセキュリティ アプライアンスと VPN 3000 シリーズ コンセントレータの混在で構成されているクラスタでの VPN ロード バランシングの使用を示しています。

シナリオ 1:WebVPN 接続のない混在クラスタ

このシナリオでは、クラスタはセキュリティ アプライアンスと VPN 3000 コンセントレータの混在で構成されています。セキュリティ アプライアンス クラスタ ピアには、ASA Release 7.0(x) を実行しているものも、Release 7.1(1) を実行しているものもあります。7.1(1) 以前のピアおよび VPN 3000 ピアには、SSL VPN 接続はなく、7.1(1) クラスタ ピアには、SSL VPN の基本ライセンスだけあり、2 つの WebVPN セッションは許可されますが、SSL VPN 接続はありません。この場合、すべての接続は IPSec であり、ロード バランシングは良好に機能します。

2 つの WebVPN ライセンスは、ユーザの最大 IPSec セッション制限の活用にはほとんど影響を及ぼしません。また、これは VPN 3000 コンセントレータがクラスタ マスターの場合に限られます。一般に、混在クラスタ内のセキュリティ アプライアンスの WebVPN ライセンスの数が少なければ少ないほど、IPSec セッションしかないシナリオで IPSec セッションの制限に達することができる ASA 7.1(1) デバイスへの影響も小さくなります。

シナリオ 2:WebVPN 接続を処理する混在クラスタ

たとえば、ASA Release 7.1(1) ソフトウェアを実行しているセキュリティ アプライアンスが最初のクラスタ マスターで、そのデバイスに障害が発生したとします。クラスタ内の別のデバイスが自動的にマスターを引き継ぎ、そのクラスタ内のプロセッサの負荷を決定するためにそのデバイス独自のロード バランシング アルゴリズムを適用します。ASA Release 7.1(1) ソフトウェアを実行しているクラスタ マスターは、そのソフトウェアが提供する方法以外では、セッションの負荷を重み付けできません。そのため、IPSec および WebVPN セッションの負荷の組み合せを、以前のバージョンを実行する ASA デバイスにも、VPN 3000 コンセントレータにも適切に割り当てることができません。これとは逆に、クラスタ マスターとして動作している VPN 3000 コンセントレータは、ASA Release 7.1(1) セキュリティ アプライアンスに負荷を適切に割り当てることができません。 次のシナリオは、 このジレンマを示しています。

このシナリオは、クラスタがセキュリティ アプライアンスと VPN 3000 コンセントレータの混在で構成されているという点において、前述のシナリオと似ています。セキュリティ アプライアンス クラスタ ピアには ASA Release 7.0(x) を実行しているものも、Release 7.1(1) を実行しているものもあります。ただし、この場合は、クラスタは SSL VPN 接続だけでなく IPSec 接続も処理されます。

ASA Release 7.1(1) 以前のソフトウェアを実行しているデバイスがクラスタ マスターである場合、マスターは実質的に Release 7.1(1) 以前のプロトコルとロジックを適用します。つまり、セッションはそのセッション制限を超えているロード バランシング ピアに転送される場合もあります。その場合、ユーザはアクセスを拒否されます。

クラスタ マスターが ASA Release 7.0(x) ソフトウェアを実行しているデバイスである場合、古いセッション重み付けアルゴリズムは、クラスタ内の 7.1(1) 以前のピアにだけ適用されます。この場合、アクセスが拒否されることはありません。これは、7.1(1) 以前のピアは、セッション重み付けアルゴリズムを使用するため、負荷がより軽くなっています。

ただし、7.1(1) ピアが常にクラスタ マスターであることは保証できないため、問題が発生します。クラスタ マスターで障害が発生すると、別のピアがマスターの役割を引き継ぎます。新しいマスターは、適格なピアのいずれかになります。本質的に結果を予測することは不可能であるため、このタイプのクラスタを構成しないことをお勧めします。

ロード バランシングの設定

ロード バランシングを使用するには、クラスタに参加する各デバイスに対して次の要素を設定します。

パブリック インターフェイスとプライベート インターフェイス

VPN ロード バランシング クラスタ アトリビュート


) クラスタに参加するすべてのデバイスには、クラスタ内でのデバイス プライオリティを除き、同一のクラスタ コンフィギュレーションを設定する必要があります。


ロード バランシング用のパブリック インターフェイスとプライベート インターフェイスの設定

ロード バランシング クラスタ デバイス用のパブリック(外部)インターフェイスとプライベート(内部)インターフェイスを設定するには、次の手順を実行します。


ステップ 1 vpn-load-balancing コンフィギュレーション モードで、 lbpublic キーワードを指定して interface コマンドを入力し、セキュリティ アプライアンスにパブリック インターフェイスを設定します。このコマンドは、このデバイスのロード バランシングのためのパブリック インターフェイスの名前または IP アドレスを指定します。

hostname(config)# vpn load-balancing
hostname(config-load-balancing)# interface lbpublic outside
hostname(config-load-balancing)#
 

ステップ 2 vpn-load-balancing コンフィギュレーション モードで、 lbprivate キーワードを指定して interface コマンドを入力し、セキュリティ アプライアンスにプライベート インターフェイスを設定します。このコマンドで、このデバイスのロード バランシングのためのプライベート インターフェイスの名前または IP アドレスを指定します。

hostname(config-load-balancing)# interface lbprivate inside
hostname(config-load-balancing)#
 

ステップ 3 このデバイスを割り当てるためのクラスタ内でのプライオリティを設定します。プライオリティの範囲は 1 ~ 10 です。プライオリティは、起動時または既存のマスターで障害が発生したときに、このデバイスが仮想クラスタ マスターになる可能性を表します。プライオリティを高く設定すると(たとえば 10)、このデバイスが仮想クラスタ マスターになる可能性が高くなります。

hostname(config-load-balancing)# priority number
hostname(config-load-balancing)#
 

たとえば、このデバイスにクラスタ内でのプライオリティ 6 を割り当てるには、次のコマンドを入力します。

hostname(config-load-balancing)# priority 6
hostname(config-load-balancing)#
 

ステップ 4 このデバイスにネットワーク アドレス変換を適用する場合は、デバイスに割り当てられた NAT アドレスを指定して nat コマンドを入力します。

hostname(config-load-balancing)# nat ip_address
hostname(config-load-balancing)#
 

たとえば、このデバイスに NAT アドレス 192.168.30.3 を割り当てるには、次のコマンドを入力します。

hostname(config-load-balancing)# nat 192.168.30.3
hostname(config-load-balancing)#


 

ロード バランシング クラスタ アトリビュートの設定

クラスタ内の各デバイスのロード バランシング クラスタ アトリビュートを設定するには、次の手順を実行します。


ステップ 1 グローバル コンフィギュレーション モードで vpn load-balancing コマンドを入力して、VPN ロード バランシングをセット アップします。

hostname(config)# vpn load-balancing
hostname(config-load-balancing)#
 

これで vpn-load-balancing コンフィギュレーション モードに入るため、ここで残りのロード バランシング アトリビュートを設定できます。

ステップ 2 このデバイスが属しているクラスタの IP アドレスを設定します。このコマンドは、仮想クラスタ全体を表す単一の IP アドレスを指定します。仮想クラスタ内のすべてのセキュリティ アプライアンスが共有しているパブリック サブネット アドレスの範囲内にある IP アドレスを選択します。

hostname(config-load-balancing)# cluster ip address ip_address
hostname(config-load-balancing)#
 

たとえば、クラスタ IP アドレスを 192.168.10.10 に設定するには、次のコマンドを入力します。

hostname(config-load-balancing)# cluster ip address 192.168.10.10
hostname(config-load-balancing)#
 

ステップ 3 クラスタ ポートを設定します。このコマンドは、このデバイスが参加している仮想クラスタの UDP ポートを指定します。デフォルト値は 9023 です。別のアプリケーションでこのポートが使用されている場合は、ロード バランシングに使用する UDP の宛先ポート番号を入力します。

hostname(config-load-balancing)# cluster port port_number
hostname(config-load-balancing)#
 

たとえば、クラスタ ポートを 4444 に設定するには、次のコマンドを入力します。

hostname(config-load-balancing)# cluster port 4444
hostname(config-load-balancing)#
 

ステップ 4 オプションで、クラスタに対する IPSec 暗号化をイネーブルにします。デフォルトでは暗号化は使用されません。このコマンドは、IPSec 暗号化をイネーブルまたはディセーブルにします。このチェック アトリビュートを設定する場合は、まず共有秘密情報を指定して検証する必要があります。仮想クラスタ内のセキュリティ アプライアンスは、IPSec を使用して LAN-to-LAN トンネル経由で通信します。デバイス間で通信されるすべてのロード バランシング情報が暗号化されるようにするには、このアトリビュートをイネーブルにします。

hostname(config-load-balancing)# cluster encryption
hostname(config-load-balancing)#
 

) 暗号化を使用する場合、事前にロード バランシング内部インターフェイスを設定しておく必要があります。そのインターフェイスがロード バランシング内部インターフェイスでイネーブルになっていない場合、クラスタの暗号化を設定しようとするとエラー メッセージが表示されます。

クラスタの暗号化を設定したときにロード バランシング内部インターフェイスがイネーブルになっており、仮想クラスタ内の参加デバイスを設定する前にディセーブルになった場合、participate コマンドを入力する(または、ASDM で、[Participate in Load Balancing Cluster] チェックボックスをオンにする)と、エラー メッセージが表示され、そのクラスタに対する暗号化はイネーブルになりません。

クラスタの暗号化を使用するには、内部インターフェイスを指定して crypto isakmp enable コマンドを使用して、内部インターフェイス上の isakmp をイネーブルにする必要があります。


ステップ 5 クラスタの暗号化をイネーブルにする場合、 cluster key コマンドを入力して IPSec 共有秘密情報も指定する必要があります。このコマンドは、IPSec 暗号化をイネーブルにしてある場合、IPSec ピア間に共有秘密情報を指定します。ボックスに入力する値は、連続するアスタリスク文字として表示されます。

hostname(config-load-balancing)# cluster key shared_secret
hostname(config-load-balancing)#
 

たとえば、共有秘密情報を 123456789 に設定するには、次のコマンドを入力します。

hostname(config-load-balancing)# cluster key 123456789
hostname(config-load-balancing)#
 

ステップ 6 participate コマンドを入力して、クラスタへのこのデバイスの参加をイネーブルにします。

hostname(config-load-balancing)# participate
hostname(config-load-balancing)#
 


 

完全修飾ドメイン名を使用したリダイレクションのイネーブル化

vpn load-balancing モードで、完全修飾ドメイン名を使用したリダイレクションをイネーブルまたはディセーブルにするには、グローバル コンフィギュレーション モードで redirect-fqdn enable コマンドを使用します。この動作は、デフォルトではディセーブルになっています。

デフォルトでは、ASA はロード バランシング リダイレクション内 IP アドレスだけをクライアントに送信します。DNS 名に基づく証明書が使用されている場合、その証明書はセカンダリ デバイスにリダイレクトされたときに無効になります。

VPN クラスタ マスターとして、このセキュリティ アプライアンスは、VPN クライアント接続をそのクラスタ デバイスにリダイレクトする場合に、その外部 IP アドレスの代わりに、逆 DNS lookup を使用して、クラスタ デバイス(クラスタ内の別のセキュリティ アプライアンス)の 完全修飾ドメイン名(FQDN)を送信できます。

クラスタ内のロード バランシング デバイス上にあるすべての外部および内部ネットワーク インターフェイスは、同じ IP ネットワーク上にある必要があります。

IP アドレスではなく、FQDN を使用して WebVPN ロード バランシングを行うには、次の設定手順を実行する必要があります。


ステップ 1 redirect-fqdn enable コマンドを使用して、ロード バランシングのための FQDN の使用をイネーブルにします。

redirect-fqdn {enable | disable}
no redirect-fqdn {enable | disable}

次の例を参考にしてください。
hostname(config)# vpn load-balancing
hostname(config-load-balancing)# redirect-fqdn enable
hostname(config-load-balancing)#
 

ステップ 2 各 ASA 外部インターフェイスのエントリを DNS サーバに追加します(これらのエントリがすでに存在しない場合)。各 ASA 外部 IP アドレスには、ルックアップ用に関連付けられている DNS エントリが含まれている必要があります。これらの DNS エントリは、逆ルックアップに対してもイネーブルになっている必要があります。

ステップ 3 「dns domain-lookup inside」コマンド(または DNS サーバへのルートがあるいずれかのインターフェイス)を使用して ASA に対する DNS ルックアップをイネーブルにします。

ステップ 4 ASA 上の DNS サーバ IP アドレスを定義します。たとえば、 dns name-server 10.2.3.4 (DNS サーバの IP アドレス)。

次は、VPN ロード バランシング コマンド シーケンスの例です。完全修飾ドメイン名のリダイレクションをイネーブルにするインターフェイス コマンドが含まれており、クラスタのパブリック インターフェイスを「test」、クラスタのプライベート インターフェイスを「foo」と指定しています。

hostname(config)# interface GigabitEthernet 0/1
hostname(config-if)# ip address 209.165.202.159 255.255.255.0
hostname(config)# nameif test
hostname(config)# interface GigabitEthernet 0/2
hostname(config-if)# ip address 209.165.201.30 255.255.255.0
hostname(config)# nameif foo
hostname(config)# vpn load-balancing
hostname(config-load-balancing)# nat 192.168.10.10
hostname(config-load-balancing)# priority 9
hostname(config-load-balancing)# interface lbpublic test
hostname(config-load-balancing)# interface lbprivate foo
hostname(config-load-balancing)# cluster ip address 209.165.202.224
hostname(config-load-balancing)# cluster key 123456789
hostname(config-load-balancing)# cluster encryption
hostname(config-load-balancing)# cluster port 9023
hostname(config-load-balancing)# redirect-fqdn enable
hostname(config-load-balancing)# participate
 


 

ロード バランシングの表示

ロード バランシング クラスタ マスターは、クラスタ内の各 ASA から定期的なメッセージを受信します。メッセージには、アクティブな AnyConnect およびクライアントレス セッションの数と、設定またはライセンス上の制限に基づいて許可される最大セッション数が含まれます。クラスタ内の ASA のセッション数がキャパシティの 100% になると、クラスタ マスターは ASA に接続をそれ以上リダイレクトできなくなります。ASA がフルになっても、一部のユーザは非アクティブまたはレジューム待ち状態になっており、ライセンスが無駄になっている可能性があります。対策として、各 ASA は、合計セッション数を知らせる代わりに、合計セッション数から非アクティブ状態のセッション数を引いた数を知らせます (『 Cisco Security Appliance Command Reference Guide 』の show vpn-sessiondb summary を参照)。つまり、非アクティブなセッションはクラスタ マスターに報告されません。ASA がフル(一部のセッションは非アクティブ)であっても、クラスタ マスターは、必要に応じてその ASA に接続をリダイレクトします。ASA が新しい接続を受け取ると、最も長い時間非アクティブだったセッションがログオフされ、新しい接続がそのライセンスを取得できるようになります。

次の例では、SSL セッション(アクティブだけ)が 100、SSL 負荷が 2% になっています。これらの数値には、非アクティブなセッションは含まれません。つまり、非アクティブなセッションは、ロード バランシングの負荷にカウントされません。

nmeka-asa2# sh vpn load-balancing
Status : enabled
Role : Master
Failover : Active
Encryption : enabled
Cluster IP : 192.168.1.100
Peers : 1
 
Load %
Sessions
Public IP Role Pri Model IPsec SSL IPSec SSL
192.168.1.9 Master 7 ASA-5540 4 2 216 100
192.168.1.19 Backup 9 ASA-5520 0 0 0 0

VPN セッション制限の設定

IPSec セッションと WebVPN セッションは、セキュリティ アプライアンスのプラットフォームとライセンスがサポートする限り、いくつでも実行できます。セキュリティ アプライアンスのライセンス情報を表示するには、グローバル コンフィギュレーション モードで show version コマンドを入力します。次の例は、このコマンドの出力から抜粋したコマンドとライセンス情報を示しています。

hostname(config)# show version
 
 
Cisco Adaptive Security Appliance Software Version 7.1(0)182
Device Manager Version 5.1(0)128
 
Licensed features for this platform:
Maximum Physical Interfaces : Unlimited
Maximum VLANs : 100
Inside Hosts : Unlimited
Failover : Active/Active
VPN-DES : Enabled
VPN-3DES-AES : Enabled
Security Contexts : 10
GTP/GPRS : Enabled
VPN Peers : 750
WebVPN Peers : 500
 
This platform has an ASA 5520 VPN Plus license.

 

アクティブな IPSec VPN セッションの最大数をセキュリティ アプライアンスが許可している数よりも小さい値に制限するには、グローバル コンフィギュレーション モードで vpn-sessiondb max-session-limit コマンドを入力します。このセッション数の制限は、VPN ロード バランシング用に算出されたロード率に影響します。

hostname(config)# vpn-sessiondb max-session-limit number_of_sessions
hostname(config)#
 

たとえば、セキュリティ アプライアンスのライセンスが 750 の IPSec セッションを許可していて、IPSec セッション数を 500 に制限する場合は、次のコマンドを入力します。

hostname(config)# vpn-sessiondb max-session-limit 500
hostname(config)#
 

セッションの制限を削除するには、このコマンドの no 形式を使用します。

hostname(config)# no vpn-sessiondb max-session-limit
hostname(config)#

 

Web VPN セッションの数をセキュリティ アプライアンスで許可される数よりも小さい値に制限するには、グローバル コンフィギュレーション モードで vpn-sessiondb max-webvpn-session-limit コマンドを入力します。セッションの制限を削除するには、このコマンドの no 形式を使用します。

hostname(config)# vpn-sessiondb max-webvpn-session-limit number_of_sessions
hostname(config)#
 

たとえば、セキュリティ アプライアンスのライセンスで 500 の WebVPN セッションが許可されていて、WebVPN セッション数を 250 に制限する場合は、次のコマンドを入力します。

hostname(config)# vpn-sessiondb max-webvpn-session-limit 250
hostname(config)#
 

セッションの制限を削除するには、このコマンドの no 形式を使用します。

hostname(config)# no vpn-sessiondb max-webvpn-session-limit
hostname(config)#
 

各ライセンスで使用できる機能の詳細については、付録 A「機能のライセンスと仕様」を参照してください。