
Pada
artikel pertama, saya ingin menunjukkan bahwa pengembangan FPGA adalah tugas yang menarik, dan implementasi stream encapsulator adalah proyek yang cukup sederhana yang dapat bertindak sebagai proyek akademik untuk siswa senior atau mahasiswa pascasarjana.
Meskipun desain perangkat keras layak dilakukan hanya untuk bersenang-senang, dalam artikel ini saya ingin memperhatikan nilai praktis dari pelajaran ini. Secara khusus, percakapan kami akan membahas cara membuat infrastruktur jaringan untuk operator telekomunikasi menggunakan enkapsulator Etherblade.net diimplementasikan pada FPGA.
Teks ini adalah beberapa wawasan tentang teknologi jaringan dan agar sesuai dengan topik yang luas dalam kerangka satu artikel, saya memutuskan untuk menulisnya dalam konteks beberapa rencana tindakan atau, jika Anda ingin, jawaban untuk pertanyaan berikut - “Bagaimana cara mengganti peralatan menggunakan FPGA dan open source seefisien mungkin dari Cisco dan Juniper. "
Jadi mari kita mulai.
Konsep SDN (jaringan yang ditentukan perangkat lunak) terhadap vendor besar
Secara tradisional, selama beberapa dekade, peralatan jaringan telah diproduksi oleh raksasa seperti Cisco dan Juniper. Saat ini, operator jaringan besar yang mengembangkan peralatan jaringan mereka sendiri menjadi norma baru. Tujuan yang ingin mereka capai adalah independensi dari pemasok komponen dan kontrol yang lebih baik atas infrastruktur.
Di Rusia, karena alasan politik, pendekatan ini terkait dengan penggantian produk pihak ketiga dengan sistem dengan persentase lebih tinggi dari komponen intelektual yang dikembangkan secara lokal (blok properti intelektual atau IP-core) biasanya disebut substitusi impor.
Harus dipahami bahwa perusahaan besar memiliki sumber daya teknik dalam jumlah besar dan bergantung pada model pengembangan yang terintegrasi secara vertikal. Dan bagaimana dengan produsen yang relatif kecil?
Kurangnya sumber daya dapat dikompensasi oleh sumber terbuka. Dan kurangnya integrasi vertikal dengan distribusi sub-tugas yang benar di antara pemain yang lebih kecil.
Arsitektur perangkat jaringan yang secara tradisional diproduksi oleh vendor besar mudah tersegmentasi. Untuk memparalelkan proses dan menyoroti masing-masing sub-tugas, konsep SDN (jaringan yang ditentukan perangkat lunak) menyarankan segmentasi arsitektur perangkat jaringan ke dalam level, khususnya, memisahkan tingkat manajemen jaringan (control plane) dari level perangkat transfer data (data plane).
Saya perhatikan bahwa hari ini SDN telah menjadi alat pemasaran yang kuat untuk vendor besar yang menyajikannya sebagai seperangkat "fitur baru" yang berguna bagi pengguna akhir. Yang lucu adalah bahwa secara historis, seperti yang telah saya catat, konsep SDN dibuat berbeda dengan raksasa industri.
Jadi SDN menawarkan model arsitektur dari router jaringan dalam bentuk dibongkar. Tugas kami adalah mengidentifikasi komponen yang menarik bagi kami dalam model ini dan mulai mengembangkannya.
"Ayo mulai dari yang kecil" - enkapsulasi pada router dan overlay SDN
Wajar untuk menyelesaikan semua kebutuhan dunia dalam sekali jalan. Jadi, ketika membangun sistem besar, masuk akal untuk memulai dari yang kecil dan membuat sistem diperluas, sehingga fungsionalitas tambahan dapat diperkenalkan dengan mengintegrasikan blok tambahan atau memodifikasi yang sudah ada. Dengan kata-kata "mulai kecil" yang saya maksud adalah pemilihan beberapa fungsi jaringan lengkap yang cukup untuk membangun sistem yang berfungsi.
Dalam proyek Etherblade.net, karena fungsi-fungsi tersebut, diputuskan untuk menerapkan mekanisme untuk merangkum lalu lintas jaringan.
Enkapsulasi dalam jaringan adalah hal biasa. Mari “desegregate” router dan mempertimbangkan bagaimana komponen-komponennya sesuai dengan komponen model SDN dan menentukan enkapsulasi tempat yang dilakukan pada kedua model.
Sebagai contoh, ambil salah satu router yang ditunjukkan pada gambar di bagian paling awal artikel dan gambarkan dalam gambar di bawah ini - tetapi sudah dalam bentuk "siap".
Pada gambar yang sama, kami membandingkan router dengan "model SDN overlay" alternatif yang menyediakan fungsi serupa.
Level atas (hijau) adalah bidang kontrol / orkestrasi SDN. Ini adalah otak dari sistem, sebenarnya mikroprosesor di mana perangkat lunak jaringan pengendali dijalankan. Pada router tradisional, komponen ini built-in. Di SDN, fungsi ini biasanya dibawa ke "pengendali orkestrasi" eksternal - komputer yang melayani banyak perangkat jaringan.
Jalur penerusan level sedang (biru). Peran utama tingkat ini adalah penyediaan transportasi jaringan (switching / traffic routing). Pada router tradisional - fungsi ini diimplementasikan sebagai unit switching internal. Dalam model "SDN-overlay" kami, peran komponen "switching" ini dapat sepenuhnya dikurangi dengan menghubungkan langsung perangkat tepi (papan tulis putih) ke jaringan transportasi.
Bawah (oranye) - tingkat tepi / akses. Pada komponen ini, semua manipulasi dengan lalu lintas jaringan seperti enkapsulasi dan konversi protokol lainnya terjadi. Level ini ditandai dengan kecepatan pemrosesan tinggi dan fungsionalitas deterministik - tempat yang tepat untuk ASIC / FPGA. Pada router tradisional, fungsi ini diimplementasikan pada modul linear (kartu garis), di SDN ini adalah apa yang disebut "perangkat whitebox".
Jadi, meringkas di atas, kita dapat mengatakan bahwa Etherblade.net pada dasarnya adalah proyek untuk mengembangkan perangkat "papan tulis" untuk "SDN-overlay".
“Teruskan ke pusat data !!!” - encapsulator sebagai fungsi NFV (virtualisasi fungsi jaringan)
Setelah mengetahui bagaimana sistem yang kami kembangkan terlihat secara struktural, masuk akal untuk berbicara tentang opsi untuk perwujudan fisiknya.
Di sebelah kiri adalah enkapsulator Etherblade sebagai perangkat CPE terpisah (versi kampus). Di sebelah kanan adalah encapsulator Etherblade diimplementasikan di dalam server (opsi untuk pusat data).Sangat menarik bahwa dengan mengimplementasikan enkapsulator di papan dengan antarmuka PCIe dan "menyembunyikan" papan ini di dalam server, kita sebenarnya dapat membuat ilusi virtualisasi fungsi jaringan ini. Pendekatan ini disebut NFV - virtualisasi fungsi jaringan.
Konsep NFV melibatkan menyingkirkan perangkat jaringan eksternal seperti firewall, load-balancers, dll karena virtualisasi fungsi mereka di dalam server. Menerapkan enkapsulator sebagai fungsi NFV memungkinkan kita untuk menyingkirkan router "edge" fisik.
Jadi, NFV modis dan nyaman. Kesulitannya adalah dalam hal desain perangkat keras, membatasi PCIe tidak semudah ethernet. Jika ethernet adalah protokol serial serial, maka PCIe adalah protokol transaksional yang kompleks dengan banyak status akhir (pada dasarnya tumpukan jaringan diimplementasikan dalam perangkat keras). Jangan lupa bahwa sistem operasi membutuhkan driver yang sesuai untuk bekerja dengan perangkat PCIe.
Salah satu solusi paling elegan untuk masalah ini adalah penggunaan papan FPGA, mirip dengan yang ditunjukkan di awal artikel. Gambar berikut menunjukkan arsitektur papan dan kedua opsi untuk mengimplementasikan enkapsulator di atasnya.

