
Ich möchte sofort reservieren, dass dieser Artikel nicht nur passives Lesen impliziert, sondern auch alle einlädt, sich der Entwicklung anzuschließen. Systemprogrammierer, Hardwareentwickler, Netzwerk- und DevOps-Ingenieure sind willkommen.
Da sich das Projekt an der Schnittstelle von Netzwerktechnologien und Hardware-Design befindet, teilen wir unser Gespräch in drei Teile - es wird einfacher sein, Informationen an ein bestimmtes Publikum von Lesern anzupassen.
Definieren Sie den ersten Teil als Einführung. Hier werden wir über den auf FPGA erstellten Hardware-Ethernet-Verkehrskapseler sprechen und seine Hauptfunktionen, Architekturmerkmale und Vorteile im Vergleich zu Softwarelösungen diskutieren.
Der zweite Teil, nennen wir ihn „Netzwerk“, ist für Hardwareentwickler interessanter, die die Netzwerktechnologien besser kennenlernen möchten. Es wird untersucht, welche Rolle „Etherblade.net“ in den Netzen von Telekommunikationsbetreibern spielen 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 diesen konkurrieren kann.
Und der dritte Teil ist „Hardware“, was eher Netzwerkingenieure interessiert, die sich mit dem Hardware-Design befassen und selbst mit der Entwicklung von Netzwerkgeräten beginnen möchten. Darin werden wir uns den FPGA-Workflow, die „Vereinigung von Software und Hardware“, FPGA-Boards, Entwicklungsumgebungen und andere Themen genauer ansehen, die Ihnen zeigen, wie Sie eine Verbindung herstellen können, um am EtherBlade.net-Projekt teilzunehmen.
Also lass uns gehen!
Ethernet-Kapselung
Das Ziel des Etherblade.net-Projekts besteht darin, ein Gerät zu entwerfen und zu bauen, das auf Hardwareebene einen L2-Ethernet-Kanal über eine L3-Umgebung emulieren kann. Ein einfacher Anwendungsfall besteht darin, unterschiedliche Server und Workstations auf dieselbe Weise miteinander zu verbinden, als ob sich zwischen ihnen ein reguläres physisches Ethernet-Kabel befindet.
Im Internet finden Sie verschiedene Begriffe für diese Technologie. Die häufigsten von ihnen sind
Pseudodraht, EVPN, L2VPN, E-Line / E-Tree / E-Lan usw. Nun, eine große Anzahl von abgeleiteten Begriffen unterscheidet sich für verschiedene Arten von Transportnetzen, 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 -
VPLS- und EoMPLS-Technologien ;
Die Ethernet-Emulation über Ethernet ist eine Aufgabe der
Technologien von
MetroEthernet, PBB-802.1ah usw.
Es ist die Aufgabe der Vermarkter, Begriffe zu finden, aber wenn Eisendesigner für jeden Begriff oder jede Abkürzung ein eigenes Gerät erfinden würden, würden sie verrückt werden. Daher ist das Ziel der Hardwareentwickler und unser Ziel die Entwicklung eines universellen Geräts - eines Kapselungsgeräts, das Ethernet-Frames in jedem Protokoll des Transportnetzwerks kapseln kann, sei es
IP / IPv6, MPLS, Ethernet usw.
Ein solcher Encapsulator wurde bereits implementiert und entwickelt sich in einem Projekt namens "Etherblade-Version1 - Encapsulator Core".
Zum besseren Verständnis schlage ich vor, eine Abbildung zu betrachten, die dieses Einkapselungsprinzip erklärt:

Wir sehen, dass sich die Kapselungsgeräte um den Umfang des Transportnetzes des Transportunternehmens befinden. Jeder Encapsulator verfügt über zwei Schnittstellen
(L2 - Trunk-Port, der in Richtung der Clients "schaut", und L3-Schnittstelle, die in Richtung des Transportnetzwerks "schaut") .
Schauen wir uns den Encapsulator ganz rechts genauer an. Clients sind damit verbunden, wobei der Datenverkehr jedes Clients in einem separaten vlan-e "abläuft". Das Gerät muss in der Lage sein, virtuelle Kanäle für einzelne Clients zu erstellen oder wissenschaftlich gesehen den Ethernet-Verkehr für verschiedene VLANs mit unterschiedlichen L3-Headern zu 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 (lila) - Ethernet über IP (IPv4 + UDP) ;
- vlan-13 (blau) - Ethernet über MPLS ;
- vlan-14 (rot) - Ethernet über IP (IPv6 + UDP) ;
Nachdem die Funktionalität geklärt ist, sprechen wir nun über die Optionen für die Implementierung des Kapselungsgeräts.
Warum FPGA?
FPGA ist in der Tat ein Chip, der einen Lötkolben und eine Schachtel Chips
(Logikelemente, Speicherchips usw.) ersetzt . Mit FPGA können wir also Hardware für unsere Anforderungen und Aufgaben erstellen.

