Bonjour, Je vais me répondre à moi-même puisque depuis que j'ai posé la question, j'ai pu trouver une solution efficace, pas trop compliquée et qui réponde au besoin exprimé. Si ça peut interesser quelqu'un autant que ça serve ;)
Petit rappel tout d'abord : le besoin exprimé était de pouvoir mettre en œuvre des routeurs BGP redondants et tolérants à la panne. La solution la plus simple qui avait été testée était simplement d'utiliser du VRRP avec une paire d'adresses virtuelles (une publique et une privée pour la gateway). Le soucis majeur qui se pose alors, c'est le délai nécessaire à la remontée des sessions BGP qui prend plusieurs minutes, et du coup provoque une rupture de lien complète pendant cette période. Je ne vais pas vous redonner tout le détail de mes tribulations (vous en avez déjà une partie dans l'archive de la liste ;) ) mais juste aller à l'essentiel. La solution que j'ai retenue oblige au fonctionnement suivant. Tout d'abord, les deux routeurs seront actifs en même temps, pour ne pas avoir de latence en cas de panne de l'un d'eux (il n'y a pas de mystère : monter des sessions BGP, ça prend du temps). Les sessions BGP seront montées en double (sur chaque routeur), ce qui induit du trafic entrant par les deux routeurs, mais une seule gateway sera utilisée (on pourrait faire en sorte d'utiliser les deux, mais ça complique un peu la gestion des passerelles). Du coup, seul un des deux routeurs assumera la sortie du trafic. La configuration s'appuie sur une idée simple. Chaque routeur sera le backup de l'autre. Ca signifie que chaque routeur se voit attribuer une IP virtuelle sur chaque patte (donc 4 VIP : 2 publiques et 2 privées pour la gateway). En cas de panne, le routeur restant prendra alors automatiquement les IP de son homologue en perdition et récupérera tout le trafic résiduel le temps que les sessions BGP tombent. En revanche, pour ne pas provoquer de rupture au moment du retour du routeur malade, il FAUT que la pondération sur l'IP virtuelle privée qui sert de passerelle soit égale pour chaque routeur. Ca induit qu'on ne peut pas prédire quel routeur assumera le trafic, mais ça empêchera la rupture si le "master" reprend la main alors qu'il n'a pas remonté ses sessions BGP, car le VRRP, en cas de pondération égale ne "change rien" (si deux routeurs sont actifs et qu'ils veulent la même ressource avec le même poids/coef, c'est celui qui avait déjà la main qui la garde). Voila le principe général. Cependant, au moment de tester cette solution, un problème majeur apparaît. En effet, à aucun moment on ne prend en compte le fait qu'en cas de rupture d'un lien (patte externe ou interne), ça provoque un "trou noir" sur l'autre patte qui reçoit du trafic et ne sait plus comment l'acheminer. Il faudrait alors lier les instances VRRP afin qu'elles se passent le mot quand une patte est en perdition. Pour ça, il y a les groupes d'instances VRRP. Le soucis, c'est que si on groupe, non seulement on répercute l'info d'état "FAULT", mais aussi l'état "MASTER", et là, ça ne va plus, parce que dans ce cas, quand le routeur qui était en panne revient, quand il récupère son IP publique pour remonter ses sessions BGP, il récupère l'IP privée qui allait avec ce qui provoque le trou noir mentionné précédemment. Du coup, j'ai mis du temps à le trouver car l'instruction de configuration n'apparaît pas dans la doc de Keepalived, il ne faut pas utiliser de groupes, mais simplement propager un état "FAULT", sans se soucier des autres états. Cela se fait avec du "track_interface eth0 eth1" par exemple, dans chaque instance. Ca a pour effet de passer en état FAULT une instance si au moins une des interfaces listées est "malade". Une fois qu'on a mis tout ça en place, on obtient deux routeurs qui sont tolérants à la panne l'un de l'autre et qui prennent le relais en 5 secondes max ;) J'espère que mon explication était assez claire :) Bonne journée. Benjamin. --------------------------- Liste de diffusion du FRnOG http://www.frnog.org/