Modulis 1 · 1.4
DNS vaicājuma ceļojums
Modulis 1: Kas ir DNS? · Lasīšanas laiks: 8 minūtes
Mācību mērķis: Pēc šīs nodarbības Jūs varēsiet soli pa solim izskaidrot, kā rezolveris atrod atbildi un kur pa ceļam atbildes tiek atcerētas.
Pamatjēdzieni: rezolveris (rekursīvs), saknes serveris, TLD serveris, autoritatīvs vārdu serveris, novirzīšana (deleģēšana), kešatmiņa
Divi DNS serveru veidi
Nodarbībā 1.1 Jūs redzējāt, ka DNS ir sadalīts: neviens nezina visu. Kā tad Jūsu pārlūkprogramma tomēr iegūst www.example.com adresi? Šim nolūkam sadarbojas divu veidu serveri:
- Autoritatīvie vārdu serveri (angliski authoritative) zina atbildi par savu daļiņu.
example.comvārdu serveri zinaexample.comierakstus. Tie neko nemeklē citu vietā. - Rezolveri (saukti arī par rekursīvajiem rezolveriem) meklē atbildi Jūsu vietā. Tie turpina jautāt, kamēr saņem atbildi. Jūsu interneta pakalpojumu sniedzējam ir rezolveris, un ir arī publiski rezolveri, piemēram, Quad9, Cloudflare vai Google.
Jūsu dators pats gandrīz neko nemeklē. Tam ir neliels stub rezolveris, kas vaicājumu nodod Jūsu tīkla rezolverim un saņem atbildi atpakaļ.
Ceļojums, soli pa solim
Pieņemsim, ka rezolveris vēl neko nav atcerējies un Jūs vaicājat www.example.com A ierakstu.
- Jūsu dators jautā rezolverim: "Kāds ir www.example.com A ieraksts?"
- Rezolveris jautā saknes serverim. Katram rezolverim ir iebūvēts saknes serveru adrešu saraksts. Saknes serveris neko nezina par
example.com, bet zina, kurš pārvalda.com. Tas atbild ar novirzīšanu: "Par to Jums jāvēršas pie com vārdu serveriem: a.gtld-servers.net, b.gtld-servers.net un tā tālāk." - Rezolveris jautā kādam no .com vārdu serveriem. Arī tas nezina
www.example.comIP adresi, bet zina, kādi vārdu serveri irexample.com. Atkal novirzīšana: "Jautājiet ns1.hosting.example vai ns2.hosting.example." - Rezolveris jautā kādam no example.com vārdu serveriem. Tas ir autoritatīvs šim domēnam un sniedz atbildi: "www.example.com ir A ieraksts 192.0.2.10."
- Rezolveris nodod atbildi Jūsu datoram. Jūsu pārlūkprogramma izveido savienojumu ar 192.0.2.10.
Augstāka līmeņa novirzīšanu uz zemāka līmeņa vārdu serveriem sauc par deleģēšanu. Sakne deleģē .com uzņēmumam Verisign, .com deleģē example.com vārdu serveriem, kurus norādījis domēna turētājs. Attiecībā uz .nl domēnu notiek tieši tāpat, tikai sakne tad norāda uz .nl vārdu serveriem (SIDN, Nīderlandes .nl reģistrs, piemēram, ns1.dns.nl). To Jūs paši redzēsiet šīs nodarbības beigās dotajā uzdevumā. Tāpēc tik svarīgi ir, lai vārdu serveri reģistrā būtu pareizi norādīti (nodarbība 2.1).
Kešatmiņa: ne katru reizi pilns ceļojums
Ja ikviens rezolveris pie katra vaicājuma sāktu no saknes, saknes serveri saņemtu neiedomājami lielu vaicājumu skaitu. Tā nenotiek, jo rezolveris atbildes atceras kādu laiku. Šo atmiņu sauc par kešatmiņu.
Cik ilgi atbildi drīkst atcerēties, ir norādīts pašā atbildē: tas ir TTL (time to live), sekundēs. TTL vērtība 3600 nozīmē: šo atbildi drīkst atcerēties vienu stundu. Arī novirzīšanas tiek atcerētas. Rezolverim, kas tikko uzzinājis, kādi vārdu serveri ir .com, nākamreiz tas nav jāvaicā saknes serverim atkārtoti.
Ja kāds cits pie tā paša pakalpojumu sniedzēja pēc minūtes vaicā par www.example.com, rezolveris uzreiz atbild no savas kešatmiņas. Nav ceļojuma, nav gaidīšanas.
Kešatmiņas atrodas vairākās vietās:
- Jūsu pakalpojumu sniedzēja rezolverī vai publiskajā rezolverī, kuru izmantojat;
- Jūsu operētājsistēmā (Windows, macOS, Jūsu telefonā);
- Jūsu pārlūkprogrammā;
- reizēm Jūsu maršrutētājā.
Tas ir ātri un efektīvi, taču tam ir sekas, ar kurām vēlāk bieži sastapsieties: ja Jūs mainiet ierakstu, kešatmiņas turpina rādīt veco atbildi, līdz beidzas to TTL. Tāpēc viens lietotājs izmaiņas redz uzreiz, bet cits vēl ne. Par to sīkāk stāsta 6. modulis.
Saknes serveri
Ir 13 saknes serveru nosaukumi: no a.root-servers.net līdz m.root-servers.net. Tos pārvalda divpadsmit dažādas organizācijas. Aiz katra nosaukuma visā pasaulē atrodas daudzi serveri, simtos vietu, kas koplieto vienu un to pašu adresi (to sauc par anycast). Jūsu rezolveris automātiski nonāk pie tuvākā. Tāpat strādā arī TLD vārdu serveri, piemēram, .com un .nl. Tāpēc DNS ir ātrs un turpina darboties, ja kaut kur kāds serveris atteiksies.
Kur var rasties problēmas
Ja zināt ceļojumu, Jūs varat labāk noteikt, kur radusies problēma:
- Deleģēšana nav pareiza. Reģistrā norādīti vārdu serveri, kuri domēnu (vairs) nepazīst. Rezolveris tad 4. solī netiek tālāk. Atbilde ir kļūda vai atbildes nav vispār.
- Autoritatīvajam serverim ir cita atbilde, nekā Jūs gaidījāt. Tad Jūs esat mainījuši ierakstu citā vietā, nevis tur, kur atrodas Jūsu vārdu serveri (nodarbība 2.1).
- Kešatmiņā vēl ir vecā atbilde. Tad nekas nav sabojāts. Jums jāgaida, līdz beidzas TTL, vai jāiztīra sava kešatmiņa.
- DNSSEC nav pareizs. Validējošs rezolveris pa ceļam pārbauda parakstus. Ja ķēde nav pareiza, tas atsakās pieņemt atbildi (nodarbība 8.1).
Ar rīku dig +trace Jūs varat pats izsekot šo ceļojumu, sākot no saknes līdz autoritatīvajam serverim. To Jūs apgūsiet 8.2. nodarbībā. To var izdarīt arī tiešsaistes rīki.
Kopsavilkums
- Autoritatīvie vārdu serveri zina atbildi par savu domēnu, rezolveri meklē atbildi Jūsu vietā.
- Rezolveris sāk no saknes, saņem novirzīšanu uz TLD, tad uz domēna vārdu serveriem, un tur saņem atbildi.
- Šādu novirzīšanu sauc par deleģēšanu.
- Atbildes tiek atcerētas kešatmiņās, cik ilgi norāda TTL; tāpēc izmaiņas ne visur ir uzreiz redzamas.
- Ir 13 saknes serveru nosaukumi, taču, pateicoties anycast tehnoloģijai, aiz tiem visā pasaulē atrodas daudz serveru.
Tests
Uzdevums
Uzdevums Z1.4: Izsekot ceļojumam. Izsekojiet ceļojumam priekš www.sidn.nl, izmantojot dig +trace www.sidn.nl vai tiešsaistes rīku, kas parāda trace. Aizpildiet: (1) viens nl. vārdu serveris, ko sastopat pa ceļam, (2) viens autoritatīvs sidn.nl vārdu serveris.
Lasīt vairāk
Šie raksti apraksta situāciju pie WebOké. Pie citiem pakalpojumu sniedzējiem tas darbojas līdzīgi.
