RD Gateway(リモートデスクトップゲートウェイ)を冗長化したい。RDS

リモートデスクトップサービス(RDS)のRDGateway(ゲートウェイ)はダウンすると、即RDSサービスダウンにつながります。
なので、RDGatewayを冗長化する方法を調べました。

前提条件・環境

  • Windows Server 2016 でRDS環境を構築
  • 検証としてAWS環境を使用

結論、RDP over https のリモートデスクトップゲートウェイは冗長化構成可能

まず初めに、ダウンすると即サービス停止になるRD gatewayは冗長化可能です。
RD Gatewayの役割は、RDPプロトコルをhttps上の中で実装する、RDP over httpsを実行していることです。

なので、RD gatewayを冗長化させるのは普通のhttpsのwebサーバーを冗長化させる方法と同じになります。

参考:RD Web およびゲートウェイ Web フロントに高可用性を追加する | Microsoft Docs

このマイクロソフトドキュメントのように、AWS上でRDゲートウェイを冗長化させた場合、RDゲートウェイ1とRDゲートウェイ2では証明書が異なったものが自動で用意されました。(工夫が必要ですね)

注意点、RDP over httpsはSSL・TLS複合化すると通信できない。

RDP over httpsは通信の経路途中でSSL証明書による複合化してしまうと、クライアントとRDSが通信できなくなります。
なので、AWSでいうところのALBをロードバランサーとして導入すると通信できませんでした。

この構成の場合、「このコンピューターはリモートコンピューターに接続できません。リモートデスクトップゲートウェイサーバーが一時的に使用できません。後で再接続試行するか、サポートが必要な場合はネットワーク管理者に問い合わせてください。」のRemoteAppが切断されましたエラーがクライアント側に出ます、。

RemoteAppが切断されましたエラーの原因

上記「このコンピューターはリモートコンピューターに接続できません。リモートデスクトップゲートウェイサーバーが一時的に使用できません。後で再接続試行するか、サポートが必要な場合はネットワーク管理者に問い合わせてください。」エラーが出た場合、原因が何個か考えられます。

  • 本当にRD gatewayがダウンしている場合(RemoteAppが切断されましたエラーが表示されるまでに時間がかかるケース)
  • 証明書がクライアントとサーバーで一致無い場合(ALBのように経路の途中で証明書が複合化されている場合)

があります。
参考までに、RDP over httpsは「netsh winhttp」のプロキシを経由し接続しに行きます。プロキシで証明書が複合化されているケースも考えられます。

クライアント側にRDゲートウェイの証明書が無い場合は?

「このコンピュータはRDゲートウェイのIDを確認できません。IDを確認できないサーバーへの接続は安全ではありません。サポートが必要な場合は、ネットワーク管理者に問い合わせてください」

というメッセージが表示されます。
「証明書の表示」ボタンを押し、

「ファイルにコピー」ボタンで証明書をパソコンに保存し、その保存した証明書のインストールを行います。保存する証明書ストアは、「信頼されたルート証明機関」へ保管します。
証明書をインストールすることにより、RDゲートウェイに接続できるようになります。

RDPクライアントのRDS接続ステータス遷移

RDS接続する時のRDPクライアントの接続ステータス遷移です。
以下のステータス変化でクライアントからRDSに接続していました。

  1. (このRemoteAppプログラムの発行元を識別できません。接続してこのプログラムを実行しますか?)
  2. リモート接続を開始しています…
  3. (資格情報を入力してください)
  4. リモート接続を開始しています…
  5. ----RDゲートウェイに接続----
  6. リモート接続を保護しています…
  7. ----RD接続ブローカーに接続----
  8. (このリモートコンピュータのIDを識別できません。接続しますか?)
  9. リモート接続を保護しています…
  10. リモートセッションを構成しています…
  11. 仮想マシンを読み込んでいます…
  12. リモート接続を開始しています…
  13. ----RDセッションホストに接続----
  14. リモート接続を保護しています…
  15. リモートセッションを構成しています…
  16. 接続品質の評価中…
  17. リモートセッションを構成しています…

クライアントからRDSへ接続中時にエラーが出た時は、このステータスの箇所でどこに問題があるかのわかりかもしれませんね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です