Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Convenciones

Uso elevado de la CPU causado por el proceso SNMP ENGINE

La ruta extensa y/o las tablas ARP sondeadas por la estación NMS

Sondeo de ciertas MIB

Información Relacionada

Conversaciones relacionadas de la comunidad de soporte de Cisco

Introducción

Este documento explica cómo resolver problemas de uso excesivo de la CPU en un router debido al proceso del MOTOR SNMP que se ejecuta en el router, especialmente en los routers de menor capacidad.

Prerequisites

Requirements

Quienes lean este documento deben tener conocimiento de los siguientes temas:

- SNMP (Protocolo de administración de red simple)

- IOS de Cisco

Componentes Utilizados

La información en este documento se basa en los routers que ejecutan Cisco IOS® Software.

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. If your network is live, make sure that you understand the potential impact of any command.

Convenciones

For more information on document conventions, refer to the Cisco Technical Tips Conventions.

Uso elevado de la CPU causado por el proceso SNMP ENGINE

A veces, mensajes como este pueden aparecer en la consola del router:

%SNMP-3-CPUHOG: Processing [chars] of [chars]

Significan que el agente SNMP en el dispositivo ha tardado demasiado en procesar una solicitud.

Puede determinar la causa de una alta utilización de la CPU en un router mediante el resultado del comando show process cpu.

El siguiente ejemplo muestra el resultado del comando show process cpu.

cacuk#show process cpu

CPU utilization for five seconds: 0%/0%;

one minute: 0%;

five minutes: 0%

PID

Tiempo de ejecución (ms)

Llamado

uSecs

5Seg

1Min

5 min

TTY

Proceso

1

68

258816

0

0.00%

0.00%

0.00%

0

Medidor de carga

2

0

1

0

0.00%

0.00%

0.00%

0

OSPF Hello

3

788132

131480

5994

0.00%

0.00%

0.00%

0

Check heaps

4

0

1

0

0.00%

0.00%

0.00%

0

Administrador de fragmentos

5

56

131

427

0.00%

0.00%

0.00%

0

Administrador de agrupamientos

69

202700

421730

480

0.00%

0.01%

0.00%

0

IP SNMP

71

1193648

211250

5650

0.00%

0.19%

0.15%

0

MOTOR SNMP

El comando debug snmp verifica qué ID de objeto (OID) o base de información de administración (MIB) se consultan en ese momento.

Nota: La ejecución de un debug en una red de producción puede saturar al router.

Existen dos causas probables para que se produzca la alta utilización de CPU con relación a un protocolo de administración de red simple (SNMP):

1. Tablas ARP y/o de ruta grandes sondeadas por la estación NMS

2. Sondeo de ciertas MIB

La ruta extensa y/o las tablas ARP sondeadas por la estación NMS

La estación de administración de red consulta a los routers de toda su tabla de rutas para obtener información sobre otras redes. Utiliza esta información para encontrar otros routers y consultarlos acerca de su conocimiento de las redes a su alrededor. De esta manera, la estación de administración puede aprender la topología de toda la red.

El router almacena la tabla de rutas en un formato hash, más propicio para búsquedas de rutas rápidas. Sin embargo, las respuestas SNMP para la ruta deben devolverse en orden lexicográfico según RFC1213. Por eso, para cada solicitud SNMP recibida por el router, la tabla hash debe ser ordenada en forma lexicográfica antes de poder construir una PDU en respuesta a SNMP. Cuanto más grande la tabla del router, cuanto más intensa es la CPU.

SNMP es un proceso de baja prioridad en lo que respecta al planificador de CPU, por lo que otro proceso que requiere recursos de CPU tiene prioridad. Por lo tanto, mientras los picos de la CPU ocurren en este escenario, no deben afectar el desempeño.

Recomendación 1: Use snmp-server view Commands

Para evitar problemas de rendimiento, fuerce al router a finalizar de manera prematura las consultas de la tabla de rutas del servidor de sistema de administración de la red. Configure el router para que responda con un mensaje completo tan pronto como reciba el inicio de una solicitud para la tabla de ruta, de la siguiente manera:

snmp-server view cutdown iso included

!--- ISO is used as a starting point as it is the snmp 'root'.

snmp-server view cutdown 1.3.6.1.2.1.4.21 excluded

snmp-server view cutdown 1.3.6.1.2.1.4.22 excluded

snmp-server view cutdown 1.3.6.1.2.1.3 excluded

