ADC
ご意見をお寄せいただきありがとうございました

この記事は機械翻訳されています.免責事項

リモートデスクトッププロトコルサーバーの負荷分散

リモートデスクトッププロトコル (RDP) はマルチチャネル対応のプロトコルで、プレゼンテーションデータ、シリアルデバイス通信、ライセンス情報、高度に暗号化されたデータ (キーボードとマウスの操作) などを転送するための個別の仮想チャネルを可能にします。

RDP は、ネットワーク上の別のコンピュータに GUI を提供するために使用されます。RDP は Windows ターミナルサーバーで使用され、低帯域幅の接続でもマウスの動きやキーの押下をほぼリアルタイムで送信し、高速アクセスを実現します。

リモートデスクトップサービスを提供するために複数のターミナルサーバーを展開する場合、NetScalerアプライアンスはターミナルサーバー(Windows 2003および2008 Server Enterprise Edition)の負荷分散を行います。アプリケーションにリモートでアクセスしているユーザーが、アプリケーションをリモートマシンで実行したままにして、ローカルマシンをシャットダウンしたい場合があります。したがって、ユーザはリモートアプリケーションからログアウトせずにローカルアプリケーションを閉じます。リモートマシンに再接続した後、ユーザーはリモートアプリケーションを続行できる必要があります。この機能を提供するために、NetScaler RDP実装では、ターミナルサービスセッションディレクトリまたはブローカーによって設定されたルーティングトークン(Cookie)が優先されるため、クライアントは以前に接続されていたターミナルサーバーに再接続できます。Windows 2003 ターミナルサーバーに実装されたセッションディレクトリは、Windows 2008 ターミナルサーバーではブローカーと呼ばれます。

クライアントと負荷分散仮想サーバー間でTCP接続が確立されると、NetScalerは指定された負荷分散方法を適用し、要求をいずれかのターミナルサーバーに転送します。ターミナルサーバーはセッションディレクトリをチェックして、クライアントのセッションがドメイン内の他のターミナルサーバーで実行されているかどうかを判断します。

他のターミナルサーバーにアクティブなセッションがない場合、ターミナルサーバーはクライアント要求を処理して応答し、Citrix ADCアプライアンスはクライアントに応答を転送します。

他のターミナルサーバーにアクティブなセッションがある場合、要求を受信するターミナルサーバーはアクティブなセッションの詳細を含むクッキー(ルーティングトークンと呼ばれる)を挿入し、パケットをCitrix ADCアプライアンスに返し、パケットをクライアントに返します。サーバーはクライアントとの接続を閉じます。クライアントが接続を再試行すると、NetScalerはCookie 情報を読み取り、クライアントのセッションがアクティブなターミナルサーバーにパケットを転送します。

クライアントマシン上のユーザーにはサービスが継続されるため、特別なアクションを実行する必要はありません。

注:Windows セッションディレクトリ機能には、Windows XP で最初にリリースされたリモートデスクトップクライアントが必要です。Windows 2000 または Windows NT 4.0 ターミナルサーバクライアントとのセッションが切断され、クライアントが再接続すると、接続を確立するサーバが負荷分散アルゴリズムによって選択されます。

次の図は、RDP 負荷分散を示しています。

図1:RDP の負荷分散トポロジー

RDP トポロジー

  • RDP サービスを設定すると、ルーティングトークンを使用して永続性が自動的に維持されます。永続性を明示的に有効にする必要はありません。
  • NetScalerアプライアンスはIPベースのクッキーのみをサポートします。
  • nsrdp.pl スクリプトは、現在のバージョンの Windows サーバではサポートされていません。

RDP セッションがログアウトせずに切断された場合に 2 つのターミナルサーバー間でフラッピングが発生しないように、切断された RDP セッションがバックエンドのターミナルサーバーでクリアされていることを確認してください。詳しくは、https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc758177(v=ws.10)#BKMK_2を参照してください。

RDPサービスを追加すると、NetScalerはデフォルトでTCPタイプのモニターを追加し、サービスにバインドします。デフォルトモニターは、RDP サービスに指定されたサーバーの 3389 ポートにリスニングプロセスが存在するかどうかをチェックする単純な TCP モニターです。3389でリスニングプロセスがある場合、NetScalerはこのサービスを稼働中としてマークし、リスニングプロセスがない場合はサービスを停止中とマークします。

RDP サービスをより効率的に監視するために、デフォルトのモニターに加えて、RDP プロトコル用のスクリプトモニターを構成できます。スクリプトモニターを構成すると、NetScalerは指定されたサーバーへのTCP接続を開き、RDPパケットを送信します。モニターは、物理サーバーから接続の確認を受け取った場合にのみ、サービスを UP とマークします。そのため、NetScalerはスクリプトモニターから、RDPサービスがリクエストを処理する準備ができているかどうかを知ることができます。

