CARP будто бы лучше, потому что живет на kernel-level, умеет криптовать и поддерживает IPv6 (с другой стороны, если у вас IPv6, то непонятно, зачем тогда вообще CARP).
Проблема только в том, что CARP имеется исключительно под BSD. Под Линуксами есть
vrrpd, который лично меня вполне устроил. Так что вам сначала придется выбирать не между протоколами, а между операционками :)
Альтернативы —
ucarp (убогое поделие, которое жило только пока не было альтернативы, поддерживает только два хоста, не больше), и
keepalived, который неплох, но для моих целей был излишне тяжеловесен.