プロキシ (クライアントに代わってバックエンドオリジンに接続するサーバー) を含むネットワークでは、クライアント IP アドレスなどの元の TCP 接続パラメータがプロキシで失われる可能性が高くなります。セキュリティおよびアクセス制御ポリシーを適用しようとすると、追加の課題が発生します (たとえば、オリジン サーバーで IP 許可/ブロック リストにクライアント IP アドレスを追加したり、クライアント IP アドレスに基づいて分析を実行したりします)。
クライアントの IP アドレスを保持する方法は?
CDネットワークス 高速データ転送 (HDT) これらの問題に対処するために、プロキシ上に構築されたトンネルを介したデータ転送を高速化します。 HDT には、オリジン サーバーにクライアント情報を送信する方法がいくつか用意されています。
X-Forwarded-For (XFF) HTTP ヘッダー
X-Forwarded-For (XFF) HTTP ヘッダー フィールドは、HTTP プロキシ経由で Web サーバーに接続しているクライアントの発信元 IP アドレスを識別するための一般的な方法です。したがって、HDT はデフォルトでクライアント要求に XFF ヘッダーを挿入し、HTTP トラフィックの元のクライアント IP アドレスを含めます。
XFF フィールドの一般的な形式は次のようになります。
X-Forwarded-For: クライアント、proxy1、proxy2
要素はコンマで区切られ、オプションでコンマを空白で囲みます。左端の IP アドレスは、元のクライアント IP アドレスであり、その後に要求を通過した後続の各プロキシの IP アドレスが続きます (IP アドレスは、要求を受信したプロキシから追加されます)。
例:[3]
X-Forwarded-For: 203.0.113.195、70.41.3.18、150.172.238.178
X-Forwarded-For: 203.0.113.195
X-Forwarded-For: 2001:db8:85a3:8d3:1319:8a2e:370:7348
プロキシ プロトコル
HTTP とは異なり、他のプロトコルは同じ修正を採用しない場合があります。このような場合、伝送制御プロトコル (TCP) 層で動作するプロキシ プロトコルは、TCP/IP 上の任意のプロトコル (SMTP、IMAP、FTP、独自のデータベース プロトコルなど) にカバレッジを拡大することで、このギャップを埋めます。
PROXY プロトコルは、クライアントの IP アドレスを含むヘッダーを TCP 接続の先頭に追加します。接続が確立された後、プロキシは短いヘッダーを送信し、受信者は受け入れられるとそれを解析します。
PROXY プロトコル バージョン 1 は、デバッグを容易にするために IP アドレスを人間が読み取れるようにすることに重点を置いています。バージョン 2 では、ヘッダーのバイナリ エンコーディングのサポートが追加されました。これは、特に ASCII 形式で送信して解析するのにコストがかかる IPv6 アドレスを処理する場合に、生成と解析がより効率的です。
HDT には、両方のバージョンの PROXY プロトコル ヘッダーを送信する機能があります。ただし、送信側と受信側の両方がプロトコルをサポートする必要があるため、オリジンサーバーはそれを受け入れることができなければなりません。
TCP オプション フィールド
TCP 層でクライアント IP アドレスを保持する別の方法は、TCP ヘッダー オプション フィールドを使用することです。 TCP には、 オプション種別欄. HDT は、クライアントの詳細を TCP オプション 78 フィールドに追加して、バックエンド サーバーに送信できます。クライアント情報を取得するには、解析時にオプション フィールドに対応するようにバックエンド サーバーを構成する必要があります。 F5 デバイスを介して TCP トラフィックの TCP オプションにアクセスする方法については、記事を参照してください。 iRules からの TCP オプションへのアクセス.
HDT プラットフォームで有効にする方法は?
HDT がデフォルトでサポートする HTTP/HTTPs トラフィックの XFF 以外に、次のことができます。 HDT サポート チームに連絡する クライアント IP アドレスの保持を有効にします。 HDT サポート チームの専門家がお客様の問題を調査し、最適なソリューションで構成を完了します。カスタマイズされた構成を適用することで、すべてをわずか数分で完了できます。それはとても簡単です!