OpenFlow es un protocolo de comunicación que permite a los controladores de red (controladores SDN) interactuar directamente con los dispositivos de red (como switches y routers), para controlar cómo se deben gestionar los paquetes de datos que atraviesan la red.
Es uno de los componentes fundacionales del paradigma SDN (Software-Defined Networking).
Al final del artículo encontrarás un pequeño test que te permitirá evaluar los conocimientos adquiridos en esta lectura
¿Qué es OpenFlow?
OpenFlow es un protocolo estándar desarrollado por la Open Networking Foundation (ONF), que separa el plano de control del plano de datos en los dispositivos de red. Esto permite a los controladores SDN externos gestionar remotamente el comportamiento del tráfico en la red, a través de instrucciones explícitas enviadas a los switches OpenFlow.
En términos simples:
- El switch OpenFlow recibe paquetes.
- El controlador OpenFlow le indica cómo procesarlos (reenviar, descartar, modificar, etc.).
- Se basa en reglas llamadas flow entries o entradas de flujo, organizadas en tablas de flujo.
Arquitectura de OpenFlow
La arquitectura de OpenFlow se basa en tres componentes clave:
A. Switch OpenFlow (Plano de Datos)
- Dispositivo que reenvía los paquetes según las instrucciones.
- Contiene tablas de flujo: listas de reglas que describen cómo tratar los paquetes.
- Cada regla incluye:
- Coincidencias (match): condiciones basadas en cabeceras del paquete.
- Acciones (actions): qué hacer si hay coincidencia (forward, drop, etc.).
- Contadores (counters): estadísticas del flujo.
B. Controlador OpenFlow (Plano de Control)
- Software que toma decisiones de enrutamiento y las envía al switch.
- Administra de forma centralizada múltiples dispositivos de red.
- Puede ejecutar algoritmos avanzados de tráfico, seguridad o balanceo de carga.
C. Protocolo OpenFlow
- Es el lenguaje de comunicación entre el switch y el controlador.
- Usa mensajes para:
- Instalar/modificar/eliminar reglas de flujo.
- Consultar estadísticas.
- Notificar eventos como paquetes sin coincidencia.
Funcionamiento Básico
- Un paquete llega al switch OpenFlow.
- El switch verifica si existe una regla coincidente en su tabla de flujo.
- Si existe: ejecuta la acción (ej. reenviar por un puerto).
- Si no existe: puede enviar el paquete al controlador (mensaje Packet-In).
- El controlador analiza el paquete y envía una instrucción (mensaje Flow-Mod) con una nueva regla.
- El switch actualiza su tabla de flujo con la nueva entrada.
- Los siguientes paquetes del mismo flujo ya no requieren consulta al controlador.
Estructura de una Regla (Flow Entry)
Cada entrada en la tabla de flujo contiene:
- Match Fields: valores como IP de origen, destino, puerto TCP, VLAN, MAC, etc.
- Priority: prioridad de la regla.
- Counters: número de paquetes/bytes procesados.
- Actions: por ejemplo, reenviar al puerto 3, modificar la cabecera, o enviar al controlador.
- Time-outs: tiempo de expiración de la regla si no se usa.
Ventajas de OpenFlow
- Centralización del control de red.
- Automatización: fácil integración con scripts y software inteligente.
- Gran visibilidad del tráfico: el controlador tiene una visión global.
- Flexibilidad: posibilidad de probar nuevas arquitecturas o algoritmos de red.
- Ahorro de costos: reduce la dependencia de hardware propietario.
Desventajas o desafíos
- Complejidad de implementación.
- Cuellos de botella si el controlador se sobrecarga.
- Requiere switches compatibles con OpenFlow.
- Escalabilidad limitada en grandes redes si no se diseña correctamente.
Casos de uso de OpenFlow
Caso de uso | Descripción |
Redes definidas por software | SDN usa OpenFlow como su primer estándar de control sobre switches. |
Balanceo de carga dinámico | El controlador puede redirigir tráfico según carga en tiempo real. |
Segmentación de red | Permite implementar políticas de aislamiento por usuario o aplicación. |
Laboratorios de investigación | Ideal para probar nuevas ideas de ruteo y switching. |
Redes académicas | Universidades usan OpenFlow para proyectos experimentales. |
Versiones y evolución
Versión | Mejoras destacadas |
1.0 | Base funcional: coincidencias simples, acciones básicas. |
1.1 | Soporte para múltiples tablas. |
1.3 | Coincidencias más granulares, grupos, y métricas. |
1.4+ | Mejoras en rendimiento, monitorización y control granular. |
OpenFlow en el contexto de SDN
OpenFlow fue el primer protocolo ampliamente adoptado para SDN, pero con el tiempo han surgido otros enfoques, como:
- NETCONF + YANG
- P4 (lenguaje de programación de planos de datos)
- gRPC con OpenConfig
Sin embargo, OpenFlow sigue siendo una piedra angular para la comprensión de las redes programables.
Implementaciones y proyectos relacionados
- Controladores populares OpenFlow:
- ONOS (Open Network Operating System)
- Ryu (escrito en Python)
- OpenDaylight
- Switches y plataformas:
- Switches compatibles de HP, NEC, Open vSwitch (OVS), etc.
- Proyectos destacados:
- GENI, Floodlight, Mininet (simulador SDN/OpenFlow)
Conclusión
OpenFlow representa un cambio de paradigma en el diseño de redes, permitiendo que el control de red sea programable, centralizado y dinámico. Aunque hoy en día no es el único enfoque en redes SDN, sigue siendo fundamental para entender cómo se construyen las redes modernas controladas por software.
Breve cuestionario de conocimientos
¿Qué te pareció este artículo?
¿Te atreves a evaluar tus conocimientos aprendidos?
Libros recomendados para éste artículo
(Book) Networking with MikroTik RouterOS: A Practical Approach to Understanding and Implementing RouterOS
Study material for the MTCNA Certification Course, updated to RouterOS v7
Libro Switching y Brindging RouterOS v7
Material de estudio para el Curso de Certificación MTCSWE actualizado a RouterOS v7










