ハブアンドスポーク トポロジは、ネットワーク リソースを統合し、ネットワーク サービスを一元化する Azure の一般的なネットワーク アーキテクチャ パターンです。 このトポロジは、異なるサブスクリプションまたはテナントにデプロイされた仮想ネットワークにネットワーク接続とセキュリティを提供します。
ハブアンドスポーク アーキテクチャは、次の 2 つの方法で実装できます。
- セルフマネージド ハブ アンド スポーク (従来): ハブ仮想ネットワークとルーティング構成を完全に制御します。
- Virtual WAN: Microsoft はハブ仮想ネットワークを管理し、 ルーティングの意図やルーティング ポリシーなどの機能を使用して管理を簡素化します。
この記事では、ハブ仮想ネットワークと Azure Firewall のデプロイを完全に可視化して制御できるセルフマネージド ハブ アンド スポーク トポロジに焦点を当てます。
Azure Virtual Network Manager (AVNM) を使用すると、セルフマネージド のハブ アンド スポーク実装の管理オーバーヘッドを削減できます。 AVNM は Azure Route Tables の構成を自動化できますが、全体的な設計と手法は手動アプローチと比較して変わりません。 この記事の内容は、AVNM を使用するか、自己管理ハブ アンド スポーク トポロジを手動で構成するかに関係なく適用されます。
スポーク仮想ネットワーク内の Azure ルート テーブルの代わりに、「スポーク仮想ネットワークでの既定のルート挿入」に記載されているように、Azure Route Server を使用してサブネット にルートを挿入します。 ただし、このパターンは、Azure Route Server と VPN または ExpressRoute 仮想ネットワーク ゲートウェイの間の相互作用によって発生する可能性がある複雑さのため、一般的には使用されません。
セルフマネージド のハブ アンド スポーク セットアップでは、次の手順を実行します。
- ハブ: VPN、ExpressRoute、または Software-Defined ワイド エリア ネットワーク (SD-WAN) を介してオンプレミス ネットワークへの中央接続ポイントとして機能する仮想ネットワーク。 ファイアウォールなどのネットワーク セキュリティ デバイスは、ハブ仮想ネットワークにデプロイされます。
- スポーク: ハブとピアリングし、ワークロードをホストする仮想ネットワーク。
ワークロードが複数のリージョンに分散している場合は、通常、リージョンごとに 1 つのハブをデプロイして、そのリージョンのスポークからのトラフィックを集計します。 次の図は、各リージョンに 2 つのスポーク仮想ネットワークがある 2 リージョンのセルフマネージド ハブ アンド スポーク アーキテクチャを示しています。
単一リージョンのハブアンドスポーク アーキテクチャ
複数リージョンの設計を理解するには、まず単一リージョンの概念を理解する必要があります。 次の図は、最初のリージョンのルーティング テーブルの構成を示しています。
ユーザー定義のルート構成を理解するために、単一リージョン設計の潜在的なトラフィック フローごとにルーティング要件を検討します。
-
スポーク間トラフィック: スポークは相互にピアリングされず、仮想ネットワーク ピアリングは推移的ではありません。 各スポークは、既定ではハブ仮想ネットワークにルーティングする方法を認識しますが、他のスポークにはルーティングしません。 すべてのスポーク サブネットに適用される
0.0.0.0/0
のルートは、スポーク間トラフィックを対象とします。 -
スポークからインターネットへのトラフィック: スポーク ルート テーブルの
0.0.0.0/0
ルートには、パブリック インターネットに送信されるトラフィックも含まれます。 このルートは、既定でパブリック サブネットに含まれるシステム ルートを上書きします。 詳細については、「Azure での既定の送信アクセス」を参照してください。 -
インターネット間トラフィック: インターネットからスポークへのトラフィックは、通常、最初に Azure Firewall を経由します。 Azure Firewall には、送信元 IP アドレス (送信元ネットワーク アドレス変換または SNAT) も変換する宛先ネットワーク アドレス変換 (DNAT) 規則が構成されています。 スポーク ワークロードでは、トラフィックは Azure Firewall サブネットからのトラフィックと見なされます。 仮想ネットワーク ピアリングは、ハブ (
10.1.0.0/24
) へのシステム ルートを作成するため、スポークはリターン トラフィックをルーティングする方法を認識します。 -
オンプレミスからスポークへのトラフィックとスポークからオンプレミスへのトラフィック: 各方向を個別に検討します。
-
オンプレミス間トラフィック: オンプレミス ネットワークから VPN または ExpressRoute ゲートウェイにトラフィックが到着します。 Azure の既定のルーティングでは、システム ルートが各スポークの GatewaySubnet (およびハブ仮想ネットワーク内の他のサブネット) に作成されます。 これらのシステム ルートをオーバーライドし、次ホップを Azure Firewall のプライベート IP アドレスに設定する必要があります。 この例では、ゲートウェイ サブネットに関連付けられたルート テーブルに 2 つのルートが必要です。1 つはスポークごとに 1 つ (
10.1.1.0/24
と10.1.2.0/24
)。 すべてのスポーク仮想ネットワークを含む10.1.0.0/16
などの概要を使用しても、正しく機能しません。というのは、ゲートウェイ サブネットの仮想ネットワーク ピアリングによって挿入されるシステム ルートの方が、/24
に比べて/16
の概要よりも具体的だからです。 このルート テーブルでは、[ゲートウェイ ルートの伝達] のトグルを有効にして (はいに設定して) おく必要があります。そうしないと、ゲートウェイルーティングが予測不可能になる可能性があります。 -
スポークとオンプレミス間のトラフィック: ハブとスポークの間の仮想ネットワーク ピアリングでは、ハブ側で ゲートウェイトランジットを許可 し、スポーク側で リモートゲートウェイの使用 を有効にする必要があります。 これらの設定は、VPN ゲートウェイと ExpressRoute ゲートウェイが、Border Gateway Protocol (BGP) 経由でオンプレミス ネットワークにスポーク プレフィックスをアドバタイズするために必要です。 これらの設定により、オンプレミスから Azure に既定でアドバタイズされたプレフィックスもスポークで学習されます。 オンプレミスのプレフィックスは、スポーク ルート テーブルのユーザー定義ルート
0.0.0.0/0
よりも具体的であるため、スポークからオンプレミスへのトラフィックは、既定でファイアウォールをバイパスします。 このような状況を回避するには、スポーク ルート テーブルで [ ゲートウェイ ルートの伝達 ] トグルを [いいえ ] に設定して、オンプレミスのプレフィックスが学習されず、0.0.0.0/0
ルートがオンプレミスへのトラフィックに使用されるようにします。
-
オンプレミス間トラフィック: オンプレミス ネットワークから VPN または ExpressRoute ゲートウェイにトラフィックが到着します。 Azure の既定のルーティングでは、システム ルートが各スポークの GatewaySubnet (およびハブ仮想ネットワーク内の他のサブネット) に作成されます。 これらのシステム ルートをオーバーライドし、次ホップを Azure Firewall のプライベート IP アドレスに設定する必要があります。 この例では、ゲートウェイ サブネットに関連付けられたルート テーブルに 2 つのルートが必要です。1 つはスポークごとに 1 つ (
注
ネットワークの概要ではなく、ゲートウェイ サブネットに関連付けられているルート テーブル内の正確なスポーク仮想ネットワーク IP プレフィックスを使用します。 仮想ネットワーク ピアリングによってスポークと共に導入されたシステム ルートは、より具体的であるため、ユーザー定義ルートをオーバーライドします。
Azure Virtual Network Manager を使用して、スポーク サブネットに関連付けられているルート テーブルとゲートウェイ サブネットに関連付けられているルート テーブルの両方を管理して、管理オーバーヘッドを削減できます。 詳細については、「 次ホップとして Azure Firewall を使用する」を参照してください。
ハブ仮想ネットワークのワークロード
ハブ仮想ネットワーク (Active Directory ドメイン コントローラー、DNS サーバー、その他の共有インフラストラクチャなど) にワークロードをデプロイすると、ハブアンドスポーク設計の複雑さが増します。 ワークロードをハブに配置するのではなく、共有サービス専用のスポークにデプロイすることをお勧めします。
このセクションでは、この複雑さが要件に許容できるかどうかを評価できるように、ハブ ワークロードに必要な構成について説明します。 また、非対称トラフィックとパケット ドロップの原因となる可能性がある一般的な間違いについても説明します。
次の図は、ハブ仮想ネットワーク内のワークロード サブネットを使用した単一リージョンの設計を示しています。
重要な詳細は、ゲートウェイ サブネットとスポーク サブネットの両方で構成されたユーザー定義ルートが、 ハブ仮想ネットワーク プレフィックス全体ではなく、特定のワークロード サブネットに対して定義されていることです。
-
ゲートウェイ サブネットの構成: ハブ仮想ネットワーク全体 (この例では
10.1.0.0/24
) のゲートウェイ サブネット内のルートを構成すると、ハブ仮想ネットワークのシステム ルートがオーバーライドされます。 これにより、VPN または ExpressRoute ゲートウェイ間のサブネット内制御トラフィックがファイアウォールに送信され、ゲートウェイ操作が中断される可能性があります。 -
スポーク サブネットの構成: ハブ仮想ネットワーク全体 (この例では
10.1.0.0/24
) のスポーク サブネット内のルートを構成すると、ハブ仮想ネットワークとのピアリングによって作成されたシステム ルートがオーバーライドされます。 ハブに送信されるすべてのトラフィックは、ソース ネットワーク アドレス変換 (SNAT) を経由するインターネット間トラフィックなど、Azure Firewall 自体から送信されたトラフィックを含む Azure Firewall に送信されます。 この構成では、非対称トラフィックが導入され、パケットのドロップが発生します。
注
ハブ仮想ネットワークにワークロードをデプロイする場合は、ユーザー定義ルートで仮想ネットワーク IP プレフィックス全体を使用しないでください。
サブネット間トラフィック検査
現在のセットアップでは、スポーク間のトラフィックはファイアウォールに送信されますが、スポーク内トラフィックはスポーク仮想ネットワーク内にとどまり、 ネットワーク セキュリティ グループを使用して制御されます。 この設計では、仮想ネットワークはセキュリティ境界と見なされます。ファイアウォールは、仮想ネットワークを終了または入力するトラフィックのみを検査します。
同じスポーク仮想ネットワーク内のサブネット間のトラフィックを検査するには、次の図に示すように、スポーク サブネットに関連付けられているルート テーブルを変更します。
前の図では、各スポーク仮想ネットワークに 2 つのスポーク サブネットが導入され、仮想ネットワーク A2 のスポークのルート テーブルが説明されています。 サブネット間トラフィックをファイアウォールに送信するには、各サブネットにインストールするルートが異なるため、すべてのサブネットに個別のルート テーブルが必要です。
サブネット A21 の場合は、次の 2 つの追加ルートが必要です。
-
10.1.2.0/24
へのルート: 仮想ネットワーク内トラフィックのシステム ルートをオーバーライドします。 他のルートがない場合、すべての仮想ネットワーク内トラフィックは、同じサブネット内の仮想マシン間のトラフィックであっても、Azure Firewall に送信されます。 -
次ホップ
10.1.2.0/26
を使用してへのルート: 前のルートの例外であるため、この特定のサブネット内のトラフィックはファイアウォールに送信されず、仮想ネットワーク内でローカルにルーティングされます。 このルートは各サブネットに固有であるため、サブネットごとに個別のルート テーブルが必要です。
SD-WANネットワーク仮想アプライアンス
VPN または ExpressRoute ゲートウェイの代わりに SD-WAN ネットワーク仮想アプライアンス (NVA) を使用する場合、次の図に示すように、設計は似ています。
SD-WAN NVA を Azure に統合するには、さまざまな方法があります。 詳細については、 Azure ハブ アンド スポーク ネットワーク トポロジとのSD-WAN 統合に関するページを参照してください。 この記事では、トラフィックを SD-WAN ネットワークにルーティングする最も一般的な方法の 1 つである Azure Route Server を使用した統合について説明します。 SD-WAN NVA は、BGP 経由でオンプレミスのプレフィックスを Azure Route Server にアドバタイズします。 Azure Route Server は、Azure Firewall サブネットにこれらのプレフィックスを挿入して、Azure Firewall がオンプレミス ネットワークのルーティング情報を持つようにします。 スポーク ルート テーブルで [ゲートウェイ ルートの伝達] オプションが無効になっているため、スポークはオンプレミスのプレフィックスを学習しません。
NVA サブネットに関連付けられているルート テーブルで各スポーク仮想ネットワークのプレフィックスを構成しない場合は、専用仮想ネットワークに SD-WAN NVA を配置できます。 NVA 仮想ネットワークでは、スポーク プレフィックスは直接ピアリングされていないため学習されず、次の図に示すように概要ルートが可能です。
複数リージョンのハブアンドスポーク アーキテクチャ
単一のハブ アンド スポーク リージョン内でのトラフィックのしくみを理解したら、設計を複数リージョンのアーキテクチャに拡張するのは簡単です。 次の図は、2 つのリージョン (A と B) のハブを使用した更新されたネットワーク設計を示しています。
構成の唯一の追加は、各リージョンの Azure Firewall サブネットに関連付けられているルート テーブルです。 各ハブ仮想ネットワークは、直接ピアリングされた仮想ネットワークのプレフィックスのみを認識するため、リモート スポークのプレフィックスのルーティングはありません。 各リージョンのトラフィックが対応する Azure Firewall にルーティングされるように、各 Azure Firewall サブネットのユーザー定義ルートを追加します。
この例では、各リージョンを簡単に要約できます。
- リージョン A にプレフィックスが含まれている
10.1.0.0/16
- リージョン B にプレフィックスが含まれている
10.2.0.0/16
各リージョンで簡単に要約できる IP アドレスを定義すると、ルーティング構成が簡単になります。 それ以外の場合は、リモート スポークごとに 1 つのルートを作成する必要があります。
ファイアウォールが VPN および ExpressRoute ゲートウェイからオンプレミスのルートを学習できるように、Azure Firewall サブネット ルート テーブルでゲートウェイ ルートを 伝達 するを有効にします。
注
管理 NIC なしで Azure Firewall をデプロイする場合、Azure Firewall サブネットには、前に説明したように、より具体的なルートを追加するために、次ホップ "インターネット" を持つ既定のルートが必要です。
複数リージョン環境でのユーザー定義ルートの管理を簡略化するために、Azure Virtual Network Manager を使用できます。 詳細については、「AVNM を使用した 複数のハブ アンド スポーク トポロジ間のユーザー定義ルートの管理」を参照してください。
次の手順
- Azure Firewall のデプロイおよび構成方法について説明します。