Isso está relacionado apenas parcialmente às keepalives. Basicamente, você precisa estabelecer um segundo túnel GRE e implementar algum mecanismo para detectar falhas de túnel (embora isso possa ser feito com keepalives, geralmente é feito com mensagens de protocolo HELO ou BFD protocolo camada no topo do roteamento dinâmico, projetado especialmente para essa finalidade). Uma abordagem comum será usar qualquer tipo de roteamento dinâmico, mas não RIP (independentemente de sua versão) - já que RIP não é adequado para operações multi-path e basicamente mantém apenas uma rota para um destino. OSPF ficará bem, EIGRP (mas como é proprietário, você não pode usá-lo no Linux já que não há implementações abertas dele), IS-IS , iBGP .
Você também pode considerar se livrar do GRE e implementar um túnel VTI , já que o kernel Linux é capaz disso.