DNS lastbalansering: muligheter og begrensninger
DNS-lastbalansering fordeler trafikk over flere servere ved å la DNS-svaret inneholde flere IP-adresser. Det er den enkleste og billigste formen for lastbalansering, men den har klare begrensninger. Her får du en presis gjennomgang av hvordan det fungerer, når det passer, og når du bør velge noe annet.
Kort fortalt: DNS-lastbalansering ruter trafikk til ulike servere ved hjelp av flere A-poster og riktig TTL. Det krever verken maskinvare eller ekstra programvare, men DNS vet ingenting om hvorvidt serverne dine faktisk er oppe, og fordelingen er ikke nøyaktig. Det passer best for enkle oppsett der litt ujevn trafikk er akseptabelt.
Hva er DNS-lastbalansering?
DNS-lastbalansering er en metode for å fordele trafikk over flere servere ved å svare med forskjellige IP-adresser fra DNS. Når en klient spør om domenet ditt, velger DNS-serveren hvilken adresse den svarer med, og trafikken spres dermed over flere servere.
DNS (Domain Name System) er katalogen på internett: den oversetter domenenavn som feno.no til IP-adresser. En A-post (Address record) peker et navn til en IPv4-adresse. Legger du inn flere A-poster på samme navn, er grunnlaget for lastbalansering på plass.
Den sentrale mekanismen er TTL (Time to Live), som forteller klienter og mellomliggende servere hvor lenge de kan lagre et DNS-svar. Lav TTL gjør at endringer slår raskt gjennom, høy TTL gir mindre belastning på DNS-en, men tregere oppdateringer.
Det meste av DNS-arbeidet gjøres hos domeneregistraren din, der du administrerer poster og navneservere. Hos Feno, Norges nyeste norske domeneregistrar, ligger DNSSEC og overvåking inne som standard.
Hvordan fungerer DNS-lastbalansering?
Den vanligste teknikken er round-robin. Du legger inn én A-post per server på samme navn, for eksempel med IP-adressene 203.0.113.10, 203.0.113.20 og 203.0.113.30. Hver gang en klient spør, roterer DNS-serveren rekkefølgen på svaret, og klienten bruker som regel den første adressen.
Round-robin
Alle serverne får samme vekt, og svarene roteres i rekkefølge. Oppsettet er trivielt, men fordelingen er grov. Mange klienter deler en felles rekursiv resolver, og svaret lagres der i TTL-perioden. Trafikken fordeles dermed per resolver, ikke per enkeltklient. Hele kontorbygg eller mobilnett kan derfor ende opp hos samme server.
Vektet lastbalansering
Enkelte DNS-tjenester lar deg vekte postene, slik at en kraftigere server får flere svar enn de andre. Dette er ikke en standard i DNS-protokollen, men en utvidelse den enkelte leverandøren implementerer. Det gir grov styring, men fortsatt ikke fordeling på klientnivå.
Geo-ruting og helsesjekker
Avanserte tjenester bruker geo-ruting (GeoDNS), der klientens geografiske plassering bestemmer svaret, eller aktive helsesjekker som automatisk fjerner en server som er nede. Slike løsninger kalles gjerne GSLB (Global Server Load Balancing) og leveres av dedikerte DNS-tjenester, ikke av en vanlig A-post.
Muligheter med DNS-lastbalansering
Det viktigste fortrinnet er prisen. Du trenger ingen egen lastbalanser, og du kan aktivere fordelingen bare ved å legge til noen A-poster. For et .no-domene fra 99 kroner i året får du dermed grunnlaget for en enkel, todelt arkitektur uten ekstra kostnad.
Fordi distribusjonen skjer før trafikken når serverne, gir metoden også redundans. Faller en server ut, fjerner du A-posten, og trafikken flyttes ved neste oppdatering. Med TTL ned mot 60 sekunder er det lenge nok for mange tjenester.
Typiske bruksområder er å spre lesetrafikk over to webservere i ulike skytjenester, eller å la test- og produksjonsmiljø ligge på samme domene og rute trafikk manuelt etter behov.
Begrensninger med DNS-lastbalansering
Den største begrensningen er at DNS ikke kjenner helsetilstanden til serverne dine. En standard A-post fjerner ikke en server som ligger nede; den fortsetter å svare med samme adresse til du endrer posten manuelt. Det finnes ingen innebygde helsesjekker i DNS.
Caching gjør endringer trege. Selv med kort TTL vil noen klienter bruke et gammelt svar en stund, og du kan aldri garantere at alle har fått med seg en endring med en gang. TTL-valget er dermed en avveining mellom oppdateringsfart og belastning.
Du får heller ingen informasjon om nedetid, responstid eller serverlast. Trenger du automatisk failover, sesjoner som forblir på samme server, eller innsikt i helsen, må du sette en ekte lastbalanser (LB) foran serverne. DNS-lastbalansering og en lastbalanser utfyller hverandre: mange bruker DNS for å fordele trafikk mellom geografiske plasseringer, og en lastbalanser innenfor hver plassering.
Slik setter du opp DNS-lastbalansering
Oppsettet gjøres i DNS-administrasjonen hos domeneregistraren din. Slik går du fram med en standard DNS-tjeneste:
- Finn IP-adressene til alle serverne, og kontroller at de kjører samme tjeneste.
- Legg inn én A-post per server på samme vertsnavn.
- Velg en kort TTL, for eksempel 60 eller 300 sekunder.
- Kontroller at alle adressene svarer, for eksempel med kommandoen
dig. - Overvåk serverne, og fjern A-posten til en server som faller ut. Automatiser gjerne denne endringen.
Noen tips underveis:
- Sett TTL-en lavt i god tid før du planlegger en endring, ikke på selve endringsdagen.
- Legg navneserverne dine hos to leverandører hvis redundans er kritisk.
- Har du DNSSEC (Domain Name System Security Extensions) på, signeres hele A-postsettet samlet, så round-robin fungerer som vanlig.
- Er du usikker på hvordan domenet ditt er satt opp, begynn med å kontrollere DNS-oppsettet ditt hos Feno.
Vanlige spørsmål om DNS-lastbalansering
Er DNS-lastbalansering trygt?
DNS-svar kan i utgangspunktet forfalskes underveis, men med DNSSEC verifiseres svarene kryptografisk, slik at en angriper ikke kan sende klienter til en annen server. Feno signerer sonen automatisk og sender DS-posten (Delegation Signer) til Norid, uten at du trenger å gjøre noe.
Fungerer DNS-lastbalansering for e-post?
Ikke som lastfordeling. E-postserveren finnes gjennom en MX-post (Mail Exchange), og MX-poster støtter prioritet: du lister flere servere, og klienter prøver dem i prioritert rekkefølge. Det gir redundans, men ikke fordeling av lasten.
Kan DNS-lastbalansering erstatte en lastbalanser?
Bare i enkle tilfeller. Kjører du to servere med identisk statisk innhold, kan round-robin være nok. Trenger du automatisk failover, sesjoner eller innsikt i helse og last, må du bruke en ekte lastbalanser.
Konklusjon
DNS-lastbalansering er raskt å sette opp, koster ingenting ekstra og passer godt til å spre trafikk over noen få servere. Den erstatter ikke en ekte lastbalanser når du trenger helsesjekker og automatisk failover. Kunnskapen om hva DNS kan og ikke kan gjøre er halve jobben.
Uansett valg starter alt med kontroll over domenet og DNS-oppsettet ditt. Sikre domenet ditt hos Feno og administrer DNS, DNSSEC og overvåking på ett sted.