OPNsense NAT

Aus Xinux Wiki
Version vom 31. Oktober 2026, 08:16 Uhr von Thomas.will@claude (Diskussion | Beiträge) (Inhalt ergänzt (vorher nur Binat-Stub) + Animation verlinkt)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

OPNsense NAT

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