Going from a one interface setup, to two bonded:
Before:
nano /etc/systemd/network/25-wired.network
[Match]
Name=eno1
[Network]
Address=172.20.20.2/24
Gateway=172.20.20.1
Create the netdev bond file /etc/systemd/network/25-bond1.netdev
.
nano /etc/systemd/network/25-bond1.netdev
[NetDev]
Name=bond1
Kind=bond
#default is "balance-rr" (round robin)
[Bond]
#Mode="balance-rr
Create network for bond.
nano /etc/systemd/network/25-bond1.network
[Match]
Name=bond1
[Network]
Address=172.20.20.2/24
Gateway=172.20.20.1
Select interfaces.
nano /etc/systemd/network/20-eno1.network
[Match]
Name=eno1
[Network]
Bond=bond1
nano /etc/systemd/network/25-enp5s0.network
[Match]
Name=enp5s0
[Network]
Bond=bond1
Restart network:
systemctl restart systemd-resolved systemd-networkd
Check if functional:
Before:
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 eno1 ether routable configured
3 enp5s0 ether off unmanaged
4 virbr0 ether no-carrier unmanaged
5 virbr0-nic ether off unmanaged
5 links listed.
After:
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 bond0 ether off unmanaged
3 bond1 ether routable configured
4 eno1 ether carrier configuring
5 enp5s0 ether no-carrier configuring
6 virbr0 ether no-carrier unmanaged
7 virbr0-nic ether off unmanaged
7 links listed.
Note: systemd
automatically creates bond0, it can be ignored.
Status:
cat /proc/net/bonding/bond1
cat /proc/net/bonding/bond1 john@chin
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eno1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 74:d0:2b:7d:2b:eb
Slave queue ID: 0
Slave Interface: enp5s0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:1b:21:63:1f:4d
Slave queue ID: 0
Note: DNS using systemd-resolved
config in /etc/systemd/resolved.conf
References
https://kerlilow.me/blog/setting-up-systemd-networkd-with-bonding/#setting-up-the-bond https://www.freedesktop.org/software/systemd/man/systemd.netdev.html https://www.reversengineered.com/2014/08/21/setting-up-bonding-in-systemd/