natd starting after firewall rules are loaded
Ian Smith
smithi at nimnet.asn.au
Sun Apr 17 05:36:49 UTC 2011
On Sat, 16 Apr 2011, rondzierwa at comcast.net wrote:
> After the firewall rules are loaded, the rc script then loads natd,
> Once the system is up, i can ipfw list and the divert command is,
> in fact, not there, but by this time natd is running. If I run the rc.firewall
> script interactively, it completes successfully and the divert rule
> is in the list, and everyone is happy again.
There are several outstanding PRs about this and related issues; copying
hrs@ who grabbed these PRs a while ago. The quick fix is to add
ipdivert_load="YES"
to /boot/loader.conf so it's there before ipfw & natd start. You still
need ipfw_enable=YES and natd_enable=YES in /etc/rc.conf
> In 4.9 there used to be a rc.network script that started natd before
> it loaded the firewall rules. I do not see it in 8.2 anymore, instead
> it looks like rc simply runs the scripts in rc.d alphabetically, so natd
> comes after ipfw.
Not alphabetically but according to rcorder(8). /etc/rc.d/natd has
keyword NOSTART and is now only run when /etc/rc.d/ipfw invokes it, but
as you've seen, ipfw's attempt to install divert rule(s) fails for want
of ipdivert.ko - which /etc/rc.d/natd does load, but too late.
> I can't believe i'm the only one using ipfw and natd with 8.2, so it
> seems to me that i just don't know the secret handshake that will
> make it work.
In 4.x you had to build ipfw into kernel; lots of changes since :)
cheers, Ian
More information about the freebsd-net
mailing list