Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Antecedentes

Flujo De Tráfico Unidifusión Y Almacenamiento En Memoria Intermedia

Flujo De Tráfico Multicast Y Almacenamiento En Búfer

¿Qué Causa Los Descartes De Entrada?

Escenarios de resolución de problemas

Escenario 1. Descartes de entrada

Paso 1. Identificación de puertos con descartes de entrada

Paso 2. Identificación ASIC

Paso 3. Identificación del puerto congestionado de salida

Escenario 2. Descartes de entrada con HOLB

Mitigación de HOLB: Activar límite de VOQ

Mitigación de HOLB: Clasificación del tráfico

Información Relacionada

Introducción

Este documento describe cómo resolver problemas de descartes de entrada en los switches Nexus de Cisco serie 5600/6000.

Prerequisites

Requirements

Cisco recomienda que tenga conocimientos básicos sobre la configuración de Cisco Nexus serie 6000.

Componentes Utilizados

La información que contiene este documento se basa en las siguientes versiones de software y hardware.

- Cisco Nexus 6001

- 7.1(3)N1(1)

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 tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

Antecedentes

Los descartes de entrada son una indicación de un puerto de salida con exceso de suscriptores. También significa que es probable que esté descartando tráfico de unidifusión en ese puerto específico. Este artículo le ayuda a entender cómo se almacena el tráfico de unidifusión y multidifusión en esta plataforma y cómo pueden ocurrir los descartes de entrada junto con los pasos de mitigación.

Flujo De Tráfico Unidifusión Y Almacenamiento En Memoria Intermedia

El tráfico unidifusión se coloca primero en la cola del conjunto de búfer de salida y luego el búfer de ingreso después de que la cola de salida esté llena, como se muestra en la imagen.

Hay búfer compartido de ingreso de 16 MB y búfer compartido de salida de 9 MB. Los buffers se comparten entre 12 puertos de 10 gig o 3 puertos de 40 gig. El búfer compartido es bueno para la absorción de ráfagas.

A continuación se muestra una representación visual de la asignación de memoria para su referencia (Bigsur es el nombre del ASIC/controlador de puerto unificado), como se muestra en la imagen.

Flujo De Tráfico Multicast Y Almacenamiento En Búfer

- Los paquetes de multidifusión se almacenan en la memoria intermedia y se descartan al egreso

- Abandonar el paquete de multidifusión cerca del punto de congestión para evitar el Bloqueo de cabecera de línea (HOLB)

- Mantener el fabric sin pérdidas para unidifusión como se muestra en la imagen.

En la mayoría de los casos, las caídas de salida siempre se deben al tráfico unicast multicast/broadcast/Unknown.

¿Qué Causa Los Descartes De Entrada?

Un puerto de salida congestionado hace que las memorias intermedias de salida se llenen primero y luego provoca la contrapresión en el ingreso. Esto es sólo para el tráfico de unidifusión. Una vez que las memorias intermedias de ingreso estén llenas, podría potencialmente descartar el tráfico en el ingreso, lo que da lugar a descartes de entrada.

Esta explicación se encuentra en un nivel muy alto y es fácil de digerir, pero hay un poco más de ello, especialmente cuando se observa una clase diferente de tráfico, colas, etc. Existe un concepto de cola de salida virtual (VOQ) que se utiliza frecuentemente en la plataforma Nexus. VOQ es una asignación de búferes de ingreso para cada clase de servicio (CoS) IEEE 802.1p por puerto de salida. Por lo tanto, hay 8 VOQ por puerto de salida.

La congestión en un puerto de salida en un CoS finalmente se desangra en la congestión de su VOQ correspondiente en el puerto de ingreso. Una vez que se alcanza el límite, el tráfico se descarta. Sin embargo, no afecta el tráfico destinado a otras CoS u otras interfaces de salida, evitando así el HOLB, lo que de otra manera causaría la propagación de la congestión. El flujo de tráfico desde el puerto de entrada al puerto de salida y los diversos bloques en juego es como se muestra en la imagen.

