Wie funktioniert NAT?
Wie funktioniert NAT
Network Address Translation (NAT)
Warum überhaupt Network Address Translation (NAT) ?
- NAT dient als Abhilfe beim Engpass der IPv4 Adressen.
- NAT entstand Anfang der 90er Jahre.
- NAT bietet ausserdem einen gewissen Schutz vor Angriffen, da die Adressen nicht öffentlich sichtbar sind.
- Bei NAT werden i.d.R. private RFC1918 – Adressen genutzt. (NAT funktioniert natürlich auch mit öffentlichen Adressen)
- Bei Providerwechsel brauchen nicht alle Maschinen neu konfiguriert zu werden.
Beispiel:
Der Rechner 192.168.0.1 möchte die Webseite http://www.telekom.de abrufen. Da er die IP-Adresse aber nicht kennt, fragt er zuerst einen DNS-Server, welcher hier die Adresse 194.25.0.125 haben soll.Die Anfrage wird formuliert und ein IP-Paket mit einer UDP Anfrage auf Port 53 des DNS- Servers versendet.Das Paket hat, wie jedes IP-Paket, eine Absender-IP-Adresse (192.168.0.1) und eine Empfänger-IP-Adresse (194.25.0.125), ausserdem einen Absende-Port (1025) und einen Empfänger-Port (53).
Der Absende-Port :1025 stammt aus dem Bereich der Client-Ports. Auf diesem Port wartet der Client Im weiteren Verlauf auf seine Antwort. Die Anga- ben zu den Ports stehen im UDP-Header. Kurzgefasst kann man die Adressierung des Pakets so formulieren: 192.168.0.1:1025 --> 194.25.0.125:53
Jetzt muss der Client entscheiden, wohin mit dem Paket. Ein Blick in seine Routingtabelle zeigt ihm: Keine Netzwerkroute vorhanden, welche auch nur annähernd mit 194.... beginnt, also ein Fall für sein Standard-Gateway 192.168.0.62. Der Client sendet das Paket also an den Router (konkret im Ethernet: von seiner MAC-Adresse an die des NAT - Gateway).
Das Paket kommt am NAT-Gateway an. Selbiger wirft einen Blick in seine Routingtabelle, um zu ent-scheiden, wohin mit dem Paket. Hier findet er außer dem eigenen Netz 192.168.0.0 keine weitere Netz-werkrouten und entscheidet sich daher für seinen "default" Eintrag, welcher auf den Provider (Internet) verweist. Im folgenden wird die Absender-IP-Adresse des Pakets gegen die offizielle IP-Adresse des NAT – Gateway (62.156.0.1) ausgetauscht. Damit kann das Paket im Internet transportiert werden, denn nun wird es von einer offiziellen IP (62.156.0.1) zu einer anderen (194.25.0.125) transportiert.
192.168.0.1:1025 --> 194.25.0.125:53 62.156.0.1:1025 --> 194.25.0.125:53
Das reicht aber noch nicht aus! Denn angenommen der Client 192.168.0.2 surft gleichzeitig los und nutzt ebenfalls seinen Client-Port 1025, ergibt sich folgendes Paket:
92.168.0.2:1025 --> 194.25.0.125:53
und nach der Ersetzung durch NAT auf dem Router:
62.156.0.1:1025 --> 194.25.0.125:53
Wir erinnern uns, das erste Paket sah genauso aus:
62.156.0.1:1025 --> 194.25.0.125:53
Dadurch würde der Router zwei Antworten vom DNS erhalten die an die IP-Adresse 62.156.0.1 mit dem Port 1025 gerichtet sind und wüsste gar nicht, welchem Client im internen Netz welche Antwort zuzustellen ist. Die Adressierung der Pakete ist identisch, sie können jedoch ganz unterschiedliche Inhalte haben!
Daher wird auf dem Router nicht nur die Absende- IP-Adresse ausgetauscht, sondern auch der Absende-Port. Der Router verwendet dafür Port-Adressen aus dem "high-range" Bereich (über 32.767)
Aus den DNS Anfrage 192.168.0.1:1025 --> 194.25.0.125:53 wird damit: 62.156.0.1:33385 --> 194.25.0.125:53 und aus der Anfrage 192.168.0.2:1025 --> 194.25.0.125:53 wird damit: 62.156.0.1:33386 --> 194.25.0.125:53
Die Anfragen kommen am DNS an, der die Antworten nunmehr an die Absender zurücksendet: 194.25.0.125:53 --> 62.156.0.1:33385 und 194.25.0.125:53 --> 62.156.0.1:33386
Die Antwortpakete kommen am NAT-Gateway an, welcher nun in einer internen Tabelle nachschaut, welcher interne Client auf welches Paket wartet.
Damit können nun die externen Daten gegen die entsprechenden internen Daten ausgetauscht werden.
Damit gelangen die Daten an den richtigen Rechner im internen Netz.