Rechercher sur SafeKit

Test de l’adresse IP virtuelle d’équilibrage de charge dans un cluster farm SafeKit

Ce guide décrit comment vérifier qu’une Farm SafeKit (module Farm, équilibrage de charge sur une adresse IP virtuelle) fonctionne correctement dans votre réseau : distribution des connexions sur les nœuds et réacheminement de l’IP virtuelle (VIP) lorsque le nœud de distribution s’arrête.

1. Principes clés

Prérequis : tous les nœuds de la Farm doivent se trouver dans le même sous-réseau IP de couche 2 : un LAN ou un VLAN étendu entre des sites distants.

  • L’IP virtuelle (VIP) est configurée localement sur chaque nœud de la Farm : elle est définie comme un alias de l’adresse IP physique, sur la carte réseau de cette adresse, lorsque la Farm est démarrée sur le nœud.
  • Un seul nœud, le serveur de répartition, reçoit le trafic réseau pour l’IP virtuelle (VIP) (configuration vmac_directed, la valeur par défaut de SafeKit) : son adresse MAC est celle associée à l’IP virtuelle (VIP) dans les tables ARP (routeur, passerelle, clients dans le même sous-réseau).
  • Le filtre du noyau de ce nœud distribue ensuite les connexions TCP sur les nœuds de la Farm, en réécrivant l’adresse MAC de destination des paquets à celle du nœud de traitement (l’adresse IP de destination reste l’adresse IP virtuelle (VIP)). Les réponses sont envoyées directement du nœud qui traite la connexion au client.
  • La distribution effectuée par le filtre est déterministe : le nœud de traitement est calculé à partir de l’identité du client, selon la règle d’équilibrage de charge configurée :
    • sur l’adresse IP du client (filter="on_addr") : un client donné est toujours servi par le même nœud, ce qui assure l’affinité de session ;
    • sur le port TCP du client (filter="on_port") : chaque connexion TCP du même client peut être desservie par un nœud différent. C’est la règle utilisée pour la mosaïque (section 2), qui affiche donc tous les nœuds à partir d’un seul poste de travail.
  • Si le serveur de répartition s’arrête, un autre nœud prend ce rôle et envoie GARPs (ARP gratuit) afin que le réseau associe l’IP virtuelle (VIP) à sa propre adresse MAC.

Ce que vous devez donc tester :

  1. que les connexions sont correctement réparties sur tous les nœuds;
  2. que le réseau (routeur, passerelle, virtualisation) prenne en compte le GARP lorsque le serveur de répartition change.

2. Prérequis : la mosaïque SafeKit

La mosaïque est une page de test fournie par SafeKit. Elle ouvre de nombreuses connexions TCP vers l’adresse IP virtuelle (VIP) et affiche, pour chacune d’elles, le nom du nœud qui a répondu. Cela permet de visualiser la distribution en un coup d’œil.

  1. Dans le userconfig.xml du module Farm, dans la section <vip>, ajoutez la règle d’équilibrage de charge sur le port du serveur Web SafeKit. Exemple avec le serveur Web SafeKit en HTTP sur le port 9010 :

    <loadbalancing_list>
      <group name="FarmProto">
        <rule port="9010" proto="tcp" filter="on_port"/>
      </group>
    </loadbalancing_list>
    

    Si le serveur Web et la console SafeKit ont été basculés sur HTTPS, remplacez 9010 par 9453.

  2. Appliquez la configuration sur tous les nœuds.

  3. À partir d’un navigateur sur un poste de travail client situé à l’extérieur de la Farm, connectez-vous à :

    http://<VIP>:9010/safekit/mosaic.html
    

    puis entrez le nom du module Farm et exécutez le test. Chaque cellule de la mosaïque affiche le nom du nœud qui a répondu à la connexion TCP, et une couleur est associée à chaque nœud pour montrer clairement les blocs de la mosaïque servis par le même nœud.

    En HTTPS, utilisez https://<VIP>:9453/safekit/mosaic.html, avec la règle d’équilibrage de charge sur le port 9453.

Testez l’adresse IP virtuelle d’une farm SafeKit avec la mosaïque

Regardez la vidéo de test de mosaïque dans la section « Démonstration de la solution farm SafeKit ».

3. Test 1 – Répartition des connexions

Étapes

  1. Démarrez la Farm sur tous les nœuds (état UP).
  2. Ouvrez la mosaïque à partir d’un poste de travail client.

Résultat attendu : la mosaïque affiche les noms de tous les nœuds de la Farm, avec une couleur différente pour chaque nœud de traitement.

Cela prouve que le routeur ou la passerelle en amont atteint l’un des nœuds via son adresse MAC, et que ce nœud distribue correctement les connexions.

4. Test 2 – Changement de serveur d’expédition

Ce test vérifie que la Farm continue de répondre lorsque le serveur d’expédition s’arrête.

Étapes

  1. Arrêtez la Farm, c’est-à-dire tous les nœuds de SafeKit.
  2. Démarrez un nœud unique. Ce nœud devient le serveur de répartition. → Résultat attendu : la mosaïque n’affiche que ce nœud.
  3. Démarrez les autres nœuds. → Résultat attendu : la mosaïque affiche tous les nœuds.
  4. Arrêtez le premier nœud, celui qui fait office de serveur de répartition. → Résultat attendu : la mosaïque affiche les nœuds restants.

Limitation de ce test : un résultat correct à l’étape 4 ne prouve pas que GARP fonctionne. Lorsque le module Farm est démarré sur les autres nœuds (étape 3), l’adresse IP virtuelle est configurée sur ces nœuds, ce qui génère des messages sur le réseau qui peuvent déjà rediriger l’association adresse IP virtuelle / adresse MAC. Seuls les tests 3 et 4 testent réellement GARP.