snmp-server view cutdown 1.3.6.1.6.3.15 excluded

!--- The additional object snmpUsmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.16 excluded

!--- The additional object snmpVacmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.18 excluded

!--- The additional object snmpCommunityMIB is excluded.

snmp-server community public view cutdown RO

snmp-server community private view cutdown RW

Precaución: En el ejemplo anterior, se excluye snmpUsmMIB, se excluye snmpVacmMIB y se excluye snmpCommunityMIB. Se pueden usar estos objetos juntos, para obtener información sobre usuarios configurados y cadenas de comunidad y ganar acceso administrativo al dispositivo. Se recomienda excluir estos objetos de la vista en cualquier dispositivo al que puedan acceder los usuarios públicos.

Esta configuración bloquea las solicitudes para recuperar la tabla de rutas (Tabla de Ruta-ip) y la tabla del protocolo de resolución de direcciones (ARP) (Red-ip en tabla de medios) pero permiten que pasen todas las demás solicitudes. Si tiene versiones anteriores del software Cisco IOS®, no reconocerá el objeto MIB ipRouteTable, así que utilice la siguiente configuración en su lugar:

snmp-server view cutdown iso included

!--- ISO is used as a starting point as it is the snmp 'root'.

snmp-server view cutdown 1.3.6.1.2.1.4.21 excluded

snmp-server view cutdown 1.3.6.1.2.1.4.22 excluded

snmp-server view cutdown at excluded

snmp-server view cutdown 1.3.6.1.6.3.15 excluded

!--- The additional object snmpUsmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.16 excluded

!--- The additional object snmpVacmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.18 excluded

!--- The additional object snmpCommunityMIB is excluded.

snmp-server community public view cutdown RO

snmp-server community private view cutdown RW

Precaución: En el ejemplo anterior, se excluye snmpUsmMIB, se excluye snmpVacmMIB y se excluye snmpCommunityMIB. Se pueden usar estos objetos juntos, para obtener información sobre usuarios configurados y cadenas de comunidad y ganar acceso administrativo al dispositivo. Se recomienda excluir estos objetos de la vista en cualquier dispositivo al que puedan acceder los usuarios públicos.

En ambos ejemplos, puede sustituir sus propias cadenas de comunidad.

El resultado de estas configuraciones es que el router ya no devuelve la tabla ARP ni la tabla de ruta del IP cuando se lo solicita. Esto evita las detecciones de la red SNMP relacionadas con la generación de los picos de CPU en el router en cuestión, pero además elimina el grado de posibilidad de administración del router.

Los routers que antes no presentaban picos de CPU podrían comenzar a hacerlo si se produce un cambio en la tabla de ruteo. La cantidad de ciclos necesarios para responder a las solicitudes de la tabla de ruteo del IP es una función del número de routers en la tabla de ruteo. Si el número de rutas aumenta, el uso de la CPU también aumenta.

Recomendación 2: Active CEF

Se realizó un cambio en el código de Cisco IOS para permitir que SNMP consulte la tabla Cisco Express Forwarding (CEF) para las entradas de ruteo si se utiliza la conmutación CEF. Esto mejora la situación de manera significativa. Con CEF habilitado, el agente SNMP responde a una operación get-next/get-bulk para las tablas de ruteo o ARP con información de la Base de información de reenvío (FIB). El FIB se almacena en orden lexicográfico y no se necesita clasificación. Sin CEF activado, el agente SNMP responde con información de la base de información de routing (RIB), que se debe ordenar en orden lexicográfico que provoca un uso elevado de la CPU.

Siga el link bug ID a continuación y verá información detallada sobre depuración.

CSCdk54265 (sólo clientes registrados) - El CPU HOG se genera al sondear la tabla de ruteo a través de SNMP desde la Estación de administración de red.

Sondeo de ciertas MIB

Las aplicaciones de administración de red suelen recuperar información de los dispositivos mediante SNMP. Un ejemplo sería Resource Manager Essentials (RME), una aplicación del conjunto de productos CiscoWorks 2000. RME puede recuperar la información de flash definida en CISCO-FLASH-MIB. Si el dispositivo tiene un disco flash ATA, puede hacer que la utilización de la CPU salte.

Siga el link bug ID a continuación y verá información detallada sobre depuración.

CSCdt97325 (sólo clientes registrados)

Para verificar y aplicar la solución alternativa, siga estos pasos:

1. Verifique si el dispositivo tiene una tarjeta Flash ATA en una de sus ranuras:

