Diese Seite wurde von http://www.wh-netz.de/knowledgebase/PortForwarding.de.htm gedruckt.
Alle Inhalte unterliegen dem Copyright von WH-Netz e.V.
DE

Portforwarding / Offene Ports

siehe auch: ExterneIPs, DBSelfService

Manchem User mit 10er-IP stellt sich die Frage, ob er auch von außerhalb des Wohnheimnetzes auf seinen Rechner zugreifen kann. Erfreulicherweise ist die Antwort "ja".

Früher hieß die Lösung des Problems Portforwarding. Heute kann jeder eine externe IP einem bestimmten internen Rechner zuordnen und zusätzlich offene Ports beantragen. Die Funktionsweisen sollen knapp erklärt werden:

Externe IP & Offener Port

Die externe IP ist (als zweite IP) direkt auf dem Rechner. In der Firewall wird der Port direkt (für das gewünschte Protokoll) geöffnet. Der entsprechende Dienst kann dann direkt mit [externe IP]:[Port] genutzt werden.

Konfiguration

Windows

Scheinbar kann Windows nicht mit /32 IPs umgehen. Ein Workarround ist, das Prefix etwas größer zu wählen (/30) damit er es frisst. Allerdings sind die benachbarten IPs in diesem Subnetz dann nicht erreichbar.

Linux

sudo ip address add [externe IP]/32 dev ethX

# Falls es auch beim Reboot passieren soll, in /etc/network/interfaces bei ethX etwa folgendes hinzufügen:
up ip addr add dev ethX [externe IP]/32 || true

# ggf. Firewall aufmachen

Mac OS X

  1. Systemeinstellungen öffnen -> Netzwerk wählen
  2. Auf das + in der Liste klicken, Anschluss "Ethernet" auswählen, einen fantasievollen Dienstnamen eingeben und auf Erstellen klicken.
  3. Die eben erstellte Verbindung auswählen, im Konfiguration DropDown -Menu "Manuell" Auswählen
  4. Bei IP-Adresse die dir zugewiesene externe IP eingeben.

Bild3.png Bild5.png Bild6.png Bild7.png Bild8.png

DBSelfService

Im DBSelfService findet sich eine Seite speziell zur externen Erreichbarkeit, mit den eigenen IP(s) und den dafür geöffneten Port(s).

Portforwarding (obsolete)

Portforwardings sind durch obige Lösung ersetzt worden.

Funktionsweise

Zugegriffen wird nicht auf den Rechner direkt, sondern auf einen bestimmten Port des Routers des jeweiligen 10er-Netzes. Der Router leitet den Zugriff weiter auf den passenden Port des Zielrechners. Die Pakete, die der Rechner zurückschickt, müssen vom Router ebenfalls bearbeitet werden; und zwar werden IP und Portnummer des Rechners durch die IP und die Nummer des Forwarding-Ports auf dem Router ersetzt. Fuer das Internet sieht es also so aus, als ob der Datentransfer nicht mit dem Rechner im 10er-Netz, sondern ausschliesslich mit dem Router stattfindet. Portforwarding (DNAT - Destination NaT) ist also das Gegenstück zum Masquerading (SNAT - Source NaT); wie bei diesem werden die 10er-Netze vor dem Internet "versteckt".

Beispiel

Hier ein kleines Beispiel, wie ein Portforwarding-Zugriff per SSH ablaufen könnte (die IPs und die Forwarding-Portnummer sind willkürlich gewählt):

Fuer den Rechner von User Heinz mit der IP 10.11.12.13 ist Portforwarding auf den SSH-Port 22 eingerichtet.

Der Router des 10.11er-Netzes hat die IP 141.70.120.70 die Forwarding-Portnummer sei 4711. Heinz sitzt z.B. im Physik-CipPool am Rechner "poirot" und will sich auf seinen Rechner im Wohnheimnetz einloggen.

Er startet SSH mit

ssh -p 4711 heinz@141.70.120.70

SSH baut nun eine Verbindung zum Port 4711 des 10.11er-Routers auf. Der Router durchsucht die Portforwarding-Tabelle, findet den Eintrag fuer Port 4711 (weiterleiten auf Port 22 von IP 10.11.12.13) und schickt das Paket weiter. Das Antwort-Paket von 10.11.12.13:22 wird vom Router umgeschrieben auf 141.70.120.70:4711 und zurück an "poirot" geschickt -- die Verbindung ist aufgebaut. Alle folgenden Pakete werden ebenso behandelt.

I Attachment Action Size Date Who Comment
pngpng Bild3.png manage 126.8 K 23 Jun 2008 - 18:46 Main.christoph  
pngpng Bild5.png manage 102.7 K 23 Jun 2008 - 18:48 Main.christoph  
pngpng Bild6.png manage 97.1 K 23 Jun 2008 - 18:49 Main.christoph  
pngpng Bild7.png manage 96.3 K 23 Jun 2008 - 18:49 Main.christoph  
pngpng Bild8.png manage 87.2 K 23 Jun 2008 - 18:49 Main.christoph