6.2.2.16.2. high-availability

6.2.2.16.2.1. Introduction

La commande high-availability du sous-groupe advanced-configuration permet de configurer la haute disponibilité entre 2 GCap (fonction ajoutée à partir de la version 2.5.3.105).

Fonctionnement :

Se référer au paragraphe Fonctionnement de la haute disponibilité.

Type de configuration réseau :

  • liaison avec 1 interface : mon0 est remplacée par ha0
    Les interfaces de capture disponibles sont donc mon1, mon2, etc

  • liaison avec 2 interfaces : mon0 et mon1 sont remplacées par ha0 et ha1.
    Les interfaces de capture disponibles sont donc mon2, mon3, etc.

Un GCap leader devient follower dans les conditions suivantes :

  • perte de la liaison avec le GCenter pendant 1 min

  • perte du moteur de détection pendant 5 minutes


6.2.2.16.2.2. Prérequis

  • Utilisateur : setup

  • Dépendances : le moteur de détection doit être à l'arrêt


6.2.2.16.2.3. Commande

set advanced-config high-availability [public-ip IPV6/MASK] [gateway GATEWAY|null] [peer-ip IPV6] [multicast-group IPV6] [shared-secret SECRET] [peer-pubkey KEY] [bonding-enabled|bonding-disabled]

set advanced-config high-availability  [enable|disable] [confirm]

Explication des paramètres :

  • bonding-enabled : activer l'agrégation des cartes mon0 + mon1.

  • bonding-disabled : désactiver l'agrégation des cartes mon0 + mon1.

  • enable : activer la haute disponibilité.

  • disable : désactiver la haute disponibilité.

  • gateway : adresse IPv6 de la passerelle dans le cas où les GCap ne sont pas dans le même sous-réseau.

  • multicast-group : adresse IPv6 multicast pour la communication entre les GCaps. Plage FF00::/8. Ex : FF02::200.

  • peer-ip : adresse IPv6 du GCap voisin parmi:

    • Link-local : si les GCap sont dans le même sous-réseau. Plage FE80::/10. Ex : FE80::100/64.

    • ULA (Unique Local Address) : si les GCap sont dans des sous-réseaux différents. Plage FD00::/7. Ex : FD00::100/64.

    • Global Unicast : si les GCap doivent communiquer via internet. Plage 2001::/3. Ex : 2001::1/64.

  • peer-pubkey : Clé publique du GCap voisin via la commande show advanced-configuration high-availability pubkey.

  • public-ip : adresse IPv6 du GCap parmi:

    • Link-local : si les GCap sont dans le même sous-réseau. Plage FE80::/10. Ex : FE80::100/64.

    • ULA (Unique Local Address) : si les GCap sont dans des sous-réseaux différents. Plage FD00::/7. Ex : FD00::100/64.

    • Global Unicast : si les GCap doivent communiquer via internet. Plage 2001::/3. Ex : 2001::1/64.

  • shared-secret : secret de 16 octets encodé en base64 qui doit être identique entre les 2 GCaps.


6.2.2.16.2.4. Exemple pour configurer la haute disponibilité sur le premier GCap

  • Entrer la commande suivante.

    (gcap-cli) set advanced-configuration high-availability peer-ip fe80::XXX public-ip fe80::YYY multicast-group ff02::200 peer-pubkey 2wtmY/oCaoUGreyr2CROnKAIoEgTXkSOedXlXDvUfBU= shared-secret Xxf4fknh4KoOH2zgrI4Wyw==
    

    Le système affiche le résultat.

    Updating HA configuration
    High availability configuration successfully updated
    

6.2.2.16.2.5. Exemple pour configurer la haute disponibilité sur le deuxième GCap

  • Entrer la commande suivante.

    (gcap-cli) set advanced-configuration high-availability peer-ip fe80::YYY public-ip fe80::XXX multicast-group ff02::200 peer-pubkey xehXnrigZ0IZZEvWbWri8XegNh0KaAQk8vC6mKj27Ug= shared-secret Xxf4fknh4KoOH2zgrI4Wyw==
    
    

    Le système affiche le résultat.

    Updating HA configuration
    High availability configuration successfully updated
    

6.2.2.16.2.6. Exemple pour activer la haute disponibilité sur chaque GCap

  • Entrer la commande suivante.

    (gcap-cli) set advanced-configuration high-availability enable confirm
    

    Le système affiche le résultat.

    Interfaces naming rules updated, reloading configuration
    Operation successful.
    High availability configuration successfully updated
    

6.2.2.16.2.7. Exemple pour générer un secret partagé avec le script Python suivant

import base64
import secrets

shared_secret = base64.b64encode(secrets.token_bytes(16))