Hello,

I've two i386 boxes running 3.9-stable acting as redundant firewalls
with PF + CARP/pfsync behind a Cisco router.

   xDSL
    |
    |
  cisco
    |
    |
  -----
  |   |
 FW1 FW2
  |   |
  -----
    |
   DMZ

Public IP addresses used below are faked.

The router:
#sh ip int brief
Interface                  IP-Address      OK? Method Status
Protocol

...
FastEthernet0/0            172.16.0.6      YES NVRAM  up
up
FastEthernet0/0.1          172.16.31.6     YES NVRAM  up
up
...
Loopback0                  4.3.2.6         YES NVRAM  up
up


#sh ip route static
     172.16.0.0/16 is variably subnetted, 4 subnets, 4 masks
S       172.16.0.0/16 [1/0] via 172.16.0.1
     4.3.2.0/24 is variably subnetted, 23 subnets, 3 masks
S       4.3.2.0/29 is directly connected, FastEthernet0/0

The firewalls:

# sysctl -a | grep ^net.inet.carp
net.inet.carp.allow=1
net.inet.carp.preempt=1
net.inet.carp.log=0
net.inet.carp.arpbalance=0

On the external carp1 interface I have a private address (172.16.0.1,
used for routing) and a public IP address alias (let's say 4.3.2.1, used
for redirection of services to DMZ hosts).
On the internal carp11 interface I have the DMZ to which ports from the
public IP address alias are redirected.

# route -n show | grep default
default            172.16.0.6         UGS         0   180952      -
carp1
# ifconfig carp1
carp1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        carp: MASTER carpdev fxp1 vhid 1 advbase 1 advskew 0
        groups: carp egress
        inet 172.16.0.1 netmask 0xfffffff8 broadcast 172.16.0.7
        inet 4.3.2.1 netmask 0xfffffff8 broadcast 1.2.3.7
[EMAIL PROTECTED]:~ # ifconfig carp11
carp11: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        carp: MASTER carpdev vlan11 vhid 11 advbase 1 advskew 0
        groups: carp
        inet 172.16.1.1 netmask 0xffffff00 broadcast 172.16.1.255

I'd like to add one more public ip address on the carp1 interface so I
do

# ifconfig carp1 vhid 1 carpdev fxp1 pass whatasecret alias 4.3.2.2
netmask 255.255.255.248

on the master firewall. Immediately after adding the alias the firewall
stops forwarding packets in both directions. I have to reboot the
firewall to have it working again, removing the alias is not sufficient.

My PF ruleset defaults to 'block drop log all' but tcpdump on pflog0
does not seem to be particularly useful. This is in production too, so I
cannot experiment a lot. I have a similar setup working (multiple public
ip addresses as aliases on the external interface mapped to internal
private addresses on 3.8-stable) but I'm not using CARP there.

Any idea why this happens?

thanks

Reply via email to