Victoria - Fotolia
Einführung in Network Address Translation (NAT)
Dank NAT funktioniert die Verbindung von lokalen Netzwerken an das Internet, trotz limitierter IPv4-Adressen, problemlos. Dabei unterscheiden Profis verschiedene NAT-Formen.
Die grundlegende Beschreibung für Network Address Translation (NAT), in der Urform im RFC 1631 im Mai 1994 noch unter Network Address Translator erstmalig benannt, ist äußerst trivial: NAT übersetzt eine IP-Adresse in eine andere IP-Adresse. Nun, das klingt nach nicht besonders viel, um daraus einen eigenen Artikel zu machen. Es sei denn, dass hinter diesem einen kleinen Satz eine überaus wichtige Funktionalität steckt.
Wikipedia beschreibt die Netzwerkadressübersetzung in Rechnernetzwerken als Sammelbegriff bei Änderungen von Adressen im IP-Header von IP-Paketen auf Layer 3 im OSI-Referenzmodell.
Technisch werden die Quellen-NAT (Source NAT, SNAT) und die Ziel-NAT (Destination NAT, DNAT) unterschieden. Beim Source-NAT wird die Adresse des verbindungsaufbauenden Computers (Quelle) verändert. Beim Destination-NAT ist es die Adresse des angesprochenen Computers (Ziel), die umgeschrieben wird.
Mit NAT gegen IP-Knappheit
Das primäre Einsatzfeld für SNAT ergibt sich aus dem bekannten Problem der Knappheit an öffentlichen IP-Adressen im IPv4-Format. Die meisten Unternehmens- und SOHO-Netzwerke verwenden für ihren internen Datenverkehr die dafür vorgesehenen privaten IP-Adressen.
Diese Adressen, definiert im RFC 1918 im Jahr 1996, dürfen nicht direkt mit dem Internet kommunizieren. Ein Internet-Router, der als Zieladresse eine Adresse nach RFC 1918 identifiziert, verwirft dieses IP-Paket ohne Rückmeldung.
Spannenderweise wird in RFC 1918 die Abkürzung NAT überhaupt gar nicht verwendet, die Autoren gingen wohl davon aus, dass zur Anbindung an das Internet stets Proxy-Server, dort als Application Level Gateways bezeichnet, zum Einsatz kommen werden.
Drei Netzwerkbereiche wurden als private Netzwerkbereiche deklariert: 10.0.0.0/8 als Netzwerkklasse A, im B-Bereich 172.16.0.0/12 und im Class-C-Bereich 192.168.0.0/16. Somit sind die Adressen 10.0.0.0-10.255.255.255, 172.16.0.0-172.31.255.255 und 192.168.0.0 bis 192.168.255.255 im Internet nicht routbar.
Wie eine Organisation mit privaten Adressen intern umgeht, bleibt ihr selbst überlassen – ganz im Gegensatz zu den öffentlichen IP-Adressen, die die IANA, beziehungsweise ihre Unterorganisationen verwalten. Natürlich wäre es technisch möglich, in einem internen Netzwerk auch öffentlichen Adressen einzusetzen und hierfür Routing-Wege einzurichten.
Jedoch gibt es dann beispielsweise 6.0.0.0/8 zweimal – einmal im Internet und einmal im internen Netzwerk – wohin sollte der Router den Verkehr dann lenken? Ganz zu schweigen davon, wie ein angeschlossener Partner die intern fälschlicherweise verwendeten IP-Adressen jemals erreichen soll.
Insgesamt wurde NAT für den hauptsächlichen Einsatzzweck der Anbindung von Knoten eines privaten Netzwerks an das Internet geschaffen. Da es jedoch nicht auf die Verbindung an das Internet limitiert ist, können Administratoren es natürlich auch für die Anbindung von Subnetzen in privaten Netzwerken verwenden. Dies kommt im täglichen Praxiseinsatz bei der Verbindung von Firmen mit Partnern vor – üblicherweise flankiert von Firewalls, um eine genauere Kontrolle über den Netzwerktransfer zu haben.
Den Ablauf einmal gänzlich durchspielen
Spielen wir gedanklich einen kompletten Datenaustausch eines PCs mit der lokalen Adresse 192.168.1.200 durch. Die Anfrage richtet sich an einen Server im Internet mit der IP-Adresse 217.160.231.107. Der NAT-Router, das kann auch eine Fritz!Box oder ein anderes, vom Provider bereitgestelltes DSL-Modem mit Routing-Funktion sein, ändert vor der Weiterleitung des Pakets von unserem PC in Richtung Webserver die lokale Absenderadresse 192.168.1.200 und fügt eine offizielle IP-Adresse ein – typischerweise die externe IP-Adresse des Routers, beispielsweise 62.152.164.38. Die Empfängeradresse 217.160.231.107 bleibt unverändert.
Damit der Router oder das DSL-Modem mit integrierter Routing-Funktion später weiß, an wen das Paket intern zu richten ist, legt die Router-Software einen Eintrag in der NAT-Tabelle für diese Verbindung an. Dieser Vorgang wird gemeinhin als Connection Tracking bezeichnet.
Der Server 217.160.231.107 erhält eine Anfrage von einem Absender mit der IP-Adresse 62.152.164.38 und beantwortet das Paket, in dem er als Empfängeradresse nun eben diese IP-Adresse einträgt. Als Absenderadresse nutzt der Server seine eigene IP-Adresse.
Der Router empfängt dieses, per Definition an ihn gerichtete Paket und prüft in der NAT-Tabelle, ob es einen Eintrag zur gezielten Weiterleitung gibt. Ist dies der Fall, ersetzt die Router-Software die 62.152.164.38 durch die 192.168.1.200 und schickt das Paket im internen Netzwerk weiter. Der PC empfängt das Paket und kann es weiterverarbeiten. Dass es zwischenzeitlich eine andere Absende- beziehungsweise Empfänger-IP-Adresse trug als seine eigene IP-Adresse, ist für das PC-Betriebssystem nicht ersichtlich. Der Vorgang verläuft komplett transparent.
Die eigene Betrachtungsweise von Cisco
Alle IT-Profis, die sich mit Cisco und NAT auseinandersetzen, dürfen an der etwas eigenwilligen Sichtweise von Cisco teilhaben. Bei Cisco gehen die Entwickler davon aus, dass alle das gesamte Netzwerk stets aus der Sicht der eigenen Organisation betrachten. In der Terminologie treffen Administratoren auf folgende Bezeichner:
- Inside (eigene Organisation, privates Netzwerk)
- Outside (Standort eines Systems, das sich im Internet befindet)
- Local (Sichtweise aus dem privaten Netzwerk)
- Global (Sichtweise aus dem Internet)
Es ergeben sich folgende Kombinationen:
- Inside local (zum Beispiel 192.168.1.200, der eigene PC)
- Inside global (zum Beispiel 62.152.164.38, die interne IP-Adresse aus Sicht des Internets)
- Outside local (externe Systeme aus Sicht des lokalen Netzes, zum Beispiel 217.160.231.107)
- Outside global (das externe System aus Sicht des Internets)
Statisches NAT
Die typische Betriebsform ist das sogenannte statische NAT mit direkter Zuordnung von IP-Adressen. Das ergibt eine 1:1-Verbindung zwischen internen IP- und externen IP-Adressen und liest sich für den Router in Regeln wie: wenn auf einem internen Interface ein Paket mit der Absenderadresse 192.168.1.200 eingeht, ersetze die Absenderadresse durch 62.152.164.38 und leite es aus dem externen Interface weiter. Folgerichtig sind für das statische NAT üblicherweise mehrere globale IP-Adressen erforderlich.
Spannender indes ist die Umsetzung 1:1 dahingehend, dass der Vorgang auch umgekehrt funktioniert, also auf der globalen Adresse eine direkte Aktion auf der lokalen Adresse erwirken kann. Das heißt nichts anderes, als dass in einer DMZ-Situation Client-Systeme im globalen Internet einen Server erreichen können. Statisches NAT hat den Vorteil der eindeutigen Zuordnung von Adressen – dürfte aber in der Praxis in eher überschaubaren Umgebungen zum Einsatz kommen.
Dynamisches NAT bei Cisco
Für das dynamische NAT gibt es bei Cisco-Geräten zwei unterschiedliche Varianten – den NAT-Pool und das NAT-Overload, kurz PAT. Der NAT-Pool arbeitet mit einer gewissen Anzahl von globalen Adressen für den Austausch der lokalen Adresse. Verfügt der Pool beispielsweise über 100 Adressen und es sind 101 gleichzeitige Sessions von 101 verschiedenen lokalen Adressen erforderlich, wird die zuletzt arrangierte Verbindung abgewiesen.
Um mit möglichst einer globalen Adresse arbeiten zu können – wie bei der hier bereits benannten AVM Fritz!Box – wird neben der eigentlichen lokalen Adresse auch die Port-Nummer für die Session übersetzt. Aus diesem Grunde nannten die Entwickler bei Cisco das Verfahren NAT-Overload auch PAT, auch wenn nicht immer zwingend eine Port-Translation erforderlich ist, aber möglich wäre.
Sofern alle PCs im lokalen Bereich auf unterschiedliche Ressourcen im globalen Netzwerk zugreifen, ist die Funktionalität ja noch leicht erklärt. Der PC 192.168.1.199 greift per 3389 auf einen RDP-Dienst zu, während 192.168.1.200 über Port 443 auf Webseiten zugreift. Aber was passiert, wenn beide PCs beinahe zeitgleich über 443 auf Webseiten zugreifen wollen? Wie geht die Routersoftware dann vor? Um dieses Problem zu umgehen, wird der NAT-Router spätestens beim Eintritt eines solchen Falles den Quell-Port des zweiten Knotens abändern, um eine Eindeutigkeit zu bewahren.
Die Syntax für das Einrichten von NAT im Cisco-Umfeld unterscheidet sich je nach Anwendungsfall und würde den Rahmen unseres Beitrags sprengen. Die Befehlsfolgen findet der interessierte Leser auf der Webseite des Herstellers.
Vor- und Nachteile von NAT
NAT bietet viele Vorteile und schiebt die Problematik der Verknappung von IPv4-Adressen recht erfolgreich seit einigen Jahren auf. Gleichzeitig sorgt NAT, auch wenn es im Design an sich nicht vorgesehen war, für eine bessere Privatsphäre, da die lokalen Adressen der Systeme nach außen hin verborgen bleiben. Praktischerweise erlaubt NAT sogar das Routing zwischen denselben IP-Adressbereichen, da stets nach außen nur die IP-Adresse des NAT-Routers sichtbar ist.
Keine Vorteile ohne Nachteile, da ist NAT keine Ausnahme. Das Umschreiben von Protokoll-Headern ähnelt von seinem systemischen Ansatz her der Man-in-the-Middle-Attacke und kann daher bei einigen älteren Protokollen oder Verschlüsselungssystemen zu Problemen führen. IP-Telefonie-Protokolle, die mit Rückkanälen und Out-of-Band-Signalisierung arbeiten, können im Zusammenhang mit NAT zu Komplikationen führen.
Die langfristige Lösung für das Problem der Adressenknappheit lautet IPv6. Sollte eines Tages IPv6 durch die Bank zum Einsatz kommen, ist NAT in der nun bekannten Form nicht mehr notwendig.
Da aber schon seit 1998 mit der Standardisierung von IPv6 ein Nachfolger auf seinen großen Durchbruch warten darf, wird NAT noch weitere Jahre für IT-Profis und Administratoren Tagesgeschäft bleiben. Das Verschwinden von NAT im IPv6-Umfeld erfordert von Administratoren ein Umdenken im Bereich der Sicherheit. Bis dato ist NAT viel mehr ein Sicherheitsfeature, denn allein eine Hilfestellung.
Jedes IPv6-fähige Gerät kann mit jedem anderen IPv6-Internet-System direkt kommunizieren, sofern die Verbindung nicht über Firewall-Richtlinien limitiert wird.