Prva stavka DNS konfiguracije, vrlo korisna korisnicima koji se spajaju modemskim biranjem providera.
Caching only imenski server će naći odgovor na upite o imenima i zapamtiti odgovor sljedeći put kad ga budeš trebao. Ovo će znatno skratiti vrijeme čekanja sljedeći put, posebno ako si na sporoj vezi.
Prvo ćeš trebati datoteku zvanu /etc/named.conf. Ona je
pročitana kad se pokreće named
. Za sada ona treba sadržavati samo ovo:
// Konfiguracijska datoteka za caching only imenski server options { directory "/var/named"; // Odkomentiravanje ovoga može pomoći ako moraš proći kroz // firewall, a stvari baš i ne rade: // query-source address * port 53; }; zone "." { type hint; file "root.hints"; }; zone "0.0.127.in-addr.arpa" { type master; file "pz/127.0.0"; };
Linija 'directory' govori named
u gdje da potraži datoteke. Sve datoteke
nazvane slično će biti relativne ovome. Također, pz je direktorij
ispod /var/named, npr. /var/named/pz.
/var/named je pravi direktorij prema Linux File System
standardu.
Datoteka zvana /var/named/root.hints se spominje ovdje. Ona treba sadržavati 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 održavati. Pogledaj poglavlje Održavanje. za upute kako ih osvježavati.
Sljedeći odjeljak u named.conf datoteci je opis zone. Objasnit ću njenu upotrebu u kasnijim poglavljima, zasad samo napravite datoteku zvanu 127.0.0 sljedećeg sadržaja, 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 ćeš /etc/resolv.conf koji će izgledati slično ovome:
search poddomena.tvoja-domena.hr tvoja-domena.hr nameserver 127.0.0.1
Linija `search' određuje koje će se domene pretraživati za neki host na
kojeg se želiš spojiti. Linija `nameserver' određuje adresu na kojoj je
imenski server, u ovom slučaju 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 želiš više imenskih servera, stavi `nameserver' liniju za svaki.
(Napomena: named
nikada ne čita ovu datoteku, to radi resolver koji
koristi named
.)
Da ilustriram što ova datoteka radi: ako klijent stroj pokuša 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 pokuša odrediti adresu za
hlapic.srce.hr
, hlapic.srce.hr.poddomena.tvoja-domena.hr
se pokuša
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 pretraže.
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 sadržavati tvoju TLD/ND (Top Level Domain,
Najviša Domena, `hr
' u ovom slucaju). Ako se često trebaš spajati
na strojeve u drugoj domeni, možeš tu domenu dodati u search liniju ovako:
search poddomena.tvoja-domena.hr tvoja-domena.hr neka-domena.hr
Dalje, ovisno o verziji tvog libc-a ili trebaš popraviti /etc/nsswitch.conf ili /etc/host.conf. Ako već imaš /etc/nsswitch.conf, to je ono što ćemo popraviti, ako ne, popravit ćemo host.conf.
/etc/nsswitch.conf
Ovo je duga datoteka koja određuje gdje dobiti različite vrste podataka, iz
koje datoteke ili baze. Obično sadrži pomoćne komentare pri vrhu, koje bi
trebao pročitati, sada. Nakon toga nađi liniju koja počinje sa
`hosts:
', i ona bi trebala biti ovakva:
hosts: files dns
Ako ne postoji linija koja počinje 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.
/etc/host.conf
Ona vjerojatno sadrži puno linija, od kojih jedna počinje sa 'order
' i
treba izgledati ovako:
order hosts,bind
Ukoliko ne postoji `order' linija, trebaš ubaciti takvu. Ona govori da
rutine za određivanje 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 resolv(8)
man stranici (učini `man 8 resolv
') u većini Linux distribucija. Ta man
stranica je IMHO čitljiva, i svi, pogotovo DNS administratori, bi je trebali
pročitati. Učini to sada, jer ako kažeš "napravit ću to kasnije" nikad se
nećeš vratiti i učiniti to.
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, pročitaj poglavlje
PiO. Sada možeš
testirati svoje postavke. Ako pogledaš svoju datoteku sa syslog porukama
(obično se zove /var/adm/messages, drugi direktorij može biti
/var/log, a druga datoteka syslog) dok startaš
named
(učini `tail -f /var/log/messages
') trebao bi vidjeti
nešto kao ovo:
(linije koje završavaju sa \ nastavljaju se u sljedećem 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 greškama, mora da je došlo do greške.
named
će 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 što dobiješ, onda radi. Nadajmo se. Ako nije, vrati se i
provjeri sve. Svaki put kad promijeniš named.conf datoteku, moraš
ponovo startati named
koristeći `ndc restart
' naredbu.
Sada možeš 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 potraži 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. Možda će
trebati malo vremena dok ne dobiješ rezultat pošto on pretražuje sve domene
koje si naveo u /etc/resolv.conf datoteci.
Ako upitaš isto to ponovo, dobit ćeš 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 znači da named
ovaj put nije otišao tražiti po mreži, već je
pogledao u svoj cache i našao ga tamo. Ali informacija u cache-u može biti
zastarjela (stale). Tako da znaš za ovu (vrlo malu) opasnost kada
dobiješ `Non-authoritative answer:
'. Kada nslookup
kaže ovo drugi
put kada ti upitaš za stroj, to je siguran znak da named
cache-ira
informaciju i to radi. Iz nslookup
-a izlaziš dajući naredbu
`exit
'.
Sada znaš kako podesiti caching named
. Popij pivo, mlijeko, ili što već
voliš da to proslaviš.