Routing zwischen mehreren Subnetzen

Routing zwischen mehreren Subnetzen

Angenommen, ich möchte ein internes Netzwerk mit 4 Subnetzen erstellen. Es gibt keinen zentralen Router oder Switch. Ich habe ein „Verwaltungssubnetz“ zur Verfügung, um die Gateways in allen vier Subnetzen zu verbinden (192.168.0.0/24). Das allgemeine Diagramm würde folgendermaßen aussehen:

10.0.1.0/24 <-> 10.0.2.0/24 <-> 10.0.3.0/24 <-> 10.0.4.0/24

Mit anderen Worten: Ich konfiguriere in jedem Subnetz eine einzelne Linux-Box mit zwei Schnittstellen, einer 10.0.x.1 und einer 192.168.0.x. Diese fungieren als Gateway-Geräte für jedes Subnetz. Für jedes 10.x/24-Subnetz gibt es mehrere Hosts. Andere Hosts haben nur eine Schnittstelle als 10.0.xx zur Verfügung.

Ich möchte, dass jeder Host jeden anderen Host in jedem anderen Subnetz anpingen kann. Meine Frage ist zunächst: Ist das möglich? Und zweitens, wenn ja, brauche ich Hilfe beim Konfigurieren von iptables und/oder Routen. Ich habe damit experimentiert, kann aber nur eine Lösung finden, die Pings in eine Richtung zulässt (ICMP-Pakete sind nur ein Beispiel, ich hätte letztendlich gerne vollständige Netzwerkfunktionen zwischen Hosts, z. B. SSH, Telnet, FTP usw.).

Antwort1

Ok, Sie haben also fünf Netzwerke 10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24, 10.0.4.0/24und 192.168.0.0/24, und vier Boxen, die zwischen ihnen routen. Nehmen wir an, die Routing-Boxen haben die Adressen 10.0.1.1/192.168.0.1, 10.0.2.1/192.168.0.2, 10.0.3.1/192.168.0.3, und 10.0.4.1/192.168.0.4.

Sie müssen 10.0.x.0/24auf jeder Router-Box statische Routen zu den anderen Netzwerken hinzufügen, und zwar mit Befehlen wie diesen (BEARBEITET!):

# on the 10.0.1.1 box
ip route add 10.0.2.0/24 via 192.168.0.2
ip route add 10.0.3.0/24 via 192.168.0.3
ip route add 10.0.4.0/24 via 192.168.0.4

und die entsprechenden Routen auf den anderen Router-Boxen. Auf den Nicht-Routing-Boxen mit nur einer Schnittstelle legen Sie die Standardroute so fest, dass sie auf zeigt 10.0.x.1. Natürlich müssen Sie auch die statischen Adressen und Netzmasken auf allen Schnittstellen hinzufügen.

Beachten Sie auch, dass Linux standardmäßig nicht als Router fungiert. Sie müssen die Paketweiterleitung wie folgt aktivieren:

echo 1 > /proc/sys/net/ipv4/ip_forward

Die ipobigen Befehle machen die Einstellungen nicht dauerhaft. Wie das geht, hängt von der Distribution ab.

Wie gesagt, ich habe das nicht getestet und möglicherweise etwas vergessen.

Antwort2

Die zuvor akzeptierte Antwort vernachlässigt die Tatsache, dass jeder der vier Hosts, wenn er nur über zwei Schnittstellen verfügt, ohne einen zentralen Router oder Switch nur eine direkte Verbindung zu zwei Netzwerken herstellen kann.

Wenn er eine dieser beiden Schnittstellen für die Verbindung mit Clients in seinem eigenen Subnetz verwendet, steht ihm für die Verbindung mit den anderen drei Hosts nur eine Schnittstelle zur Verfügung.

Sie benötigen also einen zentralen Router oder Switch, um zwischen diesen vier Hosts zu wechseln, oder Sie benötigen mehr Schnittstellen auf jedem Host.

verwandte Informationen