Actualités :
14/05/2010 - Nouvelle fonctionnalité : devis en ligne !
30/04/2010 - Un exemple de Blind SQL Injection : Vulnérabilité Cacti
26/03/2010 - Forensics : un cas réel d'intrusion
22/02/2010 - Nos nouvelles offres : ToIP, VPN, Pont Hertzien et Forensic
29/01/2010 - Suivez nos Tweets
17/09/2009 - Debug VPN sous CheckPoint SecurePlatform
16/09/2009 - Activation des modules Apache sur Ubuntu 8.0.4 Server
04/09/2009 - Support du FTP passif sur un serveur protégé par iptables/netfilter
01/09/2009 - Linux Guru Wanted !
28/07/2009 - Désactiver la méthode TRACE sur Apache
20/07/2009 - Copier avec écrasement en mode non interactif
14/07/2009 - Connaitre la version de son Linux
28/03/2009 - NIST lance le concours pour SHA-3
17/01/2008 - Newsletter Janvier 2008
07/01/2008 - Monter un environnement PXE en 5 minutes
05/01/2008 - Google fabrique son propre switch 10Gb
15/12/2007 - wfuzz, un fuzzer HTTP
15/11/2007 - Newsletter Novembre 07
23/10/2007 - Un audit sécurité wifi
25/06/2007 - Visioconférences IP au travers de firewalls
12/06/2007 - Monter un serveur FTP sécurisé
10/05/2007 - Methodes AntiSpam
19/04/2007 - Proxy SNMP
13/03/2007 - NBAR, une fonctionnalité méconnue
04/03/2007 - Déchiffrer une session SSL : méthodes et limitations
24/02/2007 - LoadBalancer : Algorithmes de répartition
22/02/2007 - Rebond sur un PIX : évolutions au fil des versions
19/02/2007 - Apple se moque de la sécurité de Vista
25/01/2007 - Mesure réseau sous Linux
20/01/2007 - Load-Balancers : Introduction

 

 

 

Vous pouvez également retouver d'autres articles sur notre blog ou sur Twitter .

 

24/02/2007 - LoadBalancer : Algorithmes de répartition

Une des fonctionnalités les plus visibles des Load-Balancer est la façon dont il répartissent les flux vers les serveurs réels.

Tout d'abord soyons clair : la répartition (c-a-d le choix du serveur pour la connexion cliente) ne se fait qu'une fois : lors de l'ouverture de la connexion

(( Dans le cas spécifique de HTTP, on verra que les load-balancers gèrent les sessions et qu'ainsi une suite de connexions TCP HTTP sera bien gérée comme la session d'un utilisateur unique )) : les paquets appartenant à une session TCP déjà établie sont dirigés vers le serveur choisi pour cette connexion.

Les algorithmes implémentés sont généralement :

  • round robin : on répartit chaque nouvelle connexion sur un serveur différent
  • least connections : on dirige la nouvelle connexion sur le serveur qui en compte le moins à ce moment précis
  • bandwidth : on dirige la nouvelle connexion sur le serveur qui en utilise le moins à ce moment précis
  • hashing (certaines variantes sont nommées minmisses ou phash): en effectuant une opération sur l'adresse IP du client (ou l'URL de la demande par exemple) , typiquement condensat, bit de parité,etc.. on détermine le serveur réel cible : c'est une méthode frustre qui présuppose une distribution répartie des adresses IP des clients (on verra que c'est rarement le cas). L'avantage de cette méthode est qu'elle rend le choix du serveur déterministe et permet ainsi nativement d'assurer la persistence.
  • weighted : on applique une des méthodes précédentes en biaisant le poids des serveurs réels (intéressant lorsque la ferme est composée de serveur de puissance hétérogènes)
Le choix d'un méthode de répartition est , on le voit, assez structurant pour comprendre la façon dont la charge sera répartie sur les servuers réels. Dans un prochain article, on verra comment est assurée la persistence et quelles sont les réelles opérations bas niveau réalisées par le load balanceur (i.e delayed binding)