python para redes #1 - SSH 🐍

A forma mais simples de se conectar a um dispositivo Cisco usando Python é via telnet, e no primeiro artigo dessa série fizemos esse procedimento, se você ainda não viu é só clicar aqui.

Entretanto em muitos dos ambientes o telnet não é mais utilizado, então mesmo sendo legal começar aprendendo a biblioteca do telnet, nesse artigo o método usado é o SSH, com a biblioteca Netmiko.




Estrutura do laborátório

Novamente usei o GNS3 para montar o lab. Esse lab consiste basicamente em:

  • Cloud NAT para servir como DHCP server da rede (192.168.122.0 /24)
  • Um dispositivo final com Ubuntu 18.04 instalado para executarmos o Python.
  • Switch apenas para interligar os devices
  • Um router que vamos usar para aplicar as configurações com o Python com interface g0/0 de IP 192.168.122.254/24.




Sobre a biblioteca Netmiko
De Kirk Byers

A biblioteca Netmiko simplifica o gerenciamento de SSH para dispositivos de rede e é baseada na biblioteca Paramiko, maiores informações sobre a biblioteca e modos de uso podem ser encontrados acessando o link abaixo:

https://pynet.twb-tech.com/blog/automation/netmiko.html

Primeiro vamos habilitar o SSH no roteador, já fizemos um artigo
aqui no blog dessa configuração:




E no nosso linux vamos instalar o netmiko:



Beleza, agora vamos usar o script abaixo para via SSH executar o comando para exibir as interfaces do roteador:



É só pegar o código acima e salvar em um arquivo de texto no nosso linux, eu salvei como conecta.py
Você pode mudar o endereço IP para o endereço IP do seu lab e também alterar o nome de usuário e a senha.



Agora vamos executar o script e vamos ter como saída as interfaces do roteador, direto no nosso linux:


Muito legal né?!

Se quiser que seja exibido apenas a(s) interface(s) habilitada(s), você pode mudar a linha abaixo no script assim:
print(connection.send_command('show ip int brief | exclude una'))

E assim, só as interfaces ativadas serão exibidas ao executar o script:



Esse é um tópico que estou estudando e particularmente estou achando muito interessante, então vou seguir estudando ele e em breve teremos mais conteúdos sobre esse tema no blog, você pode segur esses passos e executar isso aí também!


Abraços,


Max

📧 contato@maxaddress.com.br
ℹ️ linkedin.com/in/maxwlima

Referências:

Netmiko Library https://pynet.twb-tech.com/blog/automation/netmiko.html
Netmiko Python Tutorial - Connecting to Cisco Router and Running Commands - Roger Perkin https://www.youtube.com/watch?v=NSnrvVhbuy8