[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-pf
Subject:    Re: route-to rule.
From:       "Stephane Raimbault" <segr () hotmail ! com>
Date:       2005-01-27 18:25:32
Message-ID: BAY24-F23B5EDFAA04BD9C64A5FC1CC780 () phx ! gbl
[Download RAW message or body]

Okay, with the syntax cleaned up this is what I have:

set state-policy if-bound

int_if="rl0"
int_net="10.1.0.0/24"
ext_if1="rl1"
ext_gw1="<ISP#1 Gateway IP>"
ext_if2="rl2"
ext_gw2="<ISP#2 Gateway IP>"
vpn_if="tun0"
vpn_gw="172.16.0.1"

isp1 = "(" $ext_if1 $ext_gw1 ")"
isp2 = "(" $ext_if2 $ext_gw2 ")"
vpn = "(" $vpn_if $vpn_gw ")"

server1_int="10.1.0.20"
server1_out="63.252.160.219"
server2_int="10.1.0.21"
server2_out="63.252.160.222"
server3_int="10.1.0.22"
server3_out="63.252.160.221"
server4_int="10.1.0.23"
server4_out="63.252.160.220"

nat on $ext_if1 from $int_net to any -> ($ext_if1:0)
nat on $ext_if2 from $int_net to any -> ($ext_if2:0)
binat on $ext_if1 from $server1_int to any -> $server1_out
binat on $ext_if1 from $server2_int to any -> $server2_out
binat on $ext_if1 from $server3_int to any -> $server3_out
binat on $ext_if1 from $server4_int to any -> $server4_out

pass in quick on $int_if inet from $int_net to $int_net keep state
pass out quick on $int_if inet from $int_net to $int_net keep state

pass in on $ext_if1 tag $ext_if1 keep state
pass out on $ext_if1 route-to $ext_if1 keep state
pass out quick on $int_if reply-to $ext_if1 tagged $ext_if1 keep state

pass in on $ext_if2 tag $ext_if2 keep state
pass out on $ext_if2 route-to $ext_if2 keep state
pass out quick on $int_if reply-to $ext_if2 tagged $ext_if2 keep state

pass in on $vpn_if tag $vpn_if keep state
pass out on $vpn_if route-to $vpn_if keep state
pass out quick on $vpn_if reply-to $vpn_if tagged $vpn_if keep state

pass in quick on $int_if route-to $isp1 from 
{$server1_int,$server2_int,$server3_int,$server4_int} to {!10.0.0.0/26, 
!$int_net} keep state
pass in quick on $int_if route-to $vpn from $int_net to 10.0.0.0/26 keep 
state
pass in on $int_if route-to $isp2 from $int_net to {!10.0.0.0/26, !$int_net} 
keep state


I tried this out and it was not a success.  It seemend like nothing could 
get anywhere.  $int_net wasn't able to access the internet nor the subnets 
on the otherside of the vpn.  The binat'd servers were unaccessible from the 
internet... and I got an arp error in the /var/log/messages about a bunch of 
arp's not being on the local network... I got a stream of these types of 
messages:

Jan 27 12:12:02 router1 kernel: arplookup 69.57.244.70 failed: host is not 
on local network
Jan 27 12:12:02 router1 kernel: arpresolve: can't allocate llinfo for 
69.57.244.70
Jan 27 12:12:02 router1 kernel: arplookup 12.24.195.78 failed: host is not 
on local network
Jan 27 12:12:02 router1 kernel: arpresolve: can't allocate llinfo for 
12.24.195.78


so, we aren't quite there yet.  Could I more simply change my default route 
to ISP #2, and setup some sort of route-to statements specifically for the 
binat's instead?  Then I would also need to setup a rule for the openvpn to 
go over ISP #1 instead of ISP #2.

any suggestions... as always much apreciated.

Thanks,
Stephane.

> From: "Chris Dionissopoulos" <dionch@freemail.gr>
> Reply-To: "Chris Dionissopoulos" <dionch@freemail.gr>
> To: "Stephane Raimbault" <segr@hotmail.com>
> Subject: Re: route-to rule.
> Date: Thu, 27 Jan 2005 03:40:43 +0200
> 
> Try to negate(="!") each network for "to" field like:
> { !10.0.0.0/26, !$int_net}
> Also when you change line in a rule , you must backslash at the end ("\").
> 
> Chris.
> 
> 
> 
> > Hi Chris,  Thanks for the quick response, however I'm still getting syntax 
> > errors on 2 of the 3 lines now:
> > 
> > pass in quick on $int_if route-to $isp1 from 
> > {$server1_int,$server2_int,$server3_int,$server4_int} to !{10.0.0.0/26, 
> > $int_net} keep state
> > pass in quick on $int_if route-to $vpn from $int_net to 10.0.0.0/26 keep 
> > state
> > pass in on $int_if route-to $isp2 from $int_net to !{10.0.0.0/26, 
> > $int_net} keep state
> > 
> > /etc/pf.conf:47: syntax error
> > /etc/pf.conf:49: syntax error
> > 
> > Where line 47 is the first one above and 49 is the last (3rd line) above.
> > 
> > Any thoughts?  I'm scratching my head bald.
> > 
> > Thanks,
> > Stephane.
> > 
> > 
> 
> 
> ____________________________________________________________________
> http://www.freemail.gr - δωρεάν υπηρεσία ηλεκτρονικού ταχυδρομείου.
> http://www.freemail.gr - free email service for the Greek-speaking.

_________________________________________________________________
Powerful Parental Controls Let your child discover the best the Internet has 
to offer. 
http://join.msn.com/?pgmarket=en-ca&page=byoa/prem&xAPID=1994&DI=1034&SU=http://hotmail.com/enca&HL=Market_MSNIS_Taglines \
  Start enjoying all the benefits of MSN® Premium right now and get the 
first two months FREE*.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic