Etherblade.net - proyecto de código abierto para crear un encapsulador de tráfico ethernet en FPGA (primera parte)

imagen

Quiero hacer una reserva de inmediato que este artículo no solo implica lectura pasiva, sino que también invita a todos a unirse al desarrollo. Los programadores de sistemas, desarrolladores de hardware, ingenieros de redes y DevOps son bienvenidos.

Dado que el proyecto se encuentra en la intersección de las tecnologías de red y el diseño de hardware, dividamos nuestra conversación en tres partes: será más fácil adaptar la información a un público particular de lectores.

Defina la primera parte como introductoria. Aquí hablaremos sobre el encapsulador de encapsulador de ethernet de hardware creado en FPGA, discutiremos sus funciones principales, características arquitectónicas y ventajas en comparación con las soluciones de software.

La segunda parte, llamémosla "red", será más interesante para los desarrolladores de hardware que desean conocer mejor las tecnologías de red. Se dedicará a qué papel puede desempeñar "Etherblade.net" en las redes de operadores de telecomunicaciones. También hablaremos sobre el concepto de SDN (red definida por software) y cómo el hardware de red abierto puede complementar e incluso competir con soluciones de grandes proveedores, como Cisco y Juniper.

Y la tercera parte es "hardware", que es más probable que interese a los ingenieros de redes que quieran involucrarse en el diseño de hardware y comenzar a desarrollar dispositivos de red por su cuenta. En él, veremos más de cerca el flujo de trabajo de FPGA, la “unión de software y hardware”, placas de FPGA, entornos de desarrollo y otros temas que le indican cómo conectarse para participar en el proyecto EtherBlade.net.
¡Entonces vamos!

Encapsulación de Ethernet


El objetivo del proyecto Etherblade.net es diseñar y construir un dispositivo que pueda, a nivel de hardware, emular un canal L2-ethernet sobre un entorno L3. Un caso de uso simple es conectar servidores y estaciones de trabajo dispares entre sí de la misma manera que si hubiera un cable de Ethernet físico regular entre ellos.

En Internet puede encontrar diferentes términos para esta tecnología. Los más comunes son pseudowire, evpn, L2VPN, e-line / e-tree / e-lan , etc. Bueno, una gran cantidad de términos derivados son diferentes para diferentes tipos de redes de transporte a través de las cuales se establece un canal virtual de Ethernet.

Entonces, por ejemplo, la emulación de Ethernet sobre una red IP es proporcionada por las siguientes tecnologías: EoIP, VxLAN, OTV ;
emulación de Ethernet a través de la red MPLS: tecnologías VPLS y EoMPLS ;
La emulación de Ethernet sobre Ethernet es una tarea de las tecnologías MetroEthernet, PBB-802.1ah , etc.

Es el trabajo de los especialistas en marketing inventar términos, pero si los diseñadores de hierro inventaran un dispositivo separado para cada término o abreviatura, se volverían locos. Por lo tanto, el objetivo de los desarrolladores de hardware y nuestro objetivo es desarrollar un dispositivo universal: un encapsulador que pueda encapsular tramas de Ethernet en cualquier protocolo de la red de transporte, ya sea IP / IPv6, MPLS, Ethernet , etc.

Y dicho encapsulador ya se ha implementado y se está desarrollando en un proyecto llamado "Etherblade-Version1 - encapsulator core".

Para una mejor comprensión, propongo considerar una figura que explique este principio de encapsulación:
imagen

Vemos que los encapsuladores están ubicados alrededor del perímetro de la red de transporte del transportista. Cada encapsulador tiene dos interfaces (L2 - puerto troncal, "mirando" hacia los clientes, y la interfaz L3, que "mira" hacia la red de transporte) .

Echemos un vistazo más de cerca al encapsulador más a la derecha. Los clientes están conectados a él, donde el tráfico de cada cliente "va" en un vlan-e separado. El dispositivo debe poder crear canales virtuales para clientes individuales o, en términos científicos, ser capaz de encapsular el tráfico de Ethernet para diferentes vlan s con diferentes encabezados L3. La figura muestra cómo un encapsulador emula cuatro canales virtuales para cuatro clientes:

  • vlan-11 (verde): Ethernet sobre IP (IPv4 + GRE) ;
  • vlan-12 (morado): Ethernet sobre IP (IPv4 + UDP) ;
  • vlan-13 (azul): Ethernet sobre MPLS ;
  • vlan-14 (rojo): Ethernet sobre IP (IPv6 + UDP) ;

Entonces, con la funcionalidad resuelta, ahora hablemos sobre las opciones para implementar el encapsulador.