Router#show disk1:

******** ATA Flash Card Geometry/Format Info ********

ATA CARD GEOMETRY

Number of Heads:        12

Number of Cylinders     906

Sectors per Cylinder    63

Sector Size             512

Total Sectors           684936

ATA CARD FORMAT

Number of FAT Sectors  84

Sectors Per Cluster    32

Number of Clusters     21372

Number of Data Sectors 684117

Base Root Sector       169

Base FAT Sector        1

Base Data Sector       201

Router#

Si no está seguro o si no obtiene resultados para el comando show diskX, ejecute el comando show tech y realice una búsqueda de disco.

2. Una vez que sabe que tiene un disco Flash ATA, puede aplicar la siguiente solución para evitar las consultas SNMP en FLASH-MIB:

Router(config)#snmp-server view

iso included

!--- ISO is used as a starting point as it is the snmp 'root'.

Router(config)#snmp-server view

ciscoFlashMIB excluded

!--- The additional object snmpUsmMIB is excluded.

Router(config)#snmp-server view

1.3.6.1.6.3.15 excluded

!--- The additional object snmpVacmMIB is excluded.

Router(config)#snmp-server view

1.3.6.1.6.3.16 excluded

!--- The additional object snmpCommunityMIB is excluded.

Router(config)#snmp-server view

1.3.6.1.6.3.18 excluded

Router(config)#snmp-server community

view

ro

Router(config)#snmp-server community

view

rw

Router(config)#exit

Router#

Nota: Elija la misma palabra en cada línea para <any_word> en la configuración anterior.

Precaución: En el ejemplo anterior, se excluye snmpUsmMIB, se excluye snmpVacmMIB y se excluye snmpCommunityMIB. Se pueden usar estos objetos juntos, para obtener información sobre usuarios configurados y cadenas de comunidad y ganar acceso administrativo al dispositivo. Se recomienda excluir estos objetos de la vista en cualquier dispositivo al que puedan acceder los usuarios públicos.

3. Verifique que esté correctamente implementado:

Router#show run

...

snmp-server view

iso included

!--- ISO is used as a starting point as it is the snmp 'root'.

snmp-server view

ciscoFlashMIB excluded snmp-server view

internet.6.3.15 excluded

!--- The additional object snmpUsmMIB is excluded.

snmp-server view

internet.6.3.16 excluded

!--- The additional object snmpVacmMIB is excluded.

snmp-server view

internet.6.3.18 excluded

!--- The additional object snmpCommunityMIB is excluded.

snmp-server community

view

RW snmp-server community

view

RO

Nota: <any_word>, <write_community_string> y <read_community_string> son las que están en la configuración.

Precaución: En el ejemplo anterior, se excluye snmpUsmMIB, se excluye snmpVacmMIB y se excluye snmpCommunityMIB. Se pueden usar estos objetos juntos, para obtener información sobre usuarios configurados y cadenas de comunidad y ganar acceso administrativo al dispositivo. Se recomienda excluir estos objetos de la vista en cualquier dispositivo al que puedan acceder los usuarios públicos.

4. Ejecute el comando show proc cpu para verificar si la CPU-Util para SNMP deja de funcionar y busque el proceso IP_SNMP.

Nota: El bug CSCdt97325 también se ha corregido en algunas versiones posteriores de Cisco IOS, así que verifique el bug para ver cualquier detalle.

Otros desperfectos relacionados con las MIB de sondeo.

Siga los enlaces de ID de bug de Cisco a continuación y vea información detallada de bug.

- CSCdm67427 (sólo clientes registrados) - Si se sondea la subinterfaz ATM, se devuelve el mensaje de CPU HOG del dispositivo.

- CSCdu63734 (sólo clientes registrados) - Flash MIB realiza demasiadas llamadas a ifs.

- CSCdu48652 (sólo clientes registrados) - La consulta de Flash MIB cuelga las llamadas de voz en 7200.

- CSCds53368 (sólo clientes registrados) - Problemas con el objeto ciscoFlashPartitionEntry en CISCO-FLASH-MIB.

- CSCdu55091 (sólo clientes registrados) - 2500 snmpgetnext para ciertos objetos SNMP causa seguimiento.

- CSCdx54836 (sólo clientes registrados) - El sondeo SNMP en Flash MIB causa una alta utilización de la CPU en el switch.

Información Relacionada

- Resolución de problemas por uso excesivo de las CPU de los routers de Cisco

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