Nftables Netmap
Zur Navigation springen
Zur Suche springen
1:1 NAT mit nftables (klassisches Netmap/Binat)
Dieses Beispiel beschreibt, wie man mit nftables ein klassisches 1:1 NAT (auch bekannt als netmap oder binat) zwischen zwei gleich großen IPv4-Subnetzen einrichtet. Dabei wird sowohl DNAT (Destination NAT) als auch SNAT (Source NAT) verwendet, um eine vollständige bidirektionale Adressumsetzung zu gewährleisten.
Voraussetzungen
- Zwei Subnetze mit identischer Größe, z. B.:
- Extern:
10.82.88.0/24 - Intern:
192.168.5.0/24
- Extern:
- Aktiviertes IP-Forwarding:
sysctl -w net.ipv4.ip_forward=1
nftables-Konfiguration
table inet nat {
chain prerouting {
type nat hook prerouting priority dstnat; policy accept;
# 1:1 DNAT: Zieladressen aus 10.82.88.0/24 werden auf 192.168.5.0/24 gemappt
dnat ip prefix to ip daddr map { 10.82.88.0/24 : 192.168.5.0/24 }
}
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
# 1:1 SNAT: Quelladressen aus 192.168.5.0/24 werden auf 10.82.88.0/24 gemappt
snat ip prefix to ip saddr map { 192.168.5.0/24 : 10.82.88.0/24 }
}
}Funktionsweise
- Jedes eingehende Paket mit Zieladresse im externen Subnetz (
10.82.88.0/24) wird 1:1 auf das interne Subnetz (192.168.5.0/24) umgeschrieben. - Rückantworten aus dem internen Netz erhalten eine passende SNAT-Adresse, sodass sie korrekt ins externe Netz zurückfinden.
- Hostbits bleiben bei der Übersetzung erhalten (z. B.
10.82.88.123→192.168.5.123und umgekehrt).
Hinweise
- Diese Methode funktioniert nur mit gleich großen Subnetzen.
- Für Logging und Debugging kann
counteran die Regeln angehängt werden. - Alternativ zur
inet-Table kann auchipverwendet werden, falls nur IPv4 betroffen ist.