Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document explique comment dépanner la surutilisation de la CPU dans un routeur, due au processus de MOTEUR SNMP exécuté dans le routeur, particulièrement dans le cas de routeurs bas de gamme.
Les lecteurs de ce document devraient avoir connaissance des sujets suivants :
SNMP
Cisco IOS
Les informations de ce document sont basées sur les routeurs exécutant le logiciel Cisco IOS®.
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.
For more information on document conventions, refer to the Cisco Technical Tips Conventions.
Parfois, des messages comme celui-ci peuvent apparaître dans la console du routeur :
%SNMP-3-CPUHOG: Processing [chars] of [chars]
Ils signifient que l'agent SNMP sur le périphérique a mis trop de temps à traiter une requête.
Vous pouvez déterminer la cause de l'utilisation élevée du CPU dans un routeur en utilisant le résultat de la commande show process cpu.
L'exemple suivant montre le résultat de la commande show process cpu.
cacuk#show process cpu CPU utilization for five seconds: 0%/0%; one minute: 0%; five minutes: 0%
PID | Exécution(ms) | Invoked | uSecs | 5Sec | 1Min | 5Min | TTY | Process |
---|---|---|---|---|---|---|---|---|
1 | 68 | 258816 | 0 | 0.00% | 0.00% | 0.00% | 0 | Load Meter |
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 | Gestionnaire de blocs |
5 | 56 | 131 | 427 | 0.00% | 0.00% | 0.00% | 0 | Pool Manager |
69 | 202700 | 421730 | 480 | 0.00% | 0.01% | 0.00% | 0 | SNMP IP |
71 | 1193648 | 211250 | 5650 | 0.00% | 0.19% | 0.15% | 0 | MOTEUR SNMP |
La commande debug snmp vérifie quels ID d'objet (OID) ou MIB (Management Information Base) sont interrogés à ce moment.
Remarque : l'exécution d'un débogage sur un réseau de production peut submerger le routeur.
Il existe deux causes probables d'utilisation élevée du CPU par rapport au protocole SNMP (Simple Network Management Protocol) :
Tables de route et/ou ARP volumineuses interrogées par la station NMS
Interrogation de certaines MIB
La station d’administration de réseau interroge les routeurs sur l’ensemble de leur table de routage pour en savoir plus sur les autres réseaux. Il utilise ces informations pour rechercher d’autres routeurs et les interroger sur leurs connaissances des réseaux qui les entourent. De cette manière, la station de gestion peut apprendre la topologie de l’ensemble du réseau.
Le routeur stocke la table de routage dans un format haché, ce qui facilite les recherches de route rapides. Cependant, les réponses SNMP pour la route doivent être retournées dans l'ordre lexicographique conformément à la RFC1213. Par conséquent, pour chaque requête SNMP reçue par le routeur, la table de hachage doit être triée lexicographiquement avant qu'une unité de données de protocole de réponse SNMP puisse être créée. Plus la table de routage est grande, plus le CPU interagit avec le tri.
Le protocole SNMP est un processus de faible priorité en ce qui concerne le planificateur de CPU, de sorte qu'un autre processus nécessitant des ressources de CPU est prioritaire. Par conséquent, même si des pics de CPU se produisent dans ce scénario, ils ne doivent pas affecter les performances.
Pour éviter les problèmes de performances, forcez le routeur à mettre fin prématurément aux requêtes pour la table de routage à partir du serveur du système de gestion du réseau. Configurez le routeur pour qu’il réponde avec un message complet dès qu’il reçoit le début d’une demande pour la table de routage, comme suit :
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
Attention : Dans l'exemple ci-dessus, snmpUsmMIB est exclu, snmpVacmMIB est exclu et snmpCommunityMIB est exclu. Ensemble, ces objets peuvent être utilisés pour obtenir des informations sur les utilisateurs configurés et les chaînes de communauté afin d'obtenir un accès administratif au périphérique. Il est recommandé d'exclure ces objets de la vue sur tout périphérique accessible aux utilisateurs publics.
Cette configuration bloque les requêtes de récupération de la table de routage (ipRouteTable) et de la table ARP (Address Resolution Protocol) (ipNetToMediaTable), mais autorise toutes les autres requêtes à passer par. Si vous disposez d'une version antérieure du logiciel Cisco IOS®, il ne reconnaîtra pas l'objet MIB ipRouteTable, utilisez donc la configuration suivante :
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
Attention : Dans l'exemple ci-dessus, snmpUsmMIB est exclu, snmpVacmMIB est exclu et snmpCommunityMIB est exclu. Ensemble, ces objets peuvent être utilisés pour obtenir des informations sur les utilisateurs configurés et les chaînes de communauté afin d'obtenir un accès administratif au périphérique. Il est recommandé d'exclure ces objets de la vue sur tout périphérique accessible aux utilisateurs publics.
Dans ces deux exemples, vous pouvez remplacer vos propres chaînes de communauté.
Le résultat de ces configurations est que le routeur ne retourne plus la table ARP ou la table de routage IP lorsqu’il est interrogé. Cela empêche les découvertes de réseau SNMP de créer des pics de CPU sur le routeur en question, mais supprime également un certain degré de facilité de gestion du routeur.
Les routeurs qui n’avaient pas de pointes de CPU auparavant peuvent commencer à le faire en cas de modification de leur table de routage. Le nombre de cycles requis pour répondre aux requêtes de la table de routage IP dépend du nombre de routes dans la table de routage. Si le nombre de routes augmente, l'utilisation du CPU augmente également.
Une modification a été apportée au code Cisco IOS pour permettre à SNMP d'interroger la table CEF (Cisco Express Forwarding) pour connaître les entrées de routage si la commutation CEF est utilisée. Cela améliore considérablement la situation. Lorsque CEF est activé, l'agent SNMP répond à une opération get-next/get-vrac pour les tables de routage ou ARP avec les informations de la base d'informations de transfert (FIB). La FIB est stockée dans l'ordre lexicographique et aucun tri n'est nécessaire. Sans CEF activé, l'agent SNMP répond avec des informations provenant de la base d'informations de routage (RIB), qui doivent être triées dans l'ordre lexicographique causant un CPU élevé.
Suivez le lien d'ID de bogue ci-dessous et voyez les informations détaillées sur le bogue.
CSCdk54265 (clients enregistrés uniquement) : le HOG CPU est généré lors de l'interrogation de la table de routage via SNMP à partir de la station de gestion de réseau.
Les applications de gestion de réseau récupèrent fréquemment des informations des périphériques utilisant SNMP. Par exemple, Resource Manager Essentials (RME), une application de la gamme de produits CiscoWorks 2000. RME peut récupérer les informations flash définies dans la MIB CISCO-FLASH. Si le périphérique dispose d'un disque flash ATA, il peut faire sauter l'utilisation du processeur.
Suivez le lien d'ID de bogue ci-dessous et voyez les informations détaillées sur le bogue.
CSCdt97325 (clients enregistrés uniquement)
Pour vérifier et appliquer la solution de contournement, procédez comme suit :
Vérifiez si le périphérique possède une carte Flash ATA dans l'un de ses logements :
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 vous n'êtes pas sûr ou si vous n'obtenez pas de sortie pour la commande show diskX, exécutez la commande show tech et recherchez le disque.
Une fois que vous avez un disque Flash ATA, vous pouvez appliquer la solution de contournement suivante pour empêcher les requêtes SNMP sur la base de données FLASH-MIB :
Router(config)#snmp-server viewiso included !--- ISO is used as a starting point as it is the snmp 'root'. Router(config)#snmp-server viewciscoFlashMIB excluded !--- The additional object snmpUsmMIB is excluded. Router(config)#snmp-server view1.3.6.1.6.3.15 excluded !--- The additional object snmpVacmMIB is excluded. Router(config)#snmp-server view1.3.6.1.6.3.16 excluded !--- The additional object snmpCommunityMIB is excluded. Router(config)#snmp-server view1.3.6.1.6.3.18 excluded Router(config)#snmp-server communityview Router(config)#snmp-server communityro view Router(config)#exit Router#rw
Remarque : Choisissez le même mot sur chaque ligne pour <any_word> dans la configuration ci-dessus.
Attention : Dans l'exemple ci-dessus, snmpUsmMIB est exclu, snmpVacmMIB est exclu et snmpCommunityMIB est exclu. Ensemble, ces objets peuvent être utilisés pour obtenir des informations sur les utilisateurs configurés et les chaînes de communauté afin d'obtenir un accès administratif au périphérique. Il est recommandé d'exclure ces objets de la vue sur tout périphérique accessible aux utilisateurs publics.
Vérifiez qu'elle est correctement implémentée :
Router#show run ... snmp-server viewiso included !--- ISO is used as a starting point as it is the snmp 'root'. snmp-server viewciscoFlashMIB excluded snmp-server view !--- The additional object snmpUsmMIB is excluded. snmp-server viewinternet.6.3.15 excluded internet.6.3.16 excluded !--- The additional object snmpVacmMIB is excluded. snmp-server viewinternet.6.3.18 excluded !--- The additional object snmpCommunityMIB is excluded. snmp-server communityview RW snmp-server community view RO
Remarque : <any_word>, <write_community_string> et <read_community_string> sont ceux qui sont dans la configuration.
Attention : Dans l'exemple ci-dessus, snmpUsmMIB est exclu, snmpVacmMIB est exclu et snmpCommunityMIB est exclu. Ensemble, ces objets peuvent être utilisés pour obtenir des informations sur les utilisateurs configurés et les chaînes de communauté afin d'obtenir un accès administratif au périphérique. Il est recommandé d'exclure ces objets de la vue sur tout périphérique accessible aux utilisateurs publics.
Émettez la commande show proc cpu pour vérifier si le CPU-Util pour SNMP tombe en panne et rechercher le processus IP_SNMP.
Note : Le bogue CSCdt97325 a également été corrigé dans certaines versions ultérieures de Cisco IOS, donc vérifiez le bogue pour plus de détails.
Autres bogues liés aux MIB d'interrogation :
Suivez les liens d'ID de bogue Cisco ci-dessous et consultez les informations détaillées sur le bogue.
CSCdm67427 (clients enregistrés uniquement) : l'interrogation de la sous-interface ATM renvoie le message HOG CPU du périphérique.
CSCdu63734 (clients enregistrés uniquement) - Flash MIB passe trop d'appels à if.
CSCdu48652 (clients enregistrés uniquement) - La requête MIB Flash bloque les appels vocaux sur 7200.
CSCds53368 (clients enregistrés uniquement) - Problèmes avec l'objet ciscoFlashPartitionEntry dans CISCO-FLASH-MIB.
CSCdu55091 (clients enregistrés uniquement) - 2500 snmpgetnext pour certains objets SNMP provoque le retour de trace.
CSCdx54836 (clients enregistrés uniquement) : l'interrogation SNMP sur la base MIB Flash entraîne une utilisation élevée du processeur sur le commutateur.
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
27-Feb-2014 |
Première publication |