Historia för DNS

Redan på 70-talet tröttnade folk på att komma ihåg IP-adresserna till de servrar de ville komma åt. Samtidigt kom idén att använda ett enklare och mer minnesvärt namn istället för en numerisk värdadress.

Arbetare vid Stanford Research Institute kom med en textfil HOSTS.TXT , som innehöll en lista med strängnamn och deras motsvarande numeriska adresser till datorer på ARPANET.

Adresser tilldelades manuellt. För att begära ett värdnamn och adress eller lägga till en dator till huvudfilen, kontaktade användare Stanfords nätverksinformationscenter via telefon under kontorstid.

I början av 1980-talet hade underhållet av en enda centraliserad värdtabell blivit långsam och besvärlig, och det växande nätverket behövde ett automatiskt namnsystem för att hantera tekniska frågor och personalfrågor.

1984 skrev fyra UC Berkeley-studenter den första versionen av det hierarkiska domännamnssystemet. Den används nu flitigt, särskilt på Unix-system, och är fortfarande den mest använda DNS-mjukvaran på Internet.

Introduktion till DNS

Domain Name System (DNS) är ett distributionssystem för att lagra och hämta information om domäner. Det används oftast för att erhålla en IP-adress från ett värdnamn (dator eller enhet), få ​​information om e-postdirigering och/eller servera värdar för protokoll i en domän.

Systemet är organiserat i form av en viss hierarki av DNS-servrar som interagerar enligt ett visst protokoll. Grunden för att förstå DNS ​​är förståelsen av den hierarkiska strukturen för namnet och zonerna.

Varje server som ansvarar för en domänzon kan överföra ansvaret för ytterligare en del av domänen till en annan server, vilket gör det möjligt att tilldela ansvaret för informationens relevans till olika organisationers servrar som endast ansvarar för "sin" del av domän namn.

DNS-systemet innehåller en hierarki av DNS-servrar som motsvarar zonhierarkin. Varje zon stöds av minst en auktoritativ DNS-server som är värd för information om domänen.

Viktig! Namnet och IP-adressen behöver inte nödvändigtvis relatera till varandra som en till en. En IP-adress kan ha många domännamn, vilket gör att du kan stödja många webbplatser på en dator (detta kallas delad hosting ).

Det kan också vara tvärtom - många IP-adresser kan associeras med ett domännamn: detta låter dig skapa lastbalansering och används aktivt i CDN-nätverk .

För att öka stabiliteten i systemet används många servrar som innehåller identisk information, och protokollet har medel för att upprätthålla synkroniseringen av information som finns på olika servrar. Det finns 13 rotservrar, deras adresser ändras praktiskt taget inte.

Intressant! DNS-protokollet använder TCP- eller UDP-port 53 för att svara på frågor. Traditionellt skickas förfrågningar och svar som ett enda UDP-datagram. TCP används när svarsdatastorleken överstiger 512 byte.

DNS-poster

DNS-servern lagrar en uppsättning parametrar för varje domännamn. Dessa är uppgifter om domännamnet, dess IP-adress, samt olika tjänsteinformation.

Det finns flera dussin sådana poster totalt, så vi kommer bara att överväga de mest populära av dem:

A Adress IP-adress
AAAA Adress IPv6 Adress i IPv6-format
CNAME Kanoniskt namn Kanoniskt namn för alias
MX postväxlare Mail-gateway-adress för domän
NS namnserver Adressen till noden som ansvarar för domänzonen
SOA Start av auktoritet Uppgift om informationens auktoritet
SRV serverval Ange serverplatser för tjänster
PTR pekare Adressnamnmatchning - Omvänd matchning för A och AAAA
Text textsträng Skriv godtyckliga binära data, upp till 255 byte

De mest intressanta här är:

  • A- posten låter dig ange en IP-adress som motsvarar en domän.
  • CNAME låter dig ställa in en synonym för namnet, till exempel www.codegym.cc == codegym.cc.
  • MX- posten innehåller information om e-postservern: vad ska man göra om ett brev kommer till xxx@codegym.cc.
  • NS - anger adressen till DNS-servern, som innehåller information om denna domän. Användbart när poster cachelagras och lagras på icke-infödda noder.

IP-adresssökning

Låt oss se hur DNS-systemet fungerar.

Låt oss säga att du skrev api.codegym.cc i din webbläsare. Webbläsaren kontaktar den lokala DNS-tjänsten och ber dig att ge den en IP-adress för api.codegym.cc-domänen. Här är vad som kommer att hända härnäst...

Först tittar DNS-tjänsten för att se om denna domän finns i den lokala värdfilen på din dator. Om det finns, tar den IP-adressen från den. Om inte, skickar den en begäran till den DNS-server som den känner till: "Vad är IP-adressen för api.codegym.cc?".

