このセクションでは、RADIUS トラフィックを Cisco Identity Services Engine (ISE) にロード バランシングするように NSX Advanced Load Balancer を構成する手順について説明します。NSX Advanced Load Balancer では、L4 DataScript を使用し、さまざまな RADIUS 属性を使用してパーシステンスを実現し、RADIUS と同じサーバへの DHCP プロファイル トラフィックをロード バランシングします。

前提条件

  • Cisco ISE への RADIUS トラフィックのロード バランシングを行うように NSX Advanced Load Balancer を構成するには、Cisco ISE とその構成に関する知識が必要です。

  • RADIUS 仮想サービスのクライアント IP の保持をサポートするには、IP ルーティングが有効になっているアクティブ/スタンバイ SE グループが必要です。

トポロジ



トポロジに示すように、 NSX Advanced Load Balancer は論理的にユーザーのネットワークと ISE ポリシー サービス ノード (PSN) の間に配置されます。ISE PSN へのすべてのトラフィック フローは、 NSX Advanced Load Balancer ロード バランサ(サービス エンジン)を経由し、ISE PSN からのトラフィックをユーザーに返します。

シナリオ

NSX Advanced Load Balancer 仮想 IP アドレスは、ネットワーク アクセス デバイス (NAD) 上で RADIUS サーバとして構成されます。NSX Advanced Load Balancer がユーザーから RADIUS 認証トラフィックを受信すると、構成されたロード バランシング アルゴリズムを使用して ISE PSN の 1 つにロード バランシングされます。パーシステンス エントリは、RADIUS 要求を解析し、構成された RADIUS 属性に基づいてエントリを作成する DataScript を使用して作成されます。以降の RADIUS 認証トラフィックまたは同じクライアントからの DHCP プロファイル トラフィックは、パーシステンス エントリを使用して同じサーバに送信されます。

Cisco-ISE は、次の詳細を含む Change of Authorization (CoA) 要求を送信します。

  • CoA を発信する個々の PSN の送信元 IP アドレス

  • NAD の宛先 IP アドレス

  • 宛先ポートは UDP 1700(デフォルト)です

NAD は、送信元 IP が構成済みの RADIUS サーバの IP であることを想定しています。この場合は、NSX Advanced Load Balancer 仮想 IP アドレスです。

パケットの宛先ポートが UDP 1700 の場合、サーバの送信元 IP アドレスを仮想 IP アドレスに NAT するように、NSX Advanced Load Balancer で NAT ポリシーが構成されています。

構成

次の手順に従って、RADIUS ロード バランシングの NSX Advanced Load Balancer を構成します。

  1. 必須フィールドを使用して RADIUS および DHCP パケットとパーシステンスを解析するように DataScript を構成します。

  2. RADIUS の健全性モニターを構成します。SE IP は、ISE と NSX Advanced Load Balancer で同じ認証情報を使用して ISE 上の NAD として構成する必要があります。

  3. 仮想サービスとプールを構成します。

  4. DataScript を仮想サービスに接続します。

  5. CoA の NAT を構成し、必要なサービス エンジン グループに接続します。

RADIUS/DHCP トラフィックを解析するための DataScript の構成

DataScript の機能については、サンプルの DataScript を使用して説明します。DataScript は、ユーザーの要件に従って変更できます。DataScript 関数の詳細については、『VMware NSX Advanced Load Balancer DataScript ガイド』の「レイヤー 4 DataScript」を参照してください。

DataScript の詳細については、RADIUS-DHCP-HTTPSを参照してください。

RADIUS 要求が解析され、NAS-IP-ADDRESS、CALLING-STATION-ID、NAS-PORT-TYPE 属性が記録されます。NAS-PORT-TYPE が 19(ワイヤレス クライアント)の場合、エントリのエージング時間は 3600 に設定されます。他のすべてのクライアント タイプ(有線/仮想)の場合、エージング時間は 28800 です。RADIUS 要求に CALLING-STATION-ID が入力されている場合、これはパーシステンスに使用されます。要求に CALLING-STATION-ID が含まれていない場合は、NAS-IP-ADDRESS がパーシステンスに使用されます。

DHCP パケットが解析され、ホストに入力されたクライアント ID があれば、記録されます。クライアント ID は、ホストの MAC アドレスであることが想定されます。クライアント ID が入力されている場合、calling-station-id を使用して RADIUS 用に作成されたパーシステンス エントリと照合し、RADIUS と同じ PSN に DHCP パケットを送信します。クライアント ID が DHCP パケットに存在しない場合は、構成されたロード バランシング アルゴリズムを使用して、3 つの ISE PSN のいずれかに転送されます。

DataScript は、framed-ip-address(存在する場合)を使用して RADIUS アカウンティング パケットにもパーシステンス エントリを作成します。同じクライアントから仮想 IP アドレスへの後続の HTTPS 要求は、framed-ip-address エントリと照合することにより、パケットの送信元 IP を使用して同じ PSN に送信されます。

RADIUS 健全性監視の構成

[テンプレート] > [プロファイル] > [健全性モニター] の順に移動して、RADIUS 健全性モニターを構成し、ISE のステータスを監視します。



フィールド

説明

[名前]

健全性モニターの名前を指定します。

[説明]

健全性モニターに指定された名前の説明を指定します。

[送信間隔]

健全性チェックをサーバに送信する間隔を秒単位で指定します。

[受信タイムアウト]

