Масштабирование количества портов SNAT с помощью шлюза Azure NAT

Брандмауэр Azure предоставляет 2496 портов SNAT на общедоступный IP-адрес, настроенный для каждого экземпляра масштабируемого набора виртуальных машин серверной части (не менее двух экземпляров), и можно связать до 250 общедоступных IP-адресов. В зависимости от архитектуры и схем трафика вам может потребоваться больше 1 248 000 портов SNAT, доступных в данной конфигурации. Например, когда вы используете их для защиты крупных развертываний Виртуального рабочего стола Azure, которые интегрируются с приложениями Microsoft 365.

Одна из проблем с использованием большого количества общедоступных IP-адресов заключается в наличии нижестоящих требований к фильтрации IP-адресов. Брандмауэр Azure случайным образом выбирает исходный общедоступный IP-адрес, который будет использоваться для подключения, поэтому необходимо разрешить в брандмауэре все связанные с ним общедоступные IP-адреса. Даже если вы используете префиксы общедоступных IP-адресов и вам требуется связать с брандмауэром 250 общедоступных IP-адресов в соответствии с требованиями исходящих портов SNAT, необходимо создать и разрешить 16 префиксов общедоступных IP-адресов.

Лучшим вариантом масштабирования и динамического выделения исходящих портов SNAT является использование шлюза NAT Azure. Он предоставляет 64 512 портов SNAT на общедоступный IP-адрес и поддерживает до 16 общедоступных IP-адресов. Это обеспечивает до 1032 192 исходящих портов SNAT. Шлюз NAT Azure также динамически выделяет порты SNAT на уровне подсети, поэтому все порты SNAT, предоставляемые связанными IP-адресами, доступны по запросу для предоставления исходящего подключения.

Если ресурс шлюза NAT связан с подсетью брандмауэра Azure, то для всего исходящего интернет-трафика автоматически используется общедоступный IP-адрес шлюза NAT. Настраивать определяемые пользователем маршруты не требуется. Трафик ответа на исходящий поток также передается через шлюз NAT. Если с шлюзом NAT связано несколько IP-адресов, IP-адрес выбирается случайным образом. Нельзя указать, какой адрес следует использовать.

В этой архитектуре отсутствует двойное преобразование сетевых адресов (NAT). С экземпляров брандмауэра Azure трафик в шлюз NAT отправляется с использованием их частных IP-адресов, а не общедоступного IP-адреса брандмауэра Azure.

Примечание.

Развертывание шлюза NAT с помощью брандмауэра, избыточного между зонами, не рекомендуется, так как шлюз NAT в настоящее время не поддерживает зональное избыточное развертывание. Чтобы использовать шлюз NAT с Брандмауэр Azure, требуется зональное развертывание брандмауэра.

Кроме того, интеграция шлюза NAT Azure в настоящее время не поддерживается в защищенных архитектурах виртуальной сети (vWAN). Необходимо выполнить развертывание с использованием архитектуры центральной виртуальной сети. Подробные рекомендации по интеграции шлюза NAT с Брандмауэр Azure в центральной и периферийной сетевой архитектуре см. в руководстве по интеграции шлюза NAT и Брандмауэр Azure интеграции. Дополнительные сведения о параметрах архитектуры Брандмауэра Azure см. в разделе Параметры архитектуры Диспетчера брандмауэра Azure.

Связывание шлюза NAT с подсетью Брандмауэра Azure — Azure PowerShell

В следующем примере шлюз NAT создается и подключается к подсети брандмауэра Azure с помощью Azure PowerShell.

# 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

В следующем примере шлюз NAT создается и подключается к подсети брандмауэра Azure с помощью интерфейса командной строки Azure (Azure CLI).

# 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

Следующие шаги