Next Previous Contents

5. Jednostavna domena.

Kako podesiti vlastitu domenu.

5.1 Ali prvo malo suhoparne teorije

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.

5.2 Naša domena.

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 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 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.

5.3 Obrnuta zona

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".

5.4 Riječi opreza

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 namedu 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.

5.5 Zašto ne rade obrnuti upiti.

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.

Obrnuta zona nije prepuštena.

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.

Imaš podmrežu bez klasa

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 digom.

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.

5.6 `Slave' serveri

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.


Next Previous Contents