Skip to content

Hyper V networking

jasper-zanjani edited this page Aug 2, 2020 · 3 revisions

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].

Clone this wiki locally