Quelque soit le service rendu par un système informatique, il est essentiel que les utilisateurs aient confiance en son fonctionnement pour pouvoir l’utiliser dans de bonnes conditions. Le terme « sûreté de fonctionnement » caractérise le niveau de confiance d’un système informatique.

Une défaillance correspond à un dysfonctionnement du service, c’est-à-dire un état de fonctionnement anormal ou plus exactement non conforme aux spécifications. Du point de vue de l’utilisateur, un service possède deux états :

  • service approprié, c’est-à-dire conforme aux attentes ;
  • service inapproprié, c’est-à-dire non conforme aux attentes.

Une défaillance est imputable à une erreur, c’est-à-dire un dysfonctionnement local. Toutes les erreurs ne conduisent pas nécessairement à une défaillance du service.

Il existe plusieurs moyens de limiter les défaillances d’un service :

  • la prévention des fautes consistant à éviter les fautes en les anticipant.
  • la tolérance aux fautes dont l’objectif est de fournir un service conforme aux spécifications malgré les fautes en introduisant une redondance.
  • l’élimination des fautes visant à réduire le nombre de fautes grâce à des actions correctives.
  • la prévision des fautes en anticipation les fautes et leur impact sur le service.

Introduction à la haute disponibilité

On appelle « haute disponibilité » (en anglais « high availability ») toutes les dispositions visant à garantir la disponibilité d’un service, c’est-à-dire assurer le bon fonctionnement d’un service 24H/24.

Le terme « disponibilité » désigne la probabilité qu’un service soit en bon état de fonctionnement à un instant donné.

Le terme « fiabilité », parfois également utilisé, désigne la probabilité qu’un système soit en fonctionnement normal sur une période donnée. On parle ainsi de « continuité de service ».

La disponibilité s’exprime la plupart du temps sous la forme de taux de disponibilité, exprimé en pourcentage, en ramenant le temps de disponibilité sur le temps total. Le tableau suivant présente le temps d’indisponibilité (en anglais downtime) sur une base d’une année (365 jours) en fonction du taux de disponibilité :

Taux de disponibilité Durée d’indisponibilité
97% 11 jours
98% 7 jours
99% 3 jours et 15 heures
99,9% 8 heures et 48 minutes
99,99% 53 minutes
99,999% 5 minutes
99,9999% 32 secondes


Évaluation des risques

En effet, la panne d’un système informatique peut causer une perte de productivité et d’argent, voire des pertes matérielles ou humaines dans certains cas critiques. Il est ainsi essentiel d’évaluer les risques liés à un dysfonctionnement (faute) d’une des composantes du système d’information et de prévoir des moyens et mesures permettant d’éviter ou de rétablir dans des temps acceptables tout incident.

Comme chacun le sait, les risques de pannes d’un système informatique en réseau sont nombreux. L’origine des fautes peut être schématisée de la manière suivant :

  • Origines physiques : elles peuvent être d’origine naturelle ou criminelle :
    • Désastre naturel (innondation, séisme, incendie)
    • Environnement (intempéries, taux d’humidité de l’air, température) ;
    • Panne matérielle ;
    • Panne du réseau ;
    • Coupure électrique.
  • Origines humaines : elles peuvent être intentionnelles ou fortuites :
    • Erreur de conception (bogue logiciel, mauvais dimensionnement du réseau) ;
  • Origines humaines : elle peuvent être intentionnelles ou fortuites :
    • Erreur de conception (bogue logiciel, mauvais dimensionnement du réseau) ;
  • Origines opérationnelles : elle sont lié à un état du système à un moment donné :
    • Bogue logiciel ;
    • Dysfonctionnement logiciel

L’ensemble de ces risques peuvent avoir différentes causes telles que les suivantes :

  • Malveillance intentionnelle.

Tolérance aux pannes

Puisqu’il est impossible d’empêcher totalement les pannes, une solution consiste à mettre en place des mécanismes de redondance, en dupliquant les ressources critiques.

La capacité d’un système à fonctionner malgré une défaillance d’une de ses composantes est appelée tolérance aux pannes (parfois nommée tolérance aux fautes », en anglais fault tolerance).

Lorsqu’une des ressources tombe en panne, les autres ressources prennent le relais afin de laisser le temps aux administrateurs du système de remédier à l’avarie. En anglais le terme de « Fail-Over Service » (noté FOS) est ainsi utilisé.

