ADC

SPDY (Speedy)

警告 SPDYはNetScaler 12.0ビルド56.20以降では推奨されていません。代わりに、HTTP/2機能を使用することをお勧めします。詳細については、 HTTP/2 のトピックを参照してください。

SPDYは、クライアントがブラウザにWebページを読み込むのにかかる時間を短縮するために、Googleが開発したオープンネットワーキング実験プロトコルです。アプリケーション層プロトコルである SPDY は、HTTP 要求と応答の処理方法を変更します。SPDY には、通常の HTTP トランザクションと比較して次のような利点があります。

  • 多重化された要求と応答:単一の SPDY セッションでは、クライアントからの複数の要求を、単一の TCP 接続を介してサーバに送信できます。これにより、TCP 接続の数が減り、各 TCP 接続の使用が最適化されます。
  • 要求の優先順位付け:サーバからサービスを要求するとき、クライアントは各要求に優先順位を割り当てることができます。
  • ヘッダー圧縮:SPDY は HTTP 要求ヘッダーと応答ヘッダーを圧縮し、帯域幅を節約し、遅延を減らします。
  • サーバプッシュ:サーバは、クライアントが要求する前にデータをクライアントに送信できます。
  • セキュリティ:SPDY 接続には SSL が必要であるため、SPDY は設計上安全です。

Citrix ADC は、SPDY/2およびSPDY/3バージョン(バージョン10.5以降)をサポートしています。

注意: SPDYのサポートは、使用されているブラウザーのバージョンによって異なります。

Citrix ADCアプライアンスをサーバーのSPDYGateway として使用する場合、サーバーはSPDYをサポートする必要はありません。Citrix ADCアプライアンスは、受信SPDY要求を受け入れて変換し、HTTP要求としてサーバーに送信します。また、HTTP 応答を変換し、SPDY 応答としてクライアントに送信します。SPDYの主な価値は、帯域幅の消費量を減らし、クライアントとの通信を高速化することですが、Citrix ADCソリューションの利点は、SPDYをサポートするようにWebサーバーやアプリケーションをアップグレードする時間のかかる作業を回避することです。

Citrix ADCアプライアンスをSPDYGateway として使用するには、アプライアンスでSPDYを有効にする必要があります。

システム要件

SPDY 接続の両端が同じバージョンの SPDY をサポートしている必要があります。さらに、クライアントは次の要件を満たしている必要があります。

ZLIB 圧縮をサポートし、圧縮データを受け入れます。

NPN は TLS ハンドシェイクで使用されるため、次のプロトコルネゴシエーション (NPN) TLS 拡張をサポートします。

SSL 経由の SPDY のしくみ

SPDYが有効な場合、Citrix ADCアプライアンスは、サポートされているプロトコルのリストを含むTLS ALPN拡張子をクライアントハローメッセージに表示すると、サーバーハローのALPN拡張子にSPDY/3またはSPDY/2のいずれかで応答します。

Citrix ADCは、NPN経由でSPDYをネゴシエートすることもできます。Citrix ADC は、クライアント Hello メッセージで空の NPN 拡張子を検出すると、サポートするプロトコルの一覧で応答します。Citrix ADCアプライアンスでSPDYが有効になっている場合、アプライアンスはHTTP/1.1およびSPDY/2プロトコルをアドバタイズします。クライアントはこのリストからプロトコルを 1 つ選択し、そのプロトコルをサーバとネゴシエートします。ネゴシエートされたプロトコルをプレーンテキストで送信すると、セキュリティ上の問題が発生するため、クライアントはセッションの暗号化の詳細を定義する Change Cipher Spec 通知を送信し、続いて Next Protocol メッセージを送信します。このメッセージには、クライアントが選択した暗号化プロトコルが含まれています。その後、クライアントは [完了] メッセージを送信します。Citrix ADCアプライアンスは、次のプロトコルメッセージを復号化し、完了したメッセージを送信します。

セッションが確立され、アプリケーション・データが交換されます。

注: NPN 拡張機能は、Citrix ADC FIPS アプライアンスおよび TLS プロトコルバージョン 1.1 および 1.2 ではサポートされません。

SPDY を構成する

デフォルトでは、Citrix ADCアプライアンスではSPDYが無効になっています。SPDY を有効にすると、アプライアンスは SSL ハンドシェイク中に SPDY/2 または SPDY/3 と HTTP/1.1 の両方をアドバタイズします。Citrix ADCアプライアンスでSPDYを有効にするには、SSL仮想サーバーにバインドされたHTTPプロファイルでSPDYを有効にする必要があります。

コマンドラインインターフェイスを使用して SPDY を構成するには

コマンドプロンプトで、次の操作を行います。

Enable SPDY on a HTTP profile

set ns httpProfile <profileName> -SPDY <options>

> set ns httpProfile profile1 -SPDY ENABLED

Bind the HTTP profile to a SSL virtual server.

set lb vserver <ssl-vserver-name> -httpProfileName <httpProfile-with-spdy>
<!--NeedCopy-->

> set lb vserver SPDY_LB -httpProfileName profile1
<!--NeedCopy-->

注: SPDY をグローバルに適用するには、グローバル HTTP プロファイル (nshttp_default_profile) で SPDY を有効にします。

統計情報を表示するには、次のコマンドを使用します。

stat protocol http -detail

GUI を使用して SPDY を構成するには

[システム] > [プロファイル] に移動し、[HTTP プロファイル] タブで SPDY を有効にするプロファイルを更新します。

[トラフィック管理] > [ロードバランシング] > [仮想サーバー] に移動し、HTTP プロファイルを適切な SSL 仮想サーバーに関連付けます。

SPDY のトラブルシューティング

必要な手順を実行した後でも SPDY セッションが有効になっていない場合は、次の条件を確認してください。

クライアントが Chrome ブラウザを使用している場合、一部のシナリオで SPDY が動作しないことがあります。これは、Chrome が TLS ハンドシェイクを開始しない場合があるためです。

クライアントとCitrix ADCアプライアンスの間にフォワードプロキシがあり、フォワードプロキシがSPDYをサポートしていない場合、SPDYセッションが有効になっていない可能性があります。

Citrix ADCは、TLS 1.1/1.2を介したNPNをサポートしていません。SPDY を使用するには、クライアントはブラウザで TLS1.1/1.2 を無効にする必要があります。

同様に、クライアントが SPDY を使用する場合は、ブラウザで SSL2/3 を無効にする必要があります。

SPDY (Speedy)