Das Grundproblem ist, dass eine IP-Adresse im Internet weltweit nur einmal vorhanden sein darf.
Am Anfang, als es noch das ARPANET war, hat das auch ganz gut geklappt, mit der Freigabe als Internet gingen aber recht schnell die rund 4Mrd Adressen aus.
Dein Router hat nun eine solche einmalige IP.
Deine PCs haben eine private Adresse, dazu sind z.B. die IPs 192.168.xx.xx festgelegt. Auf der Welt gibt es heute Millionen PCs, welche z.B. 192.168.0.1 benutzen.
Wie bekommt man jetzt aber eine Antwort weltweit auf genau deinen PC zurück?
(Alles etwas vereinfacht.)
OK, die IP ist nur die halbe Adresse. Es gibt noch den IP-Stack. Hier gibt es rund 65’000 Ports. D.h. jedes Programm auf einem PC, kann sich an so eine Portadresse anhängen und bekommt dann nur diejenigen Datenpakete übergeben, welche die IP des PCs und die passende Portnummer haben. Das managt alles der TCP/IP Treiber. Es gibt eine Liste mit den Portnummern, welchen spezielle Dienste zugeordnet sind, z.B. Port 80 für HTTP. Manche Server haben dann aber z.B. HTML-Seiten hinter dem Port 8080 versteckt.
Ein Browser verwendet immer Port 80 für seine Seitenaufrufe, da war dann ein ganz normaler Web-Server erreichbar. Man kann aber die Portadresse auch manuell angeben und den Browser zwingen z.B. die Web-Seiten über Port 8080 abzurufen, hinter welcher auf dem Server ein zweiter Web-Server versteckt ist.
Jetzt kommen wir zu NAT.
Dein Router nimmt also ein Datenpaket über das interne Netz von deinem PC an, ändert die IP-Adresse in seine eigene Internet-IP, merkt sich das Ganze und sendet das Paket ins Internet. Bei der passenden Antwort, welche an die Router-Adresse kommt, wird dann die IP wieder gegen diejenige deines PCs ersetzt und das Paket über das interne Netz an deinen PC gesendet.
Jetzt gibt es natürlich technisch unterschiedliche Möglichkeiten dies umzusetzen.
Die einfachste ist eine Tabelle mit den Internen IPs und Port-Nummer zu erstellen und deren Entsprechung im Internet.
Die Umsetzung mit einer festen Tabelle bietet dann auch die Möglichkeit von Aussen eine Übertragung anzustossen.
Da man IP und Port in der Tabelle hat, kann man unterschiedliche Port-Adressen auch unterschiedlichen PCs im internen Netzwerk zuordnen, was aber von der Internetseite nicht sichtbar ist. Oder man leitet ein Port auf der Internet-Seite an ein anderes Port im internen Netz weiter.
Beim Port-Triggering hat man auch eine Tabelle im Router, allerdings ist ein Anstossen einer Verbindung von aussen nicht möglich. Man hat also aus dem internen Netz den normalen Komfort, kann aber von aussen nicht so einfach angegriffen werden.
Also die Ports sind nach aussen alle zu, naja, fast alle. Geht nun eine Anfrage von innen nach aussen, wird das passende Port, oder bei z.B. Ftp mehrere, von aussen, für den angefragten Server, geöffnet. Das Port bleib6t dann so lange offen, bis entweder die Verbindung abgebaut wird oder der entsprechende Timeout auftritt.
MfG Peter(TOO)