Naprej Nazaj Kazalo

4. Preprosta domena.

Kako postaviti svojo lastno domeno.

4.1 Najprej nekaj teorije

Preden resnično začnemo to poglavje, vam bom serviral nekaj teorije in primerov o tem, kako DNS deluje. In vi boste to prebrali, ker je dobro za vas. Če nočete prebrati, bi bilo dobro, da vsaj na hitro preletite. Leteti prenehajte, ko pridete do tistega, kar mora iti v vašo datoteko named.conf.

DNS je hierarhičen, drevesno strukturiran sistem. Vrh se imenuje `.' in izgovarja `koren' (ang.: root). Pod . je veliko število vrhnjih domen, od katerih so najbolj poznane ORG, COM, EDU in NET, seveda pa jih je še mnogo več. Struktura ja prav takšna kot drevo - ima korenine in iz njih poganja veje. Če imate vsaj nekaj računalniškega znanja, boste v DNS prepoznali iskalno drevo, lahko boste našli razvejanja, liste in robove.

Ko iščemo določen računalnik, gre poizvedba rekurzivno po hierarhiji, začenši pri vrhu. Če hočete izvedeti naslov prep.ai.mit.edu, mora vaš imenski strežnik najprej najti strežnik, ki je odgovoren za edu, zato vpraša . strežnik (. strežnike že pozna, ker so zapisani v root.hints), ta pa mu posreduje seznam strežnikov za edu:

$ nslookup
Default Server:  localhost
Address:  127.0.0.1

Začnemo s spraševanjem korenskega strežnika:

> server c.root-servers.net.
Default Server:  c.root-servers.net
Address:  192.33.4.12

Postavimo tip poizvedbe na NS (zapisi imenskih strežnikov, ang.: name server records)

> set q=ns

Vprašajmo za edu:

> edu.

Končna pika (.) je tu zelo pomembna, ker pove nslookup, da je edu, o katerem poizvedujemo takoj pod . (in ne pod eno od naših search domen - to pospeši iskanje).

edu     nameserver = A.ROOT-SERVERS.NET
edu     nameserver = H.ROOT-SERVERS.NET
edu     nameserver = B.ROOT-SERVERS.NET
edu     nameserver = C.ROOT-SERVERS.NET
edu     nameserver = D.ROOT-SERVERS.NET
edu     nameserver = E.ROOT-SERVERS.NET
edu     nameserver = I.ROOT-SERVERS.NET
edu     nameserver = F.ROOT-SERVERS.NET
edu     nameserver = G.ROOT-SERVERS.NET
A.ROOT-SERVERS.NET      internet address = 198.41.0.4
H.ROOT-SERVERS.NET      internet address = 128.63.2.53
B.ROOT-SERVERS.NET      internet address = 128.9.0.107
C.ROOT-SERVERS.NET      internet address = 192.33.4.12
D.ROOT-SERVERS.NET      internet address = 128.8.10.90
E.ROOT-SERVERS.NET      internet address = 192.203.230.10
I.ROOT-SERVERS.NET      internet address = 192.36.148.17
F.ROOT-SERVERS.NET      internet address = 192.5.5.241
G.ROOT-SERVERS.NET      internet address = 192.112.36.4

To nam pove, da vsi strežniki ROOT-SERVERS.NET služijo tudi za EDU., zato lahko sprašujemo katerega koli od njih. Mi bomo nadaljevali s spraševanjem C. Sedaj hočemo vedeti, kdo je strežnik za naslednji nivo domene: mit.edu:

> mit.edu.
Server:  c.root-servers.net
Address:  192.33.4.12

Non-authoritative answer:
mit.edu nameserver = W20NS.mit.edu
mit.edu nameserver = BITSY.mit.edu
mit.edu nameserver = STRAWB.mit.edu

Authoritative answers can be found from:
W20NS.mit.edu   internet address = 18.70.0.160
BITSY.mit.edu   internet address = 18.72.0.3
STRAWB.mit.edu  internet address = 18.71.0.151

strawb, w20ns in bitsy vsi strežejo mit.edu, zato izberemo enega od njih in poizvedujemo še en nivo navzgor: ai.mit.edu:

> server W20NS.mit.edu.

