Microsoft Windows Server 2008 R2: RD 接続ブローカーを理解する

RD 接続ブローカーが、ユーザーの仮想マシンに関する要求に対応するときには、旅行代理店、交通機関、および仲介人の役割を果たします。

Kristin Griffin

リモート デスクトップ (RD) 接続ブローカーは、接続要求を適切な仮想マシン (VM) またはセッションに送信する接続のルーティング処理でコントロール センターのような役割を担っています。RD 接続ブローカーは Microsoft 仮想デスクトップ インフラストラクチャ (VDI) の展開に必要不可欠なコンポーネントですが、セッション接続の仲介や RD セッション ホスト ファームの展開もサポートします。

RD 接続ブローカーには、多数の機能があります。その中でも特に重要なものは、次のとおりです。

  • ユーザーの ID、接続の確立に使用した RDP ファイルのコンテンツ、および VM ホスト サーバーとセッション ホスト サーバーの負荷に基づいて、接続を送信する最適なリソース (RD セッション ホスト サーバー、プールされた VM、または個人用 VM) を判断します。
  • VM プールを作成し、個人用 VM をユーザーに割り当てます。
  • VM とセッションの両方への接続に関する接続情報を格納します。
  • RD Web アクセスが、RD セッション ホスト サーバーから RemoteApp の情報を取得するためのリソースとして機能します。
  • RD Web アクセス経由で利用可能な RemoteApp プログラムと利用可能な VM の情報を提供します。

RD 接続ブローカーのコンポーネントの概要

RD 接続ブローカーの役割サービスには、いくつかのコンポーネントがあります。着信接続の送信先リソースを判断する 2 つのリソース プラグイン (VM プラグインとセッション プラグイン) があります。

各リソース プラグインは、リソース プラグインで処理する接続の細部を管理する規則を提供するフィルター プラグインと関連付けられていることがあります。たとえば、この規則では、RD セッション ホスト サーバー ファームへの接続の負荷を分散する方法を制御できます。負荷分散のロジックは、リソース プラグイン自体に格納することもできます。フィルター プラグインは、リソース プラグインのロジックを必要に応じて置き換えることを目的としています。

RD 接続ブローカー サービスには、サードパーティ製のリソース プラグインとフィルター プラグインをサポートする拡張可能なアーキテクチャが用意されています。また、リソース プラグインとクライアント間の通信を処理する仲介サービスと RD 接続ブローカー経由で確立した全接続の情報を追跡するデータベースもあります。このデータベースには、ユーザーが接続した VM やセッションと接続の状態 (アクティブまたは切断) に関する情報が格納されます。

RD 接続ブローカーの役割サービスのコンポーネントではありませんが、リダイレクター (ドレイン モードの RD セッション ホスト サーバー) は、VM の接続を仲介するうえで欠かせません。リダイレクターでは、クライアントからの初期要求を受信し、VM の適切なアドレスをクライアントに送信して、クライアントが接続を確立できるようにします。セッション接続の仲介に関しては、各 RD セッション ホストが、交代で着信接続のリダイレクターとして役割を果たしたり、専用のサーバーを用意することができます。

ユーザーが (クライアント コンピューターに格納されているか、RD Web アクセスを使用して公開された) RDP ファイルをクリックすると、RDP ファイルのコンテンツを解析して、接続パラメーターを判断します。セッション接続と VM 接続の仲介では、処理方法が若干異なります。

VDI シナリオ

VDI のシナリオでは、ユーザーが RDP ファイルをアクティブ化して、プールされた VM または個人用 VM への接続を要求したときに接続の仲介が発生します。これはプールされた VM の RDP ファイルの画像 (図 1 参照) の loadbalanceinfo の値で確認できます。

接続ブローカーのプロセスを開始するユーザー主導の要求

図 1 接続ブローカーのプロセスを開始するユーザー主導の要求

この行にある 1 という数値は、リソースがプールされた VM であることを示しています。1 の後に続く名前が RD 接続ブローカーで構成されている VM プールの名前になります。この数値が 2 の場合は、リソースが個人用 VM であることを示します。RDP ファイルの他の行には、プールされた VM または個人用 VM への接続に関するデータが格納されています。概要は次のとおりです。

  • use redirection server name:i:1 - このエントリは 1 に設定されています。リダイレクターの名前ではなく、接続ブローカーから返されるエンドポイントの名前を使用して VM を認証するようにクライアントに指示します (サーバー認証のために証明書を展開する必要がなくなります)。
  • full address:s:<RDP 6.1 以前のクライアント用に設定するリダイレクターの別名>
  • alternate full address:s:<リダイレクターの名前> - このフィールドは、以前のバージョンの RDP で使用されていた完全なアドレス フィールドの代わりに RDP 7 接続で使用します。