Escenarios de resolución de problemas

Escenario 1. Descartes de entrada

Configuración de laboratorio:

Velocidad de línea de tráfico e1/3 y posible exceso de suscripción:

nexus6001# sh int e1/3

Ethernet1/3 is up

Dedicated Interface

Hardware: 1000/10000 Ethernet, address: 002a.6a56.7a8a (bia 002a.6a56.7a8a)

Description: spirent 4/11

MTU 1500 bytes, BW 1000000 Kbit,, BW 1000000 Kbit, DLY 10 usec

reliability 255/255, txload 251/255, rxload 25/255

Encapsulation ARPA, medium is broadcast

Port mode is trunk

full-duplex, 1000 Mb/s

Beacon is turned off

Input flow-control is off, output flow-control is off

Switchport monitor is off

EtherType is 0x8100

Last link flapped 11:39:20

Last clearing of "show interface" counters 00:00:15

0 interface resets

30 seconds input rate 98683696 bits/sec, 8223 packets/sec

30 seconds output rate 986853640 bits/sec, 82019 packets/sec

Load-Interval #2: 5 minute (300 seconds)

input rate 98.68 Mbps, 8.22 Kpps; output rate 986.85 Mbps, 82.01 Kpps

RX

124003 unicast packets  0 multicast packets  0 broadcast packets

124003 input packets  186004500 bytes

0 jumbo packets  0 storm suppression bytes

0 runts  0 giants  0 CRC  0 no buffer

0 input error  0 short frame  0 overrun   0 underrun  0 ignored

0 watchdog  0 bad etype drop  0 bad proto drop  0 if down drop

0 input with dribble  0 input discard

0 Rx pause

TX

1236745 unicast packets  9 multicast packets  0 broadcast packets

1236754 output packets  1860065401 bytes

0 jumbo packets

0 output error  0 collision  0 deferred  0 late collision

0 lost carrier  0 no carrier  0 babble 0 output discard

0 Tx pause

nexus6001# sh int e1/4

Ethernet1/4 is up

Dedicated Interface

Hardware: 1000/10000 Ethernet, address: 002a.6a56.7a8b (bia 002a.6a56.7a8b)

Description: spirent 4/12

MTU 1500 bytes, BW 1000000 Kbit,, BW 1000000 Kbit, DLY 10 usec

reliability 255/255, txload 25/255, rxload 251/255

Encapsulation ARPA, medium is broadcast

Port mode is access

full-duplex, 1000 Mb/s

Beacon is turned off

Input flow-control is off, output flow-control is off

Switchport monitor is off

EtherType is 0x8100

Last link flapped 10:53:31

Last clearing of "show interface" counters 00:00:04

0 interface resets

30 seconds input rate 986840376 bits/sec, 82236 packets/sec

30 seconds output rate 98421072 bits/sec, 8223 packets/sec

Load-Interval #2: 5 minute (300 seconds)

input rate 986.84 Mbps, 82.23 Kpps; output rate 98.42 Mbps, 8.22 Kpps

RX

326332 unicast packets  0 multicast packets  0 broadcast packets

326332 input packets  489496500 bytes

0 jumbo packets  0 storm suppression bytes

0 runts  0 giants  0 CRC  0 no buffer

0 input error  0 short frame  0 overrun   0 underrun  0 ignored

0 watchdog  0 bad etype drop  0 bad proto drop  0 if down drop

0 input with dribble  863 input discard >>>>>>

0 Rx pause

TX

32633 unicast packets  2 multicast packets  0 broadcast packets

32635 output packets  48819096 bytes

0 jumbo packets

0 output error  0 collision  0 deferred  0 late collision

0 lost carrier  0 no carrier  0 babble 0 output discard

0 Tx pause

En una configuración simulada como esta, usted conoce la causa de la sobresuscripción, pero en una configuración de producción donde el perfil de tráfico estalla y puede ser un desafío detectar los puertos de salida congestionados a través de estos comandos.

