AVD の RDP Shortpath を構成する

# はじめに
現在は、Azure Virtual Desktop (AVD) で、ホストプールと仮想マシンを作成する際に、どれだけシンプルな画面からデプロイさせられるか？ を研究しています。
その際には、いくつかのハードルがあったのですが、そこで得られたノウハウを記事にしていこうと思っています。以下のリンク先で シリーズ化 していますので併せて参照ください。

https://qiita.com/carol0226/items/7318fdd7aff780f5177c

今回は、Azure Virtual Desktop (AVD) で **RDP Shortpath** を検証してみました。

**RDP Shortpath** を構成すると、クライアントから セッションホスト (AVD VM) への接続がショートカットされ、**UDP 接続** も実現できます。
※通常は、ゲートウェイを経由した通信になりますが、それが ショートカット されます。

**公開情報：Azure Virtual Desktop の RDP Shortpath を構成する**

https://learn.microsoft.com/ja-jp/azure/virtual-desktop/configure-rdp-shortpath?tabs=group-policy%2Cportal%2Cconnection-information

本記事でも 上記で説明されている手順を踏襲しています。

# 1. 前提条件
## 1-1. AVD 環境
検証で使用する AVD 環境は、以下を使います。
オンプレミスドメインに参加する方式を採用しています。

全項目を終える必要はありません。No.6（簡単デプロイ）まで完了していれば、RDP Shortpath の検証は行えます。

https://qiita.com/carol0226/items/7318fdd7aff780f5177c

---

## 1-2. 検証用クライアント
クライアントマシン へ アプリ版の リモートデスクトップクライアント をインストールしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/91dbb35d-0188-bc4c-1e76-5cc9367c1d71.png)

**アプリの入手先**
https://learn.microsoft.com/ja-jp/azure/virtual-desktop/users/connect-windows

上記のサイトから、**前提事項** の章に 以下の赤枠のリンク先があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/dd924b30-224d-b978-847c-54a231ce899e.png)

---

# 2. RDP Shortpath 構築手順

## 2-1. AVD ホスト側の構成
今回ターゲットとなる AVD は、ドメイン環境なので GPO で設定を配布します。

**公開情報：マネージドネットワークの RDP Shortpath 用に RDP Shortpath リスナーを有効にする**
https://learn.microsoft.com/ja-jp/azure/virtual-desktop/configure-rdp-shortpath?tabs=group-policy%2Cportal%2Cconnection-information#enable-the-rdp-shortpath-listener-for-rdp-shortpath-for-managed-networks

---

### 2-1-1. AVD 用 管理用テンプレート
既定で Windows Server には AVD 設定用の項目が用意されていません。
そのため、別途 AVD 用の 管理用テンプレート を取得して 配置する必要があります。

**公開情報**
https://learn.microsoft.com/ja-jp/azure/virtual-desktop/administrative-template?tabs=group-policy-domain

上記のサイトから、管理用テンプレートをダウンロードして、ドメインコントローラー のテンプレート保存場所に配置します。

|ファイルの種類|ドメインコントローラーのテンプレート保存場所|
|:-:|:-:|
|terminalserver-avd.admx|%systemroot%\sysvol\domain\policies\PolicyDefinitions|
|terminalserver-avd.adml|%systemroot%\sysvol\domain\policies\PolicyDefinitions\ja-jp|

**参考：セントラルストアについて**
ドメインコントローラーが ポリシーテンプレートを管理する方法として、ローカルストア と セントラルストア という仕組みがあります。
以下のサイトで解説されているのですが、内容が難しいと感じる人は 何も考えずに Sysvolフォルダ配下に PolicyDefinitions というフォルダを作ってください。
https://learn.microsoft.com/ja-jp/troubleshoot/windows-client/group-policy/create-and-manage-central-store#the-central-store

**配置手順**

0. ダウンロードした **cab** ファイルを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/bc06a6e8-743a-6fc1-d5f6-59171e59bdd9.png)
　<br>
0. **cab** ファイル内にある **zip** ファイルを展開します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/0064f6d8-2735-9733-0534-214c761f9e2e.png)
**zip** を展開すると 以下の内容になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/0c2bc39f-4950-7e23-966f-e82311166c5f.png)
　<br>
0. 上記の一覧から **terminalserver-avd.admx** を、ドメインコントローラーのセントラルストア にコピーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e4e9a73d-5252-06a8-bf05-5b6cf10ba8fc.png)
　<br>
0. 同様に **ja-jp** フォルダ内にある **.adml** ファイルを セントラルストアの **ja-jp** にコピーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/8beae8d6-0192-9471-a688-acff312cd024.png)
セントラルストア の ja-jp フォルダ配下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b7a437d9-6396-c1c7-40d5-25293d1ed8e7.png)

:::note info
**ポイント**
公開情報の手順には、**en-us** と書かれていましたが、**ja-jp** のものが使用できました。
日本語で表示されるようになるので、おススメ です。
:::

---

### 2-1-2. GPO の設定
0. ドメインコントローラーで **グループポリシーの管理** を開き AVD のセッションホスト が含まれている OU を右クリックして **このドメインに GPO を作成し、このコンテナーにリンクする** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/c13df87e-2475-52b7-88ef-75fbb168741e.png)
　<br>
0. 以下の通り、GPO の名称を設定して、OK を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/0e965b71-c1df-a45a-94d8-ca4f47e98df8.png)
　<br>
0. 上記で作成した GPO を右クリックして **編集** で開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/01b5530b-1440-cd7d-3c8a-0b24b53b8b38.png)
　<br>
0. 以下のように パスを開いていき、**リモートデスクトップセッションホスト** の下にある **Azure Virtual Desktop** を選択し、**管理されているネットワークの RDP ショートパスを有効にする** という項目をダブルクリックして開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/ed175266-79e6-a947-19ad-abdf88db4c47.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/c8bb9255-13db-c744-4c41-1e6f423ec053.png)
※項目名が表示されない場合は、前章の 管理用テンプレート の配置がうまく行っていないかもしれません。
　<br>
0. 設定を **有効** に変更し UDP ポートは 既定値 (3390) のまま **OK** を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/65e8cf1b-9c10-d8e4-e82c-f0896bb9f31c.png)
　<br>
0. セッションホストの再起動してください。

