SNMPv2 et SNMPv3 sur un switch Cisco : tutoriel pratique avec snmpget et snmpwalk

Dans cet article, nous allons utiliser le protocole SNMP sur un switch Cisco à l’aide des outils snmpget et snmpwalk.
Objectif : comprendre comment interroger un équipement réseau et récupérer des informations utiles .

Ce tutoriel est basé sur des environnements Cisco IOS et Debian/Ubuntu.


1. Pourquoi utiliser SNMP ?

SNMP (Simple Network Management Protocol) permet de surveiller et d’administrer des équipements réseau : switches, routeurs, firewalls, serveurs…
Avec lui, vous pouvez :

  • récupérer des informations système (version, uptime, modèle)
  • lister les interfaces
  • connaître l’état des ports (up/down)
  • interroger des compteurs (trafic, erreurs, etc.)
  • utiliser des MIB pour traduire les OID en noms lisibles

Dans cet article, on reste sur l’essentiel : interroger un switch Cisco de manière simple et rapide.


2. Préparer votre environnement

Sur Cisco IOS : configuration SNMP

SNMPv2c (pour tests uniquement)

switch-lab# conf t
switch-lab(config)# access-list 10 permit 192.0.2.10
switch-lab(config)# snmp-server community macomm RO 10

SNMPv2c ne chiffre rien. À utiliser uniquement pour des tests ou en environnement maîtrisé.

SNMPv3 (recommandé en production)

Switch-lab(config)#snmp-server view SNMP-VIEW iso included

Switch-lab(config)#snmp-server group SNMPv3-GROUP v3 priv read SNMP-VIEW access 10

Switch-lab(config)#snmp-server user SNMP-USER SNMPV3-GROUP V3 auth sha PasswordAuth priv aes 128 PasswordPriv

SNMPv3 ajoute :

  • authentification
  • chiffrement des requêtes
  • meilleure sécurité grâce aux ACL

3. Installer les utilitaires SNMP (Debian/Ubuntu)

sudo apt update
sudo apt install -y snmp snmp-mibs-downloader

Si vous voyez uniquement des OID numériques lors des tests, éditez :
/etc/snmp/snmp.conf
et commentez la ligne :
mibs :


4. Utiliser snmpget : interroger une seule OID

snmpget sert à récupérer une valeur précise.

Exemple : description du système (sysDescr.0) :

$ snmpget -v2c -c macomm 192.168.1.249 SNMPv2-MIB::sysDescr.0

SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, C2960X Software (C2960X-UNIVERSALK9-M), Version 15.2(7)E5, RELEASE SOFTWARE (fc3)


Vous verrez apparaître :

  • version du système
  • modèle
  • version IOS

C’est idéal pour valider que SNMP fonctionne correctement.


5. Utiliser snmpwalk : parcourir des branches de MIB

snmpwalk permet de parcourir une arborescence entière.

Lister les interfaces du switch

$ snmpwalk -v2c -c macomm 192.168.1.249 IF-MIB::ifDescr
IF-MIB::ifDescr.1 = STRING: Vlan1
IF-MIB::ifDescr.5179 = STRING: StackPort1
IF-MIB::ifDescr.5180 = STRING: StackSub-St1-1
IF-MIB::ifDescr.5181 = STRING: StackSub-St1-2
IF-MIB::ifDescr.10101 = STRING: GigabitEthernet1/0/1
IF-MIB::ifDescr.10102 = STRING: GigabitEthernet1/0/2
IF-MIB::ifDescr.10103 = STRING: GigabitEthernet1/0/3
IF-MIB::ifDescr.10104 = STRING: GigabitEthernet1/0/4
IF-MIB::ifDescr.10105 = STRING: GigabitEthernet1/0/5

Vous verrez les ports :
Gi0/1, Gi0/2, Vlan1, etc.

Récupérer l’état opérationnel des interfaces

$ snmpwalk -v2c -c macomm 192.168.1.249 IF-MIB::ifOperStatus
IF-MIB::ifOperStatus.1 = INTEGER: up(1)
IF-MIB::ifOperStatus.5179 = INTEGER: down(2)
IF-MIB::ifOperStatus.5180 = INTEGER: down(2)
IF-MIB::ifOperStatus.5181 = INTEGER: down(2)
IF-MIB::ifOperStatus.10101 = INTEGER: up(1)
IF-MIB::ifOperStatus.10102 = INTEGER: down(2)
IF-MIB::ifOperStatus.10103 = INTEGER: down(2)

Codes courants :

  • 1 = up
  • 2 = down
  • 3 = testing


6. Cas pratique : trouver les interfaces down

Vous voulez identifier les ports désactivés ou inactifs ?
Voici une méthode rapide.

