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.
Bitte beachten Sie die folgende Abbildung.
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.
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.
Das Gateway leitet die Routing-Informationen an der Zieladresse an das Netzwerk weiter.
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. ** ** **
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.
Es gibt zwei mögliche Gegenmaßnahmen.
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 **.
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 **.
Ich möchte ein so genanntes richtlinienbasiertes Routing einrichten.
Fügen Sie die folgenden zwei Zeilen zu / etc / iproute2 / rt_tables hinzu.
100 rule01
101 rule02
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 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
# 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!
Bitte beachten Sie die folgende Abbildung.
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.