Aloha!
Wenn ich nicht irre hat der Router intern Routing-Tabellen gespeichert, der Server bekommt nur die offizielle IP mit, also geht die Anfrage zurück an den Router, der "schaut" in seiner Tabelle nach und sendet die Pakete entsprechend intern weiter. Aber wenn jetzt 2 Clients dieselbe Webseite öffnen, weiß ich nicht mehr, wie der Router das noch unterscheiden will, es ist ja nicht sicher das von der einen Adresse dieselben Daten an beide Clients kommen! Außerdem müßte der Browser dann JEDEN Request loggen, braucht etwas mehr Platz als so ein Router haben sollte, oder?
Bei echtem NAT (Network Adress Translation) hat der Router mehrere IP-Adressen zur verfügung und ersetzt z.B. die interne IP eines Rechners komplett durch eine neue externe IP. Damit können natürlich nicht mehr Rechner gleichzeitig online sein, wie externe IPs existieren. Da aber in diesem Fall nur eine einzige IP vorliegt, ist das Beispiel ohnehin unzutreffend.
Beim Masquerading führt der Router eine Tabelle, in der er verzeichnet, welche Requests von internen Rechnern er erhalten hat. Diese Requests leitet er als eigene Requests ins Internet - und zwar auf einem bestimmten Port. Die Antwort des Requests leitet er dann komplett an den internen Rechner zurück. Das klappt sowohl für einmalige Datenübermittlungen wie bei HTTP, als auch bei fortwährenden Verbindungen wie bei IRC.
Echtes FTP ist damit übrigens nicht direkt möglich, da bei FTP auch vom Server her Verbindungen zum Client aufgebaut werden, wenn z.B. Dateien runtergeladen werden sollen. Dafür gibt es passives FTP, bei dem der Client auf Anweisung vom Server weitere Verbindungen aufbaut, und natürlich Module für das Masquerading, welches die FTP-Verbindung analysiert und entsprechend eingehende Verbindungen ermöglicht. Ebenso sind die ganzen Filesharing-Dienste nur eingeschränkt benutzbar, da eingehende Verbindungen eben nicht standardmäßig möglich sind.
- Sven Rautenberg