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 describe el uso elevado de la CPU en varias plataformas Catalyst debido a la inundación de paquetes IPV6 Multicast Listener Discovery y maneras de mitigar este problema.
No hay requisitos previos.
No hay requisitos específicos para este documento.
La información de este documento se basa en los switches Catalyst de Cisco serie 6500, los switches Catalyst serie 4500 y los switches Catalyst serie 3850.
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.
Se puede ver una alta utilización de la CPU en algunas plataformas Cisco Catalyst debido a que el tráfico de multidifusión IPv6 con dirección MAC en el rango 333.xxxx.xxxx se impulsa a la CPU.
Según RFC7042, todos los identificadores de multidifusión MAC-48 tienen como prefijo "33-33" (es decir, los 2**32 identificadores de MAC de multidifusión en el rango de 33-33-00-00-00-00 a 33-33-FF-FF-FF-FF) se utilizan como se especifica en [2. 464] para multidifusión IPv6. Un paquete IPv6 con una dirección de destino de multidifusión DST, que consta de los dieciséis octetos DST[1] a DST[16], se transmite a la dirección de multidifusión Ethernet cuyos dos primeros octetos son el valor hexadecimal 333 y cuyos cuatro últimos octetos son los cuatro últimos octetos de DST, como se muestra en la figura 1.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 1 1 0 0 1 1|0 0 1 1 0 0 1 1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DST[13] | DST[14] |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DST[15] | DST[16] |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
(Figure 1: Address Mapping - Multicast)
En algunas ocasiones se ha observado que cuando los dispositivos host que utilizan una tarjeta NIC determinada pasan al modo inactivo, inundan el tráfico de multidifusión IPv6. Este problema no se limita a un proveedor de host concreto, aunque se ha visto que algunos chipsets muestran este comportamiento más a menudo que otros.
Puede utilizar los siguientes procedimientos para averiguar si el switch Catalyst que observa un uso elevado de la CPU se ve afectado por este problema e implementar las soluciones correspondientes.
En los switches Catalyst 3850, el proceso NGWC L2M utiliza la CPU para procesar los paquetes IPv6. Cuando se inhabilita el snooping de descubrimiento de receptor multidifusión (MLD) en el switch, el paquete de unión/abandono MLD se inunda en todos los puertos miembro. Y, si hay muchos paquetes entrantes MLD de unión/abandono, este proceso consumirá más ciclos de CPU para enviar los paquetes en todos los puertos miembro. Se ha visto que cuando ciertas máquinas host pasan al modo suspendido, pueden enviar varios miles de paquetes/seg de tráfico de IGMPv6 MLD.
3850#show processes cpu detailed process iosd sorted | exc 0.0
Core 0: CPU utilization for five seconds: 43%; one minute: 35%; five minutes: 33%
Core 1: CPU utilization for five seconds: 54%; one minute: 46%; five minutes: 46%
Core 2: CPU utilization for five seconds: 75%; one minute: 63%; five minutes: 58%
Core 3: CPU utilization for five seconds: 48%; one minute: 49%; five minutes: 57%
PID T C TID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
12577 L 2766882 2422952 291 23.52 23.67 23.69 34816 iosd
12577 L 3 12577 1911782 1970561 0 23.34 23.29 23.29 34818 iosd
12577 L 0 14135 694490 3264088 0 0.28 0.34 0.36 0 iosd.fastpath
162 I 2832830 6643 0 93.11 92.55 92.33 0 NGWC L2M
Configure la indagación de mld ipv6 en los switches afectados para habilitar globalmente la indagación de mld ipv6. Esto debería reducir el uso de la CPU.
3850#conf t
Enter configuration commands, one per line. End with CNTL/Z.
3850(config)#ipv6 mld snooping
3850(config)#end
Cuando se habilita la indagación MLD, se construye una tabla de direcciones multidifusión IPv6 por VLAN en software y hardware. A continuación, el switch realiza el bridging basado en dirección multicast IPv6 en el hardware, lo que evita que estos paquetes sean procesados por el software.
Haga clic en el enlace para obtener más información sobre la configuración de MLD Snooping
En las versiones anteriores de IOS XE, se encontró que la cola de la CPU podía atascarse debido a este problema que evitaría que todos los paquetes de control en esa cola fueran a la CPU. Esto se corrigió a través de CSCuo14829 en las versiones 3.3.3 y 3.6.0 y posteriores del IOS. Consulte este error para obtener más información.
Los switches Catalyst de la serie 4500 admiten el reenvío de hardware del tráfico de multidifusión IPv6 utilizando la memoria direccionable de contenido ternario (TCAM). Esto se explica en Multicast en Cisco Catalyst 4500E y 4500X Series Switches
Cuando se trata del tráfico de detección de receptor multidifusión IPv6, el switch debe realizar el reenvío de software (mediante recursos de CPU). Como se explica en Configuración de la Indagación MLD de IPv6 en los switches Catalyst 4500, la indagación MLD se puede habilitar o inhabilitar globalmente o por VLAN. Cuando se habilita la indagación MLD, se construye una tabla de direcciones MAC multicast por VLAN IPv6 en software y una tabla de direcciones multicast por VLAN IPv6 se construye en software y hardware. A continuación, el switch realiza el bridging basado en dirección multicast IPv6 en el hardware. Este es el comportamiento esperado en los switches Catalyst de la serie 4500.
Para verificar el tipo de paquete que se impulsa a la CPU, podemos ejecutar "debug platform packet all buffer" seguido del comando "show platform cpu packet buffered".
4500#debug platform packet all buffer
platform packet debugging is on
Cat4500#sh platform cpu packet buffered
Total Received Packets Buffered: 1024
-------------------------------------
Index 0:
33 days 11:42:21:833532 - RxVlan: 214, RxPort: Te1/15
Priority: Normal, Tag: Dot1Q Tag, Event: L2 Router, Flags: 0x40, Size: 90
Eth: Src 44:39:C4:39:5A:4A Dst 33:33:FF:7F:EB:DB Type/Len 0x86DD
Remaining data:
0: 0x60 0x0 0x0 0x0 0x0 0x20 0x0 0x1 0xFE 0x80
10: 0x0 0x0 0x0 0x0 0x0 0x0 0x46 0x39 0xC4 0xFF
20: 0xFE 0x39 0x5A 0x4A 0xFF 0x2 0x0 0x0 0x0 0x0
30: 0x0 0x0 0x0 0x0 0x0 0x1 0xFF 0x7F 0xEB 0xDB
40: 0x3A 0x0 0x5 0x2 0x0 0x0 0x1 0x0 0x83 0x0
Este paquete llegó a la interfaz Tengigabitethernet1/15 en vlan 214 desde la dirección mac de origen 44:39:C4:39:5A:4A. El protocolo 0x86DD es IPv6 y Dst MAC 33:33:FF:7F:EB:DB se está utilizando para los nodos MLD IPv6 de multidifusión en este caso.
Tenemos dos opciones para solucionar el uso elevado de la CPU debido a este tráfico.
ipv6 access-list IPv6-Block
permit ipv6 any any
!
class-map TEST
match access-group name IPv6-Block
!
policy-map ipv6
class TEST
police 32000 conform-action drop exceed-action drop
!
control-plane
service-policy input ipv6
En el ejemplo anterior, estamos limitando la cantidad de tráfico IPv6 que maneja la CPU a 32000 paquetes por segundo.
Los switches Catalyst 6500 toman decisiones de reenvío en hardware usando TCAM que normalmente no necesita asistencia de la CPU mientras TCAM tenga la entrada de reenvío.
Supervisor Enginet 720 en los switches Catalyst 6500 tiene dos CPU. Una CPU es el Procesador de administración de red (NMP) o el Procesador de switch (SP). La otra CPU es la CPU de Capa 3, que se denomina Procesador de ruta (RP).
El proceso y la utilización de la CPU de interrupción se enumeran en el comando show process cpu. Como se muestra a continuación, High La CPU causada por interrupciones se basa principalmente en el tráfico. El tráfico conmutado de interrupción, es el tráfico que no coincide con un proceso específico, pero que aún debe reenviarse. El siguiente ejemplo muestra un switch Catalyst 6500 con uso elevado de CPU en RP debido a interrupciones.
6500#show process cpu
CPU utilization for five seconds: 98%/92%;
one minute: 99%; five minutes: 99% PID Runtime(ms) Invoked
Verifique si alguna interfaz o VLAN de Capa 3 está descartando una gran cantidad de tráfico. (Cola de entrada descartada). Si es así, el tráfico puede estar siendo impulsado al RP desde esa vlan.
Vlan19 is up, line protocol is up
Input queue: 0/75/6303532/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
5 minute input rate 19932000 bits/sec, 26424 packets/sec
5 minute output rate 2662000 bits/sec, 1168 packets/sec
El siguiente comando se puede utilizar para encontrar todos los paquetes en el búfer de cola de entrada para la interfaz vlan 19.
6500#show buffer input-interface vlan 19 packet
Alternativamente, puede utilizar la captura de NetDR para capturar el tráfico que va a la CPU en un switch Catalyst 6500. Este documento explica cómo interpretar los paquetes capturados mediante la captura de NetDR.
------- dump of incoming inband packet ------- interface Vl16, routine mistral_process_rx_packet_inlin, timestamp 03:17:56.380 dbus info: src_vlan 0x10(16), src_indx 0x1001(4097), len 0x5A(90) bpdu 0, index_dir 0, flood 1, dont_lrn 0, dest_indx 0x4010(16400) E8820000 00100000 10010000 5A080000 0C000418 01000008 00000008 4010417E mistral hdr: req_token 0x0(0), src_index 0x1001(4097), rx_offset 0x76(118) requeue 0, obl_pkt 0, vlan 0x10(16) destmac 33.33.FF.4A.C3.FD, srcmac C8.CB.B8.29.33.62, protocol 86DD protocol ipv6: version 6, flow 1610612736, payload 32, nexthdr 0, hoplt 1 class 0, src FE80::CACB:B8FF:FE29:3362, dst FF02::1:FF4A:C3FD
Utilice una o varias de las siguientes soluciones.
6500(config)#mac-address-table static 3333.FF4A.C3FD vlan <vlan #> drop
6500(config)#mac-address-table 3333.FF4A.C3FD vlan 19 interface Gi1/22
6500(config)#mac access-li extended Multicast_MAC
6500(config-ext-macl)#permit any host 3333.FF4A.C3FD
6500(config-ext-macl)#exit
6500(config)#vlan access-map block-ipv6 10
6500(config-access-map)#action drop
6500(config-access-map)#match mac address Multicast_MAC
6500(config-access-map)#exit
6500(config-access-map)#vlan access-map block-ipv6 20
6500(config-access-map)#action forward
6500(config-access-map)#exit
6500(config)#vlan filter block-ipv6 vlan-list <vlan #>
6500(config)#no ipv6 mld snoopin
6500(config)#ipv6 access-list test
6500(config-ipv6-acl)#permit ipv6 any any
6500(config-ipv6-acl)#exit
6500(config)#class-map TEST
6500(config-cmap)#match access-group name test
6500(config-cmap)#exit
6500(config)#policy-map ipv6
6500(config-pmap)#class TEST
6500(config-pmap-c)#police 320000 conform-action drop exceed-action drop
6500(config-pmap-c)#exit
6500(config)#control-plane
6500(config-cp)#service-policy in ipv6
6500(config-cp)#exit
6500(config)#interface Gi2/22
6500(config-if)#storm-control multicast level 10
7. En caso de que la CPU sea Alta en SP (Procesador del switch), aplique la siguiente solución alternativa.
6500(config)#mls rate-limit ipv6 mld 10 1
Si no puede determinar el motivo basándose en la información proporcionada en este documento, abra una solicitud de servicio del TAC para investigar más a fondo.