Hvordan Global Service Load Balancing GSLB fungerer

SENDT AF Zevenet | 16. januar, 2018

GSLB Oversigt

I dag er den høje tilgængelighed af it-tjenester et must, og det er grunden til, at virksomheder og organisationer udvikler computersystemer fordelt over hele verden og værtsservice i mere end et datacenter, da det giver følgende fordele:

Fejltolerance: Når den hostede tjeneste i datacenteret fejler, fortsætter tjenesten på nogen af ​​de andre tilgængelige websteder.
Automatisk datacentergendannelse: Når et datacenter mislykkes, omdirigeres tjenesten automatisk til ethvert andet tilgængeligt datacenter.
Load Balancing: trafikken kan optimeres ved at distribuere belastningen blandt alle de tilgængelige websteder, hvilket forbedrer ventetiden og gør serviceleverancen hurtigere.
Forbedret latens: Klientprogrammets trafik er direkte med den reelle server, det er ikke nødvendigt at overføre alle applikationsdata gennem belastningsbalanceren.

Vedtagelsen og implementeringen af ​​it-tjenester i Cloud kræver, at en metode baseret på WAN er den bedste mulighed for at levere Geo-placeret højtilgængeløsninger. Det er det, vi kalder Global Service Load balancing or GSLB.

Hvornår skal du bruge GSLB

GSLB-tjenesten anbefales at blive brugt til følgende brugsager:

Virksomheder, der er vært for deres tjenester i mere end et datacenter gennem WAN.
Virksomheder, der kræver at skabe høj tilgængelighed af tjenester eller datacentre.
Internetudbydere til at oprette indgående belastningsbalanceringstjenester, der skal bruges af deres brugere.

Absolut når det er nødvendigt at dele brugere og trafik mellem servere rundt om i verden uden fejlpunkter, er GSLB den rigtige løsning.

Hvordan virker GSLB

GSLB er en belastningsbalanceringsmekanisme på DNS protokollen, det er hurtigt og pålideligt, fordi det bruger UDP protokol og klientens svar er næsten i realtid.

I en fælles DNS-forespørgsel, for eksempel www.zvnlb.net, sender en klient DNS-forespørgselsopløsningen til de lokale konfigurerede DNS-servere (for eksempel 8.8.8.8 og 8.8.4.4 ) og derefter vælger klientsystemet tilfældigt en af ​​serverne for at imødekomme anmodningen og sende forespørgslen.

Den valgte DNS-server modtager anmodningen fra klienten (for eksempel, hvad er IP-adressen til www.zvnlb.net? ) og de lokale konfigurerede DNS-servere forsøger at finde hvem der er ansvarlig for at løse DNS-zonen zvnlb.net.

Den DNS, der bruges af klienten, 8.8.8.8 or 8.8.4.4 i dette tilfælde opdager det ns1.zvnlb.net og ns2.zvnlb.net er ansvarlige for zone opløsninger for zvnlb.net så de sender DNS-forespørgslen modtaget af klienten (for eksempel, hvad er IP-adressen til www.zvnlb.net? ) til en af ​​dem.

En af navnet servere enten ns1.zvnlb.net or ns2.zvnlb.net modtager DNS forespørgslen fra 8.8.8.8 or 8.8.4.4 og så kontrollerer den navneserver, der modtager anmodningen, de tilgængelige servere til værten www.zvnlb.net og det vil svare på DNS-forespørgslen med listen over tilgængelige applikationsservere for at tjene den rigtige applikation til værten www.zvnlb.net, hvorfor disse oplysninger vil blive modtaget af kunden.

Nu vælger klienten tilfældigt en af ​​applikationsserverne fra listen modtaget i DNS-forespørgslen, og den sender direkte anmodningen til applikationen http://www.zvnlb.net.

