Zevenet Load Balancer Enterprise Edition-arkitekturinterne i bruger- og kerneplads

SLAGT DEN 2. januar 2020

Oversigt

Formålet med den følgende artikel er at give et arkitektonisk overblik over Zevenet-software internt, der er målrettet mod systemadministratorer og softwareudviklere med interesse for at vide mere om, hvordan Zevenet ADC-software fungerer. Al denne information kunne også bruges til at hjælpe med konfigurationen af ​​produktionssystemer eller fejlfindingsformål.

Zevenet arkitektur

Zevenet administrerer processer fra både bruger- og kerneplads, hvilket gør det muligt at samle mest mulig ydelse, men med mest fleksibilitet såvel som at udføre alle de opgaver, der er delegeret til applikationsleveringscontrolleren, såsom belastningsbalancering, sikkerhed og høj tilgængelighed.

Diagrammet nedenfor giver et globalt overblik over de forskellige komponenter, der komponerer Zevenet-systemet internt. Yderligere brikker af mindre betydning er blevet savnet for at give en enklere og klar oversigt.

De følgende sektioner vil blive beskrevet de forskellige stykker, og hvordan de er sammenkoblet.

Zevenet Load Balancer i brugerrum

Delsystemerne, der bruges i User Space, er:

Web-GUI: webgrafisk brugergrænseflade brugt af brugere til at styre konfigurationen og administrationen af ​​hele systemet, det administreres af en HTTPS webserver, der bruger Zevenet API til alle de handlinger, der udføres til belastningsbalanceren.

Zevenet API: eller Zevenet Application-interface, designet efter REST JSON grænseflader, forbrugt via HTTPS, bruges det af andre forskellige brugergrænseflader fra brugerens synspunkt såsom web GUI interface eller ZCLI (Zevenet kommandolinjegrænseflade). Dette værktøj kontrollerer enhver handling mod RBAC-undersystemet, og hvis det er tilladt, udføres handlingen i Zevenet Appliance. API er i stand til at forbinde og administrere ethvert andet userpace-undersystem, der er beskrevet i diagrammet.

RBAC: Rollebaseret adgangskontrol er en adgangs- og kontrolmekanisme defineret omkring brugere, grupper og roller. Dette modul definerer, hvilke handlinger en bruger må udføre med et højt konfigurationsniveau mellem grupper, brugere og roller. Det er fuldstændigt integreret i web GUI-interface, der tillader at indlæse webvisningerne baseret på brugerrollen. Derudover forbruges dette delsystem via API eller ethvert andet værktøj, der bruger API.

LSLB - HTTP (S): LSLB-modulet (Local Service Load Balancer), der er sammensat af HTTP (S) -profil, udføres i brugerrummet af en omvendt proxy kaldet Zproxy, som er i stand til at styre applikationer med høj kapacitet meget effektivt. Dette undersystem er konfigureret af API og kan beskyttes af IPDS-undersystemet (ved hjælp af BlackLists, DoS-regler, RBL og WAF-regelsæt).

GSLB: GSLB-modulet (Global Service Load Balancer) implementeret med en GSLB-profilforekomst udføres i brugerrum af en DNS-serverproces kaldet Gdnsd, der er i stand til at fungere som en avanceret DNS-navneserver med belastningsbalanceringsfunktioner. Dette undersystem er konfigureret af API og kan beskyttes af IPDS-undersystemet (ved hjælp af BlackLists, DoS og RBL).

Sundhedscheck: Dette undersystem er konfigureret af API og bruges af alle belastningsbalancermodulerne (LSLB, GSLB og DSLB) til at kontrollere bagendenes sundhed. Enkel og avanceret kontrol udføres mod backend, og hvis kontrollen mislykkes, markeres backend for den givne gård som ned, og der sendes ikke mere trafik, før kontrollen igen fungerer mod backend. Farm Guardian er ansvarlig for disse kontroller, og den er designet med en høj grad af fleksibilitet og konfigurerbarhed.

Konfigurationsfilsystem: Dette bibliotek bruges til konfigurationsbesparelsesformål, enhver ændring i dette bibliotek replikeres til klyngen, hvis en sådan tjeneste er aktiveret.

Nftlb: Denne userpace-proces styres af API-undersystemet og bruges til to hovedformål: LSLB - L4XNAT styring og konfiguration af IPDS undersystem-modul.

Zevenet Load Balancer i Kernel Space

Delsystemerne, der bruges i Kernel Space, er:

Netfiltersystem LSLB L4xNAT: Netfilter-undersystemet bruges af Nftlb til belastningsbalanceringsformål. Netfilter-regler indlæses i kernen af ​​denne Nftlb-proces for at opbygge en højtydende L4 belastningsbalancer. Nftlb indlæser reglerne for belastningsafbalancering i kernen på en effektiv måde til at styre trafikpakkerne så optimale som muligt. Derudover indlæser Nftlb Netfilter-regler for indtrængenforebyggelse og -beskyttelse (BlackLists, RBL og DoS).

IPDS sortlister: Dette delsystem er integreret i Netfilter System og administreres af Nftlb. Det er sammensat af en gruppe regler, der er konfigureret inden belastningsbalanceringsreglerne for at kunne slip forbindelser for de givne oprindelses-IP'er. Internt skaber det et sæt regler, der er sorteret efter kategori, land, angrebstyper osv. Og opdateres dagligt.

IPDS RBL: Analogt end det foregående, er dette undersystem også integreret i Netfilter og administreres af Nftlb. Oprindelses-IP'en er fanget inden forbindelsesetablering og klient-IP valideres imod en ekstern DNS-tjeneste. Hvis IP'en er løst, markeres IP'en som ondsindet, og forbindelsen slettes.

IPDS DoS: Det samme konfigurationssystem som de to foregående moduler, integreret i Netfilter og administreret af Nftlb. Det er et sæt regler konfigureret inden reglerne for belastningsbalance, der kontrollerer, om pakkerne er en del af en Angreb på afslag på tjeneste. Nogle regler anvendes på pakkestrømmen for at aflytte angrebet, der skal udføres.

Forbindelsessporingssystem: Dette system bruges af Netfilter-undersystemet til forbindelsesadministrationsformål, oversættelse af netværk og til statistikmodul, Samt sundhedstjek delsystem for at tvinge forbindelseshandlinger i øjeblikket af et problem registreres i backend. Forbindelsessporingssystemet bruges også af Clustering-service for at viderestille forbindelsesstatus til den anden knude i klyngen, i tilfælde af, at en klyngemasterknude mislykkes, er den anden knude i stand til at styre trafikken i den samme forbindelsesstatus end den forrige master.

Routing System og DSLB: Disse undersystemer administreres af API'en og konfigureres i Kernel-rummet. Routing-undersystemet er bygget med iproute2 som giver os mulighed for at styre flere rutetabeller i rækkefølge at undgå at opretholde et komplekst regelsæt for statisk routingDesuden oprettes takket være iproute2 DSLB (Datalink Service Load Balancer) modulet til at give belastningsbalancering af uplinks med flere gateways.

I skrivende stund er Zevenet 6 i produktion, så disse undersystemer kan udvikle sig i fremtidige versioner for at tilbyde bedre ydelse eller flere funktioner.

Yderligere dokumentation

Zevenet zproxy-benchmarks, LSLB -HTTP (S) -profil
Zevenet nftlb-benchmarks, LSLB - L4xNAT-profil

Del på:

Dokumentation i henhold til GNU Free Documentation License.

Var denne artikel til hjælp?

Relaterede artikler