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