Liste des interfaces down

$ snmpwalk -v2c -c macomm 192.168.1.249 IF-MIB::ifOperStatus | grep "down(2)"
IF-MIB::ifOperStatus.5179 = INTEGER: down(2)
IF-MIB::ifOperStatus.5180 = INTEGER: down(2)
IF-MIB::ifOperStatus.5181 = INTEGER: down(2)
IF-MIB::ifOperStatus.10102 = INTEGER: down(2)
IF-MIB::ifOperStatus.10103 = INTEGER: down(2)
IF-MIB::ifOperStatus.10104 = INTEGER: down(2)
IF-MIB::ifOperStatus.10105 = INTEGER: down(2)

Puis correlez avec les ifDescr :

$ snmpwalk -v2c -c macomm 192.168.1.249 IF-MIB::ifDescr
IF-MIB::ifDescr.1 = STRING: Vlan1
IF-MIB::ifDescr.5179 = STRING: StackPort1
IF-MIB::ifDescr.5180 = STRING: StackSub-St1-1
IF-MIB::ifDescr.5181 = STRING: StackSub-St1-2
IF-MIB::ifDescr.10101 = STRING: GigabitEthernet1/0/1
IF-MIB::ifDescr.10102 = STRING: GigabitEthernet1/0/2
IF-MIB::ifDescr.10103 = STRING: GigabitEthernet1/0/3
IF-MIB::ifDescr.10104 = STRING: GigabitEthernet1/0/4

En production, utiliser SNMPv3 :

$ snmpwalk -v 3 -u SNMP-USER -l authPriv -a sha -A PasswordAuth -x aes -X PasswordPriv 192.168.1.249 IF-MIB::ifDescr
IF-MIB::ifDescr.1 = STRING: Vlan1
IF-MIB::ifDescr.5179 = STRING: StackPort1
IF-MIB::ifDescr.5180 = STRING: StackSub-St1-1
IF-MIB::ifDescr.5181 = STRING: StackSub-St1-2
IF-MIB::ifDescr.10101 = STRING: GigabitEthernet1/0/1
IF-MIB::ifDescr.10102 = STRING: GigabitEthernet1/0/2
IF-MIB::ifDescr.10103 = STRING: GigabitEthernet1/0/3


7. Bonnes pratiques SNMP

  • Préférez SNMPv3 pour sa sécurité (auth + chiffrement)
  • Limitez les sources avec des ACL
  • Documentez les OID utiles pour votre monitoring
  • Ne laissez jamais une community v2c « public » ou « private »
  • Surveillez les logs SNMP du switch

8. Conclusion

SNMP est un protocole simple mais extrêmement puissant pour la supervision et le diagnostic réseau.
Avec snmpget, snmpwalk et snmptranslate, vous disposez d’un trio indispensable pour :

  • tester rapidement un équipement
  • comprendre les MIB et OID
  • automatiser la collecte d’informations
  • surveiller l’état des interfaces

Ces outils sont incontournables pour tout administrateur réseau ou ingénieur système travaillant en environnement Cisco ou Linux.

TABLEAU DE RÉFÉRENCE COMPLET DES OID

### F.1 - OID Informations Système

| Description | OID | Type | Exemple de valeur |
|-------------|-----|------|-------------------|
| Description Système | 1.3.6.1.2.1.1.1.0 | String | Cisco IOS Software... |
| ID Objet Système | 1.3.6.1.2.1.1.2.0 | OID | 1.3.6.1.4.1.9.1.516 |
| Uptime Système | 1.3.6.1.2.1.1.3.0 | TimeTicks | 12345678 |
| Contact Système | 1.3.6.1.2.1.1.4.0 | String | admin@entreprise.fr |
| Nom Système | 1.3.6.1.2.1.1.5.0 | String | SW-CORE-01 |
| Localisation Système | 1.3.6.1.2.1.1.6.0 | String | Datacenter A |
| Services Système | 1.3.6.1.2.1.1.7.0 | Integer | 72 |

### F.2 - OID Supervision CPU Cisco

| Description | OID | Unité | Notes |
|-------------|-----|-------|-------|
| CPU 5 secondes | 1.3.6.1.4.1.9.9.109.1.1.1.1.6.1 | % | Usage instantané |
| CPU 1 minute | 1.3.6.1.4.1.9.9.109.1.1.1.1.7.1 | % | Moyenne 1 min |
| CPU 5 minutes | 1.3.6.1.4.1.9.9.109.1.1.1.1.8.1 | % | Moyenne 5 min |
| CPU Rising Threshold | 1.3.6.1.4.1.9.9.109.1.1.1.1.9.1 | % | Seuil alerte |