モニターはユーザータイプのモニターで、スクリプトはNetScalerの/nsconfig/monitors/nsrdp.plにあります。ユーザーモニターを構成すると、NetScalerはスクリプトを自動的に実行します。スクリプトモニターを設定するには、モニターを追加して RDP サービスにバインドします。

RDP 負荷分散を設定するには、RDP タイプのサービスを作成し、RDP 仮想サーバーにバインドします。

コマンドラインインターフェイスを使用して RDP 負荷分散サービスを構成するには

コマンドプロンプトで次のコマンドを入力して RDP 負荷分散セットアップを構成し、構成を確認します。

add service <name>@ <serverName> <serviceType> <port>

注:サービスをさらに追加するには、前述のコマンドを繰り返します。

> add service ser1 10.102.27.182 RDP 3389 Done > add service ser2 10.102.27.183 RDP 3389 Done >show service ser1 ser1 (10.102. 27.182:3389) - RDP State: UP … Server Name: 10.102.27.182 Server ID : 0 Monitor Threshold : 0 Down state flush: ENABLED1) Monitor Name: tcp-default State: UP Weight: 1 … Response Time: 4.152 millisec Done

構成ユーティリティを使用して RDP 負荷分散サービスを構成するには

[ トラフィック管理] > [負荷分散] > [サービス] に移動し、RDP タイプのサービスを作成します。

コマンドラインインターフェイスを使用して RDP 負荷分散仮想サーバーを構成するには

コマンドプロンプトで次のコマンドを入力して RDP 負荷分散仮想サーバーを構成し、構成を確認します。

add lb vserver <name>@ <serviceType> <ipAddress> <port> bind lb vserver <name>@ <serviceName> Bind all the RDP services to be load balanced to the virtual server.

例:

この例では、2 つの RDP サービスが RDP 仮想サーバーにバインドされています。

add lb vs v1 rdP 10.102.27.186 3389 Done bind lb vs v1 ser1 service "ser1" bound bind lb vs v1 ser2 service "ser2" bound Done sh lb vs v1 v1 (10.102.27.186:3389) - RDP Type: ADDRESS State: UP … No. of Bound Services : 2 (Total) 2 (Active) Configured Method: LEASTCONNECTION Current Method: Round Robin, Reason: A new service is bound Mode: IP Persistence: NONE L2Conn: OFF 1) ser1 (10.102.27.182: 3389) - RDPState: UP Weight: 1 2) ser2 (10.102.27.183: 3389) - RDPState: UP Weight: 1 Done

構成ユーティリティを使用して RDP 負荷分散仮想サーバーを構成するには

[ トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、RDP タイプの仮想サーバーを作成し、RDP サービスをこの仮想サーバーにバインドします。

コマンドラインインターフェイスを使用して RDP サービスのスクリプトモニターを構成するには

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

add lb monitor <monitorName> USER -scriptName nsrdp.pl bind lb monitor <monitorName> <rdpServiceName>

例:

add service ser1 10.102.27.182 RDP 3389 add lb monitor RDP_MON USER -scriptName nsrdp.pl bind lb monitor RDP_MON ser1

構成ユーティリティを使用して RDP サービスのスクリプトモニターを構成するには

  1. [ トラフィック管理] > [負荷分散] > [モニター] に移動し、USER タイプのモニターを作成します。
  2. 「特殊パラメータ」の「スクリプト名」リストで「nsrdp.pl」を選択し、このモニターをRDPサービスにバインドします。
このコンテンツの正式なバージョンは英語で提供されています。Cloud Software Groupドキュメントのコンテンツの一部は、お客様の利便性のみを目的として機械翻訳されています。Cloud Software Groupは機械翻訳されたコンテンツを管理していないため、誤り、不正確な情報、不適切な用語が含まれる場合があります。英語の原文から他言語への翻訳について、精度、信頼性、適合性、正確性、またはお使いのCloud Software Group製品またはサービスと機械翻訳されたコンテンツとの整合性に関する保証、該当するライセンス契約書またはサービス利用規約、あるいはCloud Software Groupとのその他すべての契約に基づき提供される保証、および製品またはサービスのドキュメントとの一致に関する保証は、明示的か黙示的かを問わず、かかるドキュメントの機械翻訳された範囲には適用されないものとします。機械翻訳されたコンテンツの使用に起因する損害または問題について、Cloud Software Groupは責任を負わないものとします。