O comportamento padrão do CARP é tratar as interfaces de forma independente, para que você possa ter um mestre e outra interface escrava na mesma caixa.
Para alterar esse comportamento, você precisa alterar o sinalizador de preempção para 1:
sysctl net.inet.carp.preempt=1
Aqui está um exceto a FAQ do OpenBSD:
net.inet.carp.preempt
Allow hosts within a redundancy group that have a better advbase and advskew to preempt the master. In addition, this option also enables failing over a group of interfaces together in the event that one interface goes down. If one physical CARP-enabled interface goes down, CARP will increase the demotion counter, carpdemote, by 1 on interface groups that the carp(4) interface is a member of, in effect causing all group members to fail-over together. net.inet.carp.preempt is 0 (disabled) by default.