みち草

Azure中心にまとめる技術情報ブログ

Azureとオンプレ間のVPN接続でデフォルトルートをオンプレに向けるときにつまづいた

Azureオンプレ間のVPN接続にて、「デフォルトルートをオンプレに向けたい」というときにつまづいたので書き留めます。

最終的な接続イメージは以下のとおりで、VMはAzureから直接インターネットへ出ることができず、オンプレを経由してから出るというものです。

VPN接続イメージ図

NSGやVMなどを除けば、Azureとオンプレ間のVPN接続は以下の手順で構築できます。

  1. 仮想ネットワーク/サブネット作成
  2. ゲートウェイサブネット作成
  3. 仮想ネットワークゲートウェイ作成
  4. ローカルネットワークゲートウェイ作成
  5. コネクション作成
  6. オンプレ側機器設定

今回の「デフォルトルートをオンプレに向けたい」ということであれば、"ローカルネットワークゲートウェイで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"を設定する

docs.microsoft.com

サイトではリソース作成から実施していますが、特筆すべきポイントは次の2つです。

  1. ゲートウェイサブネット以外の各サブネットに対して、「アドレスプレフィックス:0.0.0.0/0、次ホップの種類:仮想ネットワークゲートウェイ」のルートテーブルを設定する。
  2. Azure PowerShellで次のコマンドを実行して、仮想ネットワークゲートウェイの"DefaultGatewaySite"パラメータを設定する。 ※PowerShellでのみ設定可能
Set-AzVirtualNetworkGatewayDefaultSite -GatewayDefaultSite "ローカルネットワークゲートウェイ名" -VirtualNetworkGateway "仮想ネットワークゲートウェイ名"

Azureのローカルネットワークゲートウェイでは、仕様により0.0.0.0/0が指定できません。 それにより、Azureオンプレ間のVPN接続でデフォルトルートをオンプレへ向けるには、推奨1,2のどちらかで実施する必要があるため注意しましょう。