Производительность шлюза SDN

Область применения: Windows Server 2022, Windows Server 2019, Azure Stack HCI, версии 22H2 и 21H2

В Windows Server 2016 одной из проблем клиента было неспособность шлюза SDN соответствовать требованиям к пропускной способности современных сетей. Пропускная способность сети для туннелей IPsec и GRE имеет ограничения с одной пропускной способностью подключения для подключения IPsec около 300 Мбит/с, а для подключения GRE составляет около 2,5 Гбит/с.

Начиная с Windows Server 2019, мы значительно улучшили производительность шлюза SDN, при этом числа взлетели до 1,8 Гбит/с и 15 Гбит/с для подключений IPsec и GRE соответственно. Все это, при значительном сокращении циклов ЦП/байтов, тем самым обеспечивая высокую производительность пропускной способности с гораздо меньшей загрузкой ЦП.

Включение высокой производительности с помощью шлюзов

Для подключений GRE после развертывания и обновления до Windows Server 2019 на виртуальных машинах шлюза вы автоматически увидите улучшенную производительность. Никаких действий вручную не участвуют.

Для подключений IPsec по умолчанию при создании подключения для виртуальных сетей вы получите путь к данным и номера производительности Windows Server 2016. Чтобы включить путь к данным Windows Server 2019, сделайте следующее:

  1. На виртуальной машине шлюза SDN перейдите в консоль служб (services.msc).
  2. Найдите службу с именем "Служба шлюза Azure" и задайте для параметра "Автоматический" тип запуска.
  3. Перезапустите виртуальную машину шлюза. Активные подключения в этом шлюзе отработки отказа на виртуальную машину избыточного шлюза.
  4. Повторите предыдущие шаги для остальных виртуальных машин шлюза.

Для обеспечения высокой производительности подключений IPsec необходимо выполнить следующие требования:

  • Преобразование сетевых адресов (NAT-T) должно быть включено в локальном шлюзе. При включении высокопроизводительных подключений IPsec шлюз SDN настраивает правило NAT, поэтому необходимо также включить NAT-T в локальном шлюзе.
  • Локальный шлюз должен разрешать пакеты протокола UDP для портов 500 и 4500 и протоколов 50 и 51.

Совет

Для получения наилучших результатов производительности убедитесь, что шифрTransformationConstant и authenticationTransformConstant в параметрах quickMode подключения IPsec использует набор шифров GCMAES256 .

Для максимальной производительности оборудование узла шлюза должно поддерживать наборы инструкций ЦП AES-NI и PCLMULQDQ ЦП. Они доступны для любого Вестмера (32nm) и более поздних процессоров Intel, кроме моделей, где AES-NI отключен. Вы можете просмотреть документацию по поставщику оборудования, чтобы узнать, поддерживает ли ЦП наборы инструкций ЦП AES-NI и PCLMULQQ ЦП.

Ниже приведен пример REST подключения IPsec с оптимальными алгоритмами безопасности:

# NOTE: The virtual gateway must be created before creating the IPsec connection. More details here.
# Create a new object for Tenant Network IPsec Connection
$nwConnectionProperties = New-Object Microsoft.Windows.NetworkController.NetworkConnectionProperties

# Update the common object properties
$nwConnectionProperties.ConnectionType = "IPSec"
$nwConnectionProperties.OutboundKiloBitsPerSecond = 2000000
$nwConnectionProperties.InboundKiloBitsPerSecond = 2000000

# Update specific properties depending on the Connection Type
$nwConnectionProperties.IpSecConfiguration = New-Object Microsoft.Windows.NetworkController.IpSecConfiguration
$nwConnectionProperties.IpSecConfiguration.AuthenticationMethod = "PSK"
$nwConnectionProperties.IpSecConfiguration.SharedSecret = "111_aaa"

$nwConnectionProperties.IpSecConfiguration.QuickMode = New-Object Microsoft.Windows.NetworkController.QuickMode
$nwConnectionProperties.IpSecConfiguration.QuickMode.PerfectForwardSecrecy = "PFS2048"
$nwConnectionProperties.IpSecConfiguration.QuickMode.AuthenticationTransformationConstant = "GCMAES256"
$nwConnectionProperties.IpSecConfiguration.QuickMode.CipherTransformationConstant = "GCMAES256"
$nwConnectionProperties.IpSecConfiguration.QuickMode.SALifeTimeSeconds = 3600
$nwConnectionProperties.IpSecConfiguration.QuickMode.IdleDisconnectSeconds = 500
$nwConnectionProperties.IpSecConfiguration.QuickMode.SALifeTimeKiloBytes = 2000

$nwConnectionProperties.IpSecConfiguration.MainMode = New-Object Microsoft.Windows.NetworkController.MainMode
$nwConnectionProperties.IpSecConfiguration.MainMode.DiffieHellmanGroup = "Group2"
$nwConnectionProperties.IpSecConfiguration.MainMode.IntegrityAlgorithm = "SHA256"
$nwConnectionProperties.IpSecConfiguration.MainMode.EncryptionAlgorithm = "AES256"
$nwConnectionProperties.IpSecConfiguration.MainMode.SALifeTimeSeconds = 28800
$nwConnectionProperties.IpSecConfiguration.MainMode.SALifeTimeKiloBytes = 2000

# L3 specific configuration (leave blank for IPSec)
$nwConnectionProperties.IPAddresses = @()
$nwConnectionProperties.PeerIPAddresses = @()

# Update the IPv4 Routes that are reachable over the site-to-site VPN Tunnel
$nwConnectionProperties.Routes = @()
$ipv4Route = New-Object Microsoft.Windows.NetworkController.RouteInfo
$ipv4Route.DestinationPrefix = "<<On premise subnet that must be reachable over the VPN tunnel. Ex: 10.0.0.0/24>>"
$ipv4Route.metric = 10
$nwConnectionProperties.Routes += $ipv4Route

# Tunnel Destination (Remote Endpoint) Address
$nwConnectionProperties.DestinationIPAddress = "<<Public IP address of the On-Premise VPN gateway. Ex: 192.168.3.4>>"

# Add the new Network Connection for the tenant. Note that the virtual gateway must be created before creating the IPsec connection. $uri is the REST URI of your deployment and must be in the form of “https://<REST URI>”
New-NetworkControllerVirtualGatewayNetworkConnection -ConnectionUri $uri -VirtualGatewayId $virtualGW.ResourceId -ResourceId "Contoso_IPSecGW" -Properties $nwConnectionProperties -Force

Результаты тестирования

Мы провели обширное тестирование производительности для шлюзов SDN в наших лабораториях тестирования. В тестах мы сравнили производительность сети шлюза с Windows Server 2019 в сценариях SDN и сценариях, отличных от SDN. Результаты и сведения о настройке теста можно найти в статье блога.