リダイレクターは、RD 仮想化ホスト サーバーと同じサーバーにインストールする必要があります。このような構成にすると、概念がシンプルになり、リダイレクター専用のサーバーを用意する必要もありません。接続要求は、まず、リダイレクト モードで (リダイレクター経由で) RD セッション ホスト サーバーに送信され、RD セッション ホスト サーバーから RD 接続ブローカーに渡されます。

RD 接続ブローカーでは、VM の要求を受信すると、VM リソース プラグインをアクティブ化し、データベースを照会して、特定の VM への切断されたセッションがあるかどうかを確認します。切断されたセッションがある場合は、その接続の IP アドレスをリダイレクターに送信し、リダイレクターでは、その情報をユーザーに渡します。その結果、ユーザーが VM に直接接続できるようになります。

既存のセッションがない場合、RD 接続ブローカーでは、VM の準備を要求します。この要求は、VM プールをサポートしている RD 仮想化ホスト サーバーに送信されます。プールされた VM は、複数の RD 仮想化ホスト サーバーに分散させることができます。複数のサーバーに分散している場合、RD 接続ブローカーでは、要求に対応できるものが見つかるまで、各 RD 仮想化ホスト サーバーを確認します。

個人用 VM の要求の場合、RD 接続ブローカーでは、ユーザーの資格情報を取得して、Active Directory を確認し、そのユーザーの個人用 VM の名前を取得します。その後、当該 VM をホストする RD 仮想化ホスト サーバーにアクセスして、VM の準備をするように要求します。

VM の準備が整ったら、RD 仮想化ホスト サーバーでは、IP アドレスを RD 接続ブローカーに送信します。接続ブローカーでは、その情報をリダイレクターに送信し、リダイレクターでは、その情報をユーザーに送信します。その結果、ユーザーは VM に直接接続できるようになります。

サーバー ファーム シナリオ

RD セッション ホスト サーバーのシナリオでは、RD 接続ブローカーは若干異なる動作をします。セッションの接続要求を受信すると、負荷分散の初期メカニズム (ネットワーク負荷分散 [NLB]、ラウンド ロビン DNS [RRDNS]、またはロード バランサー機器) によって、要求がリダイレクター (ファーム内のいずれかの RD セッション ホスト サーバー) に送信されます。

その後、この要求は RD 接続ブローカーに送信されます。専用のリダイレクター (専用の RD セッション ホスト サーバー) を使用して、RD 接続ブローカーに接続要求を渡すこともできます。

RD 接続ブローカーでは、セッション プラグインをアクティブ化します。セッション プラグインでは、まず、データベースで、ファーム メンバー サーバーのいずれかに、そのユーザーが切断したセッションがあるかどうかを確認します。

そのようなセッションがある場合、セッション プラグインでは、当該ファーム メンバーの IP アドレスと切断されたセッションの ID を取得し、この情報をリダイレクターに送信します。リダイレクターでは、この情報をユーザーに送信するので、ユーザーが、ファーム サーバーに直接接続できるようになります。

切断されたセッションがない場合、RD 接続ブローカーでは、新しいセッションをホストするのに最適なファーム サーバーを特定します。この判断は、すべてのファーム メンバーの現在のセッションの負荷に基づいて行います。ファームにおける重要度と比較して、セッションの負荷が最も低いファーム メンバーに接続します (サーバーの重要度は、提供するハードウェアの機能に基づいて判断できます)。

このサイクルは、RD 接続ブローカーが、接続先として決定したファーム サーバーの IP アドレスをリダイレクターに渡し、リダイレクターが、その情報をユーザーに渡し、ユーザーが、ファーム サーバーに直接接続を確立するという形で完了します。

RD 接続ブローカーを使用する

Microsoft Windows Server 2008 R2 Remote Desktop Services Resource Kit』(Microsoft Press、2010 年) では、RD 接続ブローカーを使用して、プールされた VM、個人用 VM、および RD セッション ホスト サーバー ファームを設定する手順を紹介しています。

このようなシナリオで RD 接続ブローカーを使用する手順は次のとおりです。

  • RD セッション ホスト サーバーと RD 仮想化ホスト サーバーが RD 接続ブローカーと通信できるようにします。
  • RD 仮想化ホスト サーバーと RD セッション ホスト ファームのサーバー コンピューターを RD セッション ブローカーの Session Broker Computers グループに追加します。
  • VDI を実装する場合は、VM リダイレクターとして機能するように RD 接続ブローカー サーバーの RD セッション ホストの役割サービスを構成します。
  • RD セッション ホスト サーバー ファームを実装する場合は、RD 接続ブローカー ファームに参加するように RD セッション ホスト サーバーを構成します。
  • RD セッション ホスト ファームの接続要求をリダイレクターにルーティングするのに使用する負荷分散の初期メカニズム (RRDNS、NLB、またはロード バランサー機器) を構成します。リダイレクターでは、接続要求を RD 接続ブローカーに渡します (専用のリダイレクターを構成することもできます)。
  • RD Web を追加して RD Web アクセスが RD 接続ブローカーと通信できるようにします。RD 接続ブローカーの TS Web Access Computers グループにサーバー コンピューターを追加します。
  • RD 接続ブローカーの RD 接続マネージャーでプールされた VM または個人用 VM を構成します。
  • RD 接続ブローカーの RD 接続マネージャーでプールされた RemoteApp ソースを構成します。

