Wie ist das Routing-Verhalten bei zwei oder mehr Standardrouten?

7

Ich habe zurzeit zwei ISPs, die mit demselben Computer verbunden sind. Ich habe beide standardmäßig in die Routing-Tabelle aufgenommen. Es wird jedoch nur eine Verbindung verwendet.

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    303    0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    303    0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     303    0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     303    0        0 eth1

Wie kann ich die Verkehrslast zwischen den beiden ISPs ausgleichen?

Tomas
quelle

Antworten:

8

Das HOWTO für Linux Advanced Routing & Traffic Control enthält einen Abschnitt zur Beschreibung des Problems.

Der wichtigste Schritt, um den Verkehr zwischen den beiden Routen auszugleichen, besteht darin, beiden ein Gewicht zu geben.

ip route add default scope global \
    nexthop via 192.168.0.1 dev eth1 weight 1 \
    nexthop via 192.168.1.1 dev eth0 weight 1
bbaja42
quelle
Die beiden Endpunkte dieser Routen verwenden offensichtlich NAT. Wenn er den Verkehr zwischen den Routen ausgleicht, wird er schrecklich unterbrochen, da jedes Gateway Verkehr für NAT-Einträge empfängt, die es nicht kennt oder versteht.
David Schwartz
Soweit ich weiß, werden die Routen zwischengespeichert. Anfragen für z. B. www.google.com werden immer über denselben Endpunkt gesendet.
bbaja42
Ab Linux 3.6 werden Routen nicht mehr zwischengespeichert, der gesamte Caching-Code für IPv4 wurde entfernt: kernelnewbies.org/Linux_3.6#Networking . Diese Lösung für Multihomed kann also nicht mehr so ​​funktionieren, wie sie ist.
AB
0

Ab Linux 3.6 werden Routen nicht mehr zwischengespeichert, der gesamte Caching-Code wurde für IPv4 entfernt . Diese Lösung für Multihomed kann also nicht mehr so ​​funktionieren, wie sie ist.

Das ist genau richtig

~$ uname -a
Linux 4.9.0-12-amd64 #1 SMP Debian 4.9.210-1 (2020-01-20) x86_64 GNU/Linux

aber jessie funktioniert

~$ uname -a
Linux 3.16.0-10-amd64 #1 SMP Debian 3.16.81-1 (2020-01-17) x86_64 GNU/Linux
MHS
quelle