Masz wiele rozwiązań Linux dla redundancji pierwszego przeskoku z sieci LAN do dwóch routerów (sama Quagga nie obsługuje VRRP, ale możesz używać Quagga w połączeniu z dowolnym z nich bez żadnych problemów):
- keepalived (jak już wspomniałeś)
- uCARP - Port Linuksowy CARP OpenBSD (Common Address Redundancy Protocol)
- vrrpd - rzadko udokumentowany i w dużej mierze niesprawdzony demon VRRP, ale mimo to opcja
Zauważ, że żadne z nich nie ma nic wspólnego z redundancją BGP, która moim zdaniem jest prawdziwym problemem, który próbujesz rozwiązać. Jednak powinno być całkiem możliwe uruchomienie VRRP po stronie dostawcy dwóch hostów Quagga i skonfigurowanie wirtualnego adresu IP VRRP jako „twojej strony” przypisanego przez ISP / 30 i użycie go do peerowania z twoim ISP. Czas przełączania awaryjnego byłby prawdopodobnie zbliżony do tego samego (jeśli nie tylko o włos szybszego niż) rozwiązania z Linux-HA poniżej. Powiedziawszy to, osobiście uważam, że rozwiązanie Linux-HA byłoby czystsze i prostsze, ale może to również zależeć od topologii.
Jeśli chodzi o twoje opcje z BGP, istnieje szkic IETF dla „multisesssion BGP”, który wprowadza nowy kod możliwości BGP, który ma na celu wsparcie wielu sesji BGP z tym samym partnerem w tym samym adresie, ale ten projekt zakłada, że obie sesje byłyby być na tym samym urządzeniu, jednak wersja robocza jest zupełnie nowa i wsparcie dla tego prawdopodobnie nie będzie w bieżących wersjach Quagga.
Inną opcją jest użycie Linux-HA do skonfigurowania klastra pulsu między dwoma urządzeniami i skonfigurowanie go w taki sposób, aby w przypadku awarii routera podstawowego pulsu rozpoznało to i uruchomiło Quagga / BGPd / etc na routerze rezerwowym kiedy to się dzieje.