このチュートリアルでは、発信接続とスケーラビリティを強化するために、NAT ゲートウェイと Azure Firewall をハブ アンド スポーク ネットワークに統合する方法について説明します。
Azure Firewall では、バックエンド仮想マシン スケール セット インスタンス (最小 2 インスタンス) ごとに構成されたパブリック IP アドレスあたり 2,496 個の SNAT ポートが提供されます。 Azure Firewallには最大250の個別のパブリックIPアドレスを関連付けることができます。 Azure Firewall は公開 IP プレフィックス自体の関連付けをサポートしていませんが、公開 IP プレフィックスからプロビジョニングされた個別の Standard SKU の公開 IP アドレスを使用できます。 アーキテクチャの要件とトラフィック パターンによっては、Azure Firewall で提供できる数よりも多くの SNAT ポートが必要になる場合があります。 また、必要なパブリック IP の数を減らしながら、より多くの SNAT ポートを必要とする場合もあります。 送信接続のより優れた方法は、NAT ゲートウェイを使用することです。 NAT ゲートウェイは、パブリック IP アドレスあたり 64,512 個の SNAT ポートを提供し、最大 16 個のパブリック IP アドレスで使用できます。
NAT ゲートウェイは、Azure Firewall サブネットに直接 NAT ゲートウェイを構成することで、Azure Firewall と統合できます。 この関連付けにより、よりスケーラブルな送信接続方法が提供されます。 運用環境のデプロイでは、ファイアウォールが専用の仮想ネットワークに配置されるハブ アンド スポーク ネットワークがお勧めです。 ワークロード サーバーは、ファイアウォールが存在するハブ仮想ネットワークと同じリージョン内のピアリングされた仮想ネットワークです。 このアーキテクチャ セットアップでは、NAT ゲートウェイは、ピアリングされたすべてのスポーク仮想ネットワークに対してハブ仮想ネットワークからの送信接続を提供できます。
注
このチュートリアルの説明に従って、ハブアンドスポーク仮想ネットワーク アーキテクチャに NAT ゲートウェイをデプロイできますが、vWAN アーキテクチャのハブ仮想ネットワークでは NAT ゲートウェイはサポートされていません。 vWAN アーキテクチャで使用するには、セキュリティで保護された仮想ハブ (vWAN) に関連付けられているスポーク仮想ネットワークに対して NAT ゲートウェイを直接構成する必要があります。 Azure Firewall アーキテクチャ オプションの詳細については、「Azure Firewall Manager アーキテクチャオプションとは」を参照してください。
このチュートリアルでは、以下の内容を学習します。
- ハブ仮想ネットワークを作成し、デプロイ時に Azure Firewall と Azure Bastion をデプロイする
- NAT ゲートウェイを作成し、ハブ仮想ネットワーク内のファイアウォール サブネットに関連付ける
- スポーク仮想ネットワークを作成する
- 仮想ネットワーク ピアリングの作成
- スポーク仮想ネットワークのルート テーブルを作成する
- ハブ仮想ネットワークのファイアウォール ポリシーを作成する
- NAT ゲートウェイを介した送信接続をテストするために仮想マシンを作成する
前提条件
このチュートリアルではAzure Firewall StandardとIPv4、StandardV2 NATゲートウェイを使用しています。 StandardV2 NATゲートウェイをサポートするリージョンを選び、ファイアウォール、NATゲートウェイ、仮想ネットワークは同じリージョンで使用してください。 例は西 アメリカを使っています。 サポートされていないリージョンについては、 NATゲートウェイSKUの制限を参照してください。
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
リソース グループを作成する
このクイック スタートのすべてのリソースを含むリソース グループを作成します。
Azure portal にサインインします。
ポータルの上部にある検索ボックスに、「 リソース グループ」と入力します。 検索結果から [リソース グループ] を選択します。
[+ 作成] を選択します。
[リソース グループの作成] の [基本] タブで、次の情報を入力または選択します。
設定 値 サブスクリプション サブスクリプションを選択します。 リソースグループ test-rg リージョン 米国西部 [Review + create]\(レビュー + 作成\) を選択します。
[作成]を選択します
ハブ仮想ネットワークを作成する
ハブ仮想ネットワークには、Azure Firewall と NAT ゲートウェイに関連付けられたファイアウォール サブネットが含まれます。 次の例を使用してハブ仮想ネットワークを作成します。
Azure portal にサインインします。
Azure portal の上部にある検索ボックスに、「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。
[作成]を選択します
[仮想ネットワークの作成] の [基本] タブで、次の情報を入力するか選びます。
設定 値 プロジェクトの詳細 サブスクリプション サブスクリプションを選択します。 リソースグループ test-rg またはリソース グループを選択します。 インスタンスの詳細 名前 「vnet-hub」と入力します。 リージョン 地域を選択します。 この例では米国西部を使用します。 [ IP アドレス ] タブを選択するか、[ 次へ: セキュリティ]、[ 次へ: IP アドレス] の順に選択します。
[サブネット] で、既定のサブネットを選択します。
[サブネットの編集] で次の情報を入力するか選びます。
設定 値 サブネットの目的 既定値のままにします。 名前 「subnet-1」と入力します。 残りの設定は既定のままにして、[ 保存] を選択します。
[+ サブネットの追加] を選択します。
[ サブネットの追加] で、 次の情報を入力または選択します。
設定 値 サブネットの目的 [Azure Bastion] を選択します。 残りの設定は既定のままにして、[ 追加] を選択します。
[+ サブネットの追加] を選択します。
[ サブネットの追加] で、 次の情報を入力または選択します。
設定 値 サブネットの目的 [Azure Firewall] を選択します。 残りの設定は既定のままにして、[ 追加] を選択します。
[ 確認と作成] を選択し、[ 作成] を選択します。
Azure Bastion ホストを作成する
Azure Bastion は、VM 上のパブリック IP アドレスを必要とせずに、TLS 経由で仮想マシンに安全な RDP および SSH 接続を提供します。
Azure portal の上部にある検索ボックスに、「 Bastion」と入力します。 検索結果で [Bastions ] を選択します。
[作成]を選択します
[Bastion の作成] の [基本] タブで、次の情報を入力または選択します。
設定 値 プロジェクトの詳細 サブスクリプション サブスクリプションを選択します。 リソースグループ test-rg またはリソース グループを選択します。 インスタンスの詳細 名前 「bastion」と入力します。 リージョン 地域を選択します。 この例では米国西部を使用します。 レベル [Basic] を選択します。 仮想ネットワーク [VNet-hub] を選択します。 サブネット [AzureBastionSubnet] を選択します。 パブリック IP アドレス 新しい標準の静的パブリックIPアドレス「 public-ip-bastion」を作成しましょう。 Bastion Basicはピアードスポーク仮想ネットワーク内のテストVMへの接続をサポートしています。 Bastion Developerはピア接続された仮想ネットワークへの接続をサポートしていません。 詳細については、 Bastion SKUの比較をご覧ください。
[ 確認と作成] を選択し、[ 作成] を選択します。
Azure Firewall の作成
ポータルのステップでは、ハブ仮想ネットワーク内にAzure Firewall StandardとStandardV2 NATゲートウェイを作成します。 PowerShellのステップではまずファイアウォールを作成し、次のセクションでNATゲートウェイの設定を行います。
ポータルの上部にある検索ボックスに、「Firewall」と入力します。 検索結果で [ファイアウォール] を選択します。
[+ 作成] を選択します。
「ファイアウォール作成」の「基本」タブで、以下の表を使ってファイアウォールの設定を行います:
設定 値 プロジェクトの詳細 サブスクリプション サブスクリプションを選択します。 リソースグループ test-rg を選択します。 インスタンスの詳細 名前 「firewall」と入力します。 リージョン 米国西部を選択する。 ファイアウォール SKU [Standard] を選択します。 ファイアウォール管理 [ファイアウォール ポリシーを使用してこのファイアウォールを管理する] を選択します。 ファイアウォール ポリシー [\) を選択します名前:
. を入力しますリージョン:
を選択ポリシーレベル:
.[
。仮想ネットワークを選択する 仮想ネットワーク [既存のものを使用] を選択します。 仮想ネットワーク [VNet-hub] を選択します。 パブリック IP アドレス パブリック IP アドレス Add new を選択します。
名前: public-ip-firewall と入力します。
SKU: Standard。
割り当て: Static。
OK を選択します。このチュートリアルで「 Enable Firewall Management NIC 」をクリアし、次に 「次:Advanced」を選択します。
「Advanced」タブで「NATゲートウェイを有効にする」を選択してください。 StandardV2 NATゲートウェイで「新しく作成」を選択してください。
ファイアウォールを作成する際はNATゲートウェイは任意です。 このチュートリアルにより、NATゲートウェイのパブリックIPアドレスを通じてアウトバウンドSNATを提供できます。 StandardV2 NAT Gatewayをサポートしていない地域では、フォームに検証エラーが表示されます。 Basicsでサポートされている地域を選択して、このチュートリアルを続けてください。
Create a new StandardV2 NAT Gatewayで、Nameにnat-gatewayを入力してください。
パブリックIPv4アドレスの中で「パブリックIPアドレスを作成」を選択してください。 名前にはpublic-ip-natを入力してください。
SKUがStandardV2で、割り当てが静的であることを確認し、OKを選択してください。
パブリック IPv4 アドレス の下で、(New) public-ip-nat が選択されていることを確認してください。 このIPv4チュートリアルでは、IPv6アドレスとパブリックIPプレフィックスフィールドを選択していないままにしてください。
[追加]を選択します。 Advancedモードで「NATゲートウェイを有効にする」が選択されていること、そしてStandardV2 NATゲートウェイに「(新しい)nat-gateway」が表示されることを確認します。
[Review + create]\(レビュー + 作成\) を選択します。 要約に West US、 Standard ファイアウォールSKU、 vnet-hub、 public-ip-firewall、そして新しい StandardV2 NATゲートウェイが表示されているか確認してください。
[作成]を選択します
この展開ではファイアウォール、NATゲートウェイ、そしてそれらのパブリックIPアドレスが作成されます。 また、NATゲートウェイを AzureFirewallSubnetと関連付けています。 デプロイには、数分かかります。
ファイアウォール自身の公開IPアドレスは保持してください。 アウトバウンドSNATはNATゲートウェイのパブリックIPを使用し、インバウンドDNATはファイアウォールのパブリックIPを使用します。 ワークロードのルートは依然としてファイアウォールのプライベートIPアドレスを指しています。
デプロイが完了したら、 test-rg リソース グループに移動し、 ファイアウォール リソースを選択します。
ファイアウォールのプライベートおよびパブリック IP アドレスをメモします。 これらのアドレスは後で使用します。
NAT ゲートウェイの作成
NATゲートウェイを AzureFirewallSubnet と関連付けて、ファイアウォールからの送信トラフィックがそれを使うようにしてください。 ポータルの手順に従っていれば、ファイアウォールの導入がこの関連付けを作成しました。 PowerShellを使用している場合は、このセクションでNATゲートウェイを作成して関連付けてください。
新しいNATゲートウェイは作らないでください。 前述のセクションで作成されたリソースと協会を確認してください:
- test-rgを開き、nat-gatewayを選択します。 SKUが StandardV2 で、場所がファイアウォールと一致しているかを確認してください。
- vnet-hubを開き、Subnetsを選択し、AzureFirewallSubnetを選択します。
- NATゲートウェイがNAT-gatewayに設定されているか確認してください。 サブネットの設定はそのままにしてください。
- public-ip-natを開いて、StandardV2 SKUを使用しているか確認してください。 このアドレスは標準SKUを使用するpublic-ip-firewallとは別です。
スポーク仮想ネットワークを作成する
スポーク仮想ネットワークには、NAT ゲートウェイへのインターネット トラフィックのルーティングをテストするために使用されるテスト仮想マシンが含まれます。 次の例を使用してスポーク ネットワークを作成します。
ポータルの上部にある検索ボックスに、「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。
[+ 作成] を選択します。
[仮想ネットワークの作成] の [基本] タブで、次の情報を入力するか選びます。
設定 値 プロジェクトの詳細 サブスクリプション サブスクリプションを選択します。 リソースグループ test-rg を選択します。 インスタンスの詳細 名前 「vnet-spoke」と入力します。 リージョン 米国西部を選択する。 [次へ] を選択して、[セキュリティ] タブに進みます。
[次へ] を選択して、[IP アドレス] タブに進みます。
[IP アドレス] タブの [IPv4 アドレス空間] で、[アドレス空間の削除] を選んで、自動設定されているアドレス空間を削除します。
[+ IPv4 アドレス空間の追加] を選びます。
[IPv4 アドレス空間] に「10.2.0.0/16」と入力します。 マスクの選択では、既定値の /16 (65,536 アドレス) のままにします。
[+ サブネットの追加] を選択します。
[サブネットの追加] で、次の情報を入力または選択します:
設定 値 サブネットの目的 既定値の [既定] のままにします。 名前 「subnet-private」と入力します。 IPv4 IPv4 アドレス範囲 既定値の 10.1.0.0/16 のままにします。 開始アドレス 既定値の 10.1.0.0 のままにします。 サイズ 既定値の /24 (256 アドレス) のままにします。 [追加]を選択します。
[Review + create]\(レビュー + 作成\) を選択します。
[作成]を選択します
ハブとスポークの間にピアリングを作成する
ハブをスポークに接続するため、およびスポークをハブに接続するために、仮想ネットワーク ピアリングが使用されます。 次の例を使用して、ハブとスポークの間に双方向のネットワーク ピアリングを作成します。
ポータルの上部にある検索ボックスに、「仮想ネットワーク」と入力します。 検索結果で、[仮想ネットワーク] を選択します。
[VNet-hub] を選択します。
[設定] で [ピアリング] を選択します。
[+ 追加]を選択します。
[ピアリングの追加] で、次の情報を入力するか選びます。
設定 値 リモート仮想ネットワークの概要 [Peering link name]\(ピアリング リンク名\) 「vnet-spoke-to-vnet-hub」と入力します。 仮想ネットワークのデプロイ モデル 既定値の [リソース マネージャー] のままにします。 サブスクリプション サブスクリプションを選択します。 仮想ネットワーク [vnet-spoke (test-rg)] を選択します。 リモート仮想ネットワーク ピアリングの設定 'vnet-spoke' に 'vnet-hub' へのアクセスを許可する 既定値の [選択済み] のままにします。 'vnet-spoke' が 'vnet-hub' から転送されたトラフィックを受信することを許可する チェックボックスを選択します。 'vnet-spoke' のゲートウェイまたはルート サーバーが 'vnet-hub' にトラフィックを転送することを許可する 既定値の[未選択] のままにします。 'vnet-spoke' が 'vnet-hub' のリモート ゲートウェイまたはルート サーバーを使用できるようにする 既定値の[未選択] のままにします。 ローカル仮想ネットワークの概要 [Peering link name]\(ピアリング リンク名\) 「vnet-hub-to-vnet-spoke」と入力します。 ローカル仮想ネットワーク ピアリングの設定 'vnet-hub' に 'vnet-spoke' へのアクセスを許可する 既定値の [選択済み] のままにします。 'vnet-hub' が 'vnet-spoke' から転送されたトラフィックを受信することを許可する チェックボックスを選択します。 'vnet-hub' のゲートウェイまたはルート サーバーが 'vnet-spoke' にトラフィックを転送することを許可する 既定値の[未選択] のままにします。 'vnet-hub' が 'vnet-spoke' のリモート ゲートウェイまたはルート サーバーを使用できるようにする 既定値の[未選択] のままにします。 [追加]を選択します。
[最新の情報に更新] を選択し、[ピアリングの状態] が [接続済み] であることを確認します。
スポークのネットワーク ルート テーブルを作成する
ルートテーブルはスポークサブネットからハブ仮想ネットワーク内のAzure Firewallへ、デフォルトルートに一致するトラフィックを送信します。 次のホップはファイアウォールのプライベートIPアドレスです。
ファイアウォールのプライベート IP アドレスを取得する
この記事の後半で作成するルート テーブルには、ファイアウォールのプライベート IP アドレスが必要です。 次の例を使用して、ファイアウォールのプライベート IP アドレスを取得します。
ポータルの上部にある検索ボックスに、「Firewall」と入力します。 検索結果で [ファイアウォール] を選択します。
[ファイアウォール] を選択します。
[ファイアウォール] の [概要] で、[ファイアウォールのプライベート IP] フィールド内の IP アドレスをメモします。 この例の IP アドレスは 10.0.1.68 です。
ルート テーブルを作成する
ファイアウォールを通る送信インターネットトラフィックのデフォルトルートを作成します。 このルートは仮想ネットワークのピアリングルートなど、より特定のルートを上書きしません。 このトポロジーを拡張してスポーク間の交通を検査するには、より多くのルートを追加する必要があります。
ポータルの上部にある検索ボックスに、「ルート テーブル」と入力します。 検索結果で [ルート テーブル] を選択します。
[+ 作成] を選択します。
[ルート テーブルの作成] で、次の情報を入力または選択します。
設定 値 プロジェクトの詳細 サブスクリプション サブスクリプションを選択します。 リソースグループ test-rg を選択します。 インスタンスの詳細 リージョン 米国西部を選択する。 名前 「route-table-spoke」と入力します。 ゲートウェイのルートを伝達する このため、 [いいえ]を選択します。 [Review + create]\(レビュー + 作成\) を選択します。
[作成]を選択します
ポータルの上部にある検索ボックスに、「ルート テーブル」と入力します。 検索結果で [ルート テーブル] を選択します。
[route-table-spoke] を選択します。
[設定] で [ルート] を選択します。
[ルート] で [+ 追加] を選択します。
[ルートの追加] で、次の情報を入力または選択します。
設定 値 ルート名 「Route-To-Hub」と入力します。 変換先の型 [IP アドレス] を選択します。 宛先 IP アドレス/CIDR 範囲 「0.0.0.0/0」と入力します。 ネクストホップの種類 [仮想アプライアンス] を選択します。 次ホップ アドレス 先ほど記録したファイアウォールのプライベートIPアドレスを入力してください。 NATゲートウェイのパブリックIPアドレスは使わないでください。 [追加]を選択します。
[設定] の [サブネット] を選択します。
[+ 関連付け] を選択します。
[サブネットの関連付け] で、次の情報を入力または選択します。
設定 値 仮想ネットワーク [vnet-spoke (test-rg)] を選択します。 サブネット [subnet-private] を選択します。 [OK]を選択します。
ファイアウォールの構成
ファイアウォールポリシーのネットワークルールを使って、スポークからハブを通るトラフィックを許可します。 ネットワークルールの設定には以下の例を用いてください。
ネットワーク規則を構成する
ポータルの上部にある検索ボックスに、「Firewall」と入力します。 検索結果で [ファイアウォール ポリシー] を選択します。
[ファイアウォール ポリシー] を選択します。
[設定] を展開して、[ネットワーク規則] を選びます。
[+ 規則コレクションの追加] を選択します。
[規則コレクションの追加] で、次の情報を入力または選択します。
設定 値 名前 「spoke-to-internet」と入力します。 ルール コレクションの種類 [ネットワーク] を選択します。 Priority 「100」と入力します。 ルール コレクションのアクション [許可] を選択します。 Rule Collection Group [DefaultNetworkRuleCollectionGroup] を選択します。 ルール 名前 「allow-web」と入力します。 送信元の種類 [IP Address]\(IP アドレス\)。 source 「10.1.0.0/24」と入力します。 プロトコル [TCP] を選択します。 ターゲット ポート 「80,443」と入力します。 変換先の型 [IP アドレス] を選択します。 到着地 「*」と入力します [追加]を選択します。
テスト用の仮想マシンを作成する
Ubuntu 仮想マシンを使用して、NAT ゲートウェイ経由の送信インターネット トラフィックをテストします。 次の例を使用して、Ubuntu 仮想マシンを作成します。
ポータルで、[仮想マシン] を検索して選択します。
[仮想マシン] で [+ 作成]、[Azure 仮想マシン] の順に選択します。
[仮想マシンの作成] の [基本] タブで、次の情報を入力または選択します。
設定 値 プロジェクトの詳細 サブスクリプション サブスクリプションを選択します。 リソースグループ test-rg を選択します。 インスタンスの詳細 仮想マシン名 「vm-spoke」と入力します。 リージョン 米国西部を選択する。 可用性のオプション [インフラストラクチャ冗長は必要ありません] を選択します。 セキュリティの種類 規定値である [標準] のままにします。 Image [Ubuntu Server 24.04 LTS - x64 Gen2] を選びます。 VM アーキテクチャ 既定値の [x64] のままにします。 サイズ サイズを選択します。 管理者アカウント 認証の種類 [SSH 公開キー] を選択します。 ユーザー名 「azureuser」と入力します。 SSH 公開キーのソース [新しいキーの組を生成] を選択します。 キーの組名 「vm-spoke-key」と入力します。 受信ポートの規則 パブリック受信ポート [なし] を選択します。 ページの上部にある [ネットワーク] タブを選ぶか、または [次へ: ディスク] を選んでから [次へ: ネットワーク] を選びます。
[ネットワーク] タブで、次の情報を入力または選択します。
設定 値 ネットワーク インターフェイス 仮想ネットワーク [vnet-spoke] を選択します。 サブネット [subnet-private (10.1.0.0/24)] を選びます。 パブリック IP [なし] を選択します。 NIC ネットワーク セキュリティ グループ [Advanced] \(詳細設定) を選択します。 ネットワーク セキュリティ グループを構成する [新規作成] を選択します。
名前として「nsg-1」を入力します。
残りの部分は既定値のままにし、[OK] を選択します。残りの設定は既定値のままにし、[確認と作成] を選択します。
設定を確認し、[作成]を選択します。
[ 新しいキー ペアの生成 ] ダイアログ ボックスが表示されます。 [Download private key and create resource]\(秘密キーをダウンロードしてリソースを作成する\) を選択します。
秘密キーがローカル コンピューターにダウンロードされます。 このチュートリアルの後半でAzure Bastionで仮想マシンに接続する際に、vm-spoke-key用のプライベートキーをダウンロードする必要があります。
仮想マシンの展開が終わるまで待ってから次のステップに進みましょう。
注
bastion ホストがある仮想ネットワーク内の仮想マシンには、パブリック IP アドレスが必要ありません。 Bastion がパブリック IP を提供し、VM はプライベート IP を使用してネットワーク内で通信します。 bastion ホストされている仮想ネットワーク内のいずれの VM からも、パブリック IP を削除できます。 詳細については、「パブリック IP アドレスの関連付けを Azure VM から解除する」を参照してください。
NAT ゲートウェイをテストする
前の手順で作成した Ubuntu 仮想マシンに接続して、送信インターネット トラフィックが NAT ゲートウェイから送られることを確認します。
NAT ゲートウェイのパブリック IP アドレスを取得する
この記事後半の検証手順のために、NAT ゲートウェイのパブリック IP アドレスを取得します。
ポータルの上部にある検索ボックスに、「パブリック IP」と入力します。 検索結果から [パブリック IP アドレス] を選択します。
[public-ip-nat] を選択します。
IPアドレスの値をメモしてください。 この記事で使用される例は 203.0.113.25 です。
スポークから NAT ゲートウェイをテストする
ポータルの上部にある検索ボックスに、「仮想マシン」と入力します。 検索結果から [仮想マシン] を選択します。
[vm-spoke] を選択します。
[概要] で、[接続] を選んでから [Bastion 経由で接続] を選びます。
接続の種類として [SSH ] を選択します。 SSH 秘密キー ファイルをアップロードします。 [接続]を選択します。
bash プロンプトで、次のコマンドを入力します。
curl -4 https://ifconfig.me/ipコマンドが返す IP アドレスが NAT ゲートウェイのパブリック IP アドレスと一致することを確認します。
azureuser@vm-spoke:~$ curl -4 https://ifconfig.me/ip 203.0.113.25vm-spoke への Bastion 接続を閉じます。
リソースをクリーンアップする
作成したリソースが不要になったら、リソースグループとその中に含まれるすべてのリソースを削除してください。
作成したリソースの使用が終了したら、リソース グループとそのすべてのリソースを削除して構いません。
Azure portal で、「リソース グループ」を検索して選択します。
[リソース グループ] ページで、test-rg リソース グループを選択します。
[test-rg] ページで、[リソース グループの削除] を選択します。
[削除を確認するために、リソース グループ名を入力してください] に「test-rg」と入力し、[削除] を選びます。
次のステップ
次の記事に進み、NAT ゲートウェイと Azure Load Balancer を統合する方法について学習してください。