GNU/Linux >> Belajar Linux >  >> Linux

Faucet:Pengontrol SDN sumber terbuka untuk jaringan produksi berkecepatan tinggi

Berkat perangkat lunak open source, sekarang kita dapat mengambil kendali dan memodifikasi perilaku hampir setiap komponen dalam sistem TI. Kami dapat memodifikasi semuanya mulai dari tumpukan jaringan di kernel hingga kode server web di ruang pengguna untuk melakukan peningkatan atau mengimplementasikan fitur baru.

Rintangan terakhir untuk memiliki kendali penuh atas tumpukan perangkat keras dan perangkat lunak kami adalah perangkat keras jaringan fisik. Perangkat ini biasanya dibuat dari alat open source yang kita sukai, tetapi ditampilkan sebagai kotak hitam yang tidak dapat dengan mudah dimodifikasi oleh operator jaringan.

Standar terbuka seperti OpenFlow dan P4 berjanji untuk meningkatkan lanskap dengan membuka akses ke perangkat ini melalui API yang dapat diprogram, tetapi mereka masih memerlukan seseorang untuk menulis pengontrol untuk mengimplementasikan kembali fungsionalitas sakelar normal, seperti penerusan dan perutean, dalam multi- vendor, cara yang sesuai standar. Hal ini mendorong grup kami untuk menulis pengontrol jaringan yang ditentukan perangkat lunak (SDN) Faucet, yang memungkinkan siapa saja untuk sepenuhnya mewujudkan impian jaringan yang dapat diprogram.

Cara kerja Faucet

Faucet adalah pengontrol OpenFlow open source yang ringkas yang memungkinkan pengguna menjalankan jaringan mereka dengan cara yang sama seperti menjalankan cluster server. Faucet membuat jaringan dapat didekati oleh semua orang dengan membawa alur kerja DevOps ke jaringan. Hal ini dilakukan dengan membuat fungsi jaringan (seperti protokol perutean, pencarian tetangga, dan algoritme switching) mudah dikelola, diuji, dan diperluas dengan memindahkannya ke perangkat lunak biasa yang berjalan di server, versus pendekatan tradisional untuk menyematkan fungsi-fungsi ini dalam firmware. dari switch atau router. Faucet bekerja dengan menyerap file konfigurasi YAML yang mewakili topologi jaringan dan fungsionalitas jaringan yang diperlukan, dan berfungsi untuk memprogram setiap perangkat di jaringan dengan OpenFlow.

Kisah Faucet dimulai pada September 2015 ketika REANNZ menulis versi pertama Faucet berdasarkan kode prototipe oleh WAND Network Research Group di University of Waikato. Sejak itu, kelompok-kelompok ini dan banyak lainnya di Selandia Baru dan lebih jauh telah bermitra untuk menulis dan memelihara pengontrol OpenFlow fungsional yang dapat digunakan oleh massa. Kami telah berkomitmen untuk menjadi proyek sumber terbuka sejak hari pertama, karena kami merasa ini adalah cara terbaik untuk membuat kontribusi kami tersedia untuk membantu komunitas, dan kami senang telah menerima perubahan kode dari lebih dari 40 pengembang yang berbeda hingga saat ini.

Pengujian dan kompatibilitas lintas-vendor

Saat menulis pengontrol jaringan, sangat penting untuk mengirimkan kode yang berfungsi dengan setiap rilis yang tidak akan merusak penerapan produksi saat dimutakhirkan. Akibatnya, testabilitas adalah salah satu prinsip panduan penting Faucet. Kami memiliki rangkaian pengujian komprehensif yang tidak hanya menguji kualitas kode dengan linting dan analisis statis, tetapi kami juga menguji sejumlah besar topologi jaringan dengan berbagai fitur Faucet yang diaktifkan. Pengujian ini dilakukan secara otomatis pada setiap perubahan kode.

Rangkaian pengujian kami juga memungkinkan kami untuk memenuhi syarat perangkat keras yang mendukung semua fitur Faucet. Ini telah membuat kompatibilitas SDN lintas-vendor menjadi kemungkinan yang nyata, karena sejumlah vendor menjalankan rangkaian uji Faucet sebagai bagian dari proses QA mereka untuk memvalidasi bahwa firmware mereka mendukung Faucet. Ini juga memungkinkan kami untuk menghindari penulisan driver tambahan atau ekstensi vendor untuk memprogram perangkat baru, yang memiliki manfaat tambahan untuk menjaga basis kode kami tetap kecil dan konsisten.

Keran di dunia nyata

Faucet telah digunakan di banyak jaringan berbeda di seluruh dunia. Baru-baru ini, kami bermitra dengan konferensi ACM/IEEE Supercomputing Conference 2018 (SC18) untuk menyebarkan jaringan Faucet besar sebagai bagian dari jaringan SCinet yang mengirimkan terabit per detik internet ke stan di lantai pertunjukan. Jaringan yang kami bangun menampilkan perangkat keras dari Allied Telesis, Cisco, dan NoviFlow, dan kami berhasil melebihi kapasitas 9 terabit per detik.

Perangkat NoviFlow yang menjalankan Barefoot Tofino P4 Application-Specific Integrated Circuit (ASIC) adalah router inti jaringan. NoviFlow menulis OpenFlow sebagai aplikasi P4, yang memungkinkan Faucet menggunakan OpenFlow sebagai API runtime di atas P4. Kami menulis beberapa kode otomatisasi yang memungkinkan untuk diintegrasikan dengan basis data koneksi pelanggan SC18 dan menghasilkan konfigurasi Faucet dengan cepat. Basis data mengalokasikan setiap stan sebuah VLAN dan informasi subnet.

Tugas Faucet adalah melakukan perutean antar-VLAN pada router inti dan peer Border Gateway Protocol (BGP) dengan dua router inti SCinet untuk memungkinkan bilik dirutekan ke internet. Implementasi Link Aggregation Control Protocol (LACP) di dalam Faucet memungkinkan kami untuk menggabungkan tautan 2x100G ke setiap router hulu untuk memungkinkan ketahanan (jika ada masalah serat). Masing-masing stan disediakan koneksi internet—1Gb, 10Gb, atau 100Gb—dengan access switch (disediakan oleh salah satu vendor) yang juga dikendalikan oleh Faucet. Saklar akses melakukan penerusan dan menerapkan kebijakan keamanan pada setiap port akses untuk melindungi jaringan. Keamanan jaringan tambahan disediakan oleh Poseidon CyberReboot, alat pembelajaran mesin yang terintegrasi dengan Faucet dan dapat mengidentifikasi host akhir yang mencurigakan di jaringan. Semua layanan di jaringan, seperti Dynamic Host Configuration Protocol (DHCP) dan BGP, disediakan oleh daemon open source (misalnya, dhcpd dan BIRD) yang berjalan sebagai layanan network functions virtualization (NFV) di server Linux.

Kami percaya penerapan SC18 menunjukkan kematangan Faucet dan OpenFlow untuk menjalankan jaringan produksi skala besar yang nyata. Kami juga berharap untuk melihat orang lain mengambil tantangan untuk mengambil kendali atas jaringan mereka dengan menggunakan SDN. Untuk mengetahui lebih lanjut tentang faucet dan cara menerapkannya, silakan kunjungi situs web kami, yang memiliki tautan ke tutorial, dokumentasi, dan milis untuk diskusi pengguna. Bagi mereka yang tertarik untuk terlibat dengan proyek open source kami, kami memiliki panduan pengembang untuk membantu kontributor pertama kali. Terakhir, untuk melacak kemajuan kami dan pengumuman konferensi, tutorial, atau penerapan mendatang yang serupa dengan SC18, ikuti kami di Twitter.

Brad Cowie akan hadir Menggunakan pengontrol SDN open source untuk menyebarkan jaringan produksi berkecepatan tinggi di linux.conf.au, 21-25 Januari di Christchurch, Selandia Baru.


Linux
  1. Memahami Hukum Linus untuk keamanan sumber terbuka

  2. Timekpr (Revived)- Aplikasi Parental Control Open Source untuk Linux

  3. Kdenlive – Editor Video Non-Linear Open Source untuk Pro &Pemula

  1. 10 Browser Web Ringan Open Source untuk Linux

  2. LyX – Pemroses Dokumen Open Source yang Kuat untuk Linux

  3. Pixelorama – Editor Sumber Terbuka untuk Pixel Art

  1. 4 alat sumber terbuka untuk menjalankan server Linux

  2. 10 Software Akuntansi Open Source Terbaik untuk Linux

  3. Plots – Aplikasi Pembuatan Grafik Open Source untuk GNOME