強制トンネリングとは、Azure上のVMに対して、デフォルトルート(0.0.0.0/0)をオンプレミスに向ける事です。特に日本に多いらしいのですが、この強制トンネリングが Azure Virtual Desktop(AVD) の導入に大きく立ちはだかります。
なぜなら、AVDを快適に利用するためには、必要な通信を最短経路で届ける必要があるからです。この必要な通信が全てオンプレミス経由となると、それだけで大きな遅延が発生してしまいます。さらに厄介なのが、多くの環境で”Proxy”を導入している事です。。
オススメのNW構成はこちら「Azure Virtual Desktop ネットワーク アーキテクチャ」
先ずは、AVDを快適に利用するために必要な通信を確認してみましょう!
これらの通信を”FW”や”Proxy”にて阻害してはいけません。
また、オンプレミスを経由せずに導入するのが快適なAVDの利用に繋がります!
・Blob=”RDAgent” “RDAgentBootLoader”のダウンロード用通信
・AzureAD=Managed環境接続用の認証通信(デプロイ時のみ) ※AVD Classicで利用
・RD Gateway=SxS Stack(リバースコネクト用通信)
・Connection Broker=ヘルスチェック(HeartBeat)用通信
・FSlogix=ユーザープロファイル用通信
・Active Directory=認証用通信
※これらの通信は、ブラウザから行うProxy設定、WinHTTP Proxy設定の対象となりません。
~注意~
“AVD Client” “SessionHost”共に東西(日本の場合)のGatewayに接続を試みている。
最初の接続は”AVD Client”が利用しているFrontDoorに近いリージョンが選択される。
※必ずしも”SessionHost”が存在するリージョンのGatewayが選択されるわけではない。
そこで、今回の構成です!
※AVDに必要な通信意外は、オンプレミス経由にしたい場合の構成
・Blob=「UDR」を利用してデフォルトルートを回避します。
※「Service Endpoint」も利用できるのですが、通信先を特定できるため「UDR」で対応。
・AzureAD=「Service Endpoint」を利用してデフォルトルートを回避します。
※宛先の特定ができない。AVD Classicで利用。
・RD Gateway=「UDR」を利用してデフォルトルートを回避します。
※宛先が”Web App”なのですが「Service Endpoint」のIPレンジに含まれていない。
・Connection Broker=「UDR」を利用してデフォルトルートを回避します。
※そもそも、宛先が”USWest2″なので「Service Endpoint」を利用できない。
全体の流れ
Step1:通信先の調査
Step2:UDR の作成
Step3:Service Endpoint の作成
Step1:通信先の調査
UDRに登録するための”IP Address”を調べるために、Session Host(VDI)からの発信している通信先を調べたいと思います。
調査には、Session Hostが必要なのですが、”強制トンネリング” “FW” “Proxy”の影響を受けない、仮想ネットワークにデプロイして下さい。
また、デプロイ先のリージョンは、AVDを利用する同じリージョンで行ってください。
調査結果の”IP Address”には、リージョン固有のものが含まれているためです。
Session Host(VDI)用VMー[分析情報]ー[マップ]を選択
以下のURLに該当する”IP Address”を調べます。
*.wvd.microsoft.com
*.blob.core.windows.net
*.core.windows.net
*.servicebus.windows.net
prod.warmpath.msftcloudes.com
catalogartifact.azureedge.net
Step2:UDR の作成
調査した”IP Address”をUDRに登録します。 例:東日本
※Session Host(VDI)をデプロイするサブネットに対して適用
Step3:Service Endpoint の作成
[サービス エンドポイント]ー[Microsoft.AzureActiveDirectory]を選択
※Session Host(VDI)をデプロイするサブネットに対して適用
それでは、接続してみましょう!
強制トンネリング環境でも、無事に接続できました!