DNS-servern kanske inte bara vet något om det begärda namnet, utan till och med om hela codegym.cc-domänen. I det här fallet kontaktar servern rotservern - till exempel 198.41.0.4. Denna server säger: "Jag har ingen information om den här adressen, men jag vet att 204.74.112.1 är ansvarig för ru-zonen."

Sedan skickar DNS-servern sin begäran till 204.74.112.1, men den svarar: "Jag har ingen information om den här servern, men jag vet att 207.142.131.234 är ansvarig för codegym.cc-zonen." Slutligen skickas samma begäran till en tredje DNS-server och får ett svar - en IP-adress, som överförs till klienten, det vill säga webbläsaren.

I det här fallet, i processen att söka efter en IP med namn, fungerade följande regler:

  • Webbläsaren skickade en rekursiv begäran till en känd DNS-server (som svar på denna typ av begäran måste servern returnera en IP-adress eller ett tomt svar och en NXDOMAIN-felkod).
  • DNS-servern som tog emot begäran från webbläsaren skickade icke-rekursiva förfrågningar i följd, till vilka den fick svar från andra DNS-servrar, tills den fick ett svar från servern som var ansvarig för den begärda zonen.
  • Resten av de nämnda DNS-servrarna behandlade förfrågningar icke-rekursivt (och skulle troligen inte ha behandlat förfrågningar rekursivt, även om ett sådant krav fanns i begäran).

Det är ibland möjligt för den begärda servern att skicka en rekursiv fråga till en "uppströms" DNS-server och vänta på ett klart svar.

Viktig! Med rekursiv frågebehandling går alla svar via DNS-servern, och den får möjlighet att cache dem. En upprepad begäran om samma domännamn går vanligtvis inte utöver serverns cache, och anrop till andra servrar förekommer inte alls.

Den tillåtna cachetiden för svar kommer med svaren (TTL-fältet i resursposten).

hosts-fil

Vi märkte att den första sökningen är i den lokala värdfilen. Det här är arvtagaren till filen HOSTS.TXT, som uppfanns på ARPANETs dagar. Ja, den finns fortfarande och används fortfarande.

Den ligger längs vägen:

  • /etc/hosts på Linux.
  • %SystemRoot%\system32\drivers\etc\hosts på Windows.
  • /system/etc/hosts i Android.

Vanligtvis innehåller filen en platsdefinition för den lokala värdnoden:

127.0.0.1   	localhost

Dess struktur är mycket enkel: först kommer IP-adressen, sedan domännamnet.

Användbar

Med hjälp av hosts-filen är det möjligt att filtrera annonser genom att omdirigera domänadresser för banners till adressen 127.0.0.0, 127.0.0.1 eller 0.0.0.0.

Användning av 127.0.0.1 rekommenderas i allmänhet inte, eftersom det resulterar i en tidsgräns för svar och tillhörande förseningar om servern inte finns eller är felkonfigurerad. Och om du mappar någon reklamdomän till IP-adressen 0.0.0.0, kommer alla förfrågningar till den omedelbart att falla bort).

Offentliga DNS-servrar

Du får vanligtvis en DNS-server tillsammans med din internettjänst när du ansluter den. Men en sådan gratis DNS-server är inte alltid det bästa alternativet. Dessutom kanske du inte vill skicka en fråga med domännamnet varje gång du besöker en webbplats till din internetleverantörs DNS-server.

Därför föredrar många att byta till offentliga gratis DNS-servrar. För det första är de väldigt snabba och har en stor cache med domännamn. Du kommer att få snabbare laddning och drifttid med en minimal risk för tekniska problem.

För det andra, säkerhet. Vissa DNS-tjänster kan blockera åtkomst till nätfiske och skadliga webbplatser och erbjuda innehållsfiltrering för att skydda barn från olämpligt innehåll online.

Sådana DNS-servrar kan till och med bekämpa bedragare. Till exempel går du till en falsk bankwebbplats, och DNS-servern ger dig inte bedragarnas IP-adress, utan dess säkerhetstjänst.

Lista över sådana servrar

molnflamma 1.1.1.1
1.0.0.1
Cloudflare lovar att de inte kommer att använda besöksdata för att visa annonser och kommer aldrig att bränna IP-adresser för begäranden på disken.
Google Public DNS 8.8.8.8
8.8.4.4
Lagrar fullständig information om IP-adressen för den begärande enheten i cirka 24-48 timmar för felsökning och diagnostik
Comodo Secure DNS 8.26.56.26
8.20.247.20
Blockerar nätfiskesidor, men varnar också om du försöker besöka webbplatser med skadlig programvara, spionprogram
Yandex.DNS 77.88.8.8
77.88.8.1
Gratis DNS-tjänst från en populär rysk sökmotor