Network Address Translation


Network Address Translation

Network Address Translation (NAT) ist in Rechnernetzen der Sammelbegriff für Verfahren, die automatisiert Adressinformationen in Datenpaketen durch andere ersetzen, um verschiedene Netze zu verbinden. Daher kommen sie typischerweise auf Routern zum Einsatz.

Inhaltsverzeichnis

NAT-Typen

NAT wird in Source-NAT und Destination-NAT unterteilt. Während beim Source-NAT die Adresse des Computers umgeschrieben wird, der die Verbindung aufbaut, wird beim Destination-NAT die Adresse des angesprochenen Computers verändert.

Verwendung von NAT

Verwendung von Source-NAT

Große Verbreitung fand Source-NAT durch die Knappheit öffentlicher IPv4-Adressen und die Tendenz, private Subnetze mit dem Internet zu verbinden. Die einfachste Lösung dieses Problems war oft die durch NAT mögliche Verwendung mehrerer privater IP-Adressen mit nur einer öffentlichen IP-Adresse, wobei die Abbildung auf diese aufgrund der 16 Bit breiten Portnummern auf etwa 65.000 Sitzungen (Port-Address-Translation Einträge) beschränkt bleibt (siehe Nachteile).

Gerade in privaten oder möglichst preisgünstig ausgeführten Netzinstallationen wird Source-NAT als eine Art Sicherheitsmerkmal und zur Trennung von internem und externem Netz eingesetzt. Während eine NAT-Installation oberflächlich tatsächlich diese gewünschte Wirkung erzielt, kann sie weder Sicherheitsinfrastruktur noch wirksame Maßnahmen zur Trennung von Netzen ersetzen. So wird die Source-NAT-Funktion eines Routers im professionellen Bereich oft durch ein zusätzlich betriebenes Application Level Gateway (ALG) unterstützt.

Verwendung von Destination-NAT

Destination-NAT wird beispielsweise verwendet, um mehrere, unterschiedliche Serverdienste, die auf verschiedenen Computern betrieben werden, unter einer einzigen IP-Adresse anzubieten.

Auch wird es manchmal bei Hot Spots benutzt, um Zugriffe auf Webseiten vor der Anmeldung auf den Rechner umzuleiten, der die Anmeldung anbietet.

Funktionsweise

Source NAT

Bei jedem Verbindungsaufbau durch den Client wird die Quell-IP-Adresse durch eine des Routers ersetzt. Außerdem wird der Quellport durch einen freien Port des Routers ersetzt, der dadurch belegt wird. Diese Zuordnung wird im Router gespeichert. Der Vorgang wird als PAT (Port and Address Translation) bezeichnet.

lokales Netz (LAN) öffentliches Netz (WAN)
Quelle Ziel Router
===== = =====>
NAT
Quelle Ziel
192.168.0.2:4701 170.0.0.1:80 205.0.0.2:6787 170.0.0.1:80
192.168.0.3:5387 170.0.0.1:80 205.0.0.2:8709 170.0.0.1:80
192.168.0.4:1001 170.0.0.1:23 205.0.0.2:4806 170.0.0.1:23

Source-NAT und IP-Routing am Beispiel

In diesem Beispiel nutzt das private Netz die IP-Adressen 192.168.0.0/24. Zwischen diesem Netz und dem öffentlichen Internet befindet sich ein Source-NAT-Router mit der öffentlichen Adresse 205.0.0.2/32.

