Kako podesiti vlastitu domenu.
Kao prvo: pročitao si sve ono prije ovoga, zar ne? Morao bi.
Prije nego što zapravo počnemo ovo poglavlje, servirat ću ti malo teorije i primjera rada DNS-a. I ti ćeš to pročitati jer je to dobro za tebe. Ako ti se `ne da', ipak bi trebao nabrzinu prolistati. Prestani listati kada dođeš do dijela gdje se opisuje named.conf datoteka.
DNS je hijerarhijski sustav, strukturiran kao stablo. Vrh se piše
`.
' i čita `korijen' (eng. `root'), kao što je uobičajeno za
strukture podataka u obliku stabla. Ispod .
su mnoge `Top Level
Domains' (TLD) odn. Najviše Domene; 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 računarstvu, prepoznat ćete DNS
kao `search tree', i moći ćete naći elemente (`nodes'), krajnje točke (`leaf
nodes') i rubove (`edges'). Točke su elementi, rubovi su na imenima.
Kada traži stroj, upit prolazi rekurzivno kroz hijerarhiju, počevši od
vrha. Ako želiš saznati adresu stroja prep.ai.mit.edu
, tvoj imenski
server mora negdje početi tražiti. Počinje gledajući u svoj cache. Ako on
zna odgovor, jer ga je prije spremio, odgovorit će odmah, kako smo vidjeli u
prošlom poglavlju. Ako ne zna, brisat će dijelove imena počevši s lijeve
strane, provjeravajući zna li što o 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 neće
znati odgovor, ali će pomoći tvom serveru dajući mu preporuku, govoreći mu
gdje da gleda. Ove preporuke će na kraju dovesti tvoj server do imenskog
servera koji zna odgovor. Sada ću ovo ilustrirati. +norec
znači 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 previše 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 upućuje 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 upućuje 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 naše pitanje.
"AUTHORITY SECTION" sadrži informacije o tome koje servere trebamo pitati o
ai.mit.edu
sljedeći put. Tako sada možete pitati njih direktno,
sljedeći put kada budete znatiželjni o ai.mit.edu
imenima.
Tako smo počevši od .
uspješno našli imenske servere za sljedeći
nivo imena domene, uz preporuke. Da si koristio svoj DNS server umjesto svih
ovih ostalih, tvoj 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 točka grananja. I
svaki dio između ``.
'' je ime za posebnu granu u stablu. Stablom se
penjemo uzimajući ime koje želimo (prep.ai.mit.edu
) pitajući 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
pređu granice cachea, rekurzivni `resolver' počinje pitati servere, prateći
preporuke (rubove) dalje u imenu.
Domena o kojoj se puno manje govori, ali jednako važna domena je
in-addr.arpa
. Ona se također dijeli kao i
`normalne' domene. in-addr.arpa
nam dopušta da dobijemo ime stroja
kada imamo njegovu adresu. Važna stvar kod ovoga je da primijetiš da su
IP-evi zapisani obrnutim redosljedom u in-addr.arpa.
domeni. Ako imaš
adresu stroja: 161.53.3.7, named
je traži baš kao dns.srce.hr
:
traži arpa.
servere. Traži u in-addr.arpa.
serverima, traži
161.in-addr.arpa.
servere, traži 53.161.in-addr.arpa
, traži
3.53.161.in-addr.arpa.
servere. Traži potrebne podatke o
7.3.53.161.in-addr.arpa.
serveru. Pametno, ha? (Reci `da'.) Ipak,
obrtanje brojeva vas može godinama zbunjivati.
Sada ćemo definirati našu 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 počnemo: nisu svi znakovi dozvoljeni u imenima
strojeva. Ograničeni smo na slova engleske abecede: a-z, brojeve 0-9 i
znak `-' (crta). Drži se tih znakova. Velika i mala slova su ista DNS-u,
tako da su dns.srce.hr
i DNS.SRCE.Hr
isto.
Već smo započeli 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 započeti svaku
datoteku zone sa $ORIGIN
direktivom, ali to je višak. Porijeklo
(mjesto iz DNS hijerarhije gdje pripada) datoteke zone je određeno u `zone'
sekciji named.conf datoteke; u ovom slučaju to je
0.0.127.in-addr.arpa
.
Ova `datoteka zone' sadrži 3 `zapisa o resursu' (resource
record, RR): SOA RR, NS RR, i PTR RR. SOA je skraćenica od Start Of
Authority (početak nadležnosti). Znak `@' je posebna oznaka koja znači
porijeklo, i zbog toga što `domain' kolona za ovu datoteku kaže
0.0.127.in-addr.arpa
, prva linija zapravo znači:
0.0.127.in-addr.arpa. IN SOA ...
NS je Name Server RR (imenski server). Nema znaka `@' na početku ove linije; ovo se podrazumijeva jer je zadnja linija započela sa `@'. To nas štedi od tipkanja. Tako da bi se NS linija mogla pisati i ovako:
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
uobičajeno ime za imenske servere, ali kao i kod web servera, koji se
obično zovu www.
nešto, to ime može biti bilo što.
I konačno, PTR (`Domain Name Pointer', pokazivač na ime domene) zapis
govori da se stroj na adresi 1 u podmreži 0.0.127.in-addr.arpa.
odn.
127.0.0.1
zove localhost
.
SOA zapis je uvod u svaku datoteku zone, i treba biti točno jedan
takav zapis u svakoj datoteci zone. On opisuje zonu, odakle dolazi (stroj
zvan ns.linux.bogus
), tko je odgovoran za njen sadržaj
(hostmaster@linux.bogus
; ovdje trebate staviti vašu e-mail adresu),
koja je ovo verzija datoteke zone (serial: 1) i ostale stvari koje imaju
veze sa cache-iranjem i sekundarnim DNS serverima. Za ostala polja (refresh,
retry, expire i minimum) koristi brojeve koji se koriste u ovom KAKOu i
trebao bi biti siguran. Prije SOA dolazi obavezni $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, današnji datum + današnja revizija 8H ; refresh, sekundi 2H ; retry, sekundi 4W ; expire, sekundi 1D ) ; minimum, sekundi ; NS ns ; Internet adresa imenskog servera MX 10 mail.linux.bogus ; primarni Mail eXchanger MX 20 mail.friend.bogus. ; sekundarni Mail eXchanger ; localhost A 127.0.0.1 ns A 192.168.196.2 mail A 192.168.196.4
Dvije stvari se moraju zapaziti kod SOA zapisa. ns.linux.bogus
mora biti pravi stroj sa A zapisom (Address = adresa, op.prev.).
Nije ispravno imati CNAME (Canonical NAME = osnovno ime, op.prev.)
zapis za stroj koji se navede u SOA zapisu. Njegovo ime ne mora biti
`ns
', može biti bilo koje ispravno ime stroja. Dalje,
hostmaster.linux.bogus
treba biti pročitano kao
hostmaster@linux.bogus
. Ovo treba biti mail alias (drugo ime e-maila,
op.prev.), ili mailbox (e-mail `sandučić', op.prev.), gdje osoba (osobe)
koja održava DNS redovno čita postu. Bilo kakav e-mail koji se tiče domene
bit će poslan na adresu navedenu ovdje. Ime ne mora biti `hostmaster
',
može biti bilo kakva ispravna e-mail adresa, ali se često očekuje da e-mail
adresa `hostmaster
' također radi.
Postoji jedan novi zapis o resursu (RR) u ovoj datoteci, MX zapis,
ili Mail eXchanger RR (zapis o resursu razmjenitelja pošte). On govori
sustavima za poštu gdje slati poštu 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, pošta će biti poslana onome s prvim većim
brojem, sekundarnim strojem za poštu, tj. mail.friend.bogus
koji ovdje
ima prioritet 20.
Restartaj named
pokrećući 'ndc restart
'. Pregledaj rezultate
dig
om:
$ 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 pažljivijeg pregleda otkrit ćeš grešku. 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 grešku kako bi ti mogao učiti iz nje :-) Gledajući u datoteku zone naći ćemo ovaj redak:
MX 10 mail.linux.bogus ; primarni Mail eXchanger
Nedostaje mu točka. Ili ima `linux.bogus
' viška. Ako ime stroja u
datoteci zone ne završava točkom, porijeklo se dodaje na njen kraj
uzrokujući dvostruki linux.bogus.linux.bogus. Dakle ili
MX 10 mail.linux.bogus. ; primarni Mail eXchanger
ili
MX 10 mail ; primarni Mail eXchanger
je ispravno. Ja više volim zadnji oblik, kraći je za tipkanje. Postoje neki
BIND znalci koji se ne slažu, a i neki koji se slažu s ovim. U datoteci zone
zapis bi trebao završavati domenom i `.
', ili bez ičega, kada bi se
nadopunio porijeklom.
Moram naglasiti da u datoteci named.conf ne smije biti
`.
' nakon imena domena. Nemaš pojma koliko puta je `.
' viška ili
manjka `sredila' stvari i užasno 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, današnji datum + današnja revizija 8H ; refresh, sekundi 2H ; retry, sekundi 4W ; expire, sekundi 1D ) ; minimum, sekundi ; TXT "Linux.Bogus, tvoji DNS savjetnici" NS ns ; Internet adresa imenskog servera NS ns.friend.bogus. MX 10 mail ; primarni Mail eXchanger MX 20 mail.friend.bogus. ; sekundarni Mail eXchanger localhost A 127.0.0.1 gw A 192.168.196.1 HINFO "Cisco" "IOS" TXT "The router" ns A 192.168.196.2 MX 10 mail MX 20 mail.friend.bogus. HINFO "Pentium" "Linux 2.0" www CNAME ns donald A 192.168.196.3 MX 10 mail MX 20 mail.friend.bogus. HINFO "i486" "Linux 2.0" TXT "DEK" mail A 192.168.196.4 MX 10 mail MX 20 mail.friend.bogus. HINFO "386sx" "Linux 1.2" ftp A 192.168.196.5 MX 10 mail MX 20 mail.friend.bogus. HINFO "P6" "Linux 2.1.86"
Više je novih RR-ova ovdje: HINFO (Host INFOrmation =
informacije o stroju) ima dva dijela, dobra je navika staviti ih u
navodnike. Prvi dio je hardver ili CPU na stroju, a drugi dio je softver ili
OS na stroju. Stroj zvan `ns
' ima Pentium CPU i radi pod Linuxom 2.0.
CNAME (Canonical NAME = osnovno ime) je način da date svakom
stroju više imena. Tako je `www
' drugo ime za `ns
'.
Korištenje CNAME zapisa je pomalo kontroverzno. Ali je sigurno postupati po pravilu da MX, CNAME ili SOA zapis nikad ne smiju upućivati na CNAME zapis, već na nešto sa A zapisom, i ne preporučuje se imati:
bla CNAME www ; NE!
ali je ispravno imati:
bla CNAME ns ; Da!
Također 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. Možeš očekivati priličan broj administratora mail
sustava Tamo Vani koji će nametati ovo pravilo čak i ako takve adrese tebi
budu radile. Način kako izbjeći ovo je koristeći A zapise (i možda neke
druge, kao MX zapis):
www A 192.168.196.2
Stanovit broj starih BIND stručnjaka preporučuje uopće ne koristiti CNAME. Ipak, rasprava o tome zašto ili zašto ne je izvan okvira ovog KAKOa.
Ali kako vidiš, ovaj KAKO i puno servera ne prate to pravilo.
Učitaj novu bazu podataka pokrećući `ndc reload
', što uzrokuje da
named
ponovo pročita 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 slično samoj datoteci zone.
Provjerimo što kaže 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 riječima, pravo ime za www.linux.bogus
je
ns.linux.bogus
, i daje ti neke informacije o ns
-u također,
dovoljno da se spojiš na njega, da si program.
Sada smo na pola puta.
Sada programi mogu prebacivati imena u linux.bogus
-u u adrese na
koje se mogu spojiti. Ali također je potrebna i obrnuta zona, koja omogućuje
da DNS prebacuje iz adrese u ime. Ovu metodu koriste mnogi serveri raznih
vrsta (FTP, IRC, WWW i drugi) da bi odredili hoće li pričati s tobom ili ne,
a ako hoće, možda i koliko će ti prioriteta pridati. Za puni pristup svim
uslugama na Internetu obrnuta zona je obavezna.
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 sadržaj je sličan:
$TTL 3D @ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 199802151 ; Serial, današnji datum + današnja revizija 8H ; Refresh 2H ; Retry 4W ; Expire 1D) ; Minimum TTL NS ns.linux.bogus. 1 PTR gw.linux.bogus. 2 PTR ns.linux.bogus. 3 PTR donald.linux.bogus. 4 PTR mail.linux.bogus. 5 PTR ftp.linux.bogus.
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, potraži poruke o greškama u syslogu, objasnio sam kako to učiniti u prvom poglavlju, pod naslovom "Startanje nameda".
Postoji nekoliko stvari koje bi trebao dodati ovdje. IP brojevi korišteni
gore su uzeti iz jednog od blokova `privatnih mreža', tj. brojevi koje nije
dopušteno koristiti javno na Internetu. Zato su prikladni i sigurni kao
primjer u ovom KAKO-u. Druga stvar je `notify no;
' linija. Ona govori
named
u da ne obavijesti svoje sekundarne (slave = ropske) servere
kada se dogodi promjena u jednoj od datoteka zona. U BIND-u 8 named
može obavijestiti ostale servere navedene u NS zapisima u datoteci zone kada
je zona promijenjena. Ovo je zgodno za uobičajenu upotrebu, ali za privatne
pokuse sa zonama ova funkcija treba biti isključena -- ne želimo da pokus
zagadi Internet, zar ne?
I, naravno, ova domena je stvarno neispravna, kao i sve adrese u njoj. Za pravi primjer domene iz stvarnosti pogledaj sljedeće poglavlje.
Postoji par ``kvaka'' koje se normalno izbjegnu s upitima za imenima, ali koje se često vidi pri podešavanju obrnutih zona. Prije no što nastaviš, trebat ćeš ispravne obrnute upite svojih strojeva na svom imenskom serveru. Ako to ne radi, vrati se i popravi ih prije nastavljanja.
Raspravit ću dva neuspjeha obrnutih upita koji se mogu vidjeti izvan tvoje mreže.
Kada od pružatelja usluga zatražiš opseg mrežnih adresa i ime domene, to se ime normalno uvijek prepusti tebi, ti bivaš opunomoćen za administriranje (eng. delegate). Postupak prepuštanja (eng. delegation) je povezujući NS zapis koji pomaže u prelaženju s jednog imenskog servera na drugi, kao što je objašnjeno u gornjem poglavlju o suhoparnoj teoriji. Pročitao si to, zar ne? Ako tvoja obrnuta zona ne radi, vrati se i pročitaj. Sada.
Obrnuta zona također treba biti prepuštena. Ako si od svog pružatelja
usluga dobio mrežu 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 mreže, vjerojatno ćeš naći prekid
u lancu, vrlo vjerojatno kod tvog pružatelja usluga. Nakon što nađeš
problem, obrati se svom pružatelju usluga i traži od njih da isprave grešku.
Ovo je pomalo napredna tema, ali podmreže bez klasa su danas vrlo česte i vjerojatno je imaš ako si u maloj tvrtci.
Podmreža 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 održavaju Internet) su razmislili i riješili problem. Za određenu cijenu. Cijena je to da ćeš dobiti manje od ``C'' podmreže i neke stvari će se možda pokvariti. Molim pogledaj Ask Mr. DNS at za dobro objašnjenje ovoga i kako s tim raditi.
Jesi li pročitao? Neću to objašnjavati, molim te pročitaj.
Prvi dio problema je to što tvoj ISP mora shvaćati tehniku koju opisuje
Mr. DNS. Ovo ne poznaju svi mali ISP-ovi, pa ćeš im možda to trebati
objasniti, i biti uporan. Ali prvo provjeri da to sam razumiješ ;-). Oni će
onda podesiti dobru obrnutu zonu na svom serveru čiju ćeš ispravnost moći
provjeriti dig
om.
Drugi i posljednji dio problema je to da ti moraš razumjeti tehniku. Ako nisi siguran, vrati se i ponovo pročitaj o njoj. Tada ćeš moći podesiti svoju besklasnu obrnutu zonu kao što je opisao Mr. DNS.
Ovdje vreba još jedna zamka. Stariji `resolveri' neće moći pratiti
CNAME
trik u lancu i neće uspjeti naći ime tvog stroja iz IP adrese.
Ovo može rezultirati time da neke mrežne usluge tvoj stroj stave u krivu
klasu pristupa, onemoguće mu pristup ili tako nešto. Ako naletiš na tako
nešto, jedino rješenje (meni znano) je da tvoj ISP umetne tvoj PTR
zapis direktno u njihovu trik besklasnu datoteku zone umjesto trik
CNAME
zapisa.
Neki ISP-ovi će ponuditi druge načine rješavanja ovoga, kao što su Web-bazirani formulari u koje možeš upisati svoja obrnuta prepisivanja ili drugi automagični sustavi.
Jednom kad podesiš svoje zone ispravno na primarnom serveru (eng. `master', gospodar) moraš podesiti makar jedan sekundarni server (eng. `slave', rob). `Slave' serveri su potrebni za robusnost. Ako se tvoj `master' server sruši, ljudi s mreže će još uvijek moći doći do informacija o tvojoj domeni od `slave' servera. Jedan `slave' server treba biti što je dalje moguće od `mastera'. Tvoji `master' i `slave' serveri trebaju dijeliti što je manje moguće od ovoga: napajanje, lokalnu mrežu, ISP, grad i zemlja. Ako su sve ove stvari različite za tvoje `master' i `slave' servere, našao si jako dobar `slave'.
`Slave' je jednostavno imenski server koji kopira datoteke zona od `mastera'. Podešavaš 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, današnji datum + današnja 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' veći od onoga na `slaveu'. Nakon svakog `refresh' (tj. osvježavanje) intervala, `slave' će provjeriti da li se što mijenjalo na `masteru'. Ako provjera ne uspije (jer je `master' nedostupan), on će ponovo pokušati nakon `retry' (tj. ponovljen pokušaj) intervala. Ako nastavi s neuspjesima do `expire' (tj. istek roka) intervala, `slave' će izbrisati zonu sa svog datotečnog sustava i više neće biti server za nju.