DNS HOWTO Nicolai Langfeldt janl@math.uio.no v2.2, 11 February 1999 Kako za èisto kratek èas postati DNS administrator. V sloven¹èino prevedel Andrej Lajovic andrej.lajovic@guest.arnes.si, 7. avgusta 2000 ______________________________________________________________________ Kazalo 1. Predgovor 1.1 Pravne zadeve 1.2 Zahvala in pro¹nja za pomoè. 1.3 Posvetilo 2. Uvod. 3. Imenski stre¾nik s predpomnilnikom. 3.1 Zagon named 3.2 Naredimo nekaj ¹e bolj¹ega 3.3 Èestitam 4. "Preprosta" domena 4.1 Najprej nekaj teorije 4.2 Na¹a lastna domena 4.3 Obratni vnosi 4.4 Opozorila 4.5 Zakaj obratne poizvedbe ne delujejo. 4.5.1 Obratni vnosi niso pristojni. 4.5.2 Imate brezrazredno podmre¾o 5. Primer prave domene 5.1 /etc/named.conf (ali /var/named/named.conf) 5.2 /var/named/root.hints 5.3 /var/named/zone/127.0.0 5.4 /var/named/zone/land-5.com 5.5 /var/named/zone/206.6.177 6. Vzdr¾evanje 7. Pretvarjanje iz razlièice 4 v razlièico 8 8. Vpra¹anja in odgovori 9. Kako postati DNS administrator za dalj èasa. ______________________________________________________________________ 1. Predgovor Kljuène besede: DNS, bind, bind-4, bind-8, named, povezava na klic, ppp, slip, isdn, Internet, domena, ime, poizvedovanje, predpomnenje. Ta dokument je del projekta Linux Documentation Project. 1.1. Pravne zadeve (C)opyright 1995-1999 Nicolai Langfeldt. Pri popravljanju in/ali raz¹irjanju tega dokumenta ohranite tudi sporoèilo o avtorskih pravicah in ga po potrebi dopolnite. V sloven¹èino prevedel Andrej Lajovic andrej.lajovic@guest.arnes.si, 7. avgusta 2000. Za raz¹irjanje slovenskega prevoda veljajo enaki pogoji, kot za original. 1.2. Zahvala in pro¹nja za pomoè. Rad bi se zahvalil Arntu Gulbrandsenu, ki se je pregrizel skozi vse delovne razlièice tega dokumenta in ki mi je dal mnogo uporabnih predlogov. Rad bi se zahvalil tudi mnogim ljudem, ki so mi poslali predloge in opozorila po elektronski po¹ti. Tole ne bo nikoli zakljuèen dokument, zato mi sporoèite o va¹ih te¾avah in uspehih - tako lahko naredimo ta HOWTO bolj¹i. Komentarje in/ali vpra¹anja ter denar po¹ljite na janl@math.uio.no. Preden mi po¹ljete sporoèilo, na katerega ¾elite tudi odgovor, prosim preverite, da je va¹ naslov, naveden v pismu zagotovo pravilen in deluje. Preden me kontaktirate, preberite tudi poglavje ``Vpra¹anja in odgovori''. ©e nekaj: razumem le norve¹ki in angle¹ki jezik. Èe ste prevedli ta HOWTO, vas prosim, da me na to opozorite, da bom lahko vzdr¾eval seznam jezikov, v katerih je bil objavljen in da vas bom ob izidu nove razlièice lahko o tem obvestil. 1.3. Posvetilo Ta HOWTO je posveèen Anne Line Norheim Langfeldt, èeprav ga verjetno ne bo nikoli prebrala - paè ni tak¹ne vrste dekle. 2. Uvod. Kaj to je in kaj ni. DNS (Domain Name System) pretvarja imena raèunalnikov v IP ¹tevilke, ki jih imajo vsi raèunalniki v internetu. Preslikava imena v naslove, naslove v imena in ¹e nekaj drugih stvari. Ta HOWTO prikazuje, kako definirati tak¹ne preslikave na Linux sistemu. Preslikava je nekak¹na povezava med imenom raèunalnika, na primer ftp.linux.org ter njegovo IP ¹tevilko (ali naslovom) 199.249.150.4. DNS je za nepouèene ljudi (vas ;-) eno od bolj nejasnih podroèij omre¾ne administracije. Ta HOWTO bo poskusil narediti nekaj stvari jasnej¹ih. Opisuje, kako postaviti preprost DNS imenski stre¾nik. Zaèeli bomo z imenskim stre¾nikom s predpomnilnikom in pre¹li na postavitev primarnega DNS stre¾nika za domeno. Za zapletenej¹e nastavitve lahko pogledate v poglavje ``Vpra¹anja in odgovori''. Èe ni opisana tam, boste morali prebrati nekaj Prave Dokumentacije. Kaj sestavlja Pravo Dokumentacijo, bom povedal v ``zadnjem poglavju''. Preden zaènete, morate svoj raèunalnik nastaviti tako, da se lahko telnetate vanj in iz njega ter uspe¹no delate razliène povezave v omre¾je. ©e posebej pomembno je, da lahko storite telnet 127.0.0.1 in dobite svoj lasten raèunalnik (preizkusite takoj!). Za zaèetek potrebujete tudi dobre datoteke /etc/nsswitch.conf (ali /etc/host.conf), /etc/resolv.conf in /etc/hosts, ker njihove funkcije tu ne bom razlagal. Èe vam vse to ¹e ne deluje, poglejte v NET-3-HOWTO in/ali PPP-HOWTO, kjer so navodila za nastavitev. Ko reèem 'va¹ raèunalnik', mislim s tem raèunalnik, na katerem postavljate DNS in ne kak¹en drug raèunalnik, ki ga posedujete. Predpostavljam, da niste za kakr¹nim koli po¾arnim zidom, ki bi prepreèeval imenske poizvedbe. Èe ste, boste potrebovali posebno konfiguracijo, zato poglejte v poglavje ``Vpra¹anja in odgovori''. Stre¾nik za imenske poizvedbe je na Unix-u program named. Je del paketa ``bind'', katerega koordinator za Konzorcij internetnega programja je Paul Vixie. Named je vkljuèen v veèino distribucij Linuxa in je navadno name¹èen kot /usr/sbin/named. Vkolikor named imate, ga verjetno lahko uporabite, sicer pa lahko preveden program dobite z Linuxove ftp strani ali pa si pretoèite zadnjo razlièico vsemogoène izvorne kode z ftp.isc.org:/isc/bind/src/cur/bind-8/. Ta HOWTO govori o bind razlièici 8. Starej¹a verzija tega HOWTO-ja, ki velja za bind 4, je ¹e vedno dosegljiva na http://www.math.uio.no/~janl/DNS/ v primeru, da ¹e vedno uporabljate bind 4. Èe va¹ named priroènik (man) govori (na koncu, v razdelku FILES) o named.conf, imate bind 8, èe govori o named.boot, pa bind 4. Èe imate razlièico 4 in vam je varnost pomembna, bi morali vsekakor nadgraditi na razlièico 8. DNS je èez cel internet segajoèa baza. Pazite, kaj vpi¹ete vanjo. Èe boste vanjo vpisali neumnosti, boste vi in drugi ljudje neumnosti iz nje tudi dobili. Vzdr¾ujte svoj DNS organiziran in pregleden, da vam bo dobro slu¾il. Nauèite se ga uporabljati, administrirati, odpravljati napake in bodite ¹e eden dober administrator, ki skrbi, da internet ne pade na kolena zaradi nepravilne uporabe. V tem dokumentu zaradi poenostavljenosti navajam nekaj dejstev, ki niso popolnoma resnièna (èeprav so vsaj napol resnièna). Stvari bodo (verjetno ;-) delovale, èe verjamete, kar vam bom povedal. Nasvet: Naredite si rezervne kopije vseh datotek, ki jih boste spreminjali - v primeru, da kaj ne bo delovalo, lahko sistem ¹e vedno vrnete v staro, delujoèe stanje. 3. Imenski stre¾nik s predpomnilnikom. Prvi korak v konfiguraciji DNS-a, zelo uporaben za uporabnike klicnega dostopa Imenski stre¾nik s predpomnilnikom bo na¹el odgovore na imenske poizvedbe in si jih zapomnil za naslednjiè, ko jih boste potrebovali. To bo precej skraj¹alo èakalni èas, ¹e posebej, èe imate poèasno povezavo. Za zaèetek potrebujete datoteko /etc/named.conf, ki jo named prebere, ko se za¾ene. Za zdaj naj vsebuje le: ______________________________________________________________________ // Konfiguracijska datoteka za imenski stre¾nik s predpomnilnikom options { directory "/var/named"; // Odkomentiranje tega lahko pomaga, èe ste za po¾arnim zidom in // stvari ne delujejo, kot bi morale: // query-source port 53; }; zone "." { type hint; file "root.hints"; }; zone "0.0.127.in-addr.arpa" { type master; file "pz/127.0.0"; }; ______________________________________________________________________ Vrstica `directory' pove named, kje naj pogleda za datoteke. Vse datoteke, navedene zatem, se nahajajo relativno na to mesto - mapa pz se nahaja v /var/named in je torej v resnici /var/named/pz. /var/named je prava mapa glede na Standard Linux-ovega datoteènega sistema. V named.conf je omenjena tudi datoteka /var/named/root.hints. Ta naj vsebuje: ______________________________________________________________________ ; ; Èe to datoteko ¾e imate, se lahko tu nahajajo komentarji. ; Èe se ne, ne skrbite. ; . 6D IN NS G.ROOT-SERVERS.NET. . 6D IN NS J.ROOT-SERVERS.NET. . 6D IN NS K.ROOT-SERVERS.NET. . 6D IN NS L.ROOT-SERVERS.NET. . 6D IN NS M.ROOT-SERVERS.NET. . 6D IN NS A.ROOT-SERVERS.NET. . 6D IN NS H.ROOT-SERVERS.NET. . 6D IN NS B.ROOT-SERVERS.NET. . 6D IN NS C.ROOT-SERVERS.NET. . 6D IN NS D.ROOT-SERVERS.NET. . 6D IN NS E.ROOT-SERVERS.NET. . 6D IN NS I.ROOT-SERVERS.NET. . 6D IN NS F.ROOT-SERVERS.NET. G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4 J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10 K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129 L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12 M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33 A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4 H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53 B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107 C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12 D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90 E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10 I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17 F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241 ______________________________________________________________________ Datoteka opisuje korenske imenske stre¾nike po svetu. Ti podatki se sèasoma spreminjajo, zato jih morate ohranjati toène. Preberite si poglavje ``Vzdr¾evanje'' za navodila, kako to storiti. Naslednji razdelek v named.conf je zadnji vnos zone. Njegov namen in uporabo bom razlo¾il v naslednjem poglavju, za zdaj samo ustvarite datoteko 127.0.0 v podmapi pz: ______________________________________________________________________ @ IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 1 ; Serijska ¹tevilka 8H ; Osve¾evanje 2H ; Ponoven poskus 1W ; Potek 1D) ; Minimum TTL NS ns.linux.izmislek. 1 PTR localhost. ______________________________________________________________________ Va¹ /etc/resolv.conf mora izgledati pribli¾no takole: ______________________________________________________________________ search poddomena.vasa-domena.edu vasa-domena.edu nameserver 127.0.0.1 ______________________________________________________________________ Vrstica `search' pove, katere domene je potrebno preiskati za vsako ime raèunalnika, na katerega se ¾elite prikljuèiti. `nameserver' vsebuje naslov va¹ega imenskega stre¾nika, v tem primeru va¹ega lastnega raèunalnika, na katerem bo named tekel (127.0.0.1 je v redu, tudi èe ima va¹ raèunalnik ¹e kak¹en naslov). Èe ¾elite navesti veè imenskih stre¾nikov, vpi¹ite za vsakega po eno `nameserver' vrstico. (Zapomnite si: named te datoteke ne bo nikoli prebral, potreboval jo bo le del sistema, ki bo uporabljal named.) Za ilustracijo, kaj ta datoteka poène: èe posku¹a program poizvedeti za foo, bo najprej poskusil foo.poddomena.vasa-domena.edu, nato foo.vasa-domena.edu in ¹ele na koncu foo. Èe program posku¹a poizvedeti za sunsite.unc.edu, bo najprej poskusil sunsite.unc.edu.poddomena.vasa-domena.edu (priznam, da se zdi butasto, ampak tako stvar paè deluje), nato sunsite.unc.edu.vasa-domena.edu in konèno sunsite.unc.edu. Pametno je, da v to vrstico ne vnesete preveè domen, ker iskanje po vseh zahteva kar nekaj èasa. Primer predpostavlja, da spadate v domeno poddomena.vasa-domena.edu in je va¹ raèunalnik potemtakem vas-racunalnik.poddomena.vasa-domena.edu. Vrstica naj ne vsebuje va¹e vrhnje domene (ang.: TLD, Top Level Domain), v tem primeru `edu'. Èe se pogosto prikljuèujete na raèunalnike v drugi domeni, lahko dodate tudi to: ______________________________________________________________________ search subdomain.your-domain.edu your-domain.edu druga-domena.com ______________________________________________________________________ in tako naprej. Vsekakor morate tukaj navedene primere zamenjati s pravimi domenami. Prosim, zapomnite si, da na koncu domen ni pik. To je zelo pomembno, prosim, zapomnite si, da na koncu domen ni pik. Sedaj je treba glede na razlièico va¹e C knji¾nice (libc) popraviti /etc/nsswitch.conf ali /etc/host.conf. Èe ¾e imate /etc/nsswitch.conf, bomo popravili to, sicer pa /etc/host.conf. /etc/nsswitch.conf To je dolga datoteka, v kateri je navedeno, kje dobiti razliène tipe podatkov - iz datoteke ali baze podatkov. Na zaèetku je navadno nekaj komentarjev, ki vam bodo pomagali pri razumevanju. Nato poi¹èite vrstico, ki se zaène z `hosts:' - popraviti jo morate v: ______________________________________________________________________ hosts: files dns ______________________________________________________________________ Èe te vrstice ¹e nimate, jo dodajte. Ta vrstica pove programom, naj najprej pogledajo v datoteko /etc/hosts in ¹ele nato preverijo DNS glede na /etc/resolv.conf. /etc/host.conf Verjetno ¾e vsebuje nekaj vrstic, med katerimi se ena zaène z order in mora izgledati takole: ______________________________________________________________________ order hosts,bind ______________________________________________________________________ Èe tak¹ne vrstice ¹e ni, jo dodajte. Ta vrstica pove podprogramom, ki imajo opraviti z imensko poizvedbo, naj najprej pogledajo v datoteko /etc/host.conf, nato pa povpra¹ajo imenski stre¾nik (za katerega v /etc/resolv.conf pi¹e, da je na 127.0.0.1). 3.1. Zagon named Po vsem tem je èas, da za¾enemo named. Èe uporabljate povezavo na klic, jo vzpostavite. Napi¹ite `ndc start' in pritisnite enter. Èe to ne deluje, poskusite `/usr/sbin/ndc start'. Èe vam tudi tu spodleti, si poglejte poglavje ``Vpra¹anja in odgovori''. V datoteki, kamor va¹ syslog pi¹e sporoèila (navadno /var/adm/messages, lahko pa tudi /var/log/messages), se mora med zagonom named (naredite tail -f /var/log/messages) izpisati nekaj tak¹nega: (vrstice, ki se konèajo z \ se nadaljujejo v naslednji vrstici) Feb 15 01:26:17 roke named[6091]: starting. named 8.1.1 Sat Feb 14 \ 00:18:20 MET 1998 ^Ijanl@roke.uio.no:/var/tmp/bind-8.1.1/src/bin/named Feb 15 01:26:17 roke named[6091]: cache zone "" (IN) loaded (serial 0) Feb 15 01:26:17 roke named[6091]: master zone "0.0.127.in-addr.arpa" \ (IN) loaded (serial 1) Feb 15 01:26:17 roke named[6091]: listening [127.0.0.1].53 (lo) Feb 15 01:26:17 roke named[6091]: listening [129.240.230.92].53 (ippp0) Feb 15 01:26:17 roke named[6091]: Forwarding source address is [0.0.0.0].1040 Feb 15 01:26:17 roke named[6092]: Ready to answer queries. Èe vidite kakr¹na koli sporoèila o napakah, ste se verjetno nekje zmotili. Named vam bo povedal, kje je napaka (upam, da v eni izmed datotek named.conf ali root.hints :-) Ubijte named in ¹e enkrat preglejte datoteko. Sedaj lahko preverimo va¹e nastavitve. Po¾enite naslookup in si oglejte svoje delo. $ nslookup Default Server: localhost Address: 127.0.0.1 > Èe dobite to, vse deluje, kot je treba. Upajmo. Èe ne, potem pojdite nazaj in ¹e enkrat preglejte vse. Vsakiè, ko spremenite datoteko named.conf, morate ponovno zagnati named, kar lahko storite z ukazom ndc restart. Sedaj lahko vnesete poizvedbo. Poskusite poizvedeti o kak¹nem raèunalniku, ki je blizu vas. Blizu mene je na primer pat.uio.no - univerza v Oslu. > pat.uio.no Server: localhost Address: 127.0.0.1 Name: pat.uio.no Address: 129.240.130.16 nslookup je sedaj povpra¹al named za poizvedbo o pat.uio.no. Ta je nato kontaktiral enega od imenskih stre¾nikov, navedenih v datoteki root.hints in iskal od tam naprej. Poizvedba utegne trajati nekaj èasa, ker je potrebno preiskati vse domene v /etc/resolv.conf. Èe ¹e enkrat vpra¹ate za isto poizvedbo, dobite tole: > pat.uio.no Server: localhost Address: 127.0.0.1 Non-authoritative answer: Name: pat.uio.no Address: 129.240.2.50 Bodite pozorni na vrstico ``Non-authoritative answer:'', ki smo jo dobili tokrat. Pomeni, da named ni ¹el ¹e enkrat iskati iste poizvedbe po internetu, temveè jo ima sedaj v predpomnilniku. Lahko pa se zgodi, da je informacija v tem èasu postala napaèna. Named vas na to (izredno majhno) mo¾nost opozori tako, da reèe ``Non-authoritative answer:''. Ko nslookup pove to drugiè, je to zanesljivo znamenje, da named shranjuje poizvedbe v predpomnilnik. Iz programa nslookup pridete tako, da napi¹ete `exit'. 3.2. Naredimo nekaj ¹e bolj¹ega V velikih, dobro organiziranih akademskih omre¾jih ali omre¾jih ponudnikov interneta boste vèasih ugotovili, da ima omre¾je nastavljeno posredovalno hierarhijo DNS stre¾nikov, kar pomaga razbremeniti tako samo omre¾je, kot tudi zunanje stre¾nike. Pogosto je te¾ko ugotoviti, ali ste v tak¹nem omre¾ju ali ne. To pravzaprav sploh ni pomembno, èe si nastavite DNS stre¾nik va¹ega ponudnika interneta kot ``posredovalnik'' in tako naredite poizvedbe hitrej¹e ter zmanj¹ate obremenitev va¹ega omre¾ja. Èe uporabljate dostop preko modema, je to lahko kar velik dose¾ek. Za namene tega primera bomo predpostavili, da ima va¹ ponudnik interneta dva imenska stre¾nika, ki jih ¾elite uporabljati, njuni IP ¹tevilki pa sta 10.0.0.1 in 10.1.0.1. V va¹i datoteki named.conf torej vstavite v razdelek ``options'' sledeèe vrstice: ______________________________________________________________________ forward first; forwarders { 10.0.0.1; 10.1.0.1; }; ______________________________________________________________________ Ponovno za¾enite va¹ imenski stre¾nik in ga preverite z nslookup. Stvar mora delovati. 3.3. Èestitam Sedaj znate postaviti named s predpomnilnikom. Vzemite si pivo, mleko ali kar paè imate najraje in proslavite to. 4. Preprosta domena. Kako postaviti svojo lastno domeno. 4.1. Najprej nekaj teorije Preden resnièno zaènemo to poglavje, vam bom serviral nekaj teorije in primerov o tem, kako DNS deluje. In vi boste to prebrali, ker je dobro za vas. Èe noèete prebrati, bi bilo dobro, da vsaj na hitro preletite. Leteti prenehajte, ko pridete do tistega, kar mora iti v va¹o datoteko named.conf. DNS je hierarhièen, drevesno strukturiran sistem. Vrh se imenuje `.' in izgovarja `koren' (ang.: root). Pod . je veliko ¹tevilo vrhnjih domen, od katerih so najbolj poznane ORG, COM, EDU in NET, seveda pa jih je ¹e mnogo veè. Struktura ja prav tak¹na kot drevo - ima korenine in iz njih poganja veje. Èe imate vsaj nekaj raèunalni¹kega znanja, boste v DNS prepoznali iskalno drevo, lahko boste na¹li razvejanja, liste in robove. Ko i¹èemo doloèen raèunalnik, gre poizvedba rekurzivno po hierarhiji, zaèen¹i pri vrhu. Èe hoèete izvedeti naslov prep.ai.mit.edu, mora va¹ imenski stre¾nik najprej najti stre¾nik, ki je odgovoren za edu, zato vpra¹a . stre¾nik (. stre¾nike ¾e pozna, ker so zapisani v root.hints), ta pa mu posreduje seznam stre¾nikov za edu: $ nslookup Default Server: localhost Address: 127.0.0.1 Zaènemo s spra¹evanjem korenskega stre¾nika: > server c.root-servers.net. Default Server: c.root-servers.net Address: 192.33.4.12 Postavimo tip poizvedbe na NS (zapisi imenskih stre¾nikov, ang.: name server records) > set q=ns Vpra¹ajmo za edu: > edu. Konèna pika (.) je tu zelo pomembna, ker pove nslookup, da je edu, o katerem poizvedujemo takoj pod . (in ne pod eno od na¹ih search domen - to pospe¹i iskanje). edu nameserver = A.ROOT-SERVERS.NET edu nameserver = H.ROOT-SERVERS.NET edu nameserver = B.ROOT-SERVERS.NET edu nameserver = C.ROOT-SERVERS.NET edu nameserver = D.ROOT-SERVERS.NET edu nameserver = E.ROOT-SERVERS.NET edu nameserver = I.ROOT-SERVERS.NET edu nameserver = F.ROOT-SERVERS.NET edu nameserver = G.ROOT-SERVERS.NET A.ROOT-SERVERS.NET internet address = 198.41.0.4 H.ROOT-SERVERS.NET internet address = 128.63.2.53 B.ROOT-SERVERS.NET internet address = 128.9.0.107 C.ROOT-SERVERS.NET internet address = 192.33.4.12 D.ROOT-SERVERS.NET internet address = 128.8.10.90 E.ROOT-SERVERS.NET internet address = 192.203.230.10 I.ROOT-SERVERS.NET internet address = 192.36.148.17 F.ROOT-SERVERS.NET internet address = 192.5.5.241 G.ROOT-SERVERS.NET internet address = 192.112.36.4 To nam pove, da vsi stre¾niki ROOT-SERVERS.NET slu¾ijo tudi za EDU., zato lahko spra¹ujemo katerega koli od njih. Mi bomo nadaljevali s spra¹evanjem C. Sedaj hoèemo vedeti, kdo je stre¾nik za naslednji nivo domene: mit.edu: > mit.edu. Server: c.root-servers.net Address: 192.33.4.12 Non-authoritative answer: mit.edu nameserver = W20NS.mit.edu mit.edu nameserver = BITSY.mit.edu mit.edu nameserver = STRAWB.mit.edu Authoritative answers can be found from: W20NS.mit.edu internet address = 18.70.0.160 BITSY.mit.edu internet address = 18.72.0.3 STRAWB.mit.edu internet address = 18.71.0.151 strawb, w20ns in bitsy vsi stre¾ejo mit.edu, zato izberemo enega od njih in poizvedujemo ¹e en nivo navzgor: ai.mit.edu: > server W20NS.mit.edu. Vseeno je, ali so imena raèunalnikov zapisana z velikimi ali malimi èrkami, vendar uporabljam mi¹ko za kopiranje in so zato vsa imena tak¹na, kot se izpi¹ejo na zaslon. Server: W20NS.mit.edu Address: 18.70.0.160 > ai.mit.edu. Server: W20NS.mit.edu Address: 18.70.0.160 Non-authoritative answer: ai.mit.edu nameserver = ALPHA-BITS.AI.MIT.EDU ai.mit.edu nameserver = GRAPE-NUTS.AI.MIT.EDU ai.mit.edu nameserver = TRIX.AI.MIT.EDU ai.mit.edu nameserver = MUESLI.AI.MIT.EDU ai.mit.edu nameserver = LIFE.AI.MIT.EDU ai.mit.edu nameserver = BEET-CHEX.AI.MIT.EDU ai.mit.edu nameserver = MINI-WHEATS.AI.MIT.EDU ai.mit.edu nameserver = COUNT-CHOCULA.AI.MIT.EDU ai.mit.edu nameserver = MINTAKA.LCS.MIT.EDU Authoritative answers can be found from: AI.MIT.EDU nameserver = ALPHA-BITS.AI.MIT.EDU AI.MIT.EDU nameserver = GRAPE-NUTS.AI.MIT.EDU AI.MIT.EDU nameserver = TRIX.AI.MIT.EDU AI.MIT.EDU nameserver = MUESLI.AI.MIT.EDU AI.MIT.EDU nameserver = LIFE.AI.MIT.EDU AI.MIT.EDU nameserver = BEET-CHEX.AI.MIT.EDU AI.MIT.EDU nameserver = MINI-WHEATS.AI.MIT.EDU AI.MIT.EDU nameserver = COUNT-CHOCULA.AI.MIT.EDU AI.MIT.EDU nameserver = MINTAKA.LCS.MIT.EDU ALPHA-BITS.AI.MIT.EDU internet address = 128.52.32.5 GRAPE-NUTS.AI.MIT.EDU internet address = 128.52.36.4 TRIX.AI.MIT.EDU internet address = 128.52.37.6 MUESLI.AI.MIT.EDU internet address = 128.52.39.7 LIFE.AI.MIT.EDU internet address = 128.52.32.80 BEET-CHEX.AI.MIT.EDU internet address = 128.52.32.22 MINI-WHEATS.AI.MIT.EDU internet address = 128.52.54.11 COUNT-CHOCULA.AI.MIT.EDU internet address = 128.52.38.22 MINTAKA.LCS.MIT.EDU internet address = 18.26.0.36 museli.ai.mit.edu je torej imenski stre¾nik za ai.mit.edu: > server MUESLI.AI.MIT.EDU Default Server: MUESLI.AI.MIT.EDU Address: 128.52.39.7 Spremenimo tip poizvedbe - na¹li smo imenski stre¾nik in sedaj spra¹ujemo za vse podatke o prep.ai.mit.edu. > set q=any > prep.ai.mit.edu. Server: MUESLI.AI.MIT.EDU Address: 128.52.39.7 prep.ai.mit.edu CPU = dec/decstation-5000.25 OS = unix prep.ai.mit.edu inet address = 18.159.0.42, protocol = tcp ftp telnet smtp finger prep.ai.mit.edu preference = 1, mail exchanger = gnu-life.ai.mit.edu prep.ai.mit.edu internet address = 18.159.0.42 ai.mit.edu nameserver = beet-chex.ai.mit.edu ai.mit.edu nameserver = alpha-bits.ai.mit.edu ai.mit.edu nameserver = mini-wheats.ai.mit.edu ai.mit.edu nameserver = trix.ai.mit.edu ai.mit.edu nameserver = muesli.ai.mit.edu ai.mit.edu nameserver = count-chocula.ai.mit.edu ai.mit.edu nameserver = mintaka.lcs.mit.edu ai.mit.edu nameserver = life.ai.mit.edu gnu-life.ai.mit.edu internet address = 128.52.32.60 beet-chex.ai.mit.edu internet address = 128.52.32.22 alpha-bits.ai.mit.edu internet address = 128.52.32.5 mini-wheats.ai.mit.edu internet address = 128.52.54.11 trix.ai.mit.edu internet address = 128.52.37.6 muesli.ai.mit.edu internet address = 128.52.39.7 count-chocula.ai.mit.edu internet address = 128.52.38.22 mintaka.lcs.mit.edu internet address = 18.26.0.36 life.ai.mit.edu internet address = 128.52.32.80 Tako smo s prièetkom na . na¹li imenske stre¾nike za vsak nivo domene. Èe bi namesto roènega iskanja vseh teh uporabili svoj DNS stre¾nik, bi si named seveda zapomnil vse informacije, ki bi jih na¹el pri iskanju in mu nekaj èasa ne bi bilo treba ponovno poizvedovati. V drevesu vsaka ``.'' v imenu pomeni razvejanje in vsak del med pikami je ime doloèene veje v drevesu. Po drevesu se vzpenjamo tako, da vzamemo ime, o katerem poizvedujemo (prep.ai.mit.edu), najprej najdemo korenine (.) in nato poi¹èemo naslednjo vejo za vzpenjanje, v tem primeru edu. Ko jo najdemo, se vzpnemo po njej tako, da se prikljuèimo na stre¾nik, ki je odgovoren za ta del imena. Zatem poi¹èemo vejo mit, ki raste iz veje edu (kombinirano ime je mit.edu) in se prikljuèimo na stre¾nik, ki stre¾e mit.edu. Spet poi¹èemo naslednjo vejo, tokrat ai.mit.edu in se prikljuèimo na stre¾nik, odgovoren zanjo. Sedaj smo prispeli na konèni stre¾nik, ki ga nato povpra¹amo za prep.ai.mit.edu. V raèunalni¹ki terminologiji prep navadno imenujemo list na drevesu. Domena, o kateri se manj govori, pa je vseeno zelo pomembna je in- addr.arpa. Prav tako, kot `navadne' domene je vgnezdena, vendar nam omogoèa ravno nasprotno - da izvemo imena raèunalnikov iz njihovih naslovov. Pomembna stvar, ki si jo morate zapomniti je, da so IP naslovi v domeni in-addr.arpa zapisani v obratnem vrstnem redu. Èe je naslov raèunalnika 192.128.52.43, je postopek, ki ga ubere named prav tak¹en, kot za prep.ai.mit.edu: najdi stre¾nik za arpa., najdi stre¾nik in-addr.arpa., najdi stre¾nik za 192.in-addr.arpa., najdi stre¾nik za 128.192.in-addr.arpa., najdi stre¾nik za 52.128.192.in- addr.arpa. in konèno najdi zapise za 43.52.128.192.in-addr.arpa. Pametno, kajne? (Recite `da'.) Prav dejstvo, da so ¹tevilke obrnjene, lahko povzroèi veliko zme¹njavo. Pravkar sem se zlagal. DNS ne deluje natanko tako, kot sem vam povedal. Vsekakor pa deluje skoraj tako. 4.2. Na¹a lastna domena Sedaj bomo definirali na¹o lastno domeno - linux.izmislek in v njej definirali raèunalnike. Uporabil sem popolnoma izmi¹ljeno domeno; tako smo lahko gotovi, da ne bomo motili koga Tam Zunaj. ©e ena stvar, preden zaènemo: imena raèunalnikov ne smejo vsebovati doloèenih znakov - omejeni smo na èrke angle¹ke abecede: a-z, ¹tevilke: 0-9 in znak '-' (pomi¹ljaj). Dr¾ite se jih. Velikosti èrk DNS ne razlikuje, zato je pat.uio.no isto kot Pat.UiO.No. Delo smo zaèeli ¾e s tem razdelkom v named.conf: ______________________________________________________________________ zone "0.0.127.in-addr.arpa" { type master; file "pz/127.0.0"; }; ______________________________________________________________________ Prosim, zapomnite si, da na koncu domen v tej datoteki ni pike `.'. Ta razdelek pove, da bomo sedaj definirali 0.0.127.in-addr.arpa, da smo za to domeno glavni stre¾nik in da so podatki zanjo shranjeni v datoteki pz/127.0.0. Tudi slednjo smo ¾e uredili, glasi pa se: ______________________________________________________________________ @ IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 1 ; Serijska ¹tevilka 8H ; Osve¾evanje 2H ; Ponoven poskus 1W ; Potek 1D) ; Minimum TTL NS ns.linux.izmislek. 1 PTR localhost. ______________________________________________________________________ Prosim, zapomnite si pike `.' na koncu vseh polnih domen v tej datoteki, kot nasprotje datoteki named.conf. Nekateri ljudje zaènejo vsako `zone' datoteko z ukazom $ORIGIN, vendar je to popolnoma odveè. Izvor (kam v DNS hierarhiji spada) datoteke `zone' je namreè naveden v named.conf, v tem primeru je to 0.0.127.in-addr.arpa. Ta datoteka `zone' vsebuje tri zapise virov (ang.: RRs, resource records): SOA, NS in PTR. SOA pomeni zaèetek pristojnosti (ang.: Start Of Authority). `@' je oznaka za izvor in ker je v stolpcu `domena' za to datoteko navedeno 0.0.127.in-addr.arpa, prva vrstica v resnici pomeni 0.0.127.in-addr.arpa. IN SOA ... NS je zapis vira imenskega stre¾nika (ang.: Name Server RR). Na zaèetku te vrstice ni oznake `@', ker se to ohranja ¹e iz prej¹nje vrstice - tak¹en naèin prihrani veliko tipkanja. Zapis vira NS bi torej lahko zapisali tudi kot 0.0.127.in-addr.arpa. IN NS ns.linux.izmislek. DNS-u pove, kateri raèunalnik je stre¾nik za domeno 0.0.127.in- addr.arpa in to je ns.linux.izmislek. 'ns' je standardno ime za imenske stre¾nike, kot je www.nekaj standardno ime za spletne stre¾nike, vendar to ni pravilo - ime je lahko karkoli. Na koncu sledi ¹e zapis vira PTR, ki pravi, da je raèunalniku na naslovu 1 v podmre¾i 0.0.127.in-addr.arpa, torej 127.0.0.1, ime localhost. Vse datoteke `zone' morajo vsebovati natanko en zapis vira SOA. Ta zapis vsebuje podatke o domeni, od kod prihaja (raèunalnik z imenom ns.linux.izmislek), kdo je odgovoren za njeno vsebino (hostmaster@linux.izmislek - tukaj vstavite svoj e-mail naslov), katera razlièica datoteke `zone' je to (serijska ¹tevilka: 1) in druge podatke, ki imajo opraviti z DNS stre¾niki s predpomnilnikom ter sekundarnimi DNS stre¾niki. Za vsa ostala polja (osve¾evanje, ponoven poskus, potek in minimum) se zana¹ajte na ¹tevilke, ki so navedene v tem HOWTO-ju in vse bi moralo delovati kot je treba. Sedaj ponovno za¾enite named (ukaz je ndc restart) in uporabite nslookup za ogled va¹ega dela: $ nslookup Default Server: localhost Address: 127.0.0.1 > 127.0.0.1 Server: localhost Address: 127.0.0.1 Name: localhost Address: 127.0.0.1 Aha, torej uspe preslikati 127.0.0.1 v localhost. Odlièno. Sedaj se lahko spravimo k na¹emu glavnemu opravilu, domeni linux.izmislek. Najprej vstavimo nov razdelek 'zone' v named.conf: ______________________________________________________________________ zone "linux.izmislek" { notify no; type master; file "pz/linux.izmislek"; }; ______________________________________________________________________ Spet si zapomnite, da na koncu domen v named.conf ni pik `.'. V datoteko `zone' linux.izmislek bomo napisali nekaj popolnoma izmi¹ljenih podatkov: ______________________________________________________________________ ; ; Datoteka zone za linux.izmislek ; ; Popolna datoteka zone ; @ IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 199802151 ; serijska ¹tevilka = datum + serijska # 8H ; osve¾evanje, sekunde 2H ; ponoven poskus, sekunde 1W ; potek, sekunde 1D ) ; minimum, sekunde ; NS ns ; Internetni naslov imenskega stre¾nika MX 10 mail.linux.izmislek ; Primarni po¹tni stre¾nik MX 20 mail.prijatelj.izmislek. ; Sekundarni po¹tni stre¾nik ; localhost A 127.0.0.1 ns A 192.168.196.2 mail A 192.168.196.4 ______________________________________________________________________ O zapisu SOA si morate zapomniti dve stvari. ns.linux.izmislek mora biti resnièen raèunalnik z zapisom A. Prepovedano je imeti zapis CNAME za raèunalnik, naveden v zapisu SOA. Vsekakor ni pomembno, da je njegovo ime 'ns', lahko je kakr¹no koli veljavno ime. Druga stvar; hostmaster.linux.izmislek se bere kot hostmaster@linux.izmislek in mora biti obstojeè naslov ali preusmeritev naslova, na katerega bo oseba, ki vzdr¾uje DNS prejemala po¹to (ta oseba naj po¹to tudi redno pregleduje). Ni nujno, da je to ravno `hostmaster' - lahko je va¹ navaden e-mail naslov, vendar se pogosto prièakuje, da obstaja tudi naslov `hostmaster'. V tej datoteki je nov zapis vira, in sicer MX, kar pomeni po¹tni stre¾nik (ang.: Mail eXchanger). Ta zapis pove sistemom, kam naj po¹ljejo po¹to, ki je naslovljena na nekdo@linux.izmislek, v tem primeru na mail.linux.izmislek ali mail.prijatelj.izmislek. ©tevilka pred imeni raèunalnikov pomeni prednost. Èe je le mogoèe, se po¹ta po¹lje stre¾niku z najmanj¹o ¹tevilko (10), sicer pa naslednjemu z najmanj¹o ¹tevilko, v tem primeru mail.prijatelj.izmislek, ki ima prednost 20. Ponovno za¾enite named z ukazom ndc restart in opazujte rezultate z nslookup: $ nslookup > set q=any > linux.izmislek Server: localhost Address: 127.0.0.1 linux.izmislek origin = ns.linux.izmislek mail addr = hostmaster.linux.izmislek serial = 199802151 refresh = 28800 (8 hours) retry = 7200 (2 hours) expire = 604800 (7 days) minimum ttl = 86400 (1 day) linux.izmislek nameserver = ns.linux.izmislek linux.izmislek preference = 10, mail exchanger = mail.linux.izmislek.linux.izmislek linux.izmislek preference = 20, mail exchanger = mail.prijatelj.izmislek linux.izmislek nameserver = ns.linux.izmislek ns.linux.izmislek internet address = 192.168.196.2 mail.linux.izmislek internet address = 192.168.196.4 Po pazljivem opazovanju boste odkrili napako. Vrstica linux.izmislek preference = 10, mail exchanger = mail.linux.izmislek.linux.izmislek je popolnoma napaèna. Morala bi biti linux.izmislek preference = 10, mail exchanger = mail.linux.izmislek Namenoma sem naredil napako, da se boste lahko iz nje nauèili :-) Èe pogledate v datoteko `zone', boste ugotovili, da v vrstici MX 10 mail.linux.izmislek ; Primary Mail Exchanger manjka pika. Ali drugaèe povedano, ima 'linux.izmislek' preveè. Èe se v datoteki `zone' ime raèunalnika ne konèa s piko, se mu doda izvor in v tem primeru povzroèi dvojen linux.izmislek.linux.izmislek. Torej je ______________________________________________________________________ MX 10 mail.linux.izmislek. ; Primary Mail Exchanger ______________________________________________________________________ ali ______________________________________________________________________ MX 10 mail ; Primary Mail Exchanger ______________________________________________________________________ pravilno. Priporoèam uporabo druge mo¾nosti, ker je potrebnega manj tipkanja. Nekateri bind eksperti se s tem ne bodo strinjali, nekateri se bodo. V datoteki `zone' je lahko domena napisana in se konèa s `.', ali pa ni napisana in se namesto nje privzame izvorna domena. Poudariti moram, da v named.conf ne sme biti pike na koncu domen. ©e sanja se vam ne, kolikokrat je `.' preveè ali premalo zame¹ala stvari in popolnoma zmedla ljudi. Zdaj, ko sem vam vse to povedal, je tu nova, popravljena datoteka `zone' s ¹e nekaj dodatnimi informacijami: ______________________________________________________________________ ; ; Datoteka zone za linux.izmislek ; ; Popolna datoteka zone ; @ IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 199802151 ; serijska ¹tevilka = datum + serijska # 8H ; osve¾evanje, sekunde 2H ; ponoven poskus, sekunde 1W ; potek, sekunde 1D ) ; minimum, sekunde ; TXT "Linux.Izmislek, va¹i DNS konzultanti" NS ns ; Internetni naslov imenskega stre¾nika NS ns.prijatelj.izmislek. MX 10 mail ; Primarni po¹tni stre¾nik MX 20 mail.prijatelj.izmislek. ; Sekundarni po¹tni stre¾nik localhost A 127.0.0.1 gw A 192.168.196.1 HINFO "Cisco" "IOS" TXT "Usmerjevalnik" ns A 192.168.196.2 MX 10 mail MX 20 mail.prijatelj.izmislek. HINFO "Pentium" "Linux 2.0" www CNAME ns donald A 192.168.196.3 MX 10 mail MX 20 mail.prijatelj.izmislek. HINFO "i486" "Linux 2.0" TXT "DEK" mail A 192.168.196.4 MX 10 mail MX 20 mail.prijatelj.izmislek. HINFO "386sx" "Linux 1.2" ftp A 192.168.196.5 MX 10 mail MX 20 mail.prijatelj.izmislek. HINFO "P6" "Linux 2.1.86" ______________________________________________________________________ Tukaj smo spoznali ¹e cel kup novih zapisov: HINFO, informacija o raèunalniku (ang.: Host INFOrmation), ima dva dela in dobra navada je, da ju izpolnite. Prvi del je strojna oprema ali procesor raèunalnika, drugi pa operacijski sistem. Raèunalnik z imenom 'ns' ima procesor Pentium in poganja Linux 2.0. CNAME, kanonièno ime (ang.: Canonical NAME) je naèin za poimenovanje istega raèunalnika z veè razliènimi imeni. V na¹em primeru je www alternativno ime za ns. Uporaba zapisa CNAME je nekoliko sporna, vendar se je popolnoma varno ravnati po pravilu, da se zapisi MX, CNAME in SOA ne smejo nikoli nana¹ati na zapis CNAME, temveè samo na nekaj z zapisom A. Na primer, ni priporoèljivo, da imate ______________________________________________________________________ foobar CNAME www ; NE! ______________________________________________________________________ medtem, ko je takole pravilno ______________________________________________________________________ foobar CNAME ns ; Da! ______________________________________________________________________ Prav tako se je varno zana¹ati na to, da CNAME ni dovoljeno ime raèunalnika za e-mail naslov: webmaster@www.linux.izmislek na primer ni dovoljen naslov glede na zgoraj navedene nastavitve. Prièakujete lahko, da bo kar nekaj administratorjev Tam Zunaj hotelo, da to pravilo upo¹tevate, èeprav za vas morda deluje. Naèin, da prepreèite te¾ave je uporaba zapisov A (in ¹e nekaterih drugih, na primer MX): ______________________________________________________________________ www A 192.168.196.2 ______________________________________________________________________ Nekaj bind strokovnjakov celo priporoèa, naj se zapisi CNAME sploh ne uporabljajo, vendar razprava 'zakaj' in 'zakaj ne' ne spada v ta HOWTO. Kot ste lahko ¾e opazili, se ta HOWTO in mnogo internetnih strani ne dr¾i tega pravila. Nalo¾ite novo bazo podatkov z ukazom ndc reload, ki pove named, naj ¹e enkrat prebere svoje datoteke. $ nslookup Default Server: localhost Address: 127.0.0.1 > ls -d linux.izmislek Ta ukaz prelista vse zapise. Rezultat je sledeè: [localhost] $ORIGIN linux.izmislek. @ 1D IN SOA ns hostmaster ( 199802151 ; serial 8H ; refresh 2H ; retry 1W ; expiry 1D ) ; minimum 1D IN NS ns 1D IN NS ns.prijatelj.izmislek. 1D IN TXT "Linux.Izmislek, va¹i DNS konzultanti" 1D IN MX 10 mail 1D IN MX 20 mail.prijatelj.izmislek. gw 1D IN A 192.168.196.1 1D IN HINFO "Cisco" "IOS" 1D IN TXT "Usmerjevalnik" mail 1D IN A 192.168.196.4 1D IN MX 10 mail 1D IN MX 20 mail.prijatelj.izmislek. 1D IN HINFO "386sx" "Linux 1.0.9" localhost 1D IN A 127.0.0.1 www 1D IN CNAME ns donald 1D IN A 192.168.196.3 1D IN MX 10 mail 1D IN MX 20 mail.prijatelj.izmislek. 1D IN HINFO "i486" "Linux 1.2" 1D IN TXT "DEK" ftp 1D IN A 192.168.196.5 1D IN MX 10 mail 1D IN MX 20 mail.prijatelj.izmislek. 1D IN HINFO "P6" "Linux 1.3.59" ns 1D IN A 192.168.196.2 1D IN MX 10 mail 1D IN MX 20 mail.prijatelj.izmislek. 1D IN HINFO "Pentium" "Linux 1.2" Tole je v redu. Kot lahko vidite, je izpis zelo podoben sami datoteki `zone'. Poglejmo, kaj pravi samo za www: > set q=any > www.linux.izmislek. Server: localhost Address: 127.0.0.1 www.linux.izmislek canonical name = ns.linux.izmislek linux.izmislek nameserver = ns.linux.izmislek linux.izmislek nameserver = ns.prijatelj.izmislek ns.linux.izmislek internet address = 192.168.196.2 Z drugimi besedami, pravo ime www.linux.izmislek je ns.linux.izmislek, poleg tega pa vam poda ¹e nekaj drugih informacij o ns, dovolj, da bi se lahko prikljuèili nanj, èe bi bili program. Sedaj smo na polovici poti. 4.3. Obratni vnosi Trenutno lahko programi pretvorijo imena v linux.izmislek v naslove, na katere se lahko prikljuèijo, potrebujemo pa ¹e obratne vnose, ki bodo omogoèili DNS-u, da pretvarja naslove v imena. Imena so pomembna informacija za mnoge stre¾nike (FTP, IRC, WWW in druge), ki na podlagi tega odloèajo, ali se bodo sploh pogovarjali z vami ali ne ter kak¹no prednost vam bodo dali v primeru, da se bodo. Za popoln dostop do uslug na internetu potrebujete obratne vnose. Dodajte tole v named.conf: ______________________________________________________________________ zone "196.168.192.in-addr.arpa" { notify no; type master; file "pz/192.168.196"; }; ______________________________________________________________________ Stvar je natanko tak¹na, kot pri 0.0.127.in-addr.arpa, pa tudi vsebina je podobna: ______________________________________________________________________ @ IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 199802151 ; Serijska ¹tevilka = datum + serijska # 8H ; Osve¾evanje 2H ; Ponoven poskus 1W ; Potek 1D) ; Minimum TTL NS ns.linux.izmislek. 1 PTR gw.linux.izmislek. 2 PTR ns.linux.izmislek. 3 PTR donald.linux.izmislek. 4 PTR mail.linux.izmislek. 5 PTR ftp.linux.izmislek. ______________________________________________________________________ Ponovno za¾enite named (ndc restart) in preglejte va¹e delo z nslookup: ______________________________________________________________________ > 192.168.196.4 Server: localhost Address: 127.0.0.1 Name: mail.linux.izmislek Address: 192.168.196.4 ______________________________________________________________________ Zaenkrat izgleda v redu, preglejmo ¹e ostale dele: ______________________________________________________________________ > ls -d 196.168.192.in-addr.arpa [localhost] $ORIGIN 196.168.192.in-addr.arpa. @ 1D IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 199802151 ; serial 8H ; refresh 2H ; retry 1W ; expiry 1D ) ; minimum 1D IN NS ns.linux.izmislek. 1 1D IN PTR gw.linux.izmislek. 2 1D IN PTR ns.linux.izmislek. 3 1D IN PTR donald.linux.izmislek. 4 1D IN PTR mail.linux.izmislek. 5 1D IN PTR ftp.linux.izmislek. @ 1D IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 199802151 ; serial 8H ; refresh 2H ; retry 1W ; expiry 1D ) ; minimum ______________________________________________________________________ Odlièno! Èe va¹ izpis ne izgleda takole, poglejte v syslog za sporoèila o napakah, kot sem razlo¾il na zaèetku tega poglavja. 4.4. Opozorila k0Rad bi dodal ¹e nekaj stvari. IP ¹tevilke, ki sem jih uporabil v primerih, navedenih tukaj, so vzete iz blokov 'privatnih mre¾', kar pomeni, da se jih v internetu ne sme uporabljati za prave naslove. So pa zato varne za uporabo v primerih. Druga stvar, na katero vas moram opozoriti je vrstica notify no;, ki pove named, naj svojih sekundarnih stre¾nikov ne opozarja na spremembe datotek `zone'. V bind-8 lahko named opozori druge stre¾nike, navedene v zapisih NS, kadar se kak¹na od teh spremeni. To je sicer pripravno pri resnièni uporabi, za privatne poskuse pa mora biti izkljuèeno - saj vendar noèemo, da bi na¹i poskusi onesna¾ili internet, kajne? In seveda, ta domena je popolnoma izmi¹ljena, kot so izmi¹ljeni tudi naslovi v njej. Za primer prave domene glejte naslednje poglavje. 4.5. Zakaj obratne poizvedbe ne delujejo. Obstaja nekaj zank pri postavljanju obratnih vnosov, ki jih navadno re¹imo z imenskimi poizvedbami. Preden greste naprej, potrebujete delujoèe obratne vnose - èe vam ne delujejo, pojdite nazaj in jih popravite. Razlo¾il bom dve mo¾nosti, zaradi katerih obratni vnosi ne delujejo, kot so videti iz izven va¹ega omre¾ja. 4.5.1. Obratni vnosi niso pristojni. Ko dobite od ponudnika svoj del omre¾ja in domeno, je domena navadno pristojna za ta del omre¾ja. Pristojnost je zapis NS, lepilo, ki vam omogoèa priti od enega imenskega stre¾nika do drugega, kot sem pojasnil v poglavju o teoriji. Èe va¹i obratni vnosi ne delujejo, pojdite nazaj in ga preberite. Zdaj. Tudi obratni vnosi morajo biti pristojni za doloèen del omre¾ja. Èe ste dobili omre¾je 192.168.192 z domeno linux.izmislek, mora ponudnik v svoje datoteke `zone' zapisati tako vnos NS za imenske poizvedbe, kot tudi vnos NS za obratne poizvedbe. Èe sledite verigi od in- addr.arpa. do vas, boste verjetno na¹li prekinitev - najverjetneje pri va¹em ponudniku. Kontaktirajte ga in ga prosite za odpravo napake. 4.5.2. Imate brezrazredno podmre¾o To je dokaj zapletena tema, vendar so brezrazredne podmre¾e dandanes zelo pogoste in èe niste vsaj srednje veliko podjetje, ste v njej najverjetneje tudi vi. Brezrazredne podmre¾e danes ohranjajo internet pri ¾ivljenju. Nekaj let nazaj je bilo veliko razprav o pomanjkanju IP ¹tevilk. Pametni ljudje v IETF (Internet Engineering Task Force, organizacija, ki skrbi za internet) so staknili glave in izna¹li re¹itev. Za doloèeno ceno. Ta cena je, da dobite manj kot ``C'' podmre¾o, poleg tega pa se lahko zgodi, da nekaj stvari ne bo delalo. Vpra¹ajte Gospoda DNS na http://www.acmebw.com/askmrdns/00007.htm za dobro razlago, kako se spopasti s tem problemom. Ste prebrali? Tega ne bom razlagal, zato si, prosim, preberite. Prvi del problema je, da mora va¹ ponudnik interneta razumeti tehniko, ki jo opisuje Gospod DNS. Nekateri majhni ponudniki je ne razumejo popolnoma, zato jim jo boste morda morali razlo¾iti. Prej se preprièajte, da jo sami obvladate ;-) Ponudnik bo nato postavil obratne vnose na njihovem stre¾niku, kar lahko preverite z nslookup. Drugi in zadnji del problema pa je, da morate tudi vi razumeti tehniko. Èe o tem niste preprièani, pojdite nazaj in preberite ¹e enkrat, nato pa lahko postavite va¹e lastne brezrazredne obratne vnose, kot vam to opisuje Gospod DNS. Obstaja pa ¹e ena te¾ava. Stari programi ne bodo sposobni slediti triku CNAME v verigi poizvedovanja in zato ne bodo sposobni naresti obratnih poizvedb za va¹ raèunalnik. To lahko pomeni, da vas bo stre¾nik razvrstil v napaèen razred, vam prepovedal dostop oziroma storil kaj podobnega. Èe njegove usluge resnièno potrebujete, je edina mo¾nost (ki jo jaz poznam), da poprosite va¹ega ponudnika, naj vstavi va¹ PTR zapis v njihovo brezrazredno datoteko `zone', namesto v trik s CNAME vnosom. Nekateri ponudniki interneta vam bodo ponudili tudi drugaène re¹itve, kot so spletni forumi za obratne vnose in podobni avtomagièni sistemi. 5. Primer prave domene Tukaj je nekaj pravih datotek `zone' Uporabniki so predlagali, da poleg uènih primerov vkljuèim tudi datoteke prave in delujoèe domene. Te primere uporabljam z dovoljenjem Davida Bullocka z LAND-5. Datoteke so bile posnete 24. septembra 1996 in sem jih nato nekoliko popravil, da delujejo z bind 8, zato se to, kar vidite tu, nekoliko razlikuje od rezultatov, ki jih dobite iz poizvedovanja pri imenskih stre¾nikih LAND-5. 5.1. /etc/named.conf (ali /var/named/named.conf) Tukaj lahko najdemo glavne razdelke `zone' za dvoje obratne vnose: omre¾je 127.0.0 in omre¾je LAND-5 206.6.177. Tu je tudi primarni razdelek za land-5.com. Pozorni bodite na to, da datoteke niso shranjene v mapi pz, kot v tem HOWTO-ju, temveè v mapi zone. ______________________________________________________________________ // Boot file for LAND-5 name server options { directory "/var/named"; }; zone "." { type hint; file "root.hints"; }; zone "0.0.127.in-addr.arpa" { type master; file "zone/127.0.0"; }; zone "land-5.com" { type master; file "zone/land-5.com"; }; zone "177.6.206.in-addr.arpa" { type master; file "zone/206.6.177"; }; ______________________________________________________________________ Èe boste to datoteko skopirali v va¹ named.conf, da bi se igrali, PROSIM, vpi¹ite ¹e vrstico ``notify no;'' v razdelke `zone' za obe land-5, da prepreèite nesreèe. 5.2. /var/named/root.hints Zapomnite si, da je ta datoteka dinamièna in zato tale ni veè veljavna. Svojo lahko naredite z dig-om, kot sem razlo¾il. ______________________________________________________________________ ; <<>> DiG 8.1 <<>> @A.ROOT-SERVERS.NET. ; (1 server found) ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10 ;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13 ;; QUERY SECTION: ;; ., type = NS, class = IN ;; ANSWER SECTION: . 6D IN NS G.ROOT-SERVERS.NET. . 6D IN NS J.ROOT-SERVERS.NET. . 6D IN NS K.ROOT-SERVERS.NET. . 6D IN NS L.ROOT-SERVERS.NET. . 6D IN NS M.ROOT-SERVERS.NET. . 6D IN NS A.ROOT-SERVERS.NET. . 6D IN NS H.ROOT-SERVERS.NET. . 6D IN NS B.ROOT-SERVERS.NET. . 6D IN NS C.ROOT-SERVERS.NET. . 6D IN NS D.ROOT-SERVERS.NET. . 6D IN NS E.ROOT-SERVERS.NET. . 6D IN NS I.ROOT-SERVERS.NET. . 6D IN NS F.ROOT-SERVERS.NET. ;; ADDITIONAL SECTION: G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4 J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10 K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129 L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12 M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33 A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4 H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53 B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107 C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12 D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90 E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10 I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17 F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241 ;; Total query time: 215 msec ;; FROM: roke.uio.no to SERVER: A.ROOT-SERVERS.NET. 198.41.0.4 ;; WHEN: Sun Feb 15 01:22:51 1998 ;; MSG SIZE sent: 17 rcvd: 436 ______________________________________________________________________ 5.3. /var/named/zone/127.0.0 Samo osnove; nujen zapis SOA in zapis, ki preslika 127.0.0.1 v localhost. Ni potrebno, da je v tej datoteki ¹e kaj. Verjetno ne bo nikoli potrebno, da jo popravljate, razen, èe se spremeni imenski stre¾nika ali e-mail administratorja DNS. ______________________________________________________________________ @ IN SOA land-5.com. root.land-5.com. ( 199609203 ; Serial 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS land-5.com. 1 PTR localhost. ______________________________________________________________________ 5.4. /var/named/zone/land-5.com Tukaj lahko vidimo zapis SOA in potreben zapis NS. Kot lahko opazite, ima LAND-5 tudi sekundarni imenski stre¾nik na ns2.psi.net. Tako tudi mora biti: vedno mora obstajati izven doloèene strani ¹e sekundarni imenski stre¾nik, za vsak sluèaj. Vidimo lahko, da obstaja glaven raèunalnik, land-5, ki skrbi za veliko razliènih internetnih uslug in ima tudi nekaj alternativnih imen narejenih s CNAME (druga mo¾nost je uporaba zapisov A). Iz zapisa SOA je razvidno, da domena izvira iz land-5.com, kontaktna oseba je root@land-5.com. Tudi hostmaster je pogosto uporabljen naslov za kontaktno osebo. Serijska ¹tevilka je v formatu yyyymmdd (leto, mesec, dan) s pripeto dnevno serijsko ¹tevilko; to je verjetno ¹esta verzija te datoteke na dan 20. septembra 1996. Zapomnite si, da se serijska ¹tevilka mora poveèevati monotono in ker je dana¹na serijska ¹tevilka omejena na eno cifro, mora po 9 popravkih poèakati do naslednjega dne, da lahko ponovno popravlja datoteko. Izognite se uporabi dveh cifer. ______________________________________________________________________ @ IN SOA land-5.com. root.land-5.com. ( 199609206 ; serial, todays date + todays serial # 8H ; refresh, seconds 2H ; retry, seconds 1W ; expire, seconds 1D ) ; minimum, seconds NS land-5.com. NS ns2.psi.net. MX 10 land-5.com. ; Primary Mail Exchanger TXT "LAND-5 Corporation" localhost A 127.0.0.1 router A 206.6.177.1 land-5.com. A 206.6.177.2 ns A 206.6.177.3 www A 207.159.141.192 ftp CNAME land-5.com. mail CNAME land-5.com. news CNAME land-5.com. funn A 206.6.177.2 ; ; Workstations ; ws-177200 A 206.6.177.200 MX 10 land-5.com. ; Primary Mail Host ws-177201 A 206.6.177.201 MX 10 land-5.com. ; Primary Mail Host ws-177202 A 206.6.177.202 MX 10 land-5.com. ; Primary Mail Host ws-177203 A 206.6.177.203 MX 10 land-5.com. ; Primary Mail Host ws-177204 A 206.6.177.204 MX 10 land-5.com. ; Primary Mail Host ws-177205 A 206.6.177.205 MX 10 land-5.com. ; Primary Mail Host ; {Many repetitive definitions deleted - SNIP} ws-177250 A 206.6.177.250 MX 10 land-5.com. ; Primary Mail Host ws-177251 A 206.6.177.251 MX 10 land-5.com. ; Primary Mail Host ws-177252 A 206.6.177.252 MX 10 land-5.com. ; Primary Mail Host ws-177253 A 206.6.177.253 MX 10 land-5.com. ; Primary Mail Host ws-177254 A 206.6.177.254 MX 10 land-5.com. ; Primary Mail Host ______________________________________________________________________ Èe v resnici opazujete imenske stre¾nike land-5, boste ugotovili, da so imena raèunalnikov v obliki ws_¹tevilka. Po bind razlièici 4 je named namreè zaèel zahtevati, da se toèno dr¾ite znakov, ki se smejo uporabiti v imenih. Bind-8 s tem sploh ne bi deloval veè, zato sem zamenjal `_' s pomi¹ljajem (-). ©e ena zanimiva stvar je dejstvo, da delovne postaje nimajo individualnih imen, temveè so le-ta sestavljena iz predpone in zadnjih delov IP ¹tevilk. Uporaba tak¹nega sistema lahko moèno olaj¹a vzdr¾evanje, vendar je precej neosebna in je lahko povod za jezo va¹ih strank. Vidimo lahko tudi, da je funn.land-5.com alternativno ime za land-5.com, vendar z uporabo zapisa A in ne CNAME. To je dobra politika, kot sem povedal ¾e prej. 5.5. /var/named/zone/206.6.177 Komentarji na to datoteko sledijo za njo. ______________________________________________________________________ @ IN SOA land-5.com. root.land-5.com. ( 199609206 ; Serial 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS land-5.com. NS ns2.psi.net. ; ; Servers ; 1 PTR router.land-5.com. 2 PTR land-5.com. 2 PTR funn.land-5.com. ; ; Workstations ; 200 PTR ws-177200.land-5.com. 201 PTR ws-177201.land-5.com. 202 PTR ws-177202.land-5.com. 203 PTR ws-177203.land-5.com. 204 PTR ws-177204.land-5.com. 205 PTR ws-177205.land-5.com. ; {Many repetitive definitions deleted - SNIP} 250 PTR ws-177250.land-5.com. 251 PTR ws-177251.land-5.com. 252 PTR ws-177252.land-5.com. 253 PTR ws-177253.land-5.com. 254 PTR ws-177254.land-5.com. ______________________________________________________________________ Obratni vnosi so del nastavitev, ki povzroèa najveè te¾av. Uporabljajo se za iskanje imena raèunalnika, èe imate njegovo IP ¹tevilko. Primer: ste IRC stre¾nik in sprejemate povezave IRC klientov. Toda - ste norve¹ki IRC stre¾nik in ¾elite sprejemati le povezave klientov na norve¹kem in v drugih skandinavskih dr¾ava. Ko se na vas prikljuèi klient, vam lahko va¹a C knji¾nica pove IP ¹tevilko raèunalnika, ki se je prikljuèil, ker je le-ta napisana v vsakem paketu podatkov, ki pride po internetu. Sedaj lahko poklièete funkcijo gethostbyaddr, ki preslika IP ¹tevilko v ime raèunalnika. Gethostbyaddr bo vpra¹al DNS stre¾nik in ta bo prevzel iskanje imena. Predpostavimo, da se je poskusil prikljuèiti klient z ws-177200.land-5.com. IP ¹tevilka, ki vam jo pove C knji¾nica, je 206.6.177.200. Da ugotovimo ime raèunalnika moramo najti 200.177.6.206.in-addr.arpa. DNS stre¾nik bo najprej na¹el stre¾nike za arpa., nato stre¾nike za in-addr.arpa. in sledil po ¹tevilkah 206 in 6 ter konèno na¹el stre¾nik za 177.6.206.in-addr.arpa. na LAND-5. Od njega bo dobil odgovor, da ima za 200.177.6.206.in-addr.arpa zapis ``PTR ws-177200.land-5.com'', kar pomeni, da k naslovu 206.6.177.200 spada ime ws-177200.land-5.com. Pojdimo nazaj k primeru IRC stre¾nika. Stre¾nik sprejema samo povezave iz skandinavskih de¾el, to je *.no, *.se in *.dk. Ime ws-177200.land-5.com vsekakor ne ustreza nobeni od teh mo¾nosti, zato bo stre¾nik prepreèil povezavo. Èe ne bi bilo obratnih preslikav za 206.6.177.200 èez in-addr.arpa, stre¾nik sploh ne bi mogel najti imena raèunalnika in vse, kar bi imel za primerjati z *.no, *.se in *.dk bi bilo 206.2.177.200 - kar se seveda ne bi ujemalo. Nekateri ljudje vam bodo govorili, da obratne poizvedbe sploh niso pomembne za stre¾nike, oziroma, da sploh niso pomembne. Ni res: mnogi ftp, novièarski, IRC in celo nekateri http (WWW) stre¾niki vam ne bodo dovolili, da se prikljuèite z raèunalnika, katerega imena ne morejo izvedeti. Zato so obratne poizvedbe v resnici izredno pomembne. 6. Vzdr¾evanje Skrbite, da bo vse delovalo. Poleg tega, da skrbite, da bo vse delovalo, imate ¹e eno nalogo - vzdr¾ujte datoteko root.hints toèno. To je najenostavneje z uporabo programa dig. Najprej ga za¾enite brez argumentov in dobili boste root.hints glede na va¹ stre¾nik, nato pa za¾enite dig ¹e z enim od korenskih stre¾nikov: dig @korenski-stre¾nik. Izhod, ki ga dobite, je nova datoteka root.hints. Shranite ga v datoteko (dig @e.root- servers.net . ns >root.hints.nov) in zamenjajte staro datoteko root.hints z njo. Ne pozabite ponovno zagnati named potem, ko ste zamenjali datoteko. Al Longyear mi je poslal skript za vzdr¾evanje root.hints, ki ga lahko poganjate avtomatièno - v crontab vpi¹ite vnos, ki ga bo pognal vsak mesec, nato pa lahko nanj pozabite. Skript predpostavlja, da imate delujoèo elektronsko po¹to in da na va¹em raèunalniku obstaja naslov `hostmaster'. Da bo ustrezala va¹im nastavitvam, jo morate pohekati sami. ______________________________________________________________________ #!/bin/sh # # Posodobimo predpomnilni¹ko datoteko imenskega stre¾nika enkrat na mesec. # Ta skript poganja avtomatièno vnos v crontabu. # # Original je napisal Al Longyear # Za bind 8 priredil Nicolai Langfeldt # David A. Ranch je poroèal o razliènih mo¾nih napakah # Test s pingom je predlagal Martin Foster # ( echo "To: hostmaster <hostmaster>" echo "From: system <root>" echo "Subject: Avtomatièna posodobitev datoteke root.hints" echo PATH=/sbin:/usr/sbin:/bin:/usr/bin: export PATH cd /var/named # Smo povezani v internet? Pingajmo stre¾nik va¹ega ponudnika case `ping -qnc ponudnikov.streznik.net` in *'100% packet loss'*) echo "Ni povezave z internetom. Datoteka root.hints ni bila posodobljena" echo exit 0 ;; esac dig @rs.internic.net . ns >root.hints.nov 2>&1 case `cat root.hints.nov` in *NOERROR*) # Delovalo je :;; *) echo "Posodobitev datoteke root.hints NI USPELA." echo "Dig je sporoèil tole:" echo cat root.hints.nov exit 0 ;; esac echo "Datoteka root.hints sedaj vsebuje naslednje informacije:" echo cat root.hints.nov chown root.root root.hints.nov chmod 444 root.hints.nov rm -f root.hints.star mv root.hints root.hints.star mv root.hints.nov root.hints ndc restart echo echo "Imenski stre¾nik je bil ponovno zagnan in sedaj ve za morebitne spremembe." echo "Prej¹nja datoteka root.hints se zdaj imenuje /var/named/root.hints.star." ) 2>&1 | /usr/lib/sendmail -t exit 0 ______________________________________________________________________ Morda ste izvedeli, da je datoteka root.hints na voljo tudi preko ftp na Internic. Prosim vas, da za posodobitev root.hints uporabljajte raje dig, ker je ta mo¾nost bolj prijazna tako do interneta kot do Internica. 7. Pretvarjanje iz razlièice 4 v razlièico 8 To poglavje, ki ga je napisal David E. Smith (dave@bureau42.ml.org) je bilo v originalu poglavje o uporabi bind 8. Da se sklada z novim naslovom, sem ga nekoliko popravil. Na to temo ni potrebno veliko besed. Razen tega, da se uporablja named.conf namesto named.boot, je vse popolnoma enako. Bind8 ima tudi skript v perlu, ki vam pretvori stare datoteke v nove. Primer named.boot (starej¹a razlièica) za imenski stre¾nik s predpomnilnikom: ______________________________________________________________________ directory /var/named cache . root.hints primary 0.0.127.IN-ADDR.ARPA 127.0.0.zone primary localhost localhost.zone ______________________________________________________________________ V mapi bind8/src/bin/named (tole predvideva, da imate distribucijo izvorne kode. Èe imate paket s prevedenim programom, je skript verjetno prav tako nekje in¹taliran, vendar ne vem toèno, kje. -ed) v ukazno vrstico napi¹ite: ______________________________________________________________________ ./named-bootconf.pl < named.boot > named.conf ______________________________________________________________________ To naredi named.conf: ______________________________________________________________________ // generated by named-bootconf.pl options { directory "/var/named"; }; zone "." { type hint; file "root.hints"; }; zone "0.0.127.IN-ADDR.ARPA" { type master; file "127.0.0.zone"; }; zone "localhost" { type master; file "localhost.zone"; }; ______________________________________________________________________ Deluje za vse, kar je lahko v named.boot, èeprav ne doda novih pridobitev in mo¾nosti, ki jih omogoèa bin8. Tule je bolj popoln named.conf, ki deluje enako, vendar nekoliko bolj uèinkovito. ______________________________________________________________________ // To je nastavitvena datoteka za named (BIND 8.1 ali novej¹i). // Navadno bo in¹talirana v /etc/named.conf // Edina razlika med to in `¾e pripravljeno' datoteko (poleg tega // komentarja :) je to, da sem odkomentiral vrstico `directory', ker // sem datoteke `zone' ¾e imel v /var/named. options { directory "/var/named"; datasize 20M; }; zone "localhost" IN { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "127.0.0.zone"; }; zone "." IN { type hint; file "root.hints"; }; ______________________________________________________________________ V distribuciji bind 8 lahko v mapi bind8/src/bin/named/test najdete tole in nekaj izvodov datotek `zone', ki jih veèina ljudi lahko le skopira in jih uporabi takoj. Formati datotek `zone' in root.hints so enaki, tako kot tudi ukazi za njihovo posodobljanje. 8. Vpra¹anja in odgovori Prosim, preberite to poglavje preden me kontaktirate. 1. Moj named zahteva datoteko named.boot Berete napaèen HOWTO. Poglejte si starej¹o razlièico tega HOWTO-ja, ki pokriva bind 4, na http://www.math.uio.no/~janl/DNS/ 2. Kako uporabljam DNS izza po¾arnega zidu? Namig: forward only;, Verjetno boste potrebovali tudi ___________________________________________________________________ query-source port 53; ___________________________________________________________________ v razdelku ``options'' v datoteki named.conf, kot je napisano v primeru ``Imenski stre¾nik s predpomnilnikom''. 3. Kako naj preprièam DNS, da periodièno obraèa razpolo¾ljive naslove za doloèeno uslugo, na primer za www.zelo-zaseden.com, da se obremenitev porazdeli na veè raèunalnikov? Naredite veè A zapisov za www.zelo-zaseden.com in uporabite bind 4.9.3 ali novej¹ega. Potem bo bind avtomatsko spreminjal svoje odgovore. S prej¹njimi razlièicami binda to ne bo delovalo. 4. Rad bi postavil DNS na (zaprtem) intranetu. Kaj moram storiti? Izpustite datoteko root.hints in napi¹ite le datoteke `zone'. To tudi pomeni, da vam ne bo treba posodabljati datoteke root.hints. 5. Kako postavim sekundarni (pomo¾ni) imenski stre¾nik? Èe ima primarni/glavni stre¾nik naslov 127.0.0.1, dodajte tale razdelek v named.conf sekundarnega stre¾nika: ___________________________________________________________________ zone "linux.bogus" { type slave; file "sz/linux.bogus"; masters { 127.0.0.1; }; }; ___________________________________________________________________ V polje masters lahko vpi¹ete tudi veè glavnih stre¾nikov, loèenih s ';' (podpièji). 6. Rad bi poganjal bind tudi, ko nisem prikljuèen na internet. Na to temo so napisane tri re¹itve: · To pismo sem prejel od Iana Clarka, <ic@deakin.edu.au>. V njem opisuje, kako to stori. Named tukaj poganjam na raèunalniku za 'Ma¹kerado'. Imam dve datoteki root.hints, ena se imenuje root.hints.prava in vsebuje resniène podatke, druga pa je root.hints.neprava in vsebuje... ---- ; root.hints.neprava ; ta datoteka ne vsebuje nobenih podatkov ---- Ko se izkljuèim iz interneta, skopiram datoteko root.hints.neprava v root.hints in ponovno za¾enem named. Ko pa se spet prikljuèim v internet, skopiram root.hints.prava v root.hints in ponovno za¾enem named. Oboje naredita skripta ip-down & ip-up. Prviè, ko naredim poizvedbo o domeni, named nima podatkov o njej in v `messages' napi¹e... Jan 28 20:10:11 hazchem named[10147]: No root nameserver for class IN s èimer lahko ¾ivim. Zame vsekakor odlièno deluje. Imenski stre¾nik lahko uporabljam za lokalne raèunalnike, medtem, ko niso prikljuèeni v internet, in sicer brez poteka èasa za zunanje domene, medtem, ko pa sem prikljuèen v internet, delujejo poizvedbe normalno. · Od Karl-Maxa Wagnerja sem prejel tudi informacijo, kako bind deluje vzajemno z NFS in portmapper-jem na raèunalniku, ki veèinoma ni prikljuèen v internet: Navadno poganjam lasten named na vseh raèunalnikih, ki so le obèasno prikljuèeni v internet preko modema. Imenski stre¾nik se obna¹a le kot predpomnilnik, nima podroèja pristojnosti in za vse poizvedbe spra¹uje stre¾nike iz datoteke root.hints. Kot je v navadi za Slackware, se tudi za¾ene pred nfsd in mountd. Z enim od mojih raèunalnikov (Libretto 30 notebook) sem imel te¾avo - vèasih sem ga lahko dosegel z drugega sistema, prikljuèenega v moj LAN, veèino èasa pa to ni delovalo. Ista te¾ava se je pojavila ne glede nato, ali sem uporabljalj PLIP, PCMCIA mre¾no kartico ali PPP po serijski povezavi. Po nekaj ugibanja in posku¹anja sem ugotovil, da je named nekako pokvaril postopek registracije, ki ga nfsd in mountd izvedeta s portmapper-jem pri zagonu (navadno takrat, ko za¾enem raèunalnik). Zagon named po nfsd in mountd je to te¾avo popolnoma odpravil. Ker tako spremenjena zagonska procedura nima stranskih uèinkov, vam priporoèam, da jo popravite in tako prepreèite morebitne te¾ave. · Zadnja mo¾nost so HOWTO informacije Vpra¹ajte Gospoda DNS na http://www.acmebw.com/askmrdns/#linux-ns, ki pa govorijo o bind 4 in jih morate zato prilagoditi za bind 8. 7. Kje ima named svoj predpomnilnik? Lahko kako vplivam na njegovo velikost? Predpomnilnik je v celoti shranjen v spominu in ni nikoli zapisan na disk, zato vsakiè, ko ubijete named, izgubite njegovo vsebino. Predpomnilnika ni mogoèe upravljati. Named ga uredi po nekih preprostih pravilih in to je to. Njegove vsebine in velikosti ne morete na noben naèin spremeniti ali omejiti. Èe ¾elite, lahko to ``popravite'' s hekanjem named, vendar vam tega ne priporoèam. 8. Ali named shranjuje predpomnilnik med ponovnimi zagoni? Ga lahko pripravim do tega, da ga shrani? Named svojega predpomnilnika ne shranjuje, ko umre. To pomeni, da mora predpomnilnik zgraditi na novo vsakiè, ko ga ubijete in ponovno za¾enete. Ni naèina, da bi named shranil svoj predpomnilnik v datoteko. Èe ¾elite, lahko to ``popravite'' s hekanjem named, vendar vam tega ne priporoèam. 9. Kako lahko dobim domeno? ®elel bi svojo lastno domeno (na primer) linux-rules.net. Kako bi lahko to domeno pripisal nase? Kontaktirajte svojega ponudnika interneta, on vam bo zagotovo lahko pomagal. Vendar si zapomnite, da je v veèini delov sveta potrebno za domeno plaèati nekaj denarja. 9. Kako postati DNS administrator za dalj èasa. Dokumentacija in orodja. Prava Dokumentacija obstaja, na internetu in v tiskani obliki. Potrebno je, da preberete nekaj te dokumentacije in tako naredite korak od majhnega do velikega administratorja. V tiskani obliki je standardna knjiga DNS in BIND avtorja sta C. Liu in P. Albitz iz O'Reilly & Associates, Sebastopol, CA, ISBN 0-937175-82-X. Sam sem jo prebral in je odlièna, èeprav se opira na bind 4, kar ni velik problem. Poglavje o DNS-u je tudi v Administracija omre¾ja TCPIP/, èigar avtor je Craig Hunt iz O'Reilly..., ISBN 0-937175-82-X. ©e eno nujno branje za Dobro administracijo DNS-a (oziroma dobro karkoli) je Zen in umetnost vzdr¾evanja motornih koles, avtor Robert M. Pirsig :-) Dosegljivo je kot ISBN 0688052304 in druge. Na internetu boste na¹li dobre stvari na <http://www.dns.net/dnsrd/> (Mapa z zapisi o DNS), <http://www.isc.org/bind.html>; FAQ, in referenèni priroènik (BOG; Bind Operations Guide), pa tudi èlanki in definicije protokola in DNS trikov (skoraj, èe ne popolnoma vse RFC-je navedene spodaj najdete tudi v distribuciji bind-a). Veèino teh sploh nisem prebral in zato tudi nisem velik DNS administrator. Arnt Gulbrandsen pa je prebral BOG in je popolnoma zanesen :-). Obstaja novièarska skupina o DNS, comp.protocols.tcp-ip.domains, poleg tega pa je na internetu tudi veliko ¹tevilo RFC-jev o DNS-u. Najpomembnej¹i so verjetno tile: RFC 2052 A. Gulbrandsen, P. Vixie, DNS RR za doloèevanje lokacij servisov (DNS SRV), Oktober 1996 RFC 1918 Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de Groot, E. Lear, Dodelitev naslovov za privatna omre¾ja, 02/29/1996. RFC 1912 D. Barr, Pogoste napake pri obratovanju in konfiguraciji DNS-a, 02/28/1996. RFC 1912 Errors B. Barr Napake v RFC-ju 1912, dosegljiv je na http://www.cis.ohio-state.edu/~barr/rfc1912-errors.html RFC 1713 A. Romao, Orodja za razhro¹èevanje DNS-a, 11/03/1994. RFC 1712 C. Farrell, M. Schulze, S. Pleitner, D. Baldoni, DNS kodiranje geografskega polo¾aja, 11/01/1994. RFC 1183 R. Ullmann, P. Mockapetris, L. Mamakos, C. Everhart, Nove definicije DNS RR, 10/08/1990. RFC 1035 P. Mockapetris, Domene - izvedba in specifikacije, 11/01/1987. RFC 1034 P. Mockapetris, Domene - koncepti in mo¾nosti, 11/01/1987. RFC 1033 M. Lottor, Vodiè za delovanje administratorjev domen, 11/01/1987. RFC 1032 M. Stahl, Vodiè za administratorje domen, 11/01/1987. RFC 974 C. Partridge, Usmerjanje po¹te in sistem domen, 01/01/1986.