Leiten Sie den Verkehr nach Zielnetzwerk über ein anderes Gateway

9

Ich habe mehrere Gateways und möchte je nach Ziel etwas Verkehr von verschiedenen Gateways aus leiten. Ich schätze, ich müsste eine Kombination aus iproute2- und iptables-Regeln verwenden, bin mir aber nicht sicher, wo ich anfangen soll.
Kann jemand ein Beispiel geben?

Walter
quelle

Antworten:

9

Sie können wahrscheinlich tun, was Sie wollen mit ip route:

ip route add 8.8.8.8 via 10.0.0.1 dev enp3s8
ip route add 10.0.0.0/24 dev eth0

Die erste ip route addzeigt eine einzelne IP-Adresse, die über eine bestimmte Ethernet-Schnittstelle (ep3s8) an den nächsten Hop-Router 10.0.0.1 gesendet wird

Die zweite Route ist für ein ganzes Netzwerk, 10.xyz, das eine bestimmte Ethernet-Karte, eth0, verschickt. Das ist das "lokale Netzwerk", das keinen Next-Hop-Router hat. Es befindet sich alle auf derselben logischen Leitung.

Sie möchten jedoch lesen, man ip-routebevor Sie etwas tun. Seien Sie auch darauf vorbereitet, einen Neustart durchführen zu müssen, und tun Sie dies nicht remote. Sie können sehr leicht falsche Routen erstellen, die Ihren Fernzugriff beenden. Ich bin die Stimme der Erfahrung in dieser letzten Empfehlung.

Bruce Ediger
quelle
1
Beachten Sie, dass Sie auch Gateways für ganze Blöcke angeben können: `` ip route add 10.1.0.0/16 via 192.168.0.1`
bis
Vielen Dank für Ihre Antwort, die mir helfen wird, in die richtige Richtung zu weisen. Ich werde es versuchen und dich wissen lassen.
Walter
5

Was Sie fragen, ist policy-based routingoder source-based routing. Es gibt eine ausgezeichnete Einführung von David Schwartz auf derselben Seite.

Ich möchte darauf hinweisen, dass es hier auch ein hübsches kleines Programm gibt, mit dem Sie bestimmte Anwendungen an eine bestimmte Schnittstelle binden können. Dies ist natürlich einfach mit Apps wie openssh, die Optionen zum Binden an die gewünschte Höradresse haben. Mit dieser Bibliothek können Sie jedoch auch Anwendungen ohne solche Optionen (wie Firefox) an eine bestimmte IP-Adresse binden.

Auf diese Weise können Sie auswählen, ob Sie separate Routing-Tabellen für alle Anwendungen bereitstellen oder dieselben Spezifikationen pro Anwendung überschreiben möchten.

MariusMatutiae
quelle
Sie benötigen kein Richtlinienrouting, wenn Sie nach Ziel routen möchten.
Diego Woitasen
Hallo, das ist auch ein guter Punkt, hmm, der eine größere Flexibilität ermöglicht, die wahrscheinlich weiter fortgeschritten ist, als ich an diesem Punkt sein möchte. Auf jeden Fall etwas zu lernen.
Walter
3

Ein guter Ort, um mehr über Quell-Basis-Routing zu erfahren, ist Linux Advanced Routing & Traffic Control.
Sie können auch Handbücher lesen

man ip rule
man ip route

Im Allgemeinen sollten Sie die Regel hinzufügen (ich habe die Schnittstelle eth1 nur zu Demonstrationszwecken hinzugefügt, sie kann weggelassen werden).

#ip rule add dev eth1 to 170.10.0.10 table 2 priority 20000

Hier sind:
dev eth1 - Gerät, das zum Senden von Paketen
an 170.10.0.10 verwendet wird - die Zieltabelle
2 - Tabelle, in der Sie die
Priorität Ihrer Routen festlegen sollten 20000 - Priorität der Regel

Sie können Ihre Regel durch sehen

#ip ru sh
    0: from all lookup local
20000: from all to 170.10.0.10 iif eth1 lookup 2
32766: from all lookup main
32767: from all lookup default

Als Nächstes sollten Sie die Routen wie gewohnt hinzufügen, aber Sie sollten die Tabelle (Tabelle 2) angeben, in der Sie die Route platzieren würden

#ip route add table 2 via 170.10.0.1 default

Um Ihre Routen zu sehen, sollten Sie laufen

#ip route show ta 2
vasily-vm
quelle