Navneserverne ns1.zvnlb.net (i vores eksempel, beliggende i Frankfurt) og ns2.zvnlb.net (i vores eksempel, der ligger i Toronto) kontrollerer løbende sundhedstilstanden for den reelle anvendelse af værten www.zvnlb.net (192.235.113.3 og 194.23.52.21 i vores tilfælde). Hvis ns1.zvnlb.net or ns2.zvnlb.net opdager et problem med at kontrollere sundhedstilstanden for nogle af de rigtige servere, vil den utilgængelige server blive deaktiveret i et bestemt tidsrum, og dets IP-adresse vil ikke blive angivet i DNS-forespørgsler, før den bliver tilgængelig igen.

Følgende diagram viser den beskrevne DNS-trafik med GSLB-funktioner.

DNS-trafik med GSLB-funktioner

Konfiguration af GSLB til katastrofeinddrivelse af datacentre

Denne konfiguration anbefales til tjenester, der kræver høj tilgængelighed af datacentre til katastrofeinddrivelse. Så hvis alle tjenester i et bestemt firma er i et datacenter, og et sådant datacenter mislykkes, vil systemet flytte alle de berørte tjenester til et andet tilgængeligt datacenter .

Følg dette ægte eksempel på GSLB-konfiguration for at opbygge et aktivt passivt datacenter til Disaster Recovery.

Vi har implementeret to Zevenet Load Balancers på tværs af to datacentre på forskellige steder, Frankfurt 159.89.7.124 og Toronto 159.203.12.35 og vi har en webservice, der reagerer på DNS-vært www.zvnlb.net, konfigureret i Datacenter 1 og Datacenter 2. Udformningen af ​​denne arkitektur vil tillade at sende alle klienterne trafik til Datacenter 1 men hvis det mislykkes, omdirigeres klienterne til Datacenter 2.

For at opnå denne konfiguration skal du følge nedenstående procedure.

Opret forbindelse til Zevenet webpanelet i Datacenter 1 (Frankfurt til vores sag), klik på hovedmenuen GSLB modul og opret en ny Farm, i vores eksempel vil blive kaldt DNS1-Frankfurt i den virtuelle port 53.

opret en GSLB gård i et datacenter

Når bedriften er oprettet, skal du redigere den og gå til fanen Zoner og opret DNS-zonen, der skal styres af GSLB-modulet, i dette tilfælde zvnlb.net, som følger:

Opret en GSLB-zone i det første datacenter

Når denne zone var oprettet, bedes du foretage den første konfiguration, som den er vist nedenfor:

GSLB redigeringszone i det første datacenter

Bemærk, at ns1 og ns2 er navneserverne ansvarlige for DNS-opløsningerne for zonen zvnlb.net (i vores tilfælde en GSLB-tjeneste i Frankfurt og en anden i Toronto).

Derefter skal du oprette forbindelse til Zevenet webpanelet i Data Center 2, i hovedmenuen vælg GSLB og opret en ny Farm, i vores tilfælde vil blive kaldt DNS2-Toronto i den virtuelle port 53.

opret GSLB gård i det andet DR datacenter

Rediger den nye GSLB gård og gå til fanen ZonerOpret her DNS-zonen, der skal administreres af denne GSLB-tjeneste for zvnlb.net som følger:

konfigurere GSLB zone i det andet datacenter

Når først denne nye zone er oprettet, skal du gøre den første konfiguration som følger:

GSLB edit zone i Toronto

Ligesom tilfældet med GSLB i Datacenter 1, navnet servere n1 og n2 vil pege på GSLB tjenester i begge Datacenter 1 og Datacenter 2, henholdsvis.

Klik derefter på fanen Serviceydelser og lav en ny tjeneste, for eksempel webpriority:

opret GSLB service med prioritet

Vælg Algoritme option Prioritet: Tilslutninger altid til den mest tilgængelige prio og konfigurer tjenesten som følger:

GSLB rediger service prioritet

Genstart gården for at anvende ændringerne. Det er nødvendigt at anvende den samme GSLB-servicekonfiguration i begge datacentre.