Idéalement, dans le cas d’une panne matérielles, les éléments matériels fautifs devront pouvoir être « extractibles à chaud » (en anglais « hot swappable »), c’est-à-dire pouvoir être extraits puis remplacés, sans interruption de service.

La sauvegarde

Néanmoins, la mise en place d’une architecture redondante ne permet que de s’assurer de la disponibilité des données d’un système mais ne permet pas de protéger les données contre les erreurs de manipulation des utilisateurs ou contre des catastrophes naturelles telles qu’un incendie, une inondation ou encore un tremblement de terre.

Il est donc nécessaire de prévoir des mécanismes de sauvegardes, idéalement sur des sites distants, afin de garantir la pérennité des données.

Par ailleurs, un mécanisme de sauvegarde permet d’assurer une fonction d’archivage, c’est-à-dire de conserver les données dans un état correspondant à une date donnée.

Hot Standby Router Protocol

Hot Standby Router Protocol (HSRP) est un protocole propriétaire de Cisco implémenté sur les routeurs et les commutateurs de niveau 3 permettant une continuité de service. HSRP est principalement utilisé pour assurer la disponibilité de la passerelle par défaut dans un sous-réseau en dépit d’une panne d’un routeur.

HSRP est décrit dans la RFC 2281.

Fonctionnement

Dans chaque sous-réseau où HSRP est actif, on définit un groupe de routeurs, c’est-à-dire un identifiant numérique. Le numéro du groupe varie de 0 à 255, il peut donc exister jusqu’à 256 groupes HSRP dans un même sous-réseau. Chaque groupe est associé à une adresse IP virtuelle distincte.

Dans un groupe, un routeur actif sera élu : celui qui aura la priorité la plus élevée. Les autres routeurs sont en standby et écoutent les messages émis par le routeur actif. Périodiquement, les routeurs du groupe échangent des messages Hello pour s’assurer que les routeurs du groupe sont encore joignables. Par défaut, les messages Hello sont envoyés toutes les 3 secondes, et un délai de plus de 10 secondes sans message Hello de la part du routeur actif entraîne la promotion du routeur Standby en actif.

Le routeur actif assure seul la réponse aux requêtes ARP pour l’adresse IP virtuelle. Sur Ethernet, l’adresse MAC virtuelle associée à cette adresse IP virtuelle sera de la forme 00:00:0c:07:ac:XX, où XX correspond au numéro de groupe en hexadécimal.

Si le routeur actif nominal devient inaccessible un autre routeur sera élu : celui qui a la deuxième priorité la plus élevée. Tous les messages entre les routeurs sont échangés en utilisant l’adresse multicast 224.0.0.2 via UDP sur le port 1985, le TTL des paquets est fixé à 1 pour éviter leur propagation au-delà du sous-réseau.

Si un routeur A découvre qu’un autre routeur B est actif pour le même groupe dans un sous-réseau et que ce dernier a une priorité inférieure à la sienne, alors le routeur A annonce qu’il reprend le rôle de routeur actif, pour autant qu’il soit configuré pour la préemption, avec un message Coup. Un routeur actif peut renoncer immédiatement à son rôle en émettant un message Resign, ce qui provoque la promotion du routeur Standby en actif sans délai.

Le routeur actif ne doit pas révéler son adresse IP réelle aux hôtes qui l’utilisent avec son adresse IP virtuelle. En particulier, les messages ICMP redirect ne seront pas envoyés.

Le changement de routeur actif est transparent pour les hôtes du segment qui utilisent l’adresse virtuelle. Au moment du basculement, le routeur actif envoie des messages gratuituous ARP qui modifient la table d’adresse MAC du commutateur (aussi appelé switch).

Limitations de HSRP

Il n’y a pas de partage de la charge entre les routeurs participants au groupe. On peut cependant définir plusieurs groupes ayant chacun un routeur actif différent et partager les hôtes entre ces groupes.

L’utilisation de l’adresse multicast 224.0.0.2 (All routers) a pour effet que tous les routeurs du sous-réseau reçoivent les messages, y compris ceux qui ne participent pas à HSRP.

Virtual Router Redundancy Protocol

