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