DNS paieška: kaip vardas tampa maršrutu

Domeno vardas atrodo žodinis, beveik literatūrinis. IP adresas – skaitinis, lakoniškas, mašininis. DNS stovi tarp šių dviejų pasaulių. Pats pavadinimas – Domenų vardų sistema (angl. Domain Name System) – skamba techniškai ir biurokratiškai, tačiau jo kultūrinis vaidmuo yra elegantiškas: jis leidžia žmonėms naudoti vardus, kol kompiuteriai toliau kalbasi adresais. Senąja lotynų kalba šį judėjimą galima būtų pavadinti perėjimu iš numerus į nomen – iš skaičiaus į vardą.

Kai atliekate DNS paiešką, užduodate tiesioginį klausimą paskirstytai serverių ir autoritetingų šaltinių hierarchijai: kokios instrukcijos šiuo metu yra priskirtos viešam domeno vardui? Atsakymas gali atskleisti kur kas daugiau nei paprastą kelionės tikslą. Jis gali parodyti, kur gyvena svetainė, kas valdo el. paštą, ar serverio migracija vis dar plinta (propaguojasi), ar TXT įrašuose paskelbtas verifikacijos raktas, ar subdomenas yra tik nuoroda (alias), nukreipianti kitur.

Ką iš tikrųjų reiškia įrašai

A įrašas susieja domeno vardą su IPv4 adresu. AAAA įrašas daro tą patį su IPv6. CNAME įrašas nurodo, kad domeno vardas yra tik alternatyvus vardas (pseudonimas), o ne pats galutinis taškas. MX įrašai nustato, kur turi būti pristatomas el. paštas ir kokia yra jo prioritetų tvarka. NS įrašai nukreipia į autoritetingus vardų serverius, atsakingus už konkrečią zoną. TXT įrašai talpina laisvos formos tekstą, nors praktikoje juose dažnai saugomos SPF taisyklės, domenų patvirtinimo raktai, DKIM fragmentai ir kiti operaciniai metaduomenys. SOA (Start of Authority) įrašas veikia kaip zonos administracinis stuburas: jis nurodo pirminį autoritetingą serverį, saugo serijos numerį ir nustato laiko parametrus, kurie lemia atnaujinimo ir pakartotinių užklausų elgseną.

Norint gerai suprasti DNS, reikia mokėti skaityti intenciją. Tvarkingas įrašų rinkinys paprastai pasakoja nuoseklią istoriją. Svetainė, naudojanti CDN, gali rodyti CNAME nukreipimą. Įmonė, naudojanti išorinį el. paštą, gali nukreipti MX įrašus į „Google“, „Microsoft“ ar kitą teikėją, kol pati svetainė talpinama visiškai kitoje vietoje. TXT įrašas gali tyliai patvirtinti nuosavybės teisę paslaugai, kurios visuomenė niekada nemato. DNS dažnai yra lakoniškas, bet retai kada beprasmis.

Kodėl DNS pakeitimai atrodo lėti

Daugelis žmonių mano, kad DNS pakeitimas yra momentinis, nes nauja reikšmė buvo išsaugota valdymo skydelyje. Realybė yra lėtesnė. Pakeitimai laikinai išsaugomi (angl. cached) daugelyje lygmenų: naršyklėse, operacinėse sistemose, rekursyviuose serveriuose, interneto tiekėjų tinkluose. TTL (Time To Live) nurodo talpykloms, kiek laiko įrašas gali būti naudojamas pakartotinai prieš prašant naujo atsakymo. Mažesnės TTL reikšmės gali sutrumpinti laukimą planuojamų perkėlimų metu, nors jos neištrina visų talpyklų iš karto. Šis vėlavimas yra tai, ką žmonės paprastai vadina DNS plitimu (angl. propagation).

Jei adresas pasikeičia, o dalis pasaulio vis tiek pasiekia senąjį serverį, DNS dažniausiai yra pagrindinė to priežastis. Jei po migracijos el. laiškai vis dal krenta į senojo teikėjo dėžutę, tikėtina, kad vis dar veikia MX TTL ir rekursyviųjų serverių talpyklos. Jei viename mieste domeno vardas išsprendžiamas kitaip nei kitame, tai nebūtinai reiškia sabotažą ar chaosą – kartais tai tiesiog laiko, talpyklos būsenos ar geografiškai pritaikytos infrastruktūros pasekmė.