Vseeno je, ali so imena računalnikov zapisana z velikimi ali malimi črkami, vendar uporabljam miško za kopiranje in so zato vsa imena takšna, kot se izpišejo na zaslon.

Server:  W20NS.mit.edu
Address:  18.70.0.160

> ai.mit.edu.
Server:  W20NS.mit.edu
Address:  18.70.0.160

Non-authoritative answer:
ai.mit.edu      nameserver = ALPHA-BITS.AI.MIT.EDU
ai.mit.edu      nameserver = GRAPE-NUTS.AI.MIT.EDU
ai.mit.edu      nameserver = TRIX.AI.MIT.EDU
ai.mit.edu      nameserver = MUESLI.AI.MIT.EDU
ai.mit.edu      nameserver = LIFE.AI.MIT.EDU
ai.mit.edu      nameserver = BEET-CHEX.AI.MIT.EDU
ai.mit.edu      nameserver = MINI-WHEATS.AI.MIT.EDU
ai.mit.edu      nameserver = COUNT-CHOCULA.AI.MIT.EDU
ai.mit.edu      nameserver = MINTAKA.LCS.MIT.EDU

Authoritative answers can be found from:
AI.MIT.EDU      nameserver = ALPHA-BITS.AI.MIT.EDU
AI.MIT.EDU      nameserver = GRAPE-NUTS.AI.MIT.EDU
AI.MIT.EDU      nameserver = TRIX.AI.MIT.EDU
AI.MIT.EDU      nameserver = MUESLI.AI.MIT.EDU
AI.MIT.EDU      nameserver = LIFE.AI.MIT.EDU
AI.MIT.EDU      nameserver = BEET-CHEX.AI.MIT.EDU
AI.MIT.EDU      nameserver = MINI-WHEATS.AI.MIT.EDU
AI.MIT.EDU      nameserver = COUNT-CHOCULA.AI.MIT.EDU
AI.MIT.EDU      nameserver = MINTAKA.LCS.MIT.EDU
ALPHA-BITS.AI.MIT.EDU   internet address = 128.52.32.5
GRAPE-NUTS.AI.MIT.EDU   internet address = 128.52.36.4
TRIX.AI.MIT.EDU internet address = 128.52.37.6
MUESLI.AI.MIT.EDU       internet address = 128.52.39.7
LIFE.AI.MIT.EDU internet address = 128.52.32.80
BEET-CHEX.AI.MIT.EDU    internet address = 128.52.32.22
MINI-WHEATS.AI.MIT.EDU  internet address = 128.52.54.11
COUNT-CHOCULA.AI.MIT.EDU        internet address = 128.52.38.22
MINTAKA.LCS.MIT.EDU     internet address = 18.26.0.36

museli.ai.mit.edu je torej imenski strežnik za ai.mit.edu:

> server MUESLI.AI.MIT.EDU
Default Server:  MUESLI.AI.MIT.EDU
Address:  128.52.39.7

Spremenimo tip poizvedbe - našli smo imenski strežnik in sedaj sprašujemo za vse podatke o prep.ai.mit.edu.

> set q=any
> prep.ai.mit.edu.
Server:  MUESLI.AI.MIT.EDU
Address:  128.52.39.7

prep.ai.mit.edu CPU = dec/decstation-5000.25    OS = unix
prep.ai.mit.edu
        inet address = 18.159.0.42, protocol = tcp
          ftp  telnet  smtp  finger
prep.ai.mit.edu preference = 1, mail exchanger = gnu-life.ai.mit.edu
prep.ai.mit.edu internet address = 18.159.0.42
ai.mit.edu      nameserver = beet-chex.ai.mit.edu
ai.mit.edu      nameserver = alpha-bits.ai.mit.edu
ai.mit.edu      nameserver = mini-wheats.ai.mit.edu
ai.mit.edu      nameserver = trix.ai.mit.edu
ai.mit.edu      nameserver = muesli.ai.mit.edu
ai.mit.edu      nameserver = count-chocula.ai.mit.edu
ai.mit.edu      nameserver = mintaka.lcs.mit.edu
ai.mit.edu      nameserver = life.ai.mit.edu
gnu-life.ai.mit.edu     internet address = 128.52.32.60
beet-chex.ai.mit.edu    internet address = 128.52.32.22
alpha-bits.ai.mit.edu   internet address = 128.52.32.5
mini-wheats.ai.mit.edu  internet address = 128.52.54.11
trix.ai.mit.edu internet address = 128.52.37.6
muesli.ai.mit.edu       internet address = 128.52.39.7
count-chocula.ai.mit.edu        internet address = 128.52.38.22
mintaka.lcs.mit.edu     internet address = 18.26.0.36
life.ai.mit.edu internet address = 128.52.32.80

