Silly me... I forgot the 'net.inet.carp.preempt' sysctl variable. I thought it was only for forcing demotion of other CARP interfaces if a single one failed. But it's also for "claiming" the master spot.
Sorry for the noise :-( > Op 4 oktober 2016 om 9:27 schreef Jasper Siepkes <siep...@serviceplanet.nl>: > > Hi list! > > I'm experimenting with CARP and I'm a bit puzzled by the following > behavior; I have 2 hosts setup in an active/passive way with CARP. > Host A has an advskew of 0 and becomes master, Host B has an > advskew of 100 and becomes backup. Now when host A fails host B becomes > master just like i would expect. However once host A comes backup again > he doesn't become master, he stays backup even though he has a > lower advertise skew. > > Peeking with tcpdump tells me host A just goes to backup and doesn't > advertise at all so host B never knows a host with lower advskew > came up. > > That's not what I expected. Is that normal? From all the examples I > can find on the net I would expect host A to become master again. For > example a lot of 'ifstated' examples use the advskew to promote or > demote a host as master but since a host with lower advskew doesn't > seem to 'claim' the master position those examples don't work. > > The setup is a cleanly installed OpenBSD 6.0 with the only > modifications the configs below. I've tested this in a VM and on > baremetal. > > ****Host A**** > > hostname.em1: > ---- > inet 10.253.255.2 255.255.254.0 NONE > ---- > > hostname.carp1000: > ---- > > carpdev em1 advbase 1 advskew 0 pass foo vhid 20 > inet 10.253.255.1 255.255.254.0 NONE > carppeer 10.253.255.3 > ---- > > ****Host B**** > > hostname.em1: > ---- > inet 10.253.255.3 255.255.254.0 NONE > ---- > > hostname.carp1000: > ---- > carpdev em1 advbase 1 advskew 100 pass foo vhid 20 > inet 10.253.255.1 255.255.254.0 NONE > carppeer 10.253.255.2 > ---- > > Kind regards, > > Jasper