Netzwerk & WAN

NAT / NAT64

NAT (Network Address Translation) schreibt IP-Adressen und Ports um, meist damit viele private Geräte über eine öffentliche IPv4-Adresse ins Internet gelangen.

  • Adress- und Portumschreibung
  • Viele Geräte, eine IPv4
  • SNAT, DNAT, PAT
  • NAT64 für IPv6-only
  • Keine Firewall (häufiger Irrtum)
Von Andreas Huser, Technische Beratung & Architektur Aktualisiert am 11 Min. Lesezeit

NAT (Network Address Translation) schreibt beim Durchlaufen eines Routers oder einer Firewall die Adressen und oft auch die Ports in IP-Paketen um. Der mit Abstand häufigste Fall ist die Übersetzung vieler privater Adressen auf eine einzige öffentliche IPv4-Adresse, ohne die das heutige IPv4-Internet längst an der Adressknappheit gescheitert wäre.

Dieser Artikel erklärt den Unterschied zwischen Source- und Destination-NAT, das Multiplexing per Port (PAT) und die Verbindungstabelle dahinter, das Hairpinning, den Konflikt mit IPsec und seine Lösung über NAT-Traversal, das Carrier-Grade NAT der Provider sowie NAT64 für IPv6-only-Netze. Und er räumt mit einem hartnäckigen Irrtum auf: NAT ist keine Firewall.

1. Wozu NAT überhaupt da ist

Öffentliche IPv4-Adressen sind knapp und teuer. NAT erlaubt es, ein ganzes Netz hinter wenigen oder einer einzigen öffentlichen Adresse zu betreiben: Beim Verlassen des Netzes ersetzt der Router die private Quelladresse durch die öffentliche, bei der Antwort macht er es rückgängig. Das ist der Grund, warum NAT in nahezu jedem IPv4-Anschluss steckt.

2. Source NAT und Destination NAT

Welche Adresse umgeschrieben wird, bestimmt die Richtung:

  • Source NAT (SNAT, Masquerade) ersetzt die Quelladresse ausgehender Pakete durch die öffentliche. Masquerade ist der Sonderfall, bei dem die Adresse automatisch vom Ausgangs-Interface stammt.
  • Destination NAT (DNAT, Port-Forwarding) ersetzt die Zieladresse eingehender Pakete und leitet sie auf einen internen Server, etwa Port 443 nach innen.
  • Redirect ein Sonderfall von DNAT, der Verkehr auf die lokale Maschine selbst umlenkt.

3. PAT: viele hinter einer Adresse

Damit sich viele interne Geräte eine öffentliche Adresse teilen können, multiplext PAT (Port Address Translation, NAPT) die Verbindungen über die Quellports: Jede Verbindung bekommt einen eindeutigen öffentlichen Port. Theoretisch sind so Zehntausende gleichzeitige Verbindungen je öffentlicher Adresse möglich; das echte Limit setzt die Größe der Verbindungstabelle. Läuft sie voll, werden neue Verbindungen verworfen (Port-Erschöpfung).

4. Die zustandsbehaftete Verbindungstabelle

NAT ist zustandsbehaftet: Für jede Verbindung hält das Gerät einen Eintrag mit der Zuordnung und einem Timeout. Diese Tabelle, unter Linux das Connection Tracking, ist das eigentliche Gedächtnis. Die Timeouts sind je nach Zustand sehr unterschiedlich:

VerbindungGrößenordnung Timeout
TCP, etabliert (im Leerlauf)Stunden bis Tage
TCP, im Auf- oder AbbauMinuten
UDP (Leerlauf)Sekunden bis Minuten
ICMPSekunden

5. Hairpinning: der Zugriff auf die eigene öffentliche Adresse

Manchmal will ein interner Client einen internen Server über dessen öffentliche Adresse erreichen, etwa weil ein DNS-Name auf die externe IP zeigt. Das Gerät muss das Paket dann ins eigene Netz zurücklenken, das nennt man Hairpinning oder NAT-Loopback. Die Norm verlangt diese Fähigkeit, viele günstige Router beherrschen sie aber nicht oder nur teilweise, weshalb interne Zugriffe auf eigene veröffentlichte Dienste scheinbar grundlos scheitern.

6. NAT und IPsec: der Bruch und seine Lösung

NAT und IPsec vertragen sich von Haus aus schlecht. ESP, das IPsec-Transportformat, trägt keine Portnummern, die PAT zum Unterscheiden bräuchte, und die IPsec-Prüfung umfasst Adressen, die NAT verändert. Die Lösung ist NAT-Traversal: Beide Seiten erkennen das NAT auf dem Weg und kapseln ESP danach in UDP auf Port 4500, das sich wie normaler UDP-Verkehr durch NAT bewegen lässt.

Masquerade und Port-Weiterleitung (Linux nftables)

table ip nat {
  chain postrouting {
    type nat hook postrouting priority srcnat;
    oifname "wan0" masquerade            # SNAT: internes Netz nach außen
  }
  chain prerouting {
    type nat hook prerouting priority dstnat;
    iifname "wan0" tcp dport 443 dnat to 10.0.0.10  # DNAT: Webserver veröffentlichen
  }
}

7. ALGs und Carrier-Grade NAT

Manche Protokolle, etwa FTP oder SIP, tragen IP-Adressen in den Nutzdaten. Application Layer Gateways schreiben diese mit um, sind aber fehleranfällig und stören moderne Verfahren; SIP-ALGs gelten als häufige Störquelle und werden oft besser deaktiviert.

Wenn selbst dem Provider die öffentlichen Adressen ausgehen, schiebt er eine zweite NAT-Stufe ein: Carrier-Grade NAT mit dem reservierten Bereich 100.64.0.0/10. Das bringt eigene Probleme: Eine öffentliche Adresse identifiziert keinen einzelnen Kunden mehr (Logging über Ports und Zeit nötig), Geolokalisierung wird ungenau, und der Missbrauch eines Teilnehmers kann andere mit auf Sperrlisten ziehen.

8. NAT64: IPv6-only zu IPv4

In reinen IPv6-Netzen verbindet NAT64 die Clients mit verbliebenen IPv4-Zielen. Zusammen mit DNS64, das fehlende IPv6-Einträge aus den IPv4-Einträgen synthetisiert (üblich über den Präfix 64:ff9b::/96), erreicht ein IPv6-only-Client transparent einen IPv4-Server. NAT64 ist zustandsbehaftet und deckt TCP, UDP und ICMP ab, nicht jedoch Protokolle wie SCTP oder rohes IPsec.

9. NAT ist keine Firewall

Dass interne Hosts hinter PAT von außen nicht direkt erreichbar sind, wirkt wie Schutz, ist aber ein Nebeneffekt. Verantwortlich dafür ist die zustandsbehaftete Verbindungstabelle, die nur Antworten auf intern initiierte Verbindungen durchlässt, nicht die Adressumschreibung selbst. Dieselbe Wirkung erzielt eine zustandsbehaftete Firewall ganz ohne NAT, etwa unter IPv6. Eine falsch gesetzte Port-Weiterleitung kann einen Host umgekehrt sofort exponieren.

NAT erzeugt die Illusion einer Sicherheitsbarriere, ohne die kontrollierte Absicht einer Firewall. Schutz liefert die zustandsbehaftete Firewall, nicht die Adressübersetzung.

10. Stärken und Grenzen

StärkenGrenzen
Überbrückt die IPv4-Adressknappheit (viele Hosts, eine IP)Bricht die Ende-zu-Ende-Erreichbarkeit
Topologieänderung am Rand ohne interne UmnummerierungStört IPsec (NAT-Traversal nötig), SCTP, manche P2P-Verfahren
Veröffentlicht interne Dienste gezielt per DNATALGs sind fehleranfällig; CGN erzeugt Logging- und Geolokalisierungsprobleme
NAT64 verbindet IPv6-only-Netze mit IPv4Port-Erschöpfung bei sehr vielen Verbindungen
Gut standardisiertes, vorhersagbares VerhaltenKein Sicherheitsfeature: Schutz kommt von der Stateful Firewall

Häufige Fragen zu NAT / NAT64

Nein. Dass interne Geräte hinter PAT von außen nicht direkt erreichbar sind, ist ein Nebeneffekt der zustandsbehafteten Verbindungstabelle, die nur Antworten auf intern gestartete Verbindungen zulässt. Den eigentlichen Schutz leistet eine zustandsbehaftete Firewall, die es auch ohne NAT gibt, etwa unter IPv6. Eine fehlerhafte Port-Weiterleitung kann einen Host trotz NAT sofort exponieren.

IPsec im ESP-Format trägt keine Portnummern, die NAT zum Unterscheiden mehrerer interner Clients braucht, und die Integritätsprüfung umfasst Adressen, die NAT verändert. Die Lösung ist NAT-Traversal: ESP wird in UDP auf Port 4500 gekapselt und passiert NAT dann wie normaler UDP-Verkehr.

Auch der Autor ist nur ein Mensch, dem Fehler unterlaufen können. Wenn in diesem Beitrag etwas nicht stimmt oder unklar ist, freuen wir uns über einen kurzen Hinweis über das Kontaktformular unten, wir prüfen und korrigieren das.

Der nächste Schritt

NAT / NAT64 im eigenen Haus richtig einsetzen?

Wir klären, ob und wie der Baustein zu Ihrer Infrastruktur passt, und sagen offen, wann sich der Aufwand lohnt und wann nicht.

Erstgespräch vereinbaren oder Formular ausfüllen