Virtual Router Redundancy Protocol (protocole de redondance de routeur virtuel, VRRP) est un protocole standard dont le but est d’augmenter la disponibilité de la passerelle par défaut des hôtes d’un même réseau. Le principe est de définir la passerelle par défaut pour les hôtes du réseau comme étant une adresse IP virtuelle référençant un groupe de routeurs.

Il est décrit dans la RFC 5798 (rendant obsolète la RFC 3768).

Fonctionnement

VRRP utilise la notion de routeur virtuel, auquel est associée une adresse IP virtuelle ainsi qu’une adresse MAC virtuelle. Les rôles de routeur master et routeur backup sont également utilisés et associés aux routeurs d’un groupe VRRP.

Le routeur master (ou maître en français) est associé à l’adresse IP virtuelle du groupe. C’est lui qui va répondre aux requêtes ARP des clients sur cette adresse IP. Un ou plusieurs routeurs backup (ou de secours en français) qui pourront reprendre le rôle de master en cas de défaillance de celui-ci.

VRRP peut être utilisé sur Ethernet, MPLS et les réseaux Token Ring. Une implémentation pour le protocole IPv6 est définie par la RFC 5798 avec la version 3 du protocole VRRP.

Le protocole VRRP est plus déployé que d’autres protocoles similaires.] VRRP est un standard IETF pris en charge par de nombreux vendeurs de routeurs ainsi que par des systèmes d’exploitation comme Linux3.

Implémentation

Chaque routeur qui participe au groupe VRRP se voit définir une priorité allant de 1 à 255 (du routeur le moins prioritaire au routeur maitre). L’élection va déterminer un routeur maitre qui annoncera alors une priorité de 255.

Les messages VRRP sont échangés à intervalle régulier (appelé Advertisement_Interval, égal à une seconde par défaut) sur l’adresse multicast 224.0.0.18. Le champ « protocole » de l’entête IP est positionné à 112. Les messages sont envoyés avec comme adresse MAC source l’adresse MAC virtuelle du groupe VRRP.

Les routeurs backup sont attentifs à ces messages : ils vérifient que la priorité du maître est toujours supérieure à la leur, ainsi que l’arrivée régulière des messages. À défaut de message d’un autre routeur maître dans le sous-réseau (après 3,6 s par défaut), un routeur backup se proclamera maître.

Si l’option de préemption est configurée, un routeur backup se proclamera maître si la priorité du maître baisse en dessous de la sienne, à défaut le routeur maître continuera à assurer son rôle.

Il est possible au maître de renoncer spontanément et de provoquer rapidement une nouvelle élection, sans attendre un timeout, en indiquant que sa priorité est passée à zéro.

La priorité d’un routeur peut être rendue dynamique avec pour paramètre la disponibilité d’un lien physique (tracking).

L’adresse MAC virtuelle VRRP a toujours le format 00-00-5E-00-01-XX, le dernier octet étant le numéro du groupe VRRP (VRID, Virtual Router IDentifier), codé en hexadécimal. Si plusieurs groupes VRRP coexistent dans un sous-réseau, chacun doit avoir un VRID unique.

Choix du master

Chaque routeur d’un groupe VRRP est paramétré avec une priorité (valeur configurable de 1 à 254, par défaut égale à 100). Cette priorité est le paramètre qui va permettre le choix d’un routeur master pour le groupe VRRP. Le routeur du groupe ayant la priorité la plus haute est choisi comme master. En cas d’égalité, le routeur ayant l’adresse IP la plus élevée est choisi.

À noter que si un routeur est paramétré avec l’adresse IP virtuelle du groupe VRRP, celui-ci a une priorité égale à 255 (valeur maximale de priorité). De fait il sera choisi comme master.

Remarque

Dans un groupe VRRP, il n’y a pas de notion de partage de la charge, c’est le routeur maître qui assure exclusivement la transmission des paquets pour le routeur virtuel. S’il y a un nombre d’hôtes suffisant, il est toutefois possible de définir plusieurs groupes VRRP sur chacun des routeurs, et de configurer autant de groupes d’hôtes qui auront chacun une passerelle par défaut différente.

Il est également important de faire remarquer que VRRP n’est pas un protocole de routage. En effet, celui-ci ne vise pas à échanger des informations de routage avec d’autres routeurs mais assure la haute disponibilité de la passerelle par défaut dans un sous-réseau.