<!doctype linuxdoc system>
<!-- -*-SGML-*- -->
<article>
<title>DNS KAKO
<author>Nicolai Langfeldt,
<htmlurl url="mailto:janl@math.uio.no" name="janl@math.uio.no">;
preveo Josip Rodin,
<htmlurl url="mailto:jrodin@jagor.srce.hr" name="jrodin@jagor.srce.hr">;
<date>inačica 1.2, 21. prosinca 2000. (u originalu verzija 3.0)
<abstract>
KAKO postati mali DNS administrator.
</abstract>

<toc>

<sect>Uvod

<p>Ključne riječi: DNS, BIND, BIND 4, BIND 8, named, dialup, PPP, slip,
ISDN, Internet, domain, name, resolution, hosts, caching.

<p>Ovaj dokument je dio Linux Documentation Projecta.

<sect1>Pravne stvari

<p>(C)opyright 1995-2000 Nicolai Langfeldt. Do not modify without
amending copyright, distribute freely but retain copyright message.

Hrvatski prijevod (c)opyright Josip Rodin, slobodno za distribuciju uz
zadržavanje ove poruke o autorskim pravima.

<sect1>Zasluge i poziv za pomoć

<p>Želio bih zahvaliti Arntu Gulbrandsenu kojeg sam napatio nedovršenim
dijelovima ovoga i koji je dao puno korisnih prijedloga. Također bih želio
zahvaliti ljudima koji su e-mailom poslali prijedloge i bilješke.

<p>Ovo nikada neće biti završen dokument, molim vas šaljite mi e-mail o
vašim problemima i uspjesima. Vi možete učiniti ovaj HOWTO boljim. Dakle,
molim vas, šaljite komentare i/ili pitanja, ili novac, na
<htmlurl url="mailto:janl@math.uio.no" name="janl@math.uio.no">.
Ili kupite moju knjigu o DNS-u. Pogledajte bibliografiju za informacije o
njoj. Ako pošaljete e-mail i želite odgovor, molim vas budite toliko
pristojni da <em/provjerite/ je li povratna adresa ispravna i da radi.
Također, molim vas, pročitajte <ref id="qanda" name="PiO"> poglavlje prije
nego mi e-mailate. Još jedna stvar, ja razumijem samo norveški i engleski.

<p>Ovo je jedan KAKO. Održavao sam ga kao dio LDP-a od 1995. U 2000. godini
sam napisao knjigu o istoj temi. Želio bih reći da iako je ovaj KAKO na
mnogo načina sličan knjizi, on <em>nije</em> razvodnjena verzija izmišljena
kako bi reklamirala knjigu. Ipak, knjigu ćete naći među bibliografijom na
kraju ovog KAKOa. Čitatelji ovog KAKOa su mi pomogli razumjeti ono što je
teško razumjeti o DNS-u. Ovo je pomoglo knjizi, ali je i knjiga pomogla meni
da više razmislim o potrebama ovog KAKOa. Knjiga je proizašla iz KAKOa.
Treća verzija KAKOa je proizašla iz knjige. Zahvaljujem se izdavaču knjige,
Que, koji je riskirao sa mnom :-)

<!-- This is a comment meant for translators:

If you're a translator you may put information about reaching someone
speaking the language you translate to, and that can help with DNS
problems, such as yourself, here (otherwise I get mail in chinese and
spanish asking for help about DNS)

Ako želiš prevesti ovaj HOWTO (sad je gotovo :), molim te, obavijesti me
tako da mogu pratiti na kojim sam jezicima objavljen, a da bih te mogao
obavijestiti kad se ovaj HOWTO promijeni. -->

<sect1>Posveta

<p>Ovaj HOWTO je posvećen Anne Line Norheim Langfeldt. Mada ga ona vjerojatno
nikada neće pročitati jer ona nije takav tip djevojke.

<sect>Upoznavanje.<label id="intro">

<p><bf/Što ovo je, a što nije./

<p>DNS znači Domain Name System -- sustav imenovanja domena. DNS pretvara
imena strojeva u IP adrese koje imaju svi strojevi na mreži. On prevodi
(mapira, kako bi se to reklo u žargonu) iz imena u adresu i iz adrese u ime,
i još neke druge stvari. Ovaj KAKO dokumentira kako definirati takva
mapiranja koristeći Unix sustav, uz par stvari specifičnih Linux sustavu.

<p>Mapiranje je jednostavno povezivanje između dvije stvari, u ovom slučaju
imena stroja, kao <tt/ftp.linux.org/, i IP broja (ili adrese) stroja, kao
<tt/199.249.150.4/. DNS također sadrži mapiranja u drugom smjeru, iz IP
broja u ime stroja; ovo se zove obrnuto mapiranje (eng. "reverse mapping").

<p>DNS je, neupoznatom (tebi ;-), jedno od mračnijih područja
administriranja mreže. Srećom, DNS nije stvarno tako težak. Ovaj KAKO će
pokušati učiniti neke stvari jasnijima. On opisuje kako podesiti
<em/jednostavan/ DNS server. Počet ćemo sa caching only serverom da bi došli
do podešavanja primarnog DNS imenskog servera za domenu. Za kompleksnije
postavke možeš pogledati <ref id="qanda" name="PiO"> poglavlje ovog dokumenta.
Ako to nije opisano tamo trebat ćeš <em/pročitati/ Pravu Dokumentaciju. Što
je i od čega se sastoji Prava Dokumentacija bit će objašnjeno u
<ref id="bigger" name="zadnjem poglavlju">.

<p>Prije nego počneš s ovim, trebao bi konfigurirati svoj stroj tako da se
možeš telnetirati na i s njega, i uspješno uspostaviti sve vrste veza na
mrežu, i posebno bi trebao moći napraviti <em/telnet 127.0.0.1/ i time doći
na svoj stroj (probaj sad!). Za početak također trebaš ispravne
<file>/etc/nsswitch.conf</file>, <file>/etc/resolv.conf</file> i
<file>/etc/hosts</file> datoteke, jer njihovu funkciju ovdje neću objasniti.
Ako ovo već nemaš podešeno i u radu, Networking-HOWTO i/ili
Networking-Overview-HOWTO objašnjavaju kako to podesiti. Pročitaj ih.

<p>Kada kažem 'tvoj stroj', mislim na stroj na kojem pokušavaš podesiti DNS,
ne na niti jedan drugi stroj koji imaš, a koji je uključen u tvoje mrežne
napore.

<p>Pretpostavit ću da nisi iza bilo kakvog firewalla koji blokira upite o
imenima. Ako jesi, trebat ćeš posebnu konfiguraciju -- pogledaj poglavlje
<ref id="qanda" name="PiO">.

<p>Opsluživanje imenima na Unixu je omogućeno programom zvanim <tt/named/.
On je dio ``BIND'' paketa kojim koordinira Paul Vixie uime Internet Software
Consortiuma. <tt/Named/ je uključen u većinu Linux distribucija i obično je
instaliran kao <file>/usr/sbin/named</file>, obično iz paketa zvanog
<tt/BIND/.

<p>Ako imaš <tt/named/, vjerojatno ga možeš i koristiti; ako ga nemaš,
nabavi ga binarnog sa neke Linux FTP lokacije, ili nađi najnoviji i najbolji
izvorni kod sa <url url="ftp://ftp.isc.org/isc/bind/src/">. Ovaj KAKO govori
o verziji 8. Stara verzija ovog HOWTO-a, o verziji 4, je još uvijek dostupna
na <url url="http://www.math.uio.no/~janl/DNS/"> u slučaju da koristiš bind
4 (nažalost, KAKO za verziju 4 ne postoji :( op. prev.). Ako <tt/named/ova
man stranica govori o <file/named.conf/, imaš BIND 8; ako govori o datoteci
<file/named.boot/, imaš BIND 4. Ako imaš 4 i brineš o sigurnosti, stvarno bi
trebao nadograditi na najnoviju 8-icu. Odmah.

<p>DNS je baza podataka cijele mreže. Pazi što ćeš staviti u nju. Ako staviš
smeće u nju, ti i drugi ćete dobiti smeće iz nje. Održavaj svoj DNS urednim
i dosljednim i dobro će te služiti. Nauči ga koristiti, administrirati,
ispravljati greške i bit ćeš još jedan dobar administrator koji čuva mrežu
od padanja na koljena zbog krivog upravljanja.

<p><bf/Napomena:/ pravi rezervne (backup) kopije svih datoteka koje ti
naložim da promijeniš ako ih već imaš, tako da ako ništa ne bude radilo
nakon ovoga, možeš sve vratiti u staro, radno stanje.

<sect>Caching imenski server koji nalazi adrese.<label id="caching">

<p><bf/Prva stavka DNS konfiguracije, vrlo korisna korisnicima koji se
spajaju modemima, kabelskim modemima i ADSL-om./

<p>Na Red Hat i Red Hat baziranim distribucijama možeš postići isti
praktični rezultat kao iz prvog poglavlja ovog KAKOa instaliranjem paketa
<tt/bind/, <tt/bind-utils/ i <tt/caching-nameserver/. Ako koristite Debian
jednostavno instalirajte <tt/bind/ i <tt/bind-doc/. Dakako da te puko
instaliranje ovih paketa neće naučiti istom što i čitanje ovog KAKOa. Dakle,
instaliraj pakete, i onda čitaj provjeravajući datoteke koje su oni
instalirali.

<p>Caching only imenski server će naći odgovor na upite o imenima i zapamtiti
odgovor sljedeći put kad ga budeš trebao. Ovo će znatno skratiti vrijeme
čekanja sljedeći put, posebno ako si na sporoj vezi.

<p>Prvo ćeš trebati datoteku zvanu <file>/etc/named.conf</file> (Debian:
<file>/etc/bind/named.conf</file>). Ona je pročitana kad se pokreće
<tt/named/. Za sada ona treba sadržavati samo ovo:

<code>
// Konfiguracijska datoteka za caching only imenski server

options {
        directory "/var/named";

        // Odkomentiravanje ovoga može pomoći ako moraš proći kroz
        // firewall, a stvari baš i ne rade:

        // query-source address * port 53;
};

zone "." {
        type hint;
        file "root.hints";
};

zone "0.0.127.in-addr.arpa" {
        type master;
        file "pz/127.0.0";
};
</code>

<p>Paketi Linux distribucija mogu koristiti različita imena datoteka za
svaku vrstu datoteka spomenutih ovdje; one će ipak sadržavati skoro iste
stvari.

<p>Linija '<tt/directory/' govori <tt/named/u gdje da potraži datoteke. Sve
datoteke nazvane slično će biti relativne ovome. Također, <file/pz/ je
direktorij ispod <file>/var/named</file>, tj. <file>/var/named/pz</file>.
<file>/var/named</file> je pravi direktorij prema <em/Linux File system
standardu/.

<p>Datoteka zvana <file>/var/named/root.hints</file> se spominje ovdje. Ona
treba sadržavati ovo: (<em/Ako izrežete i zalijepite ovu datoteku iz
elektroničke verzije ovog dokumenta, molim primijetite kako <bf/ne bi/
smjelo biti početnih razmaka u datoteci, tj. sve linije trebaju početi
znakom koji nije razmak. Neki programi za obradu dokumenata će ubaciti
razmake na početak redaka, uzrokujući nešto zabune. U tom slučaju molim
maknite početne razmake/)

<code>
;
; There might be opening comments here if you already have this file.
; If not don't worry.
;
.                       6D IN NS        M.ROOT-SERVERS.NET.
.                       6D IN NS        I.ROOT-SERVERS.NET.
.                       6D IN NS        E.ROOT-SERVERS.NET.
.                       6D IN NS        D.ROOT-SERVERS.NET.
.                       6D IN NS        A.ROOT-SERVERS.NET.
.                       6D IN NS        H.ROOT-SERVERS.NET.
.                       6D IN NS        C.ROOT-SERVERS.NET.
.                       6D IN NS        G.ROOT-SERVERS.NET.
.                       6D IN NS        F.ROOT-SERVERS.NET.
.                       6D IN NS        B.ROOT-SERVERS.NET.
.                       6D IN NS        J.ROOT-SERVERS.NET.
.                       6D IN NS        K.ROOT-SERVERS.NET.
.                       6D IN NS        L.ROOT-SERVERS.NET.
;
M.ROOT-SERVERS.NET.     6D IN A         202.12.27.33
I.ROOT-SERVERS.NET.     6D IN A         192.36.148.17
E.ROOT-SERVERS.NET.     6D IN A         192.203.230.10
D.ROOT-SERVERS.NET.     6D IN A         128.8.10.90
A.ROOT-SERVERS.NET.     6D IN A         198.41.0.4
H.ROOT-SERVERS.NET.     6D IN A         128.63.2.53
C.ROOT-SERVERS.NET.     6D IN A         192.33.4.12
G.ROOT-SERVERS.NET.     6D IN A         192.112.36.4
F.ROOT-SERVERS.NET.     6D IN A         192.5.5.241
B.ROOT-SERVERS.NET.     6D IN A         128.9.0.107
J.ROOT-SERVERS.NET.     6D IN A         198.41.0.10
K.ROOT-SERVERS.NET.     6D IN A         193.0.14.129
L.ROOT-SERVERS.NET.     6D IN A         198.32.64.12
</code>

<p>Ova datoteka opisuje korijenske imenske servere u svijetu. Oni se
mijenjaju s vremenom i lista se mora održavati svako nekoliko. Pogledaj
poglavlje <ref id="maint" name="Održavanje"> za upute kako ih
osvježavati.

<p>Sljedeći odjeljak u <file/named.conf/ datoteci je opis zone. Objasnit ću
njenu upotrebu u kasnijim poglavljima, zasad samo napravi datoteku zvanu
<file/127.0.0/ sljedećeg sadržaja, u poddirektoriju <file/pz/: (<em/Opet,
molim te makni početne razmake ako izrežeš i zalijepiš ovo/)

<!-- Obraćamo li se čitatelju jedninom ili množinom? (Preporučam ono prvo,
jer ovako imam osjećaj da čitam katekizam.) [MV]
Iako jednina zvuči pomalo previše neslužbeno, slažem se :) [JR] -->

