Existem alguns dispositivos Cisco e Juniper em nossa rede que eu preciso criar um script python para determinar o que são: comutadores ou roteadores.
Eu tenho acesso ssh, para que eu possa show version
analisar 'JUNOS' ou 'Cisco' para descobrir o fornecedor. Mas não sei como descobrir se o dispositivo é um roteador, switch ou outra coisa.
Obrigado pela ajuda!
nmap -O
fosse mais preciso. A execução em um firewall da Cisco fornece: "Tipo de dispositivo: firewall - Em execução (APENAS SUGESTÃO): Juniper incorporado (88%), Cisco PIX OS 7.X (87%)".Respostas:
Pode ser difícil dizer, porque muitos modelos comercializados como comutadores terão funções de roteamento incluídas, e você também pode ter casos em que os roteadores estão sendo usados como comutadores - ou seja, eles não estão direcionando o tráfego. Portanto, mesmo que você possa descobrir a capacidade de um dispositivo, você realmente deseja conhecer sua função na sua rede.
Você pode ter muitos dispositivos, mas provavelmente não possui tantos modelos diferentes; portanto, analisar manualmente a saída
show version
pode ser suficiente para descobrir o que seus dispositivos podem fazer.A menos que você esteja apenas tentando preencher um banco de dados de ativos, precisará analisar as configurações e descobrir o que cada dispositivo está realmente configurado para fazer.
fonte
Em um dispositivo Cisco, é possível analisar os recursos do dispositivo usando o CDP (consulte Em um dispositivo Cisco, como você mostra os recursos? ). No entanto, o CDP pode estar desativado na sua rede.
O melhor seria verificar se as interfaces Vlan estão presentes (significa um dispositivo com capacidade de comutação) e se existem interfaces do tipo FastEthernet X / X / X (provavelmente um roteador com capacidade de comutação).
Ao usar esses dois fatos, você obtém uma idéia bastante precisa do que é o dispositivo, mas é específico da Cisco.
Você também pode usar a referência do navegador de recursos / Juniper da Cisco para construir uma detecção usando o nome do modelo (se você souber quais dispositivos você tem em sua rede, na maioria das vezes você tem uma quantidade limitada de modelos), que será mais precisa, mas específico para sua rede.
A vantagem é que desta vez é genérico e não específico para uma marca e não há risco de detecção incorreta.
Como alternativa, convém usar um CMDB ou um software de inventário para preparar essas informações para uso posterior. Basta consultar o banco de dados para verificar se é um comutador ou um roteador.
fonte
Existem várias maneiras de fazer isso.
Minha primeira opção seria o SNMP, mesmo se você tiver que tentar várias strings. As chamadas são mais rápidas e menos vulneráveis a diferenças na versão do código. Você pode baixar uma cópia gratuita dos ventos solares e terminar em menos de uma hora. Também é muito mais fácil criar scripts de interação SNMP do que ssh / cli.
Em seguida, eu usaria algum tipo de wrapper esperado. Sou parcial com o material perl porque é mais estável e mais bem documentado. Você também pode escrever um script de expectativa e chamá-lo de python.
show version é o comando óbvio, mas pode ser diferente entre os dispositivos. Você tem uma lista das plataformas possíveis? Você pode usar expressões regulares para classificar a partir de uma lista de distribuição e, em seguida, colocar todo o resto em uma pilha desconhecida. Conforme você classifica as incógnitas, atualize seu script para encontrá-las automaticamente.
fonte