Upstream: moby check-config.sh is wrong about iptables on kernels >= 6.4 #71
Labels
No labels
blocked-physical
cleanup
hardware
infra
kernel
P1-critical
P2-high
P3-normal
P4-later
reliability
security
upstream
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
tiagoagueda/a80#71
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found while enabling Docker on this board, and it cost real time, so it is probably
worth reporting upstream.
The problem
moby/moby contrib/check-config.shreports these as missing under GenerallyNecessary:
Since kernel 6.4 the legacy xtables backend was split out behind
CONFIG_NETFILTER_XTABLES_LEGACY, and every one of those symbols now carriesdepends on IP_NF_IPTABLES_LEGACY, which in turn depends onNETFILTER_XTABLES_LEGACY.The failure mode is nasty. You set
CONFIG_IP_NF_FILTER=y, runolddefconfig, and thekernel silently drops it again because the dependency is unmet.
check-config.shthen reports exactly what it reported before, with no hint as to which symbol is
actually gating them. Here it took three rounds to find.
Meanwhile
IP_NF_IPTABLES_LEGACY's own help text says:which is the default on Debian 13 and most current distributions. So for a large and
growing fraction of hosts the script demands options that are genuinely unnecessary,
while never naming the one symbol that would make them settable.
What a fix looks like
Either check
NETFILTER_XTABLES_LEGACYfirst and explain the dependency, or detect theiptables backend in use and check the nft symbols (
NFT_COMPAT,NFT_NAT,NFT_MASQ,NFT_FIB_*) instead when the host is on iptables-nft.Local state
patches/configs/docker.configenables both paths deliberately, so this board is notblocked on it. This issue is only about reporting it upstream.