Parece haver um pouco de confusão ... você está perguntando sobre tabelas ARP e está usando o OID .1.3.6.1.2.1.17.4.3.1.2
; no entanto, esse OID é realmente para a tabela de endereços mac no comutador.
Estou assumindo que você sabe como fazer login no seu servidor Ubuntu e que NET-SNMP
está instalado ... por favor, deixe-me saber se você precisa de ponteiros para fazer isso (consulte esta pergunta para obter dicas sobre como carregar MIBs no linux ). Alguns dos meus exemplos assumem que você tem os MIBs carregados no servidor ... você só precisa remover a -m <mib-name>
opção nos comandos se não tiver os MIBs carregados localmente.
Peço desculpas antecipadamente pela extensão desta resposta ... Desejo que a pesquisa com SNMP não seja tão complicada ...
Sondando a tabela de endereços mac:
Se você realmente deseja que a tabela de endereços MAC seja trocada, lembre-se de que você deve alterar a string da comunidade com a qual você pesquisa ... deve ser na forma de <commity@vlan>
... cada vlan que você pesquisa precisa de uma comunidade diferente.
No meu exemplo abaixo, o switch em 172.16.1.210 está configurado com snmp-server community public ro
e estou pesquisando a tabela de endereços mac na vlan-10 com dot1dTpFdbPort do 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 ~]$
Na saída acima, 52 é o valor de dot1dBasePort
, que é um número que o MIB usa para indexar a tabela dot1dTp. Para converter isso em um nome de interface normal, é necessário mapear isso para um ifName ... O BRIDGE-MIB faz isso com 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 ~]$
Portanto, sabemos que todos os endereços mac neste switch foram aprendidos através do FastEthernet 0/48 na vlan-10.
Sondando os Vlans ativos:
Se você não tiver certeza de quais vlans pesquisar em um switch, poderá obter essas informações .1.3.6.1.4.1.9.9.46.1.3.1.1.2
, que é vtpVlanState no 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 ~]$
Lembre-se de que os Vlans 1002-1005 são Cisco Vlans internos que você não deve pesquisar.
Sondando a tabela ARP
Se você realmente deseja a tabela ARP a partir do switch, é necessário pesquisar 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 ~]$
Salvando a Saída do Comando em um Arquivo
Estamos investigando áreas que estão fora do escopo normal deste site, mas para salvar a tabela ARP acima em um arquivo /tmp/S01_ARP.txt
, você adicionaria > /tmp/S01_ARP.txt
ao final das informações snmpbulkwalk
acima ...
[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 ~]$
Como você vê acima, você pode usar cat
no linux para obter toda a saída de um arquivo de texto. NOTA: Algumas distribuições linux (ahem ... CentOS) limpam o /tmp
diretório mensalmente. Você deve usar seu HOME
diretório no linux para armazenar o arquivo. Não me lembro da limpeza do Ubuntu /tmp
, mas, por segurança, evitava guardar coisas lá.
Notas diversas sobre SNMP ...
Se você não carregou todos os MIBs da Cisco em sua máquina Ubuntu, evite usar os -m <mib-name>
sinalizadores nos snmpbulkwalk
comandos. Carregar MIBs permite pesquisar com um nome OID, em vez do número longo pontilhado ...
Informação de referência:
Estou incluindo alguns comandos show do switch, caso você tenha dúvidas sobre a CLI dos comandos SNMP acima ...
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#