SDN ağ geçidi performansı

Windows Server 2016'da müşteri endişelerinden biri, SDN ağ geçidinin modern ağların aktarım hızı gereksinimlerini karşılayamamasıydı. IPsec ve GRE tünellerinin ağ aktarım hızı, IPsec bağlantısı için tek bağlantı aktarım hızının yaklaşık 300 Mb/sn ve GRE bağlantısının yaklaşık 2,5 Gb/sn olmasıyla ilgili sınırlamalara sahipti.

Windows Server 2019'dan başlayarak SDN ağ geçidi performansını önemli ölçüde geliştirdik ve sayılar sırasıyla IPsec ve GRE bağlantıları için 1,8 Gb/sn ve 15 Gb/sn'ye yükseltildi. Tüm bunlar, CPU döngülerinde/bayt başına önemli düşüşlerle çok daha az CPU kullanımıyla ultra yüksek performanslı aktarım hızı sağlar.

Ağ geçitleriyle yüksek performansı etkinleştirme

GRE bağlantıları için, ağ geçidi VM'lerinde Windows Server 2019 derlemelerini dağıttıktan/yükselttikten sonra, geliştirilmiş performansı otomatik olarak görmeniz gerekir. El ile gerçekleştirilen adımlar söz konusu değildir.

IPsec bağlantıları için varsayılan olarak, sanal ağlarınız için bağlantı oluşturduğunuzda Windows Server 2016 veri yolunu ve performans numaralarını alırsınız. Windows Server 2019 veri yolunu etkinleştirmek için aşağıdakileri yapın:

  1. SDN ağ geçidi VM'sinde Hizmetler konsoluna (services.msc) gidin.
  2. Azure Ağ Geçidi Hizmeti adlı hizmeti bulun ve başlangıç türünü Otomatik olarak ayarlayın.
  3. Ağ geçidi VM'sini yeniden başlatın. Bu ağ geçidindeki etkin bağlantılar, yedek bir ağ geçidi VM'sine aktarılır.
  4. Ağ geçidi VM'lerinin geri kalanı için önceki adımları yineleyin.

Yüksek performanslı IPsec bağlantılarının çalışması için aşağıdaki gereksinimler karşılanmalıdır:

  • Ağ Adresi Translation-Traversal (NAT-T) şirket içi ağ geçidinizde etkinleştirilmelidir. Yüksek performanslı IPsec bağlantılarını etkinleştirirken, SDN ağ geçidi bir NAT kuralı yapılandırdığından, şirket içi ağ geçidinizde NAT-T de etkinleştirmeniz gerekir.
  • Şirket içi ağ geçidi, 500 ve 4500 numaralı bağlantı noktaları ile 50 ve 51 numaralı protokolde Kullanıcı Veri Birimi Protokolü (UDP) paketlerine izin vermelidir.

Tip

En iyi performans sonuçları için IPsec bağlantısının quickMode ayarlarında cipherTransformationConstant ve authenticationTransformConstant'ın GCMAES256 şifreleme paketini kullandığından emin olun.

En yüksek performans için ağ geçidi ana bilgisayar donanımının AES-NI ve PCLMULQDQ CPU yönerge kümelerini desteklemesi gerekir. Bunlar, AES-NI devre dışı bırakıldığı modeller dışında tüm Westmere (32nm) ve sonraki Intel CPU sürümlerinde kullanılabilir. CPU'nuzun AES-NI ve PCLMULQDQ CPU yönerge kümelerini destekleyip desteklemediğini görmek için donanım satıcınızın belgelerine bakabilirsiniz.

Aşağıda, en iyi güvenlik algoritmalarına sahip IPsec bağlantısının REST örneği verilmiştir:

# 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

Test Sonuçları

Test laboratuvarlarımızda SDN ağ geçitleri için kapsamlı performans testleri yaptık. Testlerde SDN senaryolarında ve SDN dışı senaryolarda ağ geçidi ağ performansını Windows Server 2019 ile karşılaştırdık. Elde edilen sonuçları ve test kurulumu ayrıntılarını blog makalesinde bulabilirsiniz.