Sobes.tech
Junior

Kaip veikia DNS?

sobes.tech AI

Atsakymas iš AI

DNS, arba Domenu Vardų Sistema, yra paskirstyta duomenų bazė, kuri paverčia žmogui skaitomus domeno vardus (pavyzdžiui, google.com) į IP adresus (pavyzdžiui, 172.217.16.14), kuriuos supranta kompiuteriai.

Domeno vardo konvertavimo (išsprendimo) procesas apima kelis žingsnius, kuriuose dalyvauja skirtingos komponentų sąveikos:

  1. Vartotojo užklausa: Vartotojas įveda domeno vardą naršyklėje.
  2. Resolveris (DNS Resolver): Operacinė sistema arba programa siunčia užklausą vietiniam DNS resolveriui (dažnai teikia interneto paslaugų teikėjas arba yra vietiniame maršrutizatoriuje/kompiuteryje).
  3. Resolverio talpykla: Resolveris pirmiausia tikrina savo vietinę talpyklą. Jei randa IP adresą, grąžina jį klientui. Tai pagreitina procesą.
  4. Šaknies (Root) DNS serveriai: Jei įrašas nėra talpyklėje, resolveris siunčia užklausą vienam iš 13 šaknies DNS serverių (pažymėti tašku .). Šie serveriai žino, kur rasti TLD (Top-Level Domain) serverius.
  5. TLD (Top-Level Domain) DNS serveriai: Šaknies serveris nukreipia resolverį į TLD serverį, kuris atsakingas už aukščiausio lygio domenus (pavyzdžiui, .com, .org, .ru).
  6. Autoritetingi (Authoritative) DNS serveriai: TLD serveris nukreipia resolverį į autoritetingą DNS serverį, kuris atsakingas už konkretų domeną (pavyzdžiui, google.com). Šis serveris saugo DNS įrašus.
  7. Autoritetingo serverio atsakymas: Autoritetingas serveris suranda atitinkamą įrašą (pavyzdžiui, A įrašą IPv4 arba AAAA įrašą IPv6) ir grąžina IP adresą resolveriui.
  8. Resolverio talpykla: Resolveris gauna IP adresą, jį talpina į talpyklą tam tikram laikui (TTL - Time To Live) ir grąžina klientui.
  9. Kliento ryšys: Klientas naudoja gautą IP adresą, kad užmegztų ryšį su žiniatinklio serveriu.

DNS serveriai saugo įvairių tipų įrašus:

  • A: Paverčia domeno vardą į IPv4 adresą.
  • AAAA: Paverčia domeno vardą į IPv6 adresą.
  • CNAME: Sukuria pseudonimą kitam domeno vardui.
  • MX: Nustato pašto serverius, atsakingus už domeną.
  • NS: Nurodo autoritetingus DNS serverius domenui.
  • PTR: Paverčia IP adresą į domeno vardą (naudojama atgalinėse DNS užklausose).
# DNS užklausos pavyzdys naudojant dig
dig google.com A
; <<>> DiG 9.16.1-Ubuntu <<>> google.com A
;; globalinės parinktys: +cmd
;; Gauta atsakymas:
;; ->>HEADER<<- užklausos: QUERY, būsena: NOERROR, id: 42650
;; žymės: qr rd ra; KLAUSIMAS: 1, ATSAKYMAS: 1, AUTORITETINGAS: 0, PAPILDOMAS: 1

;; OPT PSEUDOSECTION:
; EDNS: versija: 0, žymės:; udp: 65494
;; KLAUSIMAS SKYRIUS:
;google.com.                    IN      A

;; ATSAKYMO SKYRIUS:
google.com.             300     IN      A       172.217.16.142

;; Užklausos laikas: 42 ms
;; SERVERIS: 127.0.0.53#53(127.0.0.53)
;; KADA: Antr, 26 spalio 2023 10:00:00 UTC
;; Žinutės dydis  rcvd: 55

Šis paskirstytas ir hierarchinis požiūris daro DNS masto ir atsparią sistemą.