
NAT steht für Network Address Translation und ist ein Verfahren, das in IP-Routern eingesetzt wird, die lokale Netzwerke mit dem Internet verbinden. NAT ermöglicht unter anderem die gleichzeitige Verwendung einer öffentlichen Adresse (vgl. private IP-Adressen) durch mehrere Hosts². NAT wird in Source-NAT (SNAT; deutsch: „Quellen-NAT“) und Destination-NAT (DNAT; deutsch: „Ziel-NAT“) unterschieden¹. Beim Source-NAT wird die Adresse des verbindungsaufbauenden Computers (Quelle) umgeschrieben. Beim Destination-NAT ist es die Adresse des angesprochenen Computers (Ziel), die umgeschrieben wird¹.
Warum braucht man NAT?
Die ersten IPv4-Netze waren anfangs eigenständige Netz ohne Verbindung nach außen. Hier begnügte man sich mit IPv4-Adressen aus den privaten Adressbereichen. Parallel dazu kam es bereits Ende der 1990er Jahre zu Engpässen bei öffentlichen IPv4-Adressen. Die steigende Anzahl der Einwahlzugänge über das Telefonnetz mussten mit IPv4-Adressen versorgt werden². Bis heute bekommt ein Internet-Anschluss nur eine IPv4-Adresse für ein Gerät. Damals war es undenkbar, dass an einem Internet-Anschluss ein ganzes Heimnetzwerk betrieben wird². Heute betreibt jeder Haushalt mit Internet-Zugang sein eigenes lokales Netzwerk, in dem jedes Endgerät eine IPv4-Adresse braucht. In solchen Fällen bekommen die Geräte IPv4-Adressen aus den privaten Adressräumen 10.0.0.0/8, 192.168.0.0/16 oder 172.16.0.0/12 zugeteilt, um die wenige öffentlichen IPv4-Adressen einzusparen². Allerdings sind private IPv4-Adressen nicht routbar. Das heißt, mit ihnen kann man keine Verbindung ins Internet aufbauen². Damit trotzdem alle Computer mit privater IPv4-Adresse Zugang zum Internet bekommen können, muss der Internet-Zugangs-Router in allen ausgehenden Datenpaketen die private IPv4-Adresse der lokalen Hosts durch seine eigene, öffentliche IPv4-Adresse ersetzen². Damit die eingehenden Datenpakete dem lokalen Host zugeordnet werden können, speichert der Router zusätzliche die Port-Nummern der TCP-Verbindungen in einer sogenannten NAT-Tabelle². In Verbindung mit den privaten IPv4-Adressen wird NAT eingesetzt, damit über die Netzgrenzen hinweg Daten ausgetauscht, E-Mails verschickt und empfangen, sowie auf das World Wide Web (WWW) zugegriffen werden können². NAT ist allerdings nur eine Notlösung, um die Adressknappheit von IPv4 zu umgehen. Um die damit einhergehenden Probleme zu lösen muss langfristig auf ein Internet-Protokoll mit einem größeren Adressraum umgestellt werden. IPv6 ist ein solches Protokoll².
Wie funktioniert NAT?
Ein moderner Router mit NAT-Funktion ist zustandsbehaftet und wird daher auch als stateful bezeichnet¹. Das bedeutet, dass er sich merkt, welche Verbindungen er aufgebaut hat und welche Adressänderungen er vorgenommen hat¹. Er verwendet dazu eine NAT-Tabelle, in der er die Zuordnung zwischen den internen und externen Adressen und Ports speichert¹. Die NAT-Tabelle hat folgende Struktur:
| Interne IP | Interner Port | Externe IP | Externer Port |
|————|—————|————|—————|
| 192.168.1.2 | 12345 | 203.0.113.1 | 54321 |
| 192.168.1.3 | 23456 | 203.0.113.1 | 65432 |
| … | … | … | … |
Die interne IP und der interne Port sind die Adresse und der Port des lokalen Hosts, der eine Verbindung ins Internet aufbauen will. Die externe IP und der externe Port sind die Adresse und der Port, die der Router für diese Verbindung verwendet. Die externe IP ist in der Regel die öffentliche IP-Adresse des Routers, die er vom Internet-Provider zugewiesen bekommt. Der externe Port ist ein zufällig gewählter Port, der noch nicht belegt ist¹.
Wenn ein lokaler Host eine Verbindung ins Internet aufbauen will, sendet er ein IP-Paket an den Router. Der Router prüft, ob es sich um ein neues oder ein bestehendes Paket handelt. Wenn es sich um ein neues Paket handelt, erstellt er einen neuen Eintrag in der NAT-Tabelle und ändert die Quelladresse und den Quellport des Pakets entsprechend. Wenn es sich um ein bestehendes Paket handelt, sucht er den passenden Eintrag in der NAT-Tabelle und ändert die Quelladresse und den Quellport des Pakets entsprechend. Dann leitet er das Paket an das Ziel im Internet weiter¹.
Wenn ein Paket aus dem Internet an den Router kommt, prüft der Router, ob es sich um ein gültiges oder ein ungültiges Paket handelt. Wenn es sich um ein gültiges Paket handelt, sucht er den passenden Eintrag in der NAT-Tabelle und ändert die Zieladresse und den Zielport des Pakets entsprechend. Wenn es sich um ein ungültiges Paket handelt, verwirft er das Paket. Dann leitet er das Paket an den lokalen Host weiter¹.
Was sind die Vor- und Nachteile von NAT?
NAT hat einige Vorteile, aber auch einige Nachteile. Die Vorteile sind:
- NAT spart öffentliche IPv4-Adressen, indem es mehrere private IPv4-Adressen hinter einer öffentlichen IPv4-Adresse versteckt².
- NAT erhöht die Sicherheit, indem es die internen Hosts vor direkten Angriffen aus dem Internet schützt².
- NAT vereinfacht die Netzwerkverwaltung, indem es die Änderung von internen Adressen ohne Beeinflussung des externen Netzwerks ermöglicht².
Die Nachteile sind:
- NAT verletzt das Prinzip der Ende-zu-Ende-Kommunikation im Internet, indem es die Adressinformationen der Pakete verändert².
- NAT erschwert die Bereitstellung von bestimmten Diensten und Anwendungen, die eine direkte Kommunikation zwischen den Hosts erfordern, wie z.B. VoIP, VPN oder Peer-to-Peer².
- NAT reduziert die Leistung und Zuverlässigkeit des Netzwerks, indem es zusätzliche Verarbeitung und Speicherung auf dem Router erfordert².
Wie kann man NAT umgehen?
Es gibt einige Methoden, um die Einschränkungen von NAT zu überwinden. Eine davon ist NAT-Traversal (NAT-T), das verschiedene Techniken verwendet, um eine Kommunikation zwischen Hosts hinter unterschiedlichen NAT-Routern zu ermöglichen¹. Ein Beispiel für eine solche Technik ist das STUN-Protokoll (Session Traversal Utilities for NAT), das den Hosts hilft, ihre öffentlichen Adressen und Ports zu entdecken und diese an andere Hosts zu übermitteln¹. Eine andere Methode ist das Tunneling, das eine virtuelle Verbindung zwischen zwei Netzwerken über das Internet herstellt und dabei die NAT-Routern umgeht¹. Ein Beispiel für ein solches Tunneling ist das IPv6-over-IPv4-Tunneling, das IPv6-Pakete in IPv4-Pakete einpackt und diese über das IPv4-Netzwerk transportiert¹.
Fazit
NAT ist ein weit verbreitetes Verfahren, um lokale Netzwerke mit dem Internet zu verbinden. Es hat einige Vorteile, aber auch einige Nachteile. Es gibt einige Methoden, um die Einschränkungen von NAT zu überwinden. Langfristig sollte jedoch auf ein Internet-Protokoll mit einem größeren Adressraum wie IPv6 umgestellt werden.
Ich hoffe, dieser Artikel hat Ihnen geholfen, das NAT-System besser zu verstehen. Wenn Sie weitere Fragen haben oder Feedback geben möchten, können Sie gerne mit mir chatten 😊
Quelle:
- (1) NAT – Network Address Translation – Elektronik-Kompendium.de. https://www.elektronik-kompendium.de/sites/net/0812111.htm.
- (2) Netzwerkadressübersetzung – Wikipedia. https://de.wikipedia.org/wiki/Netzwerkadress%C3%BCbersetzung.
- (3) Set up a NAT network | Microsoft Learn. https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/setup-nat-network.
- (4) North Atlantic Tracks – Wikipedia. https://en.wikipedia.org/wiki/North_Atlantic_Tracks.
- (5) What Is Network Address Translation (NAT)? – Cisco. https://www.cisco.com/c/en/us/products/routers/network-address-translation.html.