Netzwerk für Anfänger: Was ist Port Forwarding

Was ist Port Forwarding und wofür wird es verwendet?

Es gibt viele Fragen zur Port-Weiterleitung, aber es scheint keine zu geben, die klar sagt, was es ist und wofür es verwendet wird. Also:

Was ist Port Forwarding?

Wofür wird es verwendet und warum sollte ich es brauchen?

Die Grundlagen

Um die Port-Forwarding wirklich zu erklären, müssen Sie zuerst ein wenig mehr darüber verstehen, was Ihr Router macht. Ihr Internet Service Provider weist Ihrer Internetverbindung eine IP-Adresse zu. Alle Computer im Internet benötigen eine eindeutige IP-Adresse, aber Sie haben mehrere Computer in Ihrem Haus und nur eine Adresse. Wie funktioniert das also?

Wenn Sie wissen, was es ist und einfach nur wissen wollen, wie man es macht: http://portforward.com/ hat eine Anleitung mit Screenshots für buchstäblich Hunderte von verschiedenen Routern. Die Dokumentation befindet sich hinter einer Werbeseite für ihr automatisches Portconfig-Tool. (Klick dich einfach ein wenig herum und du wirst es finden.) was ist port forwarding

NAT – Was ist das? Warum verwenden wir es?

Ihr Heimrouter verfügt über eine eingebaute Funktion namens Network Address Translation, kurz NAT. Innerhalb Ihres Netzwerks haben Computer Adressen wie 192.168.1.100. Alle Adressen im Bereich 192.168.* (oder im Bereich 10.*) sind „private“ oder „reservierte“ Adressen. Diese Adressen werden von der IANA offiziell für die Verwendung in privaten Netzwerken vergeben. Ihr Router weist jedem über DHCP verbundenen Computer automatisch eine solche Adresse zu. Diese Adressen beschreiben, wie Computer in Ihrem Netzwerk mit dem Router und untereinander kommunizieren.

Ihr Router verfügt über eine separate Netzwerkschnittstelle, die ihn mit dem Internet verbindet. Diese Schnittstelle hat eine sehr unterschiedliche Adresse, die von Ihrem ISP vergeben wird. Dies ist die eine Adresse, die ich bereits erwähnt habe, und Ihr Router verwendet sie, um mit anderen Computern im Internet zu kommunizieren. Computer innerhalb Ihres Netzwerks haben nicht routbare private IP-Adressen, was bedeutet, dass, wenn sie Pakete direkt ins Internet senden, die Pakete automatisch fallen gelassen werden (Pakete mit privaten Adressen dürfen aus Stabilitätsgründen nicht durch das Internet laufen). Aber Ihr Router hat eine routingfähige Adresse. Network Address Translation, wie der Name schon sagt, übersetzt zwischen diesen beiden Arten von Adressen, so dass die mehreren Computer innerhalb Ihres Netzwerks im Internet als ein Computer mit einer Adresse erscheinen.

Die Details

Obwohl dies kompliziert klingen mag, ist es eigentlich ziemlich einfach, wie Ihr Router es macht. Jedes Mal, wenn ein Computer in Ihrem Netzwerk eine Verbindung zu einem Computer im Internet herstellen möchte, sendet er die Verbindungsanforderung an den Router (er weiß, dass er sie an den Router senden muss, da sein Parameter Default Gateway auf die Adresse des Routers gesetzt ist). Der Router nimmt dann diese Verbindungsanforderung (eine „SYN-Anfrage“ in TCP/IP) und ändert die Quelladresse (die „Antwort- oder Rückgabeadresse“) und ändert sie von der privaten IP-Adresse des Computers auf die öffentliche IP-Adresse des Routers, so dass die Antwort an den Router gesendet wird. Dann nimmt er in einer Datenbank (der so genannten NAT-Tabelle) zur Kenntnis, dass die Verbindung hergestellt wurde, damit er sich später daran erinnert.

Wenn die Antwort vom entfernten Computer (ein „SYN-ACK“) zurückkommt, schaut der Router in seiner NAT-Tabelle nach und sieht, dass eine Verbindung zu diesem Host auf diesem Port zuvor von einem privaten Computer in Ihrem Netzwerk initiiert wurde, ändert die Zieladresse auf die private Adresse des Computers und leitet sie innerhalb Ihres Netzwerks weiter. Auf diese Weise können Pakete weiterhin zwischen Netzwerken hin und her übertragen werden, wobei der Router die Adressen transparent ändert, damit es funktioniert. Wenn die Verbindung beendet wird, entfernt der Router sie einfach aus der NAT-Tabelle.

Oder stellen Sie es sich so vor

Dies könnte mit einer Metapher etwas einfacher zu visualisieren sein – nehmen wir an, Sie sind eine Spedition in den USA, die mit chinesischen Kunden arbeitet. Sie müssen Pakete an viele Kunden in den USA versenden, aber es ist einfacher für den Zoll und die Papierindustrie, Pakete nur an einen Ort zu versenden. So kommt ein Paket von einem Ihrer Kunden in China (in diesem Beispiel das private Netzwerk) mit einem tatsächlichen Ziel irgendwo in den USA (das Internet) zu Ihnen. Sie ändern das Adressaufkleber auf der Box auf die US (öffentliche) Adresse, und Sie ändern die Rücksendeadresse auf Ihre eigene öffentliche Adresse (da sie nicht direkt nach China zurückgegeben werden kann, ohne den Kunden zu belästigen) und geben sie an die Post weiter. Wenn der Kunde das Produkt zurückgibt, kommt es zu Ihnen. Du schaust es in deinen Aufzeichnungen nach und siehst, von welcher Firma in China es kam, und änderst das Ziel auf diese Firma (seine Privatadresse) und die Absenderadresse auf deine Privatadresse, so dass sie einen Ersatz durch dich zurückschicken können.

Das funktioniert großartig, aber es gibt ein kleines Problem. Was ist, wenn ein Kunde etwas an das Unternehmen schicken muss, z.B. eine Geldanweisung als Zahlung für etwas? Oder, sagen wir, dass ein Computer im Internet eine Verbindung mit dem Router (eine SYN-Anfrage) initiiert, z.B. zu einem Webserver, der sich im Netzwerk befindet. Der Brief/Paket hat nur die öffentliche Adresse des Routers, so dass der Router eigentlich nicht weiß.