Ich habe ein crunchbang VM mit zwei Schnittstellen, eth0
und eth1
, von denen jede eine Verbindung zu einem OpenWRT VM ( eth0
sein 10.232.64.20
und
eth1
sein 10.232.65.20
). Ich verwende Network Manager und DHCP. Mein übergeordnetes Ziel ist es, mehrere ssh
Verbindungen zu haben und sie miteinander zu verbinden ifenslave
.
Standardmäßig ist eth1
(aus irgendeinem Grund) das Standard-Gateway:
user@crunchbang:~$ ip ro
default via 10.232.65.1 dev eth1 proto static
10.232.64.0/24 dev eth0 proto kernel scope link src 10.232.64.20
10.232.65.0/24 dev eth1 proto kernel scope link src 10.232.65.20
Ich habe eine Route hinzugefügt für eth0
:
user@crunchbang:~$ sudo ip route add default via 10.232.64.1 dev eth0 proto static metric 1
Dann habe ich zwei Routen:
user@crunchbang:~$ ip ro
default via 10.232.65.1 dev eth1 proto static
default via 10.232.64.1 dev eth0 proto static metric 1
10.232.64.0/24 dev eth0 proto kernel scope link src 10.232.64.20
10.232.65.0/24 dev eth1 proto kernel scope link src 10.232.65.20
Kommt aber ssh
nur raus über eth1
:
user@crunchbang:~$ ssh -b 10.232.64.20 [email protected]
ssh: connect to host 1.2.3.4 port 22: Connection timed out
user@crunchbang:~$ ssh -b 10.232.65.20 [email protected]
Enter passphrase for key '/home/user/.ssh/id_rsa':
Nach dem Ändern der eth0
Metrik habe ich:
user@crunchbang:~$ ip ro
default via 10.232.64.1 dev eth0 proto static metric 1
default via 10.232.65.1 dev eth1 proto static metric 2
10.232.64.0/24 dev eth0 proto kernel scope link src 10.232.64.20
10.232.65.0/24 dev eth1 proto kernel scope link src 10.232.65.20
Und jetzt ssh
raus nur über eth0
:
user@crunchbang:~$ ssh -b 10.232.64.20 [email protected]
Enter passphrase for key '/home/user/.ssh/id_rsa':
user@crunchbang:~$ ssh -b 10.232.65.20 [email protected]
ssh: connect to host 1.2.3.4 port 22: Connection timed out
Wie erzwinge ich ssh
die Verwendung einer Schnittstelle mit einer höheren Metrik?
Bearbeiten
Ich habe die Konfiguration in 4.2 implementiert und getestet . Routing für mehrere Uplinks / Anbieter im Linux Advanced Routing & Traffic Control HOWTO. Da die Konfiguration einfach ist und keine Fehler aufgetreten sind, zeige ich nur Code und Ergebnisse mit minimaler Erklärung.
root@crunchbang:~# ip route add 10.232.64.0/24 dev eth0 src 10.232.64.20 table T0
root@crunchbang:~# ip route add default via 10.232.64.1 table T0
root@crunchbang:~# ip route add 10.232.65.0/24 dev eth1 src 10.232.65.20 table T1
root@crunchbang:~# ip route add default via 10.232.65.1 table T1
root@crunchbang:~# ip route flush table main
root@crunchbang:~# ip route add 10.232.64.0/24 dev eth0 src 10.232.64.20
root@crunchbang:~# ip route add 10.232.65.0/24 dev eth1 src 10.232.65.20
root@crunchbang:~# ip rule add from 10.232.64.20 table T0
root@crunchbang:~# ip rule add from 10.232.65.20 table T1
root@crunchbang:~# ip route add default scope global nexthop via 10.232.64.1 dev eth0 weight 1 nexthop via 10.232.65.1 dev eth1 weight 1
Hier sind die generierten Routing-Tabellen:
root@crunchbang:~# ip route show table T0
default via 10.232.64.1 dev eth0
10.232.64.0/24 dev eth0 scope link src 10.232.64.20
root@crunchbang:~# ip route show table T1
default via 10.232.65.1 dev eth1
10.232.65.0/24 dev eth1 scope link src 10.232.65.20
root@crunchbang:~# ip ro
default
nexthop via 10.232.64.1 dev eth0 weight 1
nexthop via 10.232.65.1 dev eth1 weight 1
10.232.64.0/24 dev eth0 scope link src 10.232.64.20
10.232.65.0/24 dev eth1 scope link src 10.232.65.20
Bei dieser Konfiguration stellt ssh eine Verbindung über beide Schnittstellen her:
user@crunchbang:~$ ssh -b 10.232.64.20 [email protected]
Enter passphrase for key '/home/user/.ssh/id_rsa':
user@crunchbang:~$ ssh -b 10.232.65.20 [email protected]
Enter passphrase for key '/home/user/.ssh/id_rsa':
Es scheint jedoch, dass ich Network Manager verlieren muss. Wenn jemand erklären könnte, warum das eine schlechte Idee ist, oder vor Fallstricken warnen würde, würde ich es begrüßen.
Edit2
Das Entfernen von Network Manager verlief gut. Ich habe nur eine letzte Frage. Was ist die aktuelle Standardmethode zum Laden der Konfiguration beim Booten?
quelle
Antworten:
Erstens ist Ihre Lösung für das Problem gut. Zweitens hängt es vom Betriebssystem ab. Crunchbag basiert auf Debian, sodass diese Lösungen die Aufgabe erfüllen können:
/server/487939/permanently-adding-source-policy-routing-rules
Auf RHEL-basierten Systemen besteht auch die Möglichkeit,
<ifname>-rule
und hinzuzufügen<ifname>-route
.quelle