Bemærk at hvis Farm Guardian er ikke konfigureret til at anvende en sundhedscheck, bruger GSLB-tjenesten en standard check_tcp til TCP-porten defineret i feltet sundhedskontrol i servicekonfigurationen.

Hvis du vil aktivere den nye tjeneste, skal du gå til den oprettede zone (zvnlb.net i vores tilfælde) og opret en ny Resource. Opret derefter det ved at vælge det nye Service som det er vist nedenfor.

GSLB bruger serviceprioritet

Gem endelig ændringerne. Det er nødvendigt at anvende denne konfiguration i begge datacentre.

På dette tidspunkt er værten www.zvnlb.net styres af GSLB modulet i Prioritet mode, så al trafik vil blive sendt til Datacenter 1 og så, hvis det fejler, vil trafikken blive omdirigeret til den anden tilgængelige Datacenter 2.

TTL er konfigureret til 5, det er den slags udløbsdato, der sættes på en DNS-post. TTL tjener til at fortælle den rekursive server eller lokale resolver, hvor længe den skal holde nævnte post i sin cache. Så en lavere værdi konfigureres hurtigere, og ændringerne registreres.

Ved anvendelse af denne metode kunne vi tilføje så mange datacentre efter behov ved at inkludere nye navneservere med GSLB-service.

Den følgende DNS-anmodning viser Nameserver-konfigurationen til zvnlb.net og DNS-opløsningen for værten www.zvnlb.net.

user@client:# host -t ns zvnlb.net
zvnlb.net name server ns2.zvnlb.net.
zvnlb.net name server ns1.zvnlb.net.

Begge navneservere bruger de virtuelle IP-adresser, der er konfigureret i GSLB-gårdene.

Brug nu dine nuværende DNS-servere til at løse en vært (for eksempel www) i denne zone:

user@client:# nslookup www.zvnlb.net
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	www.zvnlb.net
Address: 188.166.230.211

Som det er vist, i øjeblikket værten 188.166.230.211 er den aktive reelle applikationsknude i Datacenter 1. Så snart værten ikke er tilgængelig (for eksempel http-tjenesten i 188.166.230.211 er nede) DNS-opløsningen ændres som vist nedenfor.

user@client:# nslookup www.zvnlb.net
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	www.zvnlb.net
Address: 139.59.186.84

Så snart applikationsserveren fejler, ændrer DNS-opløsningen værten til Datacenter 2. Når værten i Datacenter 1 er op fejlsøgningen vil blive anvendt automatisk.

Konfiguration af GSLB til aktive aktive datacentre

Den høje tilgængelighed med tilstandsprioritet er en god mulighed for et katastrofegendannelsessystem, men backup-datacentret, som det bruges til gendannelsen, har ikke for meget brug, så det er normalt mere effektivt at indlæse al trafik mellem de tilgængelige data centre.

I sådanne tilfælde skal du bruge delingsmetoden til din GSLB-tjeneste, der hedder Round Robin Load Balancing som det er vist i eksemplet for den nye kaldte tjeneste web:

opret GSLB-service med delte og aktive aktive datacentre

Tilføj nu det i zonen zvnlb.net og ændre ressource konfiguration www som følger:

opret dns ressource til GSLB service med round robin

Gem ændringerne og genstart bedriften hvis det ønskes.

For at teste det skal du forsøge at løse værten www.zvnlb.net og output ser ud som om det er vist:

user@client:# nslookup www.zvnlb.net
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	www.zvnlb.net
Address: 188.166.230.211
Name:	www.zvnlb.net
Address: 139.59.186.84

Bemærk, at DNS resolver returnerer begge applikationsservere i stedet for en som Disaster Recovery-sagen.

Når værten har en fejl, ændres DNS-opløsningen automatisk. Se nedenfor, hvad der sker.

root@client:# nslookup www.zvnlb.net
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	www.zvnlb.net
Address: 139.59.186.84

Den utilgængelige applikationsserver er deaktiveret fra DNS-svarlisten.

