登録したWebサーバーにクライアントIPアドレスを通知する

動作確認バージョン:NetScaler VPX Version13.1 Standard Edition
ロードバランサーには、登録したサーバーにクライアントのIPアドレスを通知するためにX-Forwarded-For機能があります。
ここでは、X-Forwarded-For機能について紹介します。

X-Forwarded-For機能とは

X-Forwarded-Forは、HTTPヘッダの中のフィールドにクライアントのIPアドレスを挿入することが可能な機能です。
これにより、ロードバランサーで送信元IPが変換されても、実際のクライアントIPアドレスを知ることが可能になります。

X-Forwarded-For機能の有効化

サンプル設定のシナリオ

  • ロードバランサー経由でサーバーにアクセスするクライアントの送信元IPアドレスをサーバーで確認できるようにしたい
構成図
Fig6501
以下の登録・設定状況で確認を実施します。
設定項目 設定値
クライアント 192.168.10.1
ロードバランサー 192.168.10.250
ロードバランサーのVirtual Server IP 172.16.100.100
サーバー 172.16.10.11
追加設定 X-Forwarded-For有効

注釈

こちらの機能を確認する際には、すでにロードバランサーを通してWebサーバーにアクセスできる環境が必要です。

Configurationメニューから 「Traffic Management」→「Load Balancing」 →「Services」から、設定済みであるサービス(www1)を選択し[Edit]をクリックします。
Fig15106
「Insert Client IP Address」設定が DISABLED に設定されていますので、「Service Settings」の項目の右のボタンをクリックして設定内容の編集画面を開きます。

注釈

Version12.0 Build53.13 Standard Editionでは、セクションのタイトルに「Settings」と表示されております。「Settings」の項目の右のボタンをクリックして設定内容の編集画面を開きます。

Fig15107
Settingsの設定にて、「Insert Client IP Address」にチェックを入れるとロードバランサーでクライアントのIPアドレスをHTTPヘッダに書き込んでサーバーへアクセスします。
X-Forwarded-Forの設定は以上になります。
Fig6506

動作確認結果

クライアントのブラウザより、ロードバランサーのVirtual Server IPアドレス(172.16.100.100)にアクセスをします。
ロードバランサーがサーバーへ負荷分散を実施し、クライアントのブラウザにwebページが表示されることが確認できます。
Fig6502
上記クライアントからのHTTPアクセスについて、パケットキャプチャを実行しました。
このとき、サーバーへのヘッダ情報を確認すると、X-Forwarded-For機能により
クライアントのIPアドレスが含まれていることが確認できました。
Fig6503