Etherblade.net - OpenSource-Projekt zur Erstellung eines Ethernet-Verkapselungsmoduls für FPGA (Teil 1)

Bild

Ich möchte nur reservieren, dass dieser Artikel nicht nur ein passives Lesen beinhaltet, sondern auch alle dazu einlädt, sich der Entwicklung anzuschließen. Systemprogrammierer, Hardwareentwickler, Netzwerkingenieure und DevOps-Ingenieure sind willkommen.

Da das Projekt an der Schnittstelle von Netzwerktechnologien und Hardwaredesign steht, teilen wir unser Gespräch in drei Teile auf - es wird einfacher sein, Informationen für ein bestimmtes Publikum von Lesern anzupassen.

Wir definieren den ersten Teil als einleitend. Wir sprechen hier über den Hardware-Encapsulator für den Ethernet-Verkehr, der auf dem FPGA erstellt wird, und erörtern seine Hauptfunktionen, Architekturmerkmale und Vorteile im Vergleich zu Softwarelösungen.

Der zweite Teil, nennen wir es "Netzwerk", wird für Hardwareentwickler interessanter, die sich mit Netzwerktechnologien näher vertraut machen wollen. Es wird der Rolle gewidmet, die "Etherblade.net" in Netzwerken von Telekommunikationsbetreibern einnehmen kann. Wir werden auch über das Konzept von SDN (Software Defined Networking) sprechen und darüber, wie offene Netzwerkhardware Lösungen großer Anbieter wie Cisco und Juniper ergänzen und sogar mit ihnen konkurrieren kann.

Und der dritte Teil - „Hardware“ - ist eher für Netzwerkingenieure interessant, die sich dem Hardware-Design anschließen und mit der Entwicklung eigener Netzwerkgeräte beginnen wollen. Darin werden wir uns den FPGA-Workflow, „die Vereinigung von Software und Hardware“, FPGA-Boards, Entwicklungsumgebungen und andere Dinge genauer anschauen, die Ihnen zeigen, wie Sie sich an dem Projekt „EtherBlade.net“ beteiligen können.
Also lass uns gehen!

Ethernet-Kapselung


Das Ziel des Etherblade.net-Projekts besteht darin, ein Gerät zu entwerfen und zu bauen, das einen hardwarebasierten L2-Ethernet-Kanal über die L3-Umgebung emulieren kann. Ein einfaches Anwendungsbeispiel ist die Verbindung unterschiedlicher Server und Workstations untereinander, als ob ein normales physikalisches Ethernet-Kabel zwischen ihnen wäre.

Im Internet finden Sie verschiedene Begriffe für diese Technologie. Die häufigsten sind Pseudowire, evpn, L2VPN, E-Line / E-Tree / E-LAN und so weiter. Nun, eine große Anzahl von abgeleiteten Begriffen unterscheidet sich für verschiedene Arten von Verkehrsnetzen, durch die ein virtueller Ethernet-Kanal gelegt wird.

So wird beispielsweise die Ethernet-Emulation über ein IP-Netzwerk durch die folgenden Technologien bereitgestellt: EoIP, VxLAN, OTV ;
Ethernet-Emulation über MPLS-Netzwerk mit VPLS- und EoMPLS-Technologien ;
Die Ethernet-Emulation über Ethernet ist eine Aufgabe der Technologien MetroEthernet, PBB-802.1ah usw.

Die Aufgabe der Vermarkter besteht darin, Ausdrücke aufzustellen, aber wenn Eisendesigner für jeden Begriff oder jede Abkürzung ein eigenes Gerät erfunden hätten, würden sie verrückt werden. Daher ist das Ziel der Hardwareentwickler und unser Ziel, ein universelles Gerät zu entwickeln - einen Encapsulator, der Ethernet-Frames in jedem Transportnetzwerkprotokoll einkapseln kann, sei es IP / IPv6, MPLS, Ethernet usw.

Ein solcher Encapsulator wurde bereits implementiert und wird in einem Projekt namens "Etherblade-Version1 - Encapsulatorkern" entwickelt.

Zum besseren Verständnis möchte ich ein Bild betrachten, in dem dieses Prinzip der Einkapselung erläutert wird:
Bild

Wir sehen, dass sich die Einkapselungseinrichtungen am Rand des Transportnetzes des Frachtführers befinden. Jeder Encapsulator hat zwei Schnittstellen (L2 ist ein Trunk-Port, der auf Kunden "blickt") und eine L3-Schnittstelle, die auf das Transportnetz "blickt" .

Schauen wir uns den Kapsel ganz rechts an. Clients sind damit verbunden, wobei der Datenverkehr jedes Clients in einem separaten vlan-e „läuft“. Das Gerät muss in der Lage sein, virtuelle Kanäle für einzelne Clients zu erstellen oder, in wissenschaftlicher Hinsicht, Ethernet-Verkehr für verschiedene Vlans mit unterschiedlichen L3-Headern kapseln. Die Abbildung zeigt, wie ein Encapsulator vier virtuelle Kanäle für vier Clients emuliert:

  • vlan-11 (grün) - Ethernet über IP (IPv4 + GRE) ;
  • vlan-12 (violett) - Ethernet über IP (IPv4 + UDP) ;
  • vlan-13 (blau) - Ethernet über MPLS ;
  • vlan-14 (rot) - Ethernet über IP (IPv6 + UDP) ;

Wenn wir uns mit der Funktionsweise auskennen, wollen wir nun über die Optionen für die Implementierung des Encapsulators sprechen.

