Failover de liens Internet

Dans ma série d'articles OpenBSD ca déchire tout! (bon ok c'est le premier... les autres vont pas tarder ^^), voici un moyen simple de gérer deux connexions Internet (pour les chanceux) en mode failover. (une tombe, l'autre prend le relais).

Depuis la version 3.8 du poisson qui pique, le démon ifstated permet d'effectuer des actions prédéfinies en fonction de l'état des interfaces réseau ou du résultat de tests externes.

Le redondance de routes vers Internet est un cas simple d'utilisation de ce démon. Imaginons la configuration suivante :

  • une connexion d'un premier FAI (appelée principale) : l'interface utilisée est fxp0 et la route par défaut fournie est 10.0.10.254,
  • une connexion d'un deuxième FAI (appelée secours) : l'interface utilsée est em0 et la route par défaut fournie est 10.0.20.156.

La configuration suivante dans le fichier /etc/ifstated.conf permet le failover :

net = '( "ping -q -c 1 -w 1 10.0.10.254 > /dev/null" every 25 )'
state principale {
  init {
    run "route delete default"
    run "route add default 10.0.10.254"
  }
  if fxp0.link.down || fxp0.link.unknown || ! $net
    set-state secours
}
state secours {
  init {
    run "route delete default"
    run "route add default 10.0.20.156"
  }
  if fxp0.link.up && $net
    set-state principale
}

En gros, la macro $net permet de vérifier l'accès à la passerelle principale (FAI 1) toutes les 25 secondes via ping. La configuration principale est appliquée si l'état de l'interface fxp0 est différent de down ou unknown et que $net est vrai.

Si ce n'est pas le cas, ifstated bascule sur la configuration secours jusqu'à ce que l'état de fxp0 soit up et que $net soit vrai.

Pour démarrer ifstated :

$ ifstated

Pour l'activer de manière permanente, on édite le fichier /etc/rc.conf.local et on y colle :

ifstated_flags=""

C'est pas beau ça ??!!

0 commentaires

Aucun commentaire!

Postez votre commentaire