Kako postaviti svojo lastno domeno.
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.
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.
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.
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.
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.
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.
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.