Domenų vardų sistema (DNS): Jūsų kelio į internetą vadovas

Domenų vardų sistema, plačiau žinoma kaip DNS, yra vienas iš interneto pagrindų, veikiantis kaip nematomas, bet itin svarbus infrastruktūros elementas. Dauguma žmonių, net ir nesusijusių su informacinių technologijų sritimi, kasdien naudojasi šia sistema, atlikdami paprasčiausius veiksmus: tikrindami elektroninį paštą, naršydami internete ar tiesiog naudodamiesi išmaniuoju telefonu. Iš esmės DNS veikia kaip gigantiškas, nuolat atnaujinamas adresų knygos katalogas, kuris paverčia mums suprantamus svetainių pavadinimus (pvz., google.com) į kompiuteriams suprantamus skaitmeninius IP adresus.

Schema, kaip DNS verčia domenų vardus į IP adresus

DNS atsiradimas ir evoliucija

Internetui dar tik pradedant plisti, IP adresų ir juos atitinkančių kompiuterių pavadinimų susiejimas buvo gerokai paprastesnis. 1970-aisiais ir 1980-ųjų pradžioje šį darbą atlikdavo amerikiečių mokslininkė Elizabeth Feinler iš Stanfordo tyrimų instituto. Tačiau su interneto augimu ir vis daugiau įrenginių jungiantis prie tinklo, situacija tapo kur kas sudėtingesnė. Nors vis dar buvo galima įvesti specifinį IP adresą į naršyklę, kad pasiektumėte konkrečią svetainę, tai tapo nepatogu ir neefektyvu.

1983 m. tyrėjui iš Pietų Kalifornijos universiteto Paul Mockapetris buvo pavesta sukurti sprendimą, kuris išspręstų šią problemą. Ignoruodamas kelis ankstesnius pasiūlymus, jis sukūrė naują sistemą, kurią pavadino DNS (Domain Name System). Ši sistema buvo sukurta taip, kad DNS informacijos katalogas nebūtų saugomas vienoje vietoje. 2017 m. pabaigoje, kai domenų vardų skaičius viršijo 332 milijonus, vienas centrinis katalogas būtų buvęs tiesiog per didelis ir neefektyvus. Tokia paskirstyta struktūra užtikrina, kad daugybei vartotojų vienu metu ieškant informacijos, sistema veiktų greitai ir be trikdžių.

Kaip veikia DNS? DNS serverių hierarchija

DNS sistema veikia kaip hierarchinė struktūra, kurioje informacija yra perduodama iš vieno serverio į kitą, kol galiausiai pasiekiama reikalinga informacija. Šis procesas apima kelis pagrindinius žingsnius ir serverių tipus:

  • DNS rekursorius (DNS Resolver): Galima įsivaizduoti kaip bibliotekininką, kuriam pateikiama užklausa surasti tam tikrą knygą. DNS rekursorius yra serveris, kuris gauna užklausas iš vartotojo kompiuterio per tokias programas kaip interneto naršyklės. Jis atsako už papildomų užklausų pateikimą, kad patenkintų vartotojo prašymą. Paprastai tai yra jūsų interneto paslaugų teikėjo (ISP) serveris, tačiau gali būti ir kitų, pavyzdžiui, Google DNS (8.8.8.8) ar Cloudflare DNS (1.1.1.1).

  • Šakninis vardų serveris (Root Name Server): Tai pirmasis žingsnis verčiant domeno vardus į IP adresus. Jį galima lyginti su rodykle bibliotekoje, kuri nurodo skirtingas knygų lentynas. Šakniniai serveriai žino, kur rasti informaciją apie aukščiausio lygio domenus (TLD).

  • TLD (aukščiausio lygio domenų) vardų serveris (TLD Name Server): Šis serveris gali būti laikomas konkrečia knygų lentele. Jis yra kitas žingsnis ieškant konkretaus IP adreso. TLD serveris saugo informaciją apie domenus, baigiančius tam tikru galunu (pvz., .lt, .com, .org). Pavyzdžiui, domeno pavadinime „iv.lt“, TLD serverį atitinka „lt“. Jis žino, kurie autoritetingi serveriai yra atsakingi už konkrečius antrojo lygio domenus (pvz., „iv“).

  • Autoritetingas vardų serveris (Authoritative Name Server): Tai tarsi knygų lentynos žodynas, kuriame konkretus vardas gali būti išverstas į jo apibrėžimą. Autoritetingas vardų serveris yra paskutinė vardų serverio užklausos stotelė. Jis saugo galutinę informaciją apie konkretų domeną, įskaitant jo IP adresą. Jei turite savo domeną, galite nurodyti, kokie autoritetingi DNS serveriai jį aptarnaus, pavyzdžiui, IV DNS serveriai.

