Inhoud
Overzicht
Het doel van het volgende artikel is om een architectonisch overzicht te bieden van Zevenet software-internals gericht op systeembeheerders en softwareontwikkelaars met interesse om meer te weten te komen over hoe Zevenet ADC-software werkt. Al deze informatie kan ook worden gebruikt om te helpen bij de configuratie van productiesystemen of probleemoplossing.
Zevenet-architectuur
Zevenet beheert processen vanuit zowel gebruikers- als kernelruimte, waardoor de meeste prestaties kunnen worden verzameld, maar met de meeste flexibiliteit en ook om alle taken uit te voeren die aan de applicatie-afleveringscontroller worden gedelegeerd, zoals taakverdeling, beveiliging en hoge beschikbaarheid.
Het onderstaande diagram geeft een globaal overzicht van de verschillende componenten die intern het Zevenet-systeem vormen. Extra stukken van minder belang zijn gemist om een eenvoudiger en duidelijk zicht te bieden.
De volgende paragrafen zullen de verschillende stukken worden beschreven en hoe ze onderling zijn verbonden.
Zevenet Load Balancer in gebruikersruimte
De subsystemen die worden gebruikt in Gebruikersruimte zijn:
Web-GUI: web grafische gebruikersinterface die door gebruikers wordt gebruikt om de configuratie en administratie van het hele systeem te beheren, het wordt beheerd door een HTTPS-webserver die de Zevenet API gebruikt voor alle acties die worden uitgevoerd naar de taakverdeler.
Zevenet-API: of Zevenet Application-programma-interface, ontworpen volgens de REST en JSON interfaces, geconsumeerd via HTTPS, het wordt gebruikt door andere gebruikersinterfaces vanuit het oogpunt van de gebruiker, zoals de web GUI interface of ZCLI (Zevenet opdrachtregelinterface). Deze tool controleert elke actie tegen het RBAC-subsysteem en als het is toegestaan, wordt de actie ondernomen in de Zevenet Appliance. De API kan verbinding maken met elk ander gebruikersruimte-subsysteem dat in het diagram wordt beschreven.
RBAC: Op rollen gebaseerde toegangscontrole is een toegangs- en controlemechanisme dat is gedefinieerd rond gebruikers, groepen en rollen. Deze module definieert welke acties een gebruiker mag doen met een hoog configuratieniveau tussen groepen, gebruikers en rollen. Het is volledig geïntegreerd in de web-GUI-interface waarmee webweergaven kunnen worden geladen op basis van de gebruikersrol. Bovendien wordt dit subsysteem verbruikt via de API of een ander hulpmiddel dat de API.
LSLB - HTTP (S): De LSLB-module (Local Service Load Balancer) samengesteld door HTTP (S) -profiel wordt in gebruikersruimte uitgevoerd door een omgekeerde proxy genaamd Zproxy die in staat is om applicaties met hoge doorvoer zeer efficiënt te beheren. Dit subsysteem wordt geconfigureerd door de API en kan worden beschermd door het IPDS-subsysteem (met behulp van BlackLists, DoS-regels, RBL- en WAF-regelsets).
GSLB: De GSLB-module (Global Service Load Balancer) die is geïmplementeerd met een GSLB-profielinstantie, wordt in gebruikersruimte uitgevoerd door een DNS-serverproces genaamd Gdnsd dat kan werken als een geavanceerde DNS-naamserver met functies voor taakverdeling. Dit subsysteem wordt geconfigureerd door de API en kan worden beschermd door het IPDS-subsysteem (met behulp van BlackLists, DoS en RBL).
Gezondheidchecks: Dit subsysteem wordt geconfigureerd door de API en gebruikt door alle load balancer-modules (LSLB, GSLB en DSLB) om de status van de backends te controleren. Eenvoudige en geavanceerde controles worden uitgevoerd tegen de backend en als de controle mislukt, wordt de backend voor de betreffende farm gemarkeerd als omlaag en wordt er geen verkeer meer doorgestuurd totdat de cheque weer werkt tegen de backend. De Farm Guardian is verantwoordelijk voor deze controles en is ontworpen met een hoge mate van flexibiliteit en configureerbaarheid.
Configuratie Bestandssysteem: Deze map wordt gebruikt voor het opslaan van de configuratie. Elke wijziging in deze map wordt naar de cluster gerepliceerd, als een dergelijke service is ingeschakeld.
Nftlb: Dit gebruikersproces wordt beheerd door het API-subsysteem en wordt voor twee hoofddoeleinden gebruikt: LSLB - L4XNAT beheer en configuratie van de IPDS subsysteemmodule.
Zevenet Load Balancer in kernelruimte
De subsystemen die worden gebruikt in Kernel Space zijn:
Netfilter-systeem LSLB L4xNAT: Het Netfilter-subsysteem wordt door Nftlb gebruikt voor taakverdeling. Netfilter-regels worden door dit Nftlb-proces in de kernel geladen om bouw een hoogwaardige L4 load balancer. Nftlb laadt de load balancer-regels in de kernel op een efficiënte manier om de verkeerspakketten zo optimaal mogelijk te beheren. Nftlb laadt bovendien Netfilter-regels voor inbraakpreventie en -bescherming (BlackLists, RBL en DoS).
IPDS-zwarte lijsten: Dit subsysteem is geïntegreerd in het Netfilter-systeem en wordt beheerd door Nftlb. Het is samengesteld uit een groep regels die vóór de load balancer-regels zijn geconfigureerd verbreek verbindingen voor de gegeven oorsprong IP's. Intern creëert het een aantal regels geordend op categorie, land, soorten aanvaller, enz. En dagelijks bijgewerkt.
IPDS RBL: Analoog aan het vorige, is dit subsysteem ook geïntegreerd in Netfilter en beheerd door Nftlb. Het oorspronkelijke IP wordt vastgelegd voordat de verbinding tot stand wordt gebracht en het IP van de client wordt gevalideerd een externe DNS-service. Als het IP-adres is opgelost, wordt het IP-adres gemarkeerd als schadelijk en wordt de verbinding verbroken.
IPDS DoS: Hetzelfde configuratiesysteem als de twee vorige modules, geïntegreerd in Netfilter en beheerd door Nftlb. Het is een set regels geconfigureerd vóór de load balance-regels die controleren of de pakketten deel uitmaken van een Denial of Service-aanval. Sommige regels worden toegepast op de pakketstroom om de aanval te onderscheppen voordat deze wordt uitgevoerd.
Verbindingsvolgsysteem: Dit systeem wordt door het Netfilter-subsysteem gebruikt voor verbindingsbeheer, netwerkvertaling en voor de statistische moduleAlsmede de gezondheidscheck subsysteem om verbindingsacties te forceren op het moment van een probleem wordt gedetecteerd in de backend. Het verbindingsvolgsysteem wordt ook gebruikt door de Clustering om de verbindingsstatus door te sturen naar het tweede knooppunt van het cluster, in het geval dat een clusterknooppunt mislukt, kan het tweede knooppunt het verkeer beheren in dezelfde verbindingsstatus als de vorige master.
Routeringssysteem en DSLB: Deze subsystemen worden beheerd door de API en geconfigureerd in de kernelruimte. Het routing-subsysteem is gebouwd met IProute2 waarmee we meerdere routingtabellen op volgorde kunnen beheren om te voorkomen dat een complexe regelset voor statische routering wordt gehandhaafddankzij IProute2 is bovendien de DSLB-module (Datalink Service Load Balancer) gecreëerd om te voorzien load-balancing van uplinks met verschillende gateways.
Op het moment dat dit artikel wordt geschreven, is Zevenet 6 in productie, dus die subsystemen kunnen evolueren in toekomstige versies om betere prestaties of meer functies te bieden.
Aanvullende documentatie
Zevenet zproxy benchmarks, LSLB -HTTP (S) profiel
Zevenet nftlb-benchmarks, LSLB - L4xNAT-profiel