Bonsoir à tous,

J'aimerais votre avis sur le type configuration et d'approche à mettre en
œuvre dans le cas suivant: j'utilise un routeur BGP avec Quagga pour gérer
un AS, lequel est raccordé à deux transitaires.
Cette solution, tout à fait fonctionnelle me pose cependant un problème :
c'est celui de la tolérance à la panne. Actuellement, le routeur principal
n'a pas de copain redondant "automatique". J'ai envisagé une série de
possibilités pour palier à ce problème, mais à chaque fois, je me heurte à
une difficulté (souvent la même d'ailleurs, directement ou indirectement).

Pour résumer, voici le type de configs que j'ai envisagées et ce à quoi je
me heurte:

1 - Le routeur principal continue à fonctionner comme à l'heure actuelle,
et, en cas de coupure, il est automatiquement secouru par un serveur de
backup en utilisant un outil de HA (Keepalived). Au moment de la panne, le
backup prend les adresses IP du master et remonte les sessions BGP. Le hic,
c'est qu'il faut plusieurs minutes pour récupérer toutes les routes, donc
une interruption de service trop longue à mon gout. :(
Schémas :

- en prod:
LAN ------ MASTER / BGP ------ NET
           SLAVE DORMANT

- en panne:
LAN --\   MASTER EN PANNE   /--- NET
       \---SLAVE / BGP ----/

2 - Seconde solution, le master et le backup ne partagent avec Keepalived
que les IP sur la patte interne du réseau, et de l'autre côté, montent
chacun de leur côté des sessions BGP avec les transitaires. Afin de ne pas
avoir de trafic sur le slave en fonctionnement normal (il n'a pas les IP sur
la patte interne, donc il ne peut pas router le trafic), je rallonge la
route du slave d'un hop en ajoutant notre numéro d'AS dans la route vers
notre AS. En production, ça donne : le master fait son job, et le slave a
juste des routes montées, mais qui ne servent à rien tant que le master est
up. Au moment de la panne du master, il y a deux cas de figure : soit il
s'agit juste d'une rupture sur la patte interne, auquel cas le master se met
en défaut et coupe toutes les routes et sessions BGP. Le slave prend alors
le relais au pied levé puisque les transitaires ont été informés de la
coupure des sessions BGP par le master (coupure "controlée" sur la patte
publique). Le hic ce coup-ci, c'est que si le problème vient de la patte
publique sur le master, ou qu'il se gauffre complètment, le slave va prendre
le relais, mais les sessions BGP du master ne vont pas se fermer tout de
suite. Ca signifie que le trafic va continuer à arriver au master alors
qu'il est tombé dans les pommes. :( (bis)
Schémas :

- en prod:
LAN ---->>> MASTER / BGP --<<</---- NET
            SLAVE / BGP -o-o-/

- en panne:
LAN ----\    MASTER EN PANNE   <<</------- NET
         \-- SLAVE / BGP ----->>>/

3- La troisième solution, ça a été de mixer les tests faits précédemment,
pour faire sortir une solution idéale, qui n'est jamais venue.

J'en suis donc arrivé à devoir choisir entre deux approches différentes,
mais où le resultat final est le même : en cas de coupure du master, il faut
plusieurs minutes pour remonter les sessions BGP correctement.

Je m'adresse donc à vous en espérant que ce cas de redondance des routeurs
BGP avec Quagga n'a plus de secret pour vous, et que vous voudrez bien
éclairer ma lanterne quant à la méthode à employer :)
Je ne vous demande pas de configuration complète, juste une piste à explorer
;)
A moins que vous n'ayez une astuce à me donner pour forcer les sessions BGP
à remonter en un temps record, auquel cas je peux utiliser la solution 1 ;)

D'avance merci pour votre aide.

Bonne fin de week end.

Benjamin.


---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à