
Saya ingin membuat reservasi segera bahwa artikel ini tidak hanya menyiratkan membaca pasif, tetapi juga mengajak semua orang untuk bergabung dalam pengembangan. Pemrogram sistem, pengembang perangkat keras, teknisi jaringan dan DevOps dipersilakan.
Karena proyek ini berada di persimpangan teknologi jaringan dan desain perangkat keras, mari kita bagikan percakapan kita menjadi tiga bagian - akan lebih mudah untuk mengadaptasi informasi ke audiens pembaca tertentu.
Tentukan bagian pertama sebagai pengantar. Di sini kita akan berbicara tentang enkapsulator ethernet perangkat keras yang dibuat pada FPGA, membahas fungsi utamanya, fitur arsitektur, dan kelebihannya dibandingkan dengan solusi perangkat lunak.
Bagian kedua, sebut saja "jaringan", akan lebih menarik bagi pengembang perangkat keras yang ingin mengenal teknologi jaringan dengan lebih baik. Ini akan dikhususkan untuk peran apa yang “Etherblade.net” ambil dalam jaringan operator telekomunikasi. Kami juga akan berbicara tentang konsep SDN
(jaringan yang ditentukan perangkat lunak) dan bagaimana perangkat keras jaringan terbuka dapat melengkapi dan bahkan bersaing dengan solusi dari vendor besar, seperti Cisco dan Juniper.
Dan bagian ketiga adalah "perangkat keras", yang lebih cenderung menarik minat insinyur jaringan yang ingin terlibat dalam desain perangkat keras dan mulai mengembangkan perangkat jaringan sendiri. Di dalamnya, kita akan melihat lebih dekat pada alur kerja FPGA, "gabungan perangkat lunak dan perangkat keras", papan FPGA, lingkungan pengembangan dan masalah lain yang memberi tahu Anda cara terhubung untuk berpartisipasi dalam proyek EtherBlade.net.
Jadi ayo pergi!
Enkapsulasi Ethernet
Tujuan dari proyek Etherblade.net adalah untuk merancang dan membangun perangkat yang dapat, pada tingkat perangkat keras, meniru saluran L2-ethernet melalui lingkungan L3. Kasus penggunaan yang sederhana adalah menghubungkan server dan workstation yang berbeda satu sama lain dengan cara yang sama seolah-olah ada kabel ethernet fisik biasa di antara mereka.
Di Internet, Anda dapat menemukan istilah berbeda untuk teknologi ini. Yang paling umum adalah
pseudowire, evpn, L2VPN, e-line / e-tree / e-lan , dll. Nah, sejumlah besar istilah turunan berbeda untuk berbagai jenis jaringan transportasi di mana saluran ethernet virtual diletakkan.
Jadi, misalnya, emulasi ethernet melalui jaringan IP disediakan oleh teknologi berikut -
EoIP, VxLAN, OTV ;
emulasi ethernet melalui jaringan MPLS -
teknologi VPLS dan EoMPLS ;
emulasi ethernet atas ethernet adalah tugas
teknologi MetroEthernet, PBB-802.1ah , dll.
Adalah tugas pemasar untuk membuat ketentuan, tetapi jika perancang besi menciptakan perangkat terpisah untuk setiap istilah atau singkatan, mereka akan menjadi gila. Oleh karena itu, tujuan pengembang perangkat keras dan tujuan kami adalah untuk mengembangkan perangkat universal - enkapsulator yang dapat merangkum frame ethernet dalam protokol jaringan transportasi, baik itu
IP / IPv6, MPLS, Ethernet , dll.
Dan enkapsulator semacam itu telah diterapkan dan sedang dikembangkan dalam proyek yang disebut "Etherblade-Version1 - inti enkapsulator".
Untuk pemahaman yang lebih baik, saya mengusulkan untuk mempertimbangkan sosok yang menjelaskan prinsip enkapsulasi ini:

Kami melihat bahwa enkapsulator terletak di sekeliling jaringan transportasi pembawa. Setiap enkapsulator memiliki dua antarmuka
(L2 - port trunk, "mencari" ke arah klien, dan L3-antarmuka, yang "terlihat" ke arah jaringan transportasi) .
Mari kita lihat lebih dekat encapsulator paling kanan. Klien terhubung dengannya, di mana lalu lintas setiap klien "berjalan" dalam vlan-e yang terpisah. Perangkat harus dapat membuat saluran virtual untuk klien individu atau, dalam istilah ilmiah, dapat merangkum lalu lintas ethernet untuk vlan yang berbeda dengan header L3 yang berbeda. Gambar tersebut menunjukkan bagaimana satu enkapsulator mengemulasi empat saluran virtual untuk empat klien:
- vlan-11 (hijau) - Ethernet over IP (IPv4 + GRE) ;
- vlan-12 (ungu) - Ethernet over IP (IPv4 + UDP) ;
- vlan-13 (biru) - Ethernet over MPLS ;
- vlan-14 (merah) - Ethernet over IP (IPv6 + UDP) ;
Jadi, dengan fungsionalitas yang diurutkan, sekarang mari kita bicara tentang opsi untuk mengimplementasikan enkapsulator.
Mengapa FPGA?
FPGA sebenarnya adalah chip yang menggantikan besi solder dan sekotak chip
(elemen logika, chip memori, dll .
) . Artinya, memiliki FPGA, kami dapat membuat perangkat keras untuk kebutuhan dan tugas kami.

