Skip to content
  • Harald Welte's avatar
    [NETFILTER]: Fix invalid module autoloading by splitting iptable_nat · 188bab3a
    Harald Welte authored
    
    
    When you've enabled conntrack and NAT as a module (standard case in all
    distributions), and you've also enabled the new conntrack netlink
    interface, loading ip_conntrack_netlink.ko will auto-load iptable_nat.ko.
    This causes a huge performance penalty, since for every packet you iterate
    the nat code, even if you don't want it.
    
    This patch splits iptable_nat.ko into the NAT core (ip_nat.ko) and the
    iptables frontend (iptable_nat.ko).  Threfore, ip_conntrack_netlink.ko will
    only pull ip_nat.ko, but not the frontend.  ip_nat.ko will "only" allocate
    some resources, but not affect runtime performance.
    
    This separation is also a nice step in anticipation of new packet filters
    (nf-hipac, ipset, pkttables) being able to use the NAT core.
    
    Signed-off-by: default avatarHarald Welte <laforge@netfilter.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    188bab3a