Em primeiro lugar, isso é apenas levemente testado ...: -)
Um truque antigo e aparentemente quase esquecido é a capacidade de configurar vários endereços em sub-redes diferentes , mas na mesma interface física. Portanto, se eth0 for sua interface voltada para o público, configure o master com, digamos, o endereço 172.16.0.1/30 e sua caixa de failover com 172.16.0.2/30. Estes pacotes devem ser encaminhados através de um switch local (garantindo assim que as mensagens vrrp funcionem mutuamente), mas não serão encaminhados pelo seu ISP [1]. Defina o endereço virtual (eth0: ucarp) para o seu IP público. Observe que a máscara de sub-rede para o IP virtual não será / 32.
Suponho que você queira "evitar o uso de três endereços IP" porque não deseja consumir três IPs públicos e não por algum outro motivo.
[1] A menos que seu ISP esteja configurado incorretamente e envie pacotes multicast de IPs privados. Caramba!