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


Es gibt viele Fragen dazu 'Port-Weiterleitung' aber es scheint keinen zu geben, der klar angibt, was es ist und wofür es gebraucht wird. Damit:

  1. Was ist Portweiterleitung?

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


191


Ursprung


Ich denke, das ist gut genug: portforward.com/help/portforwarding.htm - Koray Tugay


Antworten:


Die Grundlagen

Um Port Forwarding wirklich zu erklären, müssen Sie zuerst ein wenig mehr darüber verstehen, was Sie tun Router tut. Ihr Internet Service Provider weist zu ein IP-Adresse zu Ihrer Internetverbindung. 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?

Wenn Sie wissen, was es ist und nur wissen wollen, wie es geht: http://portforward.com/ hat ein How-To mit Screenshots für buchstäblich Hunderte von verschiedenen Routern. Die Dokumentation ist dort hinter einer Ad-Page für ihr automatisches Portconfig-Tool versteckt. (Klicken Sie einfach ein bisschen an und Sie werden es finden.)

NAT - Was ist das? Warum benutzen wir es?

Ihr Heimrouter verfügt über eine integrierte Funktion namens Network Address Translation (NAT). In Ihrem Netzwerk haben Computer Adressen wie 192.168.1.100. Alle Adressen im Bereich 192.168. * (Oder im 10. *) sind "Privatgelände" oder "reserviert" Adressen. Diese Adressen werden von der IANA offiziell zugewiesen, um sie in privaten Netzwerken zu verwenden. Ihr Router vergibt automatisch eine solche Adresse an jeden angeschlossenen Computer DHCP. Mit diesen Adressen kommunizieren Computer in Ihrem Netzwerk mit dem Router und miteinander.

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 in Ihrem Netzwerk haben nicht routingfähig private IP-Adressen, das heißt, wenn Pakete direkt an das Internet gesendet werden, werden die Pakete automatisch gelöscht (Pakete mit privaten Adressen dürfen das Internet aus Stabilitätsgründen nicht durchqueren). Aber dein Router hat eine routingfähig Adresse. Network Address Translation, wie der Name schon sagt, übersetzt zwischen diesen beiden Arten von Adressen, so dass die mehreren Computer innerhalb Ihres Netzwerks dem Internet als ein Computer mit einer Adresse angezeigt werden.

Die Details

Obwohl das kompliziert klingen mag, ist es ziemlich einfach, wie Ihr Router es tut. 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 ihn an den Router senden muss) Standard-Gateway Parameter ist auf die Adresse des Routers eingestellt). Der Router nimmt dann diese Verbindungsanforderung (eine "SYN-Anfrage" in TCP / IP) und ändert die Quelladresse (die "Antwortadresse" oder die Antwortadresse) und ändert sie von der privaten IP des Computers zu der öffentlichen IP der Router, so dass die Antwort an den Router gesendet wird. Es notiert sich dann in einer Datenbank (genannt der NAT-Tabelle) dass die Verbindung initiiert wurde, damit sie sich später daran erinnert.

Wenn die Antwort vom Remote-Computer zurückkommt (ein "SYN-ACK"), sucht der Router in seiner NAT-Tabelle und stellt fest, dass eine Verbindung zu diesem Host an diesem Port zuvor von einem privaten Computer in Ihrem Netzwerk initiiert wurde Adresse an die private Adresse des Computers und leitet sie in Ihrem Netzwerk weiter. Auf diese Weise können Pakete weiterhin zwischen Netzwerken hin- und herwechseln, wobei der Router die Adressen transparent so ändert, dass sie funktionieren. Wenn die Verbindung beendet wird, entfernt der Router sie einfach aus der NAT-Tabelle.

Oder denken Sie so darüber nach

Dies könnte mit einer Metapher ein wenig einfacher zu visualisieren sein - sagen wir, Sie sind ein Spediteur in den USA, der mit chinesischen Kunden arbeitet. Sie müssen Pakete an viele Kunden in den USA senden, aber es ist einfacher für Zoll- / Papierarbeit-Gründe, Pakete nur an einen Ort zu senden. So kommt ein Paket von einem Ihrer Kunden in China (das private Netzwerk in diesem Beispiel) mit einem tatsächlichen Ziel irgendwo in den USA (das Internet). Sie ändern das Adressschild auf der Verpackung in die US-Adresse (öffentliche Adresse) und ändern die Rücksendeadresse in Ihre eigene öffentliche Adresse (da sie nicht direkt nach China zurückgeschickt werden kann, ohne den Kunden zu belästigen) und übergeben sie an die Post . Wenn der Kunde das Produkt zurücksendet, kommt es zu Ihnen. Sie suchen in Ihren Unterlagen nach und sehen, aus welcher Firma in China sie stammt, und ändern Sie das Ziel zu dieser Firma (ihre private Adresse) und die Rücksendeadresse an Ihre private Adresse, damit sie durch Sie einen Ersatz zurückschicken können.