Tetapi selain "set elemen dan besi solder" juga perlu memiliki diagram sirkuit. Jadi repositori skema semacam itu dari mana Anda dapat "menyolder" enkapsulator di dalam FPGA dan mendapatkan perangkat yang berfungsi adalah proyek "Etherblade.net". Keuntungan penting lain dari FPGA dapat disebut fakta bahwa elemen-elemennya dapat "disolder ulang" ke sirkuit baru, tetapi sirkuit itu sendiri, berkat repositori, tidak perlu dibuat dan diverifikasi "dari awal" untuk mengimplementasikan fungsionalitas baru.
Namun, mengapa FPGA, dan bukan solusi perangkat lunak?
Tentu saja, jika pertanyaan diajukan tentang pengembangan sistem dari awal, maka mengambil komputer yang sudah jadi dan menulis program untuk itu akan lebih mudah dan lebih cepat daripada mengembangkan perangkat perangkat keras khusus.
Untuk kesederhanaan dan kecepatan pengembangan, Anda harus membayar kinerja yang lebih buruk, dan ini adalah kelemahan utama dari solusi perangkat lunak. Faktanya adalah perangkat lunak adalah program komputer yang memiliki waktu eksekusi variabel karena cabang dan loop. Kami menambahkan di sini gangguan konstan mikroprosesor oleh sistem operasi dan resirkulasi lalu lintas di subsistem DMA.
Dalam implementasi perangkat keras, enkapsulator kami adalah, pada kenyataannya, buffer "store-and-forward" aliran langsung yang dilengkapi dengan memori tambahan tempat header disimpan. Karena kesederhanaan dan linieritasnya, solusi perangkat keras memproses lalu lintas dengan kecepatan yang sama dengan bandwidth saluran ethernet dengan penundaan minimal dan jitter stabil. Sebagai bonus, kami menambahkan di sini konsumsi daya lebih sedikit dan solusi FPGA berbiaya lebih rendah dibandingkan dengan sistem mikroprosesor.
Sebelum beralih ke topik berikutnya, izinkan saya berbagi
tautan ini dengan Anda dengan video yang menunjukkan enkapsulator sedang beraksi.
Video disertai dengan terjemahan bahasa Inggris, dan jika perlu, "Youtube" memiliki opsi untuk mengaktifkan terjemahan otomatis ke dalam bahasa Rusia.Di bagian akhir artikel ini saya ingin menyebutkan beberapa blok yang juga sedang dikembangkan sebagai bagian dari proyek Etherblade.net.
Pengembangan receiver “Etherblade-Version2 - inti dekapsulator”
Anda mungkin telah memperhatikan bahwa dalam diagram jaringan sebelumnya
(yang menunjukkan enkapsulator terhubung ke jaringan penyedia) ada satu komentar kecil yang menunjukkan bahwa MTU dalam jaringan harus lebih dari 1560. Untuk operator telekomunikasi besar ini bukan masalah, karena mereka bekerja pada saluran serat optik "gelap" dengan jumbo-frame pada perangkat keras diaktifkan. Dalam hal ini, paket ethernet yang dienkapsulasi dengan ukuran maksimum 1.500 byte dan header L3 tambahan dapat dengan bebas "berjalan" melalui jaringan tersebut.
Tetapi bagaimana jika kita ingin menggunakan Internet biasa dengan enkapsulator yang terhubung, katakanlah, ke rumah DSL atau modem 4G sebagai jaringan transportasi? Dalam hal ini, bagian penerima enkapsulator harus dapat mengumpulkan frame ethernet yang terfragmentasi.
Baik Cisco maupun Juniper, pada saat ini, menawarkan fungsi seperti itu di perangkat mereka dan ini dapat dimengerti, karena peralatan mereka difokuskan pada operator telekomunikasi besar. Proyek EtherBlade.net pada awalnya ditujukan untuk pelanggan dari berbagai kaliber dan sudah memiliki arsenal metode yang dikembangkan untuk perakitan "perangkat keras" fragmen, yang memungkinkan meniru saluran ethernet-dimanapun dengan kualitas layanan kelas telekomunikasi. Untuk dokumentasi terperinci dan kode sumber, selamat datang di
https://etherblade.net .
10 gigabit
Saat ini, pekerjaan aktif juga sedang dilakukan pada enkapsulator versi sepuluh gigabyte dan memindahkannya ke perangkat keras, khususnya, ke papan dari tim R&D Umum dari St. Petersburg, yang diperlihatkan di awal artikel Intel Cyclone 10GX.
Selain fungsi yang dijelaskan dalam artikel ini, enkapsulator sepuluh gigabit dapat digunakan dalam jaringan operator telekomunikasi untuk mengalihkan lalu lintas "menarik" ke pusat-pusat penyelesaian DDoS, server Yarovoy, dll. Baca lebih lanjut tentang ini di artikel selanjutnya tentang konsep SDN
(jaringan yang ditentukan perangkat lunak) dan penggunaan Etherblade.net di jaringan besar - tetaplah bersama.