En introduktion til Domain Name System

Du har muligvis alle hørt om eller kendskab til Domain Name System (DNS), hvis du forstår, hvordan internettet fungerer, eller hvordan computernetværk fungerer. Hvis du ikke er fortrolig med DNS, vil jeg anbefale dig at gå og tjekke mit tidligere blogindlæg, der er fokuseret på computernetværk her.

Værtsnavne alene kan ikke fortælle os, hvor den bestemte maskine / hardware, som vi prøver at kommunikere med, er placeret i verden. Derfor sker al kommunikation med IP-adresser.

Domain Name Servers er de enheder, der kortlægger værtsnavnet til IP-adresserne på den maskine / hardware, som dine tjenester kører på.

I dette indlæg vil jeg forklare i detaljer typerne af DNS-forespørgsler, typer af DNS-servere og typer af DNS-poster.

DNS-løsning

DNS-resolvere er de computere, der bruges af internetudbydere (ISP'er) til at udføre opslag i deres database efter det bestemte værtsnavn, som brugeren anmoder om. De omdirigerer derefter denne bruger til den kortlagte IP-adresse. De spiller en vigtig rolle i DNS-opløsning.

DNS-resolvere cache også dataene. Så for eksempel er mit websted example.comi øjeblikket hostet på en maskine med IP-adresse 35.195.226.230. Så caches fra DNS Resolvers over hele verden har kortlagt følgende:

example.com- & g t; 35.195.226.230

Overvej i fremtiden, hvis jeg vil være vært for mit websted på en anden server over hele verden med en IP på f.eks 35.192.247.235. DNS-cacherne for alle DNS-resolverne over hele verden vil stadig have den gamle IP-adresse i nogen tid. Dette kan føre til utilgængelighed gennem konventionelle websteder, indtil DNS-udbredelsen sker fuldstændigt.

Posten i DNS Resolver-cachen forbliver der i nogen tid, hvilket kaldes tid til at leve (TTL for kort).

Dette er tidspunktet, hvor en post cachelagres i DNS Resolver. Dette kan indstilles i registratorens dashboard, hvorfra du har købt domænet.

Bemærk: fra nu af vil jeg kun henvise til DNS Resolver som Resolver i dette blogindlæg.

Typer af DNS-servere

Root DNS-server

Root DNS-serverne er dem, der har adresserne på alle TLD-domæneservere. En anmodning møder først Root DNS-serverne, mens de er på rejse for at hente IP-adressen fra værtsnavnet.

Der er 13 roddomæneservere over hele verden fra og med 2016. Dette betyder ikke, at der kun er 13 maskiner, der håndterer belastningen af ​​anmodningerne fra hele verden - der er flere servere på jordoverfladen, der håndterer belastningen.

Forskellige organisationer administrerer Root DNS-serverne:

TLD-domæneserver

Disse er dem, der er klassificeret efter Top-Domain. De er normalt de næste, som den iterative forespørgsel rammer efter Root DNS-serveren. De gemmer de TLD-specifikke poster for værtsnavnet.

Lad os sige, at hvis vi anmoder om en IP-adresse medium.com, bliver TLD-domæneserverne til ".com" TLD forespurgt. TLD-domæneserverne returnerer adressen på de autoritative DNS-servere til Resolver.

Nu opstår spørgsmålet: hvordan kender TLD-navneserveren adressen på den autoritative navneserver? Svaret er simpelt: Når du køber et domæne hos registratorerne som Godaddy eller Namecheap, kommunikerer registratorerne også domænerne til TLD-navneserveren. Så det er i stand til at kontakte de autoritative navneservere.

I dag giver nogle af registratorerne mulighed for at bruge tredjeparts autoritative navneservere. Som vist i ovenstående figur kan du konfigurere de autoritative navneservere i registratorens instrumentbræt.

Autoritativ DNS-server

Disse bliver i sidste ende spurgt iterativt af Resolver. De gemmer de faktiske poster for type A, NS, CNAME, TXT osv.

Således returnerer de IP-adressen til værtsnavnet, hvis det er tilgængeligt. Hvis den ikke er tilgængelig selv i den autoritative DNS-server, kaster de en fejl med den bestemte meddelelse, og processen med at søge IP-adresser på tværs af navneserveren slutter.

Typer af DNS-forespørgsler

Der er tre typer DNS-forespørgsler:

Rekursiv : Rekursive forespørgsler foretages af brugere til Resolver. Det er faktisk den første forespørgsel, der foretages under DNS-opslag.

Resolverne kan være din internetudbyder eller din netværksadministrator, men det er normalt internetudbyderen i næsten alle tilfælde.

Ikke-rekursiv: I ikke-rekursive forespørgsler kender Resolver svaret og svarer straks uden yderligere forespørgsler til andre navneservere. Dette sker, fordi den lokale DNS-server har IP-adressen gemt i sin lokale cache, eller bare spørger de autoritative navneservere direkte. De holder tilfældigvis rekorden, og i sidste ende undgår de rekursive forespørgsler.

Iterativ : Iterative forespørgsler sker, når Resolver ikke kan returnere resultaterne, da de muligvis ikke har cachelagret det. Så det fremsætter en anmodning til Root DNS-serveren. Og Root DNS-serverne ved, hvor de finder den bestemte TLD-domæneserver.

Så hvis vi for eksempel forsøger at få IP-adressen til at sige medium.com, så vil root-domæneserveren have adressen på .comTLD-serveren gemt i den og vil derefter sende den tilbage til Resolver. Resolveren beder derefter TLD-serveren om IP-adressen. TLD-domæneserveren kender den muligvis ikke, men den kender adressen på den autoritative DNS-server til medium.com.

Okay, nok af teorien. Lad os forstå det ved et rutediagram:

Lad os nedbryde ovenstående diagram i trin:

  1. Brugeren fremsætter en anmodning til Resolver med det værtsnavn, som den ønsker IP-adresse til. Dette er en rekursiv forespørgsel.
  2. Resolveren kigger i sin cache for at se, om den er til stede i den.
  3. Hvis det er tilfældet, returnerer det det tilbage til brugeren.
  4. Hvis den ikke har cachen, fremsætter den en iterativ anmodning til Root DNS-serverne, der findes globalt. Fra 2016 er der 13 Root DNS-servere navngivet fra A - M. Nu ser Root DNS-serveren op til TLD for det anmodede domæne. For eksempel, hvis værtsnavnet er medium.com, bliver TLD “.com”, og Root DNS-serveren har posten for “.com” domæneservere, og den returnerer resultaterne tilbage til Resolver. Resolveren skal have adresserne på alle root-domænenavnsservere. Hvis det ikke gør det, kan DNS-opslag muligvis mislykkes med det første.
  5. Nu fremsætter Resolver igen en iterativ anmodning til TLD-domæneserveren, der beder om IP-adressen på domænet. TLD-domæneserveren returnerer derefter adressen på den autoritative server for det anmodede domæne.
  6. Fra nu af tror jeg, at du måske forstår, hvad der er autoritative DNS-servere. De indeholder de faktiske poster, hvor værtsnavnet kortlægges til IP-adressen, og derfor returneres IP-adressen til Resolver (som igen returnerer den tilbage til brugeren).
  7. Hvis der ikke findes nogen matchende post i de autoritative navneservere, kastes der en fejl med en meddelelse, der siger "DNS_PROBE_FINISHED_NXDOMAIN", der angiver, at der ikke er nogen registrering for det ønskede værtsnavn.
  8. I alle navneserverne, som anmodningen passerer igennem, cacheleres resultaterne for det anmodede værtsnavn, så når en anden bruger anmoder om det samme domæne, vil posten allerede være til stede i DNS-cachen.
  9. Alt i alt tager det maksimalt fire forespørgsler at udføre DNS-opslag. Men det tager næppe et par millisekunder at udføre opslaget.

Konceptet med DNS-formering

Overvej, at du har dit websted hostet hos en udbyder som Digital Ocean på enhver maskine med IP “x”, og du vil skifte webstedshostingen til enhver anden maskine med anden IP-adresse, siger “y”. Du bliver nødt til at ændre IP-adressen i de autoritative optegnelser, så trafikken navigerer til den nye IP-adresse.

Selvom du opdaterer posterne i din registrators / navneserverens dashboard, tager det noget tid at reflektere i alle Resolvers cacher i verden. DNS-formering kan tage 24–72 timer, men normalt sker det hurtigere end det, da de fleste internetudbydere holder TTL lav.

Og det er det!

Tak, fordi du læste artiklen. Hvis du har spørgsmål, er du velkommen til at stille dem i kommentarerne nedenfor og dele dette indlæg med den, du ønsker.

Vi ses i den næste. Hav en god tid. Tak skal du have.

Du kan tjekke min anden artikel om computernetværk, som forklarer dem detaljeret:

Hvad computernetværk er, og hvordan man rent faktisk forstår dem

Uanset om du er ny i udviklingsverdenen eller har bygget ting i lang tid - eller endda hvis du er ... medium.freecodecamp.org

Hvis du kan lide mit arbejde, kan du købe mig en kaffe på:

Køb Sumedh Nimkarde en kaffe - BuyMeACoffee.com

Hej, jeg er Sumedh, og mit arbejde er at bygge, bryde og genopbygge ting. buymeacoffee.com

Du er velkommen til at kontakte mig på Twitter.