Neben dem „Satz Elemente und Lötkolben“ sind jedoch auch Schaltpläne erforderlich. Das Repository solcher Schemata, aus denen Sie den Kapseler im FPGA „löten“ und ein funktionierendes Gerät erhalten können, ist das Projekt „Etherblade.net“. Ein weiterer wichtiger Vorteil von FPGA ist die Tatsache, dass seine Elemente auf neue Schaltkreise „neu verlötet“ werden können. Die Schaltkreise selbst müssen jedoch dank des Repositorys nicht „von Grund auf neu“ erstellt und überprüft werden, um neue Funktionen zu implementieren.
Und doch, warum FPGA und keine Softwarelösung?
Wenn die Frage nach der Entwicklung des Systems von Grund auf gestellt würde, wäre es natürlich einfacher und schneller, einen fertigen Computer zu nehmen und ein Programm dafür zu schreiben, als ein spezielles Hardwaregerät zu entwickeln.
Zur Vereinfachung und Geschwindigkeit der Entwicklung müssen Sie jedoch eine schlechtere Leistung zahlen, und dies ist der Hauptnachteil der Softwarelösung. Tatsache ist, dass Software ein Computerprogramm ist, das aufgrund von Verzweigungen und Schleifen eine variable Ausführungszeit hat. Wir fügen hier konstante Unterbrechungen des Mikroprozessors durch das Betriebssystem und Verkehrsumwälzung im DMA-Subsystem hinzu.
In einer Hardware-Implementierung ist unser Encapsulator tatsächlich ein "Flow-and-Forward" -Puffer mit direktem Fluss, der mit zusätzlichem Speicher ausgestattet ist, in dem Header gespeichert sind. Aufgrund ihrer Einfachheit und Linearität verarbeitet die Hardwarelösung Datenverkehr mit einer Geschwindigkeit, die der Bandbreite des Ethernet-Kanals entspricht, mit minimalen Verzögerungen und stabilem Jitter. Als Bonus fügen wir hier weniger Stromverbrauch und kostengünstigere FPGA-Lösungen im Vergleich zu Mikroprozessorsystemen hinzu.
Bevor ich zum nächsten Thema übergehe, möchte ich Ihnen
diesen Link zu einem Video mitteilen, in dem ein Kapselungsgerät in Aktion gezeigt wird.
Das Video wird von englischen Untertiteln begleitet, und bei Bedarf bietet „Youtube“ die Option, die automatische Übersetzung ins Russische zu aktivieren.Im letzten Teil des Artikels möchte ich über einige Blöcke sprechen, die ebenfalls im Rahmen des Etherblade.net-Projekts entwickelt werden.
Entwicklung des Empfängers „Etherblade-Version2 - Decapsulator Core“
Möglicherweise haben Sie bemerkt, dass im vorherigen Netzwerkdiagramm
(das die mit dem Netzwerk des Anbieters verbundenen Kapselungsgeräte zeigt) eine kleine Bemerkung darauf hinweist, dass die MTU im Netzwerk mehr als 1560 betragen sollte. Für große Telekommunikationsbetreiber ist dies kein Problem, da sie Arbeiten Sie an "dunklen" Glasfaserkanälen mit Jumbo-Frames auf aktivierter Hardware. In diesem Fall können die gekapselten Ethernet-Pakete mit einer maximalen Größe von 1.500 Bytes und einem zusätzlichen L3-Header frei über solche Netzwerke "laufen".
Was aber, wenn wir das reguläre Internet mit Kapselungsgeräten nutzen möchten, die beispielsweise mit DSL- oder 4G-Heimmodems als Transportnetzwerk verbunden sind? In diesem Fall sollte der empfangende Teil der Kapselungsgeräte in der Lage sein, fragmentierte Ethernet-Frames zu sammeln.
Weder Cisco noch Juniper bieten derzeit solche Funktionen in ihren Geräten an, und dies ist verständlich, da sich ihre Geräte auf große Telekommunikationsbetreiber konzentrieren. Das EtherBlade.net-Projekt richtete sich ursprünglich an Kunden verschiedener Kaliber und verfügt bereits über eine entwickelte Methode zur "Hardware" -Montage von Fragmenten, mit der Ethernet-Kanäle mit Telekommunikationsqualität emuliert werden können. Ausführliche Dokumentation und Quellcodes finden Sie unter
https://etherblade.net .
10 Gigabit
Derzeit wird auch aktiv an einer 10-Gigabyte-Version des Kapselungsgeräts gearbeitet und auf Hardware portiert, insbesondere auf das Board des allgemeinen Forschungs- und Entwicklungsteams aus St. Petersburg, das am Anfang des Artikels Intel Cyclone 10GX gezeigt wurde.
Zusätzlich zu den in diesem Artikel beschriebenen Funktionen können Zehn-Gigabit-Kapselungsgeräte in den Netzwerken von Telekommunikationsbetreibern verwendet werden, um "interessanten" Verkehr zu DDoS-Clearingzentren, dem Yarovoy-Server usw. umzuleiten. Lesen Sie mehr dazu im nächsten Artikel über das Konzept von SDN
(Software Defined Networking) und die Verwendung von Etherblade.net in großen Netzwerken - bleiben Sie dran.