Citrix ADC

プロキシプロトコル

プロキシプロトコルは、Citrix ADCアプライアンスを介してクライアントからサーバーにクライアントの詳細を安全に転送します。アプライアンスは、クライアントの詳細を含むプロキシプロトコルヘッダーを追加し、バックエンドサーバーに転送します。以下は、Citrix ADCアプライアンスでのプロキシプロトコルの使用シナリオの一部です。

  • 元のクライアント IP アドレスの学習
  • Web サイトの言語を選択する
  • 選択した IP アドレスの一覧表示をブロックする
  • 統計のロギングと収集。

以下に、3 つの動作モードを示します。

  • [挿入]。アプライアンスはクライアントの詳細を挿入し、バックエンドサーバーに送信します。
  • フォワード。アプライアンスは、クライアントの詳細をバックエンドサーバに転送します。
  • 剥ぎ取られた。アプライアンスは、ロギング目的でクライアントの詳細を保存します。また、プロキシプロトコルがバックエンドサーバーでサポートされていない場合は、書き換えポリシー設定を使用してクライアントの詳細をサーバーに送信します。

制限事項

プロキシプロトコル機能は、TFO およびマルチパス TCP 機能ではサポートされていません。

Citrix ADCアプライアンスでのプロキシプロトコルのしくみ

次のフロー図は、挿入、転送、および削除操作のためにCitrix ADCアプライアンス間でプロキシプロトコルを構成する方法を示しています。

挿入操作

挿入操作

コンポーネントの相互作用は次のとおりです。

  • Citrix ADCインスタンスでは、ネットプロファイルでプロキシプロトコルを有効にし、それをサービスにバインドする必要があります。
  • 挿入操作では、Citrix ADCはクライアント接続の詳細を含むプロキシヘッダーを追加し、バックエンドサーバーに転送します。
  • 送信側では、アプライアンスは CLI 設定に基づいてプロキシプロトコルのバージョンを決定します。

フォワード操作

フォワード操作

コンポーネントの相互作用は次のとおりです。

  • クライアントは、プロキシヘッダーとともにリクエストをCitrix ADCに送信します。アプライアンスはバージョンを動的に識別します。
  • Citrix ADCアプライアンスでは、転送操作です。プロキシプロトコルは、負荷分散仮想サーバーまたはコンテンツスイッチング仮想サーバーで有効になり、サービスで有効になります。アプライアンスはプロキシヘッダーを受信し、ヘッダーの詳細をバックエンドサーバーに転送します。
  • プロキシヘッダーの詳細が無効な形式の場合、アプライアンスは接続をリセットします。
  • 送信側では、アプライアンスは CLI 設定に基づいてプロキシプロトコルのバージョンを決定します。

操作を剥ぎ取った

操作を剥ぎ取った

コンポーネントの相互作用は次のとおりです。

  • クライアントは、プロキシヘッダーとともに要求をCitrix ADCアプライアンスに送信します。
  • Citrix ADCアプライアンスでは、ストリップ操作の場合、アプライアンスはプロキシプロトコルから取得したクライアント情報を転送し、書き換えポリシー式を使用してHTTPヘッダーに挿入します。
  • 送信元 IP アドレス、宛先 IP アドレス、送信元ポート、宛先ポートなどのクライアントの詳細は、書き換えポリシー式を使用して HTTP ヘッダーに追加されます。書き換えポリシーによって式が評価され、「true」の場合、対応する書き換えポリシーアクションがトリガーされます。クライアントの詳細は HTTP ヘッダーでバックエンドサーバーに転送されます。
  • プロキシヘッダーの詳細が無効な形式の場合、アプライアンスは接続をリセットします。

プロキシプロトコルのバージョン形式

プロキシプロトコルバージョンには 2 つの形式があります。アプライアンスは、着信データの長さに基づいてフォーマットを使用することを決定します。詳細については、 プロキシプロトコル RFP を参照してください。

  1. プロキシプロトコルバージョン1形式

    PROXY TCP4/TCP6/UNKNOWN <SRC IP> <DST IP> <SRC PORT> <DST PORT>

    • PROXY-> プロキシヘッダーバージョン -1 の一意の文字列形式。
    • プロトコル TCP over IPv4 および TCP over IPv6 をサポートします。残りのプロトコルでは、これは UNKNOWN です。
    • SRC IP:パケットの送信元 IP(元のクライアント IP)アドレス。
    • DST IP:パケットの宛先 IP アドレス。
    • SRC ポート:パケットの送信元ポート。
    • DST ポート:パケットの宛先ポート。
  2. プロキシプロトコルバージョン2形式

    0D 0A 0D 0A 00 0D 0A 51 55 49 54 0A <13th byte> <14th byte> <15-16th byte> <17th byte onwards>

    • D 0A 0D 0A 00 0D 0A 51 55 49 54 0A-> プロキシヘッダバージョン-2の一意のバイナリ文字列。
    • プロトコル TCP over IPv4 および TCP over IPv6 をサポートします。残りのプロトコルでは、これは UNKNOWN です。
    • 13 バイト:プロトコルのバージョンとコマンド。
    • 14 バイト:アドレスとプロトコルファミリ。
    • 15-16 バイト — ネットワークオーダーのアドレス長。
    • 17 バイト目以降:ネットワーク順に存在するアドレス情報(src IP、DST IP、src ポート、dst ポート)。

