Der Linux-Kernel vor Version 3.6 verwendete Routing-Caching für IPv4-Multipath-Routing, was bedeutete, dass das Routing zwischen zwei separaten Leitungen / ISPs recht einfach war. Ab 3.6 wurde der Algorithmus in "Paketweise" geändert, was bedeutete, dass einige Tricks zur Routentabelle / Regel / iptables-Markierung erforderlich waren, um die beiden Leitungen / ISPs zu erreichen.
Wenn Sie jedoch zwei Leitungen mit demselben ISP hatten, die eine einzelne IP auf Paketbasis pro Paket in ausgeglichener / Failover-Weise weiterleiten konnten, konnten Sie ab 3.6 aufgrund von IP6 problemlos eine Leitungsbindung (auf IP-Ebene) erreichen das Routing pro Paket in beide Richtungen.
Ab 4.4 wechselte der Kernel erneut zu einem flussbasierten Lastausgleich basierend auf einem Hash über die Quell- und Zieladressen.
Ich verwende derzeit Kernel 4.4.36 und verwende Multipath-Routing über PPPoE-Verbindungen. Mein Downstream-Verkehr vom ISP wird pro Paket über die beiden separaten Leitungen geleitet (eine IP wird über beide Leitungen weitergeleitet). Dies gibt mir eine Download-Geschwindigkeit, die schneller ist als die Geschwindigkeit einer einzelnen Zeile. Fast die Geschwindigkeit beider Linien addiert. Es funktioniert wirklich gut, Skype-Video, VoIP (UDP), YouTube usw. funktionieren alle hervorragend.
Aufgrund dieser guten Downstream-Erfahrung möchte ich es Upstream ausprobieren, aber mein Upstream-Verkehr wird gemäß dem neueren flussbasierten Algorithmus über beide ppp-Geräte (die dieselbe IP-Adresse haben) geleitet. Dies bedeutet, dass ich keine Upload-Geschwindigkeit erreichen kann, die schneller ist als die Geschwindigkeit einer einzelnen Zeile.
Gibt es eine Möglichkeit, den aktuellen Kernel für die Verwendung des Paketalgorithmus zu konfigurieren? Oder eine andere Methode, um ein Multipath-Routing pro Paket zu erreichen? Muss ich zu einem älteren Kernel zurückkehren (was ich aus verschiedenen anderen Gründen nicht tun möchte)?
Mein ISP unterstützt keine Multi-Link-PPP.
Falls es relevant ist, verwende ich derzeit Arch Linux ARMv7 auf einem Raspberry Pi 3.