Los pasos que se muestran aquí le ayudan a identificar los puertos de salida congestionados.

Paso 1. Identificación de puertos con descartes de entrada

Descartes de entrada observados en el puerto e1/4:

nexus6001# sh int e1/4 | in i disc

0 input with dribble  3024 input discard

0 lost carrier  0 no carrier  0 babble 0 output discard

nexus6001# sh queuing int e1/4

Ethernet1/4 queuing information:

TX Queuing

qos-group  sched-type  oper-bandwidth

0       WRR            100

RX Queuing

qos-group 0 >>>> Drops in QOS 0

q-size: 100160, q-size-40g: 100160, HW MTU: 1500 (1500 configured)

drop-type: drop, xon: 0, xoff: 0

Statistics:

Pkts received over the port             : 9612480

Ucast pkts sent to the cross-bar        : 9587016

Mcast pkts sent to the cross-bar        : 0

Ucast pkts received from the cross-bar  : 961249

Pkts sent to the port                   : 961261

Pkts discarded on ingress               : 3024 >>>>>>

Per-priority-pause status               : Rx (Inactive), Tx (Inactive)

Paso 2. Identificación ASIC

- Asigne la interfaz al número ASIC interno (UPC) de este resultado.

- Averigüe el ID ASIC de ingreso del ID de puerto de ingreso en el que observó caídas.

nexus6001# sh hard internal bigsur all-ports

Bigsur Port Info:

Port     |asic|inst|inst|

name     |idx |slot|asic|eport|logi|flag|adm|opr|if_index|diag|ucVer

---------+----+----+----+-----+----+----+---+---+--------+----+-----

sup1     |0   |0   |0   | 0 - |48  |b3  |en |dn |15010000|pass| 0.00

sup0     |0   |0   |0   | 1 - |49  |b3  |en |dn |15020000|pass| 0.00

1gb1/1   |1   |0   |1   | 2 - |0   |b3  |en |up |1a000000|pass| 0.00

1gb1/2   |1   |0   |1   | 3 - |1   |b3  |en |up |1a001000|pass| 0.00

1gb1/3   |1   |0   |1   | 0 - |2   |b3  |en |up |1a002000|pass| 0.00

1gb1/4   |1** |0   |1   | 1 - |3   |b3  |en |up |1a003000|pass| 0.00 >>>>** is the asic number

1gb1/5   |1   |0   |1   | 6 - |4   |b3  |en |up |1a004000|pass| 0.00

1gb1/6   |1   |0   |1   | 7 - |5   |b3  |en |up |1a005000|pass| 0.00

1gb1/7   |1   |0   |1   | 4 - |6   |b3  |en |up |1a006000|pass| 0.00

1gb1/8   |1   |0   |1   | 5 - |7   |b3  |en |up |1a007000|pass| 0.00

1gb1/9   |1   |0   |1   |10 - |8   |b3  |en |up |1a008000|pass| 0.00

1gb1/10  |1   |0   |1   |11 - |9   |b3  |en |up |1a009000|pass| 0.00

1gb1/11  |1   |0   |1   | 8 - |10  |b3  |en |up |1a00a000|pass| 0.00

xgb1/12  |1   |0   |1   | 9 - |11  |b3  |en |dn |1a00b000|pass| 0.00

xgb1/13  |2   |0   |2   | 2 - |12  |b3  |en |dn |1a00c000|pass| 0.00

xgb1/14  |2   |0   |2   | 3 - |13  |b3  |en |dn |1a00d000|pass| 0.00

xgb1/15  |2   |0   |2   | 0 - |14  |b3  |en |dn |1a00e000|pass| 0.00

xgb1/16  |2   |0   |2   | 1 - |15  |b3  |en |dn |1a00f000|pass| 0.00

xgb1/17  |2   |0   |2   | 6 - |16  |b3  |en |dn |1a010000|pass| 0.00

