使用 Azure NAT 閘道調整 SNAT 連接埠的規模

Azure 防火牆為每個後端虛擬機器擴展集執行個體 (至少兩個執行個體) 設定的每個公用 IP 位址,提供 2,496 個 SNAT 連接埠,所以您最多可以關聯 250 個公用 IP 位址。 視您的結構和流量模式而定,此設定可能需要超過 1,248,000 個可用的 SNAT 連接埠。 例如,當您使用它來保護與 Microsoft 365 Apps 整合的大型 Azure 虛擬桌面部署時。

使用大量公用 IP 位址的另一個挑戰,便是當下游 IP 位址有篩選需求時。 Azure 防火牆會隨機選取要用來連線的來源公用 IP 位址,因此您必須允許與其相關的所有公用 IP 位址。 即使您使用公用 IP 位址前置詞,且需要與 250 個公用 IP 位址建立關聯以符合輸出 SNAT 連接埠的需求,您仍然需要建立並允許 16 個公用 IP 位址前置詞。

調整及動態配置輸出 SNAT 連接埠規模的較佳選項是使用 Azure NAT 閘道。 其可為每個公用 IP 位址提供 64,512 個 SNAT 連接埠,最多支援 16 個公用 IP 位址。 如此一來,就能有效提供多達 1,032,192 個輸出 SNAT 連接埠。 Azure NAT 閘道也會在子網路層級動態配置 SNAT 連接埠,因此其相關聯 IP 位址所提供的所有 SNAT 連接埠都可隨選提供輸出連線能力。

當 NAT 閘道資源與 Azure 防火牆子網路相關時,所有輸出網際網路流量都會自動使用 NAT 閘道的公用 IP 位址。 不需要設定使用者定義路由。 輸出流量的回應流量也會通過 NAT 閘道。 如果有多個 IP 位址與 NAT 閘道相關,就會隨機選取 IP 位址。 無法指定要使用的位址。

此結構沒有雙重 NAT。 Azure 防火牆執行個體會使用其私人 IP 位址將流量傳送至 NAT 閘道,而非 Azure 防火牆公用 IP 位址。

注意

不建議使用區域備援防火牆部署 NAT 閘道,因為 NAT 閘道目前不支援區域備援部署。 若要搭配使用 NAT 閘道與 Azure 防火牆,則須部署區域性防火牆。

此外,安全虛擬中樞網路 (vWAN) 結構目前不支援 Azure NAT 閘道整合。 您必須使用中樞虛擬網路結構進行部署。 如需在中樞和輪輻網路架構中整合 NAT 閘道與 Azure 防火牆的詳細指導方針,請參閱 NAT 閘道和 Azure 防火牆整合教學課程。 如需 Azure 防火牆結構選項的詳細資訊,請參閱什麼是 Azure 防火牆管理員結構選項?

建立 NAT 閘道與 Azure 防火牆子網路的關聯 - Azure PowerShell

下列範例會使用 Azure PowerShell 建立並連結具有 Azure 防火牆子網路的 NAT 閘道。

# 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 防火牆子網路的關聯 - Azure CLI

下列範例會使用 Azure CLI 建立並連結具有 Azure 防火牆子網路的 NAT 閘道。

# 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

下一步