Bonding doesn't work

Hello All,

I try to create a bonding on my system everything is OK on the switch (Aruba 1830) the trunk is up and the 2 interfaces are active and on the system everything is OK about network configuration too.
On my system I’ve 4 interfaces, one is used in a VLAN, there are identical.
I tried 2 modes LACP and LOADBALANCE but none work.
I checked my BIOS configuration everything is OK, secure boot is disabled.

Below log of the system :
root@truenas[~]# cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v6.12.33-production+truenas

Bonding Mode: load balancing (xor)
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0

Slave Interface: enp3s0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: a8:b8:e0:06:23:5e
Slave queue ID: 0

Slave Interface: enp4s0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: a8:b8:e0:06:23:5f
Slave queue ID: 0

Log of /var/log/messages :
Nov 10 10:58:34 truenas kernel: bond1: (slave enp3s0): Enslaving as an active interface with an up link
Nov 10 10:58:34 truenas kernel: bond1: (slave enp4s0): Enslaving as an active interface with an up link
Nov 10 10:58:37 truenas kernel: igc 0000:02:00.0 enp2s0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
Nov 10 10:58:37 truenas kernel: igc 0000:04:00.0 enp4s0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
Nov 10 10:58:41 truenas kernel: igc 0000:03:00.0 enp3s0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX

root@truenas[~]# ifconfig -a
bond1: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet X.X.X.X netmask 255.255.255.0 broadcast X.X.X.X
inet6 fe80::aab8:e0ff:fe06:235e prefixlen 64 scopeid 0x20
ether a8:b8:e0:06:23:5e txqueuelen 1000 (Ethernet)
RX packets 36 bytes 13110 (12.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 83 bytes 17696 (17.2 KiB)
TX errors 0 dropped 6 overruns 0 carrier 0 collisions 0

enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet X.X.X.X netmask 255.255.255.0 broadcast X.X.X.X
inet6 fe80::aab8:e0ff:fe06:235d prefixlen 64 scopeid 0x20
ether a8:b8:e0:06:23:5d txqueuelen 1000 (Ethernet)
RX packets 1377 bytes 211937 (206.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1122 bytes 196652 (192.0 KiB)
TX errors 0 dropped 1 overruns 0 carrier 0 collisions 0
device memory 0x83700000-837fffff

enp3s0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether a8:b8:e0:06:23:5e txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7 bytes 4882 (4.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0x82d00000-82dfffff

enp4s0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether a8:b8:e0:06:23:5e txqueuelen 1000 (Ethernet)
RX packets 36 bytes 13110 (12.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 76 bytes 12814 (12.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0x82300000-823fffff

enp5s0: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether a8:b8:e0:06:23:60 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0x81900000-819fffff

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 1127 bytes 171617 (167.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1127 bytes 171617 (167.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Thank you in advance for your help.

smokyrun

I don’t know LACP / Bonding that well, however, routing could be a problem. Some people are unaware that multiple network interfaces in the same sub-net won’t necessarily route as they expect.

You don’t list the IPv4 addresses of your “enp2s0” and “bond1” interfaces. But, if they are in the same sub-net, outbound traffic will likely only use the lower numbered address and it’s interface.

Now if both “enp2s0” and “bond1” are on different IPv4 sub-nets, then I don’t know what could be wrong.

Thank you for your reply, the interfaces enp2s0 and bond1 are in two different subnet, I don’t think that is a routing problem because if I remove the bond1 and configure a single interface with the same address than the bond1 everything works fine.
I know well bonding configuration, I can’t see what could be wrong, the configuration on the switch is OK, I rebooted both switch and the server but the problem persist.
As ether-channel is a software configuration the problem seems does’nt come from to the network devices.

In my experience bonding only works reliably if both ends speak LACP. That’s what I run everywhere including TrueNAS and it’s working as intended.

Why did you pick “xor”? Doesn’t the switch support LACP?

Yes the switch LACP and STATIC mode, on my screenshot I configured the TRUNK in STATIC mode with LOADBALANCE algorithm I tried the LACP mode but with the same issue.

This configuration is working perfectly well with a Mikrotik switch running RouterOS at the other end.

/interface bonding
add comment="TrueNAS CE" lacp-rate=1sec min-links=1 mode=802.3ad name=bonding1 slaves=ether21,ether22 transmit-hash-policy=layer-2-and-3

I have four 1 Gbps ports, one is configured for my iDrac, and the other three are bonded to a HP 2530-8G-PoEP Switch (J9774A) also Aruba with no issues.

I am on Truenas version 25.04.2.4.

Thank you for your replies, I add the same parameter as beside but I can’t access to the bond interface :
root@truenas[~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v6.12.33-production+truenas

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (2)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0

802.3ad info
LACP active: on
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: a8:b8:e0:06:23:5e
Active Aggregator Info:
Aggregator ID: 1
Number of ports: 2
Actor Key: 9
Partner Key: 1000
Partner Mac Address: 34:c5:15:cd:ca:40

Slave Interface: enp3s0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: a8:b8:e0:06:23:5e
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
system priority: 65535
system mac address: a8:b8:e0:06:23:5e
port key: 9
port priority: 255
port number: 1
port state: 63
details partner lacp pdu:
system priority: 1
system mac address: 34:c5:15:cd:ca:40
oper key: 1000
port priority: 1
port number: 1
port state: 61

Slave Interface: enp4s0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: a8:b8:e0:06:23:5f
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
system priority: 65535
system mac address: a8:b8:e0:06:23:5e
port key: 9
port priority: 255
port number: 2
port state: 63
details partner lacp pdu:
system priority: 1
system mac address: 34:c5:15:cd:ca:40
oper key: 1000
port priority: 1
port number: 2
port state: 61

root@truenas[~]# tail /var/log/messages
Nov 10 21:05:11 truenas kernel: bond1 (unregistering): (slave enp4s0): Releasing backup interface
Nov 10 21:05:11 truenas kernel: bond1 (unregistering): Released all slaves
Nov 10 21:06:30 truenas kernel: bond0: (slave enp3s0): Enslaving as a backup interface with a down link
Nov 10 21:06:30 truenas kernel: bond0: (slave enp4s0): Enslaving as a backup interface with a down link
Nov 10 21:06:33 truenas kernel: igc 0000:03:00.0 enp3s0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
Nov 10 21:06:33 truenas kernel: bond0: (slave enp3s0): link status definitely up, 1000 Mbps full duplex
Nov 10 21:06:33 truenas kernel: bond0: Warning: No 802.3ad response from the link partner for any adapters in the bond
Nov 10 21:06:33 truenas kernel: bond0: active interface up!
Nov 10 21:06:37 truenas kernel: igc 0000:04:00.0 enp4s0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
Nov 10 21:06:37 truenas kernel: bond0: (slave enp4s0): link status definitely up, 1000 Mbps full duplex

On the messages log I have this message “truenas kernel: bond0: Warning: No 802.3ad response from the link partner for any adapters in the bond
The configuration is OK and very easy on the Aruba switch.

My Truenas version is : 25.10.0 - Goldeye

Hello All,

Everything works fine now, the problem come from about an incorrect configuration on the switch, I created a new VLAN (2) I added the 2 ports in this VLAN but the Trunk configuration stayed in VLAN 1.
Thank you for your replies and your help, now everything works as I want :grinning_face:

smokyrun

1 Like