<code>
$TTL 3D
@               IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                                1       ; Serial
                                8H      ; Refresh
                                2H      ; Retry
                                4W      ; Expire
                                1D)     ; Minimum TTL
                        NS      ns.linux.bogus.
1                       PTR     localhost.
</code>

<p>Dalje, trebat ćeš <file>/etc/resolv.conf</file> koji će izgledati slično
ovome: (<em/Opet, makni razmake!/)

<code>
search poddomena.tvoja-domena.hr tvoja-domena.hr
nameserver 127.0.0.1
</code>

<p>Linija `<tt/search/' određuje koje će se domene pretraživati za neki host
na kojeg se želiš spojiti. Linija `<tt/nameserver/' određuje adresu tvog
imenskog servera, u ovom slučaju tvoj stroj jer je to adresa na kojoj radi
tvoj <tt/named/ (127.0.0.1 je prava, nema veze ako tvoj stroj ima i neku
drugu adresu). Ako želiš više imenskih servera, stavi `<tt/nameserver/'
liniju za svaki. (Napomena: <tt/named/ nikada ne čita ovu datoteku, to radi
resolver koji koristi <tt/named/. Napomena 2: U nekim
<file>/etc/resolv.conf</file> datotekama ćeš naći redak "domain". To je u
redu, ali nemoj koristiti i "search" i "domain", samo jedan od njih će
raditi.)

<p>Da ilustriram što ova datoteka radi: ako klijent stroj pokuša odrediti
adresu za <tt/bla/, tada se prvo probava adresa
<tt/bla.poddomena.tvoja-domena.hr/, pa <tt/bla.tvoja-domena.hr/, i na kraju
<tt/bla/. Ne bi trebao staviti puno domena u "search" liniju, jer treba
vremena kako bi se sve pretražile.

<p>Ovaj primjer pretpostavlja da si ti u domeni
<tt/poddomena.tvoja-domena.hr/, a tvoj stroj se tada zove
<tt/tvoj-stroj.poddomena.tvoja-domena.hr/. Search linija ne bi trebala
sadržavati tvoju TLD/ND (<em/Top Level Domain/, <em/Najviša Domena/,
`<tt/hr/' u ovom slučaju). Ako se često trebaš spajati na strojeve u drugoj
domeni, možeš tu domenu dodati u search liniju ovako: (<em/Sjeti se maknuti
početne razmake, ako postoje/)

<code>
search poddomena.tvoja-domena.hr tvoja-domena.hr neka-domena.hr
</code>

i tako dalje. Očito trebaš staviti prava imena domena umjesto ovih primjera.
Molim te uoči kako nema točke na krajevima imena domena. Ovo je važno; molim
te uoči kako nema točke na krajevima imena domena.

<sect1>Startanje named-a