Tako smo s pričetkom na . našli imenske strežnike za vsak nivo domene. Če bi namesto ročnega iskanja vseh teh uporabili svoj DNS strežnik, bi si named seveda zapomnil vse informacije, ki bi jih našel pri iskanju in mu nekaj časa ne bi bilo treba ponovno poizvedovati.

V drevesu vsaka ``.'' v imenu pomeni razvejanje in vsak del med pikami je ime določene veje v drevesu.

Po drevesu se vzpenjamo tako, da vzamemo ime, o katerem poizvedujemo (prep.ai.mit.edu), najprej najdemo korenine (.) in nato poiščemo naslednjo vejo za vzpenjanje, v tem primeru edu. Ko jo najdemo, se vzpnemo po njej tako, da se priključimo na strežnik, ki je odgovoren za ta del imena. Zatem poiščemo vejo mit, ki raste iz veje edu (kombinirano ime je mit.edu) in se priključimo na strežnik, ki streže mit.edu. Spet poiščemo naslednjo vejo, tokrat ai.mit.edu in se priključimo na strežnik, odgovoren zanjo. Sedaj smo prispeli na končni strežnik, ki ga nato povprašamo za prep.ai.mit.edu. V računalniški terminologiji prep navadno imenujemo list na drevesu.

Domena, o kateri se manj govori, pa je vseeno zelo pomembna je in-addr.arpa. Prav tako, kot `navadne' domene je vgnezdena, vendar nam omogoča ravno nasprotno - da izvemo imena računalnikov iz njihovih naslovov. Pomembna stvar, ki si jo morate zapomniti je, da so IP naslovi v domeni in-addr.arpa zapisani v obratnem vrstnem redu. Če je naslov računalnika 192.128.52.43, je postopek, ki ga ubere named prav takšen, kot za prep.ai.mit.edu: najdi strežnik za arpa., najdi strežnik in-addr.arpa., najdi strežnik za 192.in-addr.arpa., najdi strežnik za 128.192.in-addr.arpa., najdi strežnik za 52.128.192.in-addr.arpa. in končno najdi zapise za 43.52.128.192.in-addr.arpa. Pametno, kajne? (Recite `da'.) Prav dejstvo, da so številke obrnjene, lahko povzroči veliko zmešnjavo.

Pravkar sem se zlagal. DNS ne deluje natanko tako, kot sem vam povedal. Vsekakor pa deluje skoraj tako.

4.2 Naša lastna domena

Sedaj bomo definirali našo lastno domeno - linux.izmislek in v njej definirali računalnike. Uporabil sem popolnoma izmišljeno domeno; tako smo lahko gotovi, da ne bomo motili koga Tam Zunaj.

Še ena stvar, preden začnemo: imena računalnikov ne smejo vsebovati določenih znakov - omejeni smo na črke angleške abecede: a-z, številke: 0-9 in znak '-' (pomišljaj). Držite se jih. Velikosti črk DNS ne razlikuje, zato je pat.uio.no isto kot Pat.UiO.No.

Delo smo začeli že s tem razdelkom v named.conf:


zone "0.0.127.in-addr.arpa" {
        type master;
        file "pz/127.0.0";
};