Allgemein ist immer dann ein Routing erforderlich, wenn Absender und Empfänger in verschiedenen Netzen liegen. Möchte eine über einen Source-NAT-Router angebundene Station ein Paket an einen Empfänger außerhalb ihres privaten Netzes senden, beispielsweise an einen Telnet-Server irgendwo entfernt im Internet, so funktioniert der Kommunikationsprozess (vereinfacht dargestellt) wie folgt: Zuerst ermittelt die Station den für das gewünschte Ziel nächstgelegenen Router (siehe Routingtabelle), das sei hier der Source-NAT-Router, dann ermittelt die Station per ARP dessen MAC-Adresse und baut ein Paket wie folgt zusammen: Es erhält als Ziel-MAC-Adresse die MAC-Adresse des Source-NAT-Routers, die Ziel-IP-Adresse des Empfängers (hier 170.0.0.1), die Ziel-Portadresse 23 für den Telnet-Server sowie die MAC- und IP-Adresse des Absenders (hier 192.168.0.4) und einen Absenderport (irgendein gerade freier Port, hier 1001) für die gerade anfragende Telnet-Sitzung sowie andere Daten. Der Source-NAT-Router empfängt und verarbeitet das Paket, weil es an seine MAC-Adresse gerichtet ist. Bei der Verarbeitung im Router wird das Paket in abgeänderter Form weitergeleitet: Der Router ermittelt anhand der Empfänger-IP-Adresse den nächsten Router, ermittelt per ARP dessen MAC-Adresse und baut das Paket wie folgt um: Es erhält nun abweichend die MAC-Adresse des nächsten Routers, die Ziel-IP-Adresse des Empfängers (170.0.0.1), Ziel-Port 23 sowie die öffentliche MAC- und IP-Adresse des Source-NAT-Routers (205.0.0.2), einen gerade freien Absender-Port aus dem Reservoir des Routers (hier 4806) und den Nutzdaten, die gleich bleiben. Diese Zuordnung der ursprünglichen Absenderadresse und des Ports (192.168.0.4:1001) zum jetzt enthaltenen Adress-Tupel (205.0.0.2:4806) wird im Router solange gespeichert, bis die Telnet-Sitzung abläuft oder beendet wird. Bei NAT wird das Paket auf Schicht 3 (IP) also deutlich verändert.

Bei der Bearbeitung in nachfolgenden IP-Routern wird das Paket lediglich auf Schicht 2 verändert: Der Router ermittelt den nächsten Router, ermittelt per ARP dessen MAC-Adresse und baut das Paket wie folgt um: Es erhält nun abweichend als Ziel-MAC-Adresse die MAC-Adresse des nächsten Routers und die Absender-MAC-Adresse wird gegen die eigene ausgetauscht. Die IP-Adresse des Empfängers (170.0.0.1), Ziel-Port 23 sowie die Absender-IP-Adresse des Source-NAT-Routers (205.0.0.2), dessen Absender-Port 4806 und die Nutzdaten bleiben erhalten. Das bedeutet: Auf Schicht 3 (IP) wird das Paket hier nicht verändert. Dieser Vorgang wiederholt sich, bis ein letzter Router die Zielstation in einem direkt angeschlossenen Netz findet; dann setzt sich das Paket wie folgt zusammen: es erhält als Absender-MAC-Adresse die des letzten Routers, als Ziel die MAC-Adresse der Zielstation, die IP-Adresse des Empfängers (= Zielstation, 170.0.0.1), Ziel-Port 23 sowie die IP-Adresse des Absender-Source-NAT-Routers (205.0.0.2), dessen Absender-Port 4806 und natürlich Nutzdaten.

Nach erfolgreicher Verarbeitung durch den Telnet-Server wird die Rückantwort dann wie folgt zusammengestellt: MAC-Adresse des für den Rückweg zuständigen Routers (wobei Hin- und Rückroute nicht unbedingt identisch sein müssen), die IP-Adresse des anfragenden Source-NAT-Routers (205.0.0.2), die Ziel-Portadresse 4806 sowie die MAC- und IP-Adresse des Telnet-Servers (170.0.0.1) und dessen Absenderport, sowie Antwort-Daten. Nachdem alle Router durchlaufen wurden, wird daraus schließlich im Source-NAT-Router (205.0.0.2): MAC-Adresse und IP-Adresse des anfragenden Rechners (hier 192.168.0.4), und dessen Portadresse 1001 sowie die MAC des Source-NAT-Routers und IP-Adresse des Telnet-Servers (170.0.0.1) und dessen Absenderport, sowie Antwort-Daten. Wird diese Telnet-Sitzung beendet, wird auch Port 1001 wieder freigegeben.

