sábado, 17 de agosto de 2013

SDN a pelo, amañada, pero funcional

Desde que leí la primera vez sobre SDNs pensé que muchas de las funciones básicas de "pushing" scheduleado de configuraciones de red se pueden hacer de modo bastante simple si es que los equipos de red tienen SSH+SCP, como es el caso de muchos Cisco.

Tenés que tener key SSH (o un script wrapper basado en expect, para que le pase la passwd al equipo luego del login), y luego vas "pusheando" los cambios que necesités, claro es mucho más manual que hacerlo vía APIs.

Por ejemplo, la idea es que podés hacer cosas simples fácilmente: configurar que todos los días, de 8 a 13 y de 17 a 21, todos los puertos de la red tengan el nivel más bajo de seguridad, y que en otro horario, la seguridad de los puertos sea máxima, inclusive que todos los puertos de estaciones de trabajo estén "down" (apagados), fuera del horario de trabajo.

Básicamente necesitás un SO que te permita schedulear dos scripts, uno que suba (y aplique) cada configuración, en el horario apropiado. Y otro que haga lo mismo, con otra configuración.

Tu scripting va a tener que manejar un juego completo de configuraciones "base", u "originales", las están activas en los equipos de red. Luego en el horario apropiado, el otro script se conecta a todos los equipos de red, copia la otra configuración, la activa, y la pone en producción.

En realidad, podés desarrollar un solo script y pasarle como parámetro un archivo de configuración completa para cada equipo de red, con los parámetros que quieras modificar cambiados en esos archivos, el script simplemente los va a "pushear" a los equipos y los va a poner en producción.

No sería mucho pedir también, incorporar un mínimo manejo de errores en los scripts:

- Volcar todo el trabajo a logs.
- Verificar luego de la aplicación qué configuración está online, en qué equipos, desde qué hora.
- Enviar correos de aviso en caso de cualquier fallo.


La idea central de todo esto es que la noción de "SDN" se podría poner a funcionar "a caballo" de una infraestructura de red tradicional, que no soporta en hardware ninguna API ni estándar de SDN formal, y ello utilizando recursos fáciles de conseguir, e implementandolo de un modo relativamente muy sencillo.

Vualá: "SDN" a pelo, sin APIs, ni siquiera requiriendo soporte en hardware :-)

No hay comentarios: