El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento explica los escenarios bajo los cuales podría ocurrir la polarización en el balanceo de carga de canal de puerto y proporciona sugerencias sobre cómo prevenirlos.
Polarización es un problema donde el algoritmo hash selecciona ciertas trayectorias en la red y deja las trayectorias redundantes sin utilizar
Se recomienda conocer los siguientes temas.
Link Aggregation Control Protocol
Plataformas Cisco Nexus
N7K1 y N7K2 conectados en VPC y Po100, Po200, Po300 y Po301 están en el canal de puerto VPC.
N7K1 y N7K2 actúan como un switch L2 puro sin que se produzca un ruteo en estos switches.
Todos los switches ejecutan el mismo algoritmo de balanceo de carga de canal de puerto
El problema de polarización se observa en el tráfico que sale de N7K1 y N7K2 independientemente de si el tráfico del origen al destino estaba en la misma vlan (sin ruteo) o si estaban en una vlan diferente con el ruteo que ocurre en N7K3 o N7k4.
El origen envía varias secuencias al destino (con varias direcciones IP de origen y de destino, y la información del puerto L4 también varía de un paquete a otro). Se utiliza una buena mezcla de tráfico para garantizar que, en una situación ideal, el tráfico se distribuya de manera uniforme entre las interfaces miembro del canal de puerto.
El tráfico de origen aterriza en N7k3/N7k4 y luego va a través de N7K1/N7K2 al destino.
Un link entre links miembro de Po100 y Po200 en cada N7K1 y N7K2 está enviando casi el 99% del tráfico y el otro link permanece inactivo. (es decir, en cada switch N7K1 y N7K2, un link entre 4/2 y 4/3 transporta el 99% del tráfico unicast y el otro link transporta menos del 1%, de manera similar, un link entre 9/2 y 9/3 transporta el 99% del tráfico y el otro link transporta menos del 1%. la salida de la sección Troubleshooting muestra el tráfico en las interfaces de miembro po100 y po200 en N7K1, una salida similar puede verse en N7K2).
Independientemente del tipo de algoritmo de balanceo de carga de canal de puerto utilizado, el problema puede verse siempre que se utilice el mismo algoritmo de balanceo de carga de canal de puerto en el par N7K1/N7K2 y en el par N7K3/N7K4. El comando para verificar el algoritmo de balanceo de carga de canal de puerto se proporciona a continuación.
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
Si se observa un balanceo de carga desigual en un canal de puerto, puede deberse a la polarización.
Cuando el tráfico llega a los switches N7K3 y N7K4, se reenvían a los switches N7K1/N7K2 a través de Po301 de N7K4 y Po300 de N7K3. Aquí, el algoritmo de balanceo de carga se activa y algunos flujos se reenvían a N7K1 y otros flujos reenviados a N7K2.
Inicialmente, todo el tráfico ingresa en los switches N7K3/N7K4 en eth1/1 y en base a la información de puerto ip y l4 src-dest, ciertos flujos se transmiten en el link hacia N7K1 y otros flujos se transmiten en el link hacia N7K2. El hashing se realiza en base al valor rbh que calcula el switch. Por simplicidad, supongamos que, según el algoritmo de equilibrio de carga utilizado, el switch separa el tráfico entrante en dos flujos (flujo X y flujo Y). Flujo X enviado desde un link de miembro de canal de puerto y flujo Y enviado desde el otro link de miembro de canal de puerto.
Ahora, cuando el tráfico está aterrizando en el par N7K1/N7K2, puede haber dos posibilidades. (Consideración de X e Y como intercambiables)
Caso 1:
N7K3 envió el flujo X a N7K1 y el flujo Y a N7K2
y
N7K4 envió el flujo Y a N7K1 y el flujo X a N7K2
Caso 2:
N7K3 envió el flujo X a N7K1 y el flujo Y a N7K2
y
N7K4 envió el flujo X a N7K1 y el flujo Y a N7K2
En el caso 1, N7K1 y N7K2 reciben ambos tipos de flujos (flujo X y flujo Y) e incluso después de usar el mismo algoritmo de balanceo de carga de canal de puerto que el N7K3/N7K4, no se vería ninguna polarización a medida que los flujos salen de Po100 y Po200 en diferentes links y, por lo tanto, vemos una mejor distribución del tráfico entre las interfaces miembro de canal de puerto.
En el caso 2, N7K1 recibe solamente el flujo X y N7K2 recibe solamente el flujo Y y esto podría crear polarización si el algoritmo de balanceo de carga de canal de puerto utilizado en estos switches es el mismo que el utilizado en el par N7K3/N7K4. Como N7K1 y N7K2 están usando el mismo algoritmo de balanceo de carga de canal de puerto, N7K1 envía el flujo X en un solo link miembro de Po100/Po200 y el otro link miembro no reenviará ningún tráfico. De manera similar, N7K2 envía el flujo Y en un solo link miembro de Po100/Po200 y el otro link miembro no reenviará ningún tráfico.
Dado que el tráfico que reciben los switches N7K1 y N7K2 ya está clasificado para comenzar, solamente se utilizará un link miembro de canal de puerto para enviar todo el tráfico entrante fuera del switch N7K1/N7K2 y no se enviará nada fuera del otro link miembro. En el caso de que la velocidad de tráfico entrante exceda el ancho de banda del link de canal de puerto único, el tráfico adicional se puede descartar, ya que el otro link de miembro de canal de puerto no reenviará este tráfico.
Se puede ver un problema similar cuando se utilizan más de dos links en el canal de puerto. Por ejemplo, si se utilizan cuatro links en un canal de puerto, entonces dependiendo de la operación de hashing, no se produciría ninguna polarización o veremos una polarización parcial donde sólo se usarían dos de los cuatro links miembro de canal de puerto para reenviar todo el tráfico entrante y los otros dos links no reenviarían nada
La polarización es causada por el diseño y por lo tanto es importante analizar el diseño para asegurarse de que no se produce polarización. A continuación se muestra el resultado que indica la polarización que ocurre con Po100 y Po200 en N7k1 (también se puede ver un resultado similar en 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%
CSCvq26885 se presentó para documentación externa.
Siga algunas de las soluciones alternativas que se pueden utilizar para asegurarse de que no se produce la polarización.
1. Diseño adecuado: Dado que la causa principal de la polarización es un diseño inadecuado, lo mejor es asegurarse de que cambiemos el diseño de la red para asegurarnos de que no hay lugar para la polarización en la topología
Si no es posible realizar cambios en el diseño, podemos hacer lo siguiente.
2. Utilice algoritmos de balanceo de carga de canal de puerto diferentes en cada nivel de switches (un algoritmo en el par N7K1/N7k2 y un algoritmo diferente en el par N7K3/N7k4). Cuando se cambia el algoritmo de balanceo de carga, los switches N7k1/N7k2 ahora hacen un hash del tráfico entrante basado en alguna otra información que no sean las utilizadas por los switches N7k3/N7k4 y, por lo tanto, el tráfico saliente utiliza todos los links miembro del canal de puerto. (La decisión sobre qué algoritmo elegir depende del tipo de tráfico recibido por el switch)
3. Si el cliente desea utilizar el mismo algoritmo de balanceo de carga, utilice diferentes valores de rotación en cada nivel de switches. El comando Rotate introduce aleatoriedad en el algoritmo de hash al compensar la entrada hash por bytes configurados por el usuario y ayuda a evitar la polarización. (Utilice un valor de rotación para el par N7k1/N7k2 y un valor de rotación diferente para el par N7k3/N7k4)