Destination NAT

Bei jedem Verbindungsaufbau durch den Client wird die Ziel-IP-Adresse durch eine andere ersetzt. Außerdem wird der Zielport durch einen freien Port des Routers ersetzt, der dadurch belegt wird. Diese Zuordnung wird im Router gespeichert.

öffentliches Netz (WAN) lokales Netz (LAN)
Quelle Ziel Router
===== = =====>
NAT
Quelle Ziel
170.0.0.1:1001 171.4.2.1:80 170.0.0.1:1001 192.168.0.2:80
170.0.0.1:1001 171.4.2.1:22 170.0.0.1:1001 192.168.0.3:22
170.0.0.1:1001 171.4.2.1:81 170.0.0.1:1001 192.168.0.3:81

Kategorisierung

RFC 3489, der das Protokoll STUN zur Traversierung von NAT-Gateways beschreibt, ordnet diese in vier verschiedene Klassen ein, die auch außerhalb des Kontexts von STUN gerne zur Klassifizierung verwendet werden:

Full Cone NAT.svg

Im Full Cone NAT-Szenario setzt ein Gateway interne Adressen und Ports nach einem statischen Muster in eine externe Adresse und deren Ports um. Es erlaubt insbesondere auch, dass so externe Hosts über die externe Adresse des NAT-Gateways Verbindungen zu internen Hosts aufbauen.

Restricted Cone NAT.svg

Im Restricted Cone NAT-Szenario erlaubt das Gateway die Kontaktaufnahme eines externen mit einem internen Host nur, wenn diesem Verbindungsversuch eine Kontaktaufnahme dieses internen Hosts mit dem externen Host vorausging.

Port Restricted Cone NAT.svg

Das Port Restricted Cone NAT-Szenario schränkt diese Erlaubnis der Kontaktaufnahme zusätzlich auf nur den externen Port ein, über den die vorausgehende umgekehrte Kontaktaufnahme stattfand.

Symmetric NAT.svg

Im Symmetric-NAT-Szenario schließlich ist eine Initiierung von Verbindungen durch externe Hosts nicht oder kaum möglich, da diese im Allgemeinen nicht abschätzen können, über welche von mehreren externen Adressen des Gateways Verbindungen zu (oder von) ihnen abgewickelt bzw. erwartet werden.

Diese prototypischen Grundszenarien bilden in modernen NAT-Systemen allerdings oft nur noch Anhaltspunkte zur Klassifizierung punktuellen Verhaltens der Gateways. Diese benutzen teilweise Mischformen der klassischen Ansätze zur Adressumsetzung oder wechseln dynamisch zwischen zwei oder mehreren Verhaltensmustern.

Vorteile

  • IP-Adressen eines Netzes können vor einem anderen Netz verborgen werden. Somit kann NAT zur Verbesserung der Netzwerksicherheit eingesetzt werden.

Nachteile

  • NAT wird oft nur als eine Notlösung betrachtet, um bei nicht dauerhaft verbundenen Netzinstallationen das Problem der knappen IPv4-Adressen zu umgehen.
  • Das größte Problem an NAT ist, dass die saubere Zuordnung „1 Host mit eindeutiger IP-Adresse“ nicht eingehalten wird. Durch die Umschreibung von Protokoll-Headern, die einem Man-in-the-middle-Angriff ähnelt, haben so insbesondere ältere Protokolle und Verschlüsselungsverfahren auf Netzwerk- und Transportebene durch diesen Designbruch Probleme (z. B. IPsec-AH). Protokollkomplikationen durch NAT werden in RFC 3027 beschrieben.
  • Ebenso leiden insbesondere Netzwerkdienste, die Out-of-Band-Signalisierung und Rückkanäle einsetzen, etwa IP-Telefonie-Protokolle, unter Komplikationen durch NAT-Gateways.
  • NAT-Gateways heben die strenge Trennung des OSI-Schichtenmodells auf.
  • End-zu-End-Konnektivität wird gebrochen, da die NAT-Übergabestelle das Ziel eingehender Verbindungen nicht automatisch ermitteln kann.

