* netfilter: Kconfig: IP6_NF_IPTABLES_LEGACY old =y behaviour question
@ 2024-08-22 9:01 Breno Leitao
2024-08-22 11:23 ` Florian Westphal
0 siblings, 1 reply; 5+ messages in thread
From: Breno Leitao @ 2024-08-22 9:01 UTC (permalink / raw)
To: fw; +Cc: rbc, netfilter-devel
Hello Florian,
I am rebasing my workflow in into a new kernel, and I have a question
that you might be able to help me. It is related to
IP6_NF_IPTABLES_LEGACY Kconfig, and the change in a9525c7f6219cee9
("netfilter: xtables: allow xtables-nft only builds").
In my kernel before this change, I used to have ip6_tables "module" as
builtin (CONFIG_IP6_NF_IPTABLES=y), and all the other dependencies as
modules, such as IP6_NF_FILTER=m, IP6_NF_MANGLE=m, IP6_NF_RAW=m.
After the mentioned commit above, I am not able to have ip6_tables set
as a builtin (=y) anymore, give that it is a "hidden" configuration, and
the only way is to change some of the selectable dependencies
(IP6_NF_RAW for insntance) to be a built-in (=y).
That said, do you know if I can keep the ip6_tables as builtin without
changing any of the selectable dependencies configuration. In other
words, is it possible to keep the old behaviour (ip6_table builtin and
the dependenceis as modules) with the new IP6_NF_IPTABLES_LEGACY
configuration?
Thank you!
--breno
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: netfilter: Kconfig: IP6_NF_IPTABLES_LEGACY old =y behaviour question
2024-08-22 9:01 netfilter: Kconfig: IP6_NF_IPTABLES_LEGACY old =y behaviour question Breno Leitao
@ 2024-08-22 11:23 ` Florian Westphal
2024-08-22 12:45 ` Breno Leitao
0 siblings, 1 reply; 5+ messages in thread
From: Florian Westphal @ 2024-08-22 11:23 UTC (permalink / raw)
To: Breno Leitao; +Cc: fw, rbc, netfilter-devel
Breno Leitao <leitao@debian.org> wrote:
> Hello Florian,
>
> I am rebasing my workflow in into a new kernel, and I have a question
> that you might be able to help me. It is related to
> IP6_NF_IPTABLES_LEGACY Kconfig, and the change in a9525c7f6219cee9
> ("netfilter: xtables: allow xtables-nft only builds").
>
> In my kernel before this change, I used to have ip6_tables "module" as
> builtin (CONFIG_IP6_NF_IPTABLES=y), and all the other dependencies as
> modules, such as IP6_NF_FILTER=m, IP6_NF_MANGLE=m, IP6_NF_RAW=m.
>
> After the mentioned commit above, I am not able to have ip6_tables set
> as a builtin (=y) anymore, give that it is a "hidden" configuration, and
> the only way is to change some of the selectable dependencies
> (IP6_NF_RAW for insntance) to be a built-in (=y).
>
> That said, do you know if I can keep the ip6_tables as builtin without
> changing any of the selectable dependencies configuration. In other
> words, is it possible to keep the old behaviour (ip6_table builtin and
> the dependenceis as modules) with the new IP6_NF_IPTABLES_LEGACY
> configuration?
No. But why would you need it?
ip6_tables.c is only relevant for the various tables.
You could make a patch for nf-next that exposes those symbols as per description
in a9525c7f6219cee9284c0031c5930e8d41384677, i.e. with 'depends on'
change.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: netfilter: Kconfig: IP6_NF_IPTABLES_LEGACY old =y behaviour question
2024-08-22 11:23 ` Florian Westphal
@ 2024-08-22 12:45 ` Breno Leitao
2024-08-22 13:20 ` Florian Westphal
0 siblings, 1 reply; 5+ messages in thread
From: Breno Leitao @ 2024-08-22 12:45 UTC (permalink / raw)
To: Florian Westphal; +Cc: rbc, netfilter-devel
Hello Florian,
On Thu, Aug 22, 2024 at 01:23:39PM +0200, Florian Westphal wrote:
> Breno Leitao <leitao@debian.org> wrote:
> > Hello Florian,
> >
> > I am rebasing my workflow in into a new kernel, and I have a question
> > that you might be able to help me. It is related to
> > IP6_NF_IPTABLES_LEGACY Kconfig, and the change in a9525c7f6219cee9
> > ("netfilter: xtables: allow xtables-nft only builds").
> >
> > In my kernel before this change, I used to have ip6_tables "module" as
> > builtin (CONFIG_IP6_NF_IPTABLES=y), and all the other dependencies as
> > modules, such as IP6_NF_FILTER=m, IP6_NF_MANGLE=m, IP6_NF_RAW=m.
> >
> > After the mentioned commit above, I am not able to have ip6_tables set
> > as a builtin (=y) anymore, give that it is a "hidden" configuration, and
> > the only way is to change some of the selectable dependencies
> > (IP6_NF_RAW for insntance) to be a built-in (=y).
> >
> > That said, do you know if I can keep the ip6_tables as builtin without
> > changing any of the selectable dependencies configuration. In other
> > words, is it possible to keep the old behaviour (ip6_table builtin and
> > the dependenceis as modules) with the new IP6_NF_IPTABLES_LEGACY
> > configuration?
>
> No. But why would you need it?
In certain environments, iptables needs to run, but there is *no*
permission to load modules.
For those cases, I have CONFIG_IP6_NF_IPTABLES configured as y in
previous kernels, and now it becomes a "m", which doesn't work because
iptables doesn't have permission to load modules, returning:
$ ip6tables -L
modprobe: FATAL: Module ip6_tables not found in directory /lib/modules/....
ip6tables v1.8.10 (legacy): can't initialize ip6tables table `filter': Table does not exist (do you need to insmod?)
Perhaps ip6tables or your kernel needs to be upgraded.
> You could make a patch for nf-next that exposes those symbols as per description
> in a9525c7f6219cee9284c0031c5930e8d41384677, i.e. with 'depends on'
> change.
Sure, I am happy to do it, but I would like to understand a bit better
before. Does it mean we make IP_NF_IPTABLES_LEGACY selectable by the
user, and changes the dependable configs from "selects" to "depends on"?
Something as the following (not heavily tested)?
Thanks for the quick answer!
--breno
Author: Breno Leitao <leitao@debian.org>
Date: Thu Aug 22 05:35:41 2024 -0700
netfilter: Make IP_NF_IPTABLES_LEGACY selectable
This option makes IP_NF_IPTABLES_LEGACY user selectable, giving
users the option to configure iptables without enabling any other
config.
Suggested-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Breno Leitao <leitao@debian.org>
diff --git a/net/ipv4/netfilter/Kconfig b/net/ipv4/netfilter/Kconfig
index 1b991b889506..b5ff14a5272a 100644
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
@@ -12,7 +12,11 @@ config NF_DEFRAG_IPV4
# old sockopt interface and eval loop
config IP_NF_IPTABLES_LEGACY
- tristate
+ tristate "Legacy IP tables support"
+ default n
+ select NETFILTER_XTABLES
+ help
+ iptables is a general, extensible packet identification legacy framework.
config NF_SOCKET_IPV4
tristate "IPv4 socket lookup support"
@@ -177,7 +181,7 @@ config IP_NF_MATCH_TTL
config IP_NF_FILTER
tristate "Packet filtering"
default m if NETFILTER_ADVANCED=n
- select IP_NF_IPTABLES_LEGACY
+ depends on IP_NF_IPTABLES_LEGACY
help
Packet filtering defines a table `filter', which has a series of
rules for simple packet filtering at local input, forwarding and
@@ -217,7 +221,7 @@ config IP_NF_NAT
default m if NETFILTER_ADVANCED=n
select NF_NAT
select NETFILTER_XT_NAT
- select IP_NF_IPTABLES_LEGACY
+ depends on IP_NF_IPTABLES_LEGACY
help
This enables the `nat' table in iptables. This allows masquerading,
port forwarding and other forms of full Network Address Port
@@ -258,7 +262,7 @@ endif # IP_NF_NAT
config IP_NF_MANGLE
tristate "Packet mangling"
default m if NETFILTER_ADVANCED=n
- select IP_NF_IPTABLES_LEGACY
+ depends on IP_NF_IPTABLES_LEGACY
help
This option adds a `mangle' table to iptables: see the man page for
iptables(8). This table is used for various packet alterations
@@ -293,7 +297,7 @@ config IP_NF_TARGET_TTL
# raw + specific targets
config IP_NF_RAW
tristate 'raw table support (required for NOTRACK/TRACE)'
- select IP_NF_IPTABLES_LEGACY
+ depends on IP_NF_IPTABLES_LEGACY
help
This option adds a `raw' table to iptables. This table is the very
first in the netfilter framework and hooks in at the PREROUTING
@@ -305,9 +309,7 @@ config IP_NF_RAW
# security table for MAC policy
config IP_NF_SECURITY
tristate "Security table"
- depends on SECURITY
- depends on NETFILTER_ADVANCED
- select IP_NF_IPTABLES_LEGACY
+ depends on SECURITY && NETFILTER_ADVANCED && IP_NF_IPTABLES_LEGACY
help
This option adds a `security' table to iptables, for use
with Mandatory Access Control (MAC) policy.
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: netfilter: Kconfig: IP6_NF_IPTABLES_LEGACY old =y behaviour question
2024-08-22 12:45 ` Breno Leitao
@ 2024-08-22 13:20 ` Florian Westphal
2024-08-22 17:55 ` Breno Leitao
0 siblings, 1 reply; 5+ messages in thread
From: Florian Westphal @ 2024-08-22 13:20 UTC (permalink / raw)
To: Breno Leitao; +Cc: Florian Westphal, rbc, netfilter-devel
Breno Leitao <leitao@debian.org> wrote:
> On Thu, Aug 22, 2024 at 01:23:39PM +0200, Florian Westphal wrote:
> > Breno Leitao <leitao@debian.org> wrote:
> > > Hello Florian,
> > >
> > > I am rebasing my workflow in into a new kernel, and I have a question
> > > that you might be able to help me. It is related to
> > > IP6_NF_IPTABLES_LEGACY Kconfig, and the change in a9525c7f6219cee9
> > > ("netfilter: xtables: allow xtables-nft only builds").
> > >
> > > In my kernel before this change, I used to have ip6_tables "module" as
> > > builtin (CONFIG_IP6_NF_IPTABLES=y), and all the other dependencies as
> > > modules, such as IP6_NF_FILTER=m, IP6_NF_MANGLE=m, IP6_NF_RAW=m.
> > >
> > > After the mentioned commit above, I am not able to have ip6_tables set
> > > as a builtin (=y) anymore, give that it is a "hidden" configuration, and
> > > the only way is to change some of the selectable dependencies
> > > (IP6_NF_RAW for insntance) to be a built-in (=y).
> > >
> > > That said, do you know if I can keep the ip6_tables as builtin without
> > > changing any of the selectable dependencies configuration. In other
> > > words, is it possible to keep the old behaviour (ip6_table builtin and
> > > the dependenceis as modules) with the new IP6_NF_IPTABLES_LEGACY
> > > configuration?
> >
> > No. But why would you need it?
>
> In certain environments, iptables needs to run, but there is *no*
> permission to load modules.
>
> For those cases, I have CONFIG_IP6_NF_IPTABLES configured as y in
> previous kernels, and now it becomes a "m", which doesn't work because
> iptables doesn't have permission to load modules, returning:
>
> $ ip6tables -L
> modprobe: FATAL: Module ip6_tables not found in directory /lib/modules/....
> ip6tables v1.8.10 (legacy): can't initialize ip6tables table `filter': Table does not exist (do you need to insmod?)
> Perhaps ip6tables or your kernel needs to be upgraded.
Hmm, but how can that work? If you can't load modules, you can't load
ip6t_filter either.
And if thats builtin, then IP6_NF_IPTABLES_LEGACY is supposed to become
=y too.
> > You could make a patch for nf-next that exposes those symbols as per description
> > in a9525c7f6219cee9284c0031c5930e8d41384677, i.e. with 'depends on'
> > change.
>
> Sure, I am happy to do it, but I would like to understand a bit better
> before. Does it mean we make IP_NF_IPTABLES_LEGACY selectable by the
> user, and changes the dependable configs from "selects" to "depends on"?
> Something as the following (not heavily tested)?
>
> Thanks for the quick answer!
> --breno
>
> Author: Breno Leitao <leitao@debian.org>
> Date: Thu Aug 22 05:35:41 2024 -0700
> netfilter: Make IP_NF_IPTABLES_LEGACY selectable
>
> This option makes IP_NF_IPTABLES_LEGACY user selectable, giving
> users the option to configure iptables without enabling any other
> config.
>
> Suggested-by: Florian Westphal <fw@strlen.de>
> Signed-off-by: Breno Leitao <leitao@debian.org>
>
> diff --git a/net/ipv4/netfilter/Kconfig b/net/ipv4/netfilter/Kconfig
> index 1b991b889506..b5ff14a5272a 100644
> --- a/net/ipv4/netfilter/Kconfig
> +++ b/net/ipv4/netfilter/Kconfig
> @@ -12,7 +12,11 @@ config NF_DEFRAG_IPV4
>
> # old sockopt interface and eval loop
> config IP_NF_IPTABLES_LEGACY
> - tristate
> + tristate "Legacy IP tables support"
> + default n
> + select NETFILTER_XTABLES
> + help
> + iptables is a general, extensible packet identification legacy framework.
I would also add that this isn't needed for iptables-nft (iptables over
nftables api).
Otherwise, yes, something like that.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: netfilter: Kconfig: IP6_NF_IPTABLES_LEGACY old =y behaviour question
2024-08-22 13:20 ` Florian Westphal
@ 2024-08-22 17:55 ` Breno Leitao
0 siblings, 0 replies; 5+ messages in thread
From: Breno Leitao @ 2024-08-22 17:55 UTC (permalink / raw)
To: Florian Westphal; +Cc: rbc, netfilter-devel
Hello Florian,
On Thu, Aug 22, 2024 at 03:20:22PM +0200, Florian Westphal wrote:
> Breno Leitao <leitao@debian.org> wrote:
> > On Thu, Aug 22, 2024 at 01:23:39PM +0200, Florian Westphal wrote:
> > In certain environments, iptables needs to run, but there is *no*
> > permission to load modules.
> >
> > For those cases, I have CONFIG_IP6_NF_IPTABLES configured as y in
> > previous kernels, and now it becomes a "m", which doesn't work because
> > iptables doesn't have permission to load modules, returning:
> >
> > $ ip6tables -L
> > modprobe: FATAL: Module ip6_tables not found in directory /lib/modules/....
> > ip6tables v1.8.10 (legacy): can't initialize ip6tables table `filter': Table does not exist (do you need to insmod?)
> > Perhaps ip6tables or your kernel needs to be upgraded.
>
> Hmm, but how can that work? If you can't load modules, you can't load
> ip6t_filter either.
This happens inside a container that has no support for module loading, and
expects the tables to be =y.
> And if thats builtin, then IP6_NF_IPTABLES_LEGACY is supposed to become
> =y too.
Correct, both of them (IP6_NF_IPTABLES_LEGACY and IP_NF_IPTABLES_LEGACY)
was able to be user selectable, and they are not anymore, causing this
behaviour change.
Thanks for your support,
--breno
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-08-22 17:55 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-22 9:01 netfilter: Kconfig: IP6_NF_IPTABLES_LEGACY old =y behaviour question Breno Leitao
2024-08-22 11:23 ` Florian Westphal
2024-08-22 12:45 ` Breno Leitao
2024-08-22 13:20 ` Florian Westphal
2024-08-22 17:55 ` Breno Leitao
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.