CARP like would be better, because it lives in kernel-level, can kriptovat and supports IPv6 (on the other hand, if you have IPv6, it is unclear why then do CARP).
\r
The only problem is that CARP is available only under BSD. Under Linux there are
vrrpd, which personally I was quite satisfied. So you first have to choose not between protocols, and between the OSes :)
\r
Alternatives —
ucarp (miserable facial joints, which lived only until there was no alternative that supports only two hosts, no more), and
keepalived, which is good, but for my purposes was too heavy.