ADC

TCP オプションのクライアント IP アドレス

Citrix ADCアプライアンスは、さまざまな方法でクライアント情報をバックエンドサーバーに送信します。そのような方法の 1 つに、TCP オプションでクライアント IP アドレスを送信する方法があります。バックエンドサーバが TCP オプションを使用してクライアント IP アドレスを読み取る場合、アプライアンスは TCP プロファイルの TCP オプション番号を使用します。

NetScalerアプライアンスは、次のパケットでのみクライアントIPアドレスをTCPオプションヘッダーで送信します。

  • スリーウェイハンドシェイクの最終 ACK パケット
  • 最初のデータパケット。

NetScalerアプライアンスのTCPオプション構成の使用シナリオの一部を以下に示します。

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

TCP オプションでクライアント IP アドレスを送信する場合、次の 2 つの動作モードがあります。

  • [挿入]。挿入モードでは、アプライアンスはクライアントの詳細を TCP オプション 28(設定可能ですが、推奨値は 28)フィールドに追加し、バックエンドサーバに送信します。
  • フォワード。転送モードでは、仮想サーバは TCP オプションのクライアント IP 詳細をプロキシデバイスから受信します。 仮想サーバでは、プロキシデバイスがクライアント IP の詳細を送信するために使用したのと同じ TCP オプションを設定する必要があります。

    アプライアンスは、TCP オプションフィールドのクライアント詳細をバックエンドサーバに送信します。バックエンドサーバーを表すサービスには、任意の TCP オプションを設定できますが、推奨値は 28 です。

NetScalerアプライアンスは、挿入モード構成用のTCPオプションでのクライアントポートの送信もサポートしています。

注:

  • バインドされた TCP プロファイルで [クライアント IP TCP] オプションが有効になっている場合、仮想サーバで受信したトラフィックの多重化はサポートされません。

  • TCP または HTTP 仮想サーバの場合、TCP オプション番号は、この機能がトランスペアレントモードで有効かどうかにかかわらず転送されます。

制限事項

TCP オプション設定機能は、TFO、マルチパス TCP、および HTTP2 機能ではサポートされていません。

Citrix ADCアプライアンスでのTCPオプションの構成方法

次のフロー図は、Citrix ADCアプライアンスで挿入および転送操作用にTCPオプションを構成する方法を示しています。

挿入操作:

挿入操作

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

  • クライアントがCitrix ADCにリクエストを送信します。
  • 挿入操作では、NetScalerアプライアンスは、次のパケットで構成されたTCPオプションにクライアントのIPアドレスとポートをバックエンドサーバーに挿入します。

    • スリーウェイハンドシェイクの最終 ACK パケット
    • 第 1 データパケット

    注:

    着信トラフィックが HTTPS の場合、TCP オプションのクライアント IP アドレスとクライアントポートは SSL クライアント hello メッセージで送信されます。これは TCP レベルの最初のデータパケットです。

フォワードオペレーション:

フォワード操作

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

  • クライアントは、HTTP/HTTPS要求をCitrix ADCアプライアンスに送信します。
  • Forward 操作では、負荷分散仮想サーバーまたはコンテンツスイッチ仮想サーバーで TCP オプションが有効になり、サービスでも有効になります。アプライアンスは、仮想サーバで指定された TCP オプション番号でクライアントの詳細を受信します。
  • 次に、NetScalerアプライアンスは、バックエンドサーバーへの次のパケットの構成済みTCPオプション(サービス用)にクライアントのIPアドレスとポートを挿入します。

    • スリーウェイハンドシェイクの最終 ACK パケット
    • 第 1 データパケット

挿入操作の TCP オプションの設定

挿入操作の TCP オプションの設定は、次の手順で構成されます。

  1. TCP プロファイルを設定します。Client IP TCP オプション(clientIpTcpOption)を有効にし、TCP オプション番号(clientIpTcpOptionNumber)を指定します。オプションで、sendClientPortInTcpOptionがTCP オプションヘッダー内のクライアントポートを送信できるようにします。

    注:

    TCPプロファイルでは、TCPオプション番号を28に設定することをお勧めします。

  2. TCP プロファイルをサービスにバインドする

CLI を使用して TCP プロファイルを設定するには、次の手順を実行します。

コマンドプロンプトで入力します。

  • add tcpprofile <name> -clientIpTcpOption (ENABLED | DISABLED) -clientIpTcpOptionNumber <positive_integer> -sendClientPortInTcpOption (ENABLED | DISABLED)
  • show tcpprofile <name>

CLI を使用して TCP プロファイルをサービスにバインドするには、次の手順を実行します。

コマンドプロンプトで入力します。

  • set service <name> –tcpprofileName <name>
  • show service <name>

設定例

add tcpprofile TCP-PROFILE-1 -clientIpTcpOption ENABLED -clientIpTcpOptionNumber 28 -sendClientPortInTcpOption ENABLED
set service SERVICE-1 –tcpprofileName TCP-PROFILE-1
<!--NeedCopy-->

転送操作の TCP オプションを設定する

転送動作の TCP オプションの設定は、次の手順で構成されます。

  1. TCP プロファイルを設定します。Client IP TCP オプション(clientIpTcpOption)を有効にし、TCP オプション番号(clientIpTcpOptionNumber)を指定します。
  2. TCP プロファイルを負荷分散仮想サーバーまたはコンテンツスイッチ仮想サーバーにバインドする
  3. TCP プロファイルをサービスにバインドします。

CLI を使用して TCP プロファイルを設定するには、次の手順を実行します。

コマンドプロンプトで入力します。

  • add tcpprofile <name> -clientIpTcpOption (ENABLED | DISABLED) -clientIpTcpOptionNumber <positive_integer>
  • show tcpprofile <name>

CLI を使用して TCP プロファイルを負荷分散仮想サーバーまたはコンテンツスイッチ仮想サーバーにバインドするには、次の手順を実行します。

コマンドプロンプトで入力します。

  • set lb vserver <name> -tcpprofileName <name>
  • show lb vserver <name>

CLI を使用して TCP プロファイルをサービスにバインドするには、次の手順を実行します。

コマンドプロンプトで入力します。

  • set service <name> -tcpprofileName p1
  • show service <name>

設定例

add tcpprofile TCP-PROFILE-2 -clientIpTcpOption ENABLED -clientIpTcpOptionNumber 29
set lb vserver LBVS-2 –tcpprofileName TCP-PROFILE-2
set service SERVICE-2 -tcpprofileName TCP-PROFILE-2
<!--NeedCopy-->

NetScaler GUIを使用してTCPオプションを構成する

  1. [ システム ] > [ プロファイル] に移動します。
  2. [ TCP プロファイル ] タブページで、[ 追加] をクリックします。
  3. [TCP プロファイルの設定 ] ページで、次のパラメータを設定します。

    • clientpTCPOption。TCP オプションを有効にして、クライアント IP アドレスを送受信します。
    • clientiptcptionnumber。TCP オプション番号を設定します。
    • SendClientPortIntcpOption 挿入モードの設定用に、クライアントポートを TCP オプションで送信します。
  4. OKをクリックして閉じます
TCP オプションのクライアント IP アドレス