NAPT (Network Address and Port Translation) konfigurieren

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
swobo
Beiträge: 2
Registriert: 09.11.2007 14:25:12

NAPT (Network Address and Port Translation) konfigurieren

Beitrag von swobo » 09.11.2007 14:45:07

Hallo Leute,

zu meiner Schande muss ich gestehen, dass ich mich iptables nicht wirklich auskenne. Trotzdem habe ich versucht einen NAPT-Router aufzusetzen und verzweifle gerade an der Konfiguration.

Ich habe Folgendes vor: 3 Rechner: Node1, Node2 und Node3, sollen von einem größeren Netz abgetrennt werden. Node2 und Node3 sollen nicht mit dem größeren Netz verbunden sein. Allerdings möchte ich mich aus dem großen Netz via SSH mit ihnen verbinden können. Zu diesem Zweck verfügt Node1 über 2 Netzwerkkarten (eth0 und eth1). eth0 hängt am größeren Netzwerk während eth1 mit einem Switch verbunden ist an dem auch Node2 und Node3 hängen.
Im kleinen abgetrennten Netz haben die Maschinen die IPs 192.168.255.x, wobei x die Nummer der Node darstellt.
Nun bin ich mit meiner Workstation im äußeren Netz und will eine SSH Verbindung auf Port 10000 auf Node1 starten. Diese geht nun bei Node1 an eth0 ein. Node1 "weiss" natürlich, dass das nicht sein SSH-Port ist und soll genau diese Session an 192.168.255.2:22, also dem SSH auf Node2 weiterleiten. Das ganze genauso mit Port 10001 und 192.168.255.3:22 für Node3. Ansonsten soll Node1 nicht dafür verwendet werden können um mit Node2 oder Node3 aus dem größeren Netz zu kommunizieren.

Bei aktivierten ip forwarding habe ich dabei folgende Befehle auf Node1 benutzt:

Code: Alles auswählen

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10000 -j DNAT --to 192.168.255.2:22
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10001 -j DNAT --to 192.168.255.3:22
Nun kommt ein echt witziger Effekt: Wenn ich mich per SSH auf Node1 an Port 10000 verbinde gelange ich zu Node2 :D
Wenn ich genau das gleiche mit Port 10001 mache kriege ich einen Connection Timeout. :(
Wenn ich mit SSH auf Node1 bin kann ich problemlos Node2 und Node3 pingen und mich auch per SSH auf diese verbinden. Die Kommunikation der drei Maschinen untereinander funktioniert also. 8O

Kann mir irgendjemand von euch weiterhelfen und sagen wo der Fehler liegen könnte? Das wär' echt super. Danke schonmal im vorraus.

Gruß an alle,

Swobo

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Beitrag von DynaBlaster » 11.11.2007 21:09:58

Hi,

hört sich auf den ersten Blick recht komisch an, das Verhalten. Sind Node2 und Node3 genau gleich konfiguriert? Ich könnte mir z.B. vorstellen, dass Node3 die Route zurück ins "grosse" Netz fehlt und deshalb nicht auf deine Anfragen aus diesem grossen Netz antworten kann - verwendest du evtl. nur bei Node2 192.168.255.1 (also eth1 von Node1) als Standard-Gateway? Oder hast du bei Node2 die Route für das "grosse" Netz "von Hand" eingetragen und das bei Node3 evtl. vergessen?

Theoretische wäre es auch möglich, dass du mittels iptables in der POSTROUTING-CHAIN die Pakete nur für Node2 mit SNAT/MASQUERADING "nattest" (falls du das überhaupt machst - bei richtig gesetzten Routen ist das ja nicht notwendig). Das würde denselben Effekt haben und zu einem fehlerhaften Rückweg der Pakete von Node3 führen.

swobo
Beiträge: 2
Registriert: 09.11.2007 14:25:12

Achja... Die Gateways

Beitrag von swobo » 19.11.2007 10:38:18

Hi,

du hattest recht. Ich dachte die Node2 und Node3 wären identisch konfiguriert. Bei Node3 fehlte allerdings die Route :oops:
Neben SSH kann man das gleiche auch mit VNC machen falls wer eine grafische Benutzeroberfläche nutzen will.
Danke für die Hilfe DynaBlaster :D

Gruß,

Swobo

Antworten