Så snart værten 188.166.230.211 er tilgængelig igen, vil det blive inkluderet tilbage i DNS-opløsningen.

Delegering af en zone i Zevenet GSLB-tjenesten

I tilfælde af en offentlig zone (for eksempel zvnlb.net) som leverer en GSLB-tjeneste som en navneserveropløsningsenhed, der skal genkendes af offentlige DNS-servere til et sådant domæne, skal det registreres den offentlige IP-adresse, der bruges af GSLB-tjenesten, i dit domænes registrator (som NameCheap, Goddady eller andre) . Følgende link forklarer, hvordan man registrerer GSLB-IP'er som NameServers i en domæneregistreringsprocedure.

Registrer en vært som en navneserver

Efter den angivne procedure skal du registrere dig ns1.zvnlb.net og ns2.zvnlb.net med de givne IP'er.

Oprettelse af en dedikeret subzone til GSLB

Bare hvis det ikke er muligt at delegere DNS-opløsningen til GSLB-tjenesten i Zevenet, kunne nedenstående konfiguration udføres. Følgende eksempel viser, hvordan man bygger en underzone forum zvnlb.net der peger på NameServers af denne nye subzone i GSLB-tjenesten.

Node 1 (for eksempel ns1.zvnlb.net med IP 162.243.5.109) og Node 2 (for eksempel ns2.zvnlb.net med IP 178.62.233.104) er Nameservers konfigureret og tilbyder DNS-opløsningstjenester for zonen zvnlb.net, denne zone er under en Bind9 offentlig DNS-tjeneste, og vi ønsker at tilbyde GSLB-muligheder for nogle værter af vores infrastruktur, så vi besluttede at oprette DNS-subsonen cluster.zvnlb.net og konfigurere 2 GSLB gårde som DNS Nameservers til dette formål.

Vi har oprettet delzonen for vores domæne cluster.zvnlb.net i vores Bind9 DNS-servere som følger:

Opret en bind9 DNS-subzone

Følg nu afsnittet Delegering af en zone i Zevenet GSLB-tjenesten for at holde 159.89.7.124 og 159.203.12.35 i vores eksempel som anerkendte navneservere for zonen cluster.zvnlb.net af offentlige DNS-servere.

Derefter kan du anvende konfigurationen som forklaret for domænet zvnlb.net i afsnittet ovenfor Konfiguration af GSLB til katastrofegendannelse af datacentre.

Peger på en vært i vores egen DNS henvist til en GSLB-tjeneste

I de foregående afsnit har vi oprettet en vært ved navn www.zvnlb.net belastningsbalancering i prioritets- og round robin-tilstande, så vi kan genbruge denne konfiguration for at tilbyde GSLB-funktioner til en anden DNS-navneserver, som ikke understøtter denne funktion som standard.

For at opnå denne konfiguration behøver vi kun at oprette en ny Resource i DNS-zonen, der ikke understøtter GSLB-indstillinger (f.eks zevenet.io styres af Bind9) som a Canonisk navn or CNAME som det vises nedenfor:

Oprettelse af en CNAME til en GSLB zone

Når ændringen er anvendt, www.zevenet.io vil pege på www.zvnlb.net, men hvis værtsopløsningen www.zvnlb.net ændres derefter automatisk www.zevenet.io vil også ændre sig.

Bemærk, at dette eksempel er lavet på en Bind9 DNS-server, men Canonical Names eller CNAMES er DNS-hostkonfigurationer understøttet af en hvilken som helst DNS-servertjenesteimplementering.

Denne enkle forklaring viser, at en GSLB-tjeneste kan bruges, selvom vores nuværende DNS-service ikke tilbyder GSLB-funktioner, bare kun videresender opløsningen af ​​den givne vært i en ikke-GSLB-zone til GSLB-tjenesten i Zevenet Load Balancer.

Del på:

Dokumentation i henhold til GNU Free Documentation License.

Var denne artikel til hjælp?

Relaterede artikler