OPNsense NAT: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Inhalt ergänzt (vorher nur Binat-Stub) + Animation verlinkt |
||
| (Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
=Binat= | = OPNsense NAT = | ||
* Animation: [https://xinux.org/opnsense-nat.html OPNsense NAT richtig verstehen] ([https://xinux.org/opnsense-nat-einfach.html einfach]), mit Outbound NAT, Port Forward, NAT Reflection, 1:1 NAT und Fehlerbildern | |||
== Grundprinzip == | |||
* Private Adressen (RFC 1918) sind im Internet nicht routbar | |||
* NAT übersetzt Adressen unterwegs und merkt sich die Zuordnung für den Rückweg | |||
== Outbound NAT (Source NAT) == | |||
* Automatisch ab Werk: jeder ausgehende Verkehr wird auf die WAN-Adresse übersetzt | |||
* Der Rückweg läuft über den Zustand (State): Port ↔ interner Client | |||
* Firewall → NAT → Outbound, Betriebsarten: | |||
** Automatic – Voreinstellung, Regeln für alle internen Netze automatisch | |||
** Hybrid – automatische Regeln bleiben, eigene kommen zusätzlich dazu | |||
** Manual – alles selbst anlegen (Vorsicht: vergessene Netze haben kein Internet mehr) | |||
** Disable – keine Übersetzung (wenn ein vorgeschaltetes Gerät schon NAT macht) | |||
== Port Forward (Destination NAT) == | |||
* Leitet Anfragen von außen auf WAN-IP:Port an einen internen Server weiter | |||
* Firewall → NAT → Port Forward | |||
* Erzeugt normalerweise automatisch eine passende Firewall-Regel (Filter rule association) | |||
* Ohne diese Regel: Übersetzung greift, das Paket wird danach trotzdem verworfen | |||
== NAT Reflection == | |||
* Problem: ein LAN-Client ruft die öffentliche Adresse/den Hostnamen des eigenen Servers auf | |||
* Ohne Reflection kommt die Anfrage nicht zurück (Hairpin-Problem) | |||
* Lösung 1: NAT Reflection aktivieren (Firewall → Settings → Advanced oder je Port Forward) | |||
* Lösung 2 (sauberer): Split DNS – interner Name zeigt für LAN-Clients direkt auf die interne Adresse | |||
== 1:1 NAT == | |||
* Bildet eine ganze öffentliche Adresse dauerhaft auf einen internen Host ab, in beide Richtungen | |||
* Braucht trotzdem eine eigene Firewall-Regel – 1:1 NAT übersetzt nur, erlaubt nichts | |||
== Reihenfolge: NAT vs. Filter == | |||
* Eingehend (Port Forward, 1:1): erst NAT, dann Filter → die Firewall-Regel muss die übersetzte (interne) Zieladresse treffen, nicht die öffentliche | |||
* Ausgehend (Outbound NAT): erst Filter, dann NAT → die Firewall-Regel sieht noch die originale (private) Quelladresse | |||
== Fehlerbilder == | |||
* Port Forward von außen erreichbar, von innen nicht → NAT Reflection fehlt → Reflection aktivieren oder Split DNS | |||
* Port Forward kommt gar nicht an → „Filter rule association: None“ gewählt → Firewall-Regel selbst anlegen | |||
* Nach Wechsel auf Manual: ein Netz hat kein Internet mehr → automatische Outbound-Regel fehlt → ergänzen | |||
* Doppeltes NAT hinter einem ISP-Router/Modem → dort zusätzlich weiterleiten oder Bridge-Modus | |||
* 1:1 NAT übersetzt, Verkehr wird trotzdem geblockt → eigene Firewall-Regel fehlt | |||
== Binat (historisches Beispiel) == | |||
*Vom Provider zugeteiltes Netz | *Vom Provider zugeteiltes Netz | ||
**172.16.232.0/24 | **172.16.232.0/24 | ||
| Zeile 7: | Zeile 59: | ||
**em0 | **em0 | ||
*pfctl Regel | *pfctl Regel | ||
**binat on em0 inet from 192.168.232.0/24 to any -> 172.16.232.0/ | **binat on em0 inet from 192.168.232.0/24 to any -> 172.16.232.0/24 | ||
[[Datei:Opnsense-nat1.png]] | [[Datei:Opnsense-nat1.png]] | ||
[[Kategorie:OPNsense]] | |||
Aktuelle Version vom 31. Oktober 2026, 08:16 Uhr
OPNsense NAT
- Animation: OPNsense NAT richtig verstehen (einfach), mit Outbound NAT, Port Forward, NAT Reflection, 1:1 NAT und Fehlerbildern
Grundprinzip
- Private Adressen (RFC 1918) sind im Internet nicht routbar
- NAT übersetzt Adressen unterwegs und merkt sich die Zuordnung für den Rückweg
Outbound NAT (Source NAT)
- Automatisch ab Werk: jeder ausgehende Verkehr wird auf die WAN-Adresse übersetzt
- Der Rückweg läuft über den Zustand (State): Port ↔ interner Client
- Firewall → NAT → Outbound, Betriebsarten:
- Automatic – Voreinstellung, Regeln für alle internen Netze automatisch
- Hybrid – automatische Regeln bleiben, eigene kommen zusätzlich dazu
- Manual – alles selbst anlegen (Vorsicht: vergessene Netze haben kein Internet mehr)
- Disable – keine Übersetzung (wenn ein vorgeschaltetes Gerät schon NAT macht)
Port Forward (Destination NAT)
- Leitet Anfragen von außen auf WAN-IP:Port an einen internen Server weiter
- Firewall → NAT → Port Forward
- Erzeugt normalerweise automatisch eine passende Firewall-Regel (Filter rule association)
- Ohne diese Regel: Übersetzung greift, das Paket wird danach trotzdem verworfen
NAT Reflection
- Problem: ein LAN-Client ruft die öffentliche Adresse/den Hostnamen des eigenen Servers auf
- Ohne Reflection kommt die Anfrage nicht zurück (Hairpin-Problem)
- Lösung 1: NAT Reflection aktivieren (Firewall → Settings → Advanced oder je Port Forward)
- Lösung 2 (sauberer): Split DNS – interner Name zeigt für LAN-Clients direkt auf die interne Adresse
1:1 NAT
- Bildet eine ganze öffentliche Adresse dauerhaft auf einen internen Host ab, in beide Richtungen
- Braucht trotzdem eine eigene Firewall-Regel – 1:1 NAT übersetzt nur, erlaubt nichts
Reihenfolge: NAT vs. Filter
- Eingehend (Port Forward, 1:1): erst NAT, dann Filter → die Firewall-Regel muss die übersetzte (interne) Zieladresse treffen, nicht die öffentliche
- Ausgehend (Outbound NAT): erst Filter, dann NAT → die Firewall-Regel sieht noch die originale (private) Quelladresse
Fehlerbilder
- Port Forward von außen erreichbar, von innen nicht → NAT Reflection fehlt → Reflection aktivieren oder Split DNS
- Port Forward kommt gar nicht an → „Filter rule association: None“ gewählt → Firewall-Regel selbst anlegen
- Nach Wechsel auf Manual: ein Netz hat kein Internet mehr → automatische Outbound-Regel fehlt → ergänzen
- Doppeltes NAT hinter einem ISP-Router/Modem → dort zusätzlich weiterleiten oder Bridge-Modus
- 1:1 NAT übersetzt, Verkehr wird trotzdem geblockt → eigene Firewall-Regel fehlt
Binat (historisches Beispiel)
- Vom Provider zugeteiltes Netz
- 172.16.232.0/24
- Privates DMZ Netz
- 192.168.232.0/24
- WAN Interface
- em0
- pfctl Regel
- binat on em0 inet from 192.168.232.0/24 to any -> 172.16.232.0/24