### F.3 - OID Supervision Mémoire Cisco

| Description | OID | Unité | Notes |
|-------------|-----|-------|-------|
| Pool Mémoire Nom | 1.3.6.1.4.1.9.9.48.1.1.1.2.1 | String | Processor |
| Pool Mémoire Utilisée | 1.3.6.1.4.1.9.9.48.1.1.1.5.1 | Bytes | Mémoire occupée |
| Pool Mémoire Libre | 1.3.6.1.4.1.9.9.48.1.1.1.6.1 | Bytes | Mémoire disponible |
| Pool Mémoire Largest Free | 1.3.6.1.4.1.9.9.48.1.1.1.7.1 | Bytes | Plus gros bloc libre |

### F.4 - OID Supervision Interfaces

| Description | OID | Type | Notes |
|-------------|-----|------|-------|
| Nombre d'interfaces | 1.3.6.1.2.1.2.1.0 | Integer | Total interfaces |
| Description Interface | 1.3.6.1.2.1.2.2.1.2.X | String | X = index interface |
| Type Interface | 1.3.6.1.2.1.2.2.1.3.X | Integer | 6=ethernet |
| MTU Interface | 1.3.6.1.2.1.2.2.1.4.X | Integer | Octets |
| Vitesse Interface | 1.3.6.1.2.1.2.2.1.5.X | Gauge | Bits/seconde |
| Adresse MAC | 1.3.6.1.2.1.2.2.1.6.X | String | Format hexa |
| Admin Status | 1.3.6.1.2.1.2.2.1.7.X | Integer | 1=up, 2=down |
| Oper Status | 1.3.6.1.2.1.2.2.1.8.X | Integer | 1=up, 2=down |
| Dernière Modification | 1.3.6.1.2.1.2.2.1.9.X | TimeTicks | Dernier changement |
| Octets Entrants | 1.3.6.1.2.1.2.2.1.10.X | Counter32 | Total reçu |
| Paquets Unicast Entrants | 1.3.6.1.2.1.2.2.1.11.X | Counter32 | Unicast reçus |
| Paquets Non-Unicast Entrants | 1.3.6.1.2.1.2.2.1.12.X | Counter32 | Broadcast/Multicast |
| Paquets Entrants Rejetés | 1.3.6.1.2.1.2.2.1.13.X | Counter32 | Paquets dropped |
| Erreurs Entrantes | 1.3.6.1.2.1.2.2.1.14.X | Counter32 | Erreurs CRC, etc. |
| Octets Sortants | 1.3.6.1.2.1.2.2.1.16.X | Counter32 | Total envoyé |
| Paquets Unicast Sortants | 1.3.6.1.2.1.2.2.1.17.X | Counter32 | Unicast envoyés |
| Erreurs Sortantes | 1.3.6.1.2.1.2.2.1.20.X | Counter32 | Erreurs TX |

### F.5 - OID Matériel Cisco Spécifiques

| Description | OID | Type | Notes |
|-------------|-----|------|-------|
| Version IOS | 1.3.6.1.4.1.9.9.25.1.1.1.2.2 | String | Version logiciel |
| Numéro de Série Châssis | 1.3.6.1.4.1.9.3.6.3.0 | String | S/N principal |
| Modèle Produit | 1.3.6.1.4.1.9.5.1.2.16.0 | String | Catalyst 2960 |
| Température Sensor 1 | 1.3.6.1.4.1.9.9.13.1.3.1.3.1 | Integer | Celsius |
| Nom Entité Physique | 1.3.6.1.2.1.47.1.1.1.1.7 | String | Nom composant |
| Description Entité | 1.3.6.1.2.1.47.1.1.1.1.2 | String | Description |
| S/N Entité | 1.3.6.1.2.1.47.1.1.1.1.11 | String | Numéro série |
| Modèle Entité | 1.3.6.1.2.1.47.1.1.1.1.13 | String | Référence modèle |

### F.6 - OID VLAN et Spanning Tree

| Description | OID | Type | Notes |
|-------------|-----|------|-------|
| VLAN ID | 1.3.6.1.4.1.9.9.46.1.3.1.1.2 | Integer | Numéro VLAN |
| VLAN Nom | 1.3.6.1.4.1.9.9.46.1.3.1.1.4 | String | Nom VLAN |
| VLAN Status | 1.3.6.1.4.1.9.9.46.1.3.1.1.3 | Integer | 1=operational |
| STP Port State | 1.3.6.1.2.1.17.2.15.1.3 | Integer | 1=disabled, 5=forwarding |
| STP Port Priority | 1.3.6.1.2.1.17.2.15.1.2 | Integer | Priorité STP |

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *