Ich richte derzeit eine Umgebung an zwei Standorten ein. Alle Server sind Linux/Ubuntu. Der erste Standort ist mein Büro und der zweite Standort ist AWS. Ich habe zwei Server in AWS innerhalb eines VPC mit Site-to-Site-VPN Web01 – 172.31.24.106 Revproxy01 – 172.31.17.216
Ich habe 1 Server und 1 IP-Kamera im Büro Server1 - 192.168.102.1 Kamera1 - 192.168.102.79
Das VPN befindet sich auf Server1 (IPSec Strongswan) und ist so konfiguriert, dass auf der AWS-Seite eine Verbindung zu einem AWS-Site-to-Site-VPN hergestellt wird.
Nach viel Recherche und Zeitaufwand habe ich alles zum Laufen gebracht. Web01 und Revproxy01 können Server1 anpingen und Server1 kann Web01 und Revproxy01 anpingen.
Mein nächster Schritt ist, Camera1 von Web01 und RevProxy01 aus anpingen zu können. Ich möchte schließlich auf den HTTP-Feed der Kameras von Web01 und Revproxy01 zugreifen.
Ich glaube, ich muss das Routing (auf Server01) einrichten, um die Daten von Web01 über Server1 an Camera01 zu übergeben.
Ich wäre sehr dankbar, wenn mir jemand helfen und mir zeigen könnte, wie das geht.
Antwort1
OK, ich weiß nicht, wie gut Sie verstehen, wie Routing funktioniert, also werde ich versuchen, es zu erklären, und wir werden sehen, wie viel Sinn Sie aus meiner Erklärung ziehen können. Die Erklärung ist nicht ganz korrekt, da sich in Wirklichkeit mehr Räder drehen, aber sie sollte genügen.
Bei jedem Hop im Netzwerk prüft der IP-Stack jedes eingehende IP-Paket. Er vergleicht dieZielIP-Adresse mit ihrer Routing-Tabelle. Sie können diese Routing-Tabelle mit sehen ip route
.
Zuerst wird geprüft, ob die IP des Pakets einer seiner eigenen Schnittstellen entspricht. Wenn dies der Fall ist, ist das Paket für den Hop selbst bestimmt und der Hop „schluckt“ das Paket (schiebt es den Stapel hinauf, z. B. in Richtung des TCP-Stapels).
Wenn das Paket nicht für den Hop selbst bestimmt war, prüft und durchläuft der Hop seine eigene Routing-Tabelle von der signifikantesten Route zur am wenigsten signifikanten. A /24
sagt Ihnen, dass 24 von 32 Bits signifikant sind. A /16
wäre dann weniger signifikant. Im Fall des ip route
IP-Stacks würde die IP-Adresse des Pakets von unten nach oben mit den angezeigten Routen verglichen. Die erste Route, die mit der IP des Pakets übereinstimmt, gewinnt. Wenn also die Routing-Tabelle mit einer Ziel-IP 192.168.102.10 durchlaufen wird, wird die Route 192.168.0.0/16 mit dem Paket übereinstimmen. Eine Route von 192.0.0.0/16 wird dies nicht tun. Sie können das sipcalc
Tool verwenden, um Ihre Netzwerkadressinformationen anzuzeigen.
Die letzte passende Route ist die Standardroute, die zu allem passt.
Jede Route enthält den nächsten Hop, an den das Paket gesendet wird. Sie können den nächsten Hop vielleicht besser in sehen /sbin/route -n
. Es ist die Spalte „Router“ oder die Spalte „Schnittstelle“, je nachdem, ob das Netzwerk, das die Route darstellt, direkt an eine Netzwerkschnittstelle angeschlossen ist, die auf dem Hop vorhanden ist oder nicht.
Wenn ein Paket durch einen VPN-Tunnel geht, wird das IP-Paket in ein anderes Paket eingewickelt. Für Sie zählen also nur die internen IPs des VPN-Eintritts- und des Austrittspunkts. Das Paket landet am Eintrittspunkt und landet „wie von Zauberhand“ am Austrittspunkt.
Sie sollten jetzt in der Lage sein, bei jedem Hop zu bestimmen, welchen Pfad das Paket nehmen soll, einschließlich der Quell- und Ziel-Hops. Wenn es nicht den gewünschten Pfad nimmt, müssen Sie eine entsprechende Route hinzufügen. Das kann eine Single-Host-Route sein, also so etwas wie 192.168.102.79/32
(alle Bits sind signifikant! Passt nur zu einem einzigen Host!). Sehen Sie sich einige Beispiele dafür an ip route add
.
Sie möchten außerdem die Pakete beobachten, die die Hops durchlaufen. Sie können tcpdump -n -i interface
hierfür beispielsweise verwenden tcpdump -n -i eth0
. Wenn Sie also sehen, dass ein Paket Hop1 durchläuft und Sie meinen, es sollte zu Hop2 gehen, Sie es aber nicht Hop2 durchlaufen sehen, sind die Routen auf Hop1 wahrscheinlich falsch und senden das Paket an das falsche Ziel.
Auf diese Weise sollten Sie in der Lage sein, jede Routing-Tabelle Hop für Hop zu analysieren, von der Quelle bis zum Ziel, und zu sehen, welche Route das PaketsollenFühren Sie jeden Hop durch, fügen Sie ggf. Routen hinzu, damit das Paket den richtigen Weg nimmt, und überprüfen Sie mit , ob dies tatsächlich der Fall ist tcpdump
.
Beachten Sie, dass sowohl die Routen von der Quelle zum ZielUndzurück müssen richtig konfiguriert sein.
Bedenken Sie, dass eine falsche Route dazu führen kann, dass die Maschine über das Netzwerk nicht mehr erreichbar ist. Daher sollten Sie eine Möglichkeit haben, die Maschine mit einem unabhängigen Mechanismus neu zu starten, anstatt über das Netzwerk.
Sobald Ihr Routing funktioniert, stellen Sie sicher, dass es einen Neustart übersteht. Beispielsweise indem Sie die neue Route dorthin schreiben /etc/network/interfaces
(der Ort, an dem Sie dies registrieren müssen, hängt davon ab, wie der Netzwerkstapel auf diesem Computer konfiguriert ist. Dies variiert stark zwischen verschiedenen Unix- und Linux-Distributionen usw.).
Ich hoffe das hilft Dir weiter.