¿Por qué FPGA?


FPGA es, de hecho, un chip que reemplaza un soldador y una caja de chips (elementos lógicos, chips de memoria, etc.) . Es decir, al tener FPGA, podemos crear hardware para nuestras necesidades y tareas.
imagen

Pero además del "conjunto de elementos y soldador" también es necesario tener diagramas de circuito. Por lo tanto, el repositorio de dichos esquemas desde el que puede "soldar" el encapsulador dentro de la FPGA y obtener un dispositivo que funcione es el proyecto "Etherblade.net". Otra ventaja importante de FPGA se puede llamar el hecho de que sus elementos se pueden "volver a soldar" a los nuevos circuitos, pero los circuitos en sí, gracias al repositorio, no necesitan ser creados y verificados "desde cero" para implementar una nueva funcionalidad.

Y sin embargo, ¿por qué FPGA, y no una solución de software?

Por supuesto, si se planteó la pregunta sobre el desarrollo del sistema desde cero, tomar una computadora terminada y escribir un programa para él sería más fácil y rápido que desarrollar un dispositivo de hardware especializado.

Sin embargo, para simplificar y acelerar el desarrollo, debe pagar un rendimiento peor, y esta es la principal desventaja de la solución de software. El hecho es que el software es un programa de computadora que tiene un tiempo de ejecución variable debido a ramas y bucles. Agregamos aquí interrupciones constantes del microprocesador por el sistema operativo y la recirculación del tráfico en el subsistema DMA.

En una implementación de hardware, nuestro encapsulador es, de hecho, un búfer de "almacenamiento y reenvío" de flujo directo equipado con memoria adicional en la que se almacenan los encabezados. Debido a su simplicidad y linealidad, la solución de hardware procesa el tráfico a una velocidad igual al ancho de banda del canal de Ethernet con retrasos mínimos y fluctuaciones estables. Como beneficio adicional, agregamos aquí menos consumo de energía y soluciones FPGA de menor costo en comparación con los sistemas de microprocesador.

Antes de pasar al siguiente tema, permítanme compartir con ustedes este enlace a un video que muestra un encapsulador en acción. El video está acompañado de subtítulos en inglés y, si es necesario, "Youtube" tiene la opción de habilitar la traducción automática al ruso.

En la parte final del artículo, me gustaría hablar sobre un par de bloques que también se están desarrollando como parte del proyecto Etherblade.net.

Desarrollo del receptor "Etherblade-Version2 - núcleo decapsulador"


Es posible que haya notado que en el diagrama de red anterior (que muestra los encapsuladores conectados a la red del proveedor) hay una pequeña observación que indica que la MTU en la red debe ser superior a 1560. Para los grandes operadores de telecomunicaciones esto no es un problema, ya que funciona en canales de fibra óptica "oscuros" con marcos jumbo en hardware habilitado. En este caso, los paquetes de ethernet encapsulados con un tamaño máximo de 1,500 bytes y un encabezado L3 adicional pueden "caminar" libremente sobre dichas redes.

Pero, ¿qué pasaría si quisiéramos usar Internet normal con encapsuladores conectados, por ejemplo, a módems DSL o 4G domésticos como red de transporte? En este caso, la parte receptora de los encapsuladores debería poder recopilar tramas de Ethernet fragmentadas.

Ni Cisco ni Juniper, en este momento, ofrecen dicha funcionalidad en sus dispositivos y esto es comprensible, porque su equipo está enfocado en grandes operadores de telecomunicaciones. El proyecto EtherBlade.net inicialmente estaba dirigido a clientes de varios calibres y ya tiene en su arsenal un método desarrollado de ensamblaje de fragmentos "hardware", que permite emular canales de ethernet en cualquier lugar con calidad de servicio de grado telco. Para obtener documentación detallada y códigos fuente, bienvenido a https://etherblade.net .

10 gigabits


Actualmente, también se está trabajando activamente en una versión de diez gigabytes del encapsulador y en portarlo al hardware, en particular, a la placa del equipo general de I + D de San Petersburgo, que se muestra al comienzo del artículo Intel Cyclone 10GX.

Además de la funcionalidad descrita en este artículo, se pueden utilizar encapsuladores de diez gigabits en las redes de operadores de telecomunicaciones para redirigir el tráfico "interesante" a los centros de compensación de DDoS, el servidor Yarovoy, etc. Lea más sobre esto en el próximo artículo sobre el concepto de SDN (redes definidas por software) y el uso de Etherblade.net en redes grandes: esté atento.

Source: https://habr.com/ru/post/439540/


All Articles