[LINUX] Richtlinienbasiertes Routing auf Computern mit mehreren Netzwerkkarten

Einführung

Ich bin auf Datenbanken spezialisiert, insbesondere auf PostgreSQL (?). Auf Wunsch richte ich das Netzwerk aber auch während des Studiums mit einem Aufkleber ein. Bei einem Linux-Computer mit mehreren Netzwerkkarten kommuniziert diesmal ein Computer mit nur einer Netzwerkkarte mit beiden Netzwerkkarten.

Was bedeutet das

Bitte beachten Sie die folgende Abbildung. 001.png

Das blaue LAN ist das Segment von 192.168.10.0/24 und das grüne LAN ist das Segment von 192.168.20.0/24.

Maschine A verfügt über zwei Netzwerkkarten, die jeweils mit Blau und Grün verbunden sind.

Maschine B hat nur eine Netzwerkkarte und ist nur mit dem grünen LAN verbunden.

Mit anderen Worten, mit dieser Netzwerkkonfiguration möchten wir etwa die folgende Abbildung ausführen.

002.png

Asymmetrisches Routing

Mit dieser Netzwerkkonfiguration kann ich nicht das tun, was ich tun möchte. Selbst wenn ich den Ping überspringe, kommt er nicht zurück. Warum passiert das? Beschreibt, was mit der Kommunikation von Maschine B zu Maschine A passiert.

Erstens weiß Maschine B nicht, wo sich die IP-Adresse "192.168.10.2" nicht im selben Segment befindet. Wechseln Sie in diesem Fall für Anfragen zum Standard-Gateway.

0003.png

Das Gateway leitet die Routing-Informationen an der Zieladresse an das Netzwerk weiter.

004.png

Wenn es Maschine A erreicht, versucht Maschine A, von NIC0 zu antworten, die das gleiche Segment wie das grüne Segment ist, mit dem die Quellmaschine B verbunden ist, anstelle der empfangenen NIC1. ** ** ** 005.png

Wenn Sie von NIC0 antworten, unterscheiden sich die empfangene Route und die gesendete Route. ** asymmetrisches Routing **. Und Linux verbietet dies standardmäßig und es wird keine Antwort an Maschine B zurückgegeben.

Zwei Maßnahmen

Es gibt zwei mögliche Gegenmaßnahmen.

Asymmetrisches Routing zulassen

Eine besteht darin, asymmetrisches Routing zu ermöglichen. Asymmetrisches Routing kann die Maschine jedoch fälschen. Daher ist es eine gute Idee, dies zuzulassen. Ich werde in diesem Artikel nicht darauf eingehen, aber wenn Sie dies zulassen möchten, suchen Sie nach ** rp_filter **.

Richten Sie statisches Routing ein

Klicken Sie hier für den Favoriten dieses Artikels. Kurz gesagt, was am Verhalten von Maschine A falsch ist, ist, dass es von NIC1 empfangen wurde, aber versucht, von NIC0 zu antworten. Wenn Sie es dann auf NIC1 erhalten, können Sie es zwingen, es von NIC1 zurückzugeben. Die Einstellungsmethode ist ** statisches Routing **.

Einrichtungsverfahren für statisches Routing

Ich möchte ein so genanntes richtlinienbasiertes Routing einrichten.

Zur Routing-Tabellendatei hinzufügen

Fügen Sie die folgenden zwei Zeilen zu / etc / iproute2 / rt_tables hinzu.

100     rule01
101     rule02

Erstellen Sie eine Regeldatei

Erstellen Sie im Verzeichnis / etc / sysconfig / network-scripts eine Regeldatei, die auf jede der Schnittstellen NIC0 und NIC1 angewendet werden soll.

# vi rule-nic0
from 192.168.20.2/32 table rule02 priority 200
# vi rule-nic1
from 192.168.10.2/32 table rule01 priority 100

Erstellen Sie eine Routing-Datei

Erstellen Sie außerdem im Verzeichnis / etc / sysconfig / network-scripts eine Routing-Datei, die für jede der Schnittstellen NIC0 und NIC1 gilt.

# vi route-nic0
192.168.20.0/24 dev nic0 table rule02
default via 192.168.20.254 dev nic0 table rule02
# vi route-nic1
192.168.10.0/24 dev nic1 table rule01
default via 192.168.10.254 dev nic1 table rule01

Starten Sie das Netzwerk neu

# systemctl restart network

Wenn die Einstellungen korrekt sind, sollten Sie in der Lage sein, Ihren ursprünglichen Zweck zu erreichen! Danke für deine harte Arbeit!

Beiseite

Bitte beachten Sie die folgende Abbildung.

006.png

Eine solche Kommunikation befindet sich innerhalb desselben Segments und kann problemlos durchgeführt werden. Abgesehen davon fragen Sie sich möglicherweise, ob Maschine A erreicht wurde, und müssen sich die Mühe machen, von einem anderen Netzwerksegment aus zu kommunizieren.

** Das denke ich auch. ** ** **

Aber ** ich habe keine andere Wahl, als es zu tun, wenn ich dazu aufgefordert werde. ** ** **

Es ist immer noch ein Rätsel, auch wenn es vorbei ist, welche Art von Zweck getan wurde, um so etwas zu tun.

Recommended Posts

Richtlinienbasiertes Routing auf Computern mit mehreren Netzwerkkarten
Mehrfachauswahl mit Jupyter
Verarbeitung mehrerer Dateien mit Kivy + Matplotlib + Draw Graph auf der GUI