Hyper V networking - jasper-zanjani/Windows-Server GitHub Wiki
Hyper-V networking
Virtual switches can be external, internal, or private (in order of decreasing access). Up to 8 network adapters can be [added][Add-VMNetworkAdapter] to a Windows Server 2016 Hyper-V VM.
Hyper-V maintains a pool of MAC addresses which are assigned to virtual network adapters as they are created.
Hyper-V MAC addresses begin with 00-15-5D
, followed by the last two bytes of the IP address assigned to the server's physical network adapter (i.e. last two octets), then a final byte.
Generation 1 VMs supported synthetic and legacy virtual network adapters, but in Generation 2 VMs only synthetic adapters are used. Generation 1 VMs can only boot from network (PXE) when using a legacy adapter.
Physical hosts running Windows Server 2016 can support teams of up to 32 NICs, but Hyper-V VMs are limited to teams of two. The team must first be configured in the host operating system and appears as a single interface in the Virtual Switch Manager. High-performance embedded teaming, reliant on RDMA, can only be configured with Powershell.
- Teaming Mode
- Switch Independent: switch is unaware of presence of NIC team and does not load balance to members; Windows is performing the teaming
- Switch Dependent: switch determines how to distribute inbound network traffic; only supported by specialty hardware
- Static Teaming: switch and host are manually configured (typically supported by server-class switches)
- Link Aggregation Control Protocol (LACP): dynamically identifies links that are connected between the host and the switch
- Load Balancing Mode
- Address Hash: a hash is created based on address components of the packet, which is used to reasonably balance adapters
- Hyper-V Port: NIC teams configured on Hyper-V hosts give VMs independent MAC addresses
- Dynamic: outbound loads are distributed based on a hash of the TCP ports and IP addresses
Virtual machine queuing will enhance performance if a physical host supports it and it is enabled.
Bandwidth management is achieved by setting limits on the virtual network adapter, in the GUI or in [Powershell][Set-VMNetworkAdapter].