This content originally appeared on DEV Community and was authored by Aleets Vaaz
La automatización de dispositivos de red, como routers y switches Cisco, se puede lograr fácilmente utilizando Python con la librería Netmiko, diseñada para manejar conexiones SSH de forma sencilla. A continuación, te muestro dos scripts básicos para visualizar la configuración de un dispositivo Cisco y para automatizar la creación y configuración de VLANs.
1. Script para ver la configuración de un dispositivo Cisco (router):
from netmiko import ConnectHandler
ssh=ConnectHandler(
device_type="cisco_ios",
host="192.168.0.10",
port=22,
username="cisco",
password="cisco"
)
out=ssh.send_command("show run")
print(ssh.find_prompt())
print("show run:\n"+out)
Funcionamiento:
- Importación de Netmiko: Se importa la clase
ConnectHandler
para manejar la conexión SSH. - Conexión SSH: Utilizando la IP, el puerto y las credenciales del dispositivo Cisco, se crea una conexión.
- Ejecución de comandos: Se envía el comando
show run
para obtener la configuración actual del dispositivo. - Impresión del prompt: Se imprime el prompt del dispositivo, que indica que la conexión sigue activa.
- Visualización de la configuración: El resultado del comando se imprime mostrando la configuración en ejecución.
Este script es útil para realizar consultas rápidas de configuración en dispositivos Cisco de manera automatizada.
2. Script para crear, configurar y asignar direcciones IP a VLANs:
from netmiko import ConnectHandler
ssh = ConnectHandler(
device_type="cisco_ios",
host="192.168.10.2",
port=22,
username="womar1",
password="womar"
)
ssh.enable()
comandos = [
"hostname uwu",
"vlan 10",
"interface vlan 10",
"ip address 192.168.2.1 255.255.255.0",
"no shutdown",
'interface range fa0/1 - 5', # Corrección aquí
"switchport mode access",
'switchport access vlan 10',
"vlan 20",
"interface vlan 20",
"ip address 192.168.3.1 255.255.255.0",
"no shutdown",
'interface range fa0/6 - 10', # Corrección aquí
"switchport mode access",
'switchport access vlan 20',
"vlan 10",
"interface vlan 30",
"ip address 192.168.4.1 255.255.255.0",
"no shutdown",
'interface range fa0/11 - 15', # Corrección aquí
"switchport mode access",
'switchport access vlan 30',
"vlan 10",
"interface vlan 40",
"ip address 192.168.5.1 255.255.255.0",
"no shutdown",
'interface range fa0/16 - 20', # Corrección aquí
"switchport mode access",
'switchport access vlan 40',
"vlan 50",
"interface vlan 50",
"ip address 192.168.200.1 255.255.240.0",
"no shutdown",
'interface range fa0/21 - 22', # Corrección aquí
"switchport mode access",
'switchport access vlan 50',
]
ssh.send_config_set(comandos)
configuracion = ssh.send_command("show run")
comands = ssh.find_prompt()
print(comands)
print("show run:\n" + configuracion)
Funcionamiento:
- Conexión y modo privilegiado: Se establece una conexión SSH y se cambia al modo privilegiado con
ssh.enable()
. - Lista de comandos: Se crean varias VLANs, se asignan interfaces y direcciones IP a estas VLANs, y se configuran los puertos en modo de acceso (
switchport mode access
). - Aplicación de la configuración: Los comandos se envían en bloque con
ssh.send_config_set()
. - Verificación de la configuración: Se utiliza el comando
show run
para obtener la configuración actual del dispositivo. - Impresión del resultado: Se imprime el prompt del dispositivo y la configuración resultante.
Este script es ideal para automatizar la configuración de VLANs y asignar IPs a interfaces, facilitando la administración de redes complejas de manera rápida y eficiente.
This content originally appeared on DEV Community and was authored by Aleets Vaaz
Aleets Vaaz | Sciencx (2024-09-06T03:17:17+00:00) Automatizar Cisco con Python. Retrieved from https://www.scien.cx/2024/09/06/automatizar-cisco-con-python/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.