Das funktioniert großartig, aber es gibt ein kleines Problem. Was ist, wenn ein Kunde etwas an die Firma senden muss, sagen wir eine Zahlungsanweisung für etwas? Oder, sagen wir, dass ein Computer im Internet eine Verbindung mit dem Router initiiert (eine SYN-Anfrage), sagen wir zu einem Webserver, der sich im Netzwerk befindet. Der Brief / das Paket enthält nur die öffentliche Adresse des Routers, so dass der Router nicht weiß, wohin er es senden soll! es könnte für irgendeinen der Computer im privaten Netzwerk oder für keines von ihnen bestimmt sein. Sie haben dieses Problem möglicherweise beim Anruf eines Privattelefons erlebt - wenn sie Sie anrufen, ist das kein Problem, aber wenn Sie sie anrufen, können sie nicht wissen, wer angerufen werden soll, damit die falsche Person antwortet.

Während es für Menschen leicht genug ist, dies zu beheben, ist es für Computer viel schwieriger, da nicht jeder Computer in Ihrem Netzwerk alle anderen Computer kennt.

Und schließlich kommen wir zum Port Forwarding

Port Forwarding ist, wie wir dieses Problem beheben: es ist eine Möglichkeit, Ihrem Router mitzuteilen, an welchen Computer innerhalb des Netzwerks eingehende Verbindungen weitergeleitet werden sollen. Wir haben drei verschiedene Möglichkeiten, dies zu tun:

  • Faux-DMZ: Viele Router haben eine Funktion namens DMZ. Dies steht für Demilitarized Zone, eine Art Netzwerksicherheitskonfiguration. Die DMZ auf Heim-Routern wird oft als faux-DMZ bezeichnet, da sie die Merkmale einer tatsächlichen DMZ nicht aufweist. Was es tut, ist die einfachste Art der Behandlung eingehender Verbindungen: Alle eingehenden Verbindungsanforderungen werden an eine in Ihrem Netzwerk festgelegte Verbindung gesendet. Es ist tot einfach - Sie geben eine IP-Adresse in die Konfiguration Ihres Routers ein und alle eingehenden Verbindungen gehen dorthin. Dies funktioniert jedoch nicht immer, da möglicherweise mehrere Computer eingehende Verbindungen akzeptieren müssen. Dafür haben wir ...
  • Port Forwarding: Alle Netzwerkverbindungsanforderungen enthalten einen "Port". Der Port ist nur eine Nummer, und es ist ein Teil davon, wie ein Computer weiß, was das Paket ist. IANA hat angegeben, dass Port 80 für HTTP verwendet wird. Dies bedeutet, dass ein eingehendes Paket mit der Port-Nummer 80 eine Anfrage sein muss, die für einen Webserver vorgesehen ist. Bei der Port-Weiterleitung auf Ihrem Router können Sie eine Portnummer (oder möglicherweise einen Bereich oder eine Kombination von Nummern, abhängig vom Router) und eine IP-Adresse eingeben. Alle eingehenden Verbindungen mit einer übereinstimmenden Portnummer werden an den internen Computer mit dieser Adresse weitergeleitet.
  • UPnP Port Forwards: UPnP Forwarding funktioniert genau wie Port Forwarding, aber anstatt es einzurichten, setzt Software auf einem Computer innerhalb des Netzwerks den Router automatisch so, dass er Datenverkehr auf einem bestimmten Port an diesen weiterleitet.


Ein Beispiel

Sehen wir uns ein Anwendungsbeispiel an. Bei vielen Multiplayer-Videospielen (z. B. Counter Strike) können Sie einen Spielserver auf Ihrem Computer ausführen, mit dem sich andere Personen verbinden können, um mit Ihnen zu spielen. Ihr Computer kennt nicht alle Personen, die spielen möchten. Daher kann er keine Verbindung zu ihnen herstellen. Stattdessen müssen sie neue Verbindungsanforderungen aus dem Internet an Ihren Computer senden.

