Vou jogar fora em consideração o que a maioria considerará uma solução um pouco mais ortodoxa.
Considere resolver isso com a Camada 3 em vez da Camada 2.
Coloque os dois switches no lugar e NÃO os interconecte. Conecte o (s) roteador (s) aos dois comutadores. Conecte seus servidores HP aos dois comutadores. Use dois blocos de IP diferentes internamente para que os servidores conversem com o (s) roteador (s) ... um bloco em cada comutador (e, portanto, a interface no (s) roteador (s) e servidores). Coloque os endereços IP que você realmente usa para se comunicar com os servidores em uma interface de loopback. Coloque o quagga nos servidores e execute o OSPF (na sua escala, jogue tudo na área 0, nada demais) ... verifique se os endereços / interfaces de loopback estão incluídos na configuração do OSPF. Coloque o OSPF no (s) roteador (s).
Voila ', os roteadores aprendem sobre os endereços que você está realmente usando para conversar com os servidores via OSPF como rotas de host ... se um switch morre, os ajustes relevantes desaparecem e o tráfego é redirecionado para o outro switch .
Como bônus, se você usar um endereço IP diferente para os vários serviços executados em seus servidores Linux, poderá mover os serviços e os endereços IP associados a eles sem problemas e a rede se adapta de maneira limpa e fácil.
Não há perigo nesta configuração de ter mau comportamento de uma situação de cérebro dividido, se o link entre os dois switches falhar ... não há perigo de mau comportamento de um FHRP como VRRP, HSRP e similares ... não há perigo de os interruptores caírem volte a inundar ineficientemente o tráfego se você encontrar uma situação assimétrica.
Uso essa solução em um ambiente muito maior e seu trabalho EXTREMAMENTE bem, é incrivelmente robusto e resistente a falhas de equipamentos e erros de configuração humana.