Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

network bonding on Debian/Trixie

201 views
Skip to first unread message

Gary Dale

unread,
Oct 16, 2023, 5:10:06 PM10/16/23
to
I'm trying to configure network bonding on an AMD64 system running
Debian/Trixie. I've got a wired connection and a wifi connection, both
of which work individually. I'd like them to work together to improve
the throughput but for now I'm just trying to get the bond to work.
However when I configure them, the wifi interface always shows down.

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: enp10s0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq
master bond0 state UP group default qlen 1000
    link/ether 3c:7c:3f:ef:15:47 brd ff:ff:ff:ff:ff:ff
4: wlxc4411e319ad5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
group default qlen 1000
    link/ether c4:41:1e:31:9a:d5 brd ff:ff:ff:ff:ff:ff
7: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc
noqueue state UP group default qlen 1000
    link/ether 3c:7c:3f:ef:15:47 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.20/24 brd 192.168.1.255 scope global bond0
       valid_lft forever preferred_lft forever
    inet6 fe80::3e7c:3fff:feef:1547/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever

It does this even if I pull the cable from the wired connection. The
wifi never comes up.

Here's the /etc/network/interfaces file:

auto lo
iface lo inet loopback

auto enp10s0
iface enp10s0 inet manual
    bond-master bond0
    bond-mode 1

auto wlxc4411e319ad5
iface wlxc4411e319ad5 inet manual
    bond-master bond0
    bond-mode 1

auto bond0
iface bond0 inet static
    address 192.168.1.20
    netmask 255.255.255.0
    network 192.168.1.0
    gateway 192.168.1.1
    bond-slaves enp10s0 wlxc4411e319ad5
    bond-mode 1
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200


I'd like to get it to work in a faster mode but for now the backup at
least allows the networking to start without the wifi. Other modes seem
to disable networking until both interfaces come up, which is not a good
design decision IMHO. At least with mode 1, the network starts.

Any ideas on how to get the wifi to work in bonding?

Igor Cicimov

unread,
Oct 16, 2023, 7:00:06 PM10/16/23
to
Hi,

Probably your wifi card does not support MII, check with:

~]# ethtool  wlxc4411e319ad5 | grep "Link detected:"

and:

~]# cat /proc/net/bonding/bind0

Gary Dale

unread,
Oct 16, 2023, 9:20:07 PM10/16/23
to

I'm assuming that no output is bad here. Still, I don't see why a device that works shouldn't be able to participate in a bond. As a network interface, the wifi device produces and responds to network traffic. Are you saying the bonding takes place below the driver level?


Igor Cicimov

unread,
Oct 16, 2023, 9:30:06 PM10/16/23
to
On Tue, Oct 17, 2023 at 12:12 PM Gary Dale <ga...@extremeground.com> wrote:
On 2023-10-16 18:52, Igor Cicimov wrote:
Hi,
I'm saying the bonding driver is doing its own link detection on the presented interfaces for failover purposes. It can use ARP or MII. You can not enable MII on an interface that does not support that functionality. Use mii-tool to check both interfaces and see the difference.
 

Gary Dale

unread,
Oct 17, 2023, 10:20:07 AM10/17/23
to
On 2023-10-16 21:20, Igor Cicimov wrote:
On Tue, Oct 17, 2023 at 12:12 PM Gary Dale <ga...@extremeground.com> wrote:
On 2023-10-16 18:52, Igor Cicimov wrote:
Hi,

Apparently neither interface supports it. According to what I have read, calling mii-tool with no parameters should return a terse list of all interfaces that support it. However, when I try that, I get "No interface specified". Moreover,

# mii-tool  enp10s0
SIOCGMIIPHY on 'enp10s0' failed: Operation not supported

# mii-tool wlxc4411e319ad5
SIOCGMIIPHY on 'wlxc4411e319ad5' failed: Operation not supported

which seems weird given that I have a recent, mainstream ASUS mainboard with a generic realtek onboard NIC that seems to be participating in the bonding.

I've also not seen any warnings that bonding requires a specific (and apparently rare) type of NIC. Indeed, my laptop seems to fail over nicely between ethernet and wifi.

Perhaps mii-tool is broken on Trixie?


Igor Cicimov

unread,
Oct 17, 2023, 7:30:06 PM10/17/23
to


On Wed, Oct 18, 2023 at 7:34 AM Darac Marjal <maili...@darac.org.uk> wrote:
I use systemd-networkd to configure bonding in the same way. I use the
"active-backup" mode and one parameter that I don't *think* you've set
is the "primary".  According to
https://www.kernel.org/doc/Documentation/networking/bonding.txt, you'd
set "primary" to the interface which is always active if it's available.
So you probably want to set "bond-primary enp10s0" so that the system
will switch to the cable when it's connected; when the cable disconnects
it should switch over to the wifi. Without "primary" being set, I
suspect the system doesn't have any motivation to prefer the cable when
both are connected.

As mentioned before check

$ cat /proc/net/bonding/bond0

and if the status of the interface(s) in there is "down" then that's it it is down and you will never see it being promoted into primary.

Regarding mii-toll this is from my ubuntu 22.04 server interfaces from dual port PCIe card:

# mii-tool enp2s0f0
enp2s0f0: negotiated 1000baseT-FD flow-control, link ok
# mii-tool enp2s0f1
enp2s0f1: negotiated 1000baseT-FD flow-control, link ok

hence my bonding works with mii-mon enabled (albeit in LACP mode but the concept is the same).


0 new messages