Kai jūsų kompiuteris nori rasti IP adresą, susietą su domeno vardu, procesas vyksta taip:

  1. Jūsų kompiuteris pirmiausia pateikia užklausą DNS rekursoriui.
  2. Jei rekursorius neturi informacijos savo talpykloje, jis kreipiasi į šakninį vardų serverį.
  3. Šakninis serveris nurodo TLD serverį, atsakingą už prašomą TLD (pvz., .lt).
  4. TLD serveris nurodo autoritetingą vardų serverį, atsakingą už konkretų domeną (pvz., iv.lt).
  5. Autoritetingas serveris pateikia DNS rekursoriui IP adresą, susietą su domeno vardu.
  6. DNS rekursorius perduoda šį IP adresą jūsų kompiuteriui, ir naršyklė gali pasiekti norimą svetainę.

Šis procesas, vadinamas DNS sprendimu (DNS resolution), dažnai vyksta itin greitai dėl įvairių talpyklų (cache) naudojimo.

Talpyklos (Cache) ir DNS greitis

Kad DNS procesas būtų dar greitesnis, DNS informacija yra laikinai saugoma įvairiose vietose. Be DNS serverių talpyklų, duomenys apie neseniai aplankytas svetaines gali būti laikinai saugomi ir jūsų kompiuteryje. Tikėtina, kad „google.com“ jūs naudojate daugiau nei kartą per dieną, todėl jūsų kompiuterio talpykla gali turėti išsaugotą šio domeno IP adresą, todėl kitą kartą kreipiantis į jį, nereikės atlikti visos DNS paieškos grandinės. Papildoma talpykla gali atsirasti maršrutizatoriuose, naudojamuose prisijungimui prie interneto, taip pat jūsų interneto paslaugų teikėjo (ISP) serveriuose.

Schema, vaizduojanti DNS talpyklos veikimą

DNS užklausų tipai

DNS užklausos gali būti skirstomos į tris pagrindinius tipus:

  • Rekursinė užklausa (Recursive Query): Klientas reikalauja, kad DNS serveris (paprastai DNS rekursinis sprendiklis) atsakytų su prašomu išteklių įrašu arba klaidos pranešimu, jei įrašas nerandamas. Vartotojas tikisi, kad DNS serveris atliks visą darbą ir grąžins galutinį atsakymą.

  • Pakartotinė užklausa (Iterative Query): Šiuo atveju vartotojas leidžia DNS serveriui pateikti geriausią atsakymą. Jei užklaustas serveris neatitinka užklausos pavadinimo, jis grąžina persiuntimą į autoritetingą DNS serverį žemesniame hierarchijos lygyje. Tada vartotojas pateikia užklausą persiuntimo adresu. Šis procesas tęsiasi su papildomais DNS serveriais užklausos grandinėje, kol įvyksta klaida arba baigiasi skirtas laikas. Tai yra įprastas procesas tarp DNS serverių.

  • Nerekursinė užklausa (Non-recursive Query): Ji įvyksta, kai DNS vartotojas pateikia užklausą DNS serveriui dėl įrašo, prie kurio jis turi prieigą, nes yra jam autoritetingas arba įrašas yra jo talpykloje. Tai greičiausias užklausos tipas, nes serveris iš karto gali pateikti atsakymą.

DNS įrašų tipai: Informacijos įvairovė

