RDP Shortpath とは、画面転送用の通信をGatewayを経由させずに、直接、手元の端末とSession Host間で画面転送を行う機能です。設定方法は、2パターンあり、セッションホストで[UDP3390]の受信を許可して接続する方法と、STUNを利用して接続する方法です。STUNを利用した接続方法はデフォルトで有効となっているため、何も設定しなくてもRDP Shortpathを利用する事になると思います。
本機能は、社内ネットワークから接続を行う場合に利用できます。
※社外ネットワークからの接続はこちら
【 特 徴 】
・RD Gatewayを経由しないため、レイテンシの改善が期待できる。
・プライベートネットワークでの画面転送が可能
・URCP[UDP3390]を利用する事でネットワーク状況に応じた動的な画面転送が可能
・STUNは[UDP49152-65535]を動的に利用する。ポート範囲は指定する事も可能
・UDP通信ができない場合は、通常どおりRDGateway経由となる。
・RDP Shortpathを両方(社内/社外)設定した場合、最初に確立した方を利用する。
・QoS DSCPをサポートする事で、優先的にパケットを処理できる。
・Windows、MacOS、iOS、Android(Preview)用のAVDクライアントでサポート
・AVD Classicでも利用可能
【セッションホストでUDP3390を利用する場合】
初回の接続は通常通り、橙色の経路でAzureAD認証を行います。
画面転送開始時には緑色の通信になります。
※セッションホストに対して、直接接続を行うため[ExpressRoute / S2S VPN / P2S VPN]のいずれかが必要となります。
【STUNを利用する場合】 ※デフォルトで有効
①AzureAD認証後、RD Gateway経由にてセッションホストに接続する。
②セッションホストは、STUNへ接続し自身が使用したIP/Portのペア(SDP)を教えてもらう。
③セッションホストは、クライアントに自身のIP/PortをRD Gateway経由で伝える。
④クライアントは、STUNへ接続し自身のIP/Portを知り、セッションホストに伝える。
⑤クライアントとセッションホストはお互いに、知り得たPIP/Portで接続を行う。
※UDPでの通信ができない場合は、通常どおりRD Gateway経由となります。
※セッションホストに対して、直接接続を行うため[ExpressRoute / S2S VPN / P2S VPN]のいずれかが必要となります。
全体の流れ
Step1:ホストプールのネットワーク設定
Step2:リスナー(UDP3390)の設定
Step3:Windows Firewall 許可設定
Step4:QoS DSCPの設定 ※Shortpathに必須ではありません。
※作業は、マスターイメージもしくは、Session Hostにて実施しています。GPOでも可
Step1:ホストプールのネットワーク設定
既定値:有効と同じ効果
有効:RDP ShortPathを有効化します。
無効:RDP ShortPathを無効化します。リスナー設定を行ってもShortPathは無効となる。
Step2:リスナーの設定
セッションホストにて、UDP3390を有効化する場合に必要。STUN接続には不要です。
先ずは、GPOテンプレートをダウンロード
【GPO設定の準備】
[terminalserver-avd.adml]を「C:\Windows\PolicyDefinitions\en-US」にコピー
[terminalserver-avd.admx]を「C:\Windows\PolicyDefinitions」にコピー
コンピューターの構成 -> 管理用テンプレート -> Windows コンポーネント -> リモートデスクトップサービス -> リモートデスクトップセッションホスト -> Azure Virtual Desktop
Step3:Windows Firewall 許可設定
マスターイメージもしくは、Session Hostにて、受信の規則 UDP3390を許可します。
※PowerShellにて、そのまま実行
New-NetFirewallRule -DisplayName ‘Remote Desktop – Shortpath (UDP-In)’ -Action Allow -Description ‘Inbound rule for the Remote Desktop service to allow RDP traffic. [UDP 3390]’ -Group ‘@FirewallAPI.dll,-28752’ -Name ‘RemoteDesktop-UserMode-In-Shortpath-UDP’ -PolicyStore PersistentStore -Profile Domain, Private -Service TermService -Protocol udp -LocalPort 3390 -Program ‘%SystemRoot%\system32\svchost.exe’ -Enabled:True
Step4:QoS DSCPの設定
マスターイメージもしくは、Session Hostにて、DSCP[46]を設定します。
※PowerShellにて、そのまま実行
New-NetQosPolicy -Name “RDP Shortpath” -AppPathNameMatchCondition “svchost.exe” -IPProtocolMatchCondition UDP -IPSrcPortStartMatchCondition 3390 -IPSrcPortEndMatchCondition 3390 -DSCPAction 46 -NetworkProfile All
それでは、確認してみましょう!
Session Host 上での有効化を確認 ※下記のような表示が出力されればOK
Get-NetUDPEndpoint -OwningProcess ((Get-WmiObject win32_service -Filter “name = ‘TermService'”).ProcessId) -LocalPort 3390
セッションホスト接続時に確認すると[UDP(プライベートネットワーク)]と表示されます。
プライベートIPで通信している事とDSCP[46]が確認できます。