【BIG-IP】X-Forwarded-For を追加する 2 つの方法

ネットワーク

作業環境

  • BIG-IP Virtual Edition
    • version 15.x.x

X-Forwarded-For の追加方法

X-Forwarded-For とは:

  • HTTP ヘッダフィールドの一つ
  • HTTP プロキシ又はロードバランサーを通過して Web サーバーへ接続したクライアントの送信元 IP アドレスを特定するために使用される
  • デファクトスタンダードになっている

X-Forwarded-For を追加する方法については 2 通りあったためそれぞれ以下に記載します。

A. HTTP プロファイルで設定する方法

一つ目の方法は、バーチャルサーバに適用する HTTP プロファイルについて [Settings > Insert X-Forwarded-For] を Enabled にする方法です。(デフォルトでは Disabled です。)

この方法の場合、X-Forwarded-For にはクライアントの IP アドレスが設定されます。

B. iRule で設定する方法

2 つ目の方法は iRule を使用する方法です。HTTP リクエストイベント時に HTTP ヘッダの X-Forwarded-For に値を設定する iRule を作成し、バーチャルサーバに適用します。

iRule の例としては以下の通りです。

when HTTP_REQUEST {
    HTTP::header insert X-Forwarded-For [IP::client_addr]
}

X-Forwarded-For にクライアントの IP アドレスを設定しています。

iRule では条件分岐処理ができるため、場合によって X-Forwarded-For の値を変えたり、設定する場合としない場合で分けたりしたいときに iRule を使用することができます。

パケットキャプチャで確認

X-Forwarded-For を追加する設定にした状態で BIG-IP からサーバへのパケットをキャプチャしてみます。

クライアントからサーバ(BIG-IP)へ Web アクセス時の、BIG-IP からサーバへの HTTP GET のパケットを見てみると、以下画像のようにヘッダに X-Forwarded-For が追加されていることが確認できます。


タイトルとURLをコピーしました