Ülevaade #
nftlb tähistab nftables'i koormuse tasakaalustaja. See võimendab nftables, järgmise põlvkonna Linuxi tulemüür, mis on loodud iptables'i asendama ning on kohandatud toimima täisfunktsionaalse koormuse tasakaalustaja ja liikluse jaoturina.
nftlb toimib nftables'i reeglite haldurina, mis on loodud virtuaalsete teenuste loomiseks koormuse tasakaalustamiseks 2., 3. ja 4. kihil. See minimeerib vajalike reeglite arvu, kasutades pakettide sobitamiseks tõhusaid andmestruktuure. Lisaks sisaldab see kasutajasõbralikku JSON API-t, mis võimaldab sujuvat programmilist interaktsiooni ja automatiseerimist. See paindlikkus muudab nftlb integreerimise teie eelistatud tervisekontrolli tööriistadega lihtsaks.
Nftlb põhifilosoofia on hoida andmetee Linuxi kernelis, maksimeerides jõudlust, säilitades samal ajal juhtimistasandi ja tervisekontrollid kasutajaruumis. See eraldamine võimaldab hõlpsat kohandamist, paremat ühilduvust Linuxi pinuga ja võimalust käitumist dünaamiliselt kohandada.
At RELIANOID, meil on ulatuslikud kogemused iptables'i ja Netfilteri raamistiku kasutamisel funktsiooniderikaste koormusjaoturite loomiseks. Selle kogemuse kaudu mõistame nende lähenemisviiside piiranguid – piiranguid, millest nftlb on disaini abil üle saanud.
Miks nftlb vaja? #
Linuxi kernel sisaldab sisemist koormuse tasakaalustajat nimega IPVS (tuntud ka kui LVS – Linux Virtual Server). Kuigi IPVS on stabiilne ja küps tarkvaralahendus, mida on kasutatud aastaid, on sellel teatud piirangud:
- Kasutajaruumi paremini sobivaid ülesandeid käsitletakse kernelis, mis vähendab paindlikkust.
- See dubleerib Netfilteri juba pakutavat infrastruktuuri.
- See tugineb täiendavatele tööriistadele, näiteks iptablesile, selliste täiustatud funktsioonide jaoks nagu läbipaistev puhverserver, mitme pordi või mitme protokolli tugi.
- See toetab SNAT-i (allika NAT) ja DSR-i (otsese serveri tagastamise) topoloogiaid, kuid puudub DNAT (sihtkoha NAT).
. iptablesTeisest küljest on -põhisel lähenemisviisil omad piirangud:
- Iga virtuaalne teenus nõuab mitut reeglit, vähemalt kahte reeglit iga serveripoolse teenuse kohta, mis suurendab keerukust lineaarselt serveripoolsete teenuste lisamisega.
- Järjestikuste reeglite töötlemine halvendab jõudlust, kui reegleid on palju, mida süvendab klassikaline iptables'i lukustusprobleem.
- IPv6 tugi nõuab eraldi käsu ip6tables kasutamist, mis muudab seadistamise tülikaks.
- Kuigi iptables toetab DNAT ja SNAT koormuse tasakaalustamist, ei saa see töötada DSR topoloogiates.
nftlb, ehitatud nftables, käsitleb kõiki neid piiranguid tõhusama ja kaasaegsema lähenemisviisiga:
Toetab kõiki topoloogiaid (SNAT, DNAT, DSR) ja võimaldab nende vahel sujuvat vahetamist.
Haldab natiivselt mitmepordilist ja mitmeprotokollilist liiklust.
Haldab sujuvalt nii IPv4 kui ka IPv6 liiklust ühe liidese kaudu.
Pakub kõiki vajalikke koormuse tasakaalustamise võimalusi ühe ühtse liidese kaudu.
Kasutab nftablesi väljendusrikast programmeerimiskeelt, et luua täielik koormuse tasakaalustaja vaid kahe reegliga, tagades püsiva keerukuse olenemata taustprogrammide arvust.
Vasted indekseeritakse virtuaalse teenuse kaupa, mis välistab järjestikuse reeglite töötlemise vajaduse.
Kasutab RCU (lugemise-kopeerimise-uuendamise) alamsüsteemi, vältides reeglite uuendamise ajal lukustumisprobleeme.
Hoiab optimaalse jõudluse tagamiseks andmetee kerneli ruumis, säilitades samal ajal juhtimistasandi kasutajaruumi paindlikkuse.
Tõestatud 10 korda kiirema jõudlusega kui LVS.
nftlb Omadused #
. nftlb koormuse tasakaalustaja pakub praegu järgmisi võimalusi:
Toetatud topoloogiad:
- Sihtkoha NAT (DNAT), allika NAT (SNAT), otseserveri tagastus (DSR) ja olekuta DNAT.
- Need topoloogiad võimaldavad nftlb-l toimida nii ühe- kui ka kaheharulistes võrguarhitektuurides.
IPv4 ja IPv6 tugiTäielikult ühilduv mõlema IP-perekonnaga tänapäevastes võrgukeskkondades.
Mitmekihiline koormuse tasakaalustamine:
- 2. kiht: DSR-põhine koormuse tasakaalustamine.
- 3. kiht: protokollist sõltumatu, IP-põhine koormuse tasakaalustamine.
- 4. kiht: UDP, TCP ja SCTP protokollide tugi.
Mitmepordi tugi: Haldab paindliku liikluse haldamise jaoks pordivahemikke ja loendeid.
Mitmed virtuaalsed teenused (talud)Toetab mitme virtuaalse teenuse samaaegset haldamist.
PlaneerijadSisaldab kaalupõhist ajastamist, ringintervalli, konfigureeritavat räsi (IP, pordi, MAC-aadressi või kombinatsioonide põhjal) ja sümmeetrilist räsi.
Konfigureeritav püsivus (afiinsus)Pakub kliendi ja taustaserveri vahelist seost ajalõpuga, mis põhineb IP-l, pordil, MAC-aadressil või nende kombinatsioonidel.
Turvapoliitika:
- Teenusepõhised valged ja mustad nimekirjad siseneva teabe filtreerimiseks.
- Kasutajaruumi filtreerimine, järjekorda panemine ja võltsitud TCP-kaadrite tuvastamine.
- Piirangud loodud ühenduste maksimaalsele arvule, TCP RST pakettide arvule sekundis ja uutele ühendustele sekundis.
Tagaserveri prioriteetne tugi: Võimaldab optimeeritud liikluse jaotuse jaoks taustsüsteemidele prioriteetide määramist.
Otseülekannete haldamineVirtuaalsete teenuste ja taustsüsteemide programmiline haldamine JSON API kaudu.
Veebiteenuse turvalisusAutentimine turvalise võtme abil API-juurdepääsu kaitsmiseks.
Automatiseeritud testimiskeskkondSisaldab sisseehitatud testplatvormi sujuvamaks testimiseks ja valideerimiseks.
Ametlik git-hoidla: https://github.com/relianoid/nftlb
Muutus: https://www.relianoid.com/knowledge-base/nftlb/nftlb-changelog/