尝试学习 nftables,因为它已在 Openwrt 22.03 上实现,对 iptables 几乎没有向后兼容性。
我有 iptables 规则,用于将流量从路由器转发到运行 Suricata 的虚拟机:
iptables -i eth0 -t mangle -A PREROUTING --s 0/0 -j TEE --gateway 192.168.1.156
iptables -i eth0.2 -t mangle -A POSTROUTING -s 192.168.0.0/24 -j TEE --gateway 192.168.1.156
人们会推荐什么作为 nftables 规则呢?我正在尝试从转换它们的结果中学习,谢谢!
答案1
使用iptables-translate
实用程序。它将把 iptables 规则转换为 nftables。对于您的规则,命令将是:
iptables-translate -i eth0 -t mangle -A PREROUTING -s 0/0 -j TEE --gateway 192.168.1.156
iptables-translate -t mangle -A POSTROUTING -s 192.168.0.0/24 -j TEE --gateway 192.168.1.156
结果是:
nft add rule ip mangle PREROUTING iifname "eth0" counter dup to 192.168.1.156
nft add rule ip mangle POSTROUTING ip saddr 192.168.0.0/24 counter dup to 192.168.1.156
也看看这里https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables