To pravidlo pro bezstavový nat nemáte úplné. Zřejmě opsáno z wikipedie (nebo jste to tam psal vy?) Už když ho čtete, tak tam chybí všechny informace pro funkčnost algoritmu, které si router nedomyslí. To co popisujete vypíná jen connection-tracking
Správně
viz http://linux-ip.net/html/nat-stateless.html#idm140337856992368
sekce 5.3.2
#ip route add nat VE.RE.J.NA via VN.IT.R.NI
#ip rule add nat VE.RE.J.NA from VN.IT.R.NI
a až pak si můžeme říct že tu VN.IT.R.NI netrack-ujeme.. (notrack)
1:1 bezstavový NAT mi funguje takto:
nft add rule ip raw prerouting iifname $IF_INTERNET ip daddr $VEREJNA_IP ip daddr set $LOKALNI_IP notrack
nft add rule ip raw prerouting iifname $IF_LAN ip daddr != { 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 } ip saddr $LOKALNI_IP ip saddr set $VEREJNA_IP notrack
Podmínkou je, že $LOKALNI_IP a $VEREJNA_IP nesmí být přímo na stroji, co NAT dělá.
Dobrý den,
předem moc děkuji za sérii článků o nftables! Donutila mě změnit zažité konvence s iptables a je to podstatně lepší :-)
Nejsem kovaný ve firewallech, ale malé povědomí mám :-) Měl bych dotaz....
V sekci o DNAT je pouze pravidlo pro řetězec prerouting. V iptables jsem musel udělat pravidlo v PREROUTING i POSTROUTING.
Na wiki nftables je psáno v podstatě to samé co zde a to, že se pravidlo dává do nat prerouting. Mě se to bohužel nepodařilo rozjet. Funguje mi to pouze po přidání dalšího pravidla do nat postrouting, tak jak u iptables.
Pochopil jsem článek špatně?
Zkoušel jsem s/bez uvedení iif.
Děkuji!