# Hyper-V Networking: Virtual Switches & SET-Teaming

TL;DR / Management Summary Das Netzwerk-Design entscheidet über die Performance des gesamten Clusters. In Hyper-V nutzen wir den Virtual Switch (vSwitch), um VMs mit der Außenwelt zu verbinden. Für Senior Admins ist das klassische LBFO-Teaming veraltet; der neue Standard ist Switch Embedded Teaming (SET). SET ist direkt in den vSwitch integriert, unterstützt RDMA und ermöglicht die Bündelung von bis zu 8 physischen NICs bei gleichzeitigem VLAN-Management.


# 1. Einführung & Architektur

Die Layer-2 Welt im Hypervisor.

Ein Virtual Switch ist ein Software-basierter Layer-2 Switch. Er leitet Pakete basierend auf MAC-Adressen weiter.

# Die drei Switch-Typen

  1. Extern: Bindet an eine physische NIC. VMs können ins LAN/Internet.
  2. Intern: Nur Kommunikation zwischen Host und VMs (kein physischer Port nötig).
  3. Privat: Nur VMs untereinander (kein Host-Zugriff).

# Architektur-Übersicht (Mermaid)

graph TD
    NIC1[NIC 1] --- SET[SET Teamed vSwitch]
    NIC2[NIC 2] --- SET
    SET --> VM1[VM: VLAN 10]
    SET --> VM2[VM: VLAN 20]
    SET --> MGMT[Host Management: VLAN 100]
    
    subgraph "Logic Layer"
    SET
    end

# 2. Switch Embedded Teaming (SET)

Das Power-Feature.

SET ist exklusiv für Hyper-V verfügbar. Es benötigt keine Konfiguration am physischen Switch (kein LACP nötig!).

# SET via PowerShell erstellen

New-VMSwitch -Name "SET-Switch" `
    -NetAdapterName "Ethernet 1", "Ethernet 2" `
    -EnableEmbeddedTeaming $true `
    -AllowManagementOS $true

# 3. Deep Dive: VLAN-Management

Ordnung im Traffic.

In einer professionellen Umgebung (z.B. auf Proxmox oder Bare-Metal) nutzen wir VLAN Tagging (802.1Q).

# VLAN an VM zuweisen

Anstatt für jedes VLAN einen eigenen vSwitch zu bauen, nutzen wir einen Trunk-Switch und taggen die virtuellen NICs.

Set-VMNetworkAdapterVlan -VMName "SRV-WEB-01" -Access -VlanId 10

# Native Trunk für Gateways (Firewalls)

Wenn eine VM (z.B. OPNsense, Artikel 541) selbst VLANs verwalten soll:

Set-VMNetworkAdapterVlan -VMName "Firewall-VM" -Trunk -NativeVlanId 0 -AllowedVlanIdList "1-100"

# 4. Day-2 Operations: Performance & Sicherheit

Flaschenhälse vermeiden.

# VMQ (Virtual Machine Queues)

Ermöglicht es der NIC, Pakete für verschiedene VMs direkt in verschiedene CPU-Interrupt-Queues zu schieben.

# Mac Address Spoofing verhindern

Schützen Sie Ihren Cluster vor böswilligen VMs:

Set-VMNetworkAdapter -VMName "Test-VM" -MacAddressSpoofing Off

# 5. Troubleshooting & “War Stories”

Wenn die Bridge bricht.

# Top 3 Fehlerbilder

  1. Symptom: VM hat “No Network”, obwohl der vSwitch “Connected” zeigt.

    • Ursache: Das VLAN-Tag am virtuellen Adapter passt nicht zum Tagging am physischen Switch-Port.
    • Lösung: Switch-Port auf “Trunk” stellen und erlaubte VLANs prüfen.
  2. Symptom: Host verliert Management-Verbindung nach Erstellung des vSwitch.

    • Ursache: AllowManagementOS wurde nicht auf $true gesetzt.
    • Lösung: Via Proxmox-Konsole/Lokal-Monitor ein virtuelles Management-Interface hinzufügen: Add-VMNetworkAdapter -ManagementOS -SwitchName "...".
  3. Symptom: Ungleichmäßige Lastverteilung im SET-Team.

    • Lösung: Set-VMSwitchTeam -Name "..." -LoadBalancingAlgorithm HyperVPort (oder Dynamic).

# “War Story”: Der LACP-Krieg

Ein Admin konfigurierte LACP (LAG) auf seinen physischen Cisco-Switches und versuchte gleichzeitig ein Windows-LBFO-Team im Modus “LACP” zu erstellen. Das Ergebnis: Die Verbindung flappte alle 2 Sekunden. Der Switch blockierte den Port wegen “Loop Detection”. Lehre: Nutzen Sie SET. Es ist “Switch Independent”, benötigt kein LACP und ist die einzige Methode, die RDMA (für S2D, Artikel 500) unterstützt. Komplexität am physischen Switch zu vermeiden, ist die beste Strategie.


# 6. Monitoring & Reporting

Network-Traffic Dashboard.

# Port-Statistiken (PowerShell)

# Zeigt empfangene und gesendete Bytes pro VM
Get-VMNetworkAdapter -All | Select-Object VMName, IPAddresses, Status

# 7. Fazit & Empfehlung

Hyper-V Networking ist durch SET wesentlich einfacher geworden.


# Anhang: Cheatsheet

Aufgabe Befehl
Switches auflisten Get-VMSwitch
Adapter zu vSwitch Connect-VMNetworkAdapter
VLAN ändern Set-VMNetworkAdapterVlan
SET Team prüfen Get-VMSwitchTeam

# Referenzen