DNS išteklių įrašai (Resource Records) yra pagrindiniai domenų vardų sistemos informacijos elementai. Tai įrašai DNS duomenų bazėje, kurie teikia informaciją apie pagrindinius kompiuterius ir kitus tinklo resursus. Pagrindiniai DNS įrašų tipai yra:

  • A įrašas (Address Record): Juose yra pagrindinio kompiuterio vardas ir atitinkamas IPv4 adresas. Tai vienas iš dažniausiai naudojamų įrašų tipų, tiesiogiai susiejantis domeno vardą su jo IP adresu. Pavyzdžiui, A įrašas „manodomenas.lt“ nurodo, kokiame serveryje veikia šis domenas.

  • AAAA įrašas (IPv6 Address Record): Juose yra pagrindinio kompiuterio vardas ir atitinkamas IPv6 adresas. Su IPv4 adresų išnaudojimu, IPv6 tampa vis svarbesnis, ir AAAA įrašai yra jo atitikmuo.

  • CNAME įrašas (Canonical Name Record): Naudojami domenų vardų slapyvardžiams kurti. CNAME įrašas nukreipia vieną domeno vardą į kitą domeno vardą. Tai naudinga, kai norite, kad keli subdomenai rodytų į tą patį serverį ar resursą, nenaudodami tiesioginių IP adresų. Pavyzdžiui, CNAME įrašas „www CNAME pakamore.lt“ reiškia, kad „www.pakamore.lt“ naudoja tuos pačius IP adresus kaip ir „pakamore.lt“. Tačiau svarbu žinoti, kad negali egzistuoti joks kitas įrašas (išskyrus patį CNAME) tokiam pačiam subdomenui, kuriam sukurtas CNAME įrašas. Kadangi CNAME sukuria papildomą DNS užklausos žingsnį, vieno serverio aptarnaujamoms svetainėms rekomenduojama naudoti A įrašus vietoj CNAME, siekiant greitesnio svetainės krovimo.

  • MX įrašas (Mail Exchanger Record): Nurodo domeno vardo pašto mainų serverį, naudojamą SMTP (Simple Mail Transfer Protocol) protokolu. MX įrašai skirti nurodyti pašto serverių vardams (ne IP adresams), kurie priima el. laiškus. Nurodant MX įrašus, reikia nurodyti ir prioritetą - kuo mažesnis skaičius, tuo didesnis prioritetas. Tai leidžia nurodyti kelis pašto serverius, kuriais bus bandoma pristatyti el. laišką, jei pagrindinis serveris nepasiekiamas.

  • NS įrašas (Name Server Record): Įgalioja DNS zoną naudoti konkretų autoritetingą vardų serverį. NS įrašai leidžia trečiojo lygio domeną deleguoti kitiems DNS vardų serveriams. Jie nurodo, kurie vardų serveriai yra atsakingi už konkrečios DNS zonos valdymą.

  • PTR įrašas (Pointer Record): Naudojami atvirkštinei IP paieškai (reverse DNS lookup). Tai yra atvirkštinis procesas A įrašams - pagal IP adresą nustatomas domeno vardas. Tai svarbu, pavyzdžiui, el. pašto serveriams tikrinti, ar gaunamas laiškas nėra šlamštas.

  • TXT įrašas (Text Record): Tekstinis įrašas. Gali būti naudojamas bet kokiam tekstiniam įrašui, dažnai naudojamas el. pašto autentifikacijos technologijoms, tokioms kaip SPF (Sender Policy Framework) ir DKIM (DomainKeys Identified Mail), taip pat kitoms informacinėms reikšmėms saugoti.

  • SRV įrašas (Service Record): Serviso įrašai, naudojami nurodyti, kaip pasiekti įvairias paslaugas (pvz., VoIP, momentinius pranešimus, telefonijos paslaugas). Šis įrašas apibūdina skirtingų paslaugų, tokių kaip el. paštas ar VoIP, prieinamumą ir adresus.

  • CAA įrašas (Certification Authority Authorization Record): Sertifikavimo įrašai, kuriais nurodoma, koks skaitmeninių sertifikatų paslaugų teikėjas (CA) turi teisę išduoti sertifikatus konkrečiam domenui. Tai padeda apsisaugoti nuo neteisėtai išduotų SSL/TLS sertifikatų.

  • TLSA įrašas (DNS-based Authentication of Named Entities): DNS paremto autentifikavimo įrašai, naudojami nurodyti, koks sertifikatas tinkamas jungtis prie serviso. Tai yra dalis DANE (DNS-based Authentication of Named Entities) protokolo, kuris naudoja DNS informaciją SSL/TLS sertifikatų autentifikavimui.

  • CERT įrašas (Certificate Record): Saugo tokius šifravimo sertifikatus kaip PKIX, SPKI, PGP. Nors ir nėra plačiai naudojamas, gali būti naudojamas saugoti įvairių tipų kriptografinius sertifikatus.

  • SOA įrašas (Start of Authority Record): Šiame įraše yra informacija, reikalinga DNS zonos valdymui, pvz., administratoriaus el. pašto adresas, pagrindinio vardų serverio pavadinimas, zonos serialo numeris ir laiko parametrai (refresh, retry, expire, minimum TTL).

Infografika, iliustruojanti skirtingus DNS įrašų tipus ir jų paskirtį

DNS zonos nustatymai ir TTL (Time To Live)

DNS zonos nustatymai yra kritiškai svarbūs, nes jie nurodo, kuriame serveryje laikoma jūsų interneto svetainė, kur nukreipiami el. pašto laiškai ir kiti svarbūs parametrai. Patobulinus DNS nustatymus pagal individualią situaciją, galima pagreitinti svetainės veikimą ir padidinti el. pašto patikimumą.

