iptables: rework ip(6)tables-nft dependencies
authorEtienne Champetier <champetier.etienne@gmail.com>
Wed, 26 Jan 2022 19:33:52 +0000 (14:33 -0500)
committerHauke Mehrtens <hauke@hauke-m.de>
Wed, 2 Feb 2022 23:02:31 +0000 (00:02 +0100)
commitb0bd6599e840c443d8ccb8759315e4dd006fd6aa
treef684cd01faae702303d14b441329e4d0f5147dba
parent1ebb8e3b6be8ed070dcb466fc8d1631e5453df72
iptables: rework ip(6)tables-nft dependencies

according to iptables-nft man page,
"These tools use the libxtables framework extensions and hook to the nf_tables
kernel subsystem using the nft_compat module."

This means that to work, iptables-nft needs the same modules as
iptables legacy except the ip(6)table-{filter,mangle,nat,raw}
ip_tables, ip6tables.
When those modules are loaded iptables-nft-save output contains
"# Warning: iptables-legacy tables present, use iptables-legacy-save to see them"
But as long as it's empty it should not be a problem.

To have nft properly display the rules created by ip(6)tables-nft we need
all iptables targets and matches to be built as extension and not built-in
(/usr/lib/iptables/libip(6)t_*.so)

When switching a package to iptables-nft, you need to keep the
iptables-mod-* dependencies

This patch does minimal changes:
- remove the direct iptables-nft -> iptables dependency
- and more important add nft-compat dependency

The rule
iptables-nft -A OUTPUT -d 8.8.8.8 -m comment --comment "aaa" -j REJECT
becomes
table ip filter {
chain OUTPUT {
type filter hook output priority filter; policy accept;
ip daddr 8.8.8.8 # xt_comment counter packets 0 bytes 0 # xt_REJECT
}
}

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
package/network/utils/iptables/Makefile