Site icon Voina Blog (a tech warrior's blog)

Windows 10 NIC teaming – disabled by MS for client SKU

Advertisements

My Dell XPS 8700 desktop comes with a Realtek PCIe GBE Family Controller. By adding another 2 port Realtek PCIe GBE Family Controller I wanted to get a faster connection to the servers. Note that each of the HP Microserver servers has a 2Gbps connection obtained by NIC teaming the 2 port adapters in Linux.

Windows 10 allows to create NIC teaming using PowerShell.

STEP 0: Hardware setup
First add the new card in an available slot. I had to find first a PCIex1 card with dual port (single port also works but I was not sure I can bond the ethernet port from the motherboard with a port from a new card). Luckily for me I found one StarTech Dual Port Gigabit PCI Express Server Network Adapter Card
that has exactly the same chip-set as the Ethernet from the Dell motherboard.

Another important thing to note is that you will get the best speed for the bond if you do also the following:
– connect each bonded port to a different switch if possible. In my setup port 1 of the StarTech card is linked to SW1 (HP PS1810-8G switch 1) and port 2 of the StarTech card is linked to SW2 (HP PS1810-8G switch 2). The extra original ethernet port from the motherboard got connected to SW1 also.
– create a new VLAN on both switches (I called it DELL) and tag in the switches the ports to which the DELL machine is connected as part of the DELL VLAN. This is very important in order to isolate the traffic and get the best possible throughput. If you do not do this you end up having a nice fail-over setup but no throughput increase. Of course you need to have two switches that support VLANs and preferably the same model not to have an imbalance in capabilities.

STEP 1: Start PowerShell

STEP 2: Elevate Powershell to administrator rights with the “Run as administrator” option

Start-Process powershell -Verb runAs

STEP 3: Create a new Bond0 NIC Teaming using the New-NetLbfoTeam command line:

PS C:\WINDOWS\system32> New-NetLbfoTeam -Name Bond0 -TeamMembers “Ethernet”,”Ethernet 4″,”Ethernet 5″
Name : Bond0
Members : {Ethernet, Ethernet 5, Ethernet 4}
TeamNics : Bond0
TeamingMode : SwitchIndependent
LoadBalancingAlgorithm : Dynamic
Status :

STEP 4: Wait until Windows installs the necessary files then verify the configuration

PS C:\WINDOWS\system32> ipconfig

Windows IP Configuration

Ethernet adapter Bond0:

Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::1c37:50c1:7916:ac5d%35
IPv4 Address. . . . . . . . . . . : 192.168.2.103
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.2.1

Wireless LAN adapter Wi-Fi:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :

Wireless LAN adapter Local Area Connection* 3:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :

Ethernet adapter VirtualBox Host-Only Network:

Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::dd25:84cd:17a8:f7cb%4
IPv4 Address. . . . . . . . . . . : 192.168.56.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :

Ethernet adapter Ethernet 2:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :

Ethernet adapter Ethernet 3:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :

Ethernet adapter Bluetooth Network Connection:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :

Tunnel adapter Teredo Tunneling Pseudo-Interface:

Connection-specific DNS Suffix . :
IPv6 Address. . . . . . . . . . . : 2001:0:9d38:90d7:2cf9:31d7:3f57:fd98
Link-local IPv6 Address . . . . . : fe80::2cf9:31d7:3f57:fd98%2
Default Gateway . . . . . . . . . : ::

Tunnel adapter isatap.{44D06439-F7BF-4648-87DC-CFC6979C44F3}:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :

Tunnel adapter isatap.{5A0DF3F9-721A-4883-A4A1-5820C7492B4D}:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :

You notice now that we have only one active adapter “Bond0” teaming all three interfaces.

Welcome to the 3Gbps Windows machine, well not like that but at least in reality it goes a little over 2Gbps and so being able to keep up with the nas servers.

Update: Looks like this was an “error” it means a feature MS forgot to ask money for. As a conclusion this feature instroduced by “mistake” was removed from Wondows 10.
The same works as intended in the Windows Server versions.

See bellow the official response from MS:

There are no native LBFO capabilities on Win10. Microsoft does not support client SKU network teaming.

It was a defect in Windows 10 build 10240 that “New-NetLbfoTeam” wasn’t completely blocked on client SKUs. This was an unintentional bug, not a change in the SKU matrix. All our documentation continued to say that NIC Teaming is exclusively a feature for Server SKUs.

While the powershell cmdlet didn’t outright fail on client, LBFO was in a broken and unsupported state, since the client SKU does not ship the mslbfoprovider.sys kernel driver. That kernel driver contains all the load balancing and failover logic, as well as the LACP state machine. Without that driver, you might get the appearance of a team, but it wouldn’t really do actual teaming logic. We never tested NIC Teaming in a configuration where this kernel driver was missing.

In the 10586 update (“Fall update”) that was released a few months later, “New-NetLbfoTeam” was correctly blocked again.

In the 14393 update (“Anniversary update”), we continued blocking it, but improved the error message.

The bottom line is that customers should NOT attempt to create teams on client SKU. It is NOT supported on client SKU, and never has been. Classic NIC Teaming continues to be supported in Windows Server 2016.

(Edit) NIC Teaming however can be done using 3rd party software, just the native LBFO teaming available from Microsoft is not supported on client SKUs.

Adam Rudell | Windows Networking Beta | Microsoft Corporation

Contribute to this site maintenance !

This is a self hosted site, on own hardware and Internet connection. The old, down to earth way 🙂. If you think that you found something useful here please contribute. Choose the form below (default 1 EUR) or donate using Bitcoin (default 0.0001 BTC) using the QR code. Thank you !

€1.00

Exit mobile version