NAT-Durchdringung

NAT-Durchdringung (engl. "NAT-Traversal") bezeichnet Techniken zum Aufbau und Halten von Verbindungen über NAT-Übergabestellen hinweg. Network Address Translation bricht die End-zu-End-Konnektivität. Daher brauchen typischerweise Anwendungen, die von Client zu Client verbinden (zum Beispiel bei Peer-to-Peer- und IP-Telefonie-Anwendungen oder Netzwerkspiele) NAT-Durchdringungstechniken. Es existieren mehrere Techniken, derer nicht jede in jeder Situation funktioniert, da das Verhalten von NAT nicht standardisiert ist. Viele Techniken benötigen die Hilfe eines für beide Parteien direkt öffentlich zugänglichen Servers. Manche Methoden nutzen einen solchen Server nur für den Verbindungsaufbau, andere leiten allen Verkehr der Verbindung über diesen Hilfs-Server, was die Kosten der Datenübertragung sowie die Latenz erhöht und somit für Echtzeit-Anwendungen nachteilig ist.

Die meisten verhaltensbasierten Methoden umgehen Unternehmens-Sicherheitsrichtlinien. Daher werden in Unternehmensnetzwerken Techniken bevorzugt, die sich ausdrücklich kooperativ mit NAT und Firewalls integrieren und administrative Eingriffe an der NAT-Übergabestelle erlauben. Von daher sind die vielversprechendsten Standards Realm-Specific IP[1] und Middlebox Communication (MIDCOM)[2].

SOCKS, das älteste Protokoll zur NAT-Durchdringung, ist weiterhin weit verbreitet. In der Heimanwendung oder bei kleinen Büros wird von den meisten NAT-Übergabestellen Universal Plug and Play (UPnP) unterstützt. NAT-T ist gebräuchlich bei IPsec-VPN-Clients, um Encapsulating-Security-Payload-Pakete durch die NAT zu bringen.

Siehe auch

Weblinks

Quellen

  1. RFC 3102, RFC 3103, RFC 3104
  2. http://www.ietf.org/wg/concluded/midcom.html

Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Network Address Translation — Pour les articles homonymes, voir NAT. En informatique, on dit qu un routeur fait du Network Address Translation (NAT) (ce qu on peut traduire de l anglais par « traduction d adresse réseau » – certains utilisent encore le mot… …   Wikipédia en Français

  • Network Address Translation — Network Address Translation,   NAT …   Universal-Lexikon

  • Network address translation — NAT redirects here. For other uses, see Nat (disambiguation). In computer networking, network address translation (NAT) is the process of modifying IP address information in IP packet headers while in transit across a traffic routing device. The… …   Wikipedia

  • Network address translation — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Network Address Translation (NAT) ist in Rechnernetzen der… …   Deutsch Wikipedia

  • Network address translation — Pour les articles homonymes, voir NAT. En réseau informatique, on dit qu un routeur fait du Network Address Translation (NAT) (« traduction d adresse réseau »[1]) lorsqu il fait correspondre les adresses IP internes non uniques et… …   Wikipédia en Français

  • Network Address Translation — NAT (Network Address Translation Traducción de Dirección de Red) es un mecanismo utilizado por enrutadores IP para intercambiar paquetes entre dos redes que se asignan mutuamente direcciones incompatibles. Consiste en convertir en tiempo real las …   Wikipedia Español

  • network address translation —    Abbreviated NAT. A term used to describe the process of converting between IP addresses on an intranet or other private network and Internet IP addresses.    See also name resolution …   Dictionary of networking

  • Network Address Translation — …   Википедия

  • Address translation — or address resolution may refer to:* Address Resolution Protocol or ARP, a computer networking protocol used to find out the hardware address of a host (usually a MAC address), when only the network layer address is known. * Reverse Address… …   Wikipedia

  • address translation gateway —    Abbreviated ATG. A function in Cisco DECnet routing software capable of establishing a user specified address translation mechanism for certain selected nodes on the network …   Dictionary of networking