Automatizar Cisco con Python

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 v…


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 runpara 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


Print Share Comment Cite Upload Translate Updates
APA

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/

MLA
" » Automatizar Cisco con Python." Aleets Vaaz | Sciencx - Friday September 6, 2024, https://www.scien.cx/2024/09/06/automatizar-cisco-con-python/
HARVARD
Aleets Vaaz | Sciencx Friday September 6, 2024 » Automatizar Cisco con Python., viewed ,<https://www.scien.cx/2024/09/06/automatizar-cisco-con-python/>
VANCOUVER
Aleets Vaaz | Sciencx - » Automatizar Cisco con Python. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/09/06/automatizar-cisco-con-python/
CHICAGO
" » Automatizar Cisco con Python." Aleets Vaaz | Sciencx - Accessed . https://www.scien.cx/2024/09/06/automatizar-cisco-con-python/
IEEE
" » Automatizar Cisco con Python." Aleets Vaaz | Sciencx [Online]. Available: https://www.scien.cx/2024/09/06/automatizar-cisco-con-python/. [Accessed: ]
rf:citation
» Automatizar Cisco con Python | Aleets Vaaz | Sciencx | 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.

You must be logged in to translate posts. Please log in or register.