Upgrading to a bond device is a common step when the server exhausts its current network port bandwidth.
The hardware setup of the bond example here is:
- two 10G network cards – ens1f0 and ens1f0
- bond name – bond0
- bond mode – 802.3ad – Link Aggregation Control Protocol (LACP)
The systemd reconfiguration procedure consists of:
- Stop the network target
systemctl stop network
- Set several configuration files – network device files for the network interfaces, bonding interface – master and slave devices.
- Start the network target
systemctl start network
*Note: the 802.3ad bonding mode needs aditional configuration in the switch of which the server is connected.
The example here is using CentOS 8 configuration file to make a permanent (i.e. persistent over reboots using the CentOS 8 network configuration files) bonding configuration.
Check out the official bonding documentation for all modes and options – https://www.kernel.org/doc/Documentation/networking/bonding.txt.
CONF 1) Configure the network interfaces.
The interface should be in down state in the configuration file.
Interface 1 – /etc/sysconfig/network-scripts/ifcfg-ens1f0:
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens1f0 UUID=3b399a23-570e-45ed-9369-4ff5b87efb2c DEVICE=ens1f0 ONBOOT=no
Interface 2 – /etc/sysconfig/network-scripts/ifcfg-ens1f1:
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens1f1 UUID=ecdc5d5b-9739-4424-9d67-362411974281 DEVICE=ens1f1 ONBOOT=no
CONF 2) Configure bonding master device – create a bonding group bond0
This device should be started up at boot.
Bonding device 1 – with name bond0 – /etc/sysconfig/network-scripts/ifcfg-Bond_connection_1:
BONDING_OPTS="downdelay=200 miimon=100 mode=802.3ad updelay=200" TYPE=Bond BONDING_MASTER=yes PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none IPADDR=10.10.10.10 PREFIX=24 GATEWAY=10.10.10.1 DNS1=10.10.10.2 DNS2=10.10.10.3 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_PRIVACY=no IPV6_ADDR_GEN_MODE=stable-privacy NAME="Bond connection 1" UUID=f0a35f9a-20e4-484e-850c-689128642555 DEVICE=bond0 ONBOOT=yes
BONDING_OPTS are specific options for the bonding group with name bond0 and the bonding mode is set here, too.
CONF 3) Configure bonding slave devices – the two network cards
Adding the two network cards to the bonding group bond0. These devices should be started up at boot.
Interface 1 – /etc/sysconfig/network-scripts/ifcfg-bond0_slave_1:
HWADDR=90:E2:BA:8A:13:8C TYPE=Ethernet NAME="bond0 slave 1" UUID=c49e0ced-6411-41fa-9a3b-a01a430664a7 DEVICE=ens1f0 ONBOOT=yes MASTER=bond0 SLAVE=yes
Interface 2 – /etc/sysconfig/network-scripts/ifcfg-bond0_slave_2:
HWADDR=90:E2:BA:8A:13:8D TYPE=Ethernet NAME="bond0 slave 2" UUID=90de1cad-1d9f-48cb-8e5a-7d8bfdde91d2 DEVICE=ens1f1 ONBOOT=yes MASTER=bond0 SLAVE=yes
Without configuring ip on bond nic..can we configure??
Probably, it will work without IP configuration, but why would like to have such bond interface?