受信タイムアウトの期間内でサーバから有効な応答を受信する受信タイムアウト頻度を秒単位で指定します。このタイムアウトは、送信間隔よりも小さい値を設定する必要があります。

[タイプ]

ドロップダウン メニューから [タイプ] として「RADIUS」を選択します。

[成功したチェック]

健全性チェックが連続して何回成功すればサーバが「稼動」とマークされるかを指定します。

[失敗したチェック]

健全性チェックが連続して何回失敗すればサーバが「停止」とマークされるかを指定します。

このフィールドは、オブジェクトのレプリケーション範囲を表します。オブジェクトをフェデレーション全体にレプリケートするには、このチェックボックスをオンにします。

[フェデレーション済み]

このフィールドをオフにすると、オブジェクトは Controller クラスタとそれに関連付けられたサービス エンジン内でのみ表示されます。

構成が完了したら、 [保存] をクリックします。

プールの構成

  1. すべてのプロトコルに対して 1 つのプールを構成する必要があります。プール メンバーは ISE-PSN になります。デフォルトのサーバ ポートは 1812 です。



  2. 作成した RADIUS 健全性モニターをプールに接続します。



  3. プールの [詳細] タブで、[ポート変換の無効化] を選択します。



  4. [保存] をクリックします。

仮想サービスの構成

  1. 必要なすべての RADIUS トラフィックと DHCP トラフィックを受け入れるように仮想サービスを構成します。また、必要に応じて HTTPS トラフィックと SNMP を受け入れます。

    注:
    1. 選択したアプリケーション プロファイルは、[クライアント IP の保持] オプションが有効になっている [System-L4-Application] である必要があります。

    2. 選択したネットワーク プロファイルは、[System-UDP-Fast-Path] である必要があります。



  2. RADIUS および DHCP に必要なすべてのポートを構成します。DHCP の場合は、TCP/UDP プロファイルをオーバーライドして [System-UDP-Per-Pkt] を使用します。ISE が DHCP パケットに応答しないため、パケット プロファイルごとに UDP を使用します。HTTPS が構成されている場合は、[System-TCP-Proxy プロファイル] を使用するようにオーバーライドする必要があります。

  3. 前に構成したプールを接続し、[保存] をクリックします。

DataScript の構成と仮想サービスへの接続

DataScript を構成して仮想サービスに接続するには、次の手順を実行します。

  1. [テンプレート] > [スクリプト] の順に移動します。



  2. [作成] ボタンをクリックして、新しい DataScript を作成します。



  3. [VS Datascript Evt L4 要求イベント スクリプト] セクションまでスクロールします。



  4. スクリプトは、クライアントからサーバへの要求を解析します。したがって、これは要求イベント スクリプトです。

  5. スクリプトをこのイベントに接続します。

  6. [プール] セクションで、RADIUS と DHCP 用に構成されたプールを選択します。



  7. DataScript を保存します。

  8. 必要なプロトコル パーサーを選択します。この DataScript で [Default-DHCP][Default-Radius] を選択します。



  9. DataScript を VS に接続します。[仮想サービスの編集] > [ポリシー] > [DataScript] > [DataScript の追加] の順に移動して、構成済みの DataScript を選択します。[DataScript の保存] をクリックします。



NAT の構成

NAT ルールは、NSX Advanced Load Balancer CLI を使用して NAT ポリシーと呼ばれるポリシーとして構成され、サービス エンジン グループに添付されます。NAT ルールは VRF 単位です。NAT ルールの一致基準は、送信元 IP/宛先 IP/範囲、または送信元ポート/宛先ポート/範囲のいずれかです。

ISE の使用事例での NAT のアクションは、送信元 IP を CoA パケットの仮想サービス仮想 IP アドレスとして設定することです。ISE は CoA パケットを UDP ポート 1700(デフォルト)に送信し、一致基準があることを確認します。nat_ip は、一致するトラフィックの送信元 IP アドレスの変換後の IP アドレスです。この場合、RADIUS 仮想サービスの NSX Advanced Load Balancer 仮想 IP アドレスです。

NAT 構成の詳細については、「NSX Advanced Load Balancer サービス エンジンでの NAT 構成」を参照してください。RADIUS ロード バランシングには、別のサービス エンジン グループを使用することをお勧めします。

注:
  1. NAT は、SE グループで IP ルーティングが有効になっている場合にのみ機能するため、IP ルーティングを有効にするために適用可能なすべての制限がここに適用されます。SE は、レガシーのアクティブ/スタンバイである必要があります。詳細については、「デフォルト ゲートウェイ(NSX Advanced Load Balancer SE での IP ルーティング)」を参照してください。

  2. ISE による RADIUS ロード バランシングでは、クライアント IP アドレスを保持することをお勧めします。理由は、ISE が RADIUS ヘッダーの IP ではなく、IP ヘッダーから取得した NAD IP に CoA を送信するためです。クライアント IP が保持されていない場合、ISE は SE を NAD として認識し、CoA は失敗します。詳細については、「クライアント IP の保持」を参照してください。

  3. NAT はリリース 18.2.5 時点の UDP トラフィックでのみ機能します。他のトラフィック (ICMP/TCP) では機能しません。

ロード バランシングされていないトラフィックの転送

NSX Advanced Load Balancer SE は IP ルーティングを有効にして構成されているため、ロード バランシングを必要とせず、ISE PSN IP との間で直接送信されるトラフィックは、SE によってネットワーク ホストとの間でルーティングされます。