Wenn Sie auf dem Router nichts eingerichtet haben, würde es diese Verbindungsanforderungen erhalten, aber es würde nicht wissen, welcher Computer im Netzwerk den Spielserver hatte, also würde es sie einfach ignorieren (oder genauer gesagt, es würde senden Zurück ein Paket, das anzeigt, dass es keine Verbindung herstellen kann). Glücklicherweise kennen Sie die Portnummer, die auf Verbindungsanforderungen für den Spieleserver steht. Auf dem Router legen Sie also einen Port mit der Portnummer fest, die der Spielserver erwartet (zB 27015) und der IP-Adresse des Computers mit dem Gameserver (zum Beispiel 192.168.1.105).
Der Router kann die eingehenden Verbindungsanforderungen im Netzwerk an 192.168.1.105 weiterleiten, und Computer außerhalb können sich verbinden.

Ein anderes Beispiel wäre ein lokales Netzwerk mit zwei Rechnern, wobei das zweite mit der IP 192.168.1.10 eine Webseite mit Apache hostet. Daher sollte der Router eingehende Port 80-Anforderungen an diesen Computer weiterleiten. Mithilfe der Portweiterleitung können beide Maschinen gleichzeitig im selben Netzwerk ausgeführt werden.

Port Forwarding Example

Videospiele sind vielleicht der am häufigsten verwendete Ort, an dem Benutzer jeden Tag mit Port-Forwarding konfrontiert werden, obwohl die meisten modernen Spiele UPnP verwenden, so dass Sie dies nicht manuell tun müssen (stattdessen ist es vollautomatisch). Sie müssen dies tun, wann immer Sie sich direkt mit etwas in Ihrem Netzwerk verbinden möchten (anstatt über einen Vermittler im Internet). Dies kann den Betrieb Ihres eigenen Webservers oder die Verbindung über das Remote Desktop Protocol mit einem Ihrer Computer beinhalten.

Ein Hinweis zur Sicherheit

Eines der netten Dinge an NAT ist, dass es einige mühelose, integrierte Sicherheit bietet. Eine Menge Leute wandern im Internet auf der Suche nach Maschinen, die anfällig sind ... und sie tun dies, indem sie versuchen, Verbindungen mit verschiedenen Ports zu öffnen. Dies sind eingehende Verbindungen. Daher wird der Router sie wie oben beschrieben löschen. Dies bedeutet, dass in einer NAT-Konfiguration nur der Router selbst anfällig für Angriffe mit eingehenden Verbindungen ist. Dies ist eine gute Sache, weil der Router viel einfacher ist (und somit weniger anfällig ist) als ein Computer, auf dem ein volles Betriebssystem mit viel Software läuft. Sie sollten also bedenken, dass Sie durch die DMZ-Aktivierung eines Computers in Ihrem Netzwerk (als DMZ-Ziel) diese Sicherheitsstufe für diesen Computer verlieren: Er ist jetzt vollständig für eingehende Verbindungen aus dem Internet geöffnet, also müssen Sie sichern Sie es, als wäre es direkt verbunden. Wenn Sie einen Port weiterleiten, wird der empfangsseitige Computer natürlich an diesem bestimmten Port anfällig. Stellen Sie daher sicher, dass Sie aktuelle Software ausführen, die gut konfiguriert ist.


282



+1. Vielen Dank für so einen tollen kurzen Kurs. Grüße, - Xavierjazz
Jetzt fügen wir einige Grafiken hinzu! - slhck
Schöne Grafik. Gute Arbeit, Scheiße. - jcrawfordor
Sie haben es kurz erwähnt, aber Sie möchten vielleicht auf die Bedeutung der Verwendung von Port-Forwarding im DMZ-Stil eingehen. Ich kann mir keine einzige Instanz vorstellen, bei der es in einer Produktionsumgebung eine gute Idee wäre, etwas wie einen SQL-Server (oder was auch immer) der Außenwelt auszusetzen. Die Portweiterleitung kann es ermöglichen, geschützte Ressourcen zu erhalten, ohne die Sicherheit ernsthaft zu gefährden. - Brian Vandenberg
Ein Detail, das im NAT-Abschnitt nicht erweitert wird, ist die Tatsache, dass, wenn die Computer in Ihrem Netzwerk DHCP verwenden, um ihre internen nicht-routbaren privaten IP-Adressen zu erhalten, die zugewiesene variieren kann und wenn das passiert, wird die Portweiterleitung versaut werden. Es empfiehlt sich, dies zu vermeiden, indem Sie die Netzwerkadressierung jedes Computers manuell einrichten. portforward.com betont die Wichtigkeit von diesem und hat eine Anleitung, die beschreibt, wie man eine statische IP-Adresse auf einem System einrichtet, sie erwähnen jedoch nicht die Notwendigkeit, auch das DHCP des Routers zu konfigurieren, um diese nun reservierten NAT-Adressen zu vermeiden. - martineau