xgb1/18  |2   |0   |2   | 7 - |17  |b3  |en |dn |1a011000|pass| 0.00

xgb1/19  |2   |0   |2   | 4 - |18  |b3  |en |dn |1a012000|pass| 0.00

xgb1/20  |2   |0   |2   | 5 - |19  |b3  |en |dn |1a013000|pass| 0.00

xgb1/21  |2   |0   |2   |10 - |20  |b3  |en |dn |1a014000|pass| 0.00

xgb1/22  |2   |0   |2   |11 - |21  |b3  |en |dn |1a015000|pass| 0.00

xgb1/23  |2   |0   |2   | 8 - |22  |b3  |en |dn |1a016000|pass| 0.00

xgb1/24  |2   |0   |2   | 9 - |23  |b3  |en |dn |1a017000|pass| 0.00

xgb1/25  |3   |0   |3   | 2 - |24  |b3  |en |dn |1a018000|pass| 0.00

xgb1/26  |3   |0   |3   | 3 - |25  |b3  |en |dn |1a019000|pass| 0.00

xgb1/27  |3   |0   |3   | 0 - |26  |b3  |en |dn |1a01a000|pass| 0.00

xgb1/28  |3   |0   |3   | 1 - |27  |b3  |en |dn |1a01b000|pass| 0.00

xgb1/29  |3   |0   |3   | 6 - |28  |b3  |en |dn |1a01c000|pass| 0.00

xgb1/30  |3   |0   |3   | 7 - |29  |b3  |en |dn |1a01d000|pass| 0.00

xgb1/31  |3   |0   |3   | 4 - |30  |b3  |en |dn |1a01e000|pass| 0.00

xgb1/32  |3   |0   |3   | 5 - |31  |b3  |en |dn |1a01f000|pass| 0.00

xgb1/33  |3   |0   |3   |10 - |32  |b3  |en |dn |1a020000|pass| 0.00

xgb1/34  |3   |0   |3   |11 - |33  |b3  |en |dn |1a021000|pass| 0.00

xgb1/35  |3   |0   |3   | 8 - |34  |b3  |en |dn |1a022000|pass| 0.00

xgb1/36  |3   |0   |3   | 9 - |35  |b3  |en |dn |1a023000|pass| 0.00

xgb1/37  |4   |0   |4   | 2 - |36  |b3  |en |dn |1a024000|pass| 0.00

xgb1/38  |4   |0   |4   | 3 - |37  |b3  |en |dn |1a025000|pass| 0.00

xgb1/39  |4   |0   |4   | 0 - |38  |b3  |en |dn |1a026000|pass| 0.00

xgb1/40  |4   |0   |4   | 1 - |39  |b3  |en |dn |1a027000|pass| 0.00

xgb1/41  |4   |0   |4   | 6 - |40  |b3  |en |dn |1a028000|pass| 0.00

xgb1/42  |4   |0   |4   | 7 - |41  |b3  |en |dn |1a029000|pass| 0.00

xgb1/43  |4   |0   |4   | 4 - |42  |b3  |en |dn |1a02a000|pass| 0.00

xgb1/44  |4   |0   |4   | 5 - |43  |b3  |en |dn |1a02b000|pass| 0.00

xgb1/45  |4   |0   |4   |10 - |44  |b3  |en |dn |1a02c000|pass| 0.00

xgb1/46  |4   |0   |4   |11 - |45  |b3  |en |dn |1a02d000|pass| 0.00

xgb1/47  |4   |0   |4   | 8 - |46  |b3  |en |dn |1a02e000|pass| 0.00

xgb1/48  |4   |0   |4   | 9 - |47  |b3  |en |dn |1a02f000|pass| 0.00

40gb2/1  |5   |1   |0   | 2 - |0   |b3  |dis|dn |1a0f0000|pass| 0.00

40gb2/2  |5   |1   |0   | 1 - |1   |b3  |dis|dn |1a0f1000|pass| 0.00

40gb2/3  |6   |1   |1   | 2 - |2   |b3  |dis|dn |1a0f2000|pass| 0.00

