Contenu

Introduction

Fond

Conditions préalables

Topologie

Configuration

Flux de trafic

Dépannage

Solution de contournement

Introduction

Ce document explique les scénarios dans lesquels la polarisation de l'équilibrage de charge des canaux de port pourrait se produire et fournit des suggestions sur la façon de les empêcher.

Fond

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

Conditions préalables

Il est recommandé d'avoir des connaissances sur les sujets suivants.

Protocole de contrôle d'agrégation de lien

Plates-formes Cisco Nexus

Topologie

Configuration

N7K1 et N7K2 connectés dans VPC et Po100, Po200, Po300 et Po301 sont dans le canal de port VPC.

N7K1 et N7K2 agissent en tant que commutateur L2 pur sans routage sur ces commutateurs.

Tous les commutateurs exécutent le même algorithme d’équilibrage de charge de canal de port

Le problème de polarisation est observé sur le trafic sortant de N7K1 et N7K2, que le trafic de la source à la destination se trouvait dans le même vlan (pas de routage) ou s'il se trouvait dans un vlan différent 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 du port de couche 4 varient également d'un paquet à l'autre). Une bonne combinaison de trafic est utilisée pour garantir que, dans une situation idéale, le trafic serait réparti uniformément entre les interfaces membres port-channel.

Le trafic en provenance de la source se trouve sur N7k3/N7k4, puis passe par N7K1/N7K2 jusqu'à la destination.

Une liaison entre les liaisons membres de Po100 et Po200 sur chacun des N7K1 et N7K2 envoie près de 99 % du trafic et l'autre liaison reste inactive. ( c'est-à-dire, sur chaque commutateur N7K1 et N7K2, une liaison entre 4/2 et 4/3 transporte 99 % du trafic de monodiffusion et l'autre liaison comporte moins de 1 %, de même une liaison entre 9/2 et 9/3 transporte 99 % du trafic et l'autre liaison comporte moins de 1 %. la sortie de la section dépannage montre le trafic sur les interfaces membres po100 et po200 sur N7K1, une sortie similaire peut être vue sur N7K2).

Quel que soit le type d'algorithme d'équilibrage de charge de canal de port utilisé, le problème peut être observé tant que le même algorithme d'équilibrage de charge de canal de port est utilisé sur les paires N7K1/N7K2 et N7K3/N7K4. La commande permettant de vérifier l'algorithme d'équilibrage de charge de port-channel est indiqué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 l'équilibrage de charge inégal est visible sur un canal de port, il peut être dû à la polarisation.

Lorsque le trafic atteint les commutateurs N7K3 et N7K4, ils sont transférés aux commutateurs N7K1/N7K2 via Po301 de N7K4 et Po300 de N7K3. Ici, l'algorithme d'équilibrage de charge démarre et certains flux sont transférés à N7K1 et d'autres flux transférés à N7K2.

Initialement, tout le trafic entre dans les commutateurs N7K3/N7K4 sur eth1/1 et selon les informations de port src-dest ip et l4, certains flux sont hachés sur la liaison en direction de N7K1 et d'autres flux sont hachés sur la liaison en direction de N7K2. Le hachage est effectué en fonction de la valeur rbh calculée par le commutateur. Pour des raisons 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). Flow X envoyé à partir d'une liaison de membre de canal de port et flow Y envoyé à partir de l'autre liaison de membre de canal de port.

Maintenant, lorsque le trafic atterrit sur la paire N7K1/N7K2, il peut y avoir deux possibilités. (considérant que X et Y sont interchangeables)

Cas 1 :

N7K3 a envoyé le flux X à N7K1 et le flux Y à N7K2

et

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

et

N7K4 a envoyé le flux X à N7K1 et le flux Y à N7K2

Dans le cas 1, N7K1 et N7K2 reçoivent à la fois le type de flux (flux X et flux Y) et même après avoir utilisé le même algorithme d'équilibrage de charge de canal de port que celui utilisé par N7K3/N7K4, aucune polarisation ne serait vue comme les flux sortent de Po100 et Po200 sur différentes liaisons et, par conséquent, nous voyons une meilleure distribution du trafic entre les interfaces de canal de port.

Dans le cas 2, N7K1 reçoit uniquement le flux X et N7K2 reçoit uniquement le flux Y, ce qui peut créer une polarisation si l'algorithme d'équilibrage de charge du canal de port utilisé sur ces commutateurs est identique à celui utilisé dans la paire N7K3/N7K4. Comme N7K1 et N7K2 utilisent le même algorithme d'équilibrage de charge de canal de port, N7K1 envoie le flux X sur une seule liaison membre de Po100/Po200 et l'autre liaison membre ne transmettra aucun trafic. De même, N7K2 envoie le flux Y sur une seule liaison membre de Po100/Po200 et l'autre liaison membre ne transfère aucun trafic.

Puisque le trafic que les commutateurs N7K1 et N7K2 reçoivent est déjà classifié pour commencer, une seule liaison membre port-channel sera utilisée pour envoyer tout le trafic entrant en dehors du commutateur N7K1/N7K2 et rien ne sera envoyé en dehors de l'autre liaison membre. Si 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-channel ne transfère 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, selon le hachage, soit aucune polarisation ne se produirait, soit nous verrons une polarisation partielle où seulement deux des quatre liaisons membres du port-channel seraient utilisées pour transférer tout le trafic entrant et les deux autres liaisons ne transmettraient rien

La polarisation est due à la conception et il est donc important d'analyser la conception pour s'assurer qu'aucune polarisation ne se produit. La sortie indiquant que la polarisation se produit Po100 et Po200 sur N7k1 est donnée ci-dessous (une sortie similaire peut être vue sur N7K2 également).

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%

CSCvq26885 a été déposé pour documentation externe.

Solution de contournement

Suivez certaines des solutions de contournement qui peuvent être utilisées pour s'assurer que la polarisation ne se produit pas.

1. Conception appropriée : Comme la principale cause de 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 n'est possible, nous pouvons effectuer les opérations suivantes.

2. Utilisez différents algorithmes d'équilibrage de charge de canal de port à 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 et, par conséquent, le trafic sortant utilise toutes les liaisons membres port-channel. (La décision quant à l’algorithme à choisir dépend du type de trafic reçu par le commutateur)

3. Si le client souhaite utiliser le même algorithme d'équilibrage de charge, utilisez des valeurs de rotation différentes à chaque niveau de commutateurs. La commande Rotate introduit le caractère aléatoire de l'algorithme de hachage en compensant le hash-input par les octets configurés par l'utilisateur et contribue à é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)