Teil 3 von 6
Teil 3: Network ATC
Network ATC für standardisierte und automatisierte Netzwerkkonfiguration im Hyper-V Cluster.
Voraussetzung
Network ATC erfordert mindestens Windows Server 2022.
Network ATC konfiguriert alle Nodes automatisch und einheitlich: Management, Compute und Storage. Den Intent einmal definieren, der Rest läuft selbst. In den meisten Fällen teilen sich Management und Compute die gleichen Adapter. Für RDMA Storage (S2D) empfehle ich dedizierte physische Adapter. Möglich sind auch separate Intents sowie eine Full-Converged-Konfiguration.

Quelle: Microsoft Learn – Network ATC
Management und Compute Intent
# ===================== ANPASSEN =====================
$IntentName = "Management_Compute" # Name des Intents$AdapterNamen = "SLOT 3 Port 1","SLOT 6 Port 1" # Adapter-Namen (Get-NetAdapter zur Ermittlung)$VlanId = "123" # Management VLAN (optional, nur wenn getaggt)
# =================== NICHT ANPASSEN =================
# NetworkDirect deaktivieren falls kein RDMA auf den Management-Adaptern$AdapterOverride = New-NetIntentAdapterPropertyOverrides$AdapterOverride.NetworkDirect = 0
Add-NetIntent ` -ClusterName $ClusterName ` -Name $IntentName ` -Management ` -Compute ` -AdapterName $AdapterNamen ` -AdapterPropertyOverrides $AdapterOverride ` -Verbose
# Status prüfen – kann einige Minuten dauern bis alle Nodes konfiguriert sindGet-NetIntentStatus -ClusterName $ClusterName# Nur erforderlich wenn der Management-Adapter in einem getaggten VLAN betrieben wirdSet-VMNetworkAdapterIsolation ` -ManagementOS ` -VMNetworkAdapterName "vManagement($IntentName)" ` -IsolationMode Vlan ` -DefaultIsolationID $VlanId ` -AllowUntaggedTraffic $trueStorage Intent
Hinweis
Der Storage Intent ist nur erforderlich wenn Storage Spaces Direct (S2D) eingesetzt wird. Bei SAN-Anbindung entfällt dieser Schritt.
Der Storage Intent übernimmt die gesamte RDMA Konfiguration (QoS, VLANs, PFC, ETS, usw.)
# ===================== ANPASSEN =====================
$StorageAdapter1 = "SLOT 3 Port 2" # Erster Storage-Adapter (Get-NetAdapter zur Ermittlung)$StorageAdapter2 = "SLOT 6 Port 2" # Zweiter Storage-Adapter
# =================== NICHT ANPASSEN =================
Add-NetIntent ` -ClusterName $ClusterName ` -Name Storage ` -Storage ` -AdapterName $StorageAdapter1,$StorageAdapter2 ` -Verbose
Get-NetIntentStatus -ClusterName $ClusterNameQoS-Prioritäten anpassen (optional)
Die Standard-QoS-Werte sind für die meisten Umgebungen geeignet. Eine Anpassung ist nur dann erforderlich, wenn der Switch abweichende DSCP/802.1p-Prioritäten oder eine andere Bandbreitenverteilung vorgibt.
# ===================== ANPASSEN =====================
$PrioritySMB = 3 # 802.1p-Priorität für SMB/Storage-Traffic$PriorityCluster = 5 # 802.1p-Priorität für Cluster-Heartbeat$BandwidthSMB = 50 # Bandbreitenanteil SMB in Prozent$BandwidthCluster = 1 # Bandbreitenanteil Cluster-Heartbeat in Prozent
# =================== NICHT ANPASSEN =================
$QosOverride = New-NetIntentQosPolicyOverrides$QosOverride.PriorityValue8021Action_SMB = $PrioritySMB$QosOverride.PriorityValue8021Action_Cluster = $PriorityCluster$QosOverride.BandwidthPercentage_SMB = $BandwidthSMB$QosOverride.BandwidthPercentage_Cluster = $BandwidthCluster
Set-NetIntent -Name Storage -QosPolicyOverrides $QosOverride -ClusterName $ClusterNameStorage VLANs setzen (optional)
Ohne explizite Konfiguration vergibt Network ATC automatisch VLANs. Nur setzen, wenn bestimmte VLAN-IDs von der Netzwerkinfrastruktur vorgegeben sind.
# ===================== ANPASSEN =====================
$StorageVLAN1 = 101 # VLAN für erstes Storage-Netzwerk$StorageVLAN2 = 102 # VLAN für zweites Storage-Netzwerk
# =================== NICHT ANPASSEN =================
Set-NetIntent -Name Storage -StorageVLANs $StorageVLAN1,$StorageVLAN2 -ClusterName $ClusterNameStorage IPs manuell zuweisen (optional)
Standardmäßig vergibt Network ATC Storage-IPs automatisch. Manuelle Adressen sind nur erforderlich wenn das Storage-Netzwerk nicht exklusiv für dieses Cluster verwendet wird.
# ===================== ANPASSEN =====================
$SMBNet1 = "198.51.100." # Netzwerk-Präfix Storage 1 (ohne letzte Stelle)$SMBNet2 = "203.0.113." # Netzwerk-Präfix Storage 2 (ohne letzte Stelle)$StartIP = 21 # Erste Host-Adresse. Wird pro Node hochgezählt$ClusterName = "Cluster1" # Name des Clusters
# =================== NICHT ANPASSEN =================
$StorageOverride = New-NetIntentStorageOverrides$StorageOverride.EnableAutomaticIPGeneration = $false
Set-NetIntent ` -Name Storage ` -StorageOverrides $StorageOverride ` -StorageVLANs $StorageVLAN1,$StorageVLAN2 ` -QosPolicyOverrides $QosOverride ` -ClusterName $ClusterName
$ClusterNodes = (Get-ClusterNode -Cluster $ClusterName).Name
foreach ($Server in $ClusterNodes) { New-NetIPAddress -IPAddress ($SMBNet1 + $StartIP.ToString()) -InterfaceAlias "vSMB(Storage#$StorageAdapter1)" -CimSession $Server -PrefixLength 24 New-NetIPAddress -IPAddress ($SMBNet2 + $StartIP.ToString()) -InterfaceAlias "vSMB(Storage#$StorageAdapter2)" -CimSession $Server -PrefixLength 24 $StartIP++}Die Konfiguration hier deckt das, was in der Praxis am häufigsten vorkommt. Für abweichende Setups wie separate Compute-Intents lohnt sich ein Blick in die offizielle Dokumentation: Network ATC – Microsoft Learn
Storage Anbindung
Je nach Infrastruktur erfolgt die Storage-Anbindung auf zwei unterschiedlichen Wegen. Wähle den passenden Teil: