Windows Server 2019-Gatewayleistung

Gilt für: Windows Server 2022, Windows Server 2019, Azure Stack HCI, Versionen 21H2 und 20H2

In Windows Server 2016 war eines der Kundenbedenken die Unfähigkeit des SDN-Gateways, die Durchsatzanforderungen moderner Netzwerke zu erfüllen. Der Netzwerkdurchsatz von IPsec- und GRE-Tunneln hatte Einschränkungen, bei dem der Durchsatz für eine einzelne Verbindung für die IPsec-Konnektivität etwa 300 MBit/s und die GRE-Konnektivität etwa 2,5 GBit/s beträgt.

Wir haben uns in Windows Server 2019 erheblich verbessert, und die Zahlen für IPsec- bzw. GRE-Verbindungen steigen auf 1,8 GBit/s bzw. 15 GBit/s. All dies mit erheblichen Reduzierungen der CPU-Zyklen/pro Byte, wodurch ein extrem hoher Leistungsdurchsatz mit deutlich geringerer CPU-Auslastung ermöglicht wird.

Aktivieren von Hoher Leistung mit Gateways in Windows Server 2019

Bei GRE-Verbindungen sollten Sie nach dem Bereitstellen/Upgrade auf Windows Server 2019-Builds auf den Gateway-VMs automatisch die verbesserte Leistung sehen. Manuelle Schritte sind nicht erforderlich.

Für IPsec-Verbindungen erhalten Sie beim Erstellen der Verbindung für Ihre virtuellen Netzwerke standardmäßig den Windows Server 2016 Datenpfad und Leistungsnummern. Gehen Sie wie folgt vor, um den Windows Server 2019-Datenpfad zu aktivieren:

  1. Wechseln Sie auf einer SDN-Gateway-VM zur Dienstkonsole (services.msc).
  2. Suchen Sie den Dienst mit dem Namen Azure Gateway Service, und legen Sie den Starttyp auf Automatisch fest.
  3. Starten Sie die Gateway-VM neu. Die aktiven Verbindungen auf diesem Gateway failovern auf eine redundante Gateway-VM.
  4. Wiederholen Sie die vorherigen Schritte für die restlichen Gateway-VMs.

Tipp

Stellen Sie sicher, dass cipherTransformationConstant und authenticationTransformConstant in quickMode-Einstellungen der IPsec-Verbindung die Cipher Suite GCMAES256 verwenden, um optimale Ergebnisse zu erzielen.

Um die maximale Leistung zu erzielen, muss die Gatewayhosthardware AES-NI- und PCLMULQDQ-CPU-Anweisungssätze unterstützen. Diese sind für alle Intel-CPUs in Westmere (32nm) und höher verfügbar, mit Ausnahme von Modellen, bei denen AES-NI deaktiviert wurde. Sehen Sie sich die Dokumentation Ihres Hardwareanbieters an, um zu sehen, ob die CPU AES-NI- und PCLMULQDQ-CPU-Anweisungssätze unterstützt.

Im Folgenden finden Sie ein REST-Beispiel für eine IPsec-Verbindung mit optimalen Sicherheitsalgorithmen:

# 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

Testergebnisse

Wir haben umfangreiche Leistungstests für die SDN-Gateways in unseren Testlabs durchgeführt. In den Tests haben wir die Leistung des Gatewaynetzwerks mit Windows Server 2019 in SDN-Szenarien und Nicht-SDN-Szenarien verglichen. Die Ergebnisse und Details zur Testeinrichtung finden Sie hier im Blogartikel.