Prosim, zapomnite si, da na koncu domen v tej datoteki ni pike `.'. Ta razdelek pove, da bomo sedaj definirali 0.0.127.in-addr.arpa, da smo za to domeno glavni strežnik in da so podatki zanjo shranjeni v datoteki pz/127.0.0. Tudi slednjo smo že uredili, glasi pa se:


@               IN      SOA     ns.linux.izmislek. hostmaster.linux.izmislek. (
                                1       ; Serijska številka
                                8H      ; Osveževanje
                                2H      ; Ponoven poskus
                                1W      ; Potek
                                1D)     ; Minimum TTL
                        NS      ns.linux.izmislek.
1                       PTR     localhost.

Prosim, zapomnite si pike `.' na koncu vseh polnih domen v tej datoteki, kot nasprotje datoteki named.conf. Nekateri ljudje začnejo vsako `zone' datoteko z ukazom $ORIGIN, vendar je to popolnoma odveč. Izvor (kam v DNS hierarhiji spada) datoteke `zone' je namreč naveden v named.conf, v tem primeru je to 0.0.127.in-addr.arpa.

Ta datoteka `zone' vsebuje tri zapise virov (ang.: RRs, resource records): SOA, NS in PTR. SOA pomeni začetek pristojnosti (ang.: Start Of Authority). `@' je oznaka za izvor in ker je v stolpcu `domena' za to datoteko navedeno 0.0.127.in-addr.arpa, prva vrstica v resnici pomeni

0.0.127.in-addr.arpa.   IN      SOA ...

NS je zapis vira imenskega strežnika (ang.: Name Server RR). Na začetku te vrstice ni oznake `@', ker se to ohranja še iz prejšnje vrstice - takšen način prihrani veliko tipkanja. Zapis vira NS bi torej lahko zapisali tudi kot

0.0.127.in-addr.arpa.   IN      NS      ns.linux.izmislek.

DNS-u pove, kateri računalnik je strežnik za domeno 0.0.127.in-addr.arpa in to je ns.linux.izmislek. 'ns' je standardno ime za imenske strežnike, kot je www.nekaj standardno ime za spletne strežnike, vendar to ni pravilo - ime je lahko karkoli.

Na koncu sledi še zapis vira PTR, ki pravi, da je računalniku na naslovu 1 v podmreži 0.0.127.in-addr.arpa, torej 127.0.0.1, ime localhost.

Vse datoteke `zone' morajo vsebovati natanko en zapis vira SOA. Ta zapis vsebuje podatke o domeni, od kod prihaja (računalnik z imenom ns.linux.izmislek), kdo je odgovoren za njeno vsebino (hostmaster@linux.izmislek - tukaj vstavite svoj e-mail naslov), katera različica datoteke `zone' je to (serijska številka: 1) in druge podatke, ki imajo opraviti z DNS strežniki s predpomnilnikom ter sekundarnimi DNS strežniki. Za vsa ostala polja (osveževanje, ponoven poskus, potek in minimum) se zanašajte na številke, ki so navedene v tem HOWTO-ju in vse bi moralo delovati kot je treba.

Sedaj ponovno zaženite named (ukaz je ndc restart) in uporabite nslookup za ogled vašega dela:

$ nslookup

Default Server:  localhost
Address:  127.0.0.1

> 127.0.0.1
Server:  localhost
Address:  127.0.0.1

Name:    localhost
Address:  127.0.0.1

Aha, torej uspe preslikati 127.0.0.1 v localhost. Odlično. Sedaj se lahko spravimo k našemu glavnemu opravilu, domeni linux.izmislek. Najprej vstavimo nov razdelek 'zone' v named.conf:


zone "linux.izmislek" {
        notify no;
        type master;
        file "pz/linux.izmislek";
};

Spet si zapomnite, da na koncu domen v named.conf ni pik `.'.

V datoteko `zone' linux.izmislek bomo napisali nekaj popolnoma izmišljenih podatkov:


;
; Datoteka zone za linux.izmislek
;
; Popolna datoteka zone
;
@       IN      SOA     ns.linux.izmislek. hostmaster.linux.izmislek. (
                        199802151       ; serijska številka = datum + serijska #
                        8H              ; osveževanje, sekunde
                        2H              ; ponoven poskus, sekunde
                        1W              ; potek, sekunde
                        1D )            ; minimum, sekunde
;
                NS      ns              ; Internetni naslov imenskega strežnika
                MX      10 mail.linux.izmislek     ; Primarni poštni strežnik
                MX      20 mail.prijatelj.izmislek.   ; Sekundarni poštni strežnik
;
localhost       A       127.0.0.1
ns              A       192.168.196.2
mail            A       192.168.196.4