Vienas svarbiausių DNS įrašo parametrų yra jo galiojimo laikas, arba TTL (Time To Live). TTL nustato, kiek laiko DNS įrašas gali būti laikomas talpykloje (cache) DNS serveriuose ir vartotojų įrenginiuose, prieš atliekant naują užklausą.

  • Ilgesnis TTL: Kuo ilgesnis TTL, tuo ilgiau lankytojų kompiuteriai ir tarpiniai serveriai išsaugos DNS įrašą. Tai reiškia, kad kiekvienas puslapio atvertimas bus greitesnis, nes nereikės nuolat kreiptis į DNS serverį. Tai ypač naudinga, kai esate tikri, kad serverių IP adresai ilgai nesikeis. Rekomenduojamas TTL gali būti 24 valandos (86400 sekundžių). Ilgesni nustatymai gali būti ignoruojami kai kurių programinės įrangos, sukeldami nežinomybę.

  • Trumpesnis TTL: Trumpesnis TTL yra būtinas, kai planuojate dažnai keisti serverio IP adresą, pavyzdžiui, atliekant perkėlimą į kitą serverį ar turint avarinio atkūrimo planą. Tačiau nuolat naudoti labai trumpus TTL (mažesnius nei 30 minučių) nerekomenduojama, nes tai gali padidinti DNS serverių apkrovą ir sulėtinti svetainės veikimą, jei lankytojas naršo po svetainę ilgiau nei nustatytas TTL. Rekomenduojama minimumas 30 minučių (1800 sekundžių).

Optimalaus TTL pasirinkimas yra kompromisas tarp greito svetainės veikimo ir galimybės greitai atnaujinti DNS įrašus. Daugumai svetainių tinka 6 valandų (21600 sekundžių) TTL, nes tai yra pakankamai ilgas laiko tarpas, viršijantis vidutinę vienos apsilankymo sesijos trukmę, bet pakankamai trumpas, kad pakeitimus būtų galima atlikti per darbo dieną.

DNS valdymo įrankiai ir saugumas

Domenų vardų sistemos valdymas, nors ir gali pasirodyti sudėtingas, tampa lengvai perprantamas ir greitai atliekamas, supratus jo veikimo principus. Daugelis paslaugų teikėjų siūlo įvairius įrankius ir funkcijas DNS valdymui:

  • Standartiniai DNS serveriai: Daugelis paslaugų teikėjų siūlo savo DNS serverius, kurie automatiškai tvarko daugelį nustatymų.
  • Domenų nukreipimas (Domain Forwarding): Paprastas būdas nukreipti vieną domeną į kitą, nurodant, iš kokio serverio veiks svetainė ar el. paštas.
  • Zonos redagavimas (Zone Editing): Detali funkcija, leidžianti kurti ir koreguoti visus DNS įrašų tipus, suteikiant visišką kontrolę.
  • Automatinis domeno nukreipimas: Jei domenas ir jo talpinimo planas yra pas tą patį teikėją, domenas gali būti automatiškai nukreipiamas į serverio IP adresą.

Saugumas DNS sistemoje yra itin svarbus. Kibernetiniai nusikaltėliai gali bandyti manipuliuoti DNS, kad nukreiptų vartotojus į suklastotas svetaines (pvz., phishing svetaines ar bankininkystės sistemas). Tam apsaugoti naudojama DNSSEC (Domain Name System Security Extensions) technologija. DNSSEC naudoja skaitmeninius parašus, kad patikrintų DNS užklausų ir atsakymų autentiškumą, taip apsaugodama nuo DNS falsifikavimo ir užtikrindama, kad vartotojai pasiektų tikruosius domenų serverius.

Kaip veikia DNS serveris (domenų vardų sistema).

DNS paieškos įrankiai

Internetiniuose DNS paieškos įrankiuose galima greitai ir lengvai ieškoti DNS įrašų. Šie įrankiai pateikia informaciją apie įvairius DNS įrašų tipus, įskaitant TTL, reikšmę ir kitus parametrus. Galima pasirinkti, kokį DNS serverį naudoti paieškai (pvz., Google DNS, Cloudflare DNS, OpenDNS, Quad9, Yandex DNS) ir kokio tipo įrašo ieškoti (A, MX, TXT ir kt.). Tokie įrankiai padeda suprasti, kaip veikia DNS ir kokia informacija yra susieta su konkrečiu domenu.

DNS sistema yra sudėtinga, bet būtina interneto dalis. Supratimas, kaip ji veikia, leidžia ne tik efektyviau valdyti savo domenus, bet ir geriau suprasti interneto veikimo principus bei užtikrinti savo svetainių saugumą ir patikimumą.

tags: #serveriai #dns #irasai