¿Cómo se estructura OpenFlow?

Ignoraré las “algunas implementaciones …”: los vendedores (y su personal de marketing) implementan lo que creen que sus clientes necesitan / comprarán, y luego lo etiquetan como lo dicta la moda …

Entonces, responderé esto sobre OpenFlow Itself. Se puede argumentar que OpenFlow es compatible con “L2”, pero no es compatible con BGP, por diseño. Puede usar un conmutador OpenFlow para implementar * el resultado de * algún programa que ejecute BGP, OSPF o cualquier otro protocolo de red que desee, y el conmutador OpenFlow no sabe ni le importa cuál (si alguno) usa.

OpenFlow es dos cosas

  1. Un modelo de manejo de paquetes por un conmutador: para ser un conmutador OpenFlow, la implementación debe ser capaz de llevar a cabo al menos las cosas obligatorias del modelo, y mejores implementaciones implementarán cosas opcionales
  2. Un protocolo para HABLAR SOBRE lo que un conmutador OpenFlow debe hacer o ha hecho a / con paquetes que lo pasan / lo pasarán.

El modelo de manejo de paquetes, en el fondo, es una secuencia (al menos una) de etapas de emparejar y actuar. En cada etapa, el conmutador combina una combinación de valores de los encabezados del paquete (y generalmente el puerto de ingreso) a una tabla de reglas. Cuando se encuentra una coincidencia (incluso si coincide con la línea predeterminada “nada más coincide”), la tabla de reglas le dice al conmutador qué acciones aplicar: generalmente son para reenviar el paquete a algún puerto de salida y hacer cambios en el paquete encabezados

Por lo tanto, si un conmutador puede coincidir con los valores del encabezado L2 (que es obligatorio) y tiene una acción ‘reenviar al puerto x’, puede implementar un conmutador L2. Si coincide con los valores del encabezado L3 y tiene acciones para quitar el encabezado L2 anterior, conecte un nuevo encabezado L2 y reenvíe al puerto x: puede implementar un conmutador L3 (es decir, un enrutador).

PERO: tenga en cuenta que el conmutador no decidió qué valores de encabezado van a qué puerto. No decidió qué puerto es la mejor ruta hacia un destino dado: un conmutador OpenFlow en su mayoría no DECIDE, OBEDECE.

Obedece las reglas que le puso el controlador.

El controlador puede tomar estas decisiones de la forma que desee, puede ejecutar BGP o consultar un horóscopo, todo es lo mismo para el Switch y no cambiará el contenido de los mensajes del protocolo OpenFlow que van del controlador al switch , que tendrá la forma “si el paquete coincide con el patrón X, haga esto con / con él”.

Espero que esto lo aclare, si no, hágame saber lo que todavía es vago aquí.