Bonding Issues using systemd-networkd

Kernels & Hardware, configuring network, installing services

Bonding Issues using systemd-networkd

Postby rinosh » 2021-01-05 13:15

Using Debian Stretch
I have 2 issues:

    Issue 1.
I am using below configuration for bonding (bond1), here 2 interfaces are used for boding eno1 and eno2. Somehow I cannot enforce the active-slave to use the hardware mac address of primary slave i.e. eno1.
If I do not specify a Mac Address manually it will always default to one assigned by the OS. Same mac address is assigned by the OS across all my test servers (3 numbers) and it is creating network issues where I can see connection drop and some cases system is not available at all.

How can I enforce bond1 to use the mac address of eno1 without manually assigning it under [Link] section?

Configuration for reference
Code: Select all
root@deb-test-1:/usr# cat /etc/systemd/network/bond1.netdev     
[NetDev]
Name=bond1
Description=Bonding
Kind=bond

[Bond]
Mode=active-backup
PrimaryReselectPolicy=always
MIIMonitorSec=1s


Code: Select all
root@deb-test-1:/usr# cat /etc/systemd/network/bond1.network
[Match]
Name=bond1

[Network]
Address=192.168.1.12
Gateway=192.168.1.1

#[Link]
#MACAddressPolicy=persistent
#MACAddress=12:34:56:78:1a:1a
#MACAddress=12:34:56:78:1a:1b
#MACAddress=12:34:56:78:1a:1c
#NamePolicy=mac


Code: Select all
root@deb-test-1:/usr# cat /etc/systemd/network/eno1-slave.network
[Match]
Name=eno1

[Network]
Bond=bond1
ActiveSlave=true
PrimarySlave=true

Code: Select all
root@deb-test-1:/usr# cat /etc/systemd/network/eno2-slave.network
[Match]
Name=eno2

[Network]
Bond=bond1

    Issue 2.
I do have a LB in front that performs a round-robin distribution (REST API calls) to my servers (Debian 9 with above configuration and [Link] section enabled with different mac address assigned to each (i.e. 1a to 1c). When the load increases I can see that in my client machine (i.e. Debian 9 servers used as application servers) lot of SYN_SENT getting piled up. My LB is switch-cum-LB (Serveriron ADX 1008-1-PREM) which is configured to have Full Duplex, Auto Negotiation: On and Speed set to 1000Mbps. When I queried the bond1 using ethtool bond1 it shows the following results:

Settings for bond1:
Supported ports: [ ]
Supported link modes: Not reported
Supported pause frame use: No
Supports auto-negotiation: No
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Speed: 1000Mb/s
Duplex: Full
Port: Other
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Link detected: yes

Do I need to enable Auto-Negotiation in bond1 also, if so how to do it, please help.
rinosh
 
Posts: 2
Joined: 2020-12-21 02:24

Re: Bonding Issues using systemd-networkd

Postby rinosh » 2021-01-06 12:16

Somehow for Issue 1 after few trial and error able to assign one of the slaves mac address to bond1. But unable to set FailOverMACPolicy to follow, setting it will always default to mac address assigned by OS (bond1 won't take the slave mac address).

Code: Select all
[NetDev]
Name=bond1
Description=Bonding
Kind=bond

[Bond]
Mode=active-backup
PrimaryReselectPolicy=always
MIIMonitorSec=1s
UpDelaySec=1s
DownDelaySec=1s
FailOverMACPolicy=active
rinosh
 
Posts: 2
Joined: 2020-12-21 02:24


Return to System configuration

Who is online

Users browsing this forum: No registered users and 14 guests

fashionable