Azure NAT ゲートウェイを使用した SNAT ポートのスケーリング
Azure Firewall によって、バックエンド仮想マシン スケール セット インスタンス (最小 2 インスタンス) ごとに構成されたパブリック IP アドレスあたり 2,496 個の SNAT ポートが提供され、ユーザーは最大 250 個のパブリック IP アドレスを割り当てることができます。 アーキテクチャとトラフィック パターンによっては、この構成で 1,248,000 を超える SNAT ポートが必要になる場合があります。 たとえば、Microsoft 365 アプリと統合する大規模な Azure Virtual Desktop デプロイを保護するために、これを使用する場合などです。
多数のパブリック IP アドレスを使用する場合の課題の 1 つは、ダウンストリームの IP アドレス フィルター要件がある場合です。 Azure Firewall では、接続に使用されるソース パブリック IP アドレスがランダムに選択されるため、それに関連付けられているすべてのパブリック IP アドレスを許可する必要があります。 送信 SNAT ポートの要件を満たすために、パブリック IP アドレス プレフィックスを使用し、250 個のパブリック IP アドレスを関連付ける必要がある場合でも、16 個のパブリック IP アドレス プレフィックスを作成して許可する必要があります。
送信 SNAT ポートをスケーリングして動的に割り当てるためのより適切なオプションは、Azure NAT Gateway を使用することです。 パブリック IP アドレスあたり 64,512 個の SNAT ポートが提供され、最大 16 個のパブリック IP アドレスがサポートされます。 これにより、最大 1,032,192 個の送信 SNAT ポートが効果的に提供されます。 Azure NAT Gateway では、サブネット レベルで SNAT ポートも動的に割り当てられるため、関連付けられている IP アドレスによって提供されるすべての SNAT ポートをオンデマンドで使用して、送信接続を提供できます。
NAT ゲートウェイ リソースが Azure Firewall サブネットに関連付けられている場合、すべての送信インターネット トラフィックで、NAT ゲートウェイのパブリック IP アドレスが自動的に使用されます。 ユーザー定義のルートを構成する必要はありません。 送信フローへの応答トラフィックも、NAT ゲートウェイを通過します。 NAT ゲートウェイに複数の IP アドレスが関連付けられている場合は、IP アドレスがランダムに選択されます。 使用するアドレスを指定することはできません。
このアーキテクチャでは、二重 NAT はありません。 Azure Firewall インスタンスは、Azure Firewall のパブリック IP アドレスではなく、プライベート IP アドレスを使用して、NAT ゲートウェイにトラフィックを送信します。
Note
ゾーン冗長ファイアウォールを使用して NAT ゲートウェイをデプロイすることは、推奨されるデプロイ オプションではありません。これは、NAT ゲートウェイでゾーン冗長デプロイが、現時点ではサポートされていないためです。 Azure Firewall で NAT ゲートウェイを使用するには、ゾーン ファイアウォールのデプロイが必要です。
また、セキュリティ保護付き仮想ハブ ネットワーク (vWAN) アーキテクチャでは、Azure NAT Gateway の統合は現在サポートされていません。 ハブ仮想ネットワーク アーキテクチャを使用してデプロイする必要があります。 ハブとスポークのネットワーク アーキテクチャでの NAT ゲートウェイと Azure Firewall の統合に関する詳細なガイダンスについては、NAT ゲートウェイと Azure Firewall の統合に関するチュートリアルをご覧ください。 Azure Firewall アーキテクチャ オプションの詳細については、「Azure Firewall Manager のアーキテクチャのオプション」を参照してください。
NAT ゲートウェイを Azure Firewall サブネットに関連付ける - Azure PowerShell
次の例では、Azure PowerShell を使用して、NAT ゲートウェイを作成し、Azure Firewall サブネットにアタッチしています。
# Create public IP addresses
New-AzPublicIpAddress -Name public-ip-1 -ResourceGroupName nat-rg -Sku Standard -AllocationMethod Static -Location 'South Central US'
New-AzPublicIpAddress -Name public-ip-2 -ResourceGroupName nat-rg -Sku Standard -AllocationMethod Static -Location 'South Central US'
# Create NAT gateway
$PublicIPAddress1 = Get-AzPublicIpAddress -Name public-ip-1 -ResourceGroupName nat-rg
$PublicIPAddress2 = Get-AzPublicIpAddress -Name public-ip-2 -ResourceGroupName nat-rg
New-AzNatGateway -Name firewall-nat -ResourceGroupName nat-rg -PublicIpAddress $PublicIPAddress1,$PublicIPAddress2 -Location 'South Central US' -Sku Standard
# Associate NAT gateway to subnet
$virtualNetwork = Get-AzVirtualNetwork -Name nat-vnet -ResourceGroupName nat-rg
$natGateway = Get-AzNatGateway -Name firewall-nat -ResourceGroupName nat-rg
$firewallSubnet = $virtualNetwork.subnets | Where-Object -Property Name -eq AzureFirewallSubnet
$firewallSubnet.NatGateway = $natGateway
$virtualNetwork | Set-AzVirtualNetwork
NAT ゲートウェイを Azure Firewall サブネットに関連付ける - Azure CLI
次の例では、Azure CLI を使用して、NAT ゲートウェイを作成し、Azure Firewall サブネットにアタッチしています。
# Create public IP addresses
az network public-ip create --name public-ip-1 --resource-group nat-rg --sku standard
az network public-ip create --name public-ip-2 --resource-group nat-rg --sku standard
# Create NAT gateway
az network nat gateway create --name firewall-nat --resource-group nat-rg --public-ip-addresses public-ip-1 public-ip-2
# Associate NAT gateway to subnet
az network vnet subnet update --name AzureFirewallSubnet --vnet-name nat-vnet --resource-group nat-rg --nat-gateway firewall-nat