NAT steht für Network Address Translation und beschreibt die Umsetzung von IP-Adressen und/oder Ports. Sie wird üblicherweise durchgeführt, wenn sich Rechner in einem lokalen Netzwerk mit dem Internet verbinden möchten. Definiert wurde NAT in RFC 2663.
So lange sich beide Kommunikationspartner im gleichen Netz befinden, können die Router im Netz die Verbindung direkt herstellen und Daten übermitteln.
Für einen Datenaustausch mit dem öffentlichen Netz, benötigt man eine öffentliche IP-Adresse, die entweder fest vergeben wurde oder dynamisch von Zugangsprovider vergeben wird. Sie ist nötig, damit der entfernte Server weiß, wohin er die Antwort senden kann.
Fordert nun ein Teilnehmer im lokalen Netzwerk eine externe Ressource an, so erkennen dies die Router und leiten es an die Firewall oder den Router weiter, der die Verbindung mit dem öffentlichen Netz herstellt. Dieser hat also sowohl eine interne als auch eine externe Adresse.
Dieser Router merkt sich nun, wer die Anfrage gestellt hat und stellt die Anfrage selbst ins öffentliche Netz. Der entfernte Rechner sieht eine Anforderung von der Adresse der Firewall bzw. des vermittelnden Routers, und sendet seine Antwort an diesen zurück.
Empfängt der Router die Antwort, weiß er, an wen er dies weiterzuleiten hat. Er hatte sich den anfragenden Rechner ja gemerkt.
intern [192.168.1.1] -> [192.168.1.2] ~ router ~ [a.b.c.d] [a.b.c.d] -> [w.x.y.z] www.example.org www.example.org [w.x.y.z] -> [a.b.c.d] ~ router ~ [192.168.1.2] [192.168.1.2] -> [192.168.1.1] intern
Dies führt nun dazu, dass alle Rechner eines lokalen Netzwerkes öffentlich unter der gleichen Adresse auftreten. Nur der ins öffentliche Netz vermittelnde Router weiß, wer was angefordert hatte. Dies vereinfacht die Wartung drastisch.
Unter der vereinfachenden Annahme, dass interner Datentransfer unkritisch ist, muss nur der nach außen hin sichtbare Rechner/Router explizit geschützt werden. Alle hinter im stehenden Rechner sind von außen nicht direkt sichtbar und somit nicht direkt ansprechbar. Ausgiebige Filterungen auf gültige Ports und das Entfernen unerwünschter Inhalte sind ebenso leichter möglich.
Darüber hinaus reduziert NAT den Bedarf an IP-Adressen enorm. Ein Unternehmen mit 1000 Rechner benötigt auch öffentliche 1000 IP-Adressen, wenn jeder Rechner direkt mit dem Internet kommunizieren können soll. Alle Rechner wären direkt von außen erreichbar.
Durch Einsatz der Network Address Translation werden aber nur 1000 private Adressen benötigt, zum Beispiel aus dem 10.x.x.x Block, kostenlos und nach außen hin unsichtbar. Zum öffentlichen Netz hin benötigt man nur eine einzige öffentliche IP-Adresse.
Zwischen diesen beiden Extrema ist mit NAT jede Abstufung denkbar.