IP : Simple Network Management Protocol (SNMP)

O protocolo simples de gestão de rede (SNMP) de IP provoca alta utilização da CPU

18 Junho 2016 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Inglês (16 Maio 2016) | Feedback


Índice

Introdução
Pré-requisitos
      Requisitos
      Componentes Utilizados
      Convenções
Utilização elevada da CPU causada pelo processo do ENGINE DE SNMP
      Rotas grandes e/ou tabelas ARP eleitas pela estação do NMS
      Eleição de determinados MIBs
Fóruns de Discussão NetPro – Conversações em Destaque
Discussões relacionadas da comunidade de suporte da Cisco
Informações Relacionadas

Introdução

Este documento explica como resolver problemas de utilização elevada da CPU em um roteador devido ao processo do ENGINE de SNMP que é executado no roteador, especialmente em roteadores de baixa qualidade.

Pré-requisitos

Requisitos

Os leitores deste documento devem estar cientes destes tópicos:

  • SNMP:

  • Cisco IOS

Componentes Utilizados

As informações contidas neste documento são baseadas em roteadores que executam o software Cisco IOS.

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.

Convenções

Para obter mais informações sobre convenções de documento, consulte as Convenções de dicas técnicas Cisco.

Utilização elevada da CPU causada pelo processo do ENGINE DE SNMP

Às vezes, as mensagens como esta puderam aparecer no console de roteador:

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

Significam que o agente SNMP no dispositivo tomou demasiado tempo para processar um pedido.

Você pode determinar a causa do alto uso da CPU em um roteador pelo resultado do comando exibir cpu do processo.

O exemplo a seguir mostra a saída do comando show process cpu.

cacuk#show process cpu 
CPU utilization for five seconds: 0%/0%; 
one minute: 0%;
five minutes: 0% 

PID

Runtime(ms)

Chamado

uSecs

5Sec

1min

5Min

TTY

Processo

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

Hellos de OSPF

3

788132

131480

5994

0.00%

0.00%

0.00%

0

Verificar preenchimentos

4

0

1

0

0.00%

0.00%

0.00%

0

Gerenciador de bloco

5

56

131

427

0.00%

0.00%

0.00%

0

Gerenciador do conjunto

69

202700

421730

480

0.00%

0.01%

0.00%

0

IP SNMP

71

1193648

211250

5650

0.00%

0.19%

0.15%

0

SNMP ENGINE

As verificações do comando snmp debugar que as identificações de objeto (OID) ou o Management Information Base (MIBs) estão sendo perguntados naquele tempo.

Nota: A execução de uma depuração sobre uma rede de produção pode sobrecarregar o roteador.

Existem duas causas prováveis para a utilização elevada de CPU em relação ao protocolo SNMP:

  1. Grandes rota e/ou tabelas ARP que estão sendo votadas pela estação NMS

  2. Determinado MIBs de vatação

Rotas grandes e/ou tabelas ARP eleitas pela estação do NMS

A estação de gerenciamento de rede pergunta o Roteadores para que sua tabela de rota inteira aprenda sobre outras redes. Usa esta informação para encontrar o outro Roteadores e para perguntá-lo sobre seu conhecimento de redes em torno dele. Deste modo, a estação de gerenciamento pode aprender a topologia da toda a rede.

O roteador armazena a tabela de rota em um formato picado, mais conducente às buscas rápidas da rota. Contudo, as respostas de SNMP para a rota são exigidas para ser retornadas na ordem lexicographical pelo RFC1213. Portanto, para cada solicitação de SNMP que o roteador receber, a tabela de hash deve ser organizada lexicograficamente para poder criar um PDU de resposta de SNMP. Quanto maior a tabela de rotas, mais intensa é a CPU.

O SNMP é um processo de prioridade baixa tanto quanto o agendador de CPU, assim que um outro processo que exige recursos do CPU toma a prioridade. Portanto, embora os picos de CPU ocorram nesse cenário, eles não devem afetar o desempenho.

Recomendação 1: Use comandos snmp-server view

