DNS KAKO
Nicolai Langfeldt, janl@math.uio.no; preveo Josip Rodin,
jrodin@jagor.srce.hr
inacica 1.1, 20. srpnja 1999. (u originalu verzija 2.0.8)
KAKO postati mali DNS administrator.
______________________________________________________________________
Sadrzaj
1. Uvod
1.1 Pravne stvari
1.2 Zasluge i poziv za pomoc
1.3 Posveta
2. Upoznavanje.
3. Caching only imenski server
3.1 Startanje named-a
4. Jednostavna domena.
4.1 Ali prvo malo suhe teorije
4.2 Nasa domena.
4.3 Obrnuta zona.
5. Primjer prave domene
5.1 /etc/named.conf (ili /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. Odrzavanje.
7. Prebacivanje s verzije 4 na verziju 8
8. Pitanja i Odgovori
9. Kako postati veci DNS admin.
______________________________________________________________________
11.. UUvvoodd
Kljucne rijeci: DNS, bind, bind-4, bind-8, named, dialup, ppp, slip,
isdn, Internet, domain, name, hosts, resolving
11..11.. PPrraavvnnee ssttvvaarrii
(C)opyright 1995 Nicolai Langfeldt. Do not modify without amending
copyright, distribute freely but retain copyright message.
Hrvatski prijevod (c)opyright by Josip Rodin, slobodno za
distribuciju.
11..22.. ZZaasslluuggee ii ppoozziivv zzaa ppoommoocc
Zelio bih zahvaliti Arntu Gulbrandsenu koji je citao nedovrsene
dijelove ovoga nebrojeno puta i dao puno korisnih prijedloga. Takoder
bih zelio zahvaliti ljudima koji su e-mailali prijedloge i biljeske.
Ovo nikada nece biti zavrsen dokument, molim vas saljite mi e-mail o
vasim problemima i uspjesima, to moze poboljsati HOWTO. Dakle, molim
vas, saljite novac, komentare i/ili pitanja na janl@math.uio.no. Ako
posaljete e-mail i zelite odgovor, molim vas da provjerite je li
povratna adresa ispravna i da radi. Takoder, molim vas, procitajte
``PiO'' poglavlje prije nego mi e-mailate.
Ako zelis 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.
11..33.. PPoossvveettaa
Ovaj HOWTO je posvecen Anne Line Norheim Langfeldt. Mada ga ona
vjerojatno nikada nece procitati jer ona nije takav tip djevojke.
22.. UUppoozznnaavvaannjjee..
SSttoo oovvoo jjee,, aa ssttoo nniijjee..
Za pocetnike, DNS znaci _D_o_m_a_i_n _N_a_m_e _S_y_s_t_e_m -- sustav imenovanja
domena. DNS pretvara imena strojeva u IP brojeve koji su svi adrese
strojeva i mapira iz imena u adresu i iz adrese u ime. Ovaj KAKO
dokumentira kako definirati takva mapiranja koristeci Linux sustav.
Mapiranje je jednostavno povezivanje dviju stvari, u ovom slucaju
imena stroja, kao ftp.linux.org, i IP adrese stroja, kao
199.249.150.4.
DNS je, neupoznatom (tebi ;-), jedno od mracnih podrucja
administriranja mreze. Ovaj KAKO ce pokusati uciniti neke stvari
jasnijima. On opisuje kako podesiti jednostavan DNS server. Pocet cemo
sa caching only serverom da bi dosli do podesavanja primarnog DNS
imenskog servera za domenu. Za kompleksnije postavke mozes pogledati
``PiO'' poglavlje ovog dokumenta. Ako to nije opisano tamo trebat ces
procitati Pravu Dokumentaciju. Sto je i od cega se sastoji Prava
Dokumentacija bit ce objasnjeno u ``zadnjem poglavlju''.
Prije nego pocnes s ovim, trebao bi konfigurirati svoj stroj tako da
se mozes telnetirati na i s njega, i uspjesno uspostaviti sve vrste
veza na mrezu, i posebno bi trebao moci se telnetirati na 127.0.0.1 i
time doci na svoj stroj (probaj sad!). Na pocetku takoder trebas
ispravan /etc/nsswitch.conf (ili /etc/host.conf), /etc/resolv.conf i
/etc/hosts datoteku, jer njihovu funkciju ovdje necu objasniti. Ako
ovo vec nemas podeseno i u radu, _N_E_T_-_3 i _P_P_P_-_H_O_W_T_O objasnjavaju kako
to podesiti. Procitaj ih.
Kada kazem 'tvoj stroj', mislim na stroj na kojem pokusavas podesiti
DNS. Ne na niti jedan drugi stroj koji imas, a koji je ukljucen u
tvoje mrezne napore.
Pretpostavit cu da nisi iza bilo kakvog firewalla koji blokira upite o
imenima. Ako jesi, trebat ces posebnu konfiguraciju, i pogledaj
poglavlje ``PiO''.
Opsluzivanje imenima na Unixu je omoguceno programom zvanim named. On
je dio bind paketa kojim koordinira Paul Vixie uime Internet Software
Consortium-a. named je ukljucen u vecinu Linux distribucija i obicno
je instaliran kao /usr/sbin/named. Ako imas named, vjerojatno ga mozes
i koristiti; ako ga nemas, nabavi ga binarnog sa Linux FTP lokacije,
ili nadi najnoviji i najbolji izvorni kod sa
ftp.isc.org:/isc/bind/src/cur/bind-8/. Ovaj KAKO govori o verziji 8.
Stara verzija ovog HOWTO-a, o verziji 4, je jos uvijek dostupna na
u slucaju da koristis bind 4
(nazalost, KAKO za verziju 4 ne postoji :( op. prev.). Ako named-ova
man stranica govori o named.conf, imas bind 8, a ako govori o datoteci
named.boot, imas bind 4. Ako imas 4 i brines o sigurnosti, stvarno bi
trebao nadograditi na noviju 8-icu.
DNS je baza podataka cijele mreze. Pazi sto ces staviti u nju. Ako
stavis smece u nju, ti i drugi cete dobiti smece iz nje. Odrzavaj svoj
DNS urednim i dosljednim i dobro ce te sluziti. Nauci ga koristiti,
administrirati, ispravljati greske i bit ces jos jedan dobar
administrator koji cuva mrezu od padanja na koljena, pretrpanu zbog
krivog upravljanja.
U ovom dokumentu navest cu sigurno nekoliko stvari koje nisu sasvim
istinite (one su makar polovicno istinite ipak). To je sve u interesu
jednostavnosti. Stvari ce (vjerojatno ;-) raditi ako budes vjerovao
onom sto cu reci.
NNaappoommeennaa:: pravi rezervne (backup) kopije svih datoteka koje ti nalozim
da promijenis ako ih vec imas, tako da ako nista ne bude radilo nakon
ovoga, mozes sve vratiti u staro, radno stanje.
33.. CCaacchhiinngg oonnllyy iimmeennsskkii sseerrvveerr
PPrrvvaa ssttaavvkkaa DDNNSS kkoonnffiigguurraacciijjee,, vvrrlloo kkoorriissnnaa kkoorriissnniicciimmaa kkoojjii ssee
ssppaajjaajjuu mmooddeemmsskkiimm bbiirraannjjeemm pprroovviiddeerraa..
Caching only imenski server ce naci odgovor na upite o imenima i
zapamtiti odgovor sljedeci put kad ga budes trebao. Ovo ce znatno
skratiti vrijeme cekanja sljedeci put, posebno ako si na sporoj vezi.
Prvo ces trebati datoteku zvanu /etc/named.conf. Ona je procitana kad
se pokrece named. Za sada ona treba sadrzavati samo ovo:
______________________________________________________________________
// Konfiguracijska datoteka za caching only imenski server
options {
directory "/var/named";
// Odkomentiravanje ovoga moze pomoci ako moras proci kroz
// firewall, a stvari bas 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";
};
______________________________________________________________________
Linija 'directory' govori namedu gdje da potrazi datoteke. Sve
datoteke nazvane slicno ce biti relativne ovome. Takoder, pz je
direktorij ispod /var/named, npr. /var/named/pz. /var/named je pravi
direktorij prema _L_i_n_u_x _F_i_l_e _S_y_s_t_e_m _s_t_a_n_d_a_r_d_u.
Datoteka zvana /var/named/root.hints se spominje ovdje. Ona treba
sadrzavati ovo:
______________________________________________________________________
. 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
______________________________________________________________________
Ova datoteka opisuje korijenske imenske servere u svijetu. Oni se
mijenjaju s vremenom i lista se mora odrzavati. Pogledaj poglavlje
``Odrzavanje.'' za upute kako ih osvjezavati.
Sljedeci odjeljak u named.conf datoteci je opis zone. Objasnit cu
njenu upotrebu u kasnijim poglavljima, zasad samo napravite datoteku
zvanu 127.0.0 sljedeceg sadrzaja, u poddirektoriju pz:
______________________________________________________________________
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
1 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D) ; Minimum TTL
NS ns.linux.bogus.
1 PTR localhost.
______________________________________________________________________
Dalje, trebat ces /etc/resolv.conf koji ce izgledati slicno ovome:
______________________________________________________________________
search poddomena.tvoja-domena.hr tvoja-domena.hr
nameserver 127.0.0.1
______________________________________________________________________
Linija `search' odreduje koje ce se domene pretrazivati za neki host
na kojeg se zelis spojiti. Linija `nameserver' odreduje adresu na
kojoj je imenski server, u ovom slucaju tvoj stroj jer je to adresa na
kojoj radi named (127.0.0.1 je prava, i ako tvoj stroj ima i neku
drugu adresu). Ako zelis vise imenskih servera, stavi `nameserver'
liniju za svaki. (Napomena: named nikada ne cita ovu datoteku, to
radi resolver koji koristi named.)
Da ilustriram sto ova datoteka radi: ako klijent stroj pokusa odrediti
adresu za bla, tada se prvo probava adresa bla.poddomena.tvoja-
domena.hr, pa bla.tvoja-domena.hr, i posljednja bla. Ako klijent stroj
pokusa odrediti adresu za hlapic.srce.hr,
hlapic.srce.hr.poddomena.tvoja-domena.hr se pokusa prvo, pa
hlapic.srce.hr.tvoja-domena.hr, i na kraju hlapic.srce.hr. Ne bi
trebao staviti puno domena u search liniju, jer treba vremena dok se
sve pretraze.
Ovaj primjer pretpostavlja da si ti u domeni poddomena.tvoja-
domena.hr, a tvoj stroj se vjerojatno zove tvoj-stroj.poddomena.tvoja-
domena.hr. Search linija ne bi trebala sadrzavati tvoju TLD/ND (_T_o_p
_L_e_v_e_l _D_o_m_a_i_n, _N_a_j_v_i_s_a _D_o_m_e_n_a, `hr' u ovom slucaju). Ako se cesto
trebas spajati na strojeve u drugoj domeni, mozes tu domenu dodati u
search liniju ovako:
______________________________________________________________________
search poddomena.tvoja-domena.hr tvoja-domena.hr neka-domena.hr
______________________________________________________________________
i tako dalje. Ocito je da trebas staviti prava imena domena umjesto
ovih primjera. Uoci da nema tocke na krajevima imena domena.
Dalje, ovisno o verziji tvog libc-a ili trebas popraviti
/etc/nsswitch.conf ili /etc/host.conf. Ako vec imas
/etc/nsswitch.conf, to je ono sto cemo popraviti, ako ne, popravit
cemo host.conf.
_/_e_t_c_/_n_s_s_w_i_t_c_h_._c_o_n_f
Ovo je duga datoteka koja odreduje gdje dobiti razlicite vrste
podataka, iz koje datoteke ili baze. Obicno sadrzi pomocne komentare
pri vrhu, koje bi trebao procitati, sada. Nakon toga nadi liniju koja
pocinje sa `hosts:', i ona bi trebala biti ovakva:
______________________________________________________________________
hosts: files dns
______________________________________________________________________
Ako ne postoji linija koja pocinje s `hosts:', onda umetni onu gornju.
Ona govori da programi prvo trebaju pogledati u /etc/hosts datoteku, i
onda provjeriti kod DNS-a prema resolv.conf-u.
_/_e_t_c_/_h_o_s_t_._c_o_n_f
Ona vjerojatno sadrzi puno linija, od kojih jedna pocinje sa 'order' i
treba izgledati ovako:
______________________________________________________________________
order hosts,bind
______________________________________________________________________
Ukoliko ne postoji `order' linija, trebas ubaciti takvu. Ona govori da
rutine za odredivanje imena strojeva prvo gledaju u /etc/hosts, onda
pitaju imenski server (za kog si rekao u resolv.conf-u da je
127.0.0.1). Ove dvije posljednje datoteke su dokumentirane u _r_e_s_o_l_v(8)
man stranici (ucini `man 8 resolv') u vecini Linux distribucija. Ta
man stranica je IMHO citljiva, i svi, pogotovo DNS administratori, bi
je trebali procitati. Ucini to sada, jer ako kazes "napravit cu to
kasnije" nikad se neces vratiti i uciniti to.
33..11.. SSttaarrttaannjjee nnaammeedd--aa
Nakon svega, vrijeme je da startamo named. Ako modemski biras
providera, prvo se spoji. Otipkaj `ndc start', i pritisni enter, bez
opcija. Ako to ne uspije, probaj `/usr/sbin/ndc start'. Ako ni to ne
uspije, procitaj poglavlje ``PiO''. Sada mozes testirati svoje
postavke. Ako pogledas svoju datoteku sa syslog porukama (obicno se
zove /var/adm/messages, drugi direktorij moze biti /var/log, a druga
datoteka syslog) dok startas named (ucini `tail -f /var/log/messages')
trebao bi vidjeti nesto kao ovo:
(linije koje zavrsavaju sa \ nastavljaju se u sljedecem retku)
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.
Ako je bilo ikakvih poruka o greskama, mora da je doslo do greske.
named ce imenovati datoteku u kojoj je (ili named.conf ili root.hints
nadam se :-). Ubij (kill) named, vrati se i provjeri datoteku.
Sada je vrijeme da startamo nslookup da pregledamo tvojih ruku djelo.
$ nslookup
Default Server: localhost
Address: 127.0.0.1
>
Ako je to sve sto dobijes, onda radi. Nadajmo se. Ako nije, vrati se i
provjeri sve. Svaki put kad promijenis named.conf datoteku, moras
ponovo startati named koristeci `ndc restart' naredbu.
Sada mozes postaviti upit. Probaj pogledati ime stroja koji ti je
blizu. jagor.srce.hr je meni blizu, na SRCE-u:
> jagor.srce.hr
Server: localhost
Address: 127.0.0.1
Name: jagor.srce.hr
Address: 161.53.2.130
nslookup je sada upitao tvoj named da potrazi stroj jagor.srce.hr. On
se onda spojio na jedan od imenskih servera navedenih u tvojoj
root.hints datoteci, i upitao za put od tamo. Mozda ce trebati malo
vremena dok ne dobijes rezultat posto on pretrazuje sve domene koje si
naveo u /etc/resolv.conf datoteci.
Ako upitas isto to ponovo, dobit ces ovo:
> jagor.srce.hr
Server: localhost
Address: 127.0.0.1
Non-authoritative answer:
Name: jagor.srce.hr
Address: 161.53.2.130
Primijeti liniju `Non-authoritative answer:' koju smo ovaj put dobili.
To znaci da named ovaj put nije otisao traziti po mrezi, vec je
pogledao u svoj cache i nasao ga tamo. Ali informacija u cache-u moze
biti zastarjela (_s_t_a_l_e). Tako da znas za ovu (vrlo malu) opasnost kada
dobijes `Non-authoritative answer:'. Kada nslookup kaze ovo drugi put
kada ti upitas za stroj, to je siguran znak da named cache-ira
informaciju i to radi. Iz nslookup-a izlazis dajuci naredbu `exit'.
Sada znas kako podesiti caching named. Popij pivo, mlijeko, ili sto
vec volis da to proslavis.
44.. JJeeddnnoossttaavvnnaa ddoommeennaa..
KKaakkoo ppooddeessiittii vvllaassttiittuu ddoommeennuu..
44..11.. AAllii pprrvvoo mmaalloo ssuuhhee tteeoorriijjee
Prije nego sto zapravo pocnemo ovo poglavlje, reci cu ti malo o
teoriji rada DNS-a. I ti ces to procitati jer je to dobro za tebe. Ako
ti se `ne da', ipak bi trebao nabrzinu prolistati. Prestani listati
kada dodes do dijela gdje se opisuje named.conf datoteka.
DNS je hijerarhijski sustav. Vrh se pise `.' i cita `kkoorriijjeenn'. Ispod .
su mnoge TToopp LLeevveell DDoommaaiinnss / NNaajjvviissee DDoommeennee, a najpoznatije su ORG,
COM, EDU i NET, ali postoje mnoge druge (HR, BA, SI, op.prev.).
Kada trazi stroj, upit prolazi rekurzivno kroz hijerarhiju pocevsi od
vrha. Ako zelis saznati adresu stroja prep.ai.mit.edu, tvoj imenski
server mora naci imenski server koji posluzuje edu. On pita . server
(. serveri su mu vec poznati, za to sluzi root.hints datoteka), a .
server daje listu edu servera:
$ nslookup
Default Server: localhost
Address: 127.0.0.1
Pocnimo pitati korijenski server:
> server c.root-servers.net.
Default Server: c.root-servers.net
Address: 192.33.4.12
Podesi tip upita (Query type) na NS (_n_a_m_e _s_e_r_v_e_r _r_e_c_o_r_d_s - podaci o
imenskim serverima):
> set q=ns
Pitaj o edu:
> edu.
Zadnja . ovdje je vazna, ona govori serveru da trazimo edu koji je bas
ispod . (ovo nesto suzuje potragu).
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
Ovo nam govori da *.root-servers.net posluzuje edu., tako da mozemo
nastaviti pitati c.root-servers.net. Sada zelimo znati tko posluzuje
sljedeci nivo imena 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 i bitsy posluzuju mit, odaberi jednog i pitaj o
ai.mit.edu:
> server W20NS.mit.edu.
Imena strojeva nisu ovisna o malim i velikim slovima, ali ja koristim
svoj mis za cut&paste, tako da se imena iskopiraju tocno kakva jesu na
ekranu.
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
Dakle muesli.ai.mit.edu je imenski server za ai.mit.edu:
> server MUESLI.AI.MIT.EDU
Default Server: MUESLI.AI.MIT.EDU
Address: 128.52.39.7
Sada cu promijeniti tip upita, kada smo nasli imenski server pa cemo
ga pitati sve sto on zna 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 pocevsi od . uspjesno nasli imenske servere za sljedeci nivo
imena domene. Ako si koristio svoj DNS server umjesto ostalih, tvoj
named bi naravno cache-irao sve informacije koje bi 'iskopao' za tebe,
i ne bi to trebao pitati ponovo neko vrijeme.
Domena o kojoj se puno manje govori, ali jednako vazna domena je in-
addr.arpa. Ona se takoder dijeli kao i `normalne' domene. in-
addr.arpa nam dopusta da dobijemo ime stroja bez da imamo njegovu
adresu. Vazna stvar kod ovoga je da primijetis da su IP-evi zapisani
obrnutim redosljedom u in-addr.arpa. domeni. Ako imas adresu stroja:
161.53.3.7, named je trazi bas kao dns.srce.hr: trazi arpa. servere.
Trazi u in-addr.arpa. serverima. Trazi 161.in-addr.arpa. servere.
Trazi 53.161.in-addr.arpa. Trazi 3.53.161.in-addr.arpa. servere.
Trazi potrebne podatke o 7.3.53.161.in-addr.arpa. serveru. Pametno,
ha? (Reci `da'.) Obrtanje brojeva moze biti zbunjujuce prve dvije
godine, ipak.
Upravo sam izrekao laz. DNS ne radi doslovno nacinom kojim sam to
upravo objasnio. Ali je dovoljno slicno.
44..22.. NNaassaa ddoommeennaa..
Sada cemo definirati nasu domenu. Napravit cemo domenu linux.bogus i
definirati strojeve u njoj. Koristim totalno neispravno ime domene
(ali s tocnom sintaksom) da ne bi smetali nikoga Tamo Vani.
Jos jedna stvar prije nego pocnemo: nisu svi znakovi dozvoljeni u
imenima strojeva. Ograniceni smo na slova engleske abecede: a-z, i
brojevi 0-9 i znak `-' (crta). Drzi se tih znakova. Velika i mala
slova su ista DNS-u, tako da su dns.srce.hr i DNS.SRCE.Hr isto.
Vec smo zapoceli ovaj dio sa ovom linijom u datoteci named.conf:
zone "0.0.127.in-addr.arpa" {
type master;
file "pz/127.0.0";
};
Primijeti manjak znaka `.' na kraju imena domena u ovoj datoteci. Ovo
govori da cemo sada definirati zonu 0.0.127.in-addr.arpa, tako da smo
glavni (_m_a_s_t_e_r) server za nju i da je ona pohranjena u datoteci
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
1 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D) ; Minimum TTL
NS ns.linux.bogus.
1 PTR localhost.
Primijeti znak `.' na kraju svih punih imena domena u ovoj datoteci,
nasuprot gornjoj datoteci named.conf. Neki ljudi vole zapoceti svaku
datoteku zone sa $ORIGIN direktivom, ali to je visak. Porijeklo
(mjesto iz DNS hijerarhije gdje pripada) datoteke zone je odredeno u
'zone' sekciji named.conf datoteke, u ovom slucaju to je 0.0.127.in-
addr.arpa.
Ova `ddaattootteekkaa zzoonnee' sadrzi 3 `zzaappiissaa oo rreessuurrssuu' (_r_e_s_o_u_r_c_e _r_e_c_o_r_d, RR):
SOA RR, NS RR, i PTR RR. SOA je skracenica od _S_t_a_r_t _O_f _A_u_t_h_o_r_i_t_y
(pocetak nadleznosti). Znak `@' je posebna oznaka koja znaci
porijeklo, i zato sto `domain' kolona za ovu datoteku kaze 0.0.127.in-
addr.arpa, prva linija zapravo znaci:
0.0.127.in-addr.arpa. IN SOA ...
NS je NNaammee SSeerrvveerr RRRR (imenski server). Nema znaka `@' na pocetku ove
linije, ovo se namece jer je zadnja linija zapocela sa `@'. To nas
stedi od tipkanja. Tako da NS linija zapravo znaci:
0.0.127.in-addr.arpa. IN NS ns.linux.bogus
Ona govori DNS-u koji stroj je imenski server domene 0.0.127.in-
addr.arpa, a to je ns.linux.bogus. 'ns' je suglasno ime za imenske
servere, ali kako se web serveri koji se suglasno zovu www.nesto, to
ime moze biti bilo sto.
I konacno, PTR zapis govori da stroj na adresi 1 u podmrezi
0.0.127.in-addr.arpa. odn. 127.0.0.1 se zove localhost.
SOA zapis je uvod u svaku datoteku zone, i treba biti tocno jedan
takav zapis u svakoj datoteci zone, prvi zapis. On opisuje zonu,
odakle dolazi (stroj zvan ns.linux.bogus), tko je odgovoran za njen
sadrzaj (hostmaster@linux.bogus), 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 KAKO-u i trebao bi
biti siguran.
Sada restartaj svoj named (naredba je 'ndc restart') i upotrijebi
nslookup da pregledas sto si napravio:
$ 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
Dakle on uspijeva dobiti ime localhost iz adrese 127.0.0.1, dobro.
Sada za nas glavni zadatak, domenu linux.bogus, ubaci novi 'zone'
odjeljak u named.conf-u:
______________________________________________________________________
zone "linux.bogus" {
notify no;
type master;
file "pz/linux.bogus";
};
______________________________________________________________________
Primijeti nastavljeni nedostatak krajnjeg `.' na imenu domene u
datoteci named.conf.
U datoteci zone linux.bogus stavit cemo neke totalno neispravne
podatke (ali s tocnom sintaksom):
______________________________________________________________________
;
; Datoteka zone za domenu linux.bogus
;
; Puna datoteka zone
;
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial, danasnji datum + danasnja revizija
8H ; refresh, sekundi
2H ; retry, sekundi
1W ; 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
______________________________________________________________________
Dvije stvari se moraju zapaziti kod SOA zapisa. ns.linux.bogus mora
biti pravi stroj sa A zapisom (_A_d_d_r_e_s_s=adresa, op.prev.). Nije
ispravno imati CNAME (_C_a_n_o_n_i_c_a_l _N_A_M_E=regularno ime, op.prev.) zapis za
stroj koji se navede u SOA zapisu. Njegovo ime ne mora biti `ns', moze
biti bilo koje ispravno ime stroja. Dalje, hostmaster.linux.bogus
treba biti procitano kao hostmaster@linux.bogus, ovo treba biti mail
alias (drugo ime e-maila), ili mailbox (e-mail 'sanducic'), gdje
osoba(e) koja odrzava DNS redovno cita postu. Bilo kakav e-mail koji
se tice domene bit ce poslan na adresu navedenu ovdje. Ime ne mora
biti `hostmaster', moze biti bilo kakva ispravna e-mail adresa, ali e-
mail adresa `hostmaster' se ocekuje da ce takoder raditi.
Postoji jedan novi zapis o resursu (RR) u ovoj datoteci, MMXX zzaappiiss, ili
_M_a_i_l _e_X_c_h_a_n_g_e_r _R_R (zapis o resursu razmjenitelja poste). On govori
sustavima za postu gdje slati postu koja je adresirana na
netko@linux.bogus, ustvari na mail.linux.bogus ili mail.friend.bogus.
Broj ispred imena svakog stroja je prioritet tog MX RR-a. RR s
najmanjim brojem (ovdje 10) je onaj kome ce se e-mail slati prvom. Ako
njemu ne uspije, posta ce biti poslana onome s prvim vecim brojem,
sekundarnim strojem za postu, npr. mail.friend.bogus koji ovdje ima
prioritet 20.
Restartaj named pokrecuci 'ndc restart'. Pregledaj rezultate sa
nslookup-om:
$ nslookup
> set q=any
> linux.bogus
Server: localhost
Address: 127.0.0.1
linux.bogus
origin = ns.linux.bogus
mail addr = hostmaster.linux.bogus
serial = 199802151
refresh = 28800 (8 hours)
retry = 7200 (2 hours)
expire = 604800 (7 days)
minimum ttl = 86400 (1 day)
linux.bogus nameserver = ns.linux.bogus
linux.bogus preference = 10, mail exchanger = mail.linux.bogus.linux.bogus
linux.bogus preference = 20, mail exchanger = mail.friend.bogus
linux.bogus nameserver = ns.linux.bogus
ns.linux.bogus internet address = 192.168.196.2
mail.linux.bogus internet address = 192.168.196.4
Nakon pazljivijeg pregleda otkrit ces gresku. Linija:
linux.bogus preference = 10, mail exchanger = mail.linux.bogus.linux.bogus
je neispravna. Ona treba biti:
linux.bogus preference = 10, mail exchanger = mail.linux.bogus
Namjerno sam napravio gresku da bi ti mogao uciti iz nje :-) Gledajuci
u datoteku zone naci cemo liniju:
MX 10 mail.linux.bogus ; primarni Mail eXchanger
kojoj nedostaje tocka. Ili ima 'linux.bogus' viska. Ako ime stroja u
datoteci zone ne zavrsava tockom, porijeklo se dodaje na njen kraj
uzrokujuci dvostruki linux.bogus.linux.bogus. Dakle ili:
______________________________________________________________________
MX 10 mail.linux.bogus. ; primarni Mail eXchanger
______________________________________________________________________
ili:
______________________________________________________________________
MX 10 mail ; primarni Mail eXchanger
______________________________________________________________________
je ispravno. Ja vise volim zadnji oblik, kraci je za tipkanje. Postoje
neki bind znalci koji se ne slazu, a i neki koji se slazu s ovim. U
datoteci zone zapis bi trebao zavrsavati s domenom i tockom, ili bez
icega, u tom slucaju bi se nadopunio porijeklom.
Moram naglasiti da u datoteci named.conf ne smije biti `.' nakon imena
domena. Nemas pojma koliko puta je `.' viska ili manjka 'sredila'
stvari i uzasno zbunila ljude.
Nakon sto sam ovo naglasio, evo nove datoteke zone, sa nekim dodatnim
informacijama:
______________________________________________________________________
;
; Datoteka zone za domenu linux.bogus
;
; Puna datoteka zone
;
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial, danasnji datum + danasnja revizija
8H ; refresh, sekundi
2H ; retry, sekundi
1W ; expire, sekundi
1D ) ; minimum, sekundi
;
TXT "Linux.Bogus, tvoj DNS savjetnik"
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"
______________________________________________________________________
Vise je novih RR-ova ovdje: HHIINNFFOO (_H_o_s_t _I_N_F_O_r_m_a_t_i_o_n=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 `ns' ima Pentium CPU i radi pod Linuxom 2.0. CCNNAAMMEE
(_C_a_n_o_n_i_c_a_l _N_A_M_E) je nacin da date svakom stroju vise imena. Tako je
`www' drugo ime za `ns'.
Koristenje CNAME zapisa je i osporavano. Ali je sigurno postupati po
pravilu da MX, CNAME ili SOA zapis ne smiju nikad upucivati na CNAME
zapis, vec na nesto sa A zapisom, i bilo bi krivo imati:
______________________________________________________________________
bla CNAME www ; NE!
______________________________________________________________________
ali ispravno imati:
______________________________________________________________________
bla CNAME ns ; Da!
______________________________________________________________________
Takoder je sigurno pretpostaviti da CNAME nije ispravno ime stroja za
e-mail adresu: webmaster@www.linux.bogus je neispravna e-mail adresa
prema gornjim postavkama. Mozes ocekivati vrlo mali broj admina Tamo
Vani koji ce primijeniti ovo pravilo i ako ono vrijedi tebi. Nacin
kako izbjeci ovo je koristeci A zapise (i mozda neke druge, kao MX
zapis):
______________________________________________________________________
www A 192.168.196.2
______________________________________________________________________
Velik broj starih bind strucnjaka preporucuje ne koristiti CNAME. Zato
vrlo ozbiljno razmisli o ne koristenju toga.
Ali kako vidis, ovaj KAKO i puno mjesta ne prate to pravilo.
Ucitaj novu bazu podataka pokrecuci 'ndc reload', sto uzrokuje da
named ponovo procita svoje datoteke.
$ nslookup
Default Server: localhost
Address: 127.0.0.1
> ls -d linux.bogus
Ovo znaci da ce se izlistati svi zapisi. To rezultira ovim:
[localhost]
$ORIGIN linux.bogus.
@ 1D IN SOA ns hostmaster (
199802151 ; serial
8H ; refresh
2H ; retry
1W ; expiry
1D ) ; minimum
1D IN NS ns
1D IN NS ns.friend.bogus.
1D IN TXT "Linux.Bogus, tvoj DNS savjetnik"
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
gw 1D IN A 192.168.196.1
1D IN HINFO "Cisco" "IOS"
1D IN TXT "The router"
mail 1D IN A 192.168.196.4
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
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.friend.bogus.
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.friend.bogus.
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.friend.bogus.
1D IN HINFO "Pentium" "Linux 1.2"
@ 1D IN SOA ns hostmaster (
199802151 ; serial
8H ; refresh
2H ; retry
1W ; expiry
1D ) ; minimum
To je dobro. Kako vidis, izgleda vrlo slicno samoj datoteci zone.
Provjerimo sto kaze za samog www-a:
> set q=any
> www.linux.bogus.
Server: localhost
Address: 127.0.0.1
www.linux.bogus canonical name = ns.linux.bogus
linux.bogus nameserver = ns.linux.bogus
linux.bogus nameserver = ns.friend.bogus
ns.linux.bogus internet address = 192.168.196.2
Drugim rijecima, pravo ime za www.linux.bogus je ns.linux.bogus, i
daje ti neke informacije o ns-u takoder, dovoljno da se spojis na
njega da si program.
Sada smo na pola puta.
44..33.. OObbrrnnuuttaa zzoonnaa..
Sada programi mogu prebacivati imena u linux.bogus-u u adrese na koje
se mogu spojiti. Ali takoder je potrebna i obrnuta zona, koja
omogucuje da DNS prebacuje iz adrese u ime. Ovo ime je koristeno kod
mnogih servera raznih vrsta (FTP, IRC, WWW i drugi) da bi odredili da
li ce pricati s tobom ili ne, i ako da, mozda i koliko ce ti
prioriteta pridati. Za puni pristup svim uslugama na Internetu
potrebna je obrnuta zona.
Stavi ovo u named.conf:
______________________________________________________________________
zone "196.168.192.in-addr.arpa" {
notify no;
type master;
file "pz/192.168.196";
};
______________________________________________________________________
Ovo je upravo kako sa 0.0.127.in-addr.arpa, a i sadrzaj je slican:
______________________________________________________________________
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; Serial, danasnji datum + danasnja revizija
8H ; Refresh
2H ; Retry
1W ; 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.
______________________________________________________________________
Sada trebas opet restartati svoj named (ndc restart) i pregledati svoj
rad sa nslookup-om:
> 192.168.196.4
Server: localhost
Address: 127.0.0.1
Name: mail.linux.bogus
Address: 192.168.196.4
tako, izgleda OK, neka izbaci cijelu stvar da i to pregledas:
> ls -d 196.168.192.in-addr.arpa
[localhost]
$ORIGIN 196.168.192.in-addr.arpa.
@ 1D IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial
8H ; refresh
2H ; retry
1W ; expiry
1D ) ; minimum
1D IN NS ns.linux.bogus.
1 1D IN PTR gw.linux.bogus.
2 1D IN PTR ns.linux.bogus.
3 1D IN PTR donald.linux.bogus.
4 1D IN PTR mail.linux.bogus.
5 1D IN PTR ftp.linux.bogus.
@ 1D IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial
8H ; refresh
2H ; retry
1W ; expiry
1D ) ; minimum
Izgleda dobro!
Postoji nekoliko stvari koje bi trebao dodati ovdje. IP brojevi
koristeni gore su uzeti iz jednog od blokova 'privatnih mreza', koji
nisu dopusteni za javnu upotrebu na Internetu. Zato su prikladni i
sigurni kao primjer u ovom KAKO-u. Druga stvar je 'notify no;' linija.
Ona govori namedu da ne obavijesti svoje sekundarne (_s_l_a_v_e=ropske)
servere kada se dogodi promjena u jednoj od datoteka zona. U bindu 8
named moze obavijestiti ostale servere navedene u NS zapisima u
datoteci zone kada je zona promijenjena. Ovo je zgodno za uobicajenu
upotrebu, ali za privatne pokuse sa zonama ova funkcija treba biti
iskljucena, ne zelimo da pokus zagadi Internet, zar ne?
I, naravno, ova domena je stvarno neispravna, kao i sve adrese u njoj.
Za pravi primjer domene iz stvarnosti pogledaj sljedece poglavlje.
55.. PPrriimmjjeerr pprraavvee ddoommeennee
((uu kkoojjeemm cceemmoo ppookkaazzaattii nneekkee pprraavvee ddaattootteekkee zzoonnee))
Korisnici su predlozili da ukljucim pravi primjer radece domene kao i
skolski primjer.
Koristim ovaj primjer sa dozvolom Davida Bullocka iz LAND-5. Ove
datoteke su bile aktualne 24. rujna 1996., i uredivane su da se uklope
u bind-8 ogranicenja i koriste moje nadopune. Tako da ovo sto vidite
ovdje se razlikuje ponesto od onoga sto cete dobiti ako postavite upit
LAND-5-ovim imenskim serverima sada.
55..11.. //eettcc//nnaammeedd..ccoonnff ((iillii //vvaarr//nnaammeedd//nnaammeedd..ccoonnff))
Ovdje nalazimo master zone sekcije za dvije potrebne obrnute zone:
mreza 127.0.0, kao i LAND-5-ova 206.6.177 podmreza. I primary liniju
za LAND-5-ovu forward zonu land-5.com. Takoder primijeti da se umjesto
stavljanja datoteka u direktorij zvan 'pz', kako ja to radim u ovom
KAKO-u, on ih stavlja u direktorij zvan '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";
};
______________________________________________________________________
Ako ovo stavis u svoju named.conf datoteku za igru, MMOOLLIIMM TTEE stavi:
'notify no;' u zone sekcije za dvije land-5 zone, tako da izbjegnemo
nezgode.
55..22.. //vvaarr//nnaammeedd//rroooott..hhiinnttss
Ne zaboravi da je ova datoteka dinamicka, i da je ova navedena ovdje
stara. Bolje ti je da koristis onu napravljenu sada, sa dig-om, kao
sto je to objasnjeno prije.
______________________________________________________________________
; <<>> 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
______________________________________________________________________
55..33.. //vvaarr//nnaammeedd//zzoonnee//112277..00..00
Samo osnove, obavezni SOA zapis, i zapis koji odreduje 127.0.0.1 kao
localhost. Oba su nuzna. Nista vise ne treba biti u ovoj datoteci. Ona
se vjerojatno nikad nece morati mijenjati, osim ako se adresa tvog
imenskog servera ili hostmastera promijeni.
______________________________________________________________________
@ 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.
______________________________________________________________________
55..44.. //vvaarr//nnaammeedd//zzoonnee//llaanndd--55..ccoomm
Ovdje vidimo obavezni SOA zapis, i potrebne NS zapise. Mozemo vidjeti
da on ima sekundarni name server na ns2.psi.net. Ovo je kako treba
biti, uvijek treba imati vanjski site za sekundarni server kao
rezervnu kopiju. Mozemo takoder vidjeti da on ima glavni stroj zvan
land-5 koji se brine o mnogim Internet uslugama, i da je to napravio
sa CNAME-ovima (alternativa je koristenje A zapisa).
Kao sto vidis iz SOA zapisa, datoteka zone dolazi iz land-5.com, osoba
za kontakt je root@land-5.com. 'hostmaster' je jos jedna cesto
koristena adresa za odgovornu osobu. Serijski broj je u suglasnom
ggggmmdd formatu sa danasnjom revizijom dodanom; ovo je vjerojatno
sesta inacica datoteke zone dana 20. rujna 1996.g. Zapamti da se
serijski broj mora monotono povecavati, ovdje je samo jedna brojka za
danasnji serijski broj, tako da nakon 9 uredivanja on mora cekati do
sutra prije nego sto promijeni datoteku ponovo. Razmisli o koristenju
dvije brojke.
______________________________________________________________________
@ IN SOA land-5.com. root.land-5.com. (
199609206 ; serial, danasnji datum + danasnja revizija
8H ; refresh, sekundi
2H ; retry, sekundi
1W ; expire, sekundi
1D ) ; minimum, sekundi
NS land-5.com.
NS ns2.psi.net.
MX 10 land-5.com. ; primarni Mail eXchanger
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
@ TXT "LAND-5 Corporation"
;
; 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
______________________________________________________________________
Ako pregledas land-5 imenski server naci ces da su imena strojeva u
obliku ws_broj. Nakon kasnijih bind 4 verzija named je poceo uvoditi
ogranicenja u znakovima koji se smiju koristiti u imenima strojeva.
Tako da to uopce ne radi sa bind-8, i '_' (podvlaka) se zamjenjuje sa
'-' (crta).
Jos jednu stvar treba primijetiti, a ta je da radne stanice nemaju
individualna imena, vec prefiks popracen sa zadnja dva dijela IP
broja. Koristeci takav sustav mozes znatno pojednostaviti odrzavanje,
ali to moze biti neosobno, i ustvari izvor nezadovoljstva medu tvojim
korisnicima.
Takoder vidimo da je funn.land-5.com alias za land-5.com, ali
koristeci A zapis, ne CNAME zapis.
55..55.. //vvaarr//nnaammeedd//zzoonnee//220066..66..117777
Ovu datoteku cu komentirati nakon nje.
______________________________________________________________________
@ 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.
______________________________________________________________________
Obrnuta zona je dio podesavanja koji izgleda uzrokuje najvise nevolja.
Koristi se da se nade ime stroja ako imas IP broj istog. Primjer: ti
si IRC server i prihvacas veze od IRC klijenata. Ipak, ti si norveski
IRC server tako da zelis prihvatiti veze samo iz Norveske i ostalih
skandinavskih zemalja. Kada uspostavis vezu s klijentom, C library
moze ti reci IP broj drugog stroja zato sto se IP broj klijenta
pojavljuje u svim paketima koji prolaze mrezom. Sada mozes pozvati
funkciju 'gethostbyaddr' koja pogleda ime stroja odredenog IP brojem.
gethostbyaddr ce pitati DNS server, koji ce onda pregledati DNS
trazeci stroj.
Pretpostavimo da se klijent spaja sa adrese 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 naci 200.177.6.206.in-addr.arpa. DNS
server ce prvo naci arpa. servere, pa in-addr.arpa. servere, prateci
obrnuti trag kroz 206, pa 6, i na kraju ce naci server za
177.6.206.in-addr.arpa zonu na land-5. Iz toga ce finalno dobiti
odgovor da za 200.177.6.206.in-addr.arpa imamo 'PTR
ws-177200.land-5.com' zapis, sto znaci da ime koje ide uz
206.6.177.200 jest ws-177200.land-5.com. Kao i objasnjenje kako se
pogleda prep.ai.mit.edu, i ovo je malo fiktivno.
Da se vratimo na primjer IRC servera. IRC server prihvaca samo veze iz
skandinavskih zemalja, odn. *.no, *.se, i *.dk, pa ime
ws-177200.land-5.com ocito ne zadovoljava nijedan uvjet, i server ce
se odbiti povezati. Kad ne bi postojalo reverzno mapiranje IP-a
206.2.177.200 kroz in-addr.arpa zonu, server ne bi nikako mogao naci
ime stroja, i morao bi usporediti 206.2.177.200 sa *.no, *.se, i *.dk,
sto naravno ne bi uspjelo.
Neki ljudi ce ti reci da je reverzno mapiranje vazno samo za servere,
ili nije uopce. Nije tako, jer puno FTP, NNTP (news), IRC pa cak i
neki HTTP (www) serveri nece prihvatiti veze sa strojevima cije ime ne
mogu pronaci. Tako da je reverzno mapiranje za strojeve obavezno.
66.. OOddrrzzaavvaannjjee..
SSaammoo nneekkaa rraaddii..
Jedna je zadaca potrebna za odrzavanje nameda, osim da ih pustas da
rade. To je redovno mijenjanje root.hints datoteke. Najlaksi nacin je
koristenje programa `dig'. Prvo pokreni dig bez parametara, i dobit
ces root.hints svog servera. Onda pitaj jedan od izlistanih
korijenskih servera sa 'dig @rootserver'. Vidjet ces da izlazni podaci
jako slice onima u root.hints datoteci. Sacuvaj ih u datoteku (dig
@e.root-servers.net . ns > root.hints.new) i zamijeni staru root.hints
datoteku s novom (root.hints.new).
Zapamti da treba restartati named nakon promjene cache datoteke.
Al Longyear mi je poslao ovu skriptu koja se moze pokrenuti automatski
da obnovi root.hints, unesena u crontab da se pokrene jednom mjesecno
i zaboravi. Ova skripta pretpostavlja da imas podesen i radeci e-mail,
te da je alias `hostmaster' definiran. Moras je hackirati da je
uskladis sa svojim postavkama. (sacuvati kao izvrsnu datoteku
/etc/cron.monthly/hints.new op.prev.)
______________________________________________________________________
#!/bin/sh
#
# Update the nameserver cache information file once per month.
# This is run automatically by a cron entry.
#
(
echo "To: hostmaster "
echo "From: system "
echo "Subject: Automatic update of the named.conf file"
echo
export PATH=/sbin:/usr/sbin:/bin:/usr/bin:
cd /var/named
dig @rs.internic.net . ns >root.hints.new
echo "The named.conf 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
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
______________________________________________________________________
Neki su mozda vidjeli root.hints datoteku koja je dostupna FTP-om od
InterNIC-a. Molim vas, nneemmoojjttee koristiti FTP da obnovite root.hints,
jer je gornja metoda puno sklonija mrezi.
77.. PPrreebbaacciivvaannjjee ss vveerrzziijjee 44 nnaa vveerrzziijjuu 88
Ovo je originalno bilo poglavlje kako koristiti bind 8 koje je napisao
David E. Smith, dave@bureau42.ml.org. Uredio sam ga da odgovara novom
imenu poglavlja.
Nema puno posla. Osim sto se koristi named.conf umjesto named.boot
datoteke, sve je identicno. I bind8 dolazi sa perl skriptom koja
prevodi stare datoteke u nove. Primjer stare named.boot datoteke za
caching only imenski server:
______________________________________________________________________
directory /var/named
cache . root.hints
primary 0.0.127.IN-ADDR.ARPA 127.0.0.zone
primary localhost localhost.zone
______________________________________________________________________
Ukoliko imas source distribuciju, na komandnoj liniji, u
bind8/src/bin/named direktoriju ces otipkati sljedece: (Ako imas
binarni paket, skripta je vjerojatno tu negdje, ali nisam siguran gdje
op.a.).
./named-bootconf.pl < named.boot > named.conf
I to ce napraviti ovakav 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";
};
______________________________________________________________________
Radi za sve sto moze biti u named.boot datoteci, mada ne dodaje sva
nova unapredenja i konfiguracijske opcije koje dopusta bind8. Evo
kompletnijeg named.conf-a koji radi isto to, samo malo ucinkovitije.
______________________________________________________________________
// 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";
check-names master warn; /* default. */
datasize 20M;
};
zone "localhost" IN {
type master;
file "localhost.zone";
check-names fail;
allow-update { none; };
allow-transfer { any; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "127.0.0.zone";
check-names fail;
allow-update { none; };
allow-transfer { any; };
};
zone "." IN {
type hint;
file "root.hints";
};
______________________________________________________________________
bind8/src/bin/named/test ima ovo, i kopije datoteka zona, koje mnogi
ljudi mogu samo ubaciti i odmah koristiti.
Formati datoteka zona i root.hints datoteke su identicni, kao i
naredbe za njihovo mijenjanje.
88.. PPiittaannjjaa ii OOddggoovvoorrii
Molim te, procitaj ovo poglavlje prije nego mi e-mailas.
1. Moj named trazi datoteku named.boot.
Citas krivi KAKO (HOWTO). Molim pogledati staru verziju ovog HOWTO-
a, koja pokriva bind 4, na .
2. Kako koristiti DNS unutar firewalla?
Par sugestija: `forwarders', `slave', i pogledaj listu literature
na kraju ovog KAKO-a.
3. Kako da ucinim da DNS kruzi kroz dostupne adrese za uslugu, recimo
www.busy.site da dobije load balancing efekt, ili nesto slicno?
Napravi vise A zapisa za www.busy.site i koristi bind 4.9.3 ili
noviji. Tada ce bind srediti odgovore. Nece raditi s ranijim
verzijama binda.
4. Zelim podestiti DNS na (zatvorenom) intranetu. Sto da radim?
Izbaci root.hints datoteku i samo podesi datoteke zone. To takoder
znaci da ne moras nabavljati novu datoteku root.hints cijelo
vrijeme.
5. Kako da podesim sekundarni (slave) imenski server?
Ako primarni/glavni server ima adresu 127.0.0.1, stavi liniju kao
ovu u named.conf datoteku svog sekundarnog servera:
___________________________________________________________________
zone "linux.bogus" {
type slave;
file "sz/linux.bogus";
masters { 127.0.0.1; };
};
___________________________________________________________________
Mozes navesti vise alternativnih master servera zone, unesi ih u
masters listu, odvojene znakom ';' (tocka-zarez).
6. Zelim da bind radi dok sam van mreze.
Postoje dvije stvari vezane za ovo:
· Dobio sam ovaj e-mail od Iana Clarka, ic@deakin.edu.au, gdje on
objasnjava kako to uciniti:
Ja pokrecem named na svom 'masquerading' stroju. Imam dvije
root.hints datoteke, jedna se zove root.hints.real i sadrzi
prava imena korijenskih servera, i druga koja se zove
root.hints.fake koja sadrzi:
----
; root.hints.fake
; this file contains no information
----
Kada odlazim s mreze (off line), kopiram root.hints.fake u
root.hints i restartam named.
Kada idem na mrezu (on line), kopiram root.hints.real u
root.hints i restartam named.
Ovo se radi automatski iz ip-down i ip-up skripti.
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 zivjeti.
To svakako radi za mene. Mogu koristiti imenski server za
lokalne strojeve dok sam van mreze bez timeout zastoja za
vanjska imena domena, a dok sam na mrezi, upiti za vanjske
domene rade normalno.
· Takoder sam dobio informaciju kako bind radi interaktivno s NFS-om
i portmapper-om na vecinom offline stroju, od Karl-Maxa Wangera:
Ja obicno pokrecem svoj named na svim svojim strojevima koji
se tek povremeno vezuju na Internet modemom. Imenski server
sluzi samo kao cache, nema svoju domenu i sve provjerava kod
imenskih servera u root.cache datoteci. Kao sto je to
uobicajeno kod Slackware-a, 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 vecinu vremena to nije radilo. Isto
se dogadalo neovisno da li sam koristio PLIP, PCMCIA
ethernet karticu ili PPP preko serijske veze.
Nakon nekog vremena nagadanja i eksperimentiranja shvatio
sam izgleda da je named brljao s procesom registracije
nfsd-a i mountd-a koji oni moraju proci s portmapperom na
dizanju sustava (startam te demone pri dizanju kao i
obicno). Startanje named-a nakon nfsd-a i mountd-a potpuno
je uklonilo ovaj problem.
Kako ne treba ocekivati bilo kakve probleme pri takvoj
izmijenjenoj sekvenci dizanja sustava, preporucio bih svima
da to naprave na taj nacin i sprijece moguci problem.
7. Gdje caching only imenski server drzi svoj cache? Postoji li nacin
da kontroliram velicinu cachea?
Kompletan se cache drzi u memoriji, i nikad se ne zapisuje na disk.
Svaki put kad ubijes named, cache se gubi. Cache se nikako ne moze
kontrolirati. named ga nadgleda prema nekim jednostavnim pravilima
i to je to. Ne mozes kontrolirati cache niti njegovu velicinu ni iz
kojeg razloga. Ako to zelis, mozes to 'popraviti' hackirajuci
named. Ipak, ovo nije preporuceno.
8. Da li named cuva cache izmedu restarta? Mogu li ga natjerati da ga
sacuva?
Ne, named ne sacuva cache kada umre. To znaci da se cache mora
ponovo graditi svaki put kada ubijes i restartas named. Nema nacina
da natjeras named da sacuva cache u datoteku. Ako to zelis, mozes
to 'popraviti' hackirajuci named. Ipak, ovo nije preporuceno.
99.. KKaakkoo ppoossttaattii vveeccii DDNNSS aaddmmiinn..
DDookkuummeennttaacciijjaa ii aallaattii..
Prava Dokumentacija postoji. Na mrezi i tiskana. Citanje nekoliko
knjiga je potrebno da od malog DNS admina postanes veliki admin. Od
tiskanih izdanja standard je '_D_N_S _a_n_d _B_I_N_D' od C. Liu i P. Albitz,
tiskao O'Reilly & Associates, Sebastopol, CA, ISBN 0-937175-82-X.
Procitao sam je, odlicna je. Postoji i sekcija o DNS-u u '_T_C_P_/_I_P
_N_e_t_w_o_r_k _A_d_m_i_n_i_s_t_r_a_t_i_o_n', Craig Hunt, tiskao O'Reilly..., ISBN
0-937175-82-X. Jos jedan must za dobru DNS administraciju (ili bilo
sto dobro u tom smislu) je '_Z_e_n _a_n_d _t_h_e _A_r_t _o_f _M_o_t_o_r_c_y_c_l_e
_M_a_i_n_t_e_n_a_n_c_e', Robert M. Prising :-), ISBN 0688052304, i drugi.
Na mrezi ces naci stvari na ,
; _F_A_Q, referentne upute (_B_O_G; _B_i_n_d
_O_p_e_r_a_t_i_o_n_s _G_u_i_d_e) kao i papiri i definicije protokola i DNS hackovi
(ovi, i vecina, ako ne i svi, od RFC-ova navedenih dolje, su
distribuirani sa samim bindom). Nisam procitao vecinu ovih, pa ni ja
nisam veliki DNS admin. Arnt Gulbrandsen je procitao _B_O_G i on je u
ekstazi zbog toga :-). USENET grupa comp.protocols.tcp-ip.domains je o
DNS-u. U dodatku, postoji i veliki broj RFC-ova o DNSu, a najvazniji
su navjerojatnije ovi:
RRFFCC 22005522
A. Gulbrandsen, P. Vixie, _A _D_N_S _R_R _f_o_r _s_p_e_c_i_f_y_i_n_g _t_h_e _l_o_c_a_t_i_o_n
_o_f _s_e_r_v_i_c_e_s _(_D_N_S _S_R_V_), October 1996
RRFFCC 11991188
Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de Groot, E. Lear,
_A_d_d_r_e_s_s _A_l_l_o_c_a_t_i_o_n _f_o_r _P_r_i_v_a_t_e _I_n_t_e_r_n_e_t_s, 02/29/1996.
RRFFCC 11991122
D. Barr, _C_o_m_m_o_n _D_N_S _O_p_e_r_a_t_i_o_n_a_l _a_n_d _C_o_n_f_i_g_u_r_a_t_i_o_n _E_r_r_o_r_s,
02/28/1996.
RRFFCC 11991122 EErrrroorrss
B. Barr _E_r_r_o_r_s _i_n _R_F_C _1_9_1_2, ovo je dostupno na
RRFFCC 11771133
A. Romao, _T_o_o_l_s _f_o_r _D_N_S _d_e_b_u_g_g_i_n_g, 11/03/1994.
RRFFCC 11771122
C. Farrell, M. Schulze, S. Pleitner, D. Baldoni, _D_N_S _E_n_c_o_d_i_n_g _o_f
_G_e_o_g_r_a_p_h_i_c_a_l _L_o_c_a_t_i_o_n, 11/01/1994.
RRFFCC 11118833
R. Ullmann, P. Mockapetris, L. Mamakos, C. Everhart, _N_e_w _D_N_S _R_R
_D_e_f_i_n_i_t_i_o_n_s, 10/08/1990.
RRFFCC 11003355
P. Mockapetris, _D_o_m_a_i_n _n_a_m_e_s _- _i_m_p_l_e_m_e_n_t_a_t_i_o_n _a_n_d _s_p_e_c_i_f_i_c_a_t_i_o_n,
11/01/1987.
RRFFCC 11003344
P. Mockapetris, _D_o_m_a_i_n _n_a_m_e_s _- _c_o_n_c_e_p_t_s _a_n_d _f_a_c_i_l_i_t_i_e_s,
11/01/1987.
RRFFCC 11003333
M. Lottor, _D_o_m_a_i_n _a_d_m_i_n_i_s_t_r_a_t_o_r_s _o_p_e_r_a_t_i_o_n_s _g_u_i_d_e, 11/01/1987.
RRFFCC 11003322
M. Stahl, _D_o_m_a_i_n _a_d_m_i_n_i_s_t_r_a_t_o_r_s _g_u_i_d_e, 11/01/1987.
RRFFCC 997744
C. Partridge, _M_a_i_l _r_o_u_t_i_n_g _a_n_d _t_h_e _d_o_m_a_i_n _s_y_s_t_e_m, 01/01/1986.
.