Azureオンプレ間のVPN接続にて、「デフォルトルートをオンプレに向けたい」というときにつまづいたので書き留めます。
最終的な接続イメージは以下のとおりで、VMはAzureから直接インターネットへ出ることができず、オンプレを経由してから出るというものです。
NSGやVMなどを除けば、Azureとオンプレ間のVPN接続は以下の手順で構築できます。
- 仮想ネットワーク/サブネット作成
- ゲートウェイサブネット作成
- 仮想ネットワークゲートウェイ作成
- ローカルネットワークゲートウェイ作成
- コネクション作成
- オンプレ側機器設定
今回の「デフォルトルートをオンプレに向けたい」ということであれば、"ローカルネットワークゲートウェイで0.0.0.0/0入れたらOKかな"と考えていたため設定を実施したところ...
「プレフィックスは/1から/32で指定せよ」と言われまさかの設定不可。サポートへ確認してみたところ、VPNで0.0.0.0/0をオンプレへ向ける際は、以下の2つの方法を推奨するとのことです。
(推奨1) VPN接続をBGPにする
VPN接続をBGPで行い、オンプレVPN機器から0.0.0.0/0を広報する方法です。
(推奨2) 以下のページに従いルートテーブルと"DefaultGatewaySite"を設定する
サイトではリソース作成から実施していますが、特筆すべきポイントは次の2つです。
- ゲートウェイサブネット以外の各サブネットに対して、「アドレスプレフィックス:0.0.0.0/0、次ホップの種類:仮想ネットワークゲートウェイ」のルートテーブルを設定する。
- Azure PowerShellで次のコマンドを実行して、仮想ネットワークゲートウェイの"DefaultGatewaySite"パラメータを設定する。 ※PowerShellでのみ設定可能
Set-AzVirtualNetworkGatewayDefaultSite -GatewayDefaultSite "ローカルネットワークゲートウェイ名" -VirtualNetworkGateway "仮想ネットワークゲートウェイ名"
Azureのローカルネットワークゲートウェイでは、仕様により0.0.0.0/0が指定できません。 それにより、Azureオンプレ間のVPN接続でデフォルトルートをオンプレへ向けるには、推奨1,2のどちらかで実施する必要があるため注意しましょう。