<p>Nakon svega, vrijeme je da startamo <tt/named/. Ako modemski biraš
providera, prvo se spoji. Otipkaj `<tt/ndc start/', i pritisni enter, bez
opcija. Ako to ne uspije, probaj `<tt>/usr/sbin/ndc start</tt>'. Ako ni to
ne uspije, pročitaj poglavlje <ref id="qanda" name="PiO">. Sada možeš
testirati svoje postavke. Ako pogledaš svoju datoteku sa syslog porukama
(obično se zove <file>/var/adm/messages</file>, drugi direktorij može biti
<file>/var/log</file>, a druga datoteka <file/syslog/) dok startaš
<tt/named/ (učini `<tt>tail -f /var/log/messages</tt>') trebao bi vidjeti
nešto kao ovo:

<p>(linije koje završavaju sa \ nastavljaju se u sljedećem retku)

<tscreen><verb>
Dec 15 23:53:29 localhost named[3768]: starting.  named 8.2.2-P7 \
		Fri Nov 10 04:50:23 EST 2000 ^Iprospector@porky.\
		devel.redhat.com:/usr/src/bs/BUILD/bind-8.2.2_P7/\
		src/bin/named
Dec 15 23:53:29 localhost named[3768]: hint zone "" (IN) loaded\
		(serial 0)
Dec 15 23:53:29 localhost named[3768]: Zone "0.0.127.in-addr.arpa"\
		(file pz/127.0.0): No default TTL set using SOA\
		minimum instead
Dec 15 23:53:29 localhost named[3768]: master zone\
		"0.0.127.in-addr.arpa" (IN) loaded (serial 1)
Dec 15 23:53:29 localhost named[3768]: listening on [127.0.0.1].53 (lo)
Dec 15 23:53:29 localhost named[3768]: listening on [10.0.0.129].53\
		(wvlan0)
Dec 15 23:53:29 localhost named[3768]: Forwarding source address is\
		[0.0.0.0].1034
Dec 15 23:53:29 localhost named[3769]: Ready to answer queries.
</verb></tscreen>

Ako je bilo ikakvih poruka o greškama, mora da je došlo do greške.
<tt/named/ će imenovati datoteku u kojoj je greška. Vrati se i provjeri
datoteku. Pokreni `<tt/ndc restart/' kada je popraviš.

<p>Sada možete isprobati svoje postavke. Tradicionalno se za to koristio
program <tt/nslookup/. Danas se preporuča <tt/dig/:

<tscreen><verb>
$ dig -x 127.0.0.1

; <<>> DiG 8.2 <<>> -x 
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUERY SECTION:
;;      1.0.0.127.in-addr.arpa, type = ANY, class = IN

;; ANSWER SECTION:
1.0.0.127.in-addr.arpa.  1D IN PTR  localhost.

;; AUTHORITY SECTION:
0.0.127.in-addr.arpa.   1D IN NS        ns.penguin.bv.

;; Total query time: 30 msec
;; FROM: lookfar to SERVER: default -- 127.0.0.1
;; WHEN: Sat Dec 16 00:16:12 2000
;; MSG SIZE  sent: 40  rcvd: 110

</verb></tscreen>

<p>Ako to dobiješ, onda radi. Nadajmo se. Ako se razlikuje, vrati se i
provjeri sve. Svaki put kad promijeniš <file/named.conf/ datoteku, moraš
ponovo startati <tt/named/ koristeći `<tt/ndc restart/' naredbu.

<p>Sada možeš postaviti upit. Probaj pogledati ime stroja koji ti je blizu.
<tt/jagor.srce.hr/ je meni blizu, na SRCE-u:

<tscreen><verb>
$ dig jagor.srce.hr

; <<>> DiG 8.2 <<>> jagor.srce.hr
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUERY SECTION:
;;      jagor.srce.hr, type = A, class = IN

;; ANSWER SECTION:
jagor.srce.hr.          1D IN A         161.53.2.130

;; AUTHORITY SECTION:
srce.hr.                1D IN NS        regoc.srce.hr.
srce.hr.                1D IN NS        bjesomar.srce.hr.

;; ADDITIONAL SECTION:
regoc.srce.hr.          1D IN A         161.53.2.69
bjesomar.srce.hr.       1D IN A         161.53.2.70

;; Total query time: 112 msec
;; FROM: lookfar to SERVER: default -- 127.0.0.1
;; WHEN: Sat Dec 16 00:23:07 2000
;; MSG SIZE  sent: 28  rcvd: 162
</verb></tscreen>

<p><tt/dig/ je sada upitao tvoj <tt/named/ da potraži stroj
<tt/jagor.srce.hr/. On se onda spojio na jedan od imenskih servera navedenih
u tvojoj <file/root.hints/ datoteci, i upitao za put od tamo. Možda će
trebati malo vremena dok ne dobiješ rezultat budući da on pretražuje sve
domene koje si naveo u <file>/etc/resolv.conf</file> datoteci. Molim te
primijeti "aa" u "flags:" retku. To znači da je odgovor bio služben, da je
svježe dobiven od nadležnog servera (eng. "authoritative"). Objasnit ću
"authoritative" kasnije.

<p>Ako upitaš isto to ponovo, dobit ćeš ovo:

<tscreen><verb>
$ dig jagor.srce.hr

; <<>> DiG 8.2 <<>> jagor.srce.hr
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUERY SECTION:
;;      jagor.srce.hr, type = A, class = IN

;; ANSWER SECTION:
jagor.srce.hr.          1D IN A         161.53.2.130

;; AUTHORITY SECTION:
srce.hr.                1D IN NS        regoc.srce.hr.
srce.hr.                1D IN NS        bjesomar.srce.hr.

;; ADDITIONAL SECTION:
regoc.srce.hr.          1D IN A         161.53.2.69
bjesomar.srce.hr.       1D IN A         161.53.2.70

;; Total query time: 4 msec
;; FROM: lookfar to SERVER: default -- 127.0.0.1
;; WHEN: Sat Dec 16 00:23:09 2000
;; MSG SIZE  sent: 28  rcvd: 162
</verb></tscreen>

<p>Primijeti manjak "aa" oznake o ovom odgovoru. To znači da <tt/named/ ovaj
put nije otišao tražiti po mreži, jer je informacija sada bila u cacheu. Ali
informacija u cache-u bi <em/mogla/ biti zastarjela (eng. `stale'). Zato si
informiran o ovoj (vrlo maloj) mogućnosti jer nema "aa". Ipak, sada znaš da
cache radi.

<sect1>`Resolveri'

<p>Svi OS-ovi koji imaju implementiran standardni C API imaju i pozive
`gethostbyname' i `gethostbyaddr'. Oni mogu dobiti informacije iz raznih
izvora. Iz kojih će ih izvora dobijati se na Linuxu (i nekim drugim Unixima)
konfigurira u <file>/etc/nsswitch.conf</file>. Ovo je duga datoteka koja
određuje gdje dobiti različite vrste podataka, iz koje datoteke ili baze.
Obično sadrži pomoćne komentare pri vrhu, koje bi trebao pročitati. Nakon
toga nađi liniju koja počinje sa `<tt/hosts:/', i ona bi trebala biti
ovakva:

<code>
hosts:      files dns
</code>

(<em/Zapamtio si što s početnim razmacima, zar ne? Neću ih više
spominjati./)

<p>Ako ne postoji linija koja počinje s `<tt/hosts:/', onda umetni onu
gornju. Ona govori da programi prvo trebaju pogledati u
<file>/etc/hosts</file> datoteku, i onda provjeriti u DNS-u, prema
<file/resolv.conf/-u.

<sect1>Čestitam

<p>Sada znaš kako podesiti caching <tt/named/. Popij pivo, mlijeko, ili što
već voliš kako bi to proslavio.

<sect>Forwarding
<!-- proslijeđivanje? -->

<p>U velikim, dobro organiziranim, akademskim ili ISP (eng. `Internet
Service Provider', pružatelj Internet usluga) mrežama ćete katkad naći
da su ljudi koji se brinu o mreži podesili hijerarhiju DNS servera koji
proslijeđuju (eng. `forwarders') što pomaže u olakšavanju pritiska na
internu mrežu pa i pritiska na vanjske servere. <!-- load =~ pritisak -->
Ipak, to nije bitno <!-- WTF?! --> i korištenjem DNS servera vašeg
pružatelja mrežnih usluga kao ``forwardera'' možete učiniti odgovore na
upite bržima i manje opterećujućima za vašu mrežu. Ako koristite modem, ovo
bi moglo biti prilično dobro. Za potrebe ovog primjera, pretpostavit ćemo da
vaš pružatelj mrežnih usluga ima dva imenska servera koje žele da koristite,
s IP brojevima <tt/10.0.0.1/ i <tt/10.1.0.1/. Tada ćete u početni dio
<file/named.conf/ datoteke zvan ``options'' umetnuti ove retke:

<code>
           forward first;
           forwarders {
                10.0.0.1;
                10.1.0.1;
            };
</code>

<p>Postoji i zgodan trik za dialup strojeve za korištenje forwardera, opisan
je u <ref id="qanda" name="PiO"> poglavlju.

<p>Ponovo pokrenite vaš imenski server i isprobajte ga s dig-om. Trebao bi
raditi.

<sect><em/Jednostavna/ domena.<label id="simple">

<p><bf/Kako podesiti vlastitu domenu./

<sect1>Ali prvo malo suhoparne teorije

<p>Kao prvo: pročitao si sve ono prije ovoga, zar ne? Morao bi.

<p>Prije nego što zapravo počnemo ovo poglavlje, servirat ću ti malo teorije
i primjera rada DNS-a. I ti ćeš to pročitati jer je to dobro za tebe. Ako ti
se `ne da', ipak bi trebao nabrzinu prolistati. Prestani listati kada dođeš
do dijela gdje se opisuje <file/named.conf/ datoteka.

<p>DNS je hijerarhijski sustav, strukturiran kao stablo. Vrh se piše
`<tt/./' i čita `<bf/korijen/' (eng. `root'), kao što je uobičajeno za
strukture podataka u obliku stabla. Ispod <tt/./ su mnoge `Top Level
Domains' (TLD) odn. <bf/Najviše Domene/; najpoznatije su <tt/ORG/, <tt/COM/,
<tt/EDU/ i <tt/NET/, ali postoje mnoge druge (<tt/HR/, <tt/BA/, <tt/SI/,
op.prev.). Kao jedno stablo, ima korijen i grana se. Ako imate ikakvog
iskustva u računarstvu, <!-- computer science, hmmm --> prepoznat ćete DNS
kao `search tree', i moći ćete naći elemente (`nodes'), krajnje točke (`leaf
nodes') i rubove (`edges'). Točke su elementi, rubovi su na imenima.
<!-- netko s computer _science_ backgroundom bi trebao ovo prevesti <shrug> -->

<p>Kada traži stroj, upit prolazi rekurzivno kroz hijerarhiju, počevši od
vrha. Ako želiš saznati adresu stroja <tt/prep.ai.mit.edu/, tvoj imenski
server mora negdje početi tražiti. Počinje gledajući u svoj cache. Ako on
zna odgovor, jer ga je prije spremio, odgovorit će odmah, kako smo vidjeli u
prošlom poglavlju. Ako ne zna, brisat će dijelove imena počevši s lijeve
strane, provjeravajući zna li što o <tt/ai.mit.edu./, pa <tt/mit.edu./, pa
<tt/edu./, i ako ne to, zna o <tt/./ jer je to u `hints' datoteci. Onda će
pitati jednog <tt/./ servera o <tt/prep.ai.mit.edu/. Ovaj <tt/./ server neće
znati odgovor, ali će pomoći tvom serveru dajući mu preporuku, govoreći mu
gdje da gleda. Ove preporuke će na kraju dovesti tvoj server do imenskog
servera koji zna odgovor. Sada ću ovo ilustrirati. <tt/+norec/ znači da će
<tt/dig/ pitati nerekurzivna pitanja kako bi smo mogli sami raditi
rekurziju. Ostale postavke su tu da smanje iznos informacija koje će
<tt/dig/ prikazati kako se ovo ne bi protegnulo na previše stranica:

<tscreen><verb>
$ dig +norec +noH +noques +nostats +nocmd prep.ai.mit.edu.
;; res options: init defnam dnsrch
;; got answer:
; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 13
;; AUTHORITY SECTION:
.                       5d23h48m47s IN NS  I.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  E.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  D.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  A.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  H.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  C.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  G.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  F.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  B.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  J.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  K.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  L.ROOT-SERVERS.NET.
.                       5d23h48m47s IN NS  M.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
I.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.36.148.17
E.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.203.230.10
D.ROOT-SERVERS.NET.     6d23h48m47s IN A  128.8.10.90
A.ROOT-SERVERS.NET.     6d23h48m47s IN A  198.41.0.4
H.ROOT-SERVERS.NET.     6d23h48m47s IN A  128.63.2.53
C.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.33.4.12
G.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.112.36.4
F.ROOT-SERVERS.NET.     6d23h48m47s IN A  192.5.5.241
B.ROOT-SERVERS.NET.     6d23h48m47s IN A  128.9.0.107
J.ROOT-SERVERS.NET.     6d23h48m47s IN A  198.41.0.10
K.ROOT-SERVERS.NET.     6d23h48m47s IN A  193.0.14.129
L.ROOT-SERVERS.NET.     6d23h48m47s IN A  198.32.64.12
M.ROOT-SERVERS.NET.     6d23h48m47s IN A  202.12.27.33
</verb></tscreen>

<p>Ovo je preporuka. Daje nam samo "Authority section", nema "Answer
section". Naš imenski server nas upućuje na jedan imenski server. Odaberi
jednog, nasumce:

<tscreen><verb>
$ dig +norec +noH +noques +nostats +nocmd prep.ai.mit.edu. @H.ROOT-SERVERS.NET.
; (1 server found)
;; res options: init defnam dnsrch
;; got answer:
; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 3, ADDITIONAL: 3
;; AUTHORITY SECTION:
MIT.EDU.                2D IN NS        BITSY.MIT.EDU.
MIT.EDU.                2D IN NS        STRAWB.MIT.EDU.
MIT.EDU.                2D IN NS        W20NS.MIT.EDU.

;; ADDITIONAL SECTION:
BITSY.MIT.EDU.          2D IN A         18.72.0.3
STRAWB.MIT.EDU.         2D IN A         18.71.0.151
W20NS.MIT.EDU.          2D IN A         18.70.0.160
</verb></tscreen>

On nas odmah upućuje na MIT.EDU servere. Opet nasumce izaberi jednog:

<tscreen><verb>
$ dig +norec +noH +noques +nostats +nocmd prep.ai.mit.edu. @bitsy.mit.edu
; (1 server found)
;; res options: init defnam dnsrch
;; got answer:
; flags: qr ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4
;; ANSWER SECTION:
prep.ai.mit.edu.        3h50m7s IN A    198.186.203.18

;; AUTHORITY SECTION:
AI.MIT.EDU.             6H IN NS        FEDEX.AI.MIT.EDU.
AI.MIT.EDU.             6H IN NS        LIFE.AI.MIT.EDU.
AI.MIT.EDU.             6H IN NS        ALPHA-BITS.AI.MIT.EDU.
AI.MIT.EDU.             6H IN NS        BEET-CHEX.AI.MIT.EDU.

;; ADDITIONAL SECTION:
FEDEX.AI.MIT.EDU.       6H IN A         192.148.252.43
LIFE.AI.MIT.EDU.        6H IN A         128.52.32.80
ALPHA-BITS.AI.MIT.EDU.  6H IN A         128.52.32.5
BEET-CHEX.AI.MIT.EDU.   6H IN A         128.52.32.22
</verb></tscreen>

<p>Ovaj put smo dobili "ANSWER SECTION", i odgovor na naše pitanje.
"AUTHORITY SECTION" sadrži informacije o tome koje servere trebamo pitati o
<tt/ai.mit.edu/ sljedeći put. Tako sada možete pitati njih direktno,
sljedeći put kada budete znatiželjni o <tt/ai.mit.edu/ imenima.

<p>Tako smo počevši od <tt/./ uspješno našli imenske servere za sljedeći
nivo imena domene, uz preporuke. Da si koristio svoj DNS server umjesto svih
ovih ostalih, tvoj <tt/named/ bi naravno cacheirao sve informacije koje bi
`iskopao' za tebe, i ne bi to trebao pitati ponovo neko vrijeme.

<p>Analogno stablu (`tree'), svaka ``<tt/./'' u imenu je točka grananja. I
svaki dio između ``<tt/./'' je ime za posebnu granu u stablu. Stablom se
penjemo uzimajući ime koje želimo (<tt/prep.ai.mit.edu/) pitajući korijen
(<tt/./) ili koje god servere koji su oci od korijena do
<tt/prep.ai.mit.edu/ a o kojima imamo informacije u cacheu. Jednom kad se
pređu granice cachea, rekurzivni `resolver' počinje pitati servere, prateći
preporuke (rubove) dalje u imenu.

<p>Domena o kojoj se puno manje govori, ali jednako važna domena je
<tt/in-addr.arpa/. Ona se također dijeli <!-- nests, hmmm --> kao i
`normalne' domene.  <tt/in-addr.arpa/ nam dopušta da dobijemo ime stroja
kada imamo njegovu adresu. Važna stvar kod ovoga je da primijetiš da su
IP-evi zapisani obrnutim redosljedom u <tt/in-addr.arpa./ domeni. Ako imaš
adresu stroja: 161.53.3.7, <tt/named/ je traži baš kao <tt/dns.srce.hr/:
traži <tt/arpa./ servere. Traži u <tt/in-addr.arpa./ serverima, traži
<tt/161.in-addr.arpa./ servere, traži <tt/53.161.in-addr.arpa/, traži
<tt/3.53.161.in-addr.arpa./ servere. Traži potrebne podatke o
<tt/7.3.53.161.in-addr.arpa./ serveru.  Pametno, ha? (Reci `da'.) Ipak,
obrtanje brojeva vas može godinama zbunjivati.

<sect1>Naša domena.

<p>Sada ćemo definirati našu domenu. Napravit ćemo domenu <tt/linux.bogus/ i
definirati strojeve u njoj. Koristim totalno neispravno ime domene da ne bi
smetali nikoga Tamo Vani.

<p>Još jedna stvar prije nego počnemo: nisu svi znakovi dozvoljeni u imenima
strojeva. Ograničeni smo na slova engleske abecede: a-z, brojeve 0-9 i
znak `-' (crta). Drži se tih znakova. Velika i mala slova su ista DNS-u,
tako da su <tt/dns.srce.hr/ i <tt/DNS.SRCE.Hr/ isto.

<p>Već smo započeli ovaj dio sa ovom linijom u datoteci <file/named.conf/:

<code>
zone "0.0.127.in-addr.arpa" {
        type master;
        file "pz/127.0.0";
};
</code>

<p>Primijeti manjak znaka `<tt/./' na kraju imena domena u ovoj datoteci.
Ovo govori da ćemo sada definirati zonu <tt/0.0.127.in-addr.arpa/, tako da
smo glavni (`master') server za nju i da je ona pohranjena u datoteci
`<file>pz/127.0.0</file>'. Već smo podesili ovu datoteku, i u njoj stoji:

<code>
$TTL 3D
@               IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                                1       ; Serial
                                8H      ; Refresh
                                2H      ; Retry
                                4W      ; Expire
                                1D)     ; Minimum TTL
                        NS      ns.linux.bogus.
1                       PTR     localhost.
</code>

<p>Primijeti znak `<tt/./' na kraju svih punih imena domena u ovoj datoteci,
nasuprot gornjoj datoteci <file/named.conf/. Neki ljudi vole započeti svaku
datoteku zone sa <tt/&dollar;ORIGIN/ direktivom, ali to je višak. Porijeklo
(mjesto iz DNS hijerarhije gdje pripada) datoteke zone je određeno u `zone'
sekciji <file/named.conf/ datoteke; u ovom slučaju to je
<tt/0.0.127.in-addr.arpa/.

<p>Ova `<bf/datoteka zone/' sadrži 3 `<bf/zapisa o resursu/' (<em/resource
record/, RR): SOA RR, NS RR, i PTR RR. SOA je skraćenica od <em/Start Of
Authority/ (početak nadležnosti). Znak `@' je posebna oznaka koja znači
porijeklo, i zbog toga što `domain' kolona za ovu datoteku kaže
<tt/0.0.127.in-addr.arpa/, prva linija zapravo znači:

<tscreen><verb>
0.0.127.in-addr.arpa.   IN      SOA     ...
</verb></tscreen>

<p>NS je <bf/Name Server RR/ (imenski server). Nema znaka `@' na početku ove
linije; ovo se podrazumijeva jer je zadnja linija započela sa `@'. To nas
štedi od tipkanja. Tako da bi se NS linija mogla pisati i ovako:

<tscreen><verb>
0.0.127.in-addr.arpa.   IN      NS      ns.linux.bogus
</verb></tscreen>

<p>Ona govori DNS-u koji stroj je imenski server domene
<tt/0.0.127.in-addr.arpa/, a to je <tt/ns.linux.bogus/. '<tt/ns/' je
uobičajeno ime za imenske servere, ali kao i kod web servera, koji se
obično zovu <tt/www./<em/nešto/, to ime može biti bilo što.

<p>I konačno, PTR (`Domain Name Pointer', pokazivač na ime domene) zapis
govori da se stroj na adresi 1 u podmreži <tt/0.0.127.in-addr.arpa./ odn.
<tt/127.0.0.1/ zove <tt/localhost/.

<p>SOA zapis je uvod u <em/svaku/ datoteku zone, i treba biti točno jedan
takav zapis u svakoj datoteci zone. On opisuje zonu, odakle dolazi (stroj
zvan <tt/ns.linux.bogus/), tko je odgovoran za njen sadržaj
(<tt/hostmaster@linux.bogus/; ovdje trebate staviti vašu e-mail adresu),
koja je ovo verzija datoteke zone (serial: 1) i ostale stvari koje imaju
veze sa cache-iranjem i sekundarnim DNS serverima. Za ostala polja (refresh,
retry, expire i minimum) koristi brojeve koji se koriste u ovom KAKOu i
trebao bi biti siguran. Prije SOA dolazi obavezni <tt/$TTL 3D/ redak.
Stavi ga u sve svoje datoteke zona.

<p>Sada ponovo pokreni svoj <tt/named/ (naredba je `<tt/ndc restart/') i
upotrijebi <tt/dig/ kako bi pregledao što si napravio. <tt/-x/ pita obrnuti
upit:

<tscreen><verb>
$ dig -x 127.0.0.1

; <<>> DiG 8.2 <<>> -x 
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUERY SECTION:
;;      1.0.0.127.in-addr.arpa, type = ANY, class = IN

;; ANSWER SECTION:
1.0.0.127.in-addr.arpa.  1D IN PTR  localhost.

;; AUTHORITY SECTION:
0.0.127.in-addr.arpa.   1D IN NS        ns.penguin.bv.

;; Total query time: 5 msec
;; FROM: lookfar to SERVER: default -- 127.0.0.1
;; WHEN: Sat Dec 16 01:13:48 2000
;; MSG SIZE  sent: 40  rcvd: 110
</verb></tscreen>

<p>Dakle on uspijeva dobiti ime <tt/localhost/ iz adrese 127.0.0.1, dobro. 
Sada za naš glavni zadatak, domenu <tt/linux.bogus/, ubaci novi `zone'
odjeljak u <file/named.conf/-u:

<code>
zone "linux.bogus" {
        notify no;
        type master;
        file "pz/linux.bogus";
};
</code>

<p>Primijeti nastavljeni nedostatak krajnjeg `<tt/./' na imenu domene u
datoteci <file/named.conf/.

<p>U datoteci zone <file/linux.bogus/ stavit ćemo neke totalno neispravne
podatke:

<code>
;
; Datoteka zone za domenu linux.bogus
;
; Potpuna datoteka zone
;
$TTL 3D
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                        199802151       ; serial, današnji datum + današnja revizija
                        8H              ; refresh, sekundi
                        2H              ; retry, sekundi
                        4W              ; expire, sekundi
                        1D )            ; minimum, sekundi
;
                NS      ns              ; Internet adresa imenskog servera
                MX      10 mail.linux.bogus     ; primarni Mail eXchanger
                MX      20 mail.friend.bogus.   ; sekundarni Mail eXchanger
;
localhost       A       127.0.0.1
ns              A       192.168.196.2
mail            A       192.168.196.4
</code>

<p>Dvije stvari se moraju zapaziti kod SOA zapisa. <tt/ns.linux.bogus/
<em/mora/ biti pravi stroj sa A zapisom (<em/Address/ = adresa, op.prev.).
Nije ispravno imati CNAME (<em/Canonical NAME/ = osnovno ime, op.prev.)
zapis za stroj koji se navede u SOA zapisu. Njegovo ime ne mora biti
`<tt/ns/', može biti bilo koje ispravno ime stroja. Dalje,
<tt/hostmaster.linux.bogus/ treba biti pročitano kao
<tt/hostmaster@linux.bogus/. Ovo treba biti mail alias (drugo ime e-maila,
op.prev.), ili mailbox (e-mail `sandučić', op.prev.), gdje osoba (osobe)
koja održava DNS redovno čita postu. Bilo kakav e-mail koji se tiče domene
bit će poslan na adresu navedenu ovdje. Ime ne mora biti `<tt/hostmaster/',
može biti bilo kakva ispravna e-mail adresa, ali se često očekuje da e-mail
adresa `<tt/hostmaster/' također radi.

<p>Postoji jedan novi zapis o resursu (RR) u ovoj datoteci, <bf/MX zapis/,
ili <em/Mail eXchanger RR/ (zapis o resursu razmjenitelja pošte). On govori
sustavima za poštu gdje slati poštu koja je adresirana na
<tt/netko@linux.bogus/, odn. na <tt/mail.linux.bogus/ ili
<tt/mail.friend.bogus/. Broj ispred imena svakog stroja je prioritet tog MX
RR-a. RR s najmanjim brojem (ovdje 10) je onaj kome će se e-mail slati
prvom. Ako njemu ne uspije, pošta će biti poslana onome s prvim većim
brojem, sekundarnim strojem za poštu, tj. <tt/mail.friend.bogus/ koji ovdje
ima prioritet 20.

<p>Restartaj <tt/named/ pokrećući '<tt/ndc restart/'. Pregledaj rezultate
<tt/dig/om:

<tscreen><verb>
$ dig any linux.bogus +pfmin
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23499
;; QUERY: 1, ANSWER: 4, AUTHORITY: 1, ADDITIONAL: 1
;; QUERY SECTION:
;;      linux.bogus, type = ANY, class = IN

;; ANSWER SECTION:
linux.bogus.            3D IN MX        10 mail.linux.bogus.linux.bogus.
linux.bogus.            3D IN MX        20 mail.friend.bogus.
linux.bogus.            3D IN NS        ns.linux.bogus.
linux.bogus.            3D IN SOA       ns.linux.bogus. hostmaster.linux.bogus. (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        4W              ; expiry
                                        1D )            ; minimum
</verb></tscreen>

<p>Nakon pažljivijeg pregleda otkrit ćeš grešku. Redak

<tscreen><verb>
linux.bogus.            3D IN MX        10 mail.linux.bogus.linux.bogus.
</verb></tscreen>

<p>je sasvim neispravan. Treba biti:

<tscreen><verb>
linux.bogus.            3D IN MX        10 mail.linux.bogus.
</verb></tscreen>

<p>Namjerno sam napravio grešku kako bi ti mogao učiti iz nje :-) Gledajući
u datoteku zone naći ćemo ovaj redak:

<tscreen><verb>
                MX      10 mail.linux.bogus     ; primarni Mail eXchanger
</verb></tscreen>

<p>Nedostaje mu točka. Ili ima `<tt/linux.bogus/' viška. Ako ime stroja u
datoteci zone ne završava točkom, porijeklo se dodaje na njen kraj
uzrokujući dvostruki linux.bogus.linux.bogus. Dakle ili

<code>
                MX      10 mail.linux.bogus.    ; primarni Mail eXchanger
</code>

ili

<code>
                MX      10 mail                 ; primarni Mail eXchanger
</code>

je ispravno. Ja više volim zadnji oblik, kraći je za tipkanje. Postoje neki
BIND znalci koji se ne slažu, a i neki koji se slažu s ovim. U datoteci zone
zapis bi trebao završavati domenom i `<tt/./', ili bez ičega, kada bi se
nadopunio porijeklom.

<p>Moram naglasiti da u datoteci <file/named.conf/ <em/ne smije/ biti
`<tt/./' nakon imena domena. Nemaš pojma koliko puta je `<tt/./' viška ili
manjka `sredila' stvari i užasno zbunila ljude.

<p>Nakon što sam ovo naglasio, evo nove datoteke zone, i sa nekim dodatnim
informacijama:

<code>
;
; Datoteka zone za domenu linux.bogus
;
; Potpuna datoteka zone
;
$TTL 3D
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                        199802151       ; serial, današnji datum + današnja revizija
                        8H              ; refresh, sekundi
                        2H              ; retry, sekundi
                        4W              ; expire, sekundi
                        1D )            ; minimum, sekundi
;
                TXT     "Linux.Bogus, tvoji DNS savjetnici"
                NS      ns              ; Internet adresa imenskog servera
                NS      ns.friend.bogus.
                MX      10 mail         ; primarni Mail eXchanger
                MX      20 mail.friend.bogus. ; sekundarni Mail eXchanger

localhost       A       127.0.0.1

gw              A       192.168.196.1
                HINFO   "Cisco" "IOS"
                TXT     "The router"

ns              A       192.168.196.2
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "Pentium" "Linux 2.0"
www             CNAME   ns

donald          A       192.168.196.3
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "i486"  "Linux 2.0"
                TXT     "DEK"

mail            A       192.168.196.4
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "386sx" "Linux 1.2"

ftp             A       192.168.196.5
                MX      10 mail
                MX      20 mail.friend.bogus.
                HINFO   "P6" "Linux 2.1.86"
</code>

<p>Više je novih RR-ova ovdje: <bf/HINFO/ (<em/Host INFOrmation/ =
informacije o stroju) ima dva dijela, dobra je navika staviti ih u
navodnike. Prvi dio je hardver ili CPU na stroju, a drugi dio je softver ili
OS na stroju. Stroj zvan `<tt/ns/' ima Pentium CPU i radi pod Linuxom 2.0.
<bf/CNAME/ (<em/Canonical NAME/ = osnovno ime) je način da date svakom
stroju više imena. Tako je `<tt/www/' drugo ime za `<tt/ns/'.

<p>Korištenje CNAME zapisa je pomalo kontroverzno. Ali je sigurno postupati
po pravilu da MX, CNAME ili SOA zapis <em/nikad/ ne smiju upućivati na CNAME
zapis, već na nešto sa A zapisom, i ne preporučuje se imati:

<code>
bla             CNAME   www                     ; NE!
</code>

ali je ispravno imati:

<code>
bla             CNAME   ns                      ; Da!
</code>

<p>Također je sigurno pretpostaviti da CNAME nije ispravno ime stroja za
e-mail adresu: <tt/webmaster@www.linux.bogus/ je neispravna e-mail adresa
prema gornjim postavkama. Možeš očekivati priličan broj administratora mail
sustava Tamo Vani koji će nametati ovo pravilo čak i ako takve adrese tebi
budu radile. Način kako izbjeći ovo je koristeći A zapise (i možda neke
druge, kao MX zapis):

<code>
www		A	192.168.196.2
</code>

<p>Stanovit broj starih BIND stručnjaka preporučuje uopće <em/ne/ koristiti
CNAME. Ipak, rasprava o tome zašto ili zašto ne je izvan okvira ovog KAKOa.

<p>Ali kako vidiš, ovaj KAKO i puno servera ne prate to pravilo.

<p>Učitaj novu bazu podataka pokrećući `<tt/ndc reload/', što uzrokuje da
<tt/named/ ponovo pročita svoje datoteke.

<tscreen><verb>
$ dig linux.bogus axfr

; <<>> DiG 8.2 <<>> linux.bogus axfr 
$ORIGIN linux.bogus.
@                       3D IN SOA       ns hostmaster (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        4W              ; expiry
                                        1D )            ; minimum

                        3D IN NS        ns
                        3D IN NS        ns.friend.bogus.
                        3D IN MX        10 mail
                        3D IN MX        20 mail.friend.bogus.
                        3D IN TXT       "Linux.Bogus, tvoj DNS savjetnik"
gw                      3D IN TXT       "The router"
                        3D IN HINFO     "Cisco" "IOS"
                        3D IN A         192.168.196.1
localhost               3D IN A         127.0.0.1
mail                    3D IN HINFO     "386sx" "Linux 1.2"
                        3D IN MX        10 mail
                        3D IN MX        20 mail.friend.bogus.
                        3D IN A         192.168.196.4
www                     3D IN CNAME     ns
donald                  3D IN TXT       "DEK"
                        3D IN HINFO     "i486" "Linux 2.0"
                        3D IN MX        10 mail
                        3D IN MX        20 mail.friend.bogus.
                        3D IN A         192.168.196.3
ns                      3D IN HINFO     "Pentium" "Linux 2.0"
                        3D IN MX        10 mail
                        3D IN MX        20 mail.friend.bogus.
                        3D IN A         192.168.196.2
ftp                     3D IN HINFO     "P6" "Linux 2.1.86"
                        3D IN MX        10 mail
                        3D IN MX        20 mail.friend.bogus.
                        3D IN A         192.168.196.5
@                       3D IN SOA       ns hostmaster (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        4W              ; expiry
                                        1D )            ; minimum

;; Received 29 answers (29 records).
;; FROM: lookfar to SERVER: 127.0.0.1
;; WHEN: Sat Dec 16 01:35:05 2000
</verb></tscreen>

<p>To je dobro. Kako vidiš, izgleda vrlo slično samoj datoteci zone.
Provjerimo što kaže za sam <tt/www/:

<tscreen><verb>
$ dig www.linux.bogus +pfmin
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27345
;; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 1
;; QUERY SECTION:
;;      www.linux.bogus, type = A, class = IN

;; ANSWER SECTION:
www.linux.bogus.        3D IN CNAME     ns.linux.bogus.
ns.linux.bogus.         3D IN A         192.168.196.2
</verb></tscreen>

<p>Drugim riječima, pravo ime za <tt/www.linux.bogus/ je
<tt/ns.linux.bogus/, i daje ti neke informacije o <tt/ns/-u također,
dovoljno da se spojiš na njega, da si program.

<p>Sada smo na pola puta.

<sect1>Obrnuta zona

<p>Sada programi mogu prebacivati imena u <tt/linux.bogus/-u u adrese na
koje se mogu spojiti. Ali također je potrebna i obrnuta zona, koja omogućuje
da DNS prebacuje iz adrese u ime. Ovu metodu koriste mnogi serveri raznih
vrsta (FTP, IRC, WWW i drugi) da bi odredili hoće li pričati s tobom ili ne,
a ako hoće, možda i koliko će ti prioriteta pridati. Za puni pristup svim
uslugama na Internetu obrnuta zona je obavezna.

<p>Stavi ovo u <file/named.conf/:

<code>
zone "196.168.192.in-addr.arpa" {
        notify no;
        type master;
        file "pz/192.168.196";
};
</code>

<p>Ovo je upravo kao i sa <tt/0.0.127.in-addr.arpa/, a i sadržaj je sličan:

<code>
$TTL 3D
@       IN      SOA     ns.linux.bogus. hostmaster.linux.bogus. (
                        199802151 ; Serial, današnji datum + današnja revizija
                        8H      ; Refresh
                        2H      ; Retry
                        4W      ; Expire
                        1D)     ; Minimum TTL
                NS      ns.linux.bogus.

1               PTR     gw.linux.bogus.
2               PTR     ns.linux.bogus.
3               PTR     donald.linux.bogus.
4               PTR     mail.linux.bogus.
5               PTR     ftp.linux.bogus.
</code>

<p>Sada trebaš opet restartati svoj <tt/named/ (<tt/ndc restart/) i
pregledati svoj rad <tt/dig/-om:

<code>
$ dig -x 192.168.196.4 +pfmin
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8764
;; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUERY SECTION:
;;      4.196.168.192.in-addr.arpa, type = ANY, class = IN

;; ANSWER SECTION:
4.196.168.192.in-addr.arpa.  3D IN PTR  mail.linux.bogus.
</code>

<p>tako, izgleda OK, neka izbaci cijelu stvar da i to pregledaš:

<code>
dig -x 192.168.196 AXFR

; <<>> DiG 8.2 <<>> -x AXFR 
$ORIGIN 196.168.192.in-addr.arpa.
@                       3D IN SOA       ns.linux.bogus. hostmaster.linux.bogus. (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        4W              ; expiry
                                        1D )            ; minimum

                        3D IN NS        ns.linux.bogus.
4                       3D IN PTR       mail.linux.bogus.
2                       3D IN PTR       ns.linux.bogus.
5                       3D IN PTR       ftp.linux.bogus.
3                       3D IN PTR       donald.linux.bogus.
1                       3D IN PTR       gw.linux.bogus.
@                       3D IN SOA       ns.linux.bogus. hostmaster.linux.bogus. (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        4W              ; expiry
                                        1D )            ; minimum

;; Received 8 answers (8 records).
;; FROM: lookfar to SERVER: 127.0.0.1
;; WHEN: Sat Dec 16 01:44:03 2000
</code>

<p>Izgleda dobro! Ako kod tebe nije tako izgledalo, potraži poruke o
greškama u syslogu, objasnio sam kako to učiniti u prvom poglavlju, pod
naslovom "Startanje nameda".

<sect1>Riječi opreza

<p>Postoji nekoliko stvari koje bi trebao dodati ovdje. IP brojevi korišteni
gore su uzeti iz jednog od blokova `privatnih mreža', tj. brojevi koje nije
dopušteno koristiti javno na Internetu. Zato su prikladni i sigurni kao
primjer u ovom KAKO-u. Druga stvar je `<tt/notify no;/' linija. Ona govori
<tt/named/u da ne obavijesti svoje sekundarne (<em/slave/ = ropske) servere
kada se dogodi promjena u jednoj od datoteka zona. U BIND-u 8 <tt/named/
može obavijestiti ostale servere navedene u NS zapisima u datoteci zone kada
je zona promijenjena. Ovo je zgodno za uobičajenu upotrebu, ali za privatne
pokuse sa zonama ova funkcija treba biti isključena -- ne želimo da pokus
zagadi Internet, zar ne?

<p>I, naravno, ova domena je stvarno neispravna, kao i sve adrese u njoj. Za
pravi primjer domene iz stvarnosti pogledaj sljedeće poglavlje.

<sect1>Zašto ne rade obrnuti upiti.

<p>Postoji par ``kvaka'' koje se normalno izbjegnu s upitima za imenima,
ali koje se često vidi pri podešavanju obrnutih zona. Prije no što nastaviš,
trebat ćeš ispravne obrnute upite svojih strojeva na svom imenskom serveru.
Ako to ne radi, vrati se i popravi ih prije nastavljanja.

<p>Raspravit ću dva neuspjeha obrnutih upita koji se mogu vidjeti izvan
tvoje mreže.

<sect2>Obrnuta zona nije prepuštena.
<!-- nije delegated... -->

<p>Kada od pružatelja usluga zatražiš opseg mrežnih adresa i ime domene, to
se ime normalno uvijek prepusti tebi, ti bivaš opunomoćen za administriranje
(eng. delegate). Postupak prepuštanja (eng. delegation) je povezujući NS
zapis koji pomaže u prelaženju s jednog imenskog servera na drugi, kao što
je objašnjeno u gornjem poglavlju o suhoparnoj teoriji. Pročitao si to, zar
ne? Ako tvoja obrnuta zona ne radi, vrati se i pročitaj. Sada.

<p>Obrnuta zona također treba biti prepuštena. Ako si od svog pružatelja
usluga dobio mrežu <tt/192.168.196/ s <tt/linux.bogus/ domenom, oni trebaju
postaviti <tt/NS/ zapise za tvoju obrnutu zonu kao i za normalnu zonu. Ako
pratiš lanac od <tt/in-addr.arpa/ do tvoje mreže, vjerojatno ćeš naći prekid
u lancu, vrlo vjerojatno kod tvog pružatelja usluga. Nakon što nađeš
problem, obrati se svom pružatelju usluga i traži od njih da isprave grešku.

<sect2>Imaš podmrežu bez klasa

<p>Ovo je pomalo napredna tema, ali podmreže bez klasa su danas vrlo česte i
vjerojatno je imaš ako si u maloj tvrtci.

<p>Podmreža bez klasa je ono što čini da Internet danas radi. <!-- keeps
going, argh --> Prije par godina je bilo puno buke oko nedostatka IP
brojeva. Pametni ljudi iz IETF-a (Internet Engineering Task Force, oni
održavaju Internet) su razmislili i riješili problem. Za određenu cijenu.
Cijena je to da ćeš dobiti manje od ``C'' podmreže i neke stvari će se možda
pokvariti. Molim pogledaj <url name="Ask Mr. DNS at"
url="http://www.acmebw.com/askmrdns/00007.htm"> za dobro objašnjenje ovoga i
kako s tim raditi.

<p>Jesi li pročitao? Neću to objašnjavati, molim te pročitaj.

<p>Prvi dio problema je to što tvoj ISP mora shvaćati tehniku koju opisuje
Mr. DNS. Ovo ne poznaju svi mali ISP-ovi, pa ćeš im možda to trebati
objasniti, i biti uporan. Ali prvo provjeri da to sam razumiješ ;-). Oni će
onda podesiti dobru obrnutu zonu na svom serveru čiju ćeš ispravnost moći
provjeriti <tt/dig/om.

<p>Drugi i posljednji dio problema je to da ti moraš razumjeti tehniku. Ako
nisi siguran, vrati se i ponovo pročitaj o njoj. Tada ćeš moći podesiti
svoju besklasnu obrnutu zonu kao što je opisao Mr. DNS.

<p>Ovdje vreba još jedna zamka. Stariji `resolveri' <em/neće/ moći pratiti
<tt/CNAME/ trik u lancu i neće uspjeti naći ime tvog stroja iz IP adrese.
Ovo može rezultirati time da neke mrežne usluge tvoj stroj stave u krivu
klasu pristupa, onemoguće mu pristup ili tako nešto. Ako naletiš na tako
nešto, jedino rješenje (meni znano) je da tvoj ISP umetne tvoj <tt/PTR/
zapis direktno u njihovu trik besklasnu datoteku zone umjesto trik
<tt/CNAME/ zapisa.

<p>Neki ISP-ovi će ponuditi druge načine rješavanja ovoga, kao što su
Web-bazirani formulari u koje možeš upisati svoja obrnuta prepisivanja
<!-- mapping, mapiranje, funkcija (matematički), preslikavanje, sranje -->
ili drugi automagični sustavi.

<sect1>`Slave' serveri

<p>Jednom kad podesiš svoje zone ispravno na primarnom serveru (eng.
`master', gospodar) moraš podesiti makar jedan sekundarni server (eng.
`slave', rob). `Slave' serveri su potrebni za robusnost. Ako se tvoj
`master' server sruši, ljudi s mreže će još uvijek moći doći do informacija
o tvojoj domeni od `slave' servera. Jedan `slave' server treba biti što je
dalje moguće od `mastera'. Tvoji `master' i `slave' serveri trebaju dijeliti
što je manje moguće od ovoga: napajanje, lokalnu mrežu, ISP, grad i zemlja.
Ako su sve ove stvari različite za tvoje `master' i `slave' servere, našao
si jako dobar `slave'.

<p>`Slave' je jednostavno imenski server koji kopira datoteke zona od
`mastera'. Podešavaš ga ovako.

<code>
zone "linux.bogus" {
	type slave;
	file "sz/linux.bogus";
	masters { 192.168.196.2; };
};
</code>

<p>Mehanizam nazvan `zone-transfer' se koristi za kopiranje podataka.
Prebacivanje zone se kontrolira kroz tvoj <tt/SOA/ zapis.

<code>
@	IN	SOA	ns.linux.bogus. hostmaster.linux.bogus. (
			199802151	; serial, današnji datum + današnja revizija
			8H		; refresh, seconds
			2H		; retry, seconds
			4W		; expire, seconds
			1D )		; minimum, seconds
</code>

<p>Zona se jedino prenosi ako je `serial' (tj. serijski broj) na `masteru'
veći od onoga na `slaveu'. Nakon svakog `refresh' (tj. osvježavanje)
intervala, `slave' će provjeriti da li se što mijenjalo na `masteru'. Ako
provjera ne uspije (jer je `master' nedostupan), on će ponovo pokušati nakon
`retry' (tj. ponovljen pokušaj) intervala. Ako nastavi s neuspjesima do
`expire' (tj. istek roka) intervala, `slave' će izbrisati zonu sa svog
datotečnog sustava i više neće biti server za nju.


<sect>Primjer prave domene<label id="real-example">

<p><bf/(u kojem ćemo pokazati neke prave datoteke zone)/

<p>Korisnici su predložili da, uz školski primjer, uključim i pravi primjer
domene koja radi.

<p>Koristim ovaj primjer sa dozvolom Davida Bullocka iz LAND-5. Ove datoteke
su bile aktualne 24. rujna 1996., i uređivane su da se uklope u BIND 8
ograničenja i koriste moje nadopune. Tako da ovo što vidite ovdje se
ponešto razlikuje od onoga što ćete dobiti ako sada postavite upit
LAND-5-ovim imenskim serverima.

<sect1>/etc/named.conf (ili /var/named/named.conf)

<p>Ovdje nalazimo `master' zone sekcije za dvije potrebne obrnute zone:
mreža 127.0.0, kao i LAND-5-ova <tt/206.6.177/ podmreža, te `primary' liniju
za LAND-5-ovu normalnu zonu <tt/land-5.com/. Također primijeti da se umjesto
stavljanja datoteka u direktorij zvan `<file/pz/', kako ja to radim u ovom
KAKO-u, on ih stavlja u direktorij zvan `<file/zone/'.

<code>
// 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";
};
</code>

<p>Ako ovo staviš u svoju <file/named.conf/ datoteku za igru, <bf/MOLIM TE/
stavi ``<tt/notify no;/'' u `zone' sekcije za dvije LAND-5 zone, kako bi
izbjegli nezgode.

<sect1>/var/named/root.hints

<p>Ne zaboravi da je ova datoteka dinamička, i da je ova navedena ovdje
stara. Bolje ti je da koristiš onu napravljenu sada, <tt/dig/om, kao što je
to objašnjeno prije.

<code>
; <<>> 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.srce.hr to SERVER: A.ROOT-SERVERS.NET.  198.41.0.4
;; WHEN: Sun Feb 15 01:22:51 1998
;; MSG SIZE  sent: 17  rcvd: 436
</code>

<sect1>/var/named/zone/127.0.0

<p>Samo osnove, obavezni SOA zapis, i zapis koji određuje 127.0.0.1 kao
<tt/localhost/. Oba su nužna. Ništa više ne treba biti u ovoj datoteci. Ona
se vjerojatno nikad neće morati mijenjati, osim ako se adresa tvog imenskog
servera ili održavatelja DNS-a promijeni.

<code>
@               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.
</code>

<p>Ako pogledaš na nasumično odabranu BIND instalaciju, vjerojatno ćeš
primijetiti da <tt/$TTL/ redak nedostaje, kao i ovdje. On prije nije
korišten, i tek je verzija BIND-a 8.2 počela upozoravati na njegovo
nepostojanje. Preporučujem stavljanje <tt/$TTL/ retka u datoteke zona kako
budeš nalazio da nedostaju.

<sect1>/var/named/zone/land-5.com

<p>Ovdje vidimo obavezni SOA zapis, i potrebne NS zapise. Možemo vidjeti da
on ima sekundarni name server na <tt/ns2.psi.net/. Ovo je kako treba biti,
<em/uvijek/ treba imati vanjski site za sekundarni server kao rezervnu
kopiju (eng. backup). Možemo također vidjeti da on ima glavni stroj zvan
<tt/land-5/ koji se brine o mnogim Internet uslugama, i da je to napravio sa
CNAME-ovima (alternativa je korištenje A zapisa).

<p>Kao što vidiš iz SOA zapisa, datoteka zone dolazi iz <tt/land-5.com/,
osoba za kontakt je <tt/root@land-5.com/. `<tt/hostmaster/' je još jedna
često korištena adresa za kontakt osobu. Serijski broj je u uobičajenom
ggggmmdd formatu sa dodanom današnjom revizijom; ovo je vjerojatno šesta
inačica datoteke zone dana 20. rujna 1996.g. Zapamti da se serijski broj
<em/mora/ monotono povećavati, ovdje je samo <em/jedna/ znamenka za današnji
serijski broj, tako da nakon 9 uređivanja on mora čekati do sutra prije nego
što promijeni datoteku ponovo. Razmisli o korištenju dvije znamenke.

<code>
@       IN      SOA     land-5.com. root.land-5.com. (
                        199609206       ; serial, današnji datum + današnja revizija
                        8H              ; refresh, sekundi
                        2H              ; retry, sekundi
                        4W              ; expire, sekundi
                        1D )            ; minimum, sekundi
                NS      land-5.com.
                NS      ns2.psi.net.
                MX      10 land-5.com.  ; primarni 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

;
;       Radne stanice
;
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
; {Puno ponovljenih definicija obrisano - 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
</code>

<p>Ako pregledaš LAND-5 imenski server naći ćeš da su imena strojeva u
obliku <tt/ws_/<em/broj/. Od kasnijih BIND 4 verzija, <tt/named/ je počeo
provoditi ograničenja u znakovima koji se smiju koristiti u imenima
strojeva. Tako da to uopće ne radi sa BIND-8, i ja sam zamijenio `_'
(podvlaku) `-' (crtom) za upotrebu u ovom KAKOu.

<p>Još jednu stvar treba primijetiti, da radne stanice nemaju individualna
imena, već predmetak i zadnja dva dijela IP broja. Koristeći takav sustav
možeš znatno pojednostaviti održavanje, ali to može biti pomalo neosobno, i
zapravo biti izvor nezadovoljstva među tvojim korisnicima.

<p>Također vidimo da je <tt/funn.land-5.com/ drugo ime za <tt/land-5.com/,
ali koristeći A zapis, ne CNAME zapis. Ovo je dobro načelo, kao što smo već
ustvrdili.

<sect1>/var/named/zone/206.6.177

<p>Ovu datoteku ću komentirati ispod

<code>
@               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.
;
;       Serveri
;
1       PTR     router.land-5.com.
2       PTR     land-5.com.
2       PTR     funn.land-5.com.
;
;       Radne stanice
;
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.
; {Puno ponovljenih definicija obrisano - 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.
</code>

<p>Obrnuta zona je dio podešavanja koji izgleda uzrokuje najviše nevolja.
Koristi se da se nađe ime stroja ako imaš IP broj istog. Primjer: ti si IRC
server i prihvaćaš veze od IRC klijenata. Ipak, ti si norveški IRC server
tako da želiš prihvatiti veze samo iz Norveške i ostalih skandinavskih
zemalja. Kada uspostaviš vezu s klijentom, C biblioteka ti može reći IP broj
drugog stroja zato što se IP broj klijenta pojavljuje u svim paketima koji
prolaze mrežom. Sada možeš pozvati funkciju `gethostbyaddr' koja će
pogledati ime stroja određenog IP brojem. `Gethostbyaddr' će pitati DNS
server, koji će onda pregledati DNS tražeći stroj.

<p>Pretpostavimo da se klijent spaja s adrese <tt/ws-177200.land-5.com/. IP
broj kojeg C library daje IRC serveru jest 206.6.177.200. Da bismo saznali
ime tog stroja, moramo naći <tt/200.177.6.206.in-addr.arpa/. DNS server će
prvo naći <tt/arpa./ servere, pa <tt/in-addr.arpa./ servere, prateći obrnuti
trag kroz <tt/206/, pa <tt/6/, i na kraju će naći server za
<tt/177.6.206.in-addr.arpa/ zonu na LAND-5. Iz toga će na kraju dobiti
odgovor da za <tt/200.177.6.206.in-addr.arpa/ imamo ``<tt/PTR
ws-177200.land-5.com/'' zapis, što znači da ime koje ide uz
<tt/206.6.177.200/ jest <tt/ws-177200.land-5.com/. Kao i objašnjenje kako se
pogleda <tt/prep.ai.mit.edu/, i ovo je pomalo fiktivno.

<p>Vratimo se na primjer IRC servera. IRC server prihvaća samo veze iz
skandinavskih zemalja, odn. <tt/*.no/, <tt/*.se/, i <tt/*.dk/, pa ime
<tt/ws-177200.land-5.com/ očito ne zadovoljava nijedan uvjet, i server će se
odbiti povezati. Kada <em/ne bi/ postojalo reverzno mapiranje IP-a
<tt/206.2.177.200/ kroz <tt/in-addr.arpa/ zonu, server ne bi nikako mogao
naći ime stroja, i morao bi usporediti 206.2.177.200 sa <tt/*.no/,
<tt/*.se/, i <tt/*.dk/, što ne bi uspjelo.

<p>Neki ljudi će ti reći da je obrnuto `mapiranje' bitno samo za servere,
ili nije uopće bitno. Nije tako, jer puno FTP, NNTP (news), IRC pa čak i
neki HTTP (WWW) serveri <em/neće/ prihvatiti veze sa strojevima čije ime ne
mogu pronaći. Zato je obrnuto `mapiranje' strojeva zapravo <em/obavezno/.

<sect>Održavanje<label id="maint">
<!-- LaTeX se guši na labelama koje sadrže hrvatske znakove. [MV]
     Da, ionako je glupost prevoditi labele, jer se tako kidaju linkovi. [JR]
  -->

<p><bf/Samo neka radi./

<p>Jednu stvar moraš činiti za održavanje <tt/named/a, osim da ih puštaš da
rade. To je održavanje <file/root.hints/ datoteke ažurnom. Najlakši način je
korištenje <tt/dig/a. Prvo pokreni <tt/dig/ bez parametara, i dobit ćeš
<file/root.hints/ svog servera. Onda pitaj jedan od izlistanih korijenskih
servera sa <tt/dig @rootserver/. Vidjet ćeš da izlazni podaci jako sliče
onima u <file/root.hints/ datoteci. Sačuvaj ih u datoteku (<tt/dig
@e.root-servers.net . ns &gt; root.hints.new/) i zamijeni staru
<file/root.hints/ datoteku s novom (<file/root.hints.new/, op.prev.).

<p>Zapamti da treba restartati <tt/named/ nakon promjene cache datoteke.

<p>Al Longyear mi je poslao ovu skriptu koja se može pokrenuti automatski da
obnovi <file/root.hints/. Unesite je u <tt/crontab/ kako bi se pokretala
jednom mjesečno i zaboravite na nju. Ova skripta pretpostavlja da imaš
podešen i radeći e-mail, te da je alias `<tt/hostmaster/' definiran. Moraš
je hackirati da je uskladiš sa svojim postavkama. (sačuvati kao izvršnu
datoteku <file>/etc/cron.monthly/hints.new</file>, op.prev.)

<code>
#!/bin/sh
#
# Update the nameserver cache information file once per month.
# This is run automatically by a cron entry.
#
# Original by Al Longyear
# Updated for BIND 8 by Nicolai Langfeldt
# Miscelanious error-conditions reported by David A. Ranch
# Ping test suggested by Martin Foster
# named up-test suggested by Erik Bryer.
#
(
 echo "To: hostmaster <hostmaster>"
 echo "From: system <root>"

 # Is named up? Check the status of named.
 case `ndc status 2>&1` in
    *'cannot connect to command channel'*)
        echo "named is DOWN. root.hints was NOT updated"
        echo
        exit 0
        ;;
 esac

 PATH=/sbin:/usr/sbin:/bin:/usr/bin:
 export PATH
 # NOTE: /var/named must be writable only by trusted users or this script 
 # will cause root compromise/denial of service opportunities.
 cd /var/named 2>/dev/null || {
    echo "Subject: Cannot cd to /var/named, error $?"
    echo
    echo "The subject says it all"
    exit 1
 }

 # Are we online?  Ping a server at your ISP
 case `ping -qnc 1 some.machine.net 2>&1` in
   *'100% packet loss'*)
        echo "Subject: root.hints NOT updated.  The network is DOWN."
	echo
	echo "The subject says it all"
	exit 1
	;;
 esac

 dig @e.root-servers.net . ns >root.hints.new 2> errors

 case `cat root.hints.new` in
   *NOERROR*)
	# It worked
	:;;
   *)
	echo "Subject: The root.hints file update has FAILED."
        echo
   	echo "The root.hints update has failed"
	echo "This is the dig output reported:"
   	echo
   	cat root.hints.new errors
        exit 1
	;;
 esac

 echo "Subject: The root.hints file has been updated"
 echo
 echo "The root.hints file has been updated to contain the following   
information:"
 echo
 cat root.hints.new

 chown root.root root.hints.new
 chmod 444 root.hints.new
 rm -f root.hints.old errors
 mv root.hints root.hints.old
 mv root.hints.new root.hints
 ndc restart
 echo
 echo "The nameserver has been restarted to ensure that the update is complete."
 echo "The previous root.hints file is now called   
/var/named/root.hints.old."
) 2>&1 | /usr/lib/sendmail -t
exit 0
</code>

<p>Neki su možda vidjeli <file/root.hints/ datoteku koja je dostupna FTP-om
od InterNIC-a. Molim vas, nemojte koristiti FTP da obnovite
<file/root.hints/, jer je gornja metoda puno bolja za mrežu, i InterNIC.

<sect>Prebacivanje s verzije 4 na verziju 8<label id="bind8">

<p>Ovo je originalno bilo poglavlje kako koristiti bind 8 koje je napisao
David E. Smith (dave@bureau42.ml.org). Malo sam ga uredio sam ga, kako bi
odgovarao novom imenu poglavlja.

<p>Nema puno posla. Osim što se koristi <file/named.conf/ umjesto
<file/named.boot/ datoteke, sve je identično. I BIND 8 dolazi sa perl
skriptom koja prevodi stare datoteke u nove. Primjer stare <file/named.boot/
datoteke za caching only imenski server:

<code>
directory /var/named
cache   .                                       root.hints
primary 0.0.127.IN-ADDR.ARPA                    127.0.0.zone
primary localhost                               localhost.zone
</code>

<p>Ukoliko imaš source distribuciju, na komandnoj liniji, u
<file>bind8/src/bin/named</file> direktoriju ćeš otipkati sljedeće: (Ako
imaš binarni paket, skripta je vjerojatno tu negdje, ali nisam siguran gdje
op.a.).

<code>
./named-bootconf.pl < named.boot > named.conf
</code>

Što će napraviti ovakav <file/named.conf/:

<code>
// 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";
};
</code>

<p>Radi za sve što može biti u <file/named.boot/ datoteci, mada ne dodaje
sva nova unapređenja i konfiguracijske opcije koje dopušta BIND 8. Evo
kompletnijeg <file/named.conf/-a koji radi isto to, samo malo učinkovitije.

<code>
// This is a configuration file for named (from BIND 8.1 or later).
// It would normally be installed as /etc/named.conf.
// The only change made from the `stock' named.conf (aside from this
// comment :) is that the directory line was uncommented, since I
// already had the zone files in /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";
};
</code>

<p>U <file>bind8/src/bin/named/test</file> direktoriju BIND 8 source
distribucije možete naći ovo i kopije datoteka zona koje mnogi ljudi mogu
samo ubaciti i odmah koristiti.

<p>Formati datoteka zona i <file/root.hints/ datoteke su identični, kao i
naredbe za njihovo mijenjanje.

<sect>Pitanja i Odgovori<label id="qanda">

<p>Molim te, pročitaj ovo poglavlje prije nego mi e-mailaš.

<enum>
  <item>Moj <tt/named/ traži datoteku <file/named.boot/.

  <p>Čitaš krivi KAKO (HOWTO). Molim pogledati staru verziju ovog HOWTO-a,
  koja pokriva bind 4, na <url url="http://www.math.uio.no/~janl/DNS/">.

  <item>Kako koristiti DNS unutar firewalla?

  <p>Prijedlog: <tt/forward only;/.  Možda ćeš isto trebati

  <code>
  query-source port 53;
  </code>

  unutar ``options'' dijela <file/named.conf/ datoteke, kao što se
  preporučuje u primjeru <ref id="caching" name="caching"> poglavlja.

  <item>Kako da učinim da DNS kruži kroz dostupne adrese za uslugu, recimo
  <tt/www.busy.site/ da dobije `load balancing' efekt, ili nešto slično?

  <p>Napravi više <bf/A/ zapisa za <tt/www.busy.site/ i koristi BIND 4.9.3
  ili noviji. Tada će bind izokretati (eng. round-robin) odgovore. Ovo
  <em/neće/ raditi s ranijim verzijama BIND-a.

  <item>Želim podestiti DNS na (zatvorenom) intranetu. Što da radim?

  <p>Izbaci <file/root.hints/ datoteku i samo podesi datoteke zone. To
  također znači da ne moraš nabavljati novu `hint' datoteku cijelo vrijeme.

  <item>Kako da podesim sekundarni (slave) imenski server?

  <p>Ako primarni/glavni server ima adresu 127.0.0.1, stavi liniju kao ovu u
  <file/named.conf/ datoteku svog sekundarnog servera:

  <code>
  zone "linux.bogus" {
        type slave;
        file "sz/linux.bogus";
        masters { 127.0.0.1; };
  };
  </code>

  Možeš navesti više alternativnih master servera s kojih se zona može
  kopirati, unesi ih u <tt/masters/ listu, odvojene znakom `;' (točka-zarez).

  <item>Želim da BIND radi dok nisam spojen na mrežu.

  <p>Postoje dvije stvari vezane za ovo:

<itemize>

  <item>Specifično za BIND 8, Adam L Rice mi je poslao ovaj e-mail, o tome
  kako bezbolno imati DNS na stroju koji se spaja modemom:

<tscreen><verb>

Otkrio sam da s novim verzijama BIND-a ovo [<em/micanje datoteka, op.a./]
više nije potrebno. Postoji "forward" naredba uz "forwarders" naredbu koja
kontrolira kako se one koriste. Pretpostavljena vrijednost je "forward
first", što znači da će <tt/named/ prvo pitati servere iz `forwarders'
retka, i tek ako to ne uspije, pokušati normalni pristup. Ovo uzrokuje
ponašanje slično gethostbyname()-u, samo što predugo traje ako nema veze na
mrežu. Ali, ako je podešen "forward only", onda će BIND odustati kada ne
dobije odgovor od imenskih servera, a gethostbyname() odustaje odmah. Zato
nema potrebe žonglirati <!-- hmm, sleight of hand --> datotekama u /etc i
ponovo pokretati server.

U mom slučaju, samo sam dodao retke

forward only;
forwarders { 193.133.58.5; };

u options { } dio moje named.conf datoteke. Radi vrlo lijepo. Jedini
nedostatak ovoga je to što smanjuje nevjerojatno sofisticirani komad DNS
softvera na stanje priglupog cachea. Ja bih donekle bio zadovoljan samo s
priglupimg cacheom za DNS umjesto ovoga, ali izgleda da ne postoji takav
program za Linux.
</verb></tscreen>


  <item>Dobio sam ovaj e-mail od Iana Clarka, &lt;ic@deakin.edu.au&gt;, gdje
  on objašnjava svoj način kako to učiniti:

<tscreen><verb>
Ja pokrećem named na svom 'masquerading' stroju. Imam dvije
root.hints datoteke, jedna se zove root.hints.real i sadrži
prava imena korijenskih servera, i druga koja se zove
root.hints.fake koja sadrži:

----
; root.hints.fake
; this file contains no information
----

Kada odlazim s mreže (off line), kopiram root.hints.fake u
root.hints i restartam named.

Kada idem na mrežu (on line), kopiram root.hints.real u
root.hints i restartam named.

Ovo se radi automatski iz ip-down odn. ip-up skripte.

Prvi put kada radim upit off line na imenu domene named nema
detalje za nju i stavlja ovo u (/var/log/)messages:

Jan 28 20:10:11 hazchem named[10147]: No root nameserver for class IN

i s tim mogu živjeti.

To svakako radi za mene. Mogu koristiti imenski server za
lokalne strojeve dok sam van mreže bez timeout zastoja za
vanjska imena domena, a dok sam na mreži, upiti za vanjske
domene rade normalno.

</verb></tscreen>

<p>Peter Denison je pak mislio da Ian ne ide dovoljno daleko. On piše:

<tscreen><verb>
Kada sam spojen)   serviraj sve cacheirane unose (i one s lokalne mreže) odmah
		   za ne-cacheirane unose, i proslijedi imenskom serveru mog
		   ISPa
Kada nisam spojen) serviraj sve upite za lokalnu mrežu odmah
		   odustani od svih ostalih upita **odmah**

Kombinacija mijenjanja root cache datoteke i prosljeđivanja upita ne radi.

Zato sam podesio (nakon nešto rasprave o ovome u obližnjem LUG-u) dva nameda
ovako:

named-online:	proslijeđuje ISP-ovom imenskom serveru
		master za localnet zonu
		master za localnet obrnutu zonu (1.168.192.in-addr.arpa)
		master za 0.0.127.in-addr.arpa
		sluša na portu 60053

named-offline:	ne proslijeđuje
		"lažna" root cache datoteka
		slave za 3 lokalne zone (master je 127.0.0.1:60053)
		sluša na portu 61053

I kombinirao ih s proslijeđivanjem portova, da se port 53 šalje na 61053
kada nisam na vezi, i na port 60053 kada sam na vezi. (Koristim novi
netfilter paket pod 2.3.18, ali i stari (ipchains) mehanizam bi trebao
raditi.)

Primijeti da ovo neće baš odmah raditi, jer postoji sitan bug u BIND 8.2,
kojeg sam prijavio razvijateljima, a koji sprečava slave da ima mastera na
istoj IP adresi (pa i ako je port drugi). Zakrpa je trivijalna, i brzo bi se
trebala uključiti, nadam se.
</verb></tscreen>

  <item>Također sam dobio informaciju kako bind radi interaktivno s NFS-om i
  portmapper-om na većinom offline stroju, od Karl-Maxa Wangera:

<tscreen><verb>

Ja obično pokrećem svoj named na svim svojim strojevima koji se tek
povremeno vezuju na Internet modemom. Imenski server služi samo kao cache,
nema svoju domenu i sve provjerava kod imenskih servera u root.cache
datoteci. Kao što je to uobičajeno kod Slackwarea, starta se prije nfsd-a i
mountd-a.

Na jednom mom stroju (Libretto 30 prijenosnik) imao sam problem takav da sam
ga nekad mogao mapirati s drugog stroja na lokalnom LAN-u, ali većinu
vremena to nije radilo. Isto se događalo neovisno da li sam koristio PLIP,
PCMCIA ethernet karticu ili PPP preko serijske veze.

Nakon nekog vremena nagađanja i eksperimentiranja shvatio sam izgleda da je
named brljao s procesom registracije nfsd-a i mountd-a koji oni moraju proći
s portmapperom na dizanju sustava (startam te demone pri dizanju kao i
obično). Startanje named-a nakon nfsd-a i mountd-a potpuno je uklonilo ovaj
problem.

Kako ne treba očekivati bilo kakve probleme pri takvoj izmijenjenoj sekvenci
dizanja sustava, preporučio bih svima da to naprave na taj način i spriječe
mogući problem.
</verb></tscreen>

<item>I na kraju, postoje HOWTO informacije o ovome kod <url name="Ask
Mr. DNS na" url="http://www.acmebw.com/askmrdns/#linux-dialup">. Radi se o
o BIND-u 4, doduše, pa ćete morati prilagoditi ono što on kaže na BIND 8.

</itemize>

  <item>Gdje caching only imenski server drži svoj cache? Postoji li način
  da kontroliram veličinu cachea?

  <p>Kompletan se cache drži u memoriji, i nikad se ne zapisuje na disk. 
  Svaki put kad ubiješ named, cache se gubi. Cache se nikako <em/ne može/
  kontrolirati. <tt/named/ ga nadgleda prema nekim jednostavnim pravilima i
  to je to. Ne možeš kontrolirati cache niti njegovu veličinu ni iz kojeg
  razloga. Ako to želiš, možeš to ``popraviti'' hackirajući named. Ipak, ovo
  nije preporučeno.

  <item>Da li named čuva cache između restarta? Mogu li ga natjerati da ga
  sačuva?

  <p>Ne, <tt/named/ <em/ne/ sačuva cache kada umre. To znači da se cache
  mora ponovo graditi svaki put kada ubiješ i restartaš <tt/named/. 
  <em/Nema/ načina da natjeraš named da sačuva cache u datoteku. Ako želiš,
  možeš to ``popraviti'' hackirajući named. Ipak, ovo nije preporučeno.

  <item>Kako mogu dobiti domenu? Želim podesiti svoju domenu koja će se
  zvati (naprimjer) <tt/linux-rules.net/. Kako da se domena koju želim
  dodijeli meni?

  <p>Molim te kontaktiraj svog pružatelja mrežnih usluga. Oni će ti moći
  pomoći s ovim. Molim primijetiti da u većini svijeta moraš platiti kako bi
  dobio domenu.

  <item>Kako mogu osigurati svoj DNS server? Kako da podesim podijeljeni DNS?

  <p>Oba ova pitanja su napredne teme. Obje su pokrivene u
  <url url="http://www.etherboy.com/dns/chrootdns.html">.  Neću ih dalje
  objašnjavati ovdje.

</enum>


<sect>Kako postati veći DNS admin.<label id="bigger">

<p><bf/Dokumentacija i alati./

<p>Prava Dokumentacija postoji. Na mreži i tiskana. Čitanje nekoliko knjiga
je potrebno da od malog DNS admina postaneš veliki admin. Od tiskanih
izdanja ja sam napisao <em/The ConciseGuide to DNS and BIND/, Nicolai
Langfeldt, objavio Que (ISDN0-7897-2273-9). Knjiga je slična ovom KAKO-u.
Samo ima više detalja, i puno više svega. Ali, standardna knjiga je <em/DNS
and BIND/, C. Liu i P. Albitz, izdaje O'Reilly &amp; Associates, (ISBN
0-937175-82-X). Također je odlična, mada opisuje BIND 4, to i nije neki
problem. Postoji i poglavlje o DNS-u u <em>TCP/IP Network
Administration</em>, Craig Hunt, izdaje O'Reilly (ISBN 0-937175-82-X). Još
jedan `must' za dobru DNS administraciju (ili bilo što dobro, kad smo kod
tog) je <em/Zen and the Art of Motorcycle Maintenance/, Robert M. Pirsig
:-) Dostupna kao ISBN 0688052304 i drugi.

<p>Na mreži ćeš naći stvari na <url url="http://www.dns.net/dnsrd/"> (DNS
Resources Directory), <url url="http://www.isc.org/bind.html">; <em/FAQ/,
referentne upute (<em/BOG/; <em/Bind Operations Guide/) kao i papiri i
definicije protokola i DNS hackovi (ovi, i većina, ako ne i svi, od RFC-ova
navedenih dolje, su distribuirani sa samim BIND-om). Nisam pročitao većinu
ovih, pa ipak, ni ja nisam veliki DNS admin. Arnt Gulbrandsen, s druge
strane, je pročitao <em/BOG/ i on je ushićen zbog toga :-). USENET grupa
<url url="news:comp.protocols.tcp-ip.domains"> je o DNS-u. Također postoji i
veliki broj RFC-ova o DNSu, a najvažniji su navjerojatnije ovi:

<descrip>

  <tag/RFC 2052/ A. Gulbrandsen, P. Vixie, <em/A DNS RR for specifying
  the location of services (DNS SRV)/, October 1996

  <tag/RFC 1918/ Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de Groot,
  E. Lear, <em/Address Allocation for Private Internets/, 02/29/1996.

  <tag/RFC 1912/ D. Barr, <em/Common DNS Operational and Configuration
  Errors/, 02/28/1996.

  <tag/RFC 1912 Errors/ B. Barr <em/Errors in RFC 1912/, this is available
  at <url url="http://www.cis.ohio-state.edu/~barr/rfc1912-errors.html">

  <tag/RFC 1713/ A. Romao, <em/Tools for DNS debugging/, 11/03/1994.

  <tag/RFC 1712/ C. Farrell, M. Schulze, S. Pleitner, D. Baldoni,
  <em/DNS Encoding of Geographical Location/, 11/01/1994.

  <tag/RFC 1183/ R. Ullmann, P. Mockapetris, L. Mamakos, C. Everhart,
  <em/New DNS RR Definitions/, 10/08/1990.

  <tag/RFC 1035/ P. Mockapetris, <em/Domain names - implementation and
  specification/, 11/01/1987.

  <tag/RFC 1034/ P. Mockapetris, <em/Domain names - concepts and
  facilities/, 11/01/1987.

  <tag/RFC 1033/ M. Lottor, <em/Domain administrators operations
  guide/, 11/01/1987.

  <tag/RFC 1032/ M. Stahl, <em/Domain administrators guide/,
  11/01/1987.

  <tag/RFC 974/ C. Partridge, <em/Mail routing and the domain system/,
  01/01/1986.

</descrip>
</article>
