FBOSS adalah tumpukan perangkat lunak Facebook untuk mengendalikan dan mengelola switch jaringan.
FBOSS terdiri dari sejumlah aplikasi ruang pengguna, perpustakaan, dan utilitas.
Rilisan open source awal FBOSS terutama terdiri dari daemon agen, namun kami juga sedang berupaya untuk merilis bagian dan fungsionalitas tambahan.
Salah satu bagian utama dari FBOSS adalah daemon agen, yang berjalan di setiap switch, dan mengontrol ASIC penerusan perangkat keras. Daemon agen mengirimkan informasi penerusan ke perangkat keras, dan mengimplementasikan beberapa protokol bidang kendali seperti ARP dan NDP. Agen menyediakan API penghematan untuk mengelola rute, untuk memungkinkan proses kontrol perutean eksternal memprogram informasi peruteannya ke dalam tabel penerusan perangkat keras.
Kode agen bisa dilihat di fboss/agent
Agen memerlukan file konfigurasi JSON untuk menentukan port dan konfigurasi VLAN-nya. Beberapa contoh file konfigurasi dapat ditemukan di fboss/agent/configs. File-file ini sebenarnya tidak ditujukan untuk konsumsi manusia--di Facebook kami memiliki alat yang menghasilkan file-file ini untuk kami.
Agen FBOSS mengelola tabel penerusan di ASIC perangkat keras, namun perlu diberi tahu tentang rute saat ini melalui API hemat.
Rilis sumber terbuka awal kami belum berisi daemon protokol perutean yang mampu berkomunikasi dengan agen. Daemon protokol perutean yang kami gunakan di Facebook agak spesifik untuk lingkungan kami, dan kemungkinan besar tidak akan berguna bagi komunitas sumber terbuka. Untuk penggunaan yang lebih umum di luar Facebook, alat perutean sumber terbuka yang sudah ada dapat diubah agar dapat berkomunikasi dengan agen FBOSS, namun kami belum menerapkannya. Sementara itu, kami telah menyertakan contoh kecil skrip python di fboss/agent/tools yang dapat menambah dan menghapus rute secara manual.
Tentunya alat dan utilitas tambahan diperlukan untuk berinteraksi dengan agen FBOSS, melaporkan statusnya, menghasilkan file konfigurasi, dan masalah debugging.
Saat ini kami belum memiliki banyak alat yang siap untuk dirilis secara open source, namun kami berharap dapat menyediakan lebih banyak alat ini dalam beberapa minggu mendatang. Sementara itu, kompiler thrift dapat secara otomatis membuat skrip python-remote untuk memungkinkan pemanggilan manual berbagai antarmuka thrift agen.
Lihat dokumen BUILD.md untuk petunjuk tentang cara membuat FBOSS.
FBOSS telah dirancang khusus untuk menangani kebutuhan jaringan pusat data Facebook, namun kami berharap dapat bermanfaat juga bagi masyarakat luas. Namun perlu diperhatikan bahwa rilis awal FBOSS ini kemungkinan akan memerlukan modifikasi dan pengembangan tambahan untuk mendukung konfigurasi jaringan lain di luar fitur yang digunakan oleh Facebook. Hingga semakin matang, FBOSS kemungkinan besar akan lebih diminati oleh pengembang perangkat lunak jaringan, dibandingkan administrator jaringan yang berharap untuk menggunakannya sebagai solusi siap pakai.
Kami menantikan masukan dari komunitas, dan kami berharap FBOSS dapat berfungsi sebagai titik awal bagi pengguna lain yang ingin memprogram peralihan jaringan.
Pengembangan FBOSS sedang berlangsung di Facebook, dan kami berencana untuk terus merilis lebih banyak komponen, fitur tambahan, dan penyempurnaan pada peralatan yang ada.
Lihat LISENSI.