El concepto de SDN (redes definidas por software) es clave para las redes del presente y del futuro. Es la base que nos permitirá construir y operar redes que puedan escalar a los niveles necesarios en los próximos años, las que automatizarán la creación de nuevos servicios y simplificarán el aseguramiento. Pero como ocurre frecuentemente en la historia de la tecnología, las ideas se tienen que ir transformando para adecuarse a las necesidades y las posibilidades reales en las que son útiles. Existen numerosos ejemplos de enormes expectativas que terminaron, casi, en el olvido. Pero cuando ocurre esto no tenemos que perder de vista en el aprendizaje y los conceptos clave que estaba atrás de esas ideas y que son fundamentales para el progreso.
Pero ¡cómo! ¿Qué paso que no me enteré?
Hace un par de años, en 2019, Gartner publicó su famoso “hype” para las tecnologías emergentes. Es un gráfico en donde las tecnologías que recién aparecen trepan por una ladera sumamente empinada de expectativas crecientes. Después de algún tiempo llegan a un pico, el hype. Es en donde la idea está en boca de todos y en donde están claramente sobre valuadas. No puede sino, al tiempo, comenzar a caer (casi a la misma velocidad en la que subió) en un abismo de desilusión. No pueden generar los resultados que todos esperábamos y pronto casi todos los que la llevaron a la cima comienzan a sentir que es hora de olvidarse de ellas. Pero las ideas mas resistentes, de a poco, comienzan a consolidarse y lentamente van llegando, a veces después de algunos años, a una meseta productiva, o “plateau” en donde comienzan a aportar parte de su potencial a la realidad.
Esto pasa con muchas de las iniciativas emergentes del diagrama de Gartner, pero en en el caso de SDN, en el informe redes para empresas de 2019 se puede ver:
SDN es una idea que quedó obsoleta antes de llegar a convertirse en una realidad. ¿Esto es realmente así? en el resto del artículo veremos como surgió la idea y la necesidad, como fue evolucionando y que es lo que quedó obsoleto antes de volverse una realidad. Pero también veremos que al día de hoy sigue siendo una idea clave.
Las primeras ideas aparecieron a principios de los 70s, cuando la telefonía comenzaba a hacerse digital. Pero el desarrollo mas importante vino para la primera década de los 2000s. Los impulsaban sueños, como lograr que los fabricantes de tecnología fueran estándar, lograr separar el plano de datos o de usuario, de la capa de control, el estar preparados para un crecimiento acelerado en la cantidad de dispositivos conectados a la red. A esto se sumó la simplicidad operativa, la posibilidad de tener una descripción formal y la posibilidad de evolucionar a medida que aparecían mejores algoritmos de ruteo o de control. Una de las posibilidades, en las que algunos operadores estaban interesados, era evitar el llamado vendor lock-in, es decir, la dependencia de los fabricantes, gracias al uso de protocolos estándar para relacionar las funciones en las que separaban los equipos de red.
No tenemos que olvidarnos de uno de los conceptos mas importantes que aparecieron al ir gestando la idea de SDN: la programabilidad, es decir, la posibilidad de ejecutar código o aplicaciones que controlen el funcionamiento del sistema y permitan, entre otras cosas, automatizarlo. Con esto software el usuario puede cambiar y ajustar el funcionamiento de los equipos de red.
El concepto de SDN se basa, primero, en separar el plano de control (que es en donde se decide como manejar el tráfico), del plano de datos (que es por donde pasa el tráfico siguiendo las reglas del plano de control). Segundo se unifican los planos de control en solo uno, del que dependen todos los planos de datos. En este modelo la lógica de control se ejecuta en una entidad externa llamada “Controlador SDN” sobre el que corren las aplicaciones que le dan programabilidad al sistema.
Resumiendo los concepto centrales:
- Separación del plano de datos (también llamado de usuario) del plano de control (ahora se le llama CUPS, Control and User Plane Separation, sobre todo en el mundo de las tecnologías móviles y 5G)
- Integración del plano de control (varios planos de datos comparten un único plano de control)
- Programabilidad y desagregación de funciones
- APIs estándar (o conocidas) en las interfaces
- Las reglas de negocio participan en el funcionamiento de la red
- Los nodos forman parte de un todo integrado por medio de las aplicaciones de red
Con esta nueva forma de organizar los sistemas de red aparecen algunas entidades a tener en cuenta:
- El plano de control (centralizado) queda en el controlador SDN, que habla en un lenguaje estándar hacia los elementos de red de la capa de datos y permite ejecutar aplicaciones para aprovechar la programabilidad del sistemas. El controlador SDN es en donde reside el sistema operativo de red y sobre el cuál corren las aplicaciones nombradas anteriormente. Algunos ejemplos abiertos son ONOS y OpenDayLight (ODL).
- En la capa de datos deben colocarse dispositivos que entiendan el lenguaje que habla el controlador SDN, por ejemplo OpenFlow. A estos dispositivos, normalmente, se los llama “cajas blancas”, cuando soportan protocolos estándar y son programables desde controladores genéricos.
Uno de los conceptos mas interesantes de SDN es que abre la posibilidad a que los distintos componentes del sistema sean provistos por fabricantes diferentes: digamos uno provee el hardware de la infraestructura de red presente en la capa de datos, otros implementan los controladores SDN y las aplicaciones de red comienzan a comportarse como software y pueden comenzar a ser desarrollados por fabricantes sumamente especializados en las funciones de las que se ocupan. Por otro lado, en la mayoría de los casos, el controlador SDN y sus aplicaciones, es decir la capa de control y de management pueden virtualizarse y correr sobre procesadores de propósito general y el ecosistema de nube sobre la que se ejecuta el resto del mundo del software. Incluso, en algunos casos, es posible que la capa de usuario también esté virtualizada sobre hardware de propósito general.
Acá en en donde comienzan los problemas. Esto no ocurrió de la manera esperada. Los grandes fabricantes de software adoptaron la idea pero no utilizaron protocolos estándar ni controladores genéricos viendo en riesgo su modelo de negocios amenazado por la desagregación. Tal es así que hoy en día es posible que algunos utilicen cajas blancas pero el software es claramente propietario, pero la mayoría trabaja con estos conceptos, pero de una manera totalmente cerrada.
Pero no todo es malo, los conceptos construidos durante la creación del SDN hoy permiten, aunque el proveedor sea propietario, aprovechar muchas de las ventajas imaginadas inicialmente:
- La separación de la capa de datos (también llamada de “usuario”) y de control, la programabilidad y las posibilidades de virtualización hacen que la red sea mas fácil de operar, esté basada principalmente en software y corra sobre infraestructura estándar de IT, incluso en la nube privada o pública.
- Posibilita una mayor flexibilidad y versatilidad a la vez que reduce mucho el time-to-market.
- Permite utilizar modelos de costos mucho mas flexibles y licenciables, típicos de la industria del software.
- Simplifica la automatización permitiendo llegar a niveles inesperados que nos permiten pensar en redes autónomas, al menos para alguna de sus funciones.
- Es un habilitador para el slicing, creando redes virtuales que comparten la misma infraestructura, pero para servicios orientados a distinto tipo de clientes: residenciales, corporativos, de baja latencia, etc.
- Finalmente está dando lugar a la aparición de nuevos participantes en el negocio de la red, que nacieron del mundo del “Open Source”. Estos fabricantes normalmente no participan de todas las capas y funciones y les permite colaborar y ser muy especializados en el segmento de negocio que eligieron.
Posiblemente estos nuevos actores sean el futuro de las tecnologías de red, pero todavía hay que esperar para emitir una conclusión. Hay varios ejemplos interesantes para analizar, pero eso será tema de otro artículo.
¡SDN ha muerto: Que viva SDN!
Autor: Ing. Gabriel Carro (gcarro@stechs.io)
Algunas de las referencias consultadas:
[1] N. Anerousis, P. Chemouil, A. A. Lazar, N. Mihai and S. B. Weinstein, “The Origin and Evolution of Open Programmable Networks and SDN,” in IEEE Communications Surveys & Tutorials, vol. 23, no. 3, pp. 1956–1971, thirdquarter 2021, doi: 10.1109/COMST.2021.3060582.
[2] Nick Feamster, Jennifer Rexford, and Ellen Zegura. 2014. The road to SDN: an intellectual history of programmable networks. SIGCOMM Comput. Commun. Rev. 44, 2 (April 2014), 87–98. DOI:https://doi.org/10.1145/2602204.2602219
[3] David Espinel Sarmiento, Adrien Lebre, Lucas Nussbaum, Abdelhadi Chari. Decentralized SDN Control Plane for a Distributed Cloud-Edge Infrastructure: A Survey. Communications Surveys and Tutorials, IEEE Communications Society, Institute of Electrical and Electronics Engineers, 2021, IEEE Communications Surveys & Tutorials, 23 (1), pp.256–281. 10.1109/COMST.2021.3050297. hal-03119901
[3] O. Salman, I. H. Elhajj, A. Kayssi and A. Chehab, “SDN controllers: A comparative study,” 2016 18th Mediterranean Electrotechnical Conference (MELECON), 2016, pp. 1–6, doi: 10.1109/MELCON.2016.7495430.
[4] D. Kreutz, F. M. V. Ramos, P. E. Veríssimo, C. E. Rothenberg, S. Azodolmolky and S. Uhlig, “Software-Defined Networking: A Comprehensive Survey,” in Proceedings of the IEEE, vol. 103, no. 1, pp. 14–76, Jan. 2015, doi: 10.1109/JPROC.2014.2371999.
[5] Luke O’Neill, Executive Editor, “Gartner Hype Cycle deems software-defined networking obsolete”, August 2019, https://www.techtarget.com/searchnetworking/feature/Gartner-Hype-Cycle-deems-software-defined-networking-obsolete. Last consulted Sep 20, 2021.