Table des matières

Qu'est ce que Keepalived ?

Keepalived est un logiciel de routage écrit en C. Le principal objectif de ce projet est de fournir des installations simples et robustes pour l'équilibrage de charge et la haute disponibilité des infrastructures basées sur le système Linux. Le cadre de l'équilibrage de charge s'appuie sur le module du noyau du serveur virtuel Linux (IPVS), bien connu et largement utilisé, qui assure l'équilibrage de charge de la couche 4.

Keepalived met en œuvre un ensemble de contrôleurs pour maintenir et gérer dynamiquement et de manière adaptative le pool de serveurs à équilibrage de charge en fonction de leur état de santé. D'autre part, la haute disponibilité est assurée par le protocole VRRP.

Le VRRP est une brique fondamentale pour le basculement des routeurs. Afin d'offrir une détection de panne de réseau plus rapide, Keepalived implémente le protocole BFD. La transition d'état VRRP peut prendre en compte l'indice BFD pour conduire une transition d'état rapide.

Keepalived est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier selon les termes de la licence publique générale GNU telle que publiée par la Free Software Foundation ; soit la version 2 de la licence, soit (à votre choix) toute version ultérieure.

Architecture

Keepalived est utilisé pour le basculement IP entre deux serveurs. Il permet d'équilibrer la charge et la haute disponibilité des infrastructures basées sur Linux. Il fonctionne avec le protocole VRRP (Virtual Router Redundancy Protocol).

1 VIP :

2 servers linux :

Mise en place d'IPVS

Commençons la pratique en se basant sur une architecture réseau simple.

L'infrastructure de test est constituée de deux noeuds Server 1 et Server 2 d'adresses IP 192.168.1.101 et 192.168.1.102.

Les deux nœuds hébergent chacun un serveur web Apache.

Après avoir vidé les éventuels enregistrements ipvs déjà présents, on ajoute un service réseau sur le port 80 correspondant donc au HTTP, associé à un algorithme d'équilibrage.

Installer les paquets nécessaires

Tout d'abord, utilisez la commande suivante pour installer les paquets nécessaires à la configuration de Keepalived sur le serveur.

$ sudo apt-get update
$ sudo apt-get install linux-headers-$(uname -r)

Installer Keepalived

Les paquets conservés sont disponibles dans les dépôts par défaut. Il suffit donc d'utiliser une commande pour l'installer sur les deux serveurs.

$ sudo apt-get install keepalived

Configuration de Keepalived

Maintenant, créez ou modifiez le fichier de configuration Keepalived/etc/keepalived/keepalived.conf” et ajoutez les paramètres suivants.

Mettez à jour toutes les valeurs surlignées en rouge avec votre configuration réseau et système.

$ sudo nano /etc/keepalived/keepalived.conf

Paramètre :

Server 1

Configuration sur le premier noeud.

! Configuration File for keepalived
 
global_defs {
   notification_email {
     sysadmin@oowy.lan
     support@oowy.lan
   }
   notification_email_from server1@oowy.lan
   smtp_server localhost
   smtp_connect_timeout 30
}
 
vrrp_instance VI_1 {
    state MASTER
    interface enp0s3
    virtual_router_id 101
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.101
    }
}

Server 2

Configuration sur le second noeud.

! Configuration File for keepalived
 
global_defs {
   notification_email {
     sysadmin@oowy.lan
     support@oowy.lan
   }
   notification_email_from server1@oowy.lan
   smtp_server localhost
   smtp_connect_timeout 30
}
 
vrrp_instance VI_1 {
    state MASTER
    interface enp0s3
    virtual_router_id 101
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.102
    }
}

Démarrer le service KeepAlived

Démarrez le service keepalived en utilisant la commande suivante et configurez également le démarrage automatique au démarrage du système.

sudo systemctl start keepalived

Vérifier l'IP virtuelle

Par défaut, l'adresse IP virtuelle sera attribuée au serveur maître. En cas de panne du serveur maître, elle sera automatiquement attribuée au serveur esclave. Utilisez la commande suivante pour afficher l'adresse IP virtuelle assignée sur l'interface.

Sortie standard

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:64:70:2a brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.101/24 brd 192.168.1.255 scope global dynamic enp0s3
       valid_lft 2291sec preferred_lft 2291sec
    inet 192.168.1.100/32 scope global enp0s3
       valid_lft forever preferred_lft forever

Annexe

https://www.keepalived.org