I finally got CARP _working_ :) I've a problem when I do "ifconfig carp1 down" on the MASTER host to test if BACKUP takes over the traffic..
It does work so far. But the problem is that if I'm streaming Internet radio or are connected to IRC the radio will get stalled when I do "ifconfig carp1 down" on MASTER, and the IRC disconnects and then tries to reconnect which of course works. I think something is wrong, since it shouldn't affect the traffic flow at all when MASTER interrupt. I have three interfaces in each host. and my setup looks like (here is a diff link http://pastebin.com/pastebin.php?diff=749904) MASTER HOST: # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 groups: lo inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x7 hme0: flags=8b63<UP,BROADCAST,NOTRAILERS,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> mtu 1500 lladdr 08:00:20:9e:7c:60 groups: egress media: Ethernet autoselect (100baseTX full-duplex) status: active inet6 fe80::a00:20ff:fe9e:7c60%hme0 prefixlen 64 scopeid 0x1 inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255 rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:08:a1:8e:64:70 media: Ethernet autoselect (100baseTX full-duplex) status: active inet 192.168.10.100 netmask 0xffffff00 broadcast 192.168.10.255 inet6 fe80::208:a1ff:fe8e:6470%rl0 prefixlen 64 scopeid 0x2 fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:50:8b:0e:30:02 media: Ethernet autoselect (100baseTX full-duplex) status: active inet 192.168.254.254 netmask 0xffffff00 broadcast 192.168.254.255 inet6 fe80::250:8bff:fe0e:3002%fxp0 prefixlen 64 scopeid 0x3 pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33192 pfsync0: flags=41<UP,RUNNING> mtu 1460 pfsync: syncdev: fxp0 maxupd: 128 enc0: flags=0<> mtu 1536 carp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 carp: MASTER carpdev hme0 vhid 1 advbase 1 advskew 0 groups: carp inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255 carp1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 carp: MASTER carpdev rl0 vhid 2 advbase 1 advskew 0 groups: carp inet 192.168.10.50 netmask 0xffffff00 broadcast 192.168.10.255 # cat /etc/hostname.* inet 192.168.1.100 255.255.255.0 192.168.1.255 vhid 1 pass foo inet 192.168.10.50 255.255.255.0 192.168.10.255 vhid 2 pass bar inet 192.168.254.254 255.255.255.0 NONE dhcp NONE NONE NONE up syncif fxp0 inet 192.168.10.100 255.255.255.0 NONE BACKUP HOST: # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 groups: lo inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x7 hme0: flags=8b63<UP,BROADCAST,NOTRAILERS,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> mtu 1500 lladdr 08:00:20:9c:5d:3a groups: egress media: Ethernet autoselect (100baseTX full-duplex) status: active inet6 fe80::a00:20ff:fe9c:5d3a%hme0 prefixlen 64 scopeid 0x1 inet 192.168.1.7 netmask 0xffffff00 broadcast 192.168.1.255 rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:c0:26:6d:ff:6c media: Ethernet autoselect (100baseTX full-duplex) status: active inet 192.168.10.200 netmask 0xffffff00 broadcast 192.168.10.255 inet6 fe80::2c0:26ff:fe6d:ff6c%rl0 prefixlen 64 scopeid 0x2 fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:50:8b:0e:7d:7d media: Ethernet autoselect (100baseTX full-duplex) status: active inet 192.168.254.253 netmask 0xffffff00 broadcast 192.168.254.255 inet6 fe80::250:8bff:fe0e:7d7d%fxp0 prefixlen 64 scopeid 0x3 pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33192 pfsync0: flags=41<UP,RUNNING> mtu 1348 pfsync: syncdev: fxp0 maxupd: 128 enc0: flags=0<> mtu 1536 carp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 carp: BACKUP carpdev hme0 vhid 1 advbase 1 advskew 50 groups: carp inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255 carp1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 carp: BACKUP carpdev rl0 vhid 2 advbase 1 advskew 50 groups: carp inet 192.168.10.50 netmask 0xffffff00 broadcast 192.168.10.255 # cat /etc/hostname.* inet 192.168.1.100 255.255.255.0 192.168.1.255 vhid 1 advskew 50 pass foo inet 192.168.10.50 255.255.255.0 192.168.10.255 vhid 2 advskew 50 pass bar inet 192.168.254.253 255.255.255.0 NONE dhcp NONE NONE NONE up syncif fxp0 inet 192.168.10.200 255.255.255.0 NONE And pf.conf at both hosts are identical: # cat /etc/pf.conf set loginterface fxp0 nat on hme0 from rl0:network to any -> hme0 pass in on hme0 all pass out on hme0 all pass quick on { fxp0 } proto pfsync keep state pass on { hme0 rl0 } proto carp keep state any suggestions are welcome -- /Bachman