Sorry I forgot to do reply to all! 

-----Original Message-----
From: Fred Newtz [mailto:[EMAIL PROTECTED] 
Sent: Thursday, April 03, 2008 11:10 AM
To: 'Calomel'
Cc: 'pf@benzedrine.cx'
Subject: RE: CARP failover problem

Calomel,

        Thanks for the response.  Here is my sysctl.conf file showing the four 
entries that are enabled on each machine:

net.inet.ip.forwarding=1        # 1=Enable IP Forwarding
net.inet6.ip6.forwarding=1      # 1=Permit forwarding (routing) of IPv6 packets
net.inet.carp.preempt=1         # 1=Enable carp(4) preemption
net.inet.carp.log=1             # 1=Enable logging of carp(4) packets 

        I have just double checked and both machines are setup with the same 
four entries.

        The interfaces fail over properly.  The problem is on the second 
machine the traffic gets blocked.  Maybe it is just a
problem with the second machine, but I have gone over all of the settings that 
I can think of and where necessary (the second
machine has different brands of network cards) all of the settings are the 
same.  

        Here is the pf.conf on the machine that does work:

ext_if="vr0"
int_if="xl0"
nat_p="{tcp, udp, icmp}"
carp_dev="{vr0,xl0}"
sync_if="rl0"

NoRouteIPs="{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
web="{80,443}"

rdr on $ext_if proto tcp from any to 64.244.168.194 port 80 -> 192.168.1.190 
port 80 rdr on $ext_if proto tcp from any to
64.244.168.195 port 80 -> 192.168.1.191 port 80 rdr on $ext_if proto tcp from 
any to 64.244.168.196 port 80 -> 192.168.1.192 port 80
rdr on $ext_if proto tcp from any to 64.244.168.197 port 80 -> 192.168.1.193 
port 80 rdr on $ext_if proto tcp from any to
64.244.168.198 port 80 -> 192.168.1.194 port 80 rdr on $ext_if proto tcp from 
any to 64.244.168.199 port 80 -> 192.168.1.195 port 80
rdr on $ext_if proto tcp from any to 64.244.168.194 port 443 -> 192.168.1.190 
port 443 rdr on $ext_if proto tcp from any to
64.244.168.195 port 443 -> 192.168.1.191 port 443 rdr on $ext_if proto tcp from 
any to 64.244.168.196 port 443 -> 192.168.1.192 port
443 rdr on $ext_if proto tcp from any to 64.244.168.197 port 443 -> 
192.168.1.193 port 443 rdr on $ext_if proto tcp from any to
64.244.168.198 port 443 -> 192.168.1.194 port 443 rdr on $ext_if proto tcp from 
any to 64.244.168.199 port 443 -> 192.168.1.195 port
443 rdr on $ext_if proto tcp from any to 64.244.168.199 port 22 -> 
192.168.1.190 port 22 nat on $ext_if proto $nat_p from
192.168.1.0/24 to any -> 64.244.168.220

block in quick on $ext_if from $NoRouteIPs to any block out quick on $ext_if 
from any to $NoRouteIPs pass out on $carp_dev proto
carp keep state pass in on $ext_if proto tcp to ($ext_if) port ssh pass on 
$sync_if proto pfsync




Here is the pf.conf on the machine that does not work:

ext_if="vr0"
int_if="xl0"
nat_p="{tcp, udp, icmp}"
sync_if="rl1"
carp_dev="{vr0,rl1}"

NoRouteIPs="{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
web="{80,443}"

rdr on $ext_if proto tcp from any to 64.244.168.194 port 80 -> 192.168.1.190 
port 80 rdr on $ext_if proto tcp from any to
64.244.168.195 port 80 -> 192.168.1.191 port 80 rdr on $ext_if proto tcp from 
any to 64.244.168.196 port 80 -> 192.168.1.192 port 80
rdr on $ext_if proto tcp from any to 64.244.168.197 port 80 -> 192.168.1.193 
port 80 rdr on $ext_if proto tcp from any to
64.244.168.198 port 80 -> 192.168.1.194 port 80 rdr on $ext_if proto tcp from 
any to 64.244.168.199 port 80 -> 192.168.1.195 port 80
rdr on $ext_if proto tcp from any to 64.244.168.194 port 443 -> 192.168.1.190 
port 443 rdr on $ext_if proto tcp from any to
64.244.168.195 port 443 -> 192.168.1.191 port 443 rdr on $ext_if proto tcp from 
any to 64.244.168.196 port 443 -> 192.168.1.192 port
443 rdr on $ext_if proto tcp from any to 64.244.168.197 port 443 -> 
192.168.1.193 port 443 rdr on $ext_if proto tcp from any to
64.244.168.198 port 443 -> 192.168.1.194 port 443 rdr on $ext_if proto tcp from 
any to 64.244.168.199 port 443 -> 192.168.1.195 port
443 rdr on $ext_if proto tcp from any to 64.244.168.199 port 22 -> 
192.168.1.190 port 22 nat on $ext_if proto $nat_p from
192.168.1.0/24 to any -> 64.244.168.221

block in quick on $ext_if from $NoRouteIPs to any block out quick on $ext_if 
from any to $NoRouteIPs pass out on $carp_dev proto
carp keep state pass in on $ext_if proto tcp to ($ext_if) port ssh pass on 
$sync_if proto pfsync


pfctl -nf /etc/pf.conf comes back with no errors on both machines.

Here is my rc.conf.local file on both machines as well:

pf=YES
pf_rules="/etc/pf.conf"
pflog_enable=YES
pflog_logfile="/var/log/pflog"



If there is anything else I am missing please let me know!


Thanks!

Fred




-----Original Message-----
From: Calomel [mailto:[EMAIL PROTECTED]
Sent: Thursday, April 03, 2008 10:43 AM
To: Fred Newtz
Cc: pf@benzedrine.cx
Subject: Re: CARP failover problem

Fred,

Did you also enable net.inet.carp.preempt?

net.inet.carp.preempt equaling one(1) allows hosts within a redundancy group 
that have a better advbase and advskew to preempt the
master. In addition, this option also enables failing over all interfaces in 
the event that one interface goes down. If one physical
CARP-enabled interface goes down, CARP will change advskew to 240 on all other 
CARP-enabled interfaces, in essence, failing itself
over.

  CARP Firewall Failover for OpenBSD
  http://calomel.org/pf_carp.html

--
  Calomel @ http://calomel.org
  Open Source Research and Reference


On Wed, Apr 02, 2008 at 12:06:34PM -0500, Fred Newtz wrote:
>I have two machines configured with OpenBSD carp pf and pfsync.   The state 
>table is syncing properly.  I have one webserver behind
>the two firewall machines.  For some reason my master machine (which is
>working) will freeze up.  The interfaces all failover properly but no 
>traffic will pass through the backup machine.  I am pretty new at this 
>so please tell me if I can provide any configuration information to help 
>determine what is going on here.  I can pass traffic
between the fw2 (backup firewall) and my webserver just fine.
>
>I have 6 carp interfaces setup.  One of them is my gateway interface 
>for the webserver to get back out of the network.  During testing I am 
>only ifconfig carp2 down for one of my interfaces.  Do I need to fail the 
>gateway carp interface as well for this to work properly?
>
>Thanks,
>
>Fred

Reply via email to