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)
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:
| Verbindung | Größenordnung Timeout |
|---|---|
| TCP, etabliert (im Leerlauf) | Stunden bis Tage |
| TCP, im Auf- oder Abbau | Minuten |
| UDP (Leerlauf) | Sekunden bis Minuten |
| ICMP | Sekunden |
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ärken | Grenzen |
|---|---|
| Überbrückt die IPv4-Adressknappheit (viele Hosts, eine IP) | Bricht die Ende-zu-Ende-Erreichbarkeit |
| Topologieänderung am Rand ohne interne Umnummerierung | Stört IPsec (NAT-Traversal nötig), SCTP, manche P2P-Verfahren |
| Veröffentlicht interne Dienste gezielt per DNAT | ALGs sind fehleranfällig; CGN erzeugt Logging- und Geolokalisierungsprobleme |
| NAT64 verbindet IPv6-only-Netze mit IPv4 | Port-Erschöpfung bei sehr vielen Verbindungen |
| Gut standardisiertes, vorhersagbares Verhalten | Kein 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.