L’arrêt de tout autre nœud de la Farm (un nœud autre que le serveur de répartition) ne teste que la reconfiguration de la distribution.

5. Test 3 – Vérification du réacheminement GARP avec arp -a

Avec le test 4, ce test vérifie réellement GARP : vous notez l’adresse MAC du serveur de répartition avant de l’arrêter, puis vous vérifiez que l’association IP virtuelle (VIP)/MAC a changé par la suite.

Ce test n’est possible que si le poste de travail client affichant la mosaïque se trouve dans le même sous-réseau IP que la Farm.

S’il y a un routeur entre le client et la Farm, la table ARP du client ne contient pas l’adresse IP virtuelle (VIP), mais l’adresse de la passerelle utilisée pour atteindre le réseau de la Farm. Dans ce cas, vérifiez la table ARP du routeur ou de la passerelle avec l’équipe réseau.

Étapes

  1. Démarrez la Farm sur tous les nœuds.
  2. Sur le poste de travail client, exécutez arp -a et notez l’adresse MAC associée à l’adresse IP virtuelle (VIP). Elle identifie le serveur de répartition.
  3. Arrêtez le nœud Farm qui possède cette adresse MAC.
  4. Vérifiez que la mosaïque fonctionne toujours avec les nœuds restants.
  5. Exécutez à nouveau arp -a pour lire la nouvelle association IP virtuelle (VIP)/MAC et identifier le nouveau serveur de répartition.

6. Test 4 – Vérification de bout en bout avec Wireshark (Windows) ou tcpdump (Linux)

Vous pouvez suivre une connexion TCP vers l’IP virtuelle (VIP) en capturant les paquets sur le client et sur les nœuds Farm : avec Wireshark sur les machines Windows, et avec tcpdump sur les machines Linux.

Vous devez regarder les en-têtes MAC (Ethernet) des paquets, et pas seulement les adresses IP : le filtre du noyau du serveur de distribution distribue les connexions en réécrivant l’adresse MAC de destination des paquets à celle du nœud de traitement. L’adresse IP de destination reste l’IP virtuelle (VIP) sur l’ensemble du chemin.

Ce que vous devriez observer pour le même paquet SYN :

ÉtapeOù capturer les paquetsAdresses MAC observées
1. Le client envoie à l’adresse IP virtuelle (VIP)clientMAC du client → MAC du serveur de répartition
2. Le serveur de répartition transmet la connexion.serveur d’expéditionServeur d’expédition MAC → MAC du nœud de traitement
3. Le nœud de traitement reçoitnœud de traitementMAC du serveur d’expédition → MAC du nœud
4. Le nœud répond directement au client.nœud de traitementAdresse MAC du nœud → adresse MAC du client
5. Le client reçoit la réponse.clientAdresse MAC du nœud → adresse MAC du client

Si le poste de travail client se trouve dans un sous-réseau différent de celui de la Farm, le « MAC client » vu sur les nœuds Farm est l’adresse MAC de la passerelle (routeur) connectant les deux sous-réseaux, et non celle du poste de travail client.

Répétez la capture après avoir arrêté le serveur de répartition (test 2, étape 4) : l’étape 1 doit maintenant afficher l’adresse MAC du nouveau serveur de répartition.

7. À partir de quels postes de travail effectuer les tests

Le comportement dépend du chemin réseau entre le client et la Farm. Exécutez les tests 1 et 2 à partir de chaque type de client pertinent pour votre architecture :

Localisation du clientCe que le test vérifie
Client dans le même sous-réseau que la FarmMise à jour des tables ARP des clients par GARP (test 3 possible)
Client dans un sous-réseau différent (routeur, passerelle, réseau virtuel de l’hyperviseur)Gestion du GARP par le routeur ou la passerelle
Machine virtuelle cliente sur un hyperviseur qui héberge également une machine virtuelle FarmComportement du commutateur virtuel de l’hyperviseur, qui gère également la commutation et le routage internes.

8. Synthèse des résultats attendus

TestActionRésultat attendu
1Tous les nœuds UP, mosaïqueTous les nœuds apparaissent.
2.2Un seul nœud a démarréSeul ce nœud apparaît.
2.3Tous les nœuds ont démarré.Tous les nœuds apparaissent.
2.4Le serveur d’expédition s’est arrêté.Les nœuds restants apparaissent, sans interruption durable.
3arp -a avant et après l’arrêtL’adresse MAC associée à l’adresse IP virtuelle (VIP) change.
4Capture Wireshark ou tcpdump avant et après l’arrêtLe client envoie à l’adresse MAC du nouveau serveur de répartition.

9. Dépannage

Démonstration de la solution farm SafeKit

Vidéo SafeKit : Équilibrage de charge réseau et gestion des adresses IP virtuelles (5:03)

Dans cette vidéo, découvrez comment implémenter une adresse IP virtuelle pour fournir un point d’entrée unique pour un cluster à 2 nœuds. SafeKit simplifie l’équilibrage de charge réseau en gérant automatiquement l’IP virtuelle, garantissant que le trafic client est distribué sur les nœuds et redirigé instantanément en cas de basculement. Bien que cette démonstration utilise Apache sous Windows, la solution fonctionne de manière identique avec d’autres applications.

Chapitres

  1. 🎬 Architecture : Préparation de 2 nœuds pour une adresse IP virtuelle partagée (0:13)
  2. 🎬 Configuration : Configuration du module farm.safe et de l’adresse IP virtuelle (2:20)
  3. 🎬 Validation : Test de basculement et redirection d’adresse IP virtuelle en cas de panne du serveur (2:30)

Mise en œuvre étape par étape

Pour plus d’informations :

SafeKit AI Chat SafeKit AI