Il semble y avoir un peu de confusion ... vous parlez des tables ARP et vous utilisez des OID .1.3.6.1.2.1.17.4.3.1.2
; Cependant, cet OID est en réalité pour la table des adresses mac du commutateur.
Je suppose que vous savez comment vous connecter à votre serveur Ubuntu et que celui-ci NET-SNMP
est installé ... s'il vous plaît laissez-moi savoir si vous avez besoin de pointeurs pour le faire (voir cette question pour des astuces sur le chargement de MIB sous Linux ). Certains de mes exemples supposent que les bases MIB sont chargées sur votre serveur ... il vous suffit de supprimer l' -m <mib-name>
option des commandes si les bases MIB ne sont pas chargées localement.
Je m'excuse par avance pour la longueur de cette réponse ... J'aimerais que les sondages avec SNMP ne soient pas aussi compliqués ...
Interroger la table des adresses MAC:
Si vous voulez vraiment la table des adresses mac du commutateur, souvenez-vous que vous devez changer la chaîne de communauté avec laquelle vous interrogez ... elle devrait se présenter sous la forme <commity@vlan>
... chaque vlan que vous interrogez a besoin d'une communauté différente.
Dans mon exemple ci-dessous, le commutateur 172.16.1.210 est configuré avec snmp-server community public ro
, et j'interroge la table des adresses mac dans vlan-10 avec dot1dTpFdbPort de BRIDGE-MIB .
[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public@10 -OXsq 172.16.1.210 \
.1.3.6.1.2.1.17.4.3.1.2
dot1dTpFdbPort[0:6:53:fe:39:e0] 52
dot1dTpFdbPort[0:1d:a1:cd:53:46] 52
dot1dTpFdbPort[0:30:1b:bc:a7:d7] 52
dot1dTpFdbPort[0:80:c8:0:0:0] 52
dot1dTpFdbPort[38:ea:a7:6d:2e:8e] 52
dot1dTpFdbPort[80:ee:73:2f:b:40] 52
[mpenning@tsunami ~]$
Dans la sortie ci-dessus, 52 est la valeur de dot1dBasePort
, qui est un nombre que la MIB utilise pour indexer la table dot1dTp. Pour traduire cela en un nom d'interface normal, vous devez mapper cela sur un ifName ... BRIDGE-MIB le fait avec dot1dBasePortIfIndex ...
[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public@10 -m BRIDGE-MIB 172.16.1.210 \
.1.3.6.1.2.1.17.1.4.1.2
BRIDGE-MIB::dot1dBasePortIfIndex.52 = INTEGER: 10048
[mpenning@tsunami ~]$
[mpenning@tsunami ~]$ snmpget -v 2c -c public 172.16.1.210 ifName.10048
IF-MIB::ifName.10048 = STRING: Fa0/48
[mpenning@tsunami ~]$
Ainsi, nous savons que toutes les adresses MAC de ce commutateur ont été apprises via FastEthernet 0/48 dans vlan-10.
Interroger les Vlans actifs:
Si vous ne savez pas exactement quels réseaux virtuels interroger sur un commutateur, vous pouvez obtenir ces informations .1.3.6.1.4.1.9.9.46.1.3.1.1.2
, à savoir vtpVlanState dans la base de données CISCO-VTP-MIB ...
[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public -OXsq -m CISCO-VTP-MIB 172.16.1.210 \
.1.3.6.1.4.1.9.9.46.1.3.1.1.2
vtpVlanState[1][1] operational
vtpVlanState[1][10] operational
vtpVlanState[1][1002] operational
vtpVlanState[1][1003] operational
vtpVlanState[1][1004] operational
vtpVlanState[1][1005] operational
[mpenning@tsunami ~]$
N'oubliez pas que les réseaux locaux virtuels 1002-1005 sont des réseaux locaux que vous ne devriez pas interroger.
Interroger la table ARP
Si vous voulez vraiment la table ARP du commutateur, vous devez interroger atPhysAddress ...
[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public -OXsq 172.16.1.210 \
.1.3.6.1.2.1.3.1.1.2
atPhysAddress[10][1.172.16.1.5] "80 EE 73 2F 0B 40 "
atPhysAddress[10][1.172.16.1.25] "38 EA A7 6D 2E 8E "
atPhysAddress[10][1.172.16.1.32] "BC 51 FE 50 16 F8 "
atPhysAddress[10][1.172.16.1.200] "00 06 53 FE 39 E0 "
atPhysAddress[10][1.172.16.1.210] "00 18 BA 51 5B 41 "
[mpenning@tsunami ~]$
Enregistrement du résultat de la commande dans un fichier
Nous explorons des domaines qui sortent du cadre normal de ce site, mais pour enregistrer le tableau ARP ci-dessus dans un fichier /tmp/S01_ARP.txt
, vous ajouteriez > /tmp/S01_ARP.txt
à la fin de ce qui snmpbulkwalk
précède ...
[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public -OXsq 172.16.1.210 \
.1.3.6.1.2.1.3.1.1.2 > /tmp/S01_ARP.txt
[mpenning@tsunami ~]$ cat /tmp/S01_ARP.txt
atPhysAddress[10][1.172.16.1.5] "80 EE 73 2F 0B 40 "
atPhysAddress[10][1.172.16.1.25] "38 EA A7 6D 2E 8E "
atPhysAddress[10][1.172.16.1.32] "BC 51 FE 50 16 F8 "
atPhysAddress[10][1.172.16.1.200] "00 06 53 FE 39 E0 "
atPhysAddress[10][1.172.16.1.210] "00 18 BA 51 5B 41 "
[mpenning@tsunami ~]$
Comme vous le voyez ci-dessus, vous pouvez utiliser cat
Linux pour obtenir toutes les sorties d'un fichier texte. NOTE: Certaines distributions linux (ahem ... CentOS) nettoient le /tmp
répertoire tous les mois. Vous devriez utiliser votre HOME
répertoire sous Linux pour stocker le fichier. Je ne me souviens pas d'Ubuntu en train de nettoyer /tmp
, mais par sécurité, j'éviterais de stocker des choses là-bas.
Notes diverses sur SNMP ...
Si vous n'avez pas chargé toutes les bases MIB de Cisco sur votre machine Ubuntu, évitez d'utiliser les -m <mib-name>
indicateurs dans les snmpbulkwalk
commandes. Le chargement de MIB vous permet d’interroger avec un nom d’OID au lieu du numéro en long pointillé ...
Informations de référence:
J'inclus certaines commandes show du commutateur, au cas où vous auriez des questions à propos de la CLI pour les commandes SNMP ci-dessus ...
S01#sh ver | i IOS
Cisco IOS Software, C3560 Software (C3560-IPBASEK9-M), Version 12.2(37)SE, RELEASE SOFTWARE (fc2)
S01#
S01#sh mac address-table dynamic
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
10 0006.53fe.39e0 DYNAMIC Fa0/48
10 001d.a1cd.5346 DYNAMIC Fa0/48
10 0030.1bbc.a7d7 DYNAMIC Fa0/48
10 0080.c800.0000 DYNAMIC Fa0/48
10 38ea.a76d.2e8e DYNAMIC Fa0/48
10 80ee.732f.0b40 DYNAMIC Fa0/48
Total Mac Addresses for this criterion: 6
S01#
S01#sh arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 172.16.1.210 - 0018.ba51.5b41 ARPA Vlan10
Internet 172.16.1.200 0 0006.53fe.39e0 ARPA Vlan10
Internet 172.16.1.32 0 bc51.fe50.16f8 ARPA Vlan10
Internet 172.16.1.25 0 38ea.a76d.2e8e ARPA Vlan10
Internet 172.16.1.5 1 80ee.732f.0b40 ARPA Vlan10
S01#