リモートデスクトッププロトコル (RDP) はマルチチャネル対応のプロトコルで、プレゼンテーションデータ、シリアルデバイス通信、ライセンス情報、高度に暗号化されたデータ (キーボードとマウスの操作) などを転送するための個別の仮想チャネルを可能にします。
RDPは、ネットワーク上の別のコンピューターにGUIを提供するために使用されます。RDP は Windows ターミナルサーバーで使用され、低帯域幅の接続でも、マウスの動きとキー押下をほぼリアルタイムに伝送して高速アクセスを提供します。
リモートデスクトップサービスを提供するために複数のターミナルサーバーを展開すると、Citrix ADCアプライアンスはターミナルサーバー(Windows 2003および2008 Serverエンタープライズエディション)の負荷分散を提供します。アプリケーションにリモートでアクセスしているユーザーは、アプリケーションをリモートマシンで実行したままにして、ローカルマシンをシャットダウンしたい場合があります。したがって、ユーザはリモートアプリケーションからログアウトせずにローカルアプリケーションを閉じます。リモートマシンに再接続した後、ユーザーはリモートアプリケーションを続行できる必要があります。この機能を提供するために、Citrix ADC RDP実装では、ターミナルサービスセッションディレクトリまたはブローカーによって設定されたルーティングトークン(Cookie)が優先されるため、クライアントは以前に接続されていたターミナルサーバーに再接続できます。セッションディレクトリは、Windows 2003 ターミナルサーバーに実装され、Windows 2008 ターミナルサーバーではブローカーと呼ばれます。
クライアントと負荷分散仮想サーバー間でTCP接続が確立されると、Citrix ADCは指定された負荷分散方法を適用し、いずれかのターミナルサーバーに要求を転送します。ターミナルサーバーはセッションディレクトリをチェックして、クライアントがドメイン内の他のターミナルサーバーで実行されているセッションがあるかどうかを判断します。
他のターミナルサーバーにアクティブなセッションがない場合、ターミナルサーバーはクライアント要求を処理して応答し、Citrix ADCアプライアンスはクライアントに応答を転送します。
他のターミナルサーバーにアクティブなセッションがある場合、要求を受信するターミナルサーバーはアクティブなセッションの詳細を含むクッキー(ルーティングトークンと呼ばれる)を挿入し、パケットをCitrix ADCアプライアンスに返し、パケットをクライアントに返します。サーバーはクライアントとの接続を閉じます。クライアントが接続を再試行すると、Citrix ADCはCookie情報を読み取り、クライアントがアクティブなセッションを持つターミナルサーバーにパケットを転送します。
クライアントマシン上のユーザーがサービスの継続を経験し、特定のアクションを実行する必要はありません。
注:Windows セッションディレクトリ機能を使用するには、Windows XP で最初にリリースされたリモートデスクトップクライアントが必要です。Windows 2000 または Windows NT 4.0 ターミナルサーバークライアントとのセッションが切断され、クライアントが再接続すると、接続が確立されたサーバーが負荷分散アルゴリズムによって選択されます。
次の図は、RDP ロードバランシングを示しています。
図1:RDP のロードバランシングトポロジ
-
RDP サービスが構成されると、ルーティングトークンを使用して永続性が自動的に維持されます。永続性を明示的に有効にする必要はありません。
-
Citrix ADCアプライアンスは、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サービスを追加すると、デフォルトでCitrix ADCはTCPタイプのモニターを追加し、サービスにバインドします。デフォルトのモニターは、RDPサービス用に指定されたサーバーの3389ポートにリスニングプロセスが存在するかどうかを確認する単純なTCPモニターです。3389でリスニングプロセスがある場合、Citrix ADCはこのサービスをUPとしてマークし、リスニングプロセスがない場合は、サービスをダウンとしてマークします。
RDP サービスをより効率的に監視するには、既定のモニターに加えて、RDP プロトコル用のスクリプトモニターを構成できます。スクリプトモニターを構成すると、Citrix ADCは指定されたサーバーへのTCP接続を開き、RDPパケットを送信します。モニタは、物理サーバから接続の確認を受信した場合のみ、サービスを UP としてマークします。したがって、スクリプトモニターから、Citrix ADCは、RDPサービスが要求を処理する準備ができているかどうかを知ることができます。
モニタはユーザータイプのモニタで、スクリプトはCitrix ADC /nsconfig/monitors/nsrdp.plにあります。ユーザーモニターを構成すると、Citrix ADCによってスクリプトが自動的に実行されます。スクリプトモニターを構成するには、モニターを追加し、RDP サービスにバインドします。
RDP 負荷分散を構成するには、RDP タイプのサービスを作成し、RDP 仮想サーバーにバインドします。