O zapisu SOA si morate zapomniti dve stvari. ns.linux.izmislek mora biti resničen računalnik z zapisom A. Prepovedano je imeti zapis CNAME za računalnik, naveden v zapisu SOA. Vsekakor ni pomembno, da je njegovo ime 'ns', lahko je kakršno koli veljavno ime. Druga stvar; hostmaster.linux.izmislek se bere kot hostmaster@linux.izmislek in mora biti obstoječ naslov ali preusmeritev naslova, na katerega bo oseba, ki vzdržuje DNS prejemala pošto (ta oseba naj pošto tudi redno pregleduje). Ni nujno, da je to ravno `hostmaster' - lahko je vaš navaden e-mail naslov, vendar se pogosto pričakuje, da obstaja tudi naslov `hostmaster'.

V tej datoteki je nov zapis vira, in sicer MX, kar pomeni poštni strežnik (ang.: Mail eXchanger). Ta zapis pove sistemom, kam naj pošljejo pošto, ki je naslovljena na nekdo@linux.izmislek, v tem primeru na mail.linux.izmislek ali mail.prijatelj.izmislek. Številka pred imeni računalnikov pomeni prednost. Če je le mogoče, se pošta pošlje strežniku z najmanjšo številko (10), sicer pa naslednjemu z najmanjšo številko, v tem primeru mail.prijatelj.izmislek, ki ima prednost 20.

Ponovno zaženite named z ukazom ndc restart in opazujte rezultate z nslookup:

$ nslookup
> set q=any
> linux.izmislek
Server:  localhost
Address:  127.0.0.1

linux.izmislek
        origin = ns.linux.izmislek
        mail addr = hostmaster.linux.izmislek
        serial = 199802151
        refresh = 28800 (8 hours)
        retry   = 7200 (2 hours)
        expire  = 604800 (7 days)
        minimum ttl = 86400 (1 day)
linux.izmislek     nameserver = ns.linux.izmislek
linux.izmislek     preference = 10, mail exchanger = mail.linux.izmislek.linux.izmislek
linux.izmislek     preference = 20, mail exchanger = mail.prijatelj.izmislek
linux.izmislek     nameserver = ns.linux.izmislek
ns.linux.izmislek  internet address = 192.168.196.2
mail.linux.izmislek        internet address = 192.168.196.4

Po pazljivem opazovanju boste odkrili napako. Vrstica

linux.izmislek     preference = 10, mail exchanger = mail.linux.izmislek.linux.izmislek

je popolnoma napačna. Morala bi biti

linux.izmislek     preference = 10, mail exchanger = mail.linux.izmislek

Namenoma sem naredil napako, da se boste lahko iz nje naučili :-) Če pogledate v datoteko `zone', boste ugotovili, da v vrstici

                MX      10 mail.linux.izmislek     ; Primary Mail Exchanger

manjka pika. Ali drugače povedano, ima 'linux.izmislek' preveč. Če se v datoteki `zone' ime računalnika ne konča s piko, se mu doda izvor in v tem primeru povzroči dvojen linux.izmislek.linux.izmislek. Torej je


                MX      10 mail.linux.izmislek.    ; Primary Mail Exchanger

ali


                MX      10 mail                 ; Primary Mail Exchanger

pravilno. Priporočam uporabo druge možnosti, ker je potrebnega manj tipkanja. Nekateri bind eksperti se s tem ne bodo strinjali, nekateri se bodo. V datoteki `zone' je lahko domena napisana in se konča s `.', ali pa ni napisana in se namesto nje privzame izvorna domena.

Poudariti moram, da v named.conf ne sme biti pike na koncu domen. Še sanja se vam ne, kolikokrat je `.' preveč ali premalo zamešala stvari in popolnoma zmedla ljudi.

Zdaj, ko sem vam vse to povedal, je tu nova, popravljena datoteka `zone' s še nekaj dodatnimi informacijami:


;
; Datoteka zone za linux.izmislek
;
; Popolna datoteka zone
;
@       IN      SOA     ns.linux.izmislek. hostmaster.linux.izmislek. (
                        199802151       ; serijska številka = datum + serijska #
                        8H              ; osveževanje, sekunde
                        2H              ; ponoven poskus, sekunde
                        1W              ; potek, sekunde
                        1D )            ; minimum, sekunde
