Colete endereços MAC de dispositivos conectados via SNMP

1

Estou trabalhando em um script, que coleta dados de switches da Netgear via SNMP. Meu problema é que não consigo encontrar o OID, que representa o endereço MAC dos clientes conectados a uma porta.

O SNMPWalk encontrou alguns - mas não todos - endereços em OIDs como iso.0.8802.1.1.2.1.4.1.1.5.18524162.7.7 (retorna uma HEX-String do dispositivo conectado à porta 7)

Alguém sabe como coletar os endereços de todos os dispositivos conectados (diretamente) ou quais OID devem ser usados aqui?

Cumprimentos R.Christes

    
por R.Christes 10.09.2018 / 13:23

1 resposta

1

Eu usaria 1.3.6.1.2.1.17.4.3.1.1 para obter a lista dos dispositivos conectados. Observe que a lista também inclui os endereços MAC das portas e, quando outro switch está conectado a uma das portas, haverá mais MACs na lista (o MAC dos dispositivos conectados ao outro switch).

1.3.6.1.2.1.17.4.3.1.2 tem a lista de IDs de porta correspondentes.

Estes são OIDs padrão e não específicos da Netgear, por isso devem funcionar com qualquer marca .

Aqui está um exemplo de saída do meu Mikrotik:

bcs78@sv1:~# snmpwalk -l authPriv -a SHA -A password -x AES -X password -u community 192.168.88.1 1.3.6.1.2.1.17.4.3.1
iso.3.6.1.2.1.17.4.3.1.1.0.12.66.194.81.97 = Hex-STRING: 00 0C 42 C2 51 61
iso.3.6.1.2.1.17.4.3.1.1.0.12.66.231.167.149 = Hex-STRING: 00 0C 42 E7 A7 95
iso.3.6.1.2.1.17.4.3.1.1.28.116.13.111.54.18 = Hex-STRING: 1C 74 0D 6F 36 12
iso.3.6.1.2.1.17.4.3.1.1.40.194.221.106.213.139 = Hex-STRING: 28 C2 DD 6A D5 8B
iso.3.6.1.2.1.17.4.3.1.1.120.29.186.155.14.13 = Hex-STRING: 78 1D BA 9B 0E 0D
iso.3.6.1.2.1.17.4.3.1.1.172.133.61.155.120.36 = Hex-STRING: AC 85 3D 9B 78 24
iso.3.6.1.2.1.17.4.3.1.1.176.70.252.87.106.236 = Hex-STRING: B0 46 FC 57 6A EC
iso.3.6.1.2.1.17.4.3.1.1.176.70.252.87.107.46 = Hex-STRING: B0 46 FC 57 6B 2E
iso.3.6.1.2.1.17.4.3.1.1.184.39.235.8.17.87 = Hex-STRING: B8 27 EB 08 11 57
iso.3.6.1.2.1.17.4.3.1.1.228.141.140.231.7.102 = Hex-STRING: E4 8D 8C E7 07 66
iso.3.6.1.2.1.17.4.3.1.1.228.141.140.231.7.103 = Hex-STRING: E4 8D 8C E7 07 67
iso.3.6.1.2.1.17.4.3.1.1.228.141.140.231.7.104 = Hex-STRING: E4 8D 8C E7 07 68
iso.3.6.1.2.1.17.4.3.1.1.228.141.140.231.7.105 = Hex-STRING: E4 8D 8C E7 07 69
iso.3.6.1.2.1.17.4.3.1.1.228.141.140.231.7.107 = Hex-STRING: E4 8D 8C E7 07 6B
iso.3.6.1.2.1.17.4.3.1.2.0.12.66.194.81.97 = INTEGER: 4
iso.3.6.1.2.1.17.4.3.1.2.0.12.66.231.167.149 = INTEGER: 5
iso.3.6.1.2.1.17.4.3.1.2.28.116.13.111.54.18 = INTEGER: 3
iso.3.6.1.2.1.17.4.3.1.2.40.194.221.106.213.139 = INTEGER: 19
iso.3.6.1.2.1.17.4.3.1.2.120.29.186.155.14.13 = INTEGER: 6
iso.3.6.1.2.1.17.4.3.1.2.172.133.61.155.120.36 = INTEGER: 6
iso.3.6.1.2.1.17.4.3.1.2.176.70.252.87.106.236 = INTEGER: 4
iso.3.6.1.2.1.17.4.3.1.2.176.70.252.87.107.46 = INTEGER: 5
iso.3.6.1.2.1.17.4.3.1.2.184.39.235.8.17.87 = INTEGER: 4
iso.3.6.1.2.1.17.4.3.1.2.228.141.140.231.7.102 = INTEGER: 26
iso.3.6.1.2.1.17.4.3.1.2.228.141.140.231.7.103 = INTEGER: 5
iso.3.6.1.2.1.17.4.3.1.2.228.141.140.231.7.104 = INTEGER: 4
iso.3.6.1.2.1.17.4.3.1.2.228.141.140.231.7.105 = INTEGER: 3
iso.3.6.1.2.1.17.4.3.1.2.228.141.140.231.7.107 = INTEGER: 19
(...)

Como você pode ver, os OIDs filhos são criados dinamicamente (por exemplo: um novo OID para o MAC 00:0C:42:C2:51:61 foi criado em uma representação decimal como (...).0.12.66.194.81.97 ).

Como é discutido nos comentários abaixo, os OIDs acima são verdadeiros para alguns dispositivos (testei em um roteador Mikrotik). No entanto, com a VLAN, é mais provável que use o OID 1.3.6.1.2.1.17.7.1.2.2.1 filho OID .1 é a tabela de endereços MAC e .2 contém as portas associadas, mas o princípio básico é o mesmo.

    
por 10.09.2018 / 15:49