Ką stebėti DNS ataskaitoje

A įrašai, rodantys į neteisingą serverį, gali visiškai sugadinti svetainės veikimą. Trūkstami AAAA įrašai nėra kritiniai, nors jie rodo, kad domeno vardas nėra pilnai paruoštas IPv6 protokolui. Netikėtas CNAME įrašas gali atskleisti tarpinio serverio (proxy) sluoksnį arba pamirštą trečiosios šalies nustatymą. MX įrašai su klaidingais tikslais gali visiškai sutrikdyti pašto pristatymą. NS įrašai, neatitinkantys tikrosios deleguotos zonos, gali sukelti visišką painiavą (angl. split-brain), kai vienas valdymo skydelis sako viena, o viešasis internetas mato kita. TXT įrašų šiukšlynas yra dažnas reiškinys bėgant metams – senos verifikacijos eilutės ir apleisti paslaugų įrašai linkę likti kaip archeologiniai sluoksniai.

SOA serijos numeriai yra svarbesni, nei atrodo iš pirmo žvilgsnio. Tradicinėse DNS operacijose šis serijinis numeris padeda antriniams serveriams aptikti zonos atnaujinimus. Jei zona pasikeičia, bet serijos numerio atnaujinimas neveikia, pasenę atsakymai gali išlikti keisčiausiais būdais. Paprastiems svetainių savininkams serijos numeris yra mažiau kasdienė kontrolė, o labiau teismo ekspertizės įkaltis. Administratoriams tai gali būti paties pokyčių valdymo pirštų atspaudas.

Domenas prieš svetainės IP: kodėl jie skiriasi

Domenas yra vardas. IP adresas yra vietos galutinis taškas tam tikru momentu. Jie yra susiję, tačiau tai nėra tas pats kūrinys. Vienas domenas gali būti išspręstas į kelis IP adresus, skirtus apkrovos paskirstymui (load balancing), gedimų toleravimui (failover), anycast arba pagal geografiją pritaikytam pristatymui. Keli domenai gali dalytis vienu IP adresu. Domeno vardas gali rodyti į atvirkštinį tarpinį serverį (reverse proxy), o ne į pačių programų serverį už jo. Štai kodėl „svetainės IP“ gali pasikeisti, kol domenas išlieka stabilus ir pažįstamas vartotojams.

Šie pokyčiai nebūtinai yra įtartini. Serverių šeimininkai keičiasi. CDN rotuoja savo mazgus. Teikėjai subalansuoja srautą. Saugumo paslaugos įsiterpia prieš originalų serverį. Vis dėlto staigūs įrašų pokyčiai nusipelno patikros. Jei A įrašas peršoka į nežinomą tinklą arba jei NS įrašai pasikeičia be planuoto perkėlimo – verta būti atsargiems. DNS yra viena pirmųjų vietų, kur tampa matomi užgrobimai, pasibaigusio galiojimo paslaugų likučiai ir klaidingai nukreipta infrastruktūra.

Ką daryti ir ko vengti

Naudokite DNS paiešką, kai svetainė rodo į klaidingą serverį, kai dingsta el. paštas, kai migracija atrodo nebaigta, kai reikia patikrinti, ar veikia TXT verifikacijos raktas, arba kai norite palyginti viešąją realybę su tuo, ką teigia valdymo skydelis. Atidžiai tikrinkite domeno vardą, kartu palyginkite A ir AAAA įrašus, skaitykite MX įrašus pagal prioritetą ir nepamirškite, kad CNAME taisyklės gali visiškai pakeisti jūsų prielaidas.

Venkite vienos dažnos klaidos: traktuoti savo vietinėje talpykloje išsaugotą atsakymą kaip universalią tiesą. DNS pagal savo prigimtį yra paskirstyta sistema. Kita klaida yra per didelis agresyvumas trinant senus įrašus perkėlimo metu. Laikinas dubliavimas dažnai padeda išvengti svetainės prastovų. Tačiau priešinga klaida taip pat dažna: palikti pasenusius įrašus tol, kol zona tampa praeities paslaugų palimpsestu. Gera DNS higiena nėra nei panika, nei aplaidumas. Tai tvarkingas publikavimas, apgalvotas laiko parinkimas ir periodinė peržiūra.