;
                TXT     "Linux.Izmislek, vaši DNS konzultanti"
                NS      ns              ; Internetni naslov imenskega strežnika
                NS      ns.prijatelj.izmislek.
                MX      10 mail         ; Primarni poštni strežnik
                MX      20 mail.prijatelj.izmislek. ; Sekundarni poštni strežnik

localhost       A       127.0.0.1

gw              A       192.168.196.1
                HINFO   "Cisco" "IOS"
                TXT     "Usmerjevalnik"

ns              A       192.168.196.2
                MX      10 mail
                MX      20 mail.prijatelj.izmislek.
                HINFO   "Pentium" "Linux 2.0"
www             CNAME   ns


donald          A       192.168.196.3
                MX      10 mail
                MX      20 mail.prijatelj.izmislek.
                HINFO   "i486"  "Linux 2.0"
                TXT     "DEK"

mail            A       192.168.196.4
                MX      10 mail
                MX      20 mail.prijatelj.izmislek.
                HINFO   "386sx" "Linux 1.2"

ftp             A       192.168.196.5
                MX      10 mail
                MX      20 mail.prijatelj.izmislek.
                HINFO   "P6" "Linux 2.1.86"

Tukaj smo spoznali še cel kup novih zapisov: HINFO, informacija o računalniku (ang.: Host INFOrmation), ima dva dela in dobra navada je, da ju izpolnite. Prvi del je strojna oprema ali procesor računalnika, drugi pa operacijski sistem. Računalnik z imenom 'ns' ima procesor Pentium in poganja Linux 2.0. CNAME, kanonično ime (ang.: Canonical NAME) je način za poimenovanje istega računalnika z več različnimi imeni. V našem primeru je www alternativno ime za ns.

Uporaba zapisa CNAME je nekoliko sporna, vendar se je popolnoma varno ravnati po pravilu, da se zapisi MX, CNAME in SOA ne smejo nikoli nanašati na zapis CNAME, temveč samo na nekaj z zapisom A. Na primer, ni priporočljivo, da imate


foobar          CNAME   www                     ; NE!

medtem, ko je takole pravilno


foobar          CNAME   ns                      ; Da!

Prav tako se je varno zanašati na to, da CNAME ni dovoljeno ime računalnika za e-mail naslov: webmaster@www.linux.izmislek na primer ni dovoljen naslov glede na zgoraj navedene nastavitve. Pričakujete lahko, da bo kar nekaj administratorjev Tam Zunaj hotelo, da to pravilo upoštevate, čeprav za vas morda deluje. Način, da preprečite težave je uporaba zapisov A (in še nekaterih drugih, na primer MX):


www             A       192.168.196.2

Nekaj bind strokovnjakov celo priporoča, naj se zapisi CNAME sploh ne uporabljajo, vendar razprava 'zakaj' in 'zakaj ne' ne spada v ta HOWTO.

Kot ste lahko že opazili, se ta HOWTO in mnogo internetnih strani ne drži tega pravila.

Naložite novo bazo podatkov z ukazom ndc reload, ki pove named, naj še enkrat prebere svoje datoteke.

$ nslookup
Default Server:  localhost
Address:  127.0.0.1

> ls -d linux.izmislek

Ta ukaz prelista vse zapise. Rezultat je sledeč:

