Windows Server 2019 网关性能

适用于:Windows Server 2022、Windows Server 2019、Azure Stack HCI、版本 21H2 和 20H2

在Windows Server 2016中,客户担心的一个问题就是 SDN 网关无法满足新式网络的吞吐量要求。 IPsec 和 GRE 隧道的网络吞吐量存在限制,IPsec 连接的单个连接吞吐量约 300 Mbps,GRE 连接吞吐量约 2.5 Gbps。

我们在 Windows Server 2019 中有了显著改进,IPsec 和 GRE 连接的数字分别为 1.8 Gbps 和 15 Gbps。 所有这些都显著减少了 CPU 周期/每字节,从而提供超高性能的吞吐量,同时降低 CPU 利用率。

使用 Windows Server 2019 中的网关实现高性能

对于 GRE 连接,在网关 VM 上部署/Windows Server 2019 内部版本后,应会自动看到性能改进。 无需手动执行任何步骤。

对于 IPsec 连接,默认情况下,为虚拟网络创建连接时,会Windows Server 2016数据路径和性能编号。 若要启用 Windows Server 2019 数据路径,请执行以下步骤:

  1. 在 SDN 网关 VM 上,转到服务控制台 (services.msc) 。
  2. 找到名为 "Azure 网关服务"的服务,将启动类型设置为"自动 "
  3. 重启网关 VM。 此网关上的活动连接故障转移到冗余网关 VM。
  4. 对其余网关 VM 重复上述步骤。

提示

为获得最佳性能,请确保 IPsec 连接 quickMode 设置中的 cipherTransformationConstant 和 authenticationTransformConstant 使用 GCMAES256 密码套件。

为了获得最佳性能,网关主机硬件必须支持 AES-NI 和 PCLMULQDQ CPU 指令集。 这些可在任何 Westmere (32nm) 及更高版本的 Intel CPU 上提供,但已禁用 AES-NI 的模型除外。 你可以查看硬件供应商文档,了解 CPU 是否支持 AES-NI 和 PCLMULQDQ CPU 指令集。

下面是采用最佳安全算法的 IPsec 连接的 REST 示例:

# 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 网关进行了广泛的性能测试。 在测试中,我们在 SDN 方案和非 SDN 方案中Windows网关网络性能与 Windows Server 2019 进行了比较。 可在此处的博客文章中找到捕获的结果和测试设置 详细信息