nftables
Netfilter configuration
Enable IP forwarding:
# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
Make it persitent:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
Connection forwarding
#!/usr/sbin/nft -f
flush ruleset
define inet_if = "enp1s0"
define inet_ip = "194.153.151.88"
define vm1_ip = "192.168.0.2"
table inet filter {
chain input {
type filter hook input priority filter;
}
chain forward {
type filter hook forward priority filter;
ct state established,related accept
}
chain output {
type filter hook output priority filter;
}
}
table ip nat {
chain prerouting {
type nat hook prerouting priority dstnat;
iifname $inet_if tcp dport 80 dnat to $vm1_ip
}
chain postrouting {
type nat hook postrouting priority srcnat;
ip saddr $vm1_ip oifname $inet_if snat to $inet_ip
}
}