[localhost]
$ORIGIN linux.izmislek.
@                       1D IN SOA       ns hostmaster (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                        1D IN NS        ns
                        1D IN NS        ns.prijatelj.izmislek.
                        1D IN TXT       "Linux.Izmislek, vaši DNS konzultanti"
                        1D IN MX        10 mail
                        1D IN MX        20 mail.prijatelj.izmislek.
gw                      1D IN A         192.168.196.1
                        1D IN HINFO     "Cisco" "IOS"
                        1D IN TXT       "Usmerjevalnik"
mail                    1D IN A         192.168.196.4
                        1D IN MX        10 mail
                        1D IN MX        20 mail.prijatelj.izmislek.
                        1D IN HINFO     "386sx" "Linux 1.0.9"
localhost               1D IN A         127.0.0.1
www                     1D IN CNAME     ns
donald                  1D IN A         192.168.196.3
                        1D IN MX        10 mail
                        1D IN MX        20 mail.prijatelj.izmislek.
                        1D IN HINFO     "i486" "Linux 1.2"
                        1D IN TXT       "DEK"
ftp                     1D IN A         192.168.196.5
                        1D IN MX        10 mail
                        1D IN MX        20 mail.prijatelj.izmislek.
                        1D IN HINFO     "P6" "Linux 1.3.59"
ns                      1D IN A         192.168.196.2
                        1D IN MX        10 mail
                        1D IN MX        20 mail.prijatelj.izmislek.
                        1D IN HINFO     "Pentium" "Linux 1.2"

Tole je v redu. Kot lahko vidite, je izpis zelo podoben sami datoteki `zone'. Poglejmo, kaj pravi samo za www:

> set q=any
> www.linux.izmislek.
Server:  localhost
Address:  127.0.0.1

www.linux.izmislek canonical name = ns.linux.izmislek
linux.izmislek     nameserver = ns.linux.izmislek
linux.izmislek     nameserver = ns.prijatelj.izmislek
ns.linux.izmislek  internet address = 192.168.196.2

Z drugimi besedami, pravo ime www.linux.izmislek je ns.linux.izmislek, poleg tega pa vam poda še nekaj drugih informacij o ns, dovolj, da bi se lahko priključili nanj, če bi bili program.

Sedaj smo na polovici poti.

4.3 Obratni vnosi

Trenutno lahko programi pretvorijo imena v linux.izmislek v naslove, na katere se lahko priključijo, potrebujemo pa še obratne vnose, ki bodo omogočili DNS-u, da pretvarja naslove v imena. Imena so pomembna informacija za mnoge strežnike (FTP, IRC, WWW in druge), ki na podlagi tega odločajo, ali se bodo sploh pogovarjali z vami ali ne ter kakšno prednost vam bodo dali v primeru, da se bodo. Za popoln dostop do uslug na internetu potrebujete obratne vnose.

Dodajte tole v named.conf:


zone "196.168.192.in-addr.arpa" {
        notify no;
        type master;
        file "pz/192.168.196";
};

Stvar je natanko takšna, kot pri 0.0.127.in-addr.arpa, pa tudi vsebina je podobna:


@       IN      SOA     ns.linux.izmislek. hostmaster.linux.izmislek. (
                        199802151 ; Serijska številka = datum + serijska #
                        8H      ; Osveževanje
                        2H      ; Ponoven poskus
                        1W      ; Potek
                        1D)     ; Minimum TTL
                NS      ns.linux.izmislek.

1               PTR     gw.linux.izmislek.
2               PTR     ns.linux.izmislek.
3               PTR     donald.linux.izmislek.
4               PTR     mail.linux.izmislek.
5               PTR     ftp.linux.izmislek.

Ponovno zaženite named (ndc restart) in preglejte vaše delo z nslookup:


> 192.168.196.4
Server:  localhost
Address:  127.0.0.1

Name:    mail.linux.izmislek
Address:  192.168.196.4

Zaenkrat izgleda v redu, preglejmo še ostale dele:


> ls -d 196.168.192.in-addr.arpa
[localhost]
$ORIGIN 196.168.192.in-addr.arpa.
@                       1D IN SOA       ns.linux.izmislek. hostmaster.linux.izmislek. (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                        1D IN NS        ns.linux.izmislek.
1                       1D IN PTR       gw.linux.izmislek.
2                       1D IN PTR       ns.linux.izmislek.
3                       1D IN PTR       donald.linux.izmislek.
4                       1D IN PTR       mail.linux.izmislek.
5                       1D IN PTR       ftp.linux.izmislek.
@                       1D IN SOA       ns.linux.izmislek. hostmaster.linux.izmislek. (
                                        199802151       ; serial
                                        8H              ; refresh
                                        2H              ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

Odlično! Če vaš izpis ne izgleda takole, poglejte v syslog za sporočila o napakah, kot sem razložil na začetku tega poglavja.

4.4 Opozorila

k0Rad bi dodal še nekaj stvari. IP številke, ki sem jih uporabil v primerih, navedenih tukaj, so vzete iz blokov 'privatnih mrež', kar pomeni, da se jih v internetu ne sme uporabljati za prave naslove. So pa zato varne za uporabo v primerih. Druga stvar, na katero vas moram opozoriti je vrstica notify no;, ki pove named, naj svojih sekundarnih strežnikov ne opozarja na spremembe datotek `zone'. V bind-8 lahko named opozori druge strežnike, navedene v zapisih NS, kadar se kakšna od teh spremeni. To je sicer pripravno pri resnični uporabi, za privatne poskuse pa mora biti izključeno - saj vendar nočemo, da bi naši poskusi onesnažili internet, kajne?

In seveda, ta domena je popolnoma izmišljena, kot so izmišljeni tudi naslovi v njej. Za primer prave domene glejte naslednje poglavje.

4.5 Zakaj obratne poizvedbe ne delujejo.

Obstaja nekaj zank pri postavljanju obratnih vnosov, ki jih navadno rešimo z imenskimi poizvedbami. Preden greste naprej, potrebujete delujoče obratne vnose - če vam ne delujejo, pojdite nazaj in jih popravite.

Razložil bom dve možnosti, zaradi katerih obratni vnosi ne delujejo, kot so videti iz izven vašega omrežja.

Obratni vnosi niso pristojni.

Ko dobite od ponudnika svoj del omrežja in domeno, je domena navadno pristojna za ta del omrežja. Pristojnost je zapis NS, lepilo, ki vam omogoča priti od enega imenskega strežnika do drugega, kot sem pojasnil v poglavju o teoriji. Če vaši obratni vnosi ne delujejo, pojdite nazaj in ga preberite. Zdaj.

Tudi obratni vnosi morajo biti pristojni za določen del omrežja. Če ste dobili omrežje 192.168.192 z domeno linux.izmislek, mora ponudnik v svoje datoteke `zone' zapisati tako vnos NS za imenske poizvedbe, kot tudi vnos NS za obratne poizvedbe. Če sledite verigi od in-addr.arpa. do vas, boste verjetno našli prekinitev - najverjetneje pri vašem ponudniku. Kontaktirajte ga in ga prosite za odpravo napake.

Imate brezrazredno podmrežo

To je dokaj zapletena tema, vendar so brezrazredne podmreže dandanes zelo pogoste in če niste vsaj srednje veliko podjetje, ste v njej najverjetneje tudi vi.

Brezrazredne podmreže danes ohranjajo internet pri življenju. Nekaj let nazaj je bilo veliko razprav o pomanjkanju IP številk. Pametni ljudje v IETF (Internet Engineering Task Force, organizacija, ki skrbi za internet) so staknili glave in iznašli rešitev. Za določeno ceno. Ta cena je, da dobite manj kot ``C'' podmrežo, poleg tega pa se lahko zgodi, da nekaj stvari ne bo delalo. Vprašajte Gospoda DNS na http://www.acmebw.com/askmrdns/00007.htm za dobro razlago, kako se spopasti s tem problemom.

Ste prebrali? Tega ne bom razlagal, zato si, prosim, preberite.

Prvi del problema je, da mora vaš ponudnik interneta razumeti tehniko, ki jo opisuje Gospod DNS. Nekateri majhni ponudniki je ne razumejo popolnoma, zato jim jo boste morda morali razložiti. Prej se prepričajte, da jo sami obvladate ;-) Ponudnik bo nato postavil obratne vnose na njihovem strežniku, kar lahko preverite z nslookup.

Drugi in zadnji del problema pa je, da morate tudi vi razumeti tehniko. Če o tem niste prepričani, pojdite nazaj in preberite še enkrat, nato pa lahko postavite vaše lastne brezrazredne obratne vnose, kot vam to opisuje Gospod DNS.

Obstaja pa še ena težava. Stari programi ne bodo sposobni slediti triku CNAME v verigi poizvedovanja in zato ne bodo sposobni naresti obratnih poizvedb za vaš računalnik. To lahko pomeni, da vas bo strežnik razvrstil v napačen razred, vam prepovedal dostop oziroma storil kaj podobnega. Če njegove usluge resnično potrebujete, je edina možnost (ki jo jaz poznam), da poprosite vašega ponudnika, naj vstavi vaš PTR zapis v njihovo brezrazredno datoteko `zone', namesto v trik s CNAME vnosom.

Nekateri ponudniki interneta vam bodo ponudili tudi drugačne rešitve, kot so spletni forumi za obratne vnose in podobni avtomagični sistemi.


Naprej Nazaj Kazalo