VNet Peering の基本的な構成パターン
はじめに
Azure で仮想ネットワーク同士を接続する場合の方法として VNet Peering (VNet ピアリング) という機能があります。本機能を利用することで気軽に仮想ネットワーク同士を接続することが可能となります。本記事では VNet Peering の構成手順と基本的な構成パターンについて纏めようと思います
VNet Peering(仮想ネットワークピアリング)とは?
VNet Peering の特長を簡単に纏めると以下のような感じになります
- 同一リージョン内だけではなく、異なるリージョンの仮想ネットワーク同士をピアリングすることも可能
- Microsoft のバックボーンを利用して接続される( =プライベート接続となる)
- ピアリングする仮想ネットワークは IP アドレスを重複させることはできない
- 1つの仮想ネットワークで作成できるピアリングの数は 500 までとなる
- 2ホップ先の仮想ネットワークとは疎通不可
詳細については公式サイトをご参照ください
VNet Peering の構成パターン
全ての構成パターンを網羅することは難しいのですが、まずは以下の3パターンを把握いただければよろしいかなと思います
- Hub - Spoke (Spoke間通信無し)
- Hub - Spoke (Spoke間通信有り)
- オンプレ - Azure
1. Hub - Spoke (Spoke間通信無し)
通信可否
VM-1 | VM-2 | Connection |
---|---|---|
HubVM | Spoke1VM | 〇 |
HubVM | Spoke2VM | 〇 |
Spoke1VM | Spoke2VM | × |
構成図
2. Hub - Spoke (Spoke間通信有り)
通信可否
VM-1 | VM-2 | Connection |
---|---|---|
HubVM | Spoke1VM | 〇 |
HubVM | Spoke2VM | 〇 |
Spoke1VM | Spoke2VM | 〇 |
構成図
3. オンプレ - Azure (Spoke間通信無し)
通信可否
VM-1 | VM-2 | Connection |
---|---|---|
HubVM | Spoke1VM | 〇 |
HubVM | Spoke2VM | 〇 |
OnpreVM | HubVM | 〇 |
OnpreVM | Spoke1VM | 〇 |
OnpreVM | Spoke2VM | 〇 |
Spoke1VM | Spoke2VM | × |
構成図
検証環境の構成図
VNet Peering 作成手順
1. Hub-VNet で Spoke1-VNet とのピアリングを作成する
※ Hub でのピアリング作成時に Spoke1 用の設定値も併せて入力する形となる
2. ピアリングが作成されたことを確認する(Hub-VNet)
3. ピアリングが作成されたことを確認する(Spoke1-VNet)
各構成パターンで選択するピアリングのオプション
1. Hub - Spoke (Spoke間通信無し)
2. Hub - Spoke (Spoke間通信有り)
3. オンプレ - Azure (Spoke間通信無し)
補足1:各構成パターン時のルート情報について
AzureVM にアタッチされている NIC にて「有効なルート」を確認することが可能です
(確認方法は こちら を参照してください)
各構成パターン時における各 AzureVM の「有効なルート」がどのようになるかを以下に纏めたので、興味がある方は見てみてください
1. Hub - Spoke (Spoke間通信無し)
2. Hub - Spoke (Spoke間通信有り)
3. オンプレ - Azure (Spoke間通信無し)
補足2:Spoke のルート広報について
別件で作成した資料のためこれまでの検証環境と構成が異なっておりますが、オプションの指定の仕方によって 「オンプレミス」へルートを広報するか否かを制御することが可能です
(Spoke1-VNet はオンプレミスに広報したいが、Spoke2-VNet は広報したくないなど。そのような要件があるかは不明ですが。。)
補足3:Spoke 間通信について(2024.04.04追記)
ERGW もしくは VPNGW を利用してオンプレとAzureを接続している環境の場合、オンプレ → Azure へのルート広報の内容によっては Spoke 間通信が可能となります
例)
Spoke1 が 10.1.0.0/24、Spoke2 が 10.2.0.0/24 というアドレス範囲で、オンプレミスから 10.0.0.0/8 が広報されているような構成
以下、検証した内容となりますので興味がある方は見てみてください
構成図
ルート情報
通信のイメージ
疎通確認
Spoke1VM --> Spoke2VM に対しての疎通確認結果
ルートテーブルをシンプルにするためにルート情報を纏めるような構成は良く取られるかと思いますが、Spoke 間通信を許可したくない場合は Spoke 環境のアドレス空間が含まれないような経路を広報する必要があります(この場合 Spoke 間通信を行わせる場合は NVA や UDR の設定が必要となる)
そのような構成を取ることが難しい場合は Spokeのサブネット毎に UDR を設定し、対向の Spoke アドレス空間への Next Hop を "なし" で構成する
か NSG を利用してSpoke間の通信を拒否するルールを作成する
ことで Spoke 間の通信を行えないようにすることが可能です
まとめ
今回は Azure の仮想ネットワーク同士を接続する VNet ピアリングの基本的な構成パターンについて纏めました(作成手順はおまけで、メインは VNet ピアリングの構成パターンです)
本記事が Azure ネットワーク構成を検討している方に少しでも参考になれば幸いです
Appendix
Zennの記事
公式Docs
Bicep(Github)
Discussion