Sim. Eu tenho um conjunto de VIPs externos "emparelhados" com um conjunto de VIPs internos que têm esse mesmo requisito. Eu também tenho failover trabalhando em ambas as direções.
Aqui está uma olhada na minha configuração e algumas explicações. Eu editei os IPs públicos.
server1 10.0.9.1/24/eth0/10.0.9.255
server2 10.0.9.4/24/eth0/10.0.9.255
server1 x.y.z.2/27/eth0/x.y.z.31
server2 x.y.z.25/27/eth0/x.y.z.31
Portanto, há dois VIPs internos flutuantes, 10.0.9.1/24 e 10.0.9.4/24. 10.0.9.1/24 é primário no servidor1 e 10.0.9.4/24 é primário no servidor2.
Para VIPs externos, x.y.z.2 / 27 é primário em server1 e x.y.z.25 / 27 é primário em server2.
Acabei de perceber isso, mas estou usando a interface eth0 para todos esses IPs sem problemas. Na realidade, a rede x.y.z.0 / 27 está se conectando fisicamente à eth1. Dê uma chance.
EDITAR:
Veja também keepalived / vrrpd e vrrp_sync_groups: