
Je veux tout de suite faire une réserve que cet article implique non seulement une lecture passive, mais invite également tout le monde à se joindre au développement. Les programmeurs système, les développeurs de matériel, les ingénieurs réseau et DevOps sont les bienvenus.
Étant donné que le projet est à l'intersection des technologies de réseau et de la conception matérielle, divisons notre conversation en trois parties - il sera plus facile d'adapter les informations à un public particulier de lecteurs.
Définissez la première partie comme introduction. Ici, nous allons parler de l'encapsuleur de trafic Ethernet matériel créé sur FPGA, discuter de ses principales fonctions, caractéristiques architecturales et avantages par rapport aux solutions logicielles.
La deuxième partie, appelons-la «réseau», sera plus intéressante pour les développeurs de matériel qui souhaitent mieux connaître les technologies réseau. Il sera consacré à quel rôle «Etherblade.net» peut jouer dans les réseaux des opérateurs télécoms. Nous parlerons également du concept de SDN
(mise en réseau définie par logiciel) et de la façon dont le matériel de réseau ouvert peut compléter et même concurrencer les solutions de grands fournisseurs, tels que Cisco et Juniper.
Et la troisième partie est le «matériel», qui est plus susceptible d'intéresser les ingénieurs réseau qui souhaitent s'impliquer dans la conception matérielle et commencer à développer eux-mêmes des périphériques réseau. Dans ce document, nous examinerons de plus près le flux de travail FPGA, «l'union des logiciels et du matériel», les cartes FPGA, les environnements de développement et d'autres problèmes qui vous indiquent comment vous connecter pour participer au projet EtherBlade.net.
Alors allons-y!
Encapsulation Ethernet
Le but du projet Etherblade.net est de concevoir et de construire un appareil qui peut, au niveau matériel, émuler un canal Ethernet L2 sur un environnement L3. Un cas d'utilisation simple consiste à connecter des serveurs et des postes de travail disparates de la même manière que s'il y avait un câble Ethernet physique régulier entre eux.
Sur Internet, vous pouvez trouver différents termes pour cette technologie. Les plus courants d'entre eux sont
pseudowire, evpn, L2VPN, e-line / e-tree / e-lan , etc. Eh bien, un grand nombre de termes dérivés sont différents pour différents types de réseaux de transport à travers lesquels un canal Ethernet virtuel est posé.
Ainsi, par exemple, l'émulation Ethernet sur un réseau IP est fournie par les technologies suivantes -
EoIP, VxLAN, OTV ;
émulation Ethernet sur réseau MPLS -
technologies VPLS et EoMPLS ;
L'émulation Ethernet sur Ethernet est une tâche des
technologies MetroEthernet, PBB-802.1ah , etc.
C'est le travail des spécialistes du marketing de trouver des termes, mais si les concepteurs de fer inventaient un appareil distinct pour chaque terme ou abréviation, ils deviendraient fous. Par conséquent, l'objectif des développeurs de matériel et notre objectif est de développer un périphérique universel - un encapsulateur qui peut encapsuler des trames Ethernet dans n'importe quel protocole du réseau de transport, que ce soit
IP / IPv6, MPLS, Ethernet , etc.
Et un tel encapsulateur a déjà été implémenté et se développe dans un projet appelé "Etherblade-Version1 - encapsulator core".
Pour une meilleure compréhension, je propose de considérer une figure expliquant ce principe d'encapsulation:

On voit que les encapsulateurs sont situés autour du périmètre du réseau de transport du transporteur. Chaque encapsulateur a deux interfaces
(L2 - port de jonction, "regardant" vers les clients, et L3-interface, qui "regarde" vers le réseau de transport) .
Examinons de plus près l'encapsuleur le plus à droite. Les clients y sont connectés, où le trafic de chaque client «va» dans un vlan-e séparé. L'appareil doit être capable de créer des canaux virtuels pour des clients individuels ou, en termes scientifiques, être capable d'encapsuler le trafic Ethernet pour différents VLAN avec différents en-têtes L3. La figure montre comment un encapsulateur émule quatre canaux virtuels pour quatre clients:
- vlan-11 (vert) - Ethernet sur IP (IPv4 + GRE) ;
- vlan-12 (violet) - Ethernet sur IP (IPv4 + UDP) ;
- vlan-13 (bleu) - Ethernet sur MPLS ;
- vlan-14 (rouge) - Ethernet sur IP (IPv6 + UDP) ;
Donc, avec la fonctionnalité triée, parlons maintenant des options pour implémenter l'encapsuleur.
Pourquoi FPGA?
Le FPGA est, en fait, une puce qui remplace un fer à souder et une boîte de puces
(éléments logiques, puces mémoire, etc.) . Autrement dit, avec FPGA, nous sommes en mesure de créer du matériel pour nos besoins et nos tâches.

Mais en plus du «jeu d'éléments et de fer à souder», il est également nécessaire d'avoir des schémas électriques. Ainsi, le projet "Etherblade.net" est le référentiel de ces schémas à partir duquel vous pouvez "souder" l'encapsuleur à l'intérieur du FPGA et obtenir un appareil qui fonctionne. Un autre avantage important du FPGA peut être appelé le fait que ses éléments peuvent être «soudés» à de nouveaux circuits, mais les circuits eux-mêmes, grâce au référentiel, n'ont pas besoin d'être créés et vérifiés «à partir de zéro» pour implémenter de nouvelles fonctionnalités.
Et pourtant, pourquoi FPGA, et non une solution logicielle?
Bien sûr, si la question était posée de développer le système à partir de zéro, prendre un ordinateur fini et écrire un programme pour cela serait plus facile et plus rapide que de développer un périphérique matériel spécialisé.
Cependant, pour la simplicité et la rapidité de développement, vous devez payer de moins bonnes performances, et c'est le principal inconvénient de la solution logicielle. Le fait est que le logiciel est un programme informatique qui a un temps d'exécution variable en raison des branches et des boucles. Nous ajoutons ici les interruptions constantes du microprocesseur par le système d'exploitation et la recirculation du trafic dans le sous-système DMA.
Dans une implémentation matérielle, notre encapsuleur est, en fait, un tampon "store-and-forward" à flux direct équipé d'une mémoire supplémentaire dans laquelle les en-têtes sont stockés. En raison de sa simplicité et de sa linéarité, la solution matérielle traite le trafic à une vitesse égale à la bande passante du canal Ethernet avec des retards minimaux et une gigue stable. En prime, nous ajoutons ici moins de consommation d'énergie et des solutions FPGA à moindre coût par rapport aux systèmes à microprocesseur.
Avant de passer au sujet suivant, permettez-moi de partager avec vous
ce lien vers une vidéo montrant un encapsulateur en action.
La vidéo est accompagnée de sous-titres en anglais et, si nécessaire, «Youtube» a la possibilité d'activer la traduction automatique en russe.Dans la dernière partie de l'article, je voudrais parler de quelques blocs qui sont également développés dans le cadre du projet Etherblade.net.
Développement du récepteur «Etherblade-Version2 - noyau décapsulateur»
Vous avez peut-être remarqué que dans le schéma de réseau précédent
(qui montre les encapsulateurs connectés au réseau du fournisseur), il y a une petite remarque indiquant que le MTU dans le réseau devrait être supérieur à 1560. Pour les grands opérateurs de télécommunications, ce n'est pas un problème, car ils travailler sur des canaux de fibre optique "sombres" avec des trames jumbo sur le matériel activé. Dans ce cas, les paquets Ethernet encapsulés d'une taille maximale de 1 500 octets et d'un en-tête L3 supplémentaire peuvent librement «marcher» sur ces réseaux.
Mais que se passe-t-il si nous souhaitons utiliser Internet ordinaire avec des encapsulateurs connectés, par exemple, à des modems DSL ou 4G domestiques comme réseau de transport? Dans ce cas, la partie réceptrice des encapsulateurs doit pouvoir collecter des trames Ethernet fragmentées.
Ni Cisco ni Juniper, pour le moment, n'offrent une telle fonctionnalité dans leurs appareils et cela est compréhensible, car leur équipement est axé sur les grands opérateurs de télécommunications. Le projet EtherBlade.net était initialement destiné aux clients de divers calibres et a déjà dans son arsenal une méthode développée d'assemblage "matériel" de fragments, qui permet d'émuler des canaux Ethernet partout avec une qualité de service de qualité télécom. Pour une documentation détaillée et des codes source, bienvenue sur
https://etherblade.net .
10 gigabits
Actuellement, un travail actif est également en cours sur une version de dix gigaoctets de l'encapsuleur et le portage sur le matériel, en particulier, sur la carte de l'équipe de R&D générale de Saint-Pétersbourg, présentée au début de l'article Intel Cyclone 10GX.
En plus des fonctionnalités décrites dans cet article, des encapsulateurs de dix gigabits peuvent être utilisés dans les réseaux d'opérateurs de télécommunications pour rediriger le trafic "intéressant" vers les centres de compensation DDoS, le serveur Yarovoy, etc. En savoir plus à ce sujet dans le prochain article sur le concept de SDN
(mise en réseau définie par logiciel) et l'utilisation d'Etherblade.net dans les grands réseaux - restez à l'écoute.