Hej Zen Masters, denne artikel præsenterer, hvordan man opretter og konfigurerer en L4 (lag 4) farm, et par backends (webservere) og farm guardian via vores Zen Load Balancer API (ZAPI).
L4xNAT-profil
L4xNAT-farmprofilen giver dig mulighed for at oprette en L4-farm med en meget høj ydeevne og langt flere samtidige forbindelser end load balancer-kerner i lag 7, såsom TCP-, UDP- eller HTTP-farmprofiler. Denne forbedring af ydeevnen i lag 4 modvirker den avancerede indholdshåndtering, som lag 7-profilerne kunne håndtere.
Derudover kan L4xNAT-farme binde en række porte, ikke kun én virtuel port, som det bruges med andre lag 7-profiler. For at kunne vælge en række virtuelle porte eller en specifik virtuel port i L4xNAT-farme er det obligatorisk at vælge en protokoltype. I andre tilfælde vil farmen lytte på alle porte fra den virtuelle IP-adresse.
Initialiser ZAPI
Som vi diskuterede i den sidste artikel, skal du aktivere Zapi-brugeren og angive en nøgle og en adgangskode for at begynde at bruge vores ZAPI.
I de følgende eksempler vil disse parametre blive brugt:
Nøgle: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5 Adgangskode: admin Zen Load Balancer IP: 192.168.101.25 Zen Web Port: 444
Når ZAPI er konfigureret ... lad os komme i gang!
Sådan opretter du en L4xNAT-farm med ZAPI
For det første skal du oprette en L4xNAT-profilfarm med den tilsvarende kommando:
curl --tlsv1 -k -X POST -H 'Indholdstype: text/json' -H "ZAPI_NØGLE: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"interface":"eth0","vip":"192.168.101.25","profile":"L4xNAT"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM
HTTP-verbum: POST, bruges til at oprette farms, backends, tjenester…
JSON-parametre: interface, vip og profile (vport er ikke nødvendig i L4xNAT-profilen).
URI-parametre: farmname -> L4FARM, dette er det navn, der er valgt til gården.
Når denne kommando startes, vises følgende svar:
{ "beskrivelse" : "Ny farm L4FARM", "parametre" : [ { "grænseflade" : "eth0", "navn" : "L4FARM", "profil" : "L4xNAT", "vip" : "192.168.101.25", "vport" : 0 } ] }
Dette svar viser de primære farmparametre. Hvad betyder vport: 0? Når en L4xNAT-farm oprettes, lytter den som standard på alle porte fra den virtuelle IP-adresse, og dette vil blive vist som 0 eller *.
Sådan konfigurerer du en L4xNAT-farm med ZAPI
Når L4xNAT-farmen er oprettet, kan du ændre farmens parametre. Det er muligt at ændre alle parametre, nogle få eller blot én.
Lad os først hente farmparametrene med en GET-anmodning:
curl --tlsv1 -k -X GET -H 'Indholdstype: text/json' -H "ZAPI_NØGLE: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM
HTTP-verbum: GET, bruges til at hente parametre for gårde, backends, tjenester ...
JSON-parametre: Ingen.
URI-parametre: farmname -> L4FARM.
Når denne kommando startes, vises følgende svar:
{ "backends" : [], "description" : "List farm L4FARM", "params" : [ { "algoritme" : "vægt", "fgenabled" : null, "fglog" : null, "fgscript" : null, "fgtimecheck" : 0, "nattype" : "dnat", "persistence" : "ingen", "protokol" : "alle", "ttl" : 120, "vip" : "192.168.101.25", "vport" : 0 } ] }
Dette svar viser de avancerede farmparametre. Disse parametre kan ændres ved hjælp af ZAPI. Lad os ændre et par parametre:
curl --tlsv1 -k -X PUT -H 'Indholdstype: text/json' -H "ZAPI_NØGLE: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"protokol":"tcp","nattype":"nat","port":"80"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM
HTTP-verbum: PUT, bruges til at ændre parametre for gårde, backends, tjenester ...
JSON-parametre: protokol, nattype og port.
URI-parametre: farmname -> L4FARM.
Når denne kommando startes, vises følgende svar:
{ "beskrivelse" : "Rediger farm L4FARM", "parametre" : [ { "protokol" : "tcp" }, { "port" : "80" }, { "nattype" : "nat" } ] }
Hvis vi starter en ny GET-anmodning, vil svaret vise alle parametre med nye ændringer:
{ "backends" : [], "description" : "List farm L4FARM", "params" : [ { "algoritme" : "vægt", "fgenabled" : null, "fglog" : null, "fgscript" : null, "fgtimecheck" : 0, "nattype" : "nat", "persistence" : "ingen", "protokol" : "tcp", "ttl" : 120, "vip" : "192.168.101.25", "vport" : 80 } ] }
Parametrene for nattype, port og protokol er blevet ændret!
Sådan opretter og ændrer du en backend
Hvordan kan vi oprette og konfigurere en backend af L4xNAT farm via ZAPI? Du skal blot følge de samme trin som ovenfor ved hjælp af flere kommandoer med curl:
curl --tlsv1 -k -X POST -H 'Indholdstype: text/json' -H "ZAPI_NØGLE: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"ip":"46.120.34.160","port":"80","prioritet":"1","vægt":"1"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/backends
HTTP-verbum: POST, bruges til at oprette farms, backends, tjenester…
JSON-parametre: ip, port, prioritet og vægt (alle parametre er obligatoriske).
URI-parametre: farmname -> L4FARM, dette er det navn, der er valgt til gården.
Når denne kommando startes, vises følgende svar:
{ "beskrivelse" : "Ny backend 0", "parametre" : [ { "id" : 0, "ip" : "46.120.34.160", "port" : 80, "prioritet" : 1, "vægt" : 1 } ] }
Dette svar viser backend-parametrene og dets ID.
Hvordan kan vi modificere en backend af en L4xNAT farm? Brug af PUT HTTP-verbet med curl:
curl --tlsv1 -k -X PUT -H 'Indholdstype: text/json' -H "ZAPI_NØGLE: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"ip":"46.120.101.65","port":"25","prioritet":"2","vægt":"3"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/backends/0
HTTP-verbum: PUT, bruges til at ændre parametre for gårde, backends, tjenester ...
JSON-parametre: ip.port, prioritet og vægt.
URI-parametre:
gårdnavn -> L4FARM.
backend-id -> 0.
Når denne kommando startes, vises følgende svar:
{ "beskrivelse" : "Rediger backend 0 i farm L4FARM", "parametre" : [ { "ip" : "46.120.101.65" }, { "vægt" : "3" }, { "prioritet" : "2" }, { "port" : "25" } ] }
Hvis vi starter en ny GET-anmodning, vil svaret vise alle parametrene med de nye ændringer:
{ "backends" : [ { "id" : 0, "ip" : "46.120.101.65", "port" : 25, "prioritet" : 2, "vægt" : 3 } ], "beskrivelse" : "Liste farm L4FARM", "parametre" : [ { "algoritme" : "vægt", "fgenabled" : null, "fglog" : null, "fgscript" : null, "fgtimecheck" : 0, "nattype" : "nat", "persistence" : "ingen", "protokol" : "tcp", "ttl" : 120, "vip" : "192.168.101.25", "vport" : 80 } ] }
Vægt-, prioritets- og portparametrene er ændret!
Sådan konfigurerer du Farm Guardian
For at afslutte, lad os konfigurere farm guardianen for L4xNAT farm. Vi skal bruge følgende anmodning med curl:
curl --tlsv1 -k -X PUT -H 'Indholdstype: text/json' -H "ZAPI_NØGLE: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"fgenabled":"true","fgscript":"check_tcp -w 10 -c 10 -H VÆRT -p PORT","fgtimecheck":"15","fglog":"false"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/fg
HTTP-verbum: PUT, bruges til at ændre parametre for gårde, backends, tjenester ...
JSON-parametre: fgenabled, fgscript, fgtimecheck og fglog.
URI-parametre: farmname -> L4FARM.
Når denne kommando startes, vises følgende svar:
{ "beskrivelse" : "Rediger farm L4FARM", "parametre" : [ { "fglog" : "false" }, { "fgenabled" : "true" }, { "fgscript" : "check_tcp -w 10 -c 10 -H HOST -p PORT" }, { "fgtimecheck" : "15" } ] }
Hvad gør disse parametre? Parameteren 'fgenabled' aktiverer farm guardian, parameteren 'fgtimecheck' er tiden mellem kontroller (i sekunder), 'fglog' aktiverer farm guardian-loggene, og 'fgscript' er kommandoen til at kontrollere.
På vegne af Zen Team håber vi virkelig, at du har nydt denne artikel. Vi ses i den næste!