NAT: Die Netzwerkadressübersetzung im Router
Seit Juni 2012 steht mit der sechsten Version des Internet-Protokolls (IPv6) eine Lösung für die zunehmende Verknappung von IP-Adressen bereit. Doch der Umstieg auf den neuen Internetstandard geht nur schleppend voran.
Einer Google-Statistik zufolge nutzten im Oktober 2016 mehr als 85 Prozent der Internetnutzer weltweit noch immer den überholten Internetstandard IPv4. Doch dieser reicht mit rund 4,3 Milliarden Adressen längst nicht mehr aus, die Vielzahl internetfähiger Geräte mit eindeutigen IPs zu versorgen. Nicht nur Computer, Tablets oder Smartphones verlangen nach einem Zugang zur Online-Welt. Im Rahmen des Internet of Things (IoT) werden selbst Kühlschränke, Personenwaagen oder Kaffeemaschinen zu smarten Netzwerkgeräten.
IPv4 kompensiert das Problem der Adressknappheit bereits seit den frühen 90er-Jahren durch eine klare Abgrenzung privater und öffentlicher Adressräume. In lokalen Netzwerken (LANs) werden internetfähige Geräte mit privaten IP-Adressen lokal adressiert und durch eine gemeinsame öffentliche IP ans Internet angebunden. Zentrale Schnittstelle zwischen öffentlichem und privatem Adressbereich ist der Router. Hier erfolgt die Network-Address-Translation, kurz NAT.
Was ist NAT?
Die Abkürzung NAT steht für Network-Address-Translation, eine Adressübersetzung zwischen zwei Netzwerken, die in der Regel im Router erfolgt. Ziel dieses Verfahrens ist es, lokale Netzwerke mit dem Internet zu verbinden. Dabei unterscheidet man zwei verschiedene Typen der Netzwerkadressübersetzung: Source-NAT (SNAT) und Destination-NAT (DNAT).
Source-NAT
Privatnutzer kommen mit der Netzwerkadressübersetzung meist in Form von Source-NAT (deutsch: „Quellen-NAT“) in Berührung. Das Verfahren findet sowohl in Heim- als auch in Firmennetzwerken Anwendungheim-HAnwendung aN, wenn ein Netzwerkgerät mit privater IPv4-Adresse über eine öffentliche IP aufs Internet zugreifen soll. Im allgemeinen Sprachgebrauch wird der Begriff NAT jedoch nicht immer trennscharf verwendet.
Begriffsklärung: NAT vs. PAT
Grundsätzlich ist zu unterscheiden, ob jeder einzelnen privaten IP-Adresse in einem lokalen Netzwerk eine eigene öffentliche IP-Adresse zugeordnet wird (1:1-Übersetzung), oder ob sich alle Netzwerkgeräte die gleiche öffentliche IP teilen (n:1-Übersetzung).
Streng genommen handelt es sich nur bei der 1:1-Übersetzung um Network-Address-Translation im wörtlichen Sinne, da in diesem Fall lediglich die Netzwerkadressen umgeschrieben werden. Die n:1-Übersetzung hingegen erfordert zusätzlich eine Anpassung der Portnummer. Dieses Verfahren wird daher als PAT (Port-and-Address-Translation) bzw. NAPT (Network-Address-Port-Translation) bezeichnet.
Da das PAT-Konzept in IPv4-basierten Heim- und Firmennetzen den Standardfall darstellt, wird dieses Verfahren im allgemeinen Sprachgebrauch oft ungenau als NAT bezeichnet. Gängige Begriffe wie NAT-Router oder NAT-Tabelle kommen auch im Rahmen von PAT-Konzepten zum Einsatz. Doch wird von NAT gesprochen, ist heute eigentlich meist PAT bzw. NAPT gemeint.
Funktionsweise der Port-and-Address-Translation (PAT)
Im Regelfall kommt die Netzwerkadressübersetzung in Form von PAT zum Einsatz, um mehrere lokale Geräte über eine gemeinsame IP-Adresse mit dem Internet zu verbinden.
Da private IPs nicht routbar sind (im Internet somit keine Bedeutung haben), müssen Datenpakete, die ein Rechner (Client) im LAN an einen Server im Internet versendet, vom Router mit einer öffentlichen IP versehen werden. Dazu tauscht dieser die im Header des Datenpakets hinterlegte private IP-Adresse des Clients gegen seine eigene öffentliche IP-Adresse aus. Zudem wird die intern verwendete Portnummer durch einen freien Port des Routers ersetzt. Dieser tritt gegenüber Servern im Internet somit als Absender aller Datenpakete auf, die aus dem lokalen Netzwerk versendet werden.
Sämtliche Verbindungsinformationen (IP-Adressen, Ports und Timeouts) werden in der sogenannten NAT-Tabelle gespeichert (streng genommen müsste man auch hier von einer PAT-Tabelle sprechen). Beantwortet der adressierte Server die Anfrage des lokalen Computers mit einem Datenpaket, wird dieses zunächst an den entsprechenden Port des Routers zurückgesendet. Dieser hat nun die Aufgabe, das eingehende Datenpaket dem jeweiligen Netzwerkgerät zuzuteilen, das die Anfrage gestartet hat. Alles was der Router dazu benötigt, sind die in der NAT-Tabelle hinterlegten Verbindungsinformationen. Verdeutlichen lässt sich dies an einem Beispiel:
Wir nehmen an, ein Router hat von einem Internetserviceprovider (ISP) die öffentliche IP-Adresse 217.229.111.18 zugewiesen bekommen und fungiert als Standardgateway für ein lokales Netzwerk. Dieses stellt für Netzwerkgeräte den privaten IP-Adressbereich 192.168.0.0/24 zur Verfügung (alle Adressen von 192.168.0.0 bis 192.168.0.24). Will nun eines dieser Geräte (z. B. ein Rechner mit der privaten IP-Adresse 192.168.0.2) eine Verbindung ins Internet herstellen (z. B. zu einem Webserver mit der öffentlichen IP 71.123.239.82 an dessen Portnummer 80), reserviert dieses einen internen Port (z.B. 22433) und übermittelt die Aufforderung zum Verbindungsaufbau an den als Standardgateway eingetragenen Router. Dieser ist intern über die private IP 192.168.0.1 adressierbar und kommuniziert nach außen hin mit der öffentlichen IP 217.229.111.18.
Der Router bekommt somit folgende Informationen: Gerät 192.168.0.2 will an Port 22433 eine Verbindung zu 71.123.239.82 an Port 80 aufbauen. Um diesem Wunsch nachzukommen, muss der Router die Quelladresse des LAN-Geräts (IP-Adresse und Portnummer) durch die eigene Absenderadresse ersetzen. Er reserviert daher einen beliebigen freien Port (z. B. 61001) und leitet die Netzwerkadressübersetzung ein: Aus 192.168.0.2:22433 wird 217.229.111.18: 61001. Alle relevanten Informationen werden in der NAT-Tabelle auf dem Router hinterlegt.
Private IP des Clients | Port des Clients | Öffentliche IP des Routers | Öffentlicher Port des Routers |
---|---|---|---|
192.168.0.2 | 22433 | 217.229.111.18 | 61001 |
Beim Webserver eingegangen, wird die Anfrage verarbeitet und, wenn möglich, mit dem angeforderten Datenpaket (z. B. den Daten einer Website) beantwortet. Diese Antwort erreicht zunächst den Router und wird von diesem mithilfe der gespeicherten Verbindungsinformationen weitergeleitet: Laut NAT-Tabelle ist der externe Port 61001 für Antwortpakete reserviert, die an den Port 22433 des Netzwerkgeräts 192.168.0.2 zu senden sind.
Neben IP-Adressen und Portnummern notieren Router in der NAT-Tabelle für jede Verbindung eine Zeitmarkierung. Diese dient als Timeout und gibt an, wann der betreffende Eintrag gelöscht werden kann. So lässt sich sicherstellen, dass Ports bei Inaktivität nicht dauerhaft geöffnet bleiben und möglicherweise zum Einfalltor für Angriffe aus dem Internet werden.
Destination-NAT
Während Source-NAT Verbindungen aus dem LAN ins Internet ermöglicht, wird Destination-NAT eingesetzt, um ein lokales Gerät dauerhaft für eingehende Verbindungen aus dem Internet erreichbar zu machen. Dazu wird ein öffentlicher Port über die Router-Konfiguration dauerhaft mit der IP-Adresse eines lokalen Netzwerkgeräts verknüpft. Alle Datenpakete, die am entsprechenden Port eingehen, werden somit automatisch an die lokale Zieladresse weitergeleitet. Man spricht in diesem Fall von Port-Forwarding (Port-Weiterleitung). Zum Einsatz kommt dieses Verfahren beispielsweise, wenn Serverdienste aus dem LAN heraus im Internet bereitgestellt werden sollen. Offene Ports stellen jedoch ein Sicherheitsrisiko dar. Es empfiehlt sich daher, das lokale Netzwerk vom Datenverkehr aus dem Internet abzuschirmen, indem Geräte, die per Port-Forwarding adressierbar sind, in demilitarisierten Zonen (DMZ) isoliert werden.
NAT: Sicherheitsmerkmal oder Sicherheitslücke?
Die Netzwerkadressübersetzung im Router wird aufgrund der strikten Trennung von LAN und Internet mitunter als Sicherheitsmerkmal diskutiert. Die vermeintliche Schutzfunktion ist jedoch lediglich ein Nebeneffekt. NAT und PAT wurden entwickelt, um der Verknappung von IPv4-Adressen entgegenzuwirken. Die Funktionen einer Firewall oder eines Paketfilters kann das Verfahren nicht zur Verfügung stellen.
Dennoch bieten NAT und PAT Nutzern in privaten Netzwerken einen gewissen Grad an Privatsphäre. Da alle lokalen Endgeräte eines IPv4-LANs über dieselbe öffentliche IP-Adresse ins Netz gehen, surfen Nutzer mehr oder weniger anonym. Der einzelne Host hinter dem Netzwerk-Router ist über das Internet nicht direkt adressierbar – es sei denn, es wurde zu diesem Zweck ein Port-Forwarding eingerichtet. Für externe Beobachter scheinen alle Anfragen aus dem LAN vom Router auszugehen.
Darüber hinaus beinhaltet das Verfahren eine Schutzfunktion, die dafür sorgt, dass alle von außen initiierten Verbindungsversuche automatisch verworfen werden, solange man dies nicht mit Portfreigaben aushebelt. Antwortpakete aus dem Internet werden nur angenommen, wenn an einem bestimmten Port des Routers Server-Antworten erwartet werden. Welcher Webserver antwortet, wird im Rahmen von NAT oder PAT jedoch nicht geprüft. Wurde ein Router-Port im Rahmen eines intern initiierten Verbindungsaufbaus geöffnet, stellt dieser eine Sicherheitslücke dar. Es empfiehlt sich daher, zusätzliche Sicherheitsmechanismen wie Firewalls und Paketfilter zu implementieren.
Nicht wegzudiskutieren sind zudem die Schwächen der Netzwerkadressübersetzung via NAT oder PAT, die sich in erste Linie aus der strikten Trennung von privaten und öffentlichen Adressräumen ergeben. Diese stellt einen Bruch des im Rahmen des Internet-Designs angestrebten Ende-zu-Ende-Prinzips dar. Zu einem Problem wird NAT daher bei Internetanwendungen, die auf Grundlage dieses Gestaltungsprinzips konzipiert wurden.
Protokollen wie FTP liegt die Annahme zugrunde, dass Hosts im Internet direkt miteinander kommunizieren, ohne dass ein dazwischenliegender Knoten IP-Adressen oder Portnummern verändert. In NAT-gestützten IPv4-Netzwerken lassen sich diese daher nur mit Hilfe von Umgehungstechnologien einsetzen. Jeder zusätzlich benötigte Mechanismus erhöht jedoch die Komplexität und Fehleranfälligkeit eines IT-Systems. Die konsequente Umsetzung des Ende-zu-Ende-Prinzips ist daher ein zentrales Design-Ziel des neuen Web-Standards IPv6.
IPv6: Das Ende für NAT?
Mit der sechsten Version des Internet-Protokolls hat sich die Anzahl der weltweit zur Verfügung stehenden IP-Adressen vervielfacht. Statt 4,3 Milliarden IPv4-Adressen stehen heute theoretisch 340 Sextillionen IPv6-Adressen bereit, um Netzwerkgeräte ans Internet anzubinden. Mit anderen Worten: Jede Kaffeemaschine bekommt ihre einzigartige, weltweit routbare IP-Adresse. Die Netzwerkadressübersetzung via NAT wird somit im Grunde überflüssig, kann in IPv6-Netzwerken jedoch weiterhin zu Einsatz kommen, um private Adressbereiche vom öffentlichen Netz abzuschirmen.