DNS KAKO
Nicolai Langfeldt, janl@math.uio.no; preveo Josip Rodin,
joy-web@debian.org;
inaica 1.2, 21. prosinca 2000. (u originalu verzija 3.0)
KAKO postati mali DNS administrator.
______________________________________________________________________
Table of Contents
1. Uvod
1.1 Pravne stvari
1.2 Zasluge i poziv za pomo
1.3 Posveta
2. Upoznavanje.
3. Caching imenski server koji nalazi adrese.
3.1 Startanje named-a
3.2 `Resolveri'
3.3 estitam
4. Forwarding
5. Jednostavna domena.
5.1 Ali prvo malo suhoparne teorije
5.2 Naa domena.
5.3 Obrnuta zona
5.4 Rijei opreza
5.5 Zato ne rade obrnuti upiti.
5.5.1 Obrnuta zona nije preputena.
5.5.2 Ima podmreu bez klasa
5.6 `Slave' serveri
6. Primjer prave domene
6.1 /etc/named.conf (ili /var/named/named.conf)
6.2 /var/named/root.hints
6.3 /var/named/zone/127.0.0
6.4 /var/named/zone/land-5.com
6.5 /var/named/zone/206.6.177
7. Odravanje
8. Prebacivanje s verzije 4 na verziju 8
9. Pitanja i Odgovori
10. Kako postati vei DNS admin.
______________________________________________________________________
11.. UUvvoodd
Kljune rijei: DNS, BIND, BIND 4, BIND 8, named, dialup, PPP, slip,
ISDN, Internet, domain, name, resolution, hosts, caching.
Ovaj dokument je dio Linux Documentation Projecta.
11..11.. PPrraavvnnee ssttvvaarrii
(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
zadravanje ove poruke o autorskim pravima.
11..22.. ZZaasslluuggee ii ppoozziivv zzaa ppoommoo
elio bih zahvaliti Arntu Gulbrandsenu kojeg sam napatio nedovrenim
dijelovima ovoga i koji je dao puno korisnih prijedloga. Takoer bih
elio zahvaliti ljudima koji su e-mailom poslali prijedloge i biljeke.
Ovo nikada nee biti zavren dokument, molim vas aljite mi e-mail o vaim
problemima i uspjesima. Vi moete uiniti ovaj HOWTO boljim. Dakle,
molim vas, aljite komentare i/ili pitanja, ili novac, na
janl@math.uio.no. Ili kupite moju knjigu o DNS-u. Pogledajte
bibliografiju za informacije o njoj. Ako poaljete e-mail i elite
odgovor, molim vas budite toliko pristojni da _p_r_o_v_j_e_r_i_t_e je li
povratna adresa ispravna i da radi. Takoer, molim vas, proitajte
``PiO'' poglavlje prije nego mi e-mailate. Jo jedna stvar, ja
razumijem samo norveki i engleski.
Ovo je jedan KAKO. Odravao sam ga kao dio LDP-a od 1995. U 2000.
godini sam napisao knjigu o istoj temi. elio bih rei da iako je ovaj
KAKO na mnogo naina slian knjizi, on _n_i_j_e razvodnjena verzija
izmiljena kako bi reklamirala knjigu. Ipak, knjigu ete nai meu
bibliografijom na kraju ovog KAKOa. itatelji ovog KAKOa su mi pomogli
razumjeti ono to je teko razumjeti o DNS-u. Ovo je pomoglo knjizi, ali
je i knjiga pomogla meni da vie razmislim o potrebama ovog KAKOa.
Knjiga je proizala iz KAKOa. Trea verzija KAKOa je proizala iz
knjige. Zahvaljujem se izdavau knjige, Que, koji je riskirao sa mnom
:-)
11..33.. PPoossvveettaa
Ovaj HOWTO je posveen Anne Line Norheim Langfeldt. Mada ga ona
vjerojatno nikada nee proitati jer ona nije takav tip djevojke.
22.. UUppoozznnaavvaannjjee..
ttoo oovvoo jjee,, aa ttoo nniijjee..
DNS znai Domain Name System -- sustav imenovanja domena. DNS pretvara
imena strojeva u IP adrese koje imaju svi strojevi na mrei. 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 koristei Unix sustav, uz par stvari specifinih Linux
sustavu.
Mapiranje je jednostavno povezivanje izmeu dvije stvari, u ovom sluaju
imena stroja, kao ftp.linux.org, i IP broja (ili adrese) stroja, kao
199.249.150.4. DNS takoer sadri mapiranja u drugom smjeru, iz IP broja
u ime stroja; ovo se zove obrnuto mapiranje (eng. "reverse mapping").
DNS je, neupoznatom (tebi ;-), jedno od mranijih podruja
administriranja mree. Sreom, DNS nije stvarno tako teak. Ovaj KAKO e
pokuati uiniti neke stvari jasnijima. On opisuje kako podesiti
_j_e_d_n_o_s_t_a_v_a_n DNS server. Poet emo sa caching only serverom da bi doli
do podeavanja primarnog DNS imenskog servera za domenu. Za
kompleksnije postavke moe pogledati ``PiO'' poglavlje ovog dokumenta.
Ako to nije opisano tamo trebat e _p_r_o_i_t_a_t_i Pravu Dokumentaciju. to je
i od ega se sastoji Prava Dokumentacija bit e objanjeno u ``zadnjem
poglavlju''.
Prije nego pone s ovim, trebao bi konfigurirati svoj stroj tako da se
moe telnetirati na i s njega, i uspjeno uspostaviti sve vrste veza na
mreu, i posebno bi trebao moi napraviti _t_e_l_n_e_t _1_2_7_._0_._0_._1 i time doi na
svoj stroj (probaj sad!). Za poetak takoer treba ispravne
/etc/nsswitch.conf, /etc/resolv.conf i /etc/hosts datoteke, jer
njihovu funkciju ovdje neu objasniti. Ako ovo ve nema podeeno i u
radu, Networking-HOWTO i/ili Networking-Overview-HOWTO objanjavaju
kako to podesiti. Proitaj ih.
Kada kaem 'tvoj stroj', mislim na stroj na kojem pokuava podesiti DNS,
ne na niti jedan drugi stroj koji ima, a koji je ukljuen u tvoje mrene
napore.
Pretpostavit u da nisi iza bilo kakvog firewalla koji blokira upite o
imenima. Ako jesi, trebat e posebnu konfiguraciju -- pogledaj
poglavlje ``PiO''.
Opsluivanje imenima na Unixu je omogueno programom zvanim named. On
je dio ``BIND'' paketa kojim koordinira Paul Vixie uime Internet
Software Consortiuma. Named je ukljuen u veinu Linux distribucija i
obino je instaliran kao /usr/sbin/named, obino iz paketa zvanog BIND.
Ako ima named, vjerojatno ga moe i koristiti; ako ga nema, nabavi ga
binarnog sa neke Linux FTP lokacije, ili nai najnoviji i najbolji
izvorni kod sa . Ovaj KAKO govori o
verziji 8. Stara verzija ovog HOWTO-a, o verziji 4, je jo uvijek
dostupna na u sluaju da koristi
bind 4 (naalost, KAKO za verziju 4 ne postoji :( op. prev.). Ako
namedova man stranica govori o named.conf, ima BIND 8; ako govori o
datoteci named.boot, ima BIND 4. Ako ima 4 i brine o sigurnosti,
stvarno bi trebao nadograditi na najnoviju 8-icu. Odmah.
DNS je baza podataka cijele mree. Pazi to e staviti u nju. Ako stavi
smee u nju, ti i drugi ete dobiti smee iz nje. Odravaj svoj DNS
urednim i dosljednim i dobro e te sluiti. Naui ga koristiti,
administrirati, ispravljati greke i bit e jo jedan dobar administrator
koji uva mreu od padanja na koljena zbog krivog upravljanja.
NNaappoommeennaa:: pravi rezervne (backup) kopije svih datoteka koje ti naloim
da promijeni ako ih ve ima, tako da ako nita ne bude radilo nakon
ovoga, moe sve vratiti u staro, radno stanje.
33.. CCaacchhiinngg iimmeennsskkii sseerrvveerr kkoojjii nnaallaazzii aaddrreessee..
PPrrvvaa ssttaavvkkaa DDNNSS kkoonnffiigguurraacciijjee,, vvrrlloo kkoorriissnnaa kkoorriissnniicciimmaa kkoojjii ssee
ssppaajjaajjuu mmooddeemmiimmaa,, kkaabbeellsskkiimm mmooddeemmiimmaa ii AADDSSLL--oomm..
Na Red Hat i Red Hat baziranim distribucijama moe postii isti praktini
rezultat kao iz prvog poglavlja ovog KAKOa instaliranjem paketa bind,
bind-utils i caching-nameserver. Ako koristite Debian jednostavno
instalirajte bind i bind-doc. Dakako da te puko instaliranje ovih
paketa nee nauiti istom to i itanje ovog KAKOa. Dakle, instaliraj
pakete, i onda itaj provjeravajui datoteke koje su oni instalirali.
Caching only imenski server e nai odgovor na upite o imenima i
zapamtiti odgovor sljedei put kad ga bude trebao. Ovo e znatno
skratiti vrijeme ekanja sljedei put, posebno ako si na sporoj vezi.
Prvo e trebati datoteku zvanu /etc/named.conf (Debian:
/etc/bind/named.conf). Ona je proitana kad se pokree named. Za sada
ona treba sadravati samo ovo:
______________________________________________________________________
// Konfiguracijska datoteka za caching only imenski server
options {
directory "/var/named";
// Odkomentiravanje ovoga moe pomoi ako mora proi 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";
};
______________________________________________________________________
Paketi Linux distribucija mogu koristiti razliita imena datoteka za
svaku vrstu datoteka spomenutih ovdje; one e ipak sadravati skoro iste
stvari.
Linija 'directory' govori namedu gdje da potrai datoteke. Sve datoteke
nazvane slino e biti relativne ovome. Takoer, pz je direktorij ispod
/var/named, tj. /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
sadravati ovo: (_A_k_o _i_z_r_e_e_t_e _i _z_a_l_i_j_e_p_i_t_e _o_v_u _d_a_t_o_t_e_k_u _i_z _e_l_e_k_t_r_o_n_i_k_e
_v_e_r_z_i_j_e _o_v_o_g _d_o_k_u_m_e_n_t_a_, _m_o_l_i_m _p_r_i_m_i_j_e_t_i_t_e _k_a_k_o nnee bbii smjelo biti
poetnih razmaka u datoteci, tj. sve linije trebaju poeti znakom koji
nije razmak. Neki programi za obradu dokumenata e ubaciti razmake na
poetak redaka, uzrokujui neto zabune. U tom sluaju molim maknite
poetne razmake))
______________________________________________________________________
;
; 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
______________________________________________________________________
Ova datoteka opisuje korijenske imenske servere u svijetu. Oni se
mijenjaju s vremenom i lista se mora odravati svako nekoliko. Pogledaj
poglavlje ``Odravanje'' za upute kako ih osvjeavati.
Sljedei odjeljak u named.conf datoteci je opis zone. Objasnit u njenu
upotrebu u kasnijim poglavljima, zasad samo napravi datoteku zvanu
127.0.0 sljedeeg sadraja, u poddirektoriju pz: (_O_p_e_t_, _m_o_l_i_m _t_e _m_a_k_n_i
_p_o_e_t_n_e _r_a_z_m_a_k_e _a_k_o _i_z_r_e_e _i _z_a_l_i_j_e_p_i _o_v_o)
______________________________________________________________________
$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.
______________________________________________________________________
Dalje, trebat e /etc/resolv.conf koji e izgledati slino ovome: (_O_p_e_t_,
_m_a_k_n_i _r_a_z_m_a_k_e_!)
______________________________________________________________________
search poddomena.tvoja-domena.hr tvoja-domena.hr
nameserver 127.0.0.1
______________________________________________________________________
Linija `search' odreuje koje e se domene pretraivati za neki host na
kojeg se eli spojiti. Linija `nameserver' odreuje adresu tvog imenskog
servera, u ovom sluaju tvoj stroj jer je to adresa na kojoj radi tvoj
named (127.0.0.1 je prava, nema veze ako tvoj stroj ima i neku drugu
adresu). Ako eli vie imenskih servera, stavi `nameserver' liniju za
svaki. (Napomena: named nikada ne ita ovu datoteku, to radi resolver
koji koristi named. Napomena 2: U nekim /etc/resolv.conf datotekama e
nai redak "domain". To je u redu, ali nemoj koristiti i "search" i
"domain", samo jedan od njih e raditi.)
Da ilustriram to ova datoteka radi: ako klijent stroj pokua odrediti
adresu za bla, tada se prvo probava adresa bla.poddomena.tvoja-
domena.hr, pa bla.tvoja-domena.hr, i na kraju bla. Ne bi trebao
staviti puno domena u "search" liniju, jer treba vremena kako bi se
sve pretraile.
Ovaj primjer pretpostavlja da si ti u domeni poddomena.tvoja-
domena.hr, a tvoj stroj se tada zove tvoj-stroj.poddomena.tvoja-
domena.hr. Search linija ne bi trebala sadravati tvoju TLD/ND (_T_o_p
_L_e_v_e_l _D_o_m_a_i_n, _N_a_j_v_i_a _D_o_m_e_n_a, `hr' u ovom sluaju). Ako se esto treba
spajati na strojeve u drugoj domeni, moe tu domenu dodati u search
liniju ovako: (_S_j_e_t_i _s_e _m_a_k_n_u_t_i _p_o_e_t_n_e _r_a_z_m_a_k_e_, _a_k_o _p_o_s_t_o_j_e)
______________________________________________________________________
search poddomena.tvoja-domena.hr tvoja-domena.hr neka-domena.hr
______________________________________________________________________
i tako dalje. Oito treba staviti prava imena domena umjesto ovih
primjera. Molim te uoi kako nema toke na krajevima imena domena. Ovo
je vano; molim te uoi kako nema toke na krajevima imena domena.
33..11.. SSttaarrttaannjjee nnaammeedd--aa
Nakon svega, vrijeme je da startamo named. Ako modemski bira
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, proitaj poglavlje ``PiO''. Sada moe testirati svoje postavke.
Ako pogleda svoju datoteku sa syslog porukama (obino se zove
/var/adm/messages, drugi direktorij moe biti /var/log, a druga
datoteka syslog) dok starta named (uini `tail -f /var/log/messages')
trebao bi vidjeti neto kao ovo:
(linije koje zavravaju sa \ nastavljaju se u sljedeem retku)
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.
Ako je bilo ikakvih poruka o grekama, mora da je dolo do greke. named
e imenovati datoteku u kojoj je greka. Vrati se i provjeri datoteku.
Pokreni `ndc restart' kada je popravi.
Sada moete isprobati svoje postavke. Tradicionalno se za to koristio
program nslookup. Danas se preporua dig:
$ 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
Ako to dobije, onda radi. Nadajmo se. Ako se razlikuje, vrati se i
provjeri sve. Svaki put kad promijeni named.conf datoteku, mora ponovo
startati named koristei `ndc restart' naredbu.
Sada moe postaviti upit. Probaj pogledati ime stroja koji ti je blizu.
jagor.srce.hr je meni blizu, na SRCE-u:
$ 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
dig je sada upitao tvoj named da potrai 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. Moda e trebati malo vremena dok ne
dobije rezultat budui da on pretrauje sve domene koje si naveo u
/etc/resolv.conf datoteci. Molim te primijeti "aa" u "flags:" retku.
To znai da je odgovor bio sluben, da je svjee dobiven od nadlenog
servera (eng. "authoritative"). Objasnit u "authoritative" kasnije.
Ako upita isto to ponovo, dobit e ovo:
$ 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
Primijeti manjak "aa" oznake o ovom odgovoru. To znai da named ovaj
put nije otiao traiti po mrei, jer je informacija sada bila u cacheu.
Ali informacija u cache-u bi _m_o_g_l_a biti zastarjela (eng. `stale').
Zato si informiran o ovoj (vrlo maloj) mogunosti jer nema "aa". Ipak,
sada zna da cache radi.
33..22.. ``RReessoollvveerrii''
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 /etc/nsswitch.conf. Ovo je duga datoteka
koja odreuje gdje dobiti razliite vrste podataka, iz koje datoteke ili
baze. Obino sadri pomone komentare pri vrhu, koje bi trebao proitati.
Nakon toga nai liniju koja poinje sa `hosts:', i ona bi trebala biti
ovakva:
______________________________________________________________________
hosts: files dns
______________________________________________________________________
(_Z_a_p_a_m_t_i_o _s_i _t_o _s _p_o_e_t_n_i_m _r_a_z_m_a_c_i_m_a_, _z_a_r _n_e_? _N_e_u _i_h _v_i_e _s_p_o_m_i_n_j_a_t_i_.)
Ako ne postoji linija koja poinje s `hosts:', onda umetni onu gornju.
Ona govori da programi prvo trebaju pogledati u /etc/hosts datoteku, i
onda provjeriti u DNS-u, prema resolv.conf-u.
33..33.. eessttiittaamm
Sada zna kako podesiti caching named. Popij pivo, mlijeko, ili to ve
voli kako bi to proslavio.
44.. FFoorrwwaarrddiinngg
U velikim, dobro organiziranim, akademskim ili ISP (eng. `Internet
Service Provider', pruatelj Internet usluga) mreama ete katkad nai da
su ljudi koji se brinu o mrei podesili hijerarhiju DNS servera koji
proslijeuju (eng. `forwarders') to pomae u olakavanju pritiska na
internu mreu pa i pritiska na vanjske servere. Ipak, to nije bitno i
koritenjem DNS servera vaeg pruatelja mrenih usluga kao ``forwardera''
moete uiniti odgovore na upite brima i manje optereujuima za vau mreu.
Ako koristite modem, ovo bi moglo biti prilino dobro. Za potrebe ovog
primjera, pretpostavit emo da va pruatelj mrenih usluga ima dva
imenska servera koje ele da koristite, s IP brojevima 10.0.0.1 i
10.1.0.1. Tada ete u poetni dio named.conf datoteke zvan ``options''
umetnuti ove retke:
______________________________________________________________________
forward first;
forwarders {
10.0.0.1;
10.1.0.1;
};
______________________________________________________________________
Postoji i zgodan trik za dialup strojeve za koritenje forwardera,
opisan je u ``PiO'' poglavlju.
Ponovo pokrenite va imenski server i isprobajte ga s dig-om. Trebao bi
raditi.
55.. JJeeddnnoossttaavvnnaa ddoommeennaa..
KKaakkoo ppooddeessiittii vvllaassttiittuu ddoommeennuu..
55..11.. AAllii pprrvvoo mmaalloo ssuuhhooppaarrnnee tteeoorriijjee
Kao prvo: proitao si sve ono prije ovoga, zar ne? Morao bi.
Prije nego to zapravo ponemo ovo poglavlje, servirat u ti malo teorije
i primjera rada DNS-a. I ti e to proitati jer je to dobro za tebe. Ako
ti se `ne da', ipak bi trebao nabrzinu prolistati. Prestani listati
kada doe do dijela gdje se opisuje named.conf datoteka.
DNS je hijerarhijski sustav, strukturiran kao stablo. Vrh se pie `.' i
ita `kkoorriijjeenn' (eng. `root'), kao to je uobiajeno za strukture podataka
u obliku stabla. Ispod . su mnoge `Top Level Domains' (TLD) odn.
NNaajjvviiee DDoommeennee; najpoznatije su ORG, COM, EDU i NET, ali postoje mnoge
druge (HR, BA, SI, op.prev.). Kao jedno stablo, ima korijen i grana
se. Ako imate ikakvog iskustva u raunarstvu, prepoznat ete DNS kao
`search tree', i moi ete nai elemente (`nodes'), krajnje toke (`leaf
nodes') i rubove (`edges'). Toke su elementi, rubovi su na imenima.
Kada trai stroj, upit prolazi rekurzivno kroz hijerarhiju, poevi od
vrha. Ako eli saznati adresu stroja prep.ai.mit.edu, tvoj imenski
server mora negdje poeti traiti. Poinje gledajui u svoj cache. Ako on
zna odgovor, jer ga je prije spremio, odgovorit e odmah, kako smo
vidjeli u prolom poglavlju. Ako ne zna, brisat e dijelove imena poevi
s lijeve strane, provjeravajui zna li to o ai.mit.edu., pa mit.edu.,
pa edu., i ako ne to, zna o . jer je to u `hints' datoteci. Onda e
pitati jednog . servera o prep.ai.mit.edu. Ovaj . server nee znati
odgovor, ali e pomoi tvom serveru dajui mu preporuku, govorei mu gdje
da gleda. Ove preporuke e na kraju dovesti tvoj server do imenskog
servera koji zna odgovor. Sada u ovo ilustrirati. +norec znai da e dig
pitati nerekurzivna pitanja kako bi smo mogli sami raditi rekurziju.
Ostale postavke su tu da smanje iznos informacija koje e dig prikazati
kako se ovo ne bi protegnulo na previe stranica:
$ 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
Ovo je preporuka. Daje nam samo "Authority section", nema "Answer
section". Na imenski server nas upuuje na jedan imenski server.
Odaberi jednog, nasumce:
$ 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
On nas odmah upuuje na MIT.EDU servere. Opet nasumce izaberi jednog:
$ 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
Ovaj put smo dobili "ANSWER SECTION", i odgovor na nae pitanje.
"AUTHORITY SECTION" sadri informacije o tome koje servere trebamo
pitati o ai.mit.edu sljedei put. Tako sada moete pitati njih direktno,
sljedei put kada budete znatieljni o ai.mit.edu imenima.
Tako smo poevi od . uspjeno nali imenske servere za sljedei nivo imena
domene, uz preporuke. Da si koristio svoj DNS server umjesto svih ovih
ostalih, tvoj named bi naravno cacheirao sve informacije koje bi
`iskopao' za tebe, i ne bi to trebao pitati ponovo neko vrijeme.
Analogno stablu (`tree'), svaka ``.'' u imenu je toka grananja. I
svaki dio izmeu ``.'' je ime za posebnu granu u stablu. Stablom se
penjemo uzimajui ime koje elimo (prep.ai.mit.edu) pitajui korijen (.)
ili koje god servere koji su oci od korijena do prep.ai.mit.edu a o
kojima imamo informacije u cacheu. Jednom kad se preu granice cachea,
rekurzivni `resolver' poinje pitati servere, pratei preporuke (rubove)
dalje u imenu.
Domena o kojoj se puno manje govori, ali jednako vana domena je in-
addr.arpa. Ona se takoer dijeli kao i `normalne' domene. in-
addr.arpa nam doputa da dobijemo ime stroja kada imamo njegovu adresu.
Vana stvar kod ovoga je da primijeti da su IP-evi zapisani obrnutim
redosljedom u in-addr.arpa. domeni. Ako ima adresu stroja: 161.53.3.7,
named je trai ba kao dns.srce.hr: trai arpa. servere. Trai u in-
addr.arpa. serverima, trai 161.in-addr.arpa. servere, trai 53.161.in-
addr.arpa, trai 3.53.161.in-addr.arpa. servere. Trai potrebne podatke
o 7.3.53.161.in-addr.arpa. serveru. Pametno, ha? (Reci `da'.) Ipak,
obrtanje brojeva vas moe godinama zbunjivati.
55..22.. NNaaaa ddoommeennaa..
Sada emo definirati nau domenu. Napravit emo domenu linux.bogus i
definirati strojeve u njoj. Koristim totalno neispravno ime domene da
ne bi smetali nikoga Tamo Vani.
Jo jedna stvar prije nego ponemo: nisu svi znakovi dozvoljeni u
imenima strojeva. Ogranieni smo na slova engleske abecede: a-z,
brojeve 0-9 i znak `-' (crta). Dri se tih znakova. Velika i mala slova
su ista DNS-u, tako da su dns.srce.hr i DNS.SRCE.Hr isto.
Ve smo zapoeli 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 emo sada definirati zonu 0.0.127.in-addr.arpa, tako da smo
glavni (`master') server za nju i da je ona pohranjena u datoteci
`pz/127.0.0'. Ve smo podesili ovu datoteku, i u njoj stoji:
______________________________________________________________________
$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.
______________________________________________________________________
Primijeti znak `.' na kraju svih punih imena domena u ovoj datoteci,
nasuprot gornjoj datoteci named.conf. Neki ljudi vole zapoeti svaku
datoteku zone sa $ORIGIN direktivom, ali to je viak. Porijeklo (mjesto
iz DNS hijerarhije gdje pripada) datoteke zone je odreeno u `zone'
sekciji named.conf datoteke; u ovom sluaju to je 0.0.127.in-addr.arpa.
Ova `ddaattootteekkaa zzoonnee' sadri 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 skraenica od _S_t_a_r_t _O_f _A_u_t_h_o_r_i_t_y
(poetak nadlenosti). Znak `@' je posebna oznaka koja znai porijeklo, i
zbog toga to `domain' kolona za ovu datoteku kae 0.0.127.in-addr.arpa,
prva linija zapravo znai:
0.0.127.in-addr.arpa. IN SOA ...
NS je NNaammee SSeerrvveerr RRRR (imenski server). Nema znaka `@' na poetku ove
linije; ovo se podrazumijeva jer je zadnja linija zapoela sa `@'. To
nas tedi od tipkanja. Tako da bi se NS linija mogla pisati i ovako:
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 uobiajeno ime za imenske
servere, ali kao i kod web servera, koji se obino zovu www._n_e_t_o, to
ime moe biti bilo to.
I konano, PTR (`Domain Name Pointer', pokaziva na ime domene) zapis
govori da se stroj na adresi 1 u podmrei 0.0.127.in-addr.arpa. odn.
127.0.0.1 zove localhost.
SOA zapis je uvod u _s_v_a_k_u datoteku zone, i treba biti tono jedan takav
zapis u svakoj datoteci zone. On opisuje zonu, odakle dolazi (stroj
zvan ns.linux.bogus), tko je odgovoran za njen sadraj
(hostmaster@linux.bogus; ovdje trebate staviti vau 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 $TTL 3D redak. Stavi ga u sve svoje datoteke zona.
Sada ponovo pokreni svoj named (naredba je `ndc restart') i upotrijebi
dig kako bi pregledao to si napravio. -x pita obrnuti upit:
$ 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
Dakle on uspijeva dobiti ime localhost iz adrese 127.0.0.1, dobro.
Sada za na 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 emo neke totalno neispravne
podatke:
______________________________________________________________________
;
; Datoteka zone za domenu linux.bogus
;
; Potpuna datoteka zone
;
$TTL 3D
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial, dananji datum + dananja 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
______________________________________________________________________
Dvije stvari se moraju zapaziti kod SOA zapisa. ns.linux.bogus _m_o_r_a
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 = osnovno ime, op.prev.) zapis
za stroj koji se navede u SOA zapisu. Njegovo ime ne mora biti `ns',
moe biti bilo koje ispravno ime stroja. Dalje, hostmaster.linux.bogus
treba biti proitano kao hostmaster@linux.bogus. Ovo treba biti mail
alias (drugo ime e-maila, op.prev.), ili mailbox (e-mail `sandui',
op.prev.), gdje osoba (osobe) koja odrava DNS redovno ita postu. Bilo
kakav e-mail koji se tie domene bit e poslan na adresu navedenu ovdje.
Ime ne mora biti `hostmaster', moe biti bilo kakva ispravna e-mail
adresa, ali se esto oekuje da e-mail adresa `hostmaster' takoer radi.
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 pote). On govori
sustavima za potu gdje slati potu koja je adresirana na
netko@linux.bogus, odn. 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 e se e-mail slati prvom. Ako
njemu ne uspije, pota e biti poslana onome s prvim veim brojem,
sekundarnim strojem za potu, tj. mail.friend.bogus koji ovdje ima
prioritet 20.
Restartaj named pokreui 'ndc restart'. Pregledaj rezultate digom:
$ 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
Nakon paljivijeg pregleda otkrit e greku. Redak
linux.bogus. 3D IN MX 10 mail.linux.bogus.linux.bogus.
je sasvim neispravan. Treba biti:
linux.bogus. 3D IN MX 10 mail.linux.bogus.
Namjerno sam napravio greku kako bi ti mogao uiti iz nje :-) Gledajui
u datoteku zone nai emo ovaj redak:
MX 10 mail.linux.bogus ; primarni Mail eXchanger
Nedostaje mu toka. Ili ima `linux.bogus' vika. Ako ime stroja u
datoteci zone ne zavrava tokom, porijeklo se dodaje na njen kraj
uzrokujui 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 vie volim zadnji oblik, krai je za tipkanje. Postoje
neki BIND znalci koji se ne slau, a i neki koji se slau s ovim. U
datoteci zone zapis bi trebao zavravati domenom i `.', ili bez iega,
kada bi se nadopunio porijeklom.
Moram naglasiti da u datoteci named.conf _n_e _s_m_i_j_e biti `.' nakon imena
domena. Nema pojma koliko puta je `.' vika ili manjka `sredila' stvari
i uasno zbunila ljude.
Nakon to sam ovo naglasio, evo nove datoteke zone, i sa nekim dodatnim
informacijama:
______________________________________________________________________
;
; Datoteka zone za domenu linux.bogus
;
; Potpuna datoteka zone
;
$TTL 3D
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial, dananji datum + dananja 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"
______________________________________________________________________
Vie 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 = osnovno ime) je nain da date svakom stroju vie
imena. Tako je `www' drugo ime za `ns'.
Koritenje CNAME zapisa je pomalo kontroverzno. Ali je sigurno
postupati po pravilu da MX, CNAME ili SOA zapis _n_i_k_a_d ne smiju
upuivati na CNAME zapis, ve na neto sa A zapisom, i ne preporuuje se
imati:
______________________________________________________________________
bla CNAME www ; NE!
______________________________________________________________________
ali je ispravno imati:
______________________________________________________________________
bla CNAME ns ; Da!
______________________________________________________________________
Takoer 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. Moe oekivati prilian broj administratora
mail sustava Tamo Vani koji e nametati ovo pravilo ak i ako takve
adrese tebi budu radile. Nain kako izbjei ovo je koristei A zapise (i
moda neke druge, kao MX zapis):
______________________________________________________________________
www A 192.168.196.2
______________________________________________________________________
Stanovit broj starih BIND strunjaka preporuuje uope _n_e koristiti
CNAME. Ipak, rasprava o tome zato ili zato ne je izvan okvira ovog
KAKOa.
Ali kako vidi, ovaj KAKO i puno servera ne prate to pravilo.
Uitaj novu bazu podataka pokreui `ndc reload', to uzrokuje da named
ponovo proita svoje datoteke.
$ 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
To je dobro. Kako vidi, izgleda vrlo slino samoj datoteci zone.
Provjerimo to kae za sam www:
$ 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
Drugim rijeima, pravo ime za www.linux.bogus je ns.linux.bogus, i daje
ti neke informacije o ns-u takoer, dovoljno da se spoji na njega, da
si program.
Sada smo na pola puta.
55..33.. OObbrrnnuuttaa zzoonnaa
Sada programi mogu prebacivati imena u linux.bogus-u u adrese na koje
se mogu spojiti. Ali takoer je potrebna i obrnuta zona, koja omoguuje
da DNS prebacuje iz adrese u ime. Ovu metodu koriste mnogi serveri
raznih vrsta (FTP, IRC, WWW i drugi) da bi odredili hoe li priati s
tobom ili ne, a ako hoe, moda i koliko e ti prioriteta pridati. Za
puni pristup svim uslugama na Internetu obrnuta zona je obavezna.
Stavi ovo u named.conf:
______________________________________________________________________
zone "196.168.192.in-addr.arpa" {
notify no;
type master;
file "pz/192.168.196";
};
______________________________________________________________________
Ovo je upravo kao i sa 0.0.127.in-addr.arpa, a i sadraj je slian:
______________________________________________________________________
$TTL 3D
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; Serial, dananji datum + dananja 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.
______________________________________________________________________
Sada treba opet restartati svoj named (ndc restart) i pregledati svoj
rad dig-om:
______________________________________________________________________
$ 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.
______________________________________________________________________
tako, izgleda OK, neka izbaci cijelu stvar da i to pregleda:
______________________________________________________________________
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
______________________________________________________________________
Izgleda dobro! Ako kod tebe nije tako izgledalo, potrai poruke o
grekama u syslogu, objasnio sam kako to uiniti u prvom poglavlju, pod
naslovom "Startanje nameda".
55..44.. RRiijjeeii oopprreezzaa
Postoji nekoliko stvari koje bi trebao dodati ovdje. IP brojevi
koriteni gore su uzeti iz jednog od blokova `privatnih mrea', tj.
brojevi koje nije doputeno koristiti javno 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 BIND-u 8 named moe obavijestiti ostale servere navedene u NS
zapisima u datoteci zone kada je zona promijenjena. Ovo je zgodno za
uobiajenu upotrebu, ali za privatne pokuse sa zonama ova funkcija
treba biti iskljuena -- ne elimo 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 sljedee poglavlje.
55..55.. ZZaattoo nnee rraaddee oobbrrnnuuttii uuppiittii..
Postoji par ``kvaka'' koje se normalno izbjegnu s upitima za imenima,
ali koje se esto vidi pri podeavanju 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.
Raspravit u dva neuspjeha obrnutih upita koji se mogu vidjeti izvan
tvoje mree.
55..55..11.. OObbrrnnuuttaa zzoonnaa nniijjee pprreeppuutteennaa..
Kada od pruatelja usluga zatrai opseg mrenih adresa i ime domene, to
se ime normalno uvijek prepusti tebi, ti biva opunomoen za
administriranje (eng. delegate). Postupak preputanja (eng. delegation)
je povezujui NS zapis koji pomae u prelaenju s jednog imenskog servera
na drugi, kao to je objanjeno u gornjem poglavlju o suhoparnoj
teoriji. Proitao si to, zar ne? Ako tvoja obrnuta zona ne radi, vrati
se i proitaj. Sada.
Obrnuta zona takoer treba biti preputena. Ako si od svog pruatelja
usluga dobio mreu 192.168.196 s linux.bogus domenom, oni trebaju
postaviti NS zapise za tvoju obrnutu zonu kao i za normalnu zonu. Ako
prati lanac od in-addr.arpa do tvoje mree, vjerojatno e nai prekid u
lancu, vrlo vjerojatno kod tvog pruatelja usluga. Nakon to nae
problem, obrati se svom pruatelju usluga i trai od njih da isprave
greku.
55..55..22.. IImmaa ppooddmmrreeuu bbeezz kkllaassaa
Ovo je pomalo napredna tema, ali podmree bez klasa su danas vrlo este
i vjerojatno je ima ako si u maloj tvrtci.
Podmrea bez klasa je ono to ini da Internet danas radi. Prije par
godina je bilo puno buke oko nedostatka IP brojeva. Pametni ljudi iz
IETF-a (Internet Engineering Task Force, oni odravaju Internet) su
razmislili i rijeili problem. Za odreenu cijenu. Cijena je to da e
dobiti manje od ``C'' podmree i neke stvari e se moda pokvariti. Molim
pogledaj Ask Mr. DNS at za
dobro objanjenje ovoga i kako s tim raditi.
Jesi li proitao? Neu to objanjavati, molim te proitaj.
Prvi dio problema je to to tvoj ISP mora shvaati tehniku koju opisuje
Mr. DNS. Ovo ne poznaju svi mali ISP-ovi, pa e im moda 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 moi provjeriti digom.
Drugi i posljednji dio problema je to da ti mora razumjeti tehniku.
Ako nisi siguran, vrati se i ponovo proitaj o njoj. Tada e moi
podesiti svoju besklasnu obrnutu zonu kao to je opisao Mr. DNS.
Ovdje vreba jo jedna zamka. Stariji `resolveri' _n_e_e moi pratiti CNAME
trik u lancu i nee uspjeti nai ime tvog stroja iz IP adrese. Ovo moe
rezultirati time da neke mrene usluge tvoj stroj stave u krivu klasu
pristupa, onemogue mu pristup ili tako neto. Ako naleti na tako neto,
jedino rjeenje (meni znano) je da tvoj ISP umetne tvoj PTR zapis
direktno u njihovu trik besklasnu datoteku zone umjesto trik CNAME
zapisa.
Neki ISP-ovi e ponuditi druge naine rjeavanja ovoga, kao to su Web-
bazirani formulari u koje moe upisati svoja obrnuta prepisivanja ili
drugi automagini sustavi.
55..66.. ``SSllaavvee'' sseerrvveerrii
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 srui, ljudi s mree e jo uvijek moi doi do informacija
o tvojoj domeni od `slave' servera. Jedan `slave' server treba biti to
je dalje mogue od `mastera'. Tvoji `master' i `slave' serveri trebaju
dijeliti to je manje mogue od ovoga: napajanje, lokalnu mreu, ISP,
grad i zemlja. Ako su sve ove stvari razliite za tvoje `master' i
`slave' servere, naao si jako dobar `slave'.
`Slave' je jednostavno imenski server koji kopira datoteke zona od
`mastera'. Podeava ga ovako.
______________________________________________________________________
zone "linux.bogus" {
type slave;
file "sz/linux.bogus";
masters { 192.168.196.2; };
};
______________________________________________________________________
Mehanizam nazvan `zone-transfer' se koristi za kopiranje podataka.
Prebacivanje zone se kontrolira kroz tvoj SOA zapis.
______________________________________________________________________
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial, dananji datum + dananja revizija
8H ; refresh, seconds
2H ; retry, seconds
4W ; expire, seconds
1D ) ; minimum, seconds
______________________________________________________________________
Zona se jedino prenosi ako je `serial' (tj. serijski broj) na
`masteru' vei od onoga na `slaveu'. Nakon svakog `refresh' (tj.
osvjeavanje) intervala, `slave' e provjeriti da li se to mijenjalo na
`masteru'. Ako provjera ne uspije (jer je `master' nedostupan), on e
ponovo pokuati nakon `retry' (tj. ponovljen pokuaj) intervala. Ako
nastavi s neuspjesima do `expire' (tj. istek roka) intervala, `slave'
e izbrisati zonu sa svog datotenog sustava i vie nee biti server za
nju.
66.. PPrriimmjjeerr pprraavvee ddoommeennee
((uu kkoojjeemm eemmoo ppookkaazzaattii nneekkee pprraavvee ddaattootteekkee zzoonnee))
Korisnici su predloili da, uz kolski primjer, ukljuim i pravi primjer
domene koja radi.
Koristim ovaj primjer sa dozvolom Davida Bullocka iz LAND-5. Ove
datoteke su bile aktualne 24. rujna 1996., i ureivane su da se uklope
u BIND 8 ogranienja i koriste moje nadopune. Tako da ovo to vidite
ovdje se poneto razlikuje od onoga to ete dobiti ako sada postavite
upit LAND-5-ovim imenskim serverima.
66..11.. //eettcc//nnaammeedd..ccoonnff ((iillii //vvaarr//nnaammeedd//nnaammeedd..ccoonnff))
Ovdje nalazimo `master' zone sekcije za dvije potrebne obrnute zone:
mrea 127.0.0, kao i LAND-5-ova 206.6.177 podmrea, te `primary' liniju
za LAND-5-ovu normalnu zonu land-5.com. Takoer 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 stavi u svoju named.conf datoteku za igru, MMOOLLIIMM TTEE stavi
``notify no;'' u `zone' sekcije za dvije LAND-5 zone, kako bi izbjegli
nezgode.
66..22.. //vvaarr//nnaammeedd//rroooott..hhiinnttss
Ne zaboravi da je ova datoteka dinamika, i da je ova navedena ovdje
stara. Bolje ti je da koristi onu napravljenu sada, digom, kao to je
to objanjeno 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.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
______________________________________________________________________
66..33.. //vvaarr//nnaammeedd//zzoonnee//112277..00..00
Samo osnove, obavezni SOA zapis, i zapis koji odreuje 127.0.0.1 kao
localhost. Oba su nuna. Nita vie ne treba biti u ovoj datoteci. Ona se
vjerojatno nikad nee morati mijenjati, osim ako se adresa tvog
imenskog servera ili odravatelja DNS-a 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.
______________________________________________________________________
Ako pogleda na nasumino odabranu BIND instalaciju, vjerojatno e
primijetiti da $TTL redak nedostaje, kao i ovdje. On prije nije
koriten, i tek je verzija BIND-a 8.2 poela upozoravati na njegovo
nepostojanje. Preporuujem stavljanje $TTL retka u datoteke zona kako
bude nalazio da nedostaju.
66..44.. //vvaarr//nnaammeedd//zzoonnee//llaanndd--55..ccoomm
Ovdje vidimo obavezni SOA zapis, i potrebne NS zapise. Moemo vidjeti
da on ima sekundarni name server na ns2.psi.net. Ovo je kako treba
biti, _u_v_i_j_e_k treba imati vanjski site za sekundarni server kao
rezervnu kopiju (eng. backup). Moemo takoer 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 koritenje A zapisa).
Kao to vidi iz SOA zapisa, datoteka zone dolazi iz land-5.com, osoba
za kontakt je root@land-5.com. `hostmaster' je jo jedna esto koritena
adresa za kontakt osobu. Serijski broj je u uobiajenom ggggmmdd
formatu sa dodanom dananjom revizijom; ovo je vjerojatno esta inaica
datoteke zone dana 20. rujna 1996.g. Zapamti da se serijski broj _m_o_r_a
monotono poveavati, ovdje je samo _j_e_d_n_a znamenka za dananji serijski
broj, tako da nakon 9 ureivanja on mora ekati do sutra prije nego to
promijeni datoteku ponovo. Razmisli o koritenju dvije znamenke.
______________________________________________________________________
@ IN SOA land-5.com. root.land-5.com. (
199609206 ; serial, dananji datum + dananja 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
______________________________________________________________________
Ako pregleda LAND-5 imenski server nai e da su imena strojeva u obliku
ws__b_r_o_j. Od kasnijih BIND 4 verzija, named je poeo provoditi
ogranienja u znakovima koji se smiju koristiti u imenima strojeva.
Tako da to uope ne radi sa BIND-8, i ja sam zamijenio `_' (podvlaku)
`-' (crtom) za upotrebu u ovom KAKOu.
Jo jednu stvar treba primijetiti, da radne stanice nemaju individualna
imena, ve predmetak i zadnja dva dijela IP broja. Koristei takav
sustav moe znatno pojednostaviti odravanje, ali to moe biti pomalo
neosobno, i zapravo biti izvor nezadovoljstva meu tvojim korisnicima.
Takoer vidimo da je funn.land-5.com drugo ime za land-5.com, ali
koristei A zapis, ne CNAME zapis. Ovo je dobro naelo, kao to smo ve
ustvrdili.
66..55.. //vvaarr//nnaammeedd//zzoonnee//220066..66..117777
Ovu datoteku u komentirati ispod
______________________________________________________________________
@ 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 podeavanja koji izgleda uzrokuje najvie nevolja.
Koristi se da se nae ime stroja ako ima IP broj istog. Primjer: ti si
IRC server i prihvaa veze od IRC klijenata. Ipak, ti si norveki IRC
server tako da eli prihvatiti veze samo iz Norveke i ostalih
skandinavskih zemalja. Kada uspostavi vezu s klijentom, C biblioteka
ti moe rei IP broj drugog stroja zato to se IP broj klijenta
pojavljuje u svim paketima koji prolaze mreom. Sada moe pozvati
funkciju `gethostbyaddr' koja e pogledati ime stroja odreenog IP
brojem. `Gethostbyaddr' e pitati DNS server, koji e onda pregledati
DNS traei stroj.
Pretpostavimo da se klijent spaja s 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 nai 200.177.6.206.in-addr.arpa. DNS
server e prvo nai arpa. servere, pa in-addr.arpa. servere, pratei
obrnuti trag kroz 206, pa 6, i na kraju e nai server za 177.6.206.in-
addr.arpa zonu na LAND-5. Iz toga e na kraju dobiti odgovor da za
200.177.6.206.in-addr.arpa imamo ``PTR ws-177200.land-5.com'' zapis,
to znai da ime koje ide uz 206.6.177.200 jest ws-177200.land-5.com.
Kao i objanjenje kako se pogleda prep.ai.mit.edu, i ovo je pomalo
fiktivno.
Vratimo se na primjer IRC servera. IRC server prihvaa samo veze iz
skandinavskih zemalja, odn. *.no, *.se, i *.dk, pa ime
ws-177200.land-5.com oito ne zadovoljava nijedan uvjet, i server e se
odbiti povezati. Kada _n_e _b_i postojalo reverzno mapiranje IP-a
206.2.177.200 kroz in-addr.arpa zonu, server ne bi nikako mogao nai
ime stroja, i morao bi usporediti 206.2.177.200 sa *.no, *.se, i *.dk,
to ne bi uspjelo.
Neki ljudi e ti rei da je obrnuto `mapiranje' bitno samo za servere,
ili nije uope bitno. Nije tako, jer puno FTP, NNTP (news), IRC pa ak i
neki HTTP (WWW) serveri _n_e_e prihvatiti veze sa strojevima ije ime ne
mogu pronai. Zato je obrnuto `mapiranje' strojeva zapravo _o_b_a_v_e_z_n_o.
77.. OOddrraavvaannjjee
SSaammoo nneekkaa rraaddii..
Jednu stvar mora initi za odravanje nameda, osim da ih puta da rade.
To je odravanje root.hints datoteke aurnom. Najlaki nain je koritenje
diga. Prvo pokreni dig bez parametara, i dobit e root.hints svog
servera. Onda pitaj jedan od izlistanih korijenskih servera sa dig
@rootserver. Vidjet e da izlazni podaci jako slie onima u root.hints
datoteci. Sauvaj ih u datoteku (dig @e.root-servers.net . ns >
root.hints.new) i zamijeni staru root.hints datoteku s novom
(root.hints.new, op.prev.).
Zapamti da treba restartati named nakon promjene cache datoteke.
Al Longyear mi je poslao ovu skriptu koja se moe pokrenuti automatski
da obnovi root.hints. Unesite je u crontab kako bi se pokretala jednom
mjeseno i zaboravite na nju. Ova skripta pretpostavlja da ima podeen i
radei e-mail, te da je alias `hostmaster' definiran. Mora je hackirati
da je uskladi sa svojim postavkama. (sauvati kao izvrnu 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.
#
# 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 "
echo "From: system "
# 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
______________________________________________________________________
Neki su moda vidjeli root.hints datoteku koja je dostupna FTP-om od
InterNIC-a. Molim vas, nemojte koristiti FTP da obnovite root.hints,
jer je gornja metoda puno bolja za mreu, i InterNIC.
88.. 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). Malo sam ga uredio sam ga, kako
bi odgovarao novom imenu poglavlja.
Nema puno posla. Osim to se koristi named.conf umjesto named.boot
datoteke, sve je identino. I BIND 8 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 ima source distribuciju, na komandnoj liniji, u
bind8/src/bin/named direktoriju e otipkati sljedee: (Ako ima binarni
paket, skripta je vjerojatno tu negdje, ali nisam siguran gdje op.a.).
______________________________________________________________________
./named-bootconf.pl < named.boot > named.conf
______________________________________________________________________
to e 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 to moe biti u named.boot datoteci, mada ne dodaje sva nova
unapreenja i konfiguracijske opcije koje doputa BIND 8. Evo
kompletnijeg named.conf-a koji radi isto to, samo malo uinkovitije.
______________________________________________________________________
// 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";
};
______________________________________________________________________
U bind8/src/bin/named/test direktoriju BIND 8 source distribucije
moete nai ovo i kopije datoteka zona koje mnogi ljudi mogu samo
ubaciti i odmah koristiti.
Formati datoteka zona i root.hints datoteke su identini, kao i naredbe
za njihovo mijenjanje.
99.. PPiittaannjjaa ii OOddggoovvoorrii
Molim te, proitaj ovo poglavlje prije nego mi e-maila.
1. Moj named trai datoteku named.boot.
ita krivi KAKO (HOWTO). Molim pogledati staru verziju ovog HOWTO-a,
koja pokriva bind 4, na .
2. Kako koristiti DNS unutar firewalla?
Prijedlog: forward only;. Moda e isto trebati
___________________________________________________________________
query-source port 53;
___________________________________________________________________
unutar ``options'' dijela named.conf datoteke, kao to se preporuuje u
primjeru ``caching'' poglavlja.
3. Kako da uinim da DNS krui kroz dostupne adrese za uslugu, recimo
www.busy.site da dobije `load balancing' efekt, ili neto slino?
Napravi vie AA zapisa za www.busy.site i koristi BIND 4.9.3 ili
noviji. Tada e bind izokretati (eng. round-robin) odgovore. Ovo _n_e_e
raditi s ranijim verzijama BIND-a.
4. elim podestiti DNS na (zatvorenom) intranetu. to da radim?
Izbaci root.hints datoteku i samo podesi datoteke zone. To takoer
znai da ne mora nabavljati novu `hint' datoteku 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; };
};
___________________________________________________________________
Moe navesti vie alternativnih master servera s kojih se zona moe
kopirati, unesi ih u masters listu, odvojene znakom `;' (toka-zarez).
6. elim da BIND radi dok nisam spojen na mreu.
Postoje dvije stvari vezane za ovo:
+o Specifino za BIND 8, Adam L Rice mi je poslao ovaj e-mail, o tome
kako bezbolno imati DNS na stroju koji se spaja modemom:
Otkrio sam da s novim verzijama BIND-a ovo [ datotekama u /etc i
ponovo pokretati server.
U mom sluaju, 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.
+o Dobio sam ovaj e-mail od Iana Clarka, , gdje on
objanjava svoj nain kako to uiniti:
Ja pokreem named na svom 'masquerading' stroju. Imam dvije
root.hints datoteke, jedna se zove root.hints.real i sadri
prava imena korijenskih servera, i druga koja se zove
root.hints.fake koja sadri:
----
; root.hints.fake
; this file contains no information
----
Kada odlazim s mree (off line), kopiram root.hints.fake u
root.hints i restartam named.
Kada idem na mreu (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 mree bez timeout zastoja za
vanjska imena domena, a dok sam na mrei, upiti za vanjske
domene rade normalno.
Peter Denison je pak mislio da Ian ne ide dovoljno daleko. On pie:
Kada sam spojen) serviraj sve cacheirane unose (i one s lokalne mree) odmah
za ne-cacheirane unose, i proslijedi imenskom serveru mog
ISPa
Kada nisam spojen) serviraj sve upite za lokalnu mreu odmah
odustani od svih ostalih upita **odmah**
Kombinacija mijenjanja root cache datoteke i prosljeivanja upita ne radi.
Zato sam podesio (nakon neto rasprave o ovome u oblinjem LUG-u) dva nameda
ovako:
named-online: proslijeuje 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
slua na portu 60053
named-offline: ne proslijeuje
"lana" root cache datoteka
slave za 3 lokalne zone (master je 127.0.0.1:60053)
slua na portu 61053
I kombinirao ih s proslijeivanjem 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 nee ba odmah raditi, jer postoji sitan bug u BIND 8.2,
kojeg sam prijavio razvijateljima, a koji spreava slave da ima mastera na
istoj IP adresi (pa i ako je port drugi). Zakrpa je trivijalna, i brzo bi se
trebala ukljuiti, nadam se.
+o Takoer sam dobio informaciju kako bind radi interaktivno s NFS-om i
portmapper-om na veinom offline stroju, od Karl-Maxa Wangera:
Ja obino pokreem svoj named na svim svojim strojevima koji se tek
povremeno vezuju na Internet modemom. Imenski server slui samo kao cache,
nema svoju domenu i sve provjerava kod imenskih servera u root.cache
datoteci. Kao to je to uobiajeno 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 veinu
vremena to nije radilo. Isto se dogaalo neovisno da li sam koristio PLIP,
PCMCIA ethernet karticu ili PPP preko serijske veze.
Nakon nekog vremena nagaanja i eksperimentiranja shvatio sam izgleda da je
named brljao s procesom registracije nfsd-a i mountd-a koji oni moraju proi
s portmapperom na dizanju sustava (startam te demone pri dizanju kao i
obino). Startanje named-a nakon nfsd-a i mountd-a potpuno je uklonilo ovaj
problem.
Kako ne treba oekivati bilo kakve probleme pri takvoj izmijenjenoj sekvenci
dizanja sustava, preporuio bih svima da to naprave na taj nain i sprijee
mogui problem.
+o I na kraju, postoje HOWTO informacije o ovome kod Ask Mr. DNS na
. Radi se o o BIND-u
4, dodue, pa ete morati prilagoditi ono to on kae na BIND 8.
7. Gdje caching only imenski server dri svoj cache? Postoji li nain da
kontroliram veliinu cachea?
Kompletan se cache dri u memoriji, i nikad se ne zapisuje na disk.
Svaki put kad ubije named, cache se gubi. Cache se nikako _n_e _m_o_e
kontrolirati. named ga nadgleda prema nekim jednostavnim pravilima
i to je to. Ne moe kontrolirati cache niti njegovu veliinu ni iz
kojeg razloga. Ako to eli, moe to ``popraviti'' hackirajui named.
Ipak, ovo nije preporueno.
8. Da li named uva cache izmeu restarta? Mogu li ga natjerati da ga
sauva?
Ne, named _n_e sauva cache kada umre. To znai da se cache mora ponovo
graditi svaki put kada ubije i restarta named. _N_e_m_a naina da
natjera named da sauva cache u datoteku. Ako eli, moe to
``popraviti'' hackirajui named. Ipak, ovo nije preporueno.
9. Kako mogu dobiti domenu? elim podesiti svoju domenu koja e se zvati
(naprimjer) linux-rules.net. Kako da se domena koju elim dodijeli
meni?
Molim te kontaktiraj svog pruatelja mrenih usluga. Oni e ti moi
pomoi s ovim. Molim primijetiti da u veini svijeta mora platiti
kako bi dobio domenu.
10.
Kako mogu osigurati svoj DNS server? Kako da podesim podijeljeni
DNS?
Oba ova pitanja su napredne teme. Obje su pokrivene u
. Neu ih dalje
objanjavati ovdje.
1100.. KKaakkoo ppoossttaattii vveeii DDNNSS aaddmmiinn..
DDookkuummeennttaacciijjaa ii aallaattii..
Prava Dokumentacija postoji. Na mrei i tiskana. itanje nekoliko knjiga
je potrebno da od malog DNS admina postane veliki admin. Od tiskanih
izdanja ja sam napisao _T_h_e _C_o_n_c_i_s_e_G_u_i_d_e _t_o _D_N_S _a_n_d _B_I_N_D, Nicolai
Langfeldt, objavio Que (ISDN0-7897-2273-9). Knjiga je slina ovom KAKO-
u. Samo ima vie detalja, i puno vie svega. Ali, standardna knjiga je
_D_N_S _a_n_d _B_I_N_D, C. Liu i P. Albitz, izdaje O'Reilly & Associates, (ISBN
0-937175-82-X). Takoer je odlina, mada opisuje BIND 4, to i nije neki
problem. Postoji i poglavlje 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, izdaje O'Reilly (ISBN 0-937175-82-X). Jo jedan `must' za
dobru DNS administraciju (ili bilo to dobro, kad smo kod tog) 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. Pirsig :-) Dostupna
kao ISBN 0688052304 i drugi.
Na mrei e nai stvari na (DNS Resources
Directory), ; _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 veina, ako ne i svi, od RFC-ova navedenih dolje, su
distribuirani sa samim BIND-om). Nisam proitao veinu ovih, pa ipak, ni
ja nisam veliki DNS admin. Arnt Gulbrandsen, s druge strane, je
proitao _B_O_G i on je ushien zbog toga :-). USENET grupa
je o DNS-u. Takoer postoji i
veliki broj RFC-ova o DNSu, a najvaniji 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, this is available at
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.