NAT loopback using natd and ipfw

Frank Leonhardt frank2 at
Sat Aug 17 22:15:42 UTC 2013

Does anyone know how to get NAT loopback (aka NAT hairpin or NAT 
reflection) working with natd and ipfw? It seems to work with the 
in-kernel NAT without the need for configuration, but not if you're 
using natd.

I have a feeling it may be something do do with the ipfw 
"diverted-loopback" test in natd but if I experiment and get it wrong 
it's five hours on the motorway for me.

Incidentally, I've set net.inet.ip.fw.one_pass set to 0 but it didn't help.

Thanks, Frank.

(By "NAT loopback" I mean the situation when you're using NAT to 
translate one WAN IP to many local LAN IPs (i.e. the usual). If a LAN 
machine tries to access the WAN IP, you need NAT to treat it as an 
incoming connection and port-forward it as appropriate to a LAN IP as if 
the packet had come from the Internet. This is not weird; it's what most 
home and small office routers do by default).

More information about the freebsd-questions mailing list