Para evitar problemas de desempenho, force o roteador a encerrar prematuramente consultas para a tabela de rotas a partir do servidor do sistema de gerenciamento de redes. Configurar o roteador para responder como segue com um mensagem completa assim que receber o começo de um pedido para a tabela de rota:

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

cuidado Cuidado: No exemplo acima, o snmpUsmMIB é excluído, o snmpVacmMIB é excluído, e o snmpCommunityMIB é excluído. Juntos esses objetos podem ser utilizados para obter informações sobre usuários configurados e séries de comunidade para obter acesso administrativo para o dispositivo. Recomenda-se que estes objetos exlcluded da vista em todo o dispositivo que puder ser alcançado por usuários públicos.

Essa configuração bloqueia as solicitações para recuperar a tabela de rota (Tabela ipRoute) e a tabela ARP (protocolo de resolução de endereço) (Tabela ipNetToMedia), mas permite que todas as outras solicitações passem. Se você tem umas versões mais velhas do software do ½ do ¿  de Cisco IOSïÂ, não reconhecerá o objeto MIB ipRouteTable, assim que use a seguinte configuração pelo contrário:

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

cuidado Cuidado: No exemplo acima, o snmpUsmMIB é excluído, o snmpVacmMIB é excluído, e o snmpCommunityMIB é excluído. Juntos esses objetos podem ser utilizados para obter informações sobre usuários configurados e séries de comunidade para obter acesso administrativo para o dispositivo. Recomenda-se que estes objetos exlcluded da vista em todo o dispositivo que puder ser alcançado por usuários públicos.

Nboth of these exemplos, você pode substituir seus próprios string de comunidade.

O resultado dessas configurações é que o roteador não retorna mais a tabela ARP ou a tabela de rotas IP quando consultado. Isso impede que as descobertas da rede SNMP criem estacas de CPU no roteador em questão, mas também remove um grau de capacidade de gerenciamento do roteador.

Roteadores que anteriormente não estavam exibindo picos de CPU podem começar a fazer isso caso haja uma alteração na tabela de roteamento. A quantidade de ciclos necessários para responder às solicitações da tabela de IP Routing é uma função do número de rotas na tabela de roteamento. Se o número de rotas aumenta, a utilização CPU aumenta também.

Recomendação 2: Ligar CEF

Uma mudança esteve feita no código do IOS Cisco para permitir que o SNMP pergunte o Cisco express forwarding (CEF) tabela para entradas de roteamento se o CEF switching é usado. Isso melhora significativamente a situação. Com o CEF permitido, o agente SNMP responde a uma operação obter o próximo/volume para o roteamento ou às tabelas ARP com informação do banco de informação de encaminhamento (FIB). O FIB é armazenado em ordem lexicográfica e nenhuma classificação é necessária. Sem CEF permitido, o agente SNMP responde com informação do Routing Information Base (RIB), que devem ser classificados na ordem lexicographical que causa a alta utilização do cpu.

Siga o link de ID de bug abaixo e consulte as informações detalhadas sobre o bug.

CSCdk54265 (clientes registrados somente) - O CPU HOG obtiver gerado quando tabela de roteamento de polling através do SNMP da estação de gerenciamento de rede.

Eleição de determinados MIBs

Os aplicativos de gerenciamento de rede recuperam frequentemente a informação dos dispositivos usando o SNMP. Um exemplo seria o Resource Manager Essentials (RME), aplicativos dentro do conjunto de produtos do CiscoWorks2000. O RME pode recuperar a informação flash definida no CISCO-FLASH-MIB. Se o dispositivo tem um disco flash ATA, pode fazer com que a utilização CPU salte.

Siga o link de ID de bug abaixo e consulte as informações detalhadas sobre o bug.

CSCdt97325 (clientes registrados somente)