Citrix ADCアプライアンスでプロキシプロトコルを構成する

Citrix ADCアプライアンスでプロキシプロトコルを構成するには、次の手順を実行します。

  1. プロキシプロトコルをグローバルとして有効にします。
  2. 挿入操作用のプロキシプロトコルの設定
  3. 転送操作用のプロキシプロトコルの設定
  4. ストリップ操作用のプロキシプロトコルの設定
  5. 操作がないようにプロキシプロトコルを構成する

プロキシプロトコルをグローバルとして有効にする

コマンドプロンプトで、次のように入力します。

set ns param –proxyProtocol ENABLED

挿入操作用のプロキシプロトコルの設定

挿入操作のプロキシプロトコルを構成するには、負荷分散仮想サーバーでプロトコルを有効または無効にし、サービスで有効にする必要があります。

負荷分散仮想サーバーのプロキシプロトコルを無効にしたネットプロファイルを追加する

コマンドプロンプトで、次のように入力します。

add netprofile <name> -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion <V1/V2>

例:

Add netprofile proxyprofile-1 –proxyProtocol DISABLED –proxyprotocoltxversion V1

注:

アプライアンスでプロキシプロトコルを無効にする場合は、プロトコルバージョンパラメータを設定する必要はありません。

サービスに対してプロキシプロトコルが有効になっているネットプロファイルを追加する

コマンドプロンプトで、次のように入力します。

add netprofile <name> -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion <V1/V2>

例:

add netprofile proxyprofile-2 –proxyProtocol ENABLED –proxyprotocoltxversion V1

プロキシレイヤーにCitrix ADCアプライアンスの負荷分散仮想サーバーを追加します

コマンドプロンプトで、次のように入力します。

add lb vserver <name>@ <serviceType> [(<IPAddress>@ <port>)]

例:

add lb vserver lbvserver-1 http 1.1.1.1 80

プロキシレイヤーにCitrix ADCアプライアンスのHTTPサービスを追加します

コマンドプロンプトで、次のように入力します。

add service <name>@ (<IP>@ | <serverName>@) <serviceType> <port>

例:

Add service http-service-1 2.2.2.1 http 80

Citrix ADCアプライアンスで負荷分散仮想サーバーを使用してネットプロファイルを設定する

コマンドプロンプトで、次のように入力します。

set lb vserver <vserver name> -netprofile <name>

例:

set lb vserver lbvserver-1 –netprofile proxyProfile-1

Citrix ADCアプライアンスでHTTPサービスを使用してネットプロファイルを設定する

コマンドプロンプトで、次のように入力します。

set service <service name> –netprofile <name>

例:

set service http-service-1 –netprofile proxyProfile-1

転送操作用のプロキシプロトコルの設定

プロキシレイヤー内の次のCitrix ADCインスタンスの転送操作用のプロキシプロトコルを構成するには。プロトコルを有効または無効にし、仮想サーバーまたはサービスにバインドする必要があります。

負荷分散仮想サーバーでプロキシプロトコルが有効になっているネットプロファイルを追加する

コマンドプロンプトで、次のように入力します。

add netprofile <name> -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion <V1/V2>

例:

add netprofile proxyprofile-3 –proxyProtocol ENABLED –proxyprotocoltxversion V1

サービスに対してプロキシプロトコルが有効になっているネットプロファイルを追加する

コマンドプロンプトで、次のように入力します。

add netprofile <name> -proxyProtocol ENABLED/DISABLED> -proxyprotocoltxversion <V1/V2>

例:

add netprofile proxyprofile-4 –proxyProtocol ENABLED –proxyprotocoltxversion V1

プロキシレイヤーにCitrix ADCアプライアンスの負荷分散仮想サーバーを追加します

コマンドプロンプトで、次のように入力します。

add lb vserver <name>@ <serviceType> [(<IPAddress>@ <port>)]

例:

add lb vserver lbvserver-2 http 2.2.2.2 80

