Você pode escrever um script perl usando Net::Telnet::Cisco
e Net::OpenSSH
para automatizar isso. Eu vou fornecer um aqui se eu encontrar algum tempo hoje.
UPDATE
Como solicitado pelo questionador em um comentário:
Se você deseja obter as informações via SNMP, há uma excelente documentação na biblioteca do cisco: link
Resumindo: Você precisa mesclar as saídas de cinco snmpwalk
s (onde crumpy
é o nome do switch)
snmpwalk -c public crumpy .1.3.6.1.4.1.9.9.46.1.3.1.1.2 # get vlan states
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.17.4.3.1.1 # get mac table
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.17.4.3.1.2 # get the switchport numbers for the vlans (here Vlan1)
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.17.1.4.1.2 # switchport to if number
snmpwalk -c public@1 crumpy .1.3.6.1.2.1.31.1.1.1.1 # get the interface names
Do Documentos:
6. Link a MAC address to the port on which the address was learned.
* From Step 1, the MAC address is:
17.4.3.1.1.0.0.12.7.172.8 = Hex: 00 00 0C 07 AC 08
* From Step 2, the bridge port tells that the MAC address belongs to bridge port number 13:
17.4.3.1.2.0.0.12.7.172.8 = 13
* From Step 3, the bridge port number 13 has ifIndex number 2:
17.1.4.1.2.13 = 2
* From Step 4, the ifIndex 2 corresponds to port Fast Ethernet 0/1:
ifMIB.ifMIBObjects.ifXTable.ifXEntry.ifName.2 = Fa0/1