40gb2/4  |6   |1   |1   | 1 - |3   |b3  |dis|dn |1a0f3000|pass| 0.00

Done.

Paso 3. Identificación del puerto congestionado de salida

- Identifique el puerto de salida congestionado con los contadores VOQ.

- Utilice el número ASIC en contadores voq asic-num para averiguar qué puerto de salida contribuye a las caídas.

nexus6001# sh plat soft qd info counters voq asic-num 1

+----------+------------------------------+------------------------+-----------+

|      port|                      TRANSMIT|               TAIL DROP|  HEAD DROP|

+----------+------------------------------+------------------------+-----------+

Eth1/3

QUEUE-3                       3222876464                  8545008           0

Eth1/4

QUEUE-3                        323451170                        0           0

Eth1/6

QUEUE-3                           871362                        0           0

SUP_HI

QUEUE-0                             2041                        0           0

+----------+------------------------------+------------------------+-----------+

Escenario 2. Descartes de entrada con HOLB

Configuración de laboratorio:

Todos los puertos están en vlan 100.

Puede ver descartes de entrada en e1/4 y e1/1 que dependen de la velocidad de tráfico en las interfaces de ingreso hacia 1/3.

nexus6001# sh int e1/4 | in discard|rate

30 seconds input rate 592103840 bits/sec, 49341 packets/sec

30 seconds output rate 166412120 bits/sec, 13863 packets/sec

input rate 592.10 Mbps, 49.34 Kpps; output rate 834.82 Mbps, 69.55 Kpps

0 input with dribble  15245 input discard

0 lost carrier  0 no carrier  0 babble 0 output discard

nexus6001# sh int e1/1 | in discard|rate

30 seconds input rate 986839872 bits/sec, 82236 packets/sec

30 seconds output rate 99790992 bits/sec, 8310 packets/sec

input rate 986.84 Mbps, 82.23 Kpps; output rate 500.88 Mbps, 41.73 Kpps

0 input with dribble  110632 input discard

0 lost carrier  0 no carrier  0 babble 0 output discard

Con el uso del mismo proceso documentado para el Scenerio 1. Puede encontrar el puerto congestionado de salida.

nexus6001# sh plat so qd info counters voq asic-num 1 <snip>

+----------+------------------------------+------------------------+-----------+

|      port|                      TRANSMIT|               TAIL DROP|  HEAD DROP|

+----------+------------------------------+------------------------+-----------+

Eth1/3

QUEUE-3                       3893719464                164782171           0

El flujo que debe verse afectado es hacia 10.10.10.50. El flujo entre 10.10.10.101 y 10.10.10.102 debe estar limpio.

Sin embargo, este no es el caso. Un puerto de salida atascado o de drenaje lento puede hacer que se agoten todos los búfers en uno o más puertos de ingreso que envían tráfico al puerto de egreso, lo que afecta a todo el tráfico en estos puertos de ingreso. Este es el clásico problema de HOLB.

Los generadores de tráfico espirales muestran que los flujos se descartan. Los números de puerto son números de puerto Spirent como se muestra en la imagen.

Mitigación de HOLB: Activar límite de VOQ

Para evitar este escenario, los VOQ (sólo para el tráfico de unidifusión) se pueden configurar con un umbral establecido.

nexus6001(config)# hard unicast voq-limit

Después de la configuración, los flujos hacia los puertos no congestionados no se ven afectados.

La vista Spirent Traffic generator después de la configuración del límite de VOQ es como se muestra en la imagen.

Aunque esta configuración muestra una clara ventaja para evitar caídas debido a HOLB. ¿Por qué no es ésta la configuración predeterminada?

Normalmente, el tráfico en un entorno de producción podría estallar en naturaleza. Con la inhabilitación del umbral VOQ, usted permite que los búfers de ingreso absorban una microrráfaga de tráfico sin la necesidad de ser descartados.

