Description of problem: Netfilter kernel modules have been moved _and_ renamed. Same for proc fs related entries. Version-Release number of selected component (if applicable): kernel-2.6.20-1.2933.fc6 How reproducible: Always Steps to Reproduce: 1. find /proc/sys/net | fgrep netfilter 2. modprobe ip_conntrack Actual results: Many modules now have a different name, proc entries even a different path, breaking user scripts and maybe even /etc/sysconfig/iptables-config I should point out that mine (untouched) contains a reference to ip_conntrack_netbios_ns now named nf_conntrack_netbios_ns. Expected results: Modules named and proc entries (it affects sysctl "paths" as well) should not change. Additional info: This is nothing hard to handle, if you recover for initial panic... however, this is security related, some firewall scripts of mine did break. sysctl -w net.ipv4.netfilter.ip_conntrack_max=NNN becomes: sysctl -w net.netfilter.nf_conntrack_max=NNNNN Even ip_nat_ftp became nf_nat_ftp.
The sysctl and proc entries will be backwards-compatible in upcoming releases. For the module renaming there's not much we can do -- the upstream kernel firewall code was rewritten.
Created attachment 151056 [details] Modules and proc fs now New paths and names
Created attachment 151057 [details] Old paths and names Old paths and names
# fgrep conntrack /etc/sysconfig/iptables-config IPTABLES_MODULES="ip_conntrack_netbios_ns" Annoying, at least. I understand the upstream issue, but this is something that shouln't happen in a stable serie, IMHO. Anyway, from the distro user standpoint, I expect a kernel update to bring almost no visibile changes to userspace. Well we can live with it, but I think an update for iptables-1.3.5-1.2.1 is due, too, as for any userspace packages that somehow uses the old names. Or, ideally, the kernel rpm should look into obvious places (e.g. /etc/sysconfig/iptables-config, /etc/sysctl.conf) and do some perl -pie magic. I performed the update on a test host, but I do have a couple of production firewalls with, say, ip_nat_ftp there because it's actually needed. I created two attachments with the new and old paths, for reference.
Ok, I've searched more. It turned out that the old names for modules should work. I've been reported that on other systems that happens, so I guess there's something wrong with mine. The kernel package contains /lib/modules/`uname -r`/modules.alias with correctly maps the old named to the new ones, so you can do "modprobe ip_conntrack_ftp" and it works. The only issue is if you parse "lsmod" output in order to see if a module is loaded or not, but that's definitely a minor issue (you'd better test for the functionality you need rather than for a certain kernel module being loaded anyway). So this part is actually NOTABUG. As for the /proc and sysctl interfaces, there's a kernel compile configuration flag, CONFIG_NF_CONNTRACK_PROC_COMPAT, which turns on compatibily mode. This flag is disabled in the last kernel updates (2.6.20 ones). According to Chuck, this will be fixed in upcoming updates. So I'm changing this bug status to "NEXTRELEASE", which I find more appropriate. Thanks Chuck for you prompt answer, and sorry for the fuss.