setup is fresh debian 11
Bonded connection (bond0) is created using all nmcli commands
sudo nmcli con add type bond con-name bondcon ifname bond0 mode active-backup +bond.options "primary=eth0,fail_over_mac=none,miimon=500,primary_reselect=always,updelay=200"
bond mode is active-backup Slave connections are added for Ethernet (bond-eth) and wifi (ssidname)
nmcli con add type ethernet con-name bond-eth slave-type bond master bond0 ifname eth0
same with wifi
bond0 is brought up, and the slaves are confirmed to be connected by:
ip a and by sudo watch cat /proc/net/bonding/bond0
As the ethernet cable is unplugged and plugged back in, the bond0 active slave is seen to change, and the ip a output shows the link failures and restorations.
HOWEVER!!
From another computer on the same network, the ping command to the ip address of the computer (which doesn't change as the slaves are connected and disconnected)... fails and succeeds predictably based on the cable being unplugged. If the active slave is the wifi... the ping succeeds (along with any other ip based tools, including ssh) and if the cable is plugged in... ping immediately fails.... until the cable is unplugged again and wifi becomes the active slave.
the only diagnostic item I can find, is that the mac address of the bond master (bond0), the ethernet slave, and the wifi slave are all being set to the same thing via the fail_over_man=none in the nmcli connection profile... and the condition where ping is working, is when the wifi is the active slave.
in other words, if the currently active slave's permanent mac address is the same the forced mac address via the failovermac option... the ping succeeds.
But! if the currently active slave's permanent mac address is not the same as the forced mac addresses via failovermac options... the ping fails.
This behavior is bizarre to me, because I thought ping was simply based on ip address resolution, period. But, of course, I could easily be conflating separate issues.
In case it's usefule, I'll note that hostname resolution is flaky in my network (behind a cheap att router). "dig targethostname" often gives stale information. I need to correct that as well... perhaps by moving to static ip addresses for my target computers.
Thanks, I've been hunting this for many hours, and no luck anywhere online.
See main story for details. every test I could find from lan computers, from ping to dig to nomachine remote protocols... the failure is clearly linked to the cable getting unplugged... which entirely defeats the purpose of bonding the interfaces to begin with.