Qu’est-ce que l’équilibrage de charge de couche 4 ?

L’équilibrage de charge de couche 4 utilise des informations définies au niveau de la couche de transport réseau (couche 4) comme base pour décider comment répartir les demandes des clients sur un groupe de serveurs. Pour le trafic Internet en particulier, un équilibreur de charge de la couche 4 base la décision d’équilibrage de charge sur les adresses IP source et de destination et les ports enregistrés dans l’en-tête du paquet, sans prendre en compte le contenu du paquet.

Il existe en tout sept couches de réseau, définies par le modèle de référence OSI (Open Systems Interconnection). Pour plus d’informations, voir Couches des modèles OSI et Internet ci-dessous.

Pour plus d’informations sur l’équilibrage de charge, voir Équilibrage de charge des applications avec NGINX Plus.

Équilibrage de charge de couche 4 et NAT

Aujourd’hui, l’expression « équilibrage de charge de couche 4 » désigne le plus souvent un déploiement dans lequel l’adresse IP de l’équilibreur de charge est celle annoncée aux clients pour un site web ou un service (via le DNS, par exemple), de sorte que les clients enregistrent l’adresse de l’équilibreur de charge comme adresse IP de destination dans leurs requêtes.

Lorsque l’équilibreur de charge de couche 4 reçoit une demande et qu’une décision d’équilibrage de charge est prise, celui-ci effectue également une traduction d’adresse réseau (NAT) sur le paquet de demande, en remplaçant l’adresse IP de destination enregistrée par celle du serveur de contenu qu’il a choisi sur le réseau interne. De même, avant de transmettre les réponses du serveur aux clients, l’équilibreur de charge remplace l’adresse IP du serveur par sa propre adresse source enregistrée dans l’en-tête du paquet. Les numéros de port TCP de destination et de source enregistrés dans les paquets sont parfois également modifiés de la même manière.

La décision de routage des équilibreurs de charge de couche 4 est basée sur des informations d’adresse extraites des premiers paquets du flux TCP et aucune inspection du contenu des paquets n’est effectuée. Un équilibreur de charge de couche 4 est souvent un dispositif matériel dédié fourni par un vendeur et exécute un logiciel d’équilibrage de charge propriétaire. De plus, les opérations NAT peuvent être effectuées à travers des puces spécialisées plutôt que par un logiciel.

L’équilibrage de charge de couche 4 était une approche architecturale populaire du traitement du trafic lorsque le matériel de base n’était pas aussi puissant qu’aujourd’hui et que l’interaction entre les clients et les serveurs d’application était beaucoup moins complexe. Il nécessite moins de calculs que les méthodes d’équilibrage de charge plus sophistiquées (telles que la couche 7), mais l’unité centrale et la mémoire sont aujourd’hui suffisamment rapides et bon marché pour que l’avantage en termes de performances de l’équilibrage de charge de couche 4 soit devenu négligeable ou non pertinent dans la plupart des situations.

Comparaison des équilibreurs de charge de couche 4 et de couche 7

Les équilibreurs de charge de couche 7 opèrent au niveau le plus élevé du modèle OSI, la couche application (sur Internet, HTTP est le protocole dominant à cette couche). Les décisions de routage des équilibreurs de charge de couche 7 sont fondées sur diverses caractéristiques de l’en-tête HTTP et sur le contenu réel du message, comme l’URL, le type de données (texte, vidéo, graphiques) ou les informations contenues dans un cookie.

La prise en compte d’un nombre beaucoup plus important d’aspects de l’information transférée peut rendre l’équilibrage de charge de couche 7 plus coûteux que celui de couche 4 en termes de temps et de puissance de calcul requise, mais il peut néanmoins conduire à une plus grande efficacité globale. Par exemple, comme un équilibreur de charge de couche 7 peut déterminer le type de données (vidéo, texte, etc.) demandé par un client, il n’est pas nécessaire de dupliquer les mêmes données sur tous les serveurs d’équilibrage de charge.

Les équilibreurs de charge modernes à usage général, tels que NGINX Plus et le logiciel libre NGINX, fonctionnent généralement à la couche 7 et servent de proxys inversés complets. Plutôt que de gérer le trafic paquet par paquet comme les équilibreurs de charge de couche 4 qui utilisent la NAT, les proxys d’équilibrage de charge de couche 7 peuvent lire les demandes et les réponses dans leur intégralité. Ils gèrent et manipulent le trafic sur la base d’une compréhension complète de la transaction entre le client et le serveur d’application.

Certains équilibreurs de charge peuvent être configurés pour fournir un équilibrage de charge de couche 4 ou de couche 7, en fonction de la nature du service. Comme indiqué précédemment, le matériel moderne de base est généralement suffisamment puissant pour que les économies de coûts de calcul réalisées grâce à l’équilibrage de charge de couche 4 ne soient pas assez importantes pour compenser les avantages d’une plus grande flexibilité et d’une plus grande efficacité de l’équilibrage de charge de couche 7.

