ipfw & natd
Thomas Wolf
tw at wsf.at
Sun Sep 19 23:47:35 PDT 2004
Cristian Ursuleanu <cristi at debug.ro> schrieb:
>
>
> Hi,
>
> I have a problem with ipfw:
>
>
> (10.0.0.x) (ed0)(10.0.0.1)(rl0) (1.2.3.4)
> --LAN----------------FreeBSD--------------ISP_1
> |
> |(rl1)
> |
> | (5.6.7.8)
> |_________________ISP_2
>
>
>
> thw default route is 1.2.3.4
> ( $ route add -net 0.0.0.0 1.2.3.4 )
>
> I want to forward only port 80 from LAN to ISP_2 .
>
> I do:
> $ natd -p 8668 -interface rl0
> $ natd -p 8669 -interface rl1
>
> $ ipfw add 500 fwd 5.6.7.8 tcp from 10.0.0.0/24 to any 80
> $ ipfw add 1000 divert 8668 all from any to any rl0
> $ ipfw add 2000 divert 8669 all from any to any rl1
>
> and it's seems not to work .
> 'tcpdump' on rl1 show connections from 10.0.0.2.3122 > WEB_SERVER.80 , and
> it must be: 5.6.7.8 > WEB_SERVER.80
>
> is missing the natd .
>
> what is wrong?
The 'fwd' action terminates the search through the ruleset, so
your rule 2000 will never match on outgoing packets to :80.
Try putting the 'fwd' statement after 2000 ('divert' re-injects
packets at the next rule), something like this:
add 2010 fwd 5.6.7.8 tcp from any to any 80 out recv ed0.
Thomas
--
Thomas Wolf
Wiener Software Fabrik
Dubas u. Wolf GMBH
1050 Wien, Mittersteig 4
More information about the freebsd-ipfw
mailing list