プロキシレイヤーにCitrix ADCアプライアンスのHTTPサービスを追加します

コマンドプロンプトで、次のように入力します。

add service <name>@ (<IP>@ | <serverName>@) <serviceType> <port>

例:

Add service http-service-2 3.3.3.1 http 80

Citrix ADCアプライアンスで負荷分散仮想サーバーを使用してネットプロファイルを設定する

コマンドプロンプトで、次のように入力します。

set lb vserver <vserver name> -netprofile <name>

例:

set lb vserver lbvserver-2 –netprofile proxyProfile-3

Citrix ADCアプライアンスでHTTPサービスを使用してネットプロファイルを設定する

コマンドプロンプトで、次のように入力します。

set service <service name> –netprofile <name>

例:

set service http-service-2 –netprofile proxyProfile-4

ストリップ操作用のプロキシプロトコルの設定

ストリップ操作のプロキシプロトコルを構成するには、負荷分散仮想サーバーでプロキシプロトコルを有効にし、サービスのプロキシプロトコルを無効にする必要があります。

仮想サーバーでプロキシプロトコルが有効になっているネットプロファイルを追加する

コマンドプロンプトで、次のように入力します。

add netprofile <name> -proxyProtocol ENABLED> -proxyprotocoltxversion <V1/V2>

例:

add netprofile proxyprofile-5 –proxyProtocol ENABLED –proxyprotocoltxversion V1

Citrix ADCアプライアンスの負荷分散またはコンテンツスイッチング仮想サーバーをプロキシレイヤーに追加する

コマンドプロンプトで、次のように入力します。

add lb vserver <name>@ <serviceType> [(<IPAddress>@ <port>)]

例:

add lb vserver lbvserver-3 http 2.2.2.2 80

プロキシレイヤーにCitrix ADCアプライアンスのHTTPサービスを追加します

コマンドプロンプトで、次のように入力します。

add service <name>@ (<IP>@ | <serverName>@) <serviceType> <port>

例:

Add service http-service-3 3.3.3.1 http 80

Citrix ADCアプライアンスの負荷分散またはコンテンツスイッチング仮想サーバーを使用したネットプロファイルの設定

コマンドプロンプトで、次のように入力します。

set lb vserver <vserver name> -netprofile <name>

例: set lb vserver lbvserver-3 –netprofile proxyProfile-5

Citrix ADC GUIを使用してプロキシプロトコルを構成する

  1. [ システム ] > [ 設定] > [グローバルシステム設定の変更] に移動します。
  2. [ グローバルシステム設定の構成] パラメータページで 、[ プロキシプロトコル ] チェックボックスをオンにします。
  3. OK]をクリックして閉じます

    プロキシプロトコルページ

  4. [ システム ] > [ ネットワーク ] > [ ネットプロファイル] に移動します。
  5. 詳細ウィンドウで、[ 追加 ] をクリックして、負荷分散仮想サーバーのネットプロファイルを作成します。
  6. [ ネットプロファイル ] ページで、次のパラメータを設定します。
    1. Name:ネットプロファイルの名前。
    2. プロキシプロトコル。負荷分散仮想サーバーのプロキシプロトコルを有効または無効にします。
    3. プロキシプロトコル TX バージョン。受信データ形式に基づいて、プロキシプロトコルのバージョンを V1 または V2 に設定します。
  7. OK」をクリックします。

    ローカライズされた画像

  8. [ トラフィック管理 ] > [ 負荷分散 ] > [ 仮想サーバー] に移動します。
  9. 詳細ペインで、[Add] をクリックします。
  10. [ 負荷分散仮想サーバー ] ページで、基本パラメータを設定します。
  11. [詳細設定] セクションで、[ プロファイル] を選択します。
  12. [ プロファイル ] セクションで、鉛筆アイコンをクリックします。
  13. ネットプロファイルを選択し、 「OK」をクリックします。
  14. [完了] をクリックします。

    ローカライズされた画像

  15. [ トラフィック管理 ] > [ 負荷分散 ] > [ サービス] に移動します。
  16. 詳細ペインで、[Add] をクリックします。
  17. [ 負荷分散サービス ] ページで、基本パラメータを設定します。
  18. [詳細設定] セクションで、[ プロファイル] を選択します。
  19. [ プロファイル ] セクションで、鉛筆アイコンをクリックします。
  20. ネットプロファイルを選択し、 「OK」をクリックします。
  21. [完了] をクリックします。

注:

プロキシレイヤーの一部として複数のCitrix ADCアプライアンスがある場合は、転送操作のために各アプライアンスでプロキシプロトコル構成を設定する必要があります。

プロキシ・プロトコルの構成