| |
Jak na Internet server ? (3)
Domain Name Service Osobn∞ sice nepova₧uji p°φkaz 'telnet 200.0.5.65' za nic krkolomnΘho (sßm Φasto IP adresy takto pou₧φvßm), ale u₧ivatelΘ mohou mφt na celou v∞c jin² nßzor. Proto vznikl hostlist, soubor, v n∞m₧ jsou uvedena jmΘna poΦφtaΦ∙ a k nim nßle₧φcφ IP adresy. Na unixov²ch systΘmech b²vß hostlistem soubor /etc/hosts, na poΦφtaΦφch s OS/2 b²vß hostlistem soubor X:\TCPIP\ETC\hosts nebo ve X:\MPTN\ETC\hosts, na poΦφtaΦφch s MS-Windows pak X:\WINDOWS\hosts, kde X: je systΘmov² disk. Takhle by mohl vypadat hostlist pro uvedenou sφ¥:
200.0.5.66 pc1 Pomocφ tohoto hostlistu je mo₧nΘ v²Üe uveden² p°φkaz 'telnet 200.0.5.65' nahradit p°φkazem 'telnet' 'server'. Uvßd∞t druhΘ a p°φpadnß dalÜφ sφ¥ovß rozhranφ serveru je naprosto zbyteΦnΘ. Tento soubor by pak m∞l b²t ulo₧en na vÜech poΦφtaΦφch na tΘto sφti - u₧ to je vÜak pon∞kud nepraktickΘ, nebo¥ nap°. po p°idßnφ jednoho poΦφtaΦe do domΘny by bylo t°eba updatovan² soubor na vÜechny poΦφtaΦe v sφti znovu nakopφrovat. V takhle malΘ sφti to jeÜt∞ nenφ takov² problΘm, ale p°edstavte si sφ¥ s tisφci poΦφtaΦi, nebo t°eba cel² Internet. Navφc v takov²ch sφtφch by hostlist nabφral takovou velikost, ₧e byste si na n∞j museli koupit celΘ diskovΘ pole... Proto vznikl systΘm DNS, Domain Name Service (pon∞kud kostrbat² p°eklad Jmennß slu₧ba pou₧φvat rad∞ji ani nebudu). DNS nßs zbavuje vÜech nev²hod hostlistu, je vÜak mnohem slo₧it∞jÜφ (a to i na pochopenφ). Zßkladem celΘ slu₧by DNS je nameserver. Nameserverem je myÜlen poΦφtaΦ, na n∞m₧ b∞₧φ DNS program (jeho₧ nejΦast∞jÜφ implementace je znßmß pod nßzvem BIND, co₧ ovÜem nemß nic spoleΦnΘho s p°ivazovßnφm a provazy, ale je to zkratka z Berkeley Internet Name Domain. V∞tÜinou se ale onen program jmenuje 'named'. Slu₧by DNS vyu₧φvajφ TCP/IP port∙ (socket∙) 42 a 53. Nameserveru se ptß na adresu IP poΦφtaΦe se specifikovan²m jmΘnem program zvan² resolver - ten je ji₧ tΘm∞° v₧dy souΦßstφ stacku TCP/IP, tak₧e se o n∞j nemusφte starat. KonfiguraΦnφ soubor od resolveru je na Unixu /etc/resolv.conf, v OS/2 X:\TCPIP\BIN\resolv, pop°. X:\MTPN\BIN\resolv, v MS-Windows b²vß konfigurace resolveru sice uvedena jinak, ale nakonec se stejn∞ generuje soubor X:\WINDOWS\resolv, kde X: je jmΘno systΘmovΘho disku. Formßt souboru resolv je nßsledujφcφ: domain domena.cz
nameserver 200.0.5.65 V₧dy prvnφ je uvedeno jmΘno domΘny, dßle pak primßrnφ nameserver a p°φpadn∞ tΘ₧ dalÜφ sekundßrnφ nameservery. Adresa nameserveru 'musφ' b²t Φφselnß (jinak by Ülo o klasick² rekurzivnφ deadlock, proto₧e pak nelze zφskat IP adresu serveru, nebo¥ nelze zφskat IP adresu serveru, jeliko₧ nelze zφskat IP adresu serveru atd...). Resolver se ptß na IP adresu poΦφtaΦe ve zmφn∞nΘ domΘn∞ na serveru uvedenΘho v₧dy pro danou domΘnu na prvnφm mφst∞, nedostane-li se mu odpov∞di, ptß se dalÜφho atd. Pokud se resolver tß₧e na jmΘno poΦφtaΦe, jeho₧ domΘna nenφ v resolv.conf uvedena, tß₧e se prvnφho nameserveru, kter² v resolv.conf najde, pokud se mu nepoda°φ se spojit se serverem, vznßÜφ dotaz na dalÜφ nameserver atd. Tolik o Φßsti klientskΘ, kterß je relativn∞ jednoduchß, nynφ p°ijde na °adu Φßst serverovß. V principu rozliÜujeme t°i druhy nameserver∙, kterΘ, aΦ se neliÜφ b∞₧φcφm softwarem, liÜφ se funkcφ - nameservery primßrnφ, sekundßrnφ a nameservery cache only. Primßrnφ nameserver je pro ka₧dou domΘnu jen jeden a obsahuje cel² DNS zßznam svΘ domΘny (nebo vφce domΘn, nebo¥ jak²koli nameserver m∙₧e spravovat libovolnΘ mno₧stvφ domΘn - resp. omezenφ jsou jen hardwarovΘho rßzu). Sekundßrnφ nameservery kopφrujφ z primßrnφho nameserveru tyto zßznamy o spravovan²ch domΘnßch a cache-only nameservery slou₧φ jen jako cache - zaznamenßvajφ si p°φstupy a zφskßnφ adresy z domΘnovΘho jmΘna urychlujφ - nutno podotknout, ₧e tuto Φinnost konajφ i ostatnφ nameservery, kdy₧ p°es n∞ n∞jak² DNS zßznam putuje. A jak takov² nameserver nastavit ? Dßle ukß₧i soubor named.boot, pou₧φvan² programem named/BIND, pro primßrnφ server domΘny domena.cz a pro sekundßrnφ server domΘny druha_domena.cz:
Nynφ si definujeme DNS zßznam naÜφ domΘny (soubor domena.cz.db):
KonfiguraΦnφ zßznam domΘny druha_domena.cz musφ b²t p°φtomen na primßrnφm nameserveru domΘny druha_domena.cz, odkud si jej nßÜ server sßm automaticky p°evezme, a naopak, p°φpadn² sekundßrnφ nameserver si p°evezme DNS zßznam naÜφ domΘny z naÜeho primßrnφho nameserveru. Pro jednoduchost neuvßdφm nastavenφ reverznφho nameserveru - pokud dokß₧ete nastavit nameserver, pak reverznφ nameserver dßte dohromady takΘ. Jen pro informaci - DNS server nemusφ pracovat jen v sφti zapojenΘ do Internetu, ale i v sφti, kterß v Internetu nenφ, pop°. v sφti, kterß je za firewallem. Zde si musφte server nastavit jako ko°enov², co₧ vcelku nenφ problΘm, jen je pot°eba op∞t Φφst dokumentaci. Zbyn∞k Pospφchal
|