NIC Teaming/Bonding/LACP
on the windows server side:
sever manager > local server top pain, left side > nic teaming > enabled add the nics you wish to bond bottom right corner > tasks > add team name your team
once applied, you will lose internet connect and gain a new IP. if you are doing this via RDP, use angry IP scanner or similar tools to find your server, RDP back in, and assign a static IP
After you complete the switch configuration, if the ports on the switch go amber, you lose connection to the server, and you see suspended ports in the logs or interface status of the switch, it is likely that windows has set the LACP bond back to “switch dependent”. Windows be dumb yo. Change it back to LACP under the server config, local, nic teaming, team1 properties.
if you ware not running a server edition of windows, I've found this powershell script works as well:
New-NetSwitchTeam -Name "SwitchTeam01" -TeamMembers "Ethernet","Ethernet 2", "Ethernet 3", "Ethernet 4"
run it from an elevated powershell prompt and replace the team name with your desired one, and ethernet 1-4 with your NIC names.
If you have at least one intel NIC , there is yet, another way LACP/nic teaming can be done.
ref: https://www.intel.com/content/www/us/en/support/articles/000005667/ethernet-products.html
install the intel pro set drivers, and make sure to check 'advanced network services'. once installed, open the intel pro set advanced configuration utility, and nic teaming should be available via GUI
if you have a linux server instead:
reference: https://help.ubuntu.com/community/UbuntuBonding
install the prerequisite packages (this assumes ubuntu, debian, or similar distros):
sudo apt-get install ifenslave
verify the module is loaded:
sudo nano /etc/modules
stop the network
sudo stop networking
load the bonding kernel module:
sudo modprobe bonding
configure your interfaces for the bond/team:
sudo nano /etc/network/interfaces
LACP bond example
# eth0 is manually configured, and slave to the "bond0" bonded NIC
auto eth0
iface eth0 inet manual
bond-master bond0
# eth1 ditto, thus creating a 2-link bond.
auto eth1
iface eth1 inet manual
bond-master bond0
# bond0 is the bonded NIC and can be used like any other normal NIC.
# bond0 is configured using static network information.
auto bond0
iface bond0 inet static
address 192.168.1.10
gateway 192.168.1.1
netmask 255.255.255.0
# bond0 uses standard IEEE 802.3ad LACP bonding protocol
bond-mode 4
bond-miimon 100
bond-lacp-rate 1
bond-slaves eth0 eth1
restart the network
sudo start networking
verify the bond
cat /proc/net/bonding/bond0
brining the bond up or down:
ifup bond0 ifdown bond0
another config example with more NICs:
root@Violet-Nas-01:/tmp# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
#LACP config
# eth0 is manually configured, and slave to the "bond0" bonded NIC
auto enp5s0
iface enp5s0 inet manual
bond-master bond0
# eth1 ditto, thus creating a 2-link bond.
auto enp6s0
iface enp6s0 inet manual
bond-master bond0
# eth2 ditto, thus creating a 3-link bond.
auto enp7s0
iface enp7s0 inet manual
bond-master bond0
# eth3 ditto, thus creating a 4-link bond.
auto enx000ec6a3f30f
iface enx000ec6a3f30f inet manual
bond-master bond0
# bond0 is the bonded NIC and can be used like any other normal NIC.
# bond0 is configured using static network information.
auto bond0
iface bond0 inet static
address 192.168.1.38
netmask 255.255.255.0
network 192.168.1.0
gateway 192.168.1.1
broadcast 192.168.1.255
dns-nameservers 192.168.1.33 208.67.222.222
# bond0 uses standard IEEE 802.3ad LACP bonding protocol
bond-mode 4
bond-miimon 100
bond-lacp-rate 1
bond-slaves enp5s0 enp6s0 enp7s0 enx000ec6a3f30f
bond-downdelay 200
bond-updelay 200
bond-xmit_hash_policy 1
root@Violet-Nas-01:/tmp#
on the switch side:
cisco configurations for port channel. change your channel number, interface range, vlan, and description to suit your deployment. if you are instead using a trunk port, remove the spanning tree line and vlan, and designate trunk.
conf t interface port-channel 5 interface rang gi1/0/36-39 channel-group 5 mode active spanning-tree portfast switchport access vlan 100 description sv3-hp no shut end
verify:
show etherchannel summary

Discussion