Оказалось что HeartBeat умеет менять IP адреса, маски и broadcast'ы, но почему то не умеет ставить шлюз по умолчанию.
Пришлось взяться за скальпель и написать скрипт понятный этой штуке. В целом ничего необычного, как оказалось, просто шелл скрипты, но с парой общих директив.
Это набросок "хочу чтоб работало" за 5 минут. Строго не судите


[root@post-srv-1 ~]# cat /etc/ha.d/resource.d/route
#!/bin/sh
. /etc/ha.d/resource.d//hto-mapfuncs
usage() {
echo "usage: $0 $LEGAL_ACTIONS"
exit 1
}

if [ $# != 1 ]; then
usage
fi

route delete default>/dev/null
route add default gw 192.168.1.1>/dev/null


и собственно в файл /etc/ha.d/haresources в конец директив ресурсов впихиваем слово route -- просто название скрипта.

Конечно у этого скрипта есть очевидные недостатки.. Например он не поддерживает директиву stop. Или нельзя ему передать адрес роутера параметром. Но есть одно приимущество: Он работает! и выполняет нужную мне функцию.
Будет время и желание - допишу.