このように、RD 接続ブローカーは、VDI と RD セッション ホスト ファームの展開において中核的な役割を担っており、VDI と RD セッション ホスト ファーム シナリオのどちらでも機能します。上記のセットアップ手順が、プールされた VM、個人用 VM、および RD セッション ホスト サーバー ファームを実装するときのお役に立てばさいわいです。

RD 接続ブローカーに関してよく寄せられる質問

Q. RD 接続ブローカーのトラブルシューティングに使用できるツールはありますか。

A. RD 接続ブローカーのイベント ログを使用できます。RD 接続ブローカーに関するイベントは、"アプリケーションとサービス ログ\Microsoft\Windows\RemoteApp とデスクトップ接続の管理" で確認できます。RD 接続ブローカーのデータベースからデータを取得することもできます。

Q. RD Web アクセスの RemoteApp ソースとして RD 接続ブローカーを使用していますが、RD Web アクセスにアイコンが表示されません。なぜですか。

A. このような現象が発生する原因および対策としては、次のことが考えられます。

  • RD 接続ブローカーでは、RemoteApp の情報を収集するときに 1 つのファーム メンバーしか確認しません。RD 接続ブローカーで RemoteApp のデータを収集するために使用しているファーム メンバーの TS Web Access Computers グループに RD 接続ブローカーが追加されていない可能性があります。すべてのファーム メンバーの TS Web Access Computers グループに RD 接続ブローカー コンピューターを追加するようにします。
  • RD 接続ブローカーが Active Directory ユーザーとコンピューターの Windows Authorization Access グループに追加されていることを確認します。
  • 1 台のサーバーで、(ファームに参加している) RD セッション ホスト サーバーと RD 接続ブローカー サーバーの役割を兼任している場合、RD Web アクセスでは RemoteApps が表示されません。これらの役割サービスを組み合わせるのは、RS セッション ホスト役割サービスをリダイレクト モードで構成する場合に限定する必要があります。
  • ターミナル サービス名前空間の Windows Management Instrumentation (WMI) のアクセス許可がなくなり、RD Web アクセスで RemoteApp ソースとして RD 接続ブローカーをクエリできないという既知の問題があります。RD Web アクセス サーバーを RD 接続ブローカーの TS Web Access Computers グループに再度追加すると、この問題は一時的に解決します (ただし、時間の経過と共に、同じ問題が発生する可能性が高くなります)。この問題の詳細な回避策ついては、この TechNet Forum のスレッド (英語) を参照してください。

Q. Windows 7 の RemoteApp とデスクトップ接続で新しい接続を設定できません。既に接続を確立している場合は、接続を更新できません。このとき "エラーが発生しました。サポートが必要な場合、ワークプレース管理者に問い合わせてください。" というエラー メッセージが表示されます。この問題を解決する方法はありますか。

A. RD 接続マネージャーでは、表示名の最後にピリオド (.)、アスタリスク (*)、または疑問符 (?) を付けないでください。これらはワイルドカード文字と見なされます。RD 接続ブローカー サーバーで、RD 接続マネージャーを起動し、[リモート デスクトップ接続マネージャー] を右クリックして、[プロパティ] をクリックします。[表示名] ボックスから、ワイルドカード文字と見なされる記号を削除します。

Kristin Griffin

Kristin Griffin は、リモート デスクトップ サービスの MVP です。サーバー ベース コンピューティングのコミュニティに役立つマイクロソフト フォーラム (bit.ly/ntnw7g、英語) を運営しており、RDS に関するブログ (blog.kristinlgriffin.com、英語) を公開しています。また、Mark Minasi の著書『Windows Server 2008 パーフェクトガイド』(翔泳社、2010 年) と『Windows Server 2008 R2 パーフェクトガイド』(ソフトバンククリエイティブ、2010 年) の執筆に貢献し、『Microsoft Windows Server 2008 Terminal Services Resource Kit』(Microsoft Press、2008 年) と『Microsoft Windows Server 2008 R2 Remote Desktop Services Resource Kit』(Microsoft Press、2010 年) を Christa Anderson と共同で執筆しました。

関連コンテンツ