Investigación en la AGETIC: El switch virtual libre y el protocolo OpenFlow

Erick Poppe

(29, diciembre, 2017).- En los tiempos en que la virtualización no era parte de los centros de datos, todo switch o conmutador debía realizarse sobre hardware. Cuando se creó la virtualización de los servidores, la capa de acceso cambio de ser conectada a un swtich físico en hardware a ser conectada a un switch virtual. Este switch virtual es una capa de software que reside en el servidor que sirve de anfitrión a las máquinas virtualizadas (VM). Hoy en día, las máquinas virtuales y también los contenedores, tal como Docker tienen puertos virtuales o lógicos de Ethernet. Estos puertos lógicos se conectan a un switch virtual.

Hoy en día, se usan los switches virtuales en todo ámbito en el cual exista virtualización de máquinas. Algunos fueron desarrollados por las grandes empresas privativas involucradas con equipos de redes, pero existe un desarrollo libre que es el más popular. El switch virtual abierto (OVS en inglés) fue desarrollado para cumplir con las necesidades de la comunidad, ya que no existía un switch virtual que tuviera muchas características como los switches en hardware y que fuera diseñado para hypervisors basados en Linux tal como KVM y XEN.

El usuario de Linux intermedio, tal vez se pregunte ¿cuál es la necesidad de construir switches virtuales, cuando existe la función bridge en el kernel? La respuesta radica en la capacidad de control de un bridge y un switch virtual. Mientras un bridge conecta en capa 2, sin ningún control desde el kernel, un switch virtual es capaz de aplicar caraterísticas de control desde la capa 2 hasta la capa 4, tomar decisiones en el espacio de usuario, control mediante listas de acceso (ACL), calidad de servicio (QoS) y mobilidad de estado. Esto representa las ventajas de un switch virtual frente a un simple bridge de kernel.

El switch virtual libre OVS puede utilizarse con las aplicaciones de NetFLow, sFlow, espejo de puertos, VLANs, LACP y más. Desde una perspectiva de control y gestión, el switch virtual abierto ejecuta lo que se ha denominado el protocolo OpenFlow y el protocolo de getión Open vSwitch Database (OVSDB). Esto significa que un switch virtual puede operar de las dos formas, como un switch de software ejecutandose dentro del hypervisor y como pila de control de redes sobre un circuito integrado de switch.

¿Qué es exactamente el protocolo OpenFlow ? Es un protocolo que da acceso al plano de envío de datos desde un equipo de red desacoplando el plano de control, lo que en principio se denomina redes definidas por software (SDN). En el caso del protocolo openswitch debianOpenFlow, se trata de un controlador que directamente interactúa con el plano de envío de los equipos de red tal como switches y routers, ya sea en hardware y virtuales.

En la AGETIC, el área de investigación ha trabajado en el desarrollo de ambas herramientas tanto en hardware como virtuales en software.

Para el desarrollo en hardware se ha utilizado la herramienta denominada FPGA (Field Point Gate Array) que es un circuito integrado que se configura internamente después de su fabricación. Particularmente se utiliza la placa denominada NetFPGA, que es un FPGA conectado a 4 puertos de Ethernet.

Dentro del NetFPGA, se crea una tabla de flujos de 12 campos que deben verificarse en los paquetes que ingresan en la tarjeta NetFPGA . Si algun paquete coincide con los campos especificados en la tabla, se toman las acciones predeterminadas por el controlador. De esta forma las tablas contienen 3 áreas: el área de los 12 campos, el area del contador de paquetes coincidentes y el área donde se establece las acciones a tomarse en caso de coincidencia. Si algun paquete no coincide con ninguna entrada de la tabla, se envía al controlador para que este decida como proceder.

El protocolo establece que el controlador se comunica con el switch o router mediante un canal seguro, lo que significa que este debe estar encifrado. En el caso del NetFPGA este se logra mediante un bus PCIe desde la computadora anfitrión donde se encuentra alojada la placa electrónica del NetFPGA.

Figura 1. Campos del protcolo OpenFLow

¿Pero cuáles son los beneficios de este protocolo? En primer lugar habilita la programabilidad permitiendo hacer innovaciones y acelerando la implementación de nuevas característcas. En segundo lugar crea una inteligencia centralizada que optimiza el desempeño y proporciona gestión granular. Finalmente desacopla el plano de envío de datos del plano de control.

En el campo de desarrollo de herramientas virtuales, el área de investigación de la AGETIC ha trabajado en la aplicación del concepto de switch virtual libre (OVS) en sistemas embebidos de Linux que estan conectados a switches de Ethernet programables y también en sistemas ensamblados de computadoras de escritorio con tarjetas de red múltiples puertos Ethernet.

En el caso de los sistemas embebidos, existe la placa de hardware y software libre denominada Banana Pi-R1, sobre la cual se ejecutó el sistema operativo Debian en el cual existe OVS debido a que es parte usual del Kernel desde la versión 3.3, para aplicaciones desde el espacio de usuario. Se realizaron tareas de conmutación (switch), operación de VLANs, aprendizaje de MAC+VLAN, OpenFlow , enrutamiento (routing) y listas de control de acceso (ACL) y LACP entre otros.

Todas estas aplicaciones pueden servir de base a aplicaciones específicas que se desarrollan como proyectos de investigación de la AGETIC, como infraestructura de la redes de internas de la oficina y como base de herramientas de nube como OpenStack.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *