14. Domēnvārdu sistēma
14. Domēnvārdu sistēma
14.01. Ievads
Domēnvārdu sistēma jeb DNS ir dalītā datubāze, ko lieto TCP/IP aplikācijas, lai attēlotu datoru vārdus un IP adreses un lai radītu e-pasta maršrutizēšanas informāciju. Izmantojam terminu "sadalīts", jo neviena atsevišķi ņemta vieta Internetā nezina pilnu informāciju. Katra vieta (augstskolas fakultāte, uzņēmums, uzņēmuma filiāle, utml.) uztur pati savu informācijas datubāzi un izmanto serveru programmu, kam citas sistēmas Internetā (klienti) var sūtīt pieprasījumus. DNS piedāvā protokolu, ar kuru klienti var atrast severus un savā starpā komunicēt.
No lietotņu viedokļa, piekļuve DNS'am notiek caur atrisinātāju. Uz UNIX'a mītnēm atrisinātājam piekļūst galvenokārt izmantojot divas C bibliotēku funkcijas - gethostbyname(3) un gethostbyaddr(3) kas tiek sasaistītas (linked) ar lietotni tās būvēšanas laikā. Pirmā no šīm funkcijām ņem mītnes DNS vārdu un atgriež tā IP adresi; otra ņem IP adresi un sameklē mītnes DNS vārdu. Atrisinātājs sazinās ar vienu vai vairākiem vārdu serveriem, lai veiktu šos attēlojumus.
#picref("f_4_2.gif", "4.2.attēlā") mēs parādījām, ka atrisinātājs parasti ir daļa no lietotnes. Tā nav daļa no operētājsistēmas kodola, kā tas ir TCP/IP protokoliem. Cits svarīgs aspekts šajā zīmējumā ir tas, ka lietotnei ir jāpārveido mītnes vārds par IP adresi pirms tā var lūgt TCP atvērt savienojumu vai nosūtīt datagrammu ar UDP. TCP/IP protokoli, kas atrodas kodolā, neko nezina par DNS.
Šajā nodaļā mēs aplūkosim kā atrisinātāji sazinās ar vārdu serveriem, izmantojot TCP/IP protokolus (galvenokārt UDP). Mēs neizklāstīsim visas administratīvās nianses, kas saistītas ar vārdu servera darbināšanu, nedz arī visas opcijas, kas ir pieejamas atrisinātājiem un serveriem. Šīs detaļas var piepildīt veselu grāmatu. (Sk. [Albitz and Liu 1992], kur dotas visas nianses par standarta UNIX'a atrisinātāju un vārdu serveru kopšanu.)
RFC 1034 [Mockapetris 1987a] definē jēdzienus un iespējas, ko dod DNS, savukārt RFC 1035 [Mockapetris 1987b] apraksta implementācijas un standartu jautājumus. Visbiežāk lietotā DNS implementācija (gan atrisinātājam, gan vārdu serverim) saucas BIND (Berkeley Internet Name Domain server). Lielizmēra tīklu tīklu trafiks, ko rada DNS ir analizēts [Danzig, Obraczka, and Kumar 1992].