13. Network Address Translation
Allgemeines zu NATs
NAT steht kurz für Network Address Translation und ist eine Lösung um das Problem der Knappheit von IPv4 Adressen zu lösen. NAT bindet einzelne Clients bzw einzelne Ports von Clients aus einem lokalen Netzwerk an das Internet an. Sofern jeder Client eine öffentlich routbare IPv6 Adresse hat, ist ein NAT nicht mehr nötig. Die Abschaffung eines NAT durch IPv6 funktioniert allerdings nur, wenn alle Netze die der Client ansteuern möchte ebenfalls IPv6 fähig sind. Da dies heute (2020-09) noch nicht der Fall ist, ist ein IPv4 und IPv6 NAT effektiv die aktuelle Lösung um Heimnetzwerke mit dem Internet zu verbinden.
NAT hört sich bis dato also noch einer guten Idee an: Ich spare mir - rare - IPv4 Adressen und wenn alle meine Clients nur noch IPv6 benutzen kann ich es mir ganz sparen. Ganz so einfach ist es in der Realität leider dann doch nicht. Das NAT verursacht nämlich Probleme für dezentrale Dienst und Dienste die auf Bidirektionaler Kommunikation basieren. Die beiden Kommunikationsteilnehmer können nämlich nicht mehr direkt miteinander sprechen. Heißt die Verbindung muss von dem Teilnehmer der sich im NAT befindet aktiv aufrecht erhalten werden. Ein Router (der für das NAT zuständig) ist speichert nun die Zuordnung von Quelle zu Ziel der Datenpakete. Läuft diese Tabelle über und das Mapping fliegt aus der Tabelle haben die beiden Verbindungspartner keine Möglichkeit mehr zu kommunizieren und müssen die Verbindung neu aufbauen.
Das klingt nun so als ob kaum Anwendungen mehr in unserer modernen Welt mehr funktionieren sollte. Nun da sich durch die Knappheit der IPv4 Adressen und die Einführung von NATs, monopolistische Dienste wie Facebook und Google gebildet haben, die sich dem Client-Server Modell bedienen, ist das Problem für den Endanwender gelöst, da das Client-Server Modell von den Einschränkungen des NAT nicht betroffen ist.
Probleme gibt es allerdings auch im Security Bereich da Dienste wie IPsec und VPNs häufig die Quersummen von Paketen überprüfen. Da der Router ja die Quell und Zieladresse bei der Übersetzung ändert kann dies zu Problemen führen, wenn diese Dienste dies nicht berücksichtigen. Vorteilhaft ist das NAT für Admins die eine DMZ (Demilitarisierte Zone) im Rechenzentrum aufbauen möchten. Hierbei wird das NAT als ein und Ausstieg aus dem Netzwerk benutzt. Diese künstliche Engstelle kontrolliert den gesammten Traffic des dahinterliegenden Bereiches und ermöglicht somit eine vollständige Flusskontrolle des Netzwerkverkehrs, dies ist gerade in Hochsicherheitsbereichen zwangsnotwendig. Eine NAT sichert zudem einen Administrator in Teilen dafür ab, dass ein dahinterliegender Rechner ohne Firewall das gesamte Netzwerk gefährdet, indem er sich ungeschützt preisgibt. Zudem vereinfacht das NAT die Firewallkonfiguration, da nur ein Host geschützt werden muss primär, da er das Einfallstor für das restliche Netzwerk ist.
Natives 1:1 NAT
In einem 1-1 NAT besitzt ein privates Netzwerk eine Menge an IP-Adressen. Der Router besitzt nun dieselbe Menge öffentliche IP-Adressen und übersetzt nach vorgeschriebenen Regeln die privaten IP-Adressen in die öffentlichen IP-Adressen. Dies ist sinnvoll wenn ein, im internen Netzwerk, stehender Server öffentlich gemacht werden soll, dieser jedoch nicht direkt im Internet erreichbar sein soll. Dies ermöglicht bspw. eine vorgeschaltete Firewall.
Source-NAT
auch genannt: PAT, 1 zu n-NAT, n-PAT, IP-Masquerading
Dieses verfahren gilt in der Regel als das “klassische” NAT. Hierbei agiert der Router, welche die öffentliche IPv4- Adresse besitzt, als Stellvertreter für alle seine Clients. Der Stellvertreter tauscht hierbei in den Paketen die Quelladresse aus (die ja aus einem privaten Adressbereich kommt) und auch den Quellport. Der Router ersetzt die IP durch seine eigene öffentliche und einen zufälligen noch freien Port und leitet das Paket anschließend weiter. Die Informationen was er getauscht hat merkt er sich in der NAT-Tabelle. In dieser Tabelle werden Einträge nach einer Gewissen Zeit automatisch gelöscht um Ports und Speicher (im Router) zu sparen. Wenn der Eintrag in der Tabelle entfernt ist können sich Client und Server nicht mehr miteinander kommunizieren.
Destination-NAT
Hier sind die Ports 443, 21 und 22 festen IP s zugeordnet. Eine häufige Anwendung ist auch der Zugriff von außen über z.B. die Fritzbox auf eine NAS. So verwendet z.B. eine Synology-NAS den Port 6690 für Clouddienste von außen.