NAT – Network Address Translation

Abkürzung: NAT

NAT schreibt Adressen in IP-Paketen um. Das Verfahren erlaubt es, ein ganzes Netz hinter einer einzigen öffentlichen Adresse zu betreiben.

Definition

Network Address Translation bezeichnet das Umschreiben von Adressen im Kopf eines IP-Pakets beim Durchlauf durch einen Router oder eine Firewall. Der ursprüngliche Zweck war die Umnummerierung von Netzen ohne Eingriff an den Endgeräten. Durchgesetzt hat sich das Verfahren aus einem anderen Grund: Es entschärft die Knappheit öffentlicher IPv4-Adressen.

Im Heim- und Firmennetz arbeitet NAT fast immer in einer bestimmten Ausprägung. Die Geräte im internen Netz tragen private Adressen nach RFC 1918, also aus 10.0.0.0/8, 172.16.0.0/12 oder 192.168.0.0/16. Der Router ersetzt bei ausgehenden Paketen die private Quelladresse durch seine eigene öffentliche und merkt sich die Zuordnung. Antwortpakete werden anhand dieser Tabelle zurückübersetzt.

Spielarten

  • SNAT (Source NAT). Die Quelladresse wird ersetzt. Der Regelfall für ausgehenden Verkehr.
  • DNAT (Destination NAT). Die Zieladresse wird ersetzt. Grundlage jeder Portweiterleitung auf einen internen Server.
  • PAT, auch NAPT oder Masquerading. Erweiterung von SNAT um die Portnummer. Erst dadurch können sich viele Geräte eine einzige öffentliche Adresse teilen, weil die Zuordnung nicht über die Adresse allein, sondern über die Kombination aus Adresse und Port erfolgt. Was im Alltag NAT genannt wird, ist fast immer PAT.
  • 1:1-NAT. Eine öffentliche Adresse wird fest auf eine interne abgebildet. In Firmennetzen für Server gebräuchlich.

Der Zustandsspeicher

NAT ist zustandsbehaftet. Der Router führt eine Tabelle laufender Verbindungen mit interner Adresse, internem Port, externem Port und Ziel. Daraus folgen zwei Eigenschaften, die im Betrieb spürbar sind.

Einträge verfallen nach einer Zeit ohne Verkehr. Bei TCP sind lange Zeiten üblich, bei UDP kurze. Anwendungen, die eine Verbindung offen halten wollen, senden deshalb regelmäßig kleine Pakete. Der Parameter heisst bei VPN-Software meist Keepalive oder Persistent Keepalive.

Die Tabelle ist endlich. Viele gleichzeitige Verbindungen können sie füllen, was sich als sporadischer Verbindungsabbruch bemerkbar macht, ohne dass die Leitung ausgelastet wäre.

Was NAT bricht

NAT verletzt die Annahme, dass eine Adresse im Paket dieselbe ist, die der Absender kennt. Protokolle, die Adressen im Nutzdatenteil mitführen, geraten dadurch in Schwierigkeiten.

SIP und VoIP. Der Verbindungsaufbau enthält die Adresse, an die der Sprachkanal gesendet werden soll. Steht dort eine private Adresse, kommt keine Sprache an. Typisches Fehlerbild: Das Telefon klingelt, die Verbindung steht, aber eine Richtung bleibt stumm.

Aktives FTP. Der Client teilt dem Server eine Adresse mit, auf der er die Datenverbindung erwartet.

Eingehende Verbindungen allgemein. Ohne passenden Eintrag in der Tabelle weiß der Router nicht, an welches interne Gerät ein von außen eintreffendes Paket gehört. Es wird verworfen. Abhilfe schaffen Portweiterleitungen, UPnP oder Verfahren aus dem Umfeld NAT Traversal.

Sicherheit

NAT wird häufig als Sicherheitsmerkmal beschrieben. Das ist eine Nebenwirkung, kein Entwurfsziel. Der Schutz besteht allein darin, dass unangefordert eintreffende Pakete keine Zuordnung finden. Verbindungen, die von innen aufgebaut werden, passieren ungefiltert.

Eine Firewall entscheidet nach Regeln, was durchgelassen wird. NAT entscheidet nur, ob eine Zuordnung existiert. Wer NAT für eine Firewall hält, überschätzt es.

NAT und IPv6

Unter IPv6 ist NAT nicht vorgesehen. Jedes Gerät hat eine weltweit gültige Adresse, die Adressknappheit als Beweggrund entfällt.

Der Filterschutz, den NAT unter IPv4 nebenbei bewirkt hat, wird unter IPv6 von der Firewall im Router übernommen, die eingehende Verbindungen standardmäßig abweist. Wer ein Gerät erreichbar machen will, gibt es dort frei, statt einen Port weiterzuleiten.

Abgrenzung

Carrier-grade NAT ist NAT beim Anbieter statt beim Kunden. Der Anschluss bekommt keine öffentliche Adresse mehr, sondern eine aus einem geteilten Bereich. Alle oben genannten Einschränkungen gelten dann verstärkt, und Portweiterleitungen im Router des Kunden bleiben wirkungslos.

Ein Proxy arbeitet auf Anwendungsebene und baut eine eigene Verbindung zum Ziel auf. Er ersetzt nicht nur Adressen, sondern terminiert den Verkehr.

Portweiterleitung ist eine Anwendung von DNAT, kein eigenes Verfahren.

Quellen

  • RFC 1631 und RFC 3022: The IP Network Address Translator
  • RFC 1918: Address Allocation for Private Internets
  • RFC 4787: Network Address Translation (NAT) Behavioral Requirements for Unicast UDP
  • RFC 5382: NAT Behavioral Requirements for TCP
  • RFC 8200: Internet Protocol, Version 6 (IPv6) Specification

Erstellt: · Überarbeitet: