How to setup bonding
Debian¶
Install ifenslave package:
apt-get install ifenslave
Edit /etc/network/interfaces file and change eth0 settings:
auto bond0
iface bond0 inet static
address x.x.x.x
netmask x.x.x.x
gateway x.x.x.x
dns-nameservers 78.24.12.150 217.16.191.70
dns-search vshosting.cz
bond-mode 802.3ad
bond-xmit-hash-policy layer3+4
bond-lacp-rate 1
bond-miimon 100
bond-downdelay 200
bond-updelay 200
slaves eth0 eth1
Ubuntu 18.04 and newer¶
Create /etc/netplan/config.yaml
with the following contents:
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: no
eno2:
dhcp4: no
bonds:
bond0:
addresses:
- XXX.XXX.XXX.XXX/YY
gateway4: XXX.XXX.XXX.XXX
nameservers:
addresses:
- 78.24.12.150
- 217.16.191.70
interfaces:
- eno1
- eno2
parameters:
mode: 802.3ad
mii-monitor-interval: 100
Then runnetplan apply
.
Ubuntu 16.04¶
The configuration steps are the same as with Debian.
Centos 7 and 8¶
First you have to enable automatic loading of the bonding support module.
modprobe --first-time bonding
Create ifcfg-bond0 file:
vi /etc/sysconfig/network-scripts/ifcfg-bond0
and insert
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=x.x.x.x
PREFIX=xx
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="miimon=100 mode=4 lacp_rate=1 xmit_hash=1 downdelay=200 updelay=200"
Configure both interfaces that we want to have in bonding (edit the highlighted line)
vi /etc/sysconfig/networks-scripts/ifcfg-encp0sX
HWADDR="08:00:27:04:03:86"
TYPE="Ethernet"
**BOOTPROTO="none"**
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s8"
UUID="a97b23f2-fa87-49de-ac9b-39661ba9c20f"
ONBOOT="yes"
MASTER=bond0
SLAVE=yes
Do the same also for the second interface.
Then start the interfaces
ifup ifcfg-enp0sX
If you use Network Manager, you'll need to reload the connection:
nmcli con reload
Finally, restart the network
systemctl restart network
Check the status of bonding
cat /proc/net/bonding/bond0
Centos 6.5¶
Create ifcfg-bond0 file,
vi /etc/sysconfig/network-script/ifcfg-bond0
and insert:
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
IPADDR=x.x.x.x
NETWORK=x.x.x.x
NETMASK=x.x.x.x
USERCTL=no
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1 xmit_hash=1 downdelay=200 updelay=200"
Create bonding.conf file
vi /etc/modprobe.d/bonding.conf
and insert
alias bond0 bonding
Edit settings for eth0:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth1
MASTER=bond0
SLAVE=yes
USERCTL=no
ONBOOT=yes
BOOTPROTO=none
Same for eth1.
Run:
modprobe bonding
service network restart
And check the status of bonding:
cat /proc/net/bonding/bond0