Para verificar e aplicar a solução, siga estas etapas:

  1. Verifique se o dispositivo tem uma placa flash ATA em um de seus slots:

    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# 
    
    

    Se você não é certo ou se você não obtém a saída para o comando show diskX, execute o comando show tech e faça uma busca para o disco.

  2. Uma vez que você sabe você tem um disco flash ATA, você pode aplicar a seguinte ação alternativa para impedir as perguntas SNMP no FLASH-MIB:

    Router(config)#snmp-server view <any_word> iso included
    
    !--- ISO is used as a starting point as it is the snmp 'root'.
     
    Router(config)#snmp-server view <any_word> ciscoFlashMIB excluded 
    
    !--- The additional object snmpUsmMIB is excluded.
    
    Router(config)#snmp-server view <any_word> 1.3.6.1.6.3.15 excluded
    
    !--- The additional object snmpVacmMIB is excluded.
    
    Router(config)#snmp-server view <any_word> 1.3.6.1.6.3.16 excluded
    
    !--- The additional object snmpCommunityMIB is excluded.
    
    Router(config)#snmp-server view <any_word> 1.3.6.1.6.3.18 excluded
    Router(config)#snmp-server community <read_community_string> view <any_word> ro 
    Router(config)#snmp-server community <write_community_string> view <any_word> rw 
    Router(config)#exit
    Router#

    Nota: Escolha a mesma palavra em cada linha para o <any_word> na configuração acima.

    cuidado Cuidado: No exemplo acima, o snmpUsmMIB é excluído, o snmpVacmMIB é excluído, e o snmpCommunityMIB é excluído. Juntos esses objetos podem ser utilizados para obter informações sobre usuários configurados e séries de comunidade para obter acesso administrativo para o dispositivo. Recomenda-se que estes objetos exlcluded da vista em todo o dispositivo que puder ser alcançado por usuários públicos.

  3. Verifique que está executado corretamente:

    Router#show run 
    ... 
    snmp-server view <any_word> iso included
    
    !--- ISO is used as a starting point as it is the snmp 'root'.
    
    snmp-server view <any_word> ciscoFlashMIB excluded
    snmp-server view <any_word> internet.6.3.15 excluded
    
    !--- The additional object snmpUsmMIB is excluded.
    
    snmp-server view <any_word> internet.6.3.16 excluded
    
    !--- The additional object snmpVacmMIB is excluded.
    
    snmp-server view <any_word> internet.6.3.18 excluded 
    
    !--- The additional object snmpCommunityMIB is excluded.
    
    snmp-server community <write_community_string> view <any_word> RW 
    snmp-server community <read_community_string> view <any_word> RO
    

    Nota: o <any_word>, o <write_community_string>, e o <read_community_string> são aqueles que estão na configuração.

    cuidado Cuidado: No exemplo acima, o snmpUsmMIB é excluído, o snmpVacmMIB é excluído, e o snmpCommunityMIB é excluído. Juntos esses objetos podem ser utilizados para obter informações sobre usuários configurados e séries de comunidade para obter acesso administrativo para o dispositivo. Recomenda-se que estes objetos exlcluded da vista em todo o dispositivo que puder ser alcançado por usuários públicos.

  4. Emita o comando show proc cpu verificar se o CPU-Util para o SNMP vai para baixo e procure o processo IP_SNMP.

Nota: O erro CSCdt97325 foi fixado igualmente em algumas liberações mais atrasadas do Cisco IOS, assim que verifique o erro para ver se há todos os detalhes.

Outros bugs relacionados à eleição de MIBs:

Siga os links da identificação de bug Cisco abaixo e veja a informação detalhada de Bug.

Fóruns de Discussão NetPro – Conversações em Destaque

O Networking Professionals Connection é um fórum para os profissionais da área de redes compartilharem dúvidas, sugestões e informações sobre soluções, produtos e tecnologias de rede Os links em destaque representam algumas das conversações mais recentes disponíveis sobre essa tecnologia.
Fóruns de discussão NetPro – Conversações Completas para Gerenciamento de Rede
Infraestrutura de Rede: Gerenciamento de Rede
 
Redes Privadas Virtuais: Gerenciamento de rede e política
 

Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Informações Relacionadas


Document ID: 7270