Seperti yang Anda lihat, board FPGA ini memiliki adapter jaringan "eksternal" on board, yang pada dasarnya adalah konverter antara ethernet dan PCIe. Dengan demikian, implementasi enkapsulator pada perangkat semacam itu memungkinkan untuk mendapatkan NFV "langsung dari kotak" - tanpa masalah yang tidak perlu dengan PCIe dan driver penulisan.
Dari "privat ke umum" - membuat repositori terbuka IP-core jaringan
Orang tidak dapat tidak setuju dengan kenyataan bahwa saat ini ada banyak ASIC jaringan khusus (misalnya, dari Broadcom) yang dapat menerjemahkan proyek semacam itu ke dalam cerita lain dari seri “Enjoying Working with FPGA”. Skeptisisme sesuai dalam kasus ini, namun, saya ingin mengingatkan Anda bahwa proyek Etherblade.net tidak terbatas untuk membuat perangkat jaringan yang terpisah. Tujuan utama Etherblade.net adalah untuk membuat repositori terbuka dari IP-parameter yang didokumentasikan dan didokumentasikan.
Repositori ini dapat menjadi dasar yang efektif untuk menciptakan seluruh jajaran perangkat jaringan (termasuk yang paling eksotis), yang pada gilirannya dapat diimplementasikan baik pada FPGA dan dalam bentuk ASIC.
Tentang ini - saya selesai. Pada artikel selanjutnya, kita akan langsung ke desain perangkat keras, tetapi untuk sekarang saya mengundang Anda untuk berkenalan dengan proyek yang lebih dekat dengan
etherblade.net .