Hace ya tiempo hice referencia a los diferentes planos
que componen un dispositivo de red: control, gestión y datos. El plano
de control define cómo se debe realizar el reenvío de tráfico mientras
que el plano de datos se ocupa de ejecutar ese reenvío. Este es un concepto básico para poder comprender a qué nos referimos cuando hablamos de SDN. En
el modelo tradicional la red es concebida como un conjunto de
dispositivos independientes en el que cada unidad toma las decisiones de
reenvío de tráfico de acuerdo a la información interna que posee.
Hablamos de la red como una unidad, pero en la realidad no es más que un
conjunto de dispositivos individuales trabajando de modo coordinado.
En
el modelo tradicional el plano de control de cada dispositivo
individualmente interactúa con el plano de datos de ese dispositivo para
indicarle cómo debe reenviar los datos.
SDN
cambia completamente ese paradigma ya que la propuesta es ahora operar
la red como una unidad, como un todo.
En este modelo el plano de control
de desacopla del plano de datos y opera de modo centralizado en un
dispositivo (controlador) que tiene la visión íntegra de la red; el
controlador es el que interactúa con los dispositivos individuales para
indicarles cómo realizar el reenvío de tráfico. Controlador y
conmutadores (los dispositivos que se ocupan del reenvío de tráfico) se
comunican entre sí utilizando un protocolo estándar.
La
comunicación entre controlador y conmutadores es bidireccional: el
controlador envía instrucciones a los dispositivos al mismo tiempo que
recoge información generada por ellos. Este esquema también recibe la
denominación de "plano de control centralizado" (centralized control
plane). Esa
operación requiere una interfaz a través de la cual el controlador se
comunica con los dispositivos, esta interfaz recibe la denominación
genérica de API (Application Programming Interface) y en este caso en
que comunica el controlador con los dispositivos es una southbound API o
SBI (SouthBound Interface). Cisco
Systems tiene su propio desarrollo SDN que recibe el nombre de Cisco
ACI (Application Centric Infrastructure). ACI es el nombre comercial de
la propuesta de arquitectura SDN de Cisco. Esta
arquitectura se basa en la implementación de APIC (Application Policy
Infrastructure Controller) que es el controlador SDN de Cisco. APIC
implementa una API denominada OpFlex para la comunicación con los
dispositivos de la red. Por ser OpFlex un estándar abierto APIC opera
tanto con dispositivos Cisco como de terceras partes. También
es posible desarrollar aplicaciones que interactúen con el controlador
para posibilitar y facilitar las tareas de configuración, monitoreo,
etc. Para esto el controlador cuenta con interfaces API específicas que
reciben el nombre de northbound APIs o NBIs (NorthBound Interfaces). Si
bien no hay un estándar definido para la comunicación entre el
controlador y las aplicaciones, típicamente se utilizan REST APIs
(REpresentational State Transfer API). La forma más común recibe la
denominación RESTful API que implementa mensajes GET y PUT de HTTP. Los
mensajes GET permiten obtener información del controlador mientras los
mensajes PUT permiten enviar instrucciones la controlador. Los 2 formatos más frecuentes para estas APIs es JSON (JavaScript Object Notation) Y XML (eXtensible Markup Language).