Warum FPGA?


FPGA ist im Wesentlichen ein Chip, der einen Lötkolben und eine Schachtel Chips (Logikelemente, Speicherchips usw.) ersetzt . Mit dem FPGA haben wir also die Möglichkeit, Hardware für Ihre Anforderungen und Aufgaben zu erstellen.
Bild

Neben "einem Satz von Elementen und einem Lötkolben" sind jedoch auch schematische Diagramme erforderlich. Das Repository für solche Schemata, aus denen Sie den Encapsulator im FPGA „löten“ und ein funktionsfähiges Gerät erhalten können, ist das Projekt „Etherblade.net“. Ein weiterer wichtiger Vorteil von FPGA ist die Tatsache, dass seine Elemente für neue Schemata "gelötet" werden können, aber die Schemata selbst müssen dank des Repositorys nicht "von Grund auf" erstellt und überprüft werden, um die neue Funktionalität zu implementieren.

Und doch, warum FPGA und keine Softwarelösung?

Wenn es sich bei der Frage darum handelt, ein System von Grund auf zu entwickeln, wäre es natürlich einfacher und schneller, einen vorgefertigten Computer zu verwenden und ein Programm zu schreiben, als ein spezielles Hardwaregerät zu entwickeln.

Um die Entwicklung zu vereinfachen und zu beschleunigen, muss jedoch die schlechteste Leistung bezahlt werden. Dies ist der Hauptnachteil der Softwarelösung. Tatsache ist, dass Software ein Computerprogramm ist, das aufgrund von Verzweigungen und Zyklen eine variable Ausführungszeit hat. Fügen Sie hier die permanenten Unterbrechungen des Mikroprozessors durch das Betriebssystem und die Verkehrsumwälzung im DMA-Subsystem hinzu.

In der Hardwareimplementierung ist unser Encapsulator tatsächlich ein direkter "Store-and-Forward" -Puffer, der mit einem zusätzlichen Speicher ausgestattet ist, in dem die Header gespeichert sind. Aufgrund ihrer Einfachheit und Linearität verarbeitet die Hardwarelösung den Verkehr mit einer Geschwindigkeit, die der Kapazität des Ethernet-Kanals entspricht, mit minimalen Verzögerungen und stabilem Jitter. Hinzu kommt der geringere Stromverbrauch und niedrigere Kosten für FPGA-Lösungen im Vergleich zu Mikroprozessorsystemen.

Bevor Sie mit dem nächsten Thema fortfahren, möchte ich Ihnen diesen Link zu dem Video zeigen, in dem der Encapsulator in Aktion gezeigt wird. Das Video ist mit englischen Untertiteln verbunden, und bei Bedarf kann „Youtube“ die automatische Übersetzung ins Russische aktivieren.

Im letzten Teil des Artikels möchte ich über ein Blockpaar berichten, das ebenfalls im Rahmen des Projekts „Etherblade.net“ entwickelt wird.

Entwicklung des Empfängers "Etherblade-Version2 - Decapsulatorkern"


Möglicherweise ist Ihnen aufgefallen, dass im vorherigen Netzwerkdiagramm (in dem die an das Netzwerk des Providers angeschlossenen Encapsulators dargestellt sind) eine kleine Bemerkung darauf hinweist, dass die MTU im Netzwerk größer als 1560 sein muss. Dies ist für große Telekommunikationssysteme kein Problem Arbeiten an "dunklen" Glasfaserkanälen mit aktivierter Unterstützung für Jumbo-Frames. In diesem Fall können die gekapselten Ethernet-Pakete mit einer maximalen Größe von 1500 Byte und einem zusätzlichen L3-Header in solchen Netzwerken frei laufen.

Aber was wäre, wenn wir als Transportnetz das gewöhnliche Internet mit Einkapselungsmodulen verwenden möchten, die an Heim-DSL- oder 4G-Modems angeschlossen sind? In diesem Fall muss der Empfangsteil der Einkapselung fragmentierte Ethernet-Frames sammeln können.

Weder Cisco noch Juniper bieten derzeit eine solche Funktionalität in ihren Geräten an. Dies ist verständlich, da ihre Geräte für große Telekommunikationsbetreiber gedacht sind. Das Projekt „EtherBlade.net“ konzentrierte sich zunächst auf Kunden mit unterschiedlichen Kalibern und hatte bereits eine „fest verdrahtete“ Anordnung von Fragmenten in seinem Arsenal, die es ermöglicht, „Ethernet-Anywhere“ -Kanäle mit einer „Telco-Grade“ -Qualitätsqualität zu emulieren. Für detaillierte Dokumentation und Quellcodes besuchen Sie bitte https://etherblade.net .

10 Gigabit


Momentan wird auch aktiv an einer 10-Gigabit-Version des Encapsulators gearbeitet, die insbesondere auf die Hardware portiert wird, insbesondere auf die Platine, die zu Beginn des Artikels Intel Cyclone 10GX vom St. Petersburger R & D-Team gezeigt wurde.

Zusätzlich zu der in diesem Artikel beschriebenen Funktion können zehn-Gigabit-Kapselungsmodule in Betreibernetzwerken verwendet werden, um „interessanten“ Verkehr zu DDoS-Clearing-Centern, dem Yarovoi-Server usw. umzuleiten. Lesen Sie dazu im nächsten Artikel mehr über das Konzept von SDN (Software Defined Networking) und den Einsatz von Etherblade.net in großen Netzwerken - bleiben Sie dran.

Jetzt auch beliebt: