Mis on nftlb?

POSTITATUD 2. veebruaril 2018

Ülevaade

nftlb tähistab nftables koormuse tasakaalustajaon järgmise põlvkonna Linuxi tulemüür, mis asendab iptables, kohandatud käituma täieliku koormuse tasakaalustaja ja liiklusjaotajana.

nftlb on nftable-reeglite haldur, et luua virtuaalsed teenused koormuse tasakaalustamiseks kihtidel 2, 3 ja 4, minimeerides reeglite arvu ja kasutades struktuure pakettide tõhusaks sobitamiseks. See on varustatud ka lihtsa JSON API-teenusega, et paindlikult suhelda programmiga nftlb ja täita automatiseerimist. Nii et saate eelistatud tervisekontrolli nftlb-ga integreerimiseks kasutada väga lihtsalt.

Filosoofia nftlb on säilitada andmete tee kernelisse, et saavutada võimalikult suur jõudlus, kuid kontrolltasand ja heath kontrollib kasutajaruumi paindlikult, et muuta käitumist kergesti, kuid ka ühilduvaks ülejäänud linux-stackiga .

Zevenetis oleme täisfunktsionaalse koormuse tasakaalustaja loomiseks aastaid kasutanud iptablesi ja netfiltri infrastruktuuri, seega teame väga hästi sellise lähenemise piiranguid, millega säästame nftlb.

Miks on nftlb vaja?

Linuxi kernel loeb juba sisemist koormuse tasakaalustajat, mida nimetatakse IPVS-ks või tuntud ka kui LVS-i (Linux Virtual Server), mis on täielik tarkvara ja väga stabiilne, mida on kasutatud juba aastaid. Kuid sellisel koormuse tasakaalustajal on mõningad piirangud: tuuma pooli kasutatakse ülesannete jaoks, mida kasutaja ruumi peaks täitma, teatud funktsioonide puhul, mis dubleerivad praegu võrgufiltri pakutavat infrastruktuuri, ja tugineb iptables'ile ja muudele tarkvara osadele, kui seda on vaja keerulisem (näiteks läbipaistev puhverserver, mitmport või mitmikprotokoll). See pakub SNAT- ja DSR-topoloogiaid, kuid mitte DNAT-i.

Iptables-lähenemise puhul on peamised piirangud virtuaalserveriga loodavate reeglite arv ja taustaprogrammide arv (minimaalne ~ 2 reeglid tagaplaani kohta koos mitme vastega) ja lineaarne keerukus vastavalt lisatud taustaprogrammide arvule . Reeglite järjestikune töötlemine aeglustab ka jõudlust, kui kaasatakse liiga palju reegleid, ja see on veelgi halvem tänu klassikalisele iptablesi lukustusprobleemile. IPv6i koormuse tasakaalustamiseks on see ebamugav, kui kasutada erinevat käsku ip6tables. Lisaks sellele võimaldab see lähenemine pakkuda DNAT-i (sihtkoha NAT läbipaistvuse jaoks) ja SNAT (allika NAT) koormuse tasakaalustamist, kuid ei suuda töötada DSR (Direct Server Return) topoloogiates.

koos nftlb põhineb nftables salvestame kõik need probleemid:
See võib ehitada kõik need topoloogiad ja muutuda üksteisest väga kergesti.
See suudab tegeleda mitme- ja mitmeprotokolliga.
See suudab sujuvalt hallata IPv4i ja IPv6i liiklust.
Kõigi koormuse tasakaalustamiseks vajalike võimaluste pakkumiseks kasutatakse ainult ühte liidest.
nftables pakub rohkem väljendusrikka keelt, et saaksime kasutada 2i reegleid, et ehitada täielik koormuse tasakaalustaja pideva keerukusega!
Vasted indekseeritakse virtuaalse teenuse kohta, nii et me ei pea neid kõiki järjestikku töötlema.
See on ette nähtud RCU allsüsteemist, nii et reeglite värskendamisel pole lukustusprobleemi.
Andmatee jääb kerneli ruumi, kuid tagab kasutajataseme paindlikkuse juhttasandi jaoks.
Seda on tõestatud see võib teha 10xi kiiremini kui LVS.

nftlb funktsioonid

Praegu nftlb pakub järgmisi võimalusi:
Toetatud topoloogiad: sihtkoha NAT, allika NAT, otseserveri tagastamine ja kodutute DNAT. See võimaldab koormuse tasakaalustajat kasutada ühe- ja kahe relvaga võrguarhitektuurides.
Toetus nii IPv4 kui ka IPv6 peredele.
Mitmekihiline koormuse tasakaalustaja: DSR kihis 2, IP-põhine koormuse tasakaalustamine protokolli agnostikuga kihil 3, ja UDP, TCP ja SCTP koormuse tasakaalustamise toetamine kihis 4.
Mitmekordne tugi sadamate vahemikele ja loenditele.
Mitme virtuaalse teenuse (või talumajapidamise) tugi.
Saadaval on ajastajad: kaal, ümmargune, konfigureeritav räsi (IP, port, MAC või nende kombinatsioon) ja sümmeetriline räsi.
Konfigureeritava püsivuse või kliendipõhise liitumise toetamine ajalõppega (IP, port, MAC või nende kombinatsioon).
Toetada turvapoliitikat teenuse kohta: valged ja mustad nimekirjad (alates sisemisest), järjekord kasutajaruumi filtrile, võltsitud TCP-kaadrite filtreerimine, kehtestatud ühenduste maksimaalne arv, piirata TCP RST sekundis, piirata uusi ühendusi sekundis ja rohkem.
Prioriteeditoetus iga taustaprogrammi kohta.
Virtuaalsete teenuste ja taustaprogrammide reaalajas haldamine programmiliselt JSON API kaudu.
Veebiteenuse autentimine turvakoodiga.
Komplektis sisaldub ka automatiseeritud testimine.

Ametlik git-hoidla: https://github.com/zevenet/nftlb

Muutus: https://www.zevenet.com/knowledge-base/nftlb/nftlb-changelog/

Jaga:

Dokumentatsioon GNU Vaba Dokumentatsiooni Litsentsi tingimustel.

Kas see artikkel oli kasulik?

seotud artiklid