Tendo apenas acesso ssh, determine se o dispositivo é roteador ou um switch (Cisco e Juniper)

3

Existem alguns dispositivos Cisco e Juniper em nossa rede que eu preciso fazer um script python para determinar o que eles são: switches ou roteadores.

Eu tenho acesso ssh, então posso show version e analisar 'JUNOS' ou 'Cisco' para descobrir o fornecedor. Mas eu não sei como descobrir se o dispositivo é um roteador, switch ou outra coisa.

Obrigado pela sua ajuda!

    
por pr1va 02.01.2013 / 14:58

3 respostas

3

Pode ser muito difícil dizer, porque muitos modelos comercializados como um switch terão funções de roteamento inclusas, e você também pode ter casos em que roteadores estão sendo usados como switches - ou seja, eles não estão roteando tráfego. Portanto, mesmo que você consiga descobrir a capacidade de um dispositivo, realmente quer saber sua função na sua rede.

Você pode ter muitos dispositivos, mas provavelmente não possui muitos modelos diferentes, portanto, analisar manualmente a saída de 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, você terá que examinar as configurações e descobrir o que cada dispositivo está realmente configurado para fazer.

    
por 02.01.2013 / 15:27
1

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, você pode ter o CDP desativado em sua rede.

O melhor seria verificar se as interfaces Vlan estão presentes (significa um dispositivo comutável) e se existem interfaces do tipo fastEthernet X / X / X (provavelmente um roteador comutável).

Usando esses dois fatos, você obtém uma ideia bastante precisa do que é o dispositivo, mas é específico da Cisco.

Você também pode usar a referência do Cisco feature navigator / Juniper 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 preciso, 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 uma detecção incorreta.

Alternativamente, você pode querer usar um CMDB ou um software de inventário para preparar esta informação para uso posterior, então você teria apenas que consultar seu banco de dados para verificar se há um switch ou um roteador.

    
por 02.01.2013 / 16:14
0

Existem muitas maneiras de fazer isso.

Minha primeira escolha seria o SNMP, mesmo que você tenha 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 de 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. Eu sou parcial para o material perl porque é mais estável e mais bem documentado. Você também pode escrever um script de espera e chamá-lo de python.

show version é o comando óbvio, mas pode diferir entre dispositivos. Você tem uma lista das possíveis plataformas? Você pode usar regexes para classificar de uma lista de opções e depois colocar todo o resto em uma pilha desconhecida. Conforme você classifica os desconhecidos, atualize seu script para encontrá-los automaticamente.

    
por 28.06.2014 / 01:52