Discussion:
[systemd-devel] Bonding wireless and wired internet connection makes my internet really slow
Doron Behar
2018-05-03 11:34:34 UTC
Permalink
Hi everyone,

I'm trying to bond my wireless and wired network interfaces using
`systemd-networkd`. Since I didn't want to put any configuration in
`/etc/systemd/network/` I don't fully understand, this is the
configuration I've ended up with:

$ cat /etc/systemd/network/10-bond0.netdev
[NetDev]
Name=bond0
Kind=bond

---

$ cat /etc/systemd/network/20-wired.network
[Match]
Name=enp0s25

[Network]
Bond=bond0

---

$ cat /etc/systemd/network/25-wireless.network
[Match]
Name=wlp2s0

[Network]
Bond=bond0

---

$ cat /etc/systemd/network/35-tethering.network
[Match]
Name=enp0s20u*

[Network]
Bond=bond0

---

$ cat /etc/systemd/network/40-bond0.network
[Match]
Name=bond0

[Network]
DHCP=yes

---

As opposed to the old configuration which works as fast as light:

$ cat /etc/systemd/network/20-wired.network
[Match]
Name=enp0s25

[Network]
DHCP=yes

---

$ cat /etc/systemd/network/25-wireless.network
[Match]
Name=wlp2s0

[Network]
DHCP=yes

---

$ cat /etc/systemd/network/35-tethering.network
[Match]
Name=enp0s20u*

[Network]
DHCP=yes

---

With the 1st configuration, If I reboot, I definitely have networking
capabilities but from some reason, after a while, browsing the web for
example, becomes extremely slow.

How can I debug this? Are there any best practices for the simplest
bonding configuration? What am I missing here?

BTW I've also encountered this post:
https://bbs.archlinux.org/viewtopic.php?id=195348 which seems to be
suggesting the exact same thing so it doesn't really helped me reading
it.
Kai Krakow
2018-05-04 21:46:15 UTC
Permalink
Post by Doron Behar
Hi everyone,
I'm trying to bond my wireless and wired network interfaces using
`systemd-networkd`. Since I didn't want to put any configuration in
`/etc/systemd/network/` I don't fully understand, this is the
$ cat /etc/systemd/network/10-bond0.netdev
[NetDev]
Name=bond0
Kind=bond
---
$ cat /etc/systemd/network/20-wired.network
[Match]
Name=enp0s25
[Network]
Bond=bond0
---
$ cat /etc/systemd/network/25-wireless.network
[Match]
Name=wlp2s0
[Network]
Bond=bond0
---
$ cat /etc/systemd/network/35-tethering.network
[Match]
Name=enp0s20u*
[Network]
Bond=bond0
---
$ cat /etc/systemd/network/40-bond0.network
[Match]
Name=bond0
[Network]
DHCP=yes
---
$ cat /etc/systemd/network/20-wired.network
[Match]
Name=enp0s25
[Network]
DHCP=yes
---
$ cat /etc/systemd/network/25-wireless.network
[Match]
Name=wlp2s0
[Network]
DHCP=yes
---
$ cat /etc/systemd/network/35-tethering.network
[Match]
Name=enp0s20u*
[Network]
DHCP=yes
---
With the 1st configuration, If I reboot, I definitely have networking
capabilities but from some reason, after a while, browsing the web for
example, becomes extremely slow.
How can I debug this? Are there any best practices for the simplest
bonding configuration? What am I missing here?
Do the wifi and cable network connect to the same router? Then it
probably doesn't know about the bonding and network packets start to
travel in circles after a while.

You may be able to fix this by setting the bond mode to failover
instead of balancing. I think the mode is called "active-backup". But
usually the other end of the bond needs to know about this, too.

Another mode which may work is "balance-xor" which usually allows
attaching bonding members to different switches on the other side.

The mode defaults to balance-rr which is probably incompatible with
your setup.

BTW: Bonding may not improve throughput and even hurt latency a lot if
you combine very different types on links, i.e. wifi and cable. So
"active-backup" may be the best way to do it here.
--
Regards,
Kai

Replies to list-only preferred.
Loading...