54 votes

Comment fonctionne exactement et spécifiquement le hachage d'adresses de destination LACP de couche 3 ?

Sur la base d'une question posée il y a plus d'un an ( Ethernet multiplexé à 1 Gbps ? ), je suis allé installer un nouveau rack avec un nouveau fournisseur d'accès à Internet avec des liens LACP un peu partout. Nous en avons besoin parce que nous avons des serveurs individuels (une application, une IP) qui desservent des milliers d'ordinateurs clients sur tout l'Internet à plus de 1Gbps cumulés.

Cette idée LACP est censée nous permettre de franchir la barrière du 1Gbps sans dépenser une fortune en commutateurs et cartes réseau 10GoE. Malheureusement, j'ai rencontré quelques problèmes concernant la distribution du trafic sortant. (Et ce malgré l'avertissement de Kevin Kuphal dans la question ci-dessus).

Le routeur du FAI est une sorte de Cisco. (Mon commutateur est un HP ProCurve 2510G-24. Et les serveurs sont des HP DL 380 G5 fonctionnant sous Debian Lenny. L'un des serveurs est un serveur de secours. Notre application ne peut pas être mise en cluster. Voici un diagramme de réseau simplifié qui inclut tous les nœuds de réseau pertinents avec les IP, les MAC et les interfaces.

alt text

Bien qu'il contienne tous les détails, il est un peu difficile de travailler avec et de décrire mon problème. Par souci de simplicité, voici donc un diagramme de réseau réduit aux nœuds et aux liens physiques.

alt text

J'ai donc installé mon kit dans le nouveau rack et j'ai connecté le câblage de mon fournisseur d'accès à partir de son routeur. Les deux serveurs ont un lien LACP avec mon commutateur, et le commutateur a un lien LACP avec le routeur du FAI. Dès le début, je me suis rendu compte que ma configuration LACP n'était pas correcte : les tests ont montré que tout le trafic vers et depuis chaque serveur passait par un lien physique GoE exclusivement entre le serveur et le commutateur et entre le commutateur et le routeur.

alt text

Après quelques recherches sur Google et beaucoup de temps passé en RTMF concernant le bonding des cartes réseau sous linux, j'ai découvert que je pouvais contrôler le bonding des cartes réseau en modifiant le fichier /etc/modules

# /etc/modules: kernel modules to load at boot time.
# mode=4 is for lacp
# xmit_hash_policy=1 means to use layer3+4(TCP/IP src/dst) & not default layer2 
bonding mode=4 miimon=100 max_bonds=2 xmit_hash_policy=1

loop

Le trafic quittant mon serveur sur les deux cartes d'interface réseau s'est ainsi déroulé comme prévu. Mais le trafic se déplaçait du commutateur au routeur sur un seul lien physique, encore .

alt text

Nous avons besoin que ce trafic passe par les deux liaisons physiques. Après avoir lu et relu le manuel d'utilisation de la 2510G-24, nous avons décidé de l'utiliser. Guide de gestion et de configuration Je trouve :

[LACP uses] sou [ ] pour distribuer le trafic sortant sur les liaisons à ressources partagées. SA/DA (adresse source/adresse de destination de destination) permet au commutateur de de distribuer le trafic sortant sur les liens du groupe de lignes groupées sur la base de l'adresse sur la base de paires d'adresses source/destination d'adresses source/destination. En d'autres termes, le commutateur envoie le trafic de la même adresse source à la même adresse de destination par la même liaison à ressources partagées, et envoie le trafic de la même source vers une adresse de destination différente destination par une liaison différente, en fonction de la rotation des affectations de entre les liens du tronc commun, et envoie le trafic de la même adresse source à une adresse de destination tronc.

Il semble qu'un bonded link ne présente qu'une seule adresse MAC, et donc mon chemin serveur vers routeur sera toujours sur un seul chemin de switch à routeur parce que le switch ne voit qu'un seul MAC (et non pas deux - un de chaque port) pour les deux liens LACP.

J'ai compris. Mais c'est ce que je veux :

alt text

Un commutateur HP ProCurve plus cher, le 2910al, utilise les adresses source et destination de niveau 3 dans son hachage. Dans la section "Outbound Traffic Distribution Across Trunked Links" du manuel d'utilisation du ProCurve 2910al, il est indiqué que les adresses source et destination sont de niveau 3 dans le hachage. Guide de gestion et de configuration :

La distribution réelle à travers un tronc dépend d'un calcul utilisant les bits de l'adresse source et de l'adresse et de l'adresse de destination. Lorsque une adresse IP est disponible, le comprend les cinq derniers bits de l'adresse bits de l'adresse source IP et de l'adresse sinon les adresses MAC sont utilisées.

OK. Donc, pour que cela fonctionne comme je le souhaite, l'adresse de destination est la clé puisque mon adresse source est fixe. Cela m'amène à ma question :

Comment fonctionne exactement et spécifiquement le hachage LACP de la couche 3 ?

J'ai besoin de savoir quelle adresse de destination est utilisée :

  • l'IP du client La destination finale ?
  • Ou l'IP du routeur la destination de transmission de la liaison physique suivante.

Nous n'avons pas encore acheté d'interrupteur de remplacement. Je vous prie de m'aider à comprendre exactement si le hachage d'adresse de destination LACP de couche 3 est ou n'est pas ce dont j'ai besoin. L'achat d'un autre commutateur inutile n'est pas une option.

2voto

Dave Points 864

Si votre commutateur voit la véritable destination L3, il peut la hacher. En gros, si vous avez 2 liens, pensez que le lien 1 est pour les destinations impaires et que le lien 2 est pour les destinations paires. Je ne pense pas qu'ils utilisent l'IP du prochain saut, sauf s'ils sont configurés pour le faire, mais cela revient à peu près à utiliser l'adresse MAC de la cible.

Le problème que vous allez rencontrer est que, en fonction de votre trafic, la destination sera toujours l'adresse IP unique du serveur unique, de sorte que vous n'utiliserez jamais l'autre lien. Si la destination est le système distant sur l'internet, vous obtiendrez une distribution égale, mais s'il s'agit de quelque chose comme un serveur web, où votre système est l'adresse de destination, le commutateur enverra toujours le trafic sur une seule des liaisons disponibles.

La situation sera encore pire s'il y a un équilibreur de charge quelque part, car l'IP "distante" sera toujours soit l'IP de l'équilibreur de charge, soit le serveur. Vous pouvez contourner ce problème en utilisant de nombreuses adresses IP sur l'équilibreur de charge et le serveur, mais il s'agit d'un piratage.

Vous devriez peut-être élargir un peu votre horizon de vendeurs. D'autres fournisseurs, tels que extreme networks, peuvent s'occuper de choses telles que.. :

Algorithme L3_L4 - Couche 3 et Couche 4, les adresses IP source et de destination combinées et les adresses IP de destination combinées et les adresses IP de destination combinées et les adresses IP de destination combinées. les numéros de port TCP et UDP de la source et de la destination. Disponible sur SummitStack et Summit X250e, X450a, X450e et X650.

En gros, tant que le port source du client (qui change généralement beaucoup) change, le trafic est réparti uniformément. Je suis sûr que d'autres fournisseurs ont des fonctions similaires.

Même le hachage des IP source et destination suffirait à éviter les points chauds, tant qu'il n'y a pas d'équilibreur de charge dans le mélange.

0voto

Bill Weiss Points 10602

Je suppose qu'il s'agit de l'IP du client, et non du routeur. Les véritables IP de source et de destination seront à un décalage fixe dans le paquet, et il sera rapide d'effectuer le hachage. Le hachage de l'IP du routeur nécessiterait une recherche basée sur le MAC, n'est-ce pas ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X