NSX Advanced Load Balancer サービス エンジン (SE) の送信元 NAT (SNAT) トラフィックは、デフォルトでサーバに送信されます。SNAT により、アプリケーション サーバのログには、元のクライアントの IP アドレスではなく、SE のレイヤー 4 の IP アドレスが表示されます。
ほとんどのアプリケーション サーバは、ログ記録またはブロックリスト作成のソース IP アドレスとして XFF ヘッダーを利用できます。
HTTP トラフィックの場合、NSX Advanced Load Balancer はクライアント/サーバ要求に X-Forwarded-For (XFF) ヘッダーを挿入して、元のクライアント IP アドレスをログ要求に含めるように構成できます。この機能は、NSX Advanced Load Balancer の IPv6 でサポートされています。
HTTP トラフィック ログにクライアントの元の IP アドレスを含める場合は、NSX Advanced Load Balancer を有効にして、サーバ宛てのクライアント トラフィックに XFF ヘッダーを挿入します。XFF 挿入は、仮想サービスに適用された HTTP アプリケーション プロファイルで有効にできます。
の順に移動します。
-
[HTTP アプリケーション プロファイル] の近くにある編集アイコンをクリックして、次のエディタを開きます。
[全般] タブで、[X-Forwarded-For] チェック ボックスをオンにします。
注:オプションで、[XFF の代替名] フィールドを使用してヘッダーの名前を変更できます。
[保存] をクリックします。
プロファイルの変更は、同じ HTTP アプリケーション プロファイルを使用するすべての仮想サービスに影響します。
XFF ヘッダー挿入が有効になっている場合、SE はクライアント/サーバ パケットのヘッダーで既存の XFF ヘッダーを確認します。XFF ヘッダーがすでに存在する場合、SE は最初に既存の XFF を削除し、次に独自の XFF ヘッダーを挿入します。これは、クライアントが IP アドレスをスプーフィングするのを防ぐために行われます。
クライアント要求に、アプリケーション プロファイル構成に存在するヘッダーと同じ X-forward-proto ヘッダーが含まれている場合、NSX Advanced Load Balancer は 1 つの X-forward-proto のみをサーバに送信します。
既存の XFF ヘッダーを保持する
複数のプロキシが XFF ヘッダーを SNAT して挿入する場合など、この動作(既存の XFF ヘッダーの削除)が望ましくない場合があります。この場合、既存の XFF ヘッダーを削除せずに XFF ヘッダーを挿入するには、DataScript または HTTP 要求ポリシーのいずれかを使用します。
例:
avi.http.add_header("XFF", avi.vs.client_ip())