Performances de la passerelle réseau SDN

S’applique à : Windows Server 2022, Windows Server 2019, Azure Stack HCI versions 22H2, 21H2 et 20H2

Dans Windows Server 2016, l’une des préoccupations du client était l’incapacité de la passerelle SDN à répondre aux exigences de débit des réseaux modernes. Le débit réseau des tunnels IPsec et GRE avait des limitations avec le débit de connexion unique pour la connectivité IPsec d’environ 300 Mbits/s et pour la connectivité GRE d’environ 2,5 Gbits/s.

À compter de Windows Server 2019, nous avons considérablement amélioré les performances de la passerelle réseau SDN, avec des chiffres s’élevant respectivement à 1,8 Go/s et 15 Go/s pour les connexions IPsec et GRE. Tout cela, avec des réductions significatives des cycles du processeur/par octet, offrant ainsi un débit ultra-hautes performances avec beaucoup moins d’utilisation du processeur.

Activer des performances élevées avec des passerelles

Pour les connexions GRE, une fois que vous déployez/mettez à niveau les builds de Windows Server 2019 sur les machines virtuelles de passerelle, vous devez automatiquement voir les performances améliorées. Aucune procédure manuelle n’est impliquée.

Pour les connexions IPsec, par défaut, lorsque vous créez la connexion pour vos réseaux virtuels, vous obtenez le chemin des données Windows Server 2016 et les numéros de performance. Pour activer le chemin des données Windows Server 2019, procédez comme suit :

  1. Sur une machine virtuelle de passerelle SDN, accédez à la console Services (services.msc).
  2. Recherchez le service nommé Service de passerelle Azure et définissez le type de démarrage sur Automatique.
  3. Redémarrer la machine virtuelle de passerelle. Les connexions actives sur cette passerelle basculent vers une machine virtuelle de passerelle redondante.
  4. Répétez les étapes précédentes sur le reste des machines virtuelles de passerelle.

Les exigences suivantes doivent être remplies pour que les connexions IPsec hautes performances fonctionnent :

  • La traduction d’adresses réseau (NAT-T) doit être activée sur votre passerelle locale. Lors de l’activation des connexions IPsec hautes performances, la passerelle réseau SDN configure une règle NAT. Vous devez donc également activer NAT-T sur votre passerelle locale.
  • La passerelle locale doit autoriser les paquets UDP (User Datagram Protocol) sur les ports 500 et 4500 et 50 et 51.

Conseil

Pour obtenir de meilleurs résultats en matière de performances, assurez-vous que cipherTransformationConstant et authenticationTransformConstant dans les paramètres quickMode de la connexion IPsec utilisent la suite de chiffrement GCMAES256.

Pour des performances maximales, le matériel hôte de passerelle doit prendre en charge les jeux d’instructions de processeur AES-NI et PCLMULQQ. Ceux-ci sont disponibles sur n’importe quel Westmere (32nm) et versions ultérieures du processeur Intel, sauf sur les modèles où AES-NI a été désactivé. Vous pouvez consulter la documentation de votre fournisseur de matériel pour voir si le processeur prend en charge les jeux d’instructions de processeur AES-NI et PCLMULQDQ.

Voici un exemple REST de connexion IPsec avec des algorithmes de sécurité optimaux :

# 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

Résultats des tests

Nous avons effectué des tests de performances étendus pour les passerelles SDN dans nos laboratoires de test. Dans les tests, nous avons comparé les performances réseau de passerelle avec Windows Server 2019 dans les scénarios SDN et les scénarios non-SDN. Vous trouverez les résultats et les détails de la configuration des tests capturés dans l’article de blog ici.