Pengenalan #
nftlb bermaksud nftables Pengimbang Beban. Ia memanfaatkan nftables, tembok api Linux generasi akan datang ditetapkan untuk menggantikan iptables, dan disesuaikan untuk berfungsi sebagai pengimbang beban dan pengedar trafik yang berciri penuh.
nftlb bertindak sebagai pengurus peraturan nftables, direka bentuk untuk mencipta perkhidmatan maya untuk pengimbangan beban pada Lapisan 2, 3 dan 4. Ia meminimumkan bilangan peraturan yang diperlukan dengan menggunakan struktur data yang cekap untuk memadankan paket. Selain itu, ia termasuk API JSON yang mesra pengguna, yang membolehkan interaksi program dan automasi yang lancar. Fleksibiliti ini memudahkan untuk menyepadukan nftlb dengan alat pemeriksa kesihatan pilihan anda.
Falsafah teras nftlb adalah untuk mengekalkan laluan data dalam kernel Linux, memaksimumkan prestasi, sambil mengekalkan satah kawalan dan pemeriksaan kesihatan dalam ruang pengguna. Pemisahan ini membolehkan penyesuaian mudah, keserasian yang dipertingkatkan dengan tindanan Linux dan keupayaan untuk melaraskan tingkah laku secara dinamik.
At RELIANOID, kami mempunyai pengalaman yang luas menggunakan iptables dan rangka kerja Netfilter untuk membina pengimbang beban yang kaya dengan ciri. Melalui pengalaman ini, kami memahami batasan pendekatan ini—had yang diatasi oleh nftlb melalui reka bentuk.
Mengapa nftlb diperlukan? #
Kernel Linux merangkumi pengimbang beban dalaman yang dipanggil IPVS (biasanya dikenali sebagai LVS – Linux Virtual Server). Walaupun IPVS ialah penyelesaian perisian yang stabil dan matang yang digunakan selama bertahun-tahun, ia mempunyai batasan tertentu:
- Tugasan yang lebih sesuai untuk ruang pengguna dikendalikan dalam kernel, mengurangkan fleksibiliti.
- Ia menduplikasi infrastruktur yang telah disediakan oleh Netfilter.
- Ia bergantung pada alat tambahan, seperti iptables, untuk ciri lanjutan seperti proksi telus, multiport atau sokongan multiprotokol.
- Ia menyokong topologi SNAT (Source NAT) dan DSR (Direct Server Return) tetapi tidak mempunyai DNAT (Destination NAT).
Sebaliknya, pendekatan berasaskan iptables mempunyai kekangannya sendiri:
- Setiap perkhidmatan maya memerlukan berbilang peraturan, dengan sekurang-kurangnya dua peraturan bagi setiap hujung belakang, yang meningkatkan kerumitan secara linear apabila bahagian belakang ditambahkan.
- Pemprosesan peraturan berjujukan merendahkan prestasi apabila banyak peraturan terlibat, diburukkan lagi oleh isu penguncian iptables klasik.
- Sokongan IPv6 memerlukan penggunaan arahan berasingan, ip6tables, menjadikan konfigurasi menyusahkan.
- Walaupun iptables menyokong pengimbangan beban DNAT dan SNAT, ia tidak boleh beroperasi dalam topologi DSR.
nftlb, dibina di atas nftables, menangani semua batasan ini dengan pendekatan yang lebih cekap dan moden:
Menyokong semua topologi (SNAT, DNAT, DSR) dan membolehkan pertukaran lancar antara mereka.
Mengendalikan trafik multiport dan multiprotocol secara asli.
Mengurus trafik IPv4 dan IPv6 dengan lancar melalui antara muka tunggal.
Menyediakan semua keupayaan pengimbangan beban yang diperlukan melalui satu antara muka bersatu.
Menggunakan bahasa ekspresif nftables untuk membina pengimbang beban lengkap dengan hanya dua peraturan, memastikan kerumitan berterusan tanpa mengira bilangan hujung belakang.
Padanan diindeks setiap perkhidmatan maya, menghapuskan keperluan untuk pemprosesan peraturan berjujukan.
Memanfaatkan subsistem RCU (Read-Copy-Update), mengelakkan isu penguncian semasa kemas kini peraturan.
Mengekalkan laluan data dalam ruang kernel untuk prestasi optimum sambil mengekalkan fleksibiliti ruang pengguna untuk satah kawalan.
Terbukti memberikan prestasi 10x lebih pantas daripada LVS.
nftlb ciri-ciri #
Pengimbang beban nftlb kini menawarkan keupayaan berikut:
Topologi yang Disokong :
- NAT Destinasi (DNAT), NAT Sumber (SNAT), Pulangan Pelayan Langsung (DSR) dan DNAT Tanpa Kewarganegaraan.
- Topologi ini membolehkan nftlb berfungsi dalam kedua-dua seni bina rangkaian bersenjata dan dua bersenjata.
Sokongan IPv4 dan IPv6: Serasi sepenuhnya dengan kedua-dua keluarga IP untuk persekitaran rangkaian moden.
Pengimbangan Beban Berbilang Lapisan:
- Lapisan 2: Pengimbangan beban berasaskan DSR.
- Lapisan 3: Protokol-agnostik, pengimbangan beban berasaskan IP.
- Lapisan 4: Sokongan untuk protokol UDP, TCP dan SCTP.
Sokongan Multiport: Mengendalikan julat port dan senarai untuk pengurusan trafik yang fleksibel.
Pelbagai Perkhidmatan Maya (Ladang): Menyokong mengurus beberapa perkhidmatan maya secara serentak.
Penjadual: Termasuk penjadualan berasaskan berat, round robin, cincang boleh dikonfigurasikan (berdasarkan IP, port, MAC atau gabungan) dan cincang simetri.
Kegigihan Boleh Dikonfigurasikan (Perkaitan): Menawarkan pertalian bahagian belakang pelanggan dengan tamat masa berdasarkan IP, port, MAC atau gabungannya.
Dasar Keselamatan:
- Senarai putih dan senarai hitam khusus perkhidmatan untuk penapisan kemasukan.
- Penapisan ruang pengguna, beratur dan pengesanan bingkai TCP palsu.
- Had pada sambungan maksimum yang ditetapkan, paket TCP RST sesaat, dan sambungan baharu sesaat.
Sokongan Keutamaan Bahagian Belakang: Membenarkan memberikan keutamaan kepada hujung belakang untuk pengedaran trafik yang dioptimumkan.
Pengurusan Langsung: Pengurusan program perkhidmatan maya dan hujung belakang melalui JSON API.
Keselamatan Perkhidmatan Web: Pengesahan melalui kunci selamat untuk melindungi akses API.
Katil Ujian Automatik: Termasuk tempat ujian terbina dalam untuk ujian dan pengesahan yang diperkemas.
Repositori git rasmi: https://github.com/relianoid/nftlb
Log Perubahan: https://www.relianoid.com/knowledge-base/nftlb/nftlb-changelog/