Introduction
Ce document décrit des scénarios dans lesquels la polarisation dans l'équilibrage de charge port-channel pourrait se produire et fournit des suggestions sur la façon de les empêcher.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Composants utilisés
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Fond
La polarisation est un problème où l’algorithme de hachage sélectionne certains chemins dans le réseau et laisse les chemins redondants inutilisés.
Topologie
Configuration
N7K1 et N7K2 sont connectés dans VPC et Po100, Po200, Po300 et Po301 sont dans le port-channel VPC.
N7K1 et N7K2 agissent comme un commutateur L2 pur, sans aucun routage sur ces commutateurs.
Tous les commutateurs exécutent le même algorithme d’équilibrage de charge port-channel.
Le problème de polarisation se pose sur le trafic sortant de N7K1 et N7K2, que le trafic de la source à la destination se trouve dans le même VLAN (pas de routage) ou dans des VLAN différents avec le routage se produisant sur N7K3 ou N7K4.
Flux de trafic
La source envoie plusieurs flux à la destination (avec plusieurs adresses IP source et de destination, et les informations de port L4 varient également d'un paquet à l'autre). Un bon mélange de trafic est utilisé afin de s'assurer que dans une situation idéale, le trafic est uniformément réparti entre les interfaces membres port-channel.
Le trafic en provenance de la source atterrit sur N7k3/N7k4, puis passe par N7K1/N7K2 jusqu'à la destination.
Une liaison parmi les liaisons membres de Po100 et Po200 sur N7K1 et N7K2 envoie près de 99 % du trafic et l'autre liaison reste inactive. Autrement dit, sur chaque commutateur N7K1 et N7K2, une liaison parmi les 4/2 et 4/3 transporte 99 % du trafic de monodiffusion et l'autre liaison moins de 1 %. De même, une liaison parmi les liaisons 9/2 et 9/3 transporte 99 % du trafic et l'autre liaison transporte moins de 1 %. Le résultat de la section de dépannage indique le trafic sur les interfaces membres Po100 et Po200 sur N7K1. Des résultats similaires sont visibles sur N7K2.
Quel que soit le type d'algorithme d'équilibrage de charge de canal de port utilisé, le problème peut être constaté tant que le même algorithme d'équilibrage de charge de canal de port est utilisé sur la paire N7K1/N7K2 et la paire N7K3/N7K4. La commande permettant de vérifier l'algorithme d'équilibrage de charge de port-channel est illustrée ci-dessous :
N7K1# show port-channel load-balance
Warning: Per Packet Load balance configuration has higher precedence
System config:
Non-IP: src-dst mac
IP: src-dst ip-l4port-vlan rotate 0
Port Channel Load-Balancing Configuration for all modules:
Module 1:
Non-IP: src-dst mac
IP: src-dst ip rotate 0
Module 2:
Non-IP: src-dst mac
IP: src-dst ip rotate 0
Module 3:
Non-IP: src-dst mac
IP: src-dst ip rotate 0
Module 4:
Non-IP: src-dst mac
IP: src-dst ip-l4port-vlan rotate 0
Module 7:
Non-IP: src-dst mac
IP: src-dst ip-l4port-vlan rotate 0
Module 8:
Non-IP: src-dst mac
IP: src-dst ip-l4port-vlan rotate 0
Module 9:
Non-IP: src-dst mac
IP: src-dst ip-l4port-vlan rotate 0
Dépannage
Si un équilibrage de charge inégal est observé sur un port-channel, cela peut être dû à la polarisation.
Lorsque le trafic atteint les commutateurs N7K3 et N7K4, il est transféré aux commutateurs N7K1/N7K2 via Po301 de N7K4 et Po300 de N7K3. Ici, l'algorithme d'équilibrage de charge s'active et certains flux sont transférés vers N7K1 et d'autres vers N7K2.
Initialement, tout le trafic entre dans les commutateurs N7K3/N7K4 sur eth1/1, et sur la base de l'adresse IP src-dst et des informations de port l4, certains flux sont hachés sur la liaison allant vers N7K1 et d'autres flux sont hachés sur la liaison allant vers N7K2. Le hachage est effectué en fonction de la valeur rbh calculée par le commutateur. Par souci de simplicité, supposons que, sur la base de l’algorithme d’équilibrage de charge utilisé, le commutateur sépare le trafic entrant en deux flux (flux X et flux Y). Le flux X est envoyé à partir d’une liaison membre de canal de port et le flux Y est envoyé à partir de l’autre liaison membre de canal de port.
À présent, lorsque le trafic se pose sur la paire N7K1/N7K2, il peut y avoir deux possibilités. (Considérons que X et Y sont interchangeables.)
Cas 1 :
N7K3 a envoyé le flux X à N7K1 et le flux Y à N7K2
N7K4 a envoyé le flux Y à N7K1 et le flux X à N7K2
Cas 2 :
N7K3 a envoyé le flux X à N7K1 et le flux Y à N7K2
N7K4 a envoyé le flux X à N7K1 et le flux Y à N7K2
Dans le cas 1, N7K1 et N7K2 reçoivent les deux types de flux (flux X et flux Y) et même après avoir utilisé le même algorithme d'équilibrage de charge port-canal que celui utilisé par N7K3/N7K4, aucune polarisation ne serait vue comme les flux sortent de Po100 et Po200 sur des liaisons différentes. Par conséquent, nous constatons une meilleure répartition du trafic entre les interfaces membres port-channel.
Dans le cas 2, N7K1 ne reçoit que le flux X et N7K2 ne reçoit que le flux Y, ce qui peut créer une polarisation si l'algorithme d'équilibrage de charge port-channel utilisé sur ces commutateurs est le même que celui utilisé dans la paire N7K3/N7K4. Comme N7K1 et N7K2 utilisent le même algorithme d'équilibrage de charge port-channel, N7K1 envoie le flux X sur une seule liaison membre de Po100/Po200 et l'autre liaison membre ne transmet aucun trafic. De même, N7K2 envoie le flux Y sur une seule liaison membre de Po100/Po200 et l'autre liaison membre ne transmet aucun trafic.
Puisque le trafic que les commutateurs N7K1 et N7K2 reçoivent est déjà classifié pour commencer, une seule liaison membre de canal de port est utilisée pour envoyer tout le trafic entrant à partir du commutateur N7K1/N7K2 et rien ne serait envoyé à partir de l'autre liaison membre. Dans le cas où le débit du trafic entrant dépasse la bande passante de la liaison port-canal unique, le trafic supplémentaire peut être abandonné car l'autre liaison membre port-canal ne transfèrerait pas ce trafic.
Un problème similaire peut être observé lorsque plus de deux liaisons sont utilisées dans le port-channel. Par exemple, si quatre liaisons sont utilisées dans un port-channel, alors selon le hachage qui se produit, soit aucune polarisation ne se produit, soit nous voyons une polarisation partielle où seulement deux des quatre liaisons membres port-channel seraient utilisées pour transférer tout le trafic entrant. Les deux autres liens ne transmettraient rien
La polarisation est provoquée par la conception et il est donc important d'analyser la conception afin de s'assurer qu'aucune polarisation ne se produit. La sortie indiquant la polarisation qui se produit sur Po100 et Po200 sur N7k1 est présentée ci-dessous (une sortie similaire peut également être vue sur N7K2).
N7K1# show port-channel summary | i 200
200 Po200(SU) Eth LACP Eth9/2(P) Eth9/3(P)
N7K1# show port-channel traffic interface port-channel 200
NOTE: Clear the port-channel member counters to get accurate statistics
ChanId Port Rx-Ucst Tx-Ucst Rx-Mcst Tx-Mcst Rx-Bcst Tx-Bcst
------ --------- ------- ------- ------- ------- ------- -------
200 Eth9/2 0.0% 99.99% 44.44% 4.00% 0.0% 100.00%
200 Eth9/3 0.0% 0.00% 55.55% 96.00% 0.0% 0.0%
N7K1# show port-channel summary | i 100
100 Po100(SU) Eth LACP Eth4/2(P) Eth4/3(P)
N7K1# show port-channel traffic interface port-channel 100
NOTE: Clear the port-channel member counters to get accurate statistics
ChanId Port Rx-Ucst Tx-Ucst Rx-Mcst Tx-Mcst Rx-Bcst Tx-Bcst
------ --------- ------- ------- ------- ------- ------- -------
100 Eth4/2 0.0% 99.99% 40.55% 7.00% 0.0% 100.00%
100 Eth4/3 0.0% 0.00% 54.44% 93.00% 0.0% 0.0%
Solution De Contournement
Certaines des solutions de contournement utilisées pour s'assurer que la polarisation ne se produit pas sont décrites dans cette section.
- Conception appropriée : étant donné que la cause principale de la polarisation est une conception incorrecte, il est préférable de modifier la conception du réseau pour s'assurer qu'il n'y a pas de place pour la polarisation dans la topologie.
Si aucune modification de la conception n'est possible, nous pouvons procéder comme suit.
- Utilisez différents algorithmes d’équilibrage de charge port-channel à chaque niveau de commutateurs (un algorithme sur la paire N7K1/N7k2 et un algorithme différent sur la paire N7K3/N7k4). Lorsque l'algorithme d'équilibrage de charge est modifié, les commutateurs N7k1/N7k2 hachent désormais le trafic entrant en fonction d'autres informations que celles utilisées par les commutateurs N7k3/N7k4. Par conséquent, le trafic sortant utilise toutes les liaisons membres port-channel. (Le choix de l’algorithme dépend du type de trafic reçu par le commutateur.)
- Si vous souhaitez utiliser le même algorithme d’équilibrage de charge, utilisez des valeurs de rotation différentes à chaque niveau de commutateurs. La
rotate commande introduit le caractère aléatoire dans l'algorithme de hachage en décalant l'entrée de hachage par les octets configurés par l'utilisateur et aide à éviter la polarisation. (Utilisez une valeur de rotation pour la paire N7k1/N7k2 et une valeur de rotation différente pour la paire N7k3/N7k4.)