Eu tentei usar tcpdump -i <interface> 'ip proto 112'
e descobri que, a menos que eu estivesse em um sistema keepalived, isso não seria visto. Eu tive que me tornar um membro do grupo multicast com ip maddr add <multicast address>
antes do tcpdump relatar o multicast. Se você estiver usando unicast, isso não é um problema.
Desde a minha pergunta eu encontrei algumas coisas que podem ser úteis para os outros. Primeiro, minha experiência é que o keepalived começa no estado MASTER, independentemente da configuração e das transições, para o seu "estado estacionário" em poucos segundos. Isso é crítico se você estiver tentando executar scripts em mudanças de estado que afetam o sistema keepalived, você pode encontrar o script notify_master e o script "steady state notify _... executando simultaneamente e colidindo uns com os outros.
Em segundo lugar, em sistemas mais recentes, systemctl status keepalived
pode mostrar estado se executado logo após uma mudança de estado (e os eventos intervenientes não "rolaram"). kill -USR1 <pid of keepalived>
criará /tmp/keepalived.data que informa o estado do keepalived e isso é confiável se a execução após o "steady state" for atingida. Usar esse método foi minha solução para o problema do script colidindo - durma o tempo suficiente para atingir o estado estacionário e use kill ...
, seguido pelo exame do arquivo.