¿Qué son las redes definidas por software? (SDN)
El diseño e implementación de redes es una tarea costosa y compleja cuando se trata de redes físicas. Las empresas necesitan dedicar mucho esfuerzo e inversión económica para mantenerlas al día, para que respondan a sus necesidades. Incluso así, es común que las redes no respondan a los requisitos en cada momento, más aún en el momento actual en el que la aparición de más y más máquinas y dispositivos a los que atender es prácticamente constante. Aquí es dónde entran en juego las SDN.
SDN son las siglas de Software Defined Networking o Redes Definidas por Software en español. Básicamente permite llevarse la complejidad de configuración de las redes al plano del software, por lo que éstas pueden ser programadas, lo que ayuda a resolver los problemas de las redes físicas, adaptarse a las demandas en cada momento y abaratar los costes operacionales.
En este post pretendemos explicar de una manera clara qué es SDN, cuáles son los motivos por los que esta tecnología está adquiriendo tanto peso y cómo el protocolo OpenFlow ha sido capaz de abrir las puertas a las redes definidas por software.
¿Cuáles son los problemas de las redes convencionales?
Las redes convencionales basadas en dispositivos de hardware presentan varias limitaciones, lo que provoca que sean incapaces de resolver los requisitos de las empresas.
- A pesar que los protocolos de red han mejorado, están pensados para resolver problemas específicos y no son capaces de trabajar de modo global. Para que las redes funcionen como se desea, es necesario configurar una enorme cantidad de dispositivos de manera separada.
- Cuando las necesidades de las redes son muy cambiantes se convierte en una tarea compleja para los administradores de red, lo que limita considerablemente la escalabilidad.
- El coste de los equipamientos se dispara en la medida que las redes cambian. Obtener estos equipos no es inmediato, depende de la disponibilidad del hardware y requiere inversión.
- Los sistemas de virtualización y el cloud computing (cómputo en la nube) facilitan enormemente la creación de nuevas máquinas, a las que es necesario atender. Sin embargo, las redes físicas son incapaces de cubrir de manera dinámica esta demanda.
¿Cómo solucionan estos problemas las redes SDN?
Las redes definidas por software solucionan estos problemas de manera programática, por lo que pueden ser definidas de una forma adaptable a cada instante.
En SDN se realiza una separación entre el plano de control (la lógica de reenvío de paquetes, solucionada por software) del plano de datos (implementado por el hardware que realiza la transmisión). En un esquema convencional, el plano de control se implementa por medio del firmware del hardware de los dispositivos de red, con lo que existe un acoplamiento muy fuerte entre el software y el hardware. Por su parte, en SDN existe una separación completa entre el plano de control y el plano de datos, ya que son máquinas distintas los que los llevan a cabo.
Para que los sistemas continúen funcionando en las SDN ambos planos requieren una estrecha colaboración. Para que esta comunicación sea posible, en medio de los dos planos se encuentra una interfaz de programación de aplicaciones (API), que ofrece la posibilidad de acceder desde el plano de control al plano de datos, e interactuar por medio del software. Este API podría ser implementado por diversas tecnologías pero actualmente el protocolo OpenFlow ha sido acogido como un estándar de desarrollo para la implementación de SDN.
OpenFlow es un protocolo abierto de comunicaciones desarrollado por la Open Networking Foundation, que permite de manera algorítmica decidir cómo debe de ser realizado el reenvío de paquetes por medio de los dispositivos físicos como los switches. Gracias a OpenFlow es posible realizar la separación necesaria entre planos, de modo que las SDN se puedan implementar.
¿Cuáles son los beneficios alcanzados mediante SDN?
Gracias a SDN se obtienen diversos beneficios:
- Reduce la necesidad de nuevo hardware para adaptarse a las necesidades de las redes, lo que limita considerablemente la inversión.
- Permite un control programático de los elementos de la red, de modo que mediante código se pueden establecer reglas de manera sencilla, lo que aumenta considerablemente la versatilidad de las soluciones.
- Disminuye la necesidad de intervención humana cuando cambian las condiciones de red, lo que permite que las soluciones sean flexibles y requieran menos tiempo para adaptarse a las nuevas demandas.
En definitiva, SDN es un patrón de creación de redes innovador, que soluciona los problemas de las empresas y, sobre todo, el nuevo modelo de creación de infraestructura del cloud computing. En la medida que SDN consigue solucionar los problemas más representativos del diseño e implementación de redes, su aplicación está siendo cada vez más habitual. Gracias a SDN es posible atender las demandas actuales en comunicaciones, especialmente útil en la era del cloud, manteniendo su coste reducido.