AzureにおけるVPNの機能を検証する際、VNetを2つ作成し、それぞれにVPNゲートウェイを作成して接続するというやり方をする場合がると思います。その際、VNet間の接続についてはデフォルト値が VNet対VNet
となっています。このまま作成するといわゆるオンプレ想定のVPNの機能絵検証とは異なる動きをしてしまうため注意が必要です。
検証
- VNetx2を用意してVNet間でVPNをする
- その際
VNet対VNet
を選択する際の挙動を確認する
リソースの作成
- VNetを2つ作成
- それぞれにVPNゲートウェイ、VM、VM用のサブネットを作成
接続の作成
疎通確認
片方のVMにログインして、もう一方のVMにさらにRDPしてみます。すると何も経路の制御をしていないのにRDPできてしまいます。BGPを利用しなければ対向拠点側のアドレス空間の情報は見えないはずだと思っていたため、ここで驚きました。
理由
VNET間接続を作成する場合は、VPNゲートウェイが存在しているVNET内のノードに対して、自動的にルーティングテーブルが追加されます。NICの「有効なルート」を見てみると、他方のVNETCIDR空間に対してネクストホップが送信元VNETのVPNGatewayのルートが追加されていることを確認できます。
VNet 間接続を作成するときに、ローカル ネットワーク ゲートウェイのアドレス空間は自動的に作成され、設定されます。 一方の VNet のアドレス空間を更新すると、更新されたアドレス空間へのルーティングがもう一方の VNet で自動的に行われます。
ちなみにこれらのルートはVPNゲートウェイ上の接続
を削除すると消えます。
おわり
オンプレ想定のVPNの張り方の検証をするには、VNetを用いるにしてもサイト対サイト
の方法で接続を構成する必要があるということがわかりました。このあたりのやり方は別記事にする予定です。