NAT Funktionalität

01/09/2016 18:29 EasyWoWShop#1
Hallo zusammen,
ich muss demnächst ein Referat (u.A) über NAT, also die Network Address Translation halten, allerdings habe ich dazu von der Schule aus keinerlei Informationen bekommen.

Unter Einsatz eines NAT-Routers werden also die Netzwerkinternen IP-Adressen (192.168.x.x) an den Router geleitet, welcher diese dann übersetzt um Anfragen in ein öffentliches Netzwerk zu stellen (WAN). Der jeweilige Client des internen Netzwerks mit einer jeweiligen IP Adresse benutzt dazu also einen Port (z.B 1001) über welchen die Anfrage nun läuft. Aus der IP Adresse und des verwendeten Ports wird also eine neue, öffentliche IP Adresse in Form von 205.x.x/y erstellt. Der DNAT sendet anschließend eine Antwort an die vom Router vergebene/übersetzte öffentliche IP Adresse, welcher anhand der an ihn andressierten IP die Antwort an den jeweiligen Client im internen Netzwerk weitergeben kann.
Nun die Frage: Was genau ist diese öffentliche Router IP und welches Einsatzgebiet besitzt diese genau? Ist der NAT schon bei einfachen Anfragen an Webseiten beteiligt, oder geht es nur um Daten innerhalb eines WAN's, z.B beim Online zocken? Und wie genau läuft das mit der IP ab, denn die Hauseigene IP lautet ja z.B 95.91.xxx.xxx und wird bei Anfragen an den jeweiligen Server übermittelt. Bei dieser ist es ja auch egal welcher Client aus dem internen Netzwerk eine Anfrage stellt, die IP Adresse bleibt im Gegensatz zum NAT ja die gleiche. Ist die vom NAT vergebene IP Adresse überhaupt einsehbar oder wie genau funktioniert das?

Ich hoffe es kennt sich jemand aus und versteht meine Frage, danke im Vorraus :)
01/09/2016 20:08 Belur#2
Um NAT zu verstehen solltest du dir vllt. erstmal klarmachen was es für ein Problem gibt, wenn dein Router kein NAT machen würde.

Stell dir vor du sitzt mit deinem PC irgendwo hinter deinem Router. Ein anderer Server oder was auch immer möchte jetzt gerne mit dir eine Verbindung aufbauen und kennt auch zufällig deine öffentliche IP (also die IP, die dem Router vom Internetanbieter zugewiesen wurde).

Der Server schreibt also die öffentliche IP Adresse in den IP-Header seines Paketes und trägt den Port ein auf dem er dich erreichen möchte. Das Paket kommt jetzt beim Router an, aber der weiß garnicht an welchen PC er das im internen Netz weiterleiten soll. Könnte ja auch sein, dass das Paket für deinen Vater gedacht ist.

Deswegen führt ein Router solche NAT-Tabellen:
[Only registered and activated users can see links. Click Here To Register...]
Wegen dem eben genannten Problem ist es auch nicht möglich, dass ein Rechner aus dem Internet mit dir eine Verbindung aufbaut wenn du hinter einer NATBox hängst. Du musst immer zuerst die Verbindung aufbauen damit ein Eintrag in der NAT Tabelle erstellt werden kann.

Das ganze läuft also so:
Du möchtest gerne Google aufrufen. Dein Netzwerkstack macht also das Paket fertig und schreibt in das IP-Paket in das "Sender" erstmal deine interne IP. Die kann aber im Internet nicht geroutet werden!
Der Router tauscht also die IP aus. Er schreibt bei "Sender" die öffentliche IP rein und tauscht auch den Port aus. Das ist wichtig!


Wenn du dir also das Bild anguckst versucht dein Rechner - in diesem Fall 192.168.1.3 - auf Port 1025 einen HTTP Request an Google zu senden.
Der Router tauscht die IP aus gegen die öffentliche IP und tauscht auch den Port aus gegen einen selbst gewählten. Dann wird die Anfrage weiter an Google geschickt.

Der Google Server verarbeitet dann dein Paket und schickt es zurück. Und zwar an die öffentliche IP-Adresse 212.23.4.65 auf Port 33386. (Weil es ja von da gekommen ist).
Vorher hatten wir das Problem, dass wir nicht wussten für welchen Rechner das Paket im internen Netz bestimmt ist. Jetzt kann der Router aber in der NAT Tabelle nachgucken. Er sieht also, dass er ein Paket mit Dest. IP 212.23.4.65 und Dest. Port 33386 bekommen hat. Dann guckt er nach welcher Rechner das Paket ursprünglich gesendet hat.
Danach tauscht er die Destination IP aus. Er schreibt also wieder die interne IP deines Rechners in den IP-Header und tauscht außerdem im TCP/UDP oder was auch immer Header den Port aus und schickt es an dich.

Und mehr ist NAT eigentlich nicht. Es verletzt allerdings das Ende-zu-Ende Prinzip da es Pakete modifiziert. Oft wird NAT auch als Sicherheitsfeature verkauft, was aber eigentlich eher ein Nebeneffekt ist.
01/09/2016 20:17 EasyWoWShop#3
Danke für die ausführliche Antwort.
Ich denke, dass ich den Ablauf verstanden habe, allerdings irritiert mich noch die WAN-Adresse:
[Only registered and activated users can see links. Click Here To Register...]
Gibt es einen Unterschied zwischen der WAN-Adresse und der vom Provider vergebenen Adresse für den eigentlich DSL Anschluss,abgesehen vom Portzusatz?
Also die eigene IP Adresse lässt sich ja auf Seiten wie "wieistmeineip.de" einsehen, allerdings vertritt diese IP Adresse ja nur einen Anschluss des gesamten internen Netzwerks. Was genau ist dann die WAN Adresse? Genau diese IP Adresse mit dem Zusatz der vorher vom NAT zugewiesen Port Nummer oder eine ganz eigene Adresse? Wenn es eine eigene Adresse ist, müssten doch bei jeder Anfrage die normale, vom Provider vergebene IP Adresse, und die WAN-Andresse übermittelt werden, damit später der Router auch weiß, an welches Endgerät die Antwort weitergeleitet werden soll, oder?
01/09/2016 20:26 Belur#4
Die WAN-Adresse ist praktisch die, die dir vom Provider zugewiesen wird. Also deine öffentliche IP.