A menos que la situación justifique la necesidad de habilitar el límite de VOQ, se recomienda utilizar el valor predeterminado que es dejarlo inhabilitado.

Mitigación de HOLB: Clasificación del tráfico

Hay otro método para mitigar el HOLB con el uso de la configuración de QoS. Dado que los descartes de ingreso afectan solamente a un VOQ específico que a su vez es una clase QOS específica, puede asignar el tráfico afectado a un puerto no congestionado a un grupo QOS diferente. A partir de esta salida, los descartes de ingreso afectan a la clase QOS Group 0.

nexus6001# sh queuing int e1/4

Ethernet1/4 queuing information:

TX Queuing

qos-group  sched-type  oper-bandwidth

0       WRR            100

RX Queuing

qos-group 0 >>>> Drops in QOS 0

q-size: 100160, q-size-40g: 100160, HW MTU: 1500 (1500 configured)

drop-type: drop, xon: 0, xoff: 0

Statistics:

Pkts received over the port             : 9612480

Ucast pkts sent to the cross-bar        : 9587016

Mcast pkts sent to the cross-bar        : 0

Ucast pkts received from the cross-bar  : 961249

Pkts sent to the port                   : 961261

Pkts discarded on ingress               : 3024 >>>>>>

Per-priority-pause status               : Rx (Inactive), Tx (Inactive)

La configuración aquí asigna el tráfico importante a QoS-Group 2.

1. Defina ACL para el tráfico que no se debe descartar. El objetivo es clasificar este tráfico en un grupo QOS diferente para que no se vea afectado.

ip access-list SINGLEFLOW

statistics per-entry

10 permit ip 10.10.10.101/32 10.10.10.102/32

2. Clasificación de QoS:

class-map type qos match-all FIX_AFFECTED_FLOW

match access-group name SINGLEFLOW

policy-map type qos QOS_POLICY_FIX_AFFECTED_FLOW

class FIX_AFFECTED_FLOW

set qos-group 2

3. Configuración de QoS de red:

class-map type network-qos QOSGRP2

match qos-group 2

policy-map type network-qos NQOS-GRP2

class type network-qos QOSGRP2

class type network-qos class-default

4. Aplique las diversas políticas. La QoS de red se extiende a todo el sistema mientras que la política de clasificación se puede aplicar a una única interfaz.

system qos

service-policy type network-qos NQOS-GRP2

interface Ethernet1/1

service-policy type qos input QOS_POLICY_FIX_AFFECTED_FLOW

5. Las caídas no se ven para la clase de grupo 2 de QoS:

nexus6001(config-if)# sh queuing int e1/1

Ethernet1/1 queuing information:

TX Queuing

qos-group  sched-type  oper-bandwidth

0       WRR            100

2       WRR              0

RX Queuing

qos-group 0

q-size: 100160, q-size-40g: 100160, HW MTU: 1500 (1500 configured)

drop-type: drop, xon: 0, xoff: 0

Statistics:

Pkts received over the port             : 525111

Ucast pkts sent to the cross-bar        : 327510

Mcast pkts sent to the cross-bar        : 0

Ucast pkts received from the cross-bar  : 0

Pkts sent to the port                   : 0

Pkts discarded on ingress               : 197868 >>>>

Per-priority-pause status               : Rx (Inactive), Tx (Inactive)

qos-group 2

q-size: 100160, q-size-40g: 100160, HW MTU: 1500 (1500 configured)

drop-type: drop, xon: 0, xoff: 0

Statistics:

Pkts received over the port             : 131413

Ucast pkts sent to the cross-bar        : 132096

Mcast pkts sent to the cross-bar        : 0

Ucast pkts received from the cross-bar  : 0

Pkts sent to the port                   : 0

Pkts discarded on ingress               : 0 >>> No Drops

Per-priority-pause status               : Rx (Inactive), Tx (Inactive)

Información Relacionada

- Ejemplo de Configuración de QoS de Switches Nexus serie 6000

- Soporte Técnico y Documentación - Cisco Systems