cancelar
Mostrar resultados para 
Pesquisar em vez de 
Queria dizer: 
cancel
305
Apresentações
3
Útil
0
Comentários

A automação de redes tem se tornado uma necessidade para engenheiros de redes que desejam aumentar a eficiência operacional, reduzir erros manuais e melhorar a escalabilidade da infraestrutura. Uma das ferramentas mais poderosas para automação de dispositivos Cisco é o NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support), uma biblioteca Python projetada para interagir com diversos equipamentos de rede de maneira padronizada.

 

O que é o NAPALM?

O NAPALM é uma biblioteca de automação de redes que fornece uma interface unificada para interagir com diferentes sistemas operacionais de dispositivos de rede, incluindo IOS, IOS-XE, NX-OS e IOS-XR da Cisco. Ele permite a obtenção de informações do dispositivo, configuração de comandos e comparação de estados de configuração de forma eficiente via ssh.

 

Vantagens do NAPALM

Suporte a múltiplos fornecedores: Além da Cisco, o NAPALM suporta outros vendors.

Facilidade de uso: Utiliza Python e possui uma API intuitiva.

Operações padronizadas: Independentemente do fornecedor, os comandos são padronizados.

Redução de erros manuais: Permite a aplicação de configurações de forma consistente.

Integração com outras ferramentas: Pode ser utilizado junto ao Ansible, Netmiko, Napalm-Logs e outras soluções de automação.

 

Instalando e Praticando com o NAPALM

Antes de começar, é necessário instalar o Python e a biblioteca NAPALM. Podes instalar o NAPALM utilizando o pip:

pip install napalm

 

A seguir, um exemplo de como utilizar o NAPALM para conectar-se a um roteador Cisco e obter informações básicas. Criei um ficheiro com o nome np_1.py

from napalm import get_network_driver

# Definir o driver para Cisco IOS
driver = get_network_driver("ios")

# Configuração do dispositivo
device = driver(
hostname="192.168.3.14",
username="silesio",
password="ccie65745",
optional_args={"port": 22}
)

# Conectar ao dispositivo
device.open()

# Obter informações gerais
device_info = device.get_facts()
print(device_info)

# Fechar conexão
device.close()

  

SilesiodeCarvalho_1-1740171695372.png

 

Outro exemplo prático de obtenção de informações de um dispositivo Cisco:

import json
from napalm import get_network_driver
driver = get_network_driver('ios')
device = driver('192.168.3.14', 'silesio', 'ccie65745')
device.open()

device_info = device.get_facts()
print (json.dumps(device_info, indent=4))

device.close()

 

SilesiodeCarvalho_2-1740171969993.png

 

Explicação do Script

Importa-se a biblioteca NAPALM.

Seleciona-se o driver apropriado para Cisco IOS.

Define-se o endereço IP, usuário e senha do dispositivo.

Estabelece-se a conexão e coleta-se as informações básicas.

Exibe-se os detalhes como hostname, versão do sistema operacional e interfaces.

Fecha-se a conexão com o dispositivo.

 

Para modificar configurações, podes aplicar a configuração diretamente ou criar um arquivo de configuração e aplicá-lo dinamicamente. Primeiro precisas habilitar ip scp no switch.

 

Exemplo de Script para Configuração

from napalm import get_network_driver

# Definir o driver para Cisco IOS
driver = get_network_driver("ios")

# Configuração do dispositivo
device = driver(
hostname="192.168.3.14",
username="silesio",
password="ccie65745",
optional_args={"port": 22}
)

device.open()
device.load_merge_candidate(config='hostname SW-1\ninterface loopback100\ndescription BINARY AVENUE ACADEMY')
device.commit_config()
device.close()
print("Configuração aplicada com sucesso!")

 

Para aplicar configuração a partir de um ficheiro, precisas garantir que o ficheiro esteja na mesma pasta em que tenhas o script python ou precisarás indicar o caminho absoluto da localização do ficheiro de configuração no código. No meu caso os ficheiros estão na mesma pasta.

Código python

from napalm import get_network_driver
driver = get_network_driver('ios')
iosvl2 = driver('192.168.43.144', 'silesio', 'ccie65745')
iosvl2.open()

iosvl2.load_merge_candidate(filename='ACL1.cfg')
iosvl2.commit_config()
iosvl2.close()
print("Configuração aplicada com sucesso!")

 

Ficheiro de configuração: ACL1.cfg

access-list 10 permit 192.168.43.0 0.0.0.255

 

 

Se houver erro na configuração, o NAPALM permite reverter facilmente e também possibilita a aplicação de configuração em vários dispositivos simultaneamente.

 

Conclusão

O NAPALM é uma ferramenta poderosa que facilita a automação de redes Cisco e de outros fabricantes. Com ele, podes obter informações, modificar configurações e garantir consistência na tua infraestrutura de rede de maneira eficiente.

Primeiros Passos

Encontre respostas, faça perguntas e conecte-se com nossa comunidade de especialistas da Cisco de todo o mundo.

Estamos felizes por você estar aqui! Participe de conversas e conecte-se com sua comunidade.