Comment NGINX peut vous aider

NGINX Plus et NGINX sont les meilleures solutions d’équilibrage de charge utilisées par des sites web à fort trafic tels que Dropbox, Netflix et Zynga. Plus de 350 millions de sites web dans le monde s’appuient sur NGINX Plus et NGINX Open Source pour diffuser leur contenu de manière rapide, fiable et sécurisée.

En tant qu’équilibreur de charge logiciel, NGINX Plus est beaucoup moins cher que les solutions matérielles ayant des capacités similaires. Les capacités complètes d’équilibrage de charge de NGINX Plus vous permettent de construire un réseau Application Delivery Network hautement optimisé.

Lorsque vous insérez NGINX Plus en tant qu’équilibreur de charge devant votre batterie de serveurs, vous augmentez l’efficacité, la performance, la fiabilité et l’évolutivité de l’ensemble de votre site web. NGINX Plus vous aide à maximiser à la fois la satisfaction de vos clients et le retour sur vos investissements informatiques.

Couches des modèles OSI et Internet

Pour le trafic Internet, parler d’équilibrage de charge de « couche 4 » et de « couche 7 » est une abréviation pratique, mais qui n’est pas tout à fait exacte. Si cela vous intéresse, lisez la suite.

La notion de sept couches de réseau provient du modèle de référence OSI (Open Systems Interconnection). Ce modèle sépare les fonctions de réseau en sept couches abstraites, communément désignées par leur numéro (couche 1 à couche 7). À chaque couche, des normes définissent la manière dont les données sont conditionnées et transportées. Entre autres, les normes définissent la manière de segmenter le flux de bits qui constitue une demande ou une réponse en paquets discrets appelés unités de données du protocole (PDU). Les normes définissent également les métadonnées ajoutées à chaque PDU sous la forme d’un en-tête ; les métadonnées peuvent spécifier les adresses des hôtes d’origine et de destination, par exemple.

L’attribution de différents aspects de la fonctionnalité du réseau à différentes couches simplifie le traitement à chaque couche, car un protocole doit seulement savoir comment traiter les PDU de sa propre couche et quelles métadonnées inclure dans l’en-tête pour que les protocoles des couches adjacentes puissent reconditionner les PDU à leur propre niveau de segmentation des données.

La répartition des fonctions de réseau entre les protocoles de base pour le trafic sur le World Wide Web [qui sont collectivement désignés sous le nom de suite de protocoles Internet (IP)] n’est pas exactement conforme au modèle OSI. En effet, la suite IP a été définie et mise en œuvre avant la publication de la version définitive du modèle OSI en 1984. Néanmoins, les différents protocoles de la suite IP remplissent des fonctions distinctes qui correspondent grosso modo aux couches OSI.

Il existe plusieurs protocoles définis à chaque niveau, mais les protocoles et niveaux suivants sont pertinents pour l’équilibrage du trafic d’un site web :

  • Le protocole Internet (IP) fonctionne au niveau de la couche interréseau (couche 3). Les PDU associées sont appelées paquets, et l’IP est chargé de les acheminer d’un hôte d’origine à un hôte de destination, généralement à travers les frontières entre les multiples petits réseaux qui constituent l’Internet. Chaque appareil directement connecté à l’Internet possède une adresse IP unique, qui est utilisée pour localiser l’appareil en tant que destinataire des paquets.
  • Le protocole de contrôle de transmission (TCP) fonctionne au niveau de la couche transport (couche 4). Le TCP crée effectivement une connexion virtuelle entre l’hôte où le navigateur est exécuté et l’hôte où une application serveur est exécutée. En raison de la nature peu fiable des réseaux, les paquets IP peuvent être perdus, corrompus ou arriver dans le désordre. Le TCP dispose de mécanismes pour corriger ces erreurs, transformant le flux de paquets IP en un canal de communication fiable. Chaque application se voit attribuer un numéro de port TCP unique afin de permettre la livraison à l’application correcte sur les hôtes où de nombreuses applications sont exécutées.
  • Le protocole Hypertext Transfer Protocol (HTTP) fonctionne au niveau de la couche application (couche 7). Il définit la manière dont les données sont encodées pour la communication entre les navigateurs web et les serveurs web (ou toute application qui comprend l’encodage HTTP).

Comme le montre clairement cette liste, l’expression « équilibrage de charge de couche 4 » du trafic Internet est une abréviation pratique, mais le terme plus exact est « équilibrage de charge de couche 3/4 », car la décision de l’équilibreur de charge est fondée à la fois sur les adresses IP des serveurs d’origine et de destination (couche 3) et sur le numéro de port TCP des applications (couche 4). Le terme plus exact pour « équilibrage de la charge de couche 7 » pourrait être « équilibrage de charge des couches 5 à 7 », car le protocole HTTP combine les fonctions des couches 5, 6 et 7 de l’interface OSI.