---

## 2-2. RDP Shortpath クラウド側 の設定
この設定を行う事で、セッションホストへ 直接接続するための IP アドレスを クライアントに返すことができるようになります。

**公開情報：ホスト プールのネットワーク設定を構成する**
https://learn.microsoft.com/ja-jp/azure/virtual-desktop/configure-rdp-shortpath?tabs=group-policy%2Cportal%2Cconnection-information#configure-host-pool-networking-settings

0. **Azure Virtual Desktop** の画面を開いて、**ホストプール** 名を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/03f40c5a-1257-8a99-e941-cb1eea279f69.png)
　<br>
0. 左ペインから **ネットワーク** を選び、**RDP ショートパス** のタブを開きます。
下図の赤枠で示した箇所を **有効** に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/efaaeca1-4ef1-96a7-f27a-3ff0453fbda5.png)

---

# 3. 接続確認
では、AVD に接続してみてください。
AVD に接続したときに表示されるバー を確認し、以下の赤枠部分をクリックします。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/38e09deb-6d18-b2d1-e8bc-7b57a40ab9f8.png)

RDP Shortpath での接続が行われると、プロトコルが **UDP**、ゲートウェイ名 が **非使用中** という表示になります。

リモートコンピューター名は、実際の VM 名が表示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/ba5a8d35-ba03-1614-fca8-3a62f923f888.png)

なお、RDP Shortpath を使われずに、通常の接続となっている場合は、以下の表示になります。
**WebSocket** が使われ、**ゲートウェイ名** も表示されています。
そのため、ゲートウェイ経由 の接続であることが判ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/44437bd7-873f-6507-7549-8e88e54d6858.png)

:::note info
ここまでの構成で **RDP Shortpath** の構成は完了です。
:::

---

# 4. 追加の構成（閉域化との組み合わせ）
さらに、以下の記事で **閉域化** を構成し **RDP Shortpath** と組み合わせて接続することも可能です。

https://qiita.com/carol0226/items/a405fcd075d0d459a672

その場合は、以下のように **UDP (プライベートネットワーク)** と表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/c673ded6-cf78-2f90-e00e-34e9cd127ff3.png)

:::note alert
**注意点 1**
この組み合わせは、利用はできますが 完全にはサポートされない事が明記されているため、注意してください。

**公開情報：Private Link with Azure Virtual Desktop の既知の問題と制限事項**
https://learn.microsoft.com/ja-jp/azure/virtual-desktop/private-link-overview#known-issues-and-limitations

（上記より抜粋）
マネージド ネットワーク用 の Private Link と RDP Shortpath の両方を使用することは **サポートされていませんが、連携して動作できます。**
マネージド ネットワーク用 の Private Link と RDP Shortpath は、**ユーザー自身の責任** で利用できます。
:::

:::note warn
**注意点 2**
なお、閉域化 と RDP Shortpath を組み合わせる場合は、セッションホスト 側で Firewall のポートを解放しておく必要があります。これ、忘れがちなので 注意点です。
:::

**セッションホスト の UDP (3390) Firewall ポート開放 の手順**
※閉域網経由で接続する場合のみ必要。インターネット経由は 未構成でも接続可。

0. 前章（**2-1-2. GPO の設定**）で作成した GPO を再度 編集で開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/01b5530b-1440-cd7d-3c8a-0b24b53b8b38.png)
　<br>
0. 以下のようにパスを開いていき、**セキュリティが強化された Windows ファイアウォール** の配下にある **受信の規則** を右クリックします。その際に表示されたメニューから **新しい規則** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/1a682c85-9ec7-c153-115b-68b9ab6214f8.png)
　<br>
0. **ポート** を選択して **次へ** を押して進めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/5e7de654-4f88-0832-41ae-726eb7e0cd3e.png)
　<br>
0. **UDP** を選択し **特定のローカルポート** に、**3390** を指定して **次へ** を押して進めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/368a7e21-dd8c-e925-94ba-b98b1d5fd6fd.png)
　<br>
0. **接続を許可する** を選択して **次へ** を押して進めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/216402e6-e229-8c72-dc74-be417139a701.png)
　<br>
0. ドメイン参加した セッションホストであれば、ドメインプロファイル にチェックが入っていれば OK です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/8e72f4ce-4612-80a9-8b52-b577bbac899b.png)
　<br>
0. 判りやすい 名前 を入力して、**完了** を押して ルールを保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/d6e54e94-a451-7265-7502-785c2d769cf7.png)
　<br>
0. 以下のように登録されれば OK です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/9300a066-7899-c86a-ab24-42921908bc44.png)

以上の構成で、閉域網経由で AVD セッションホスト に接続する際に RDP Shortpath が利用できるようになります。

**参考：** GPO で ファイアウォール規則 を構成する手順は、以下の手順を踏襲しています。

**公開情報：グループポリシーを使用してファイアウォール規則を構成する**

https://learn.microsoft.com/ja-jp/windows/security/operating-system-security/network-security/windows-firewall/configure