Prestazioni del gateway SDN

In Windows Server 2016, uno dei problemi del cliente era l'impossibilità del gateway SDN di soddisfare i requisiti di velocità effettiva delle reti moderne. La velocità effettiva di rete dei tunnel IPsec e GRE presentava limitazioni con quella a singola connessione per la connettività IPsec di circa 300 Mbps e quella per la connettività GRE di circa 2,5 Gbps.

A partire da Windows Server 2019, abbiamo migliorato notevolmente le prestazioni del gateway SDN, con velocità che raggiungono gli 1,8 Gbps e i 15 Gbps, rispettivamente per le connessioni IPsec e GRE. Tutto questo con riduzioni significative dei cicli CPU/byte, offrendo così una velocità effettiva a prestazioni ultra elevate con un utilizzo della CPU molto inferiore.

Prestazioni elevate con i gateway

Per le connessioni GRE, dopo la distribuzione/l'aggiornamento alle build di Windows Server 2019 nelle macchine virtuali del gateway, si noterà automaticamente il miglioramento delle prestazioni. Non sono necessari passaggi manuali.

Per le connessioni IPsec, per impostazione predefinita, quando si crea la connessione per le reti virtuali, si ottengono i numeri di percorso dati e prestazioni di Windows Server 2016. Per abilitare il percorso dati di Windows Server 2019, eseguire le operazioni seguenti:

  1. In una macchina virtuale del gateway SDN passare alla console Servizi (services.msc).
  2. Trovare il servizio denominato Servizio gateway di Azure e impostare il tipo di avvio su Automatico.
  3. Riavviare la macchina virtuale del gateway. Connessioni attive in questo gateway di failover a una macchina virtuale del gateway ridondante.
  4. Ripetere i passaggi precedenti per le macchine virtuali del gateway rimanenti.

Per il corretto funzionamento delle connessioni IPsec con prestazioni elevate, è necessario soddisfare i requisiti seguenti:

  • NAT-T (Network Address Translation-Traversal) deve essere abilitato nel gateway locale. Quando si abilitano connessioni IPsec con prestazioni elevate, il gateway SDN configura una regola NAT, pertanto è anche necessario abilitare NAT-T nel gateway locale.
  • Il gateway locale deve consentire i pacchetti UDP (User Datagram Protocol) sulle porte 500 e 4500 e il protocollo 50 e 51.

Suggerimento

Per ottenere risultati ottimali sulle prestazioni, assicurarsi che cipherTransformationConstant e authenticationTransformConstant nelle impostazioni quickMode della connessione IPsec usino la suite di crittografia GCMAES256.

Per ottenere prestazioni ottimali, l'hardware dell'host del gateway deve supportare set di istruzioni CPU AES-NI e PCLMULQDQ. Sono disponibili in qualsiasi CPU Intel Westmere (32 nm) e versioni successive, ad eccezione dei modelli in cui AES-NI è stato disabilitato. È possibile esaminare la documentazione del fornitore di hardware per verificare se la CPU supporta set di istruzioni CPU AES-NI e PCLMULQDQ.

Di seguito è riportato un esempio REST di connessione IPsec con algoritmi di sicurezza ottimali:

# 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

Risultati dei test

Sono stati eseguiti test completi delle prestazioni per i gateway SDN nei lab di test. Nei test sono state confrontate le prestazioni di rete del gateway con Windows Server 2019 in scenari SDN e scenari non SDN. È possibile trovare i risultati e i dettagli di configurazione dei test acquisiti nell'articolo del blog qui.