Administrar una red implica repetir a mano los mismos comandos equipo por equipo, una tarea tediosa y propensa al error cuando crece la cantidad de dispositivos. Este Informe USERS presenta Netmiko, la biblioteca de Python que abre sesiones SSH contra los equipos de red y automatiza ese trabajo con pocas líneas de código.
Autor: Claudio Bottini
Una capa práctica entre lo simple y lo complejo
Netmiko es una biblioteca de Python creada por Kirk Byers que simplifica las conexiones SSH (el protocolo que abre una sesión de comandos cifrada contra un equipo remoto) hacia dispositivos de red. Se apoya en Paramiko, la capa de más bajo nivel, y le resuelve los detalles molestos.
Mientras Paramiko obliga a manejar a mano el prompt y el modo privilegiado, Netmiko conoce cada fabricante, desactiva la paginación y devuelve el texto ya limpio. Por encima quedan proyectos más ambiciosos como Napalm o Nornir, pero para las tareas de todos los días Netmiko resulta más cómodo.
La pieza central es el device_type, la etiqueta que le indica a la biblioteca contra qué clase de equipo habla. Hay más de cien tipos soportados, de cisco_ios a mikrotik_routeros, y es casi lo único que cambia entre fabricantes. El resto del programa se escribe igual, así que un script aprendido en un equipo modesto se lleva casi sin cambios a uno de marca.

Por encima de Netmiko existen proyectos más ambiciosos como Napalm, que ofrece una interfaz unifi cada para obtener datos ya estructurados de distintos fabricantes, o Nornir, un framework de trabajo pensado para orquestar tareas sobre cientos de equipos en paralelo. Netmiko queda en un punto muy cómodo: es más simple que esos modelos avanzados y más práctico que Paramiko puro. Para aprender, respaldar confi guraciones o hacer cambios controlados, suele ser exactamente lo que necesitamos.
Un laboratorio sin gastar en equipos
Uno de los puntos fuertes del texto es que se puede aprender sin comprar hardware. La opción más parecida a un equipo real es el CHR de MikroTik, el mismo RouterOS de los routers físicos empaquetado como máquina virtual gratuita para VirtualBox u otros virtualizadores.
La vía más doméstica usa el device_type linux contra una Raspberry Pi, una PC con Linux o un router con OpenWrt. En ese caso Netmiko envía órdenes de shell, y un equipo que ya tenemos en casa se convierte en un banco de pruebas perfectamente válido.
El detalle que importa es que ese laboratorio corre el mismo software que un entorno de producción. Por eso las pruebas caseras valen tanto: permiten ensayar cambios, provocar errores y recuperar configuraciones sin riesgo de romper la red que está en uso.

La instalación de Netmiko demora unos minutos ya que incorpora dependencias, como librerías de criptografía y seguridad, relacionadas con los métodos de conexión usados en redes.
Del respaldo automático al control de errores
El primer proyecto útil es el respaldo automático de configuraciones. Con un bucle que recorre una lista de equipos, cada uno exporta su configuración a un archivo fechado. Programado para correr de noche, deja un histórico sin que nadie tenga que acordarse de hacerlo.
Netmiko también configura. El método send_config_set envía una lista de comandos y se ocupa de entrar y salir del modo de configuración. Así, cambiar un parámetro en cincuenta equipos pasa de ser una tarea de una hora a un script de segundos, aunque conviene probarlo antes en el laboratorio.
Para tomar decisiones automáticas, la salida en texto plano no alcanza. Con el parámetro use_textfsm, Netmiko convierte esa respuesta en datos estructurados: una lista de registros con campos nombrados que un bucle puede recorrer para detectar, por ejemplo, las interfaces caídas.
El cierre pasa por prever las fallas. Envolver la conexión en un bloque try/except permite distinguir si un equipo no respondió o si rechazó las credenciales, y seguir con el resto de la lista en vez de abortar. Como recomendación que atraviesa todos los ejemplos, las contraseñas nunca deberían escribirse dentro del código, sino leerse desde variables de entorno o un archivo aparte.

Si entramos a alguno de los equipos podemos ver aplicados los cambios, en este caso los DNS confi gurados adecuadamente.
Encuentra la versión completa de la publicación en la que se basa este resumen, con todos los detalles técnicos en RedUSERS PREMIUM
También te puede interesar:
STREAMLIT APLICACIONES WEB CON PYTHON
Convertir un script de Python en una herramienta que otros puedan usar suele exigir una capa de programación web. Este Informe USERS muestra cómo Streamlit saltea ese paso: permite construir interfaces interactivas desde Python puro y abrirlas en el navegador, a través de ejemplos que van del control más simple a una aplicación completa.

Lee todo lo que quieras, donde vayas, contenidos exclusivos por una mínima cuota mensual. Solo en RedUSERS PREMIUM: SUSCRIBETE!



