On Tue, 2 Feb 2010 12:54, stefanferreira@ wrote:
Hi
In my quest to route traffic originating on the freebsd machine, I've managed
to loop back outbound traffic via lo0 so that I can try and route it inbound
on lo0 (pf can't apply route-to logic to outbound traffic; by then it's to
late to try and route it over a different interface).
The loopback works when I switch off skip on lo0, and pass all lo0 traffic,
so that traffic is definitely processed by pf. I also know the looping works,
because when I try to ping an outside IP, I get a response that the TTL has
been exceeded, and traceroute shows repeating entries of 127.0.0.1 (in other
words, the packets jost loop back through the pf box repeatedly till their
TTL is exceeded).
The problem is the moment I change my rule to try and route the inbound
traffic on lo0, the packets just seem to go nowhere. They are not routed
correctly and I can't tell what happens to them. In the ruleset below,
enabling the second rule results in the packets looping back to the pf box
repeatedly, and the first rule results in the packets "disappearing". The
only difference is the route-to statement, which works for all traffic
originating elsewhere on the lan.
#pass in quick on lo0 route-to (adsl-int0 196.210.140.129) from any to !
$IPs_LAN $KEEPSTATE $ALTQ_DEFAULT label zSA_Local tag zSA_Local
#pass in quick on lo0 from any to ! $IPs_LAN $KEEPSTATE $ALTQ_DEFAULT label
zSA_Local tag zSA_Local
pass out quick all $KEEPSTATE tagged zSA_Local
pass quick on lo0
Please help! I really need to route traffic originating on the pf box via pf,
and not via rtables!
Have you tried implementing "binat" and possibly making use of rdr while
using some tables to hold your addresses and subnets ?
# BINAT
# Translate outgoing packets' source address (any protocol).
# Translate incoming packets' destination address to an internal machine
# (bidirectional).
binat on $ext_if from 10.1.2.150 to any -> $ext_ifA
you could change that to:
binat on $ext_if from <binathosts> to any -> $ext_ifA
Looping traffic that is originating internally back around to a loopback
interface is not going to solve this, and it will cause you a lot more
frustration.
Best of luck.
--
jhell
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-pf
To unsubscribe, send any mail to "[email protected]"