Datenverkehr zwischen überlappenden Subnetzen Linux weiterleiten / weiterleiten

475
Wesley Chalmers

Ich habe ein Netzwerk mit der folgenden Topologie konfiguriert:

Gateway (10.0.0.1) | tun0 | |-----------------------| 10.0.0.0/16 | | | tun0 | tun0 Host A (10.0.1.1) Host B (10.0.2.1) | wlan0 | wlan0 | | | 10.0.1.0/24 |----------------| 10.0.2.0/24 | | | | wlan0 | wlan0 | wlan0 Client A (10.0.1.2) Client B (10.0.2.2) Client C (10.0.2.3) 

Momentan können die Hosts A und B das Gateway und sich gegenseitig pingen. Ebenfalls. Jeder Client kann einen Ping an den direkt mit ihm verbundenen Host sowie die anderen mit diesem Host verbundenen Clients senden. Ich möchte jedoch, dass jedes Gerät in der Lage ist, alle anderen Geräte im Netzwerk zu pingen (z. B. kann Client A Client B, Host A Ping Client C usw.).

Ich habe verschiedene Methoden ausprobiert, um jeden Host so zu konfigurieren, dass die Paketweiterleitung zwischen Clients, anderen Hosts und dem Gateway möglich ist. Die erste Methode, die ich ausprobiert habe, ist die Verwendung von iptables auf jedem Host, um den Verkehr zwischen den Subnetzen weiterzuleiten. Ich habe zwar mit Tutorials wie diesem auf Adafruit Erfolg gehabt, um Clients das Ping der Hosts und des Gateways zu ermöglichen, diese erlaubten jedoch anderen Hosts nicht, die Clients zu pingen. Ich habe auch Lösungen wie diese probiert, um den Verkehr zwischen Subnetzen zu routen, aber sie scheinen mit überlappenden Subnetzen nicht zu funktionieren. Ich habe auch versucht, auf jedem Host eine Bridge-Schnittstelle zu erstellen, die tun0 und wlan0 überbrückt, ohne Erfolg.

Ich bin gerne bereit, die Konfiguration der IP-Adressen in diesem Netzwerk zu ändern, vorausgesetzt, dass alle Geräte die Verbindung zu allen anderen Geräten herstellen können.

0

1 Antwort auf die Frage

1
Wesley Chalmers

Die Lösung (die im Nachhinein schmerzlich offensichtlich erscheint) besteht darin, IP-Adressen wie folgt zuzuweisen:

 Gateway  | tun0 (10.0.0.1) | |-----------------------| 10.0.0.0/24 | | | tun0 (10.0.0.2) | tun0 (10.0.0.3) Host A Host B  | wlan0 (10.0.2.1) | wlan0 (10.0.3.1) | | | 10.0.2.0/24 |-------------------| 10.0.3.0/24 | | | | wlan0 (10.0.2.2) | wlan0 (10.0.3.2) | wlan0 (10.0.3.3) Client A Client B Client C 

Dadurch werden die Gateway- / Host-Verbindungen in ein separates Subnetz versetzt. In dieser Konfiguration funktionieren die Lernprogramme, in denen der Datenverkehr zwischen zwei Subnetzen geleitet wird. Routen müssen auf jedem Host und auf dem Gateway (z ip route add 10.0.3.0/24 via 10.0.3.1. B. ) konfiguriert werden .

Vielleicht sollte man hinzufügen, dass sich überlappende Subnetze * immer * ein Hinweis darauf sind, dass etwas mit der Netzwerktopologie schwerwiegend ist. Vermeiden, vermeiden, vermeiden. dirkt vor 5 Jahren 0