Kako postaviti svojo domeno
Najprej: Saj ste prebrali vse do tu, kajne? To je namreč nujno.
Preden se zares lotimo tega poglavja, vam bom postregel z nekaj teorije in
zgledi o tem, kako deluje DNS. In vi boste to prebrali, ker vam bo koristilo. Če se
vam tega zares ne ljubi brati, pa bi bilo dobro, ko bi vsaj na hitro preleteli.
Branje upočasnite, 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), kot je značilno za drevesne podatkovne strukture.
Pod .
je veliko število vrhnjih domen (ang.: TLD, Top Level Domain), od katerih
so najbolj znane ORG
, COM
, EDU
in NET
, seveda pa jih je še
veliko več. Struktura je prav taka kakor drevo - ima korenino in je razvejena. Če
imate vsaj nekaj računalniškega znanja, boste v DNS prepoznali iskalno drevo, našli
boste stičišča, liste in robove. Pike so stičišča in robovi so na imenih.
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
nekje začeti. Začne s svojim predpomnilnikom. Če je v predpomnilniku odgovor, bo
odgovoril, kakor smo videli v prejšnjem razdelku. Če odgovora ne pozna, bo začel
odstranjevati dele imena, začenši na levi strani. Pogledal bo, ali ve, kaj o
ai.mit.edu.
, potem o mit.edu.
, potem o edu.
. Vedno pa pozna .
,
saj je v datoteki root.hints
. Potem bo povprašal .
strežnik o
prep.ai.mit.edu
. Ta .
strežnik ne bo poznal odgovora, bo pa pomagal s
preusmeritivjo (ang. refferal), s katero bo nakazal, kje naj se išče odgovor. Prek
preusmeritev bo naš strežnik prišel do strežnika, ki bo imel pravi odgovor. To bom
zdaj ponazoril. +norec
pomeni, naj dig sprašuje nerekurzivno, tako da moramo
sami delati rekurzijo. Z drugimi stikali zmanjšamo obseg podatkov, ki jih izpisuje
dig:
$ 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
To je preusmeritev. Dobili samo samo "Authority section", brez "Answer section". Naš lastni imenski strežnik nas preusmeri. Izberimo naključno enega:
$ 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
Takoj nas preusmeri na strežnik MIT.EDU. Znova naključno izberemo neki strežnik:
$ 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
Tokrat smo dobili tudi "ANSWER SECTION" in odgovor na naše vprašanje. V razdelku
"AUTHORITY SECTION" je podatek, katere strežnike naj naslednjič povprašamo o
ai.mit.edu
. Tako lahko neposredno njih vprašamo, kadar bomo spraševali po
imenih iz ai.mit.edu
.
Začenši s .
, smo našli imenski strežnik za vsako stopnjo v imenu domene s
preusmeritvijo. Če bi uporabili svoj strežnik DNS namesto vseh drugih strežnikov, bi
se vsi tako zbrani podatki shranili v predpomnilnik in kar nekaj časa mu ne bi bilo
treba ponoviti že opravljenih poizvedb.
V drevesni prispodobi je vsaka ``.
'' v imenu vejišče. Vsak del med dvema
``.
'' je ime posameznih vej v drevesu. Po drevesu se gre tako, da se vzame
želeno ime (prep.ai.mit.edu
) in poizvemo pri korenu (.
) ali pri
kateremkoli že strežniku od korena proti prep.ai.mit.edu, ki ga imamo v
predpomilniku. Šele ko v predpomnilniku ni več iskanih zapisov, se rekurzivne
poizvedbe opravijo pri zunanjih strežnikih in se sledi preusmeritvam (ang. refferal)
vse dlje proti imenu.
Domena, o kateri se manj govori, a je vseeno zelo pomembna, je in-addr.arpa
.
Prav tako kakor `navadne' domene je ugnezdena, vendar nam omogoča ravno nasprotno -
da izvemo imena računalnikov iz njihovih naslovov. Pomembno si je zapomniti, da so
naslovi IP v domeni in-addr.arpa
zapisani v nasprotnem vrstnem redu. Če je
naslov računalnika 192.128.52.43
, je postopek, ki ga ubere named, prav tak
kakor 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.
Bistro, kaj? (Recite `da'.) Prav dejstvo, da so
številke obrnjene, lahko povzroči veliko zmešnjavo.
Zdaj bomo definirali svojo domeno - linux.izmislek
- in v njej definirali
računalnike. Uporabil sem popolnoma izmišljeno domeno; tako smo lahko gotovi, da ne
bomo komu skočili v zelje.
Še nekaj, preden začnemo: v imenih računalnikov ne sme biti določenih znakov --
omejeni smo na črke angleške abecede: a-z, na številke:0-9 in na znak '-'
(pomišljaj). Držite se jih. DNS ne razlikuje različnih velikosti črk, zato je
pat.uio.no
zanj isto kakor 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 zdaj definirali 0.0.127.in-addr.arpa
, da smo za to
domeno glavni (angl. master) strežnik in da so podatki zanjo shranjeni v datoteki
pz/127.0.0
. Datoteko smo že prej ustvarili, v njej pa je:
$TTL 3D @ IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 1 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 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 začnejo vsako območno datoteko z ukazom
$ORIGIN
, vendar je to popolnoma odveč. Izvor (kam v hierarhiji DNS
spada) območne datoteke je namreč naveden v named.conf
, v tem primeru je to
0.0.127.in-addr.arpa
.
V tej območni datoteki so tri zapisi 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 navedena 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 - to prihrani veliko tipkanja. Zapis vira NS bi torej lahko zapisali tudi kot
0.0.127.in-addr.arpa. IN NS ns.linux.izmislek
DNS 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.
Zapis vira PTR (ang.: Domain Name Pointer) pravi, da se računalniku na naslovu 1
v podomrežju 0.0.127.in-addr.arpa
, torej 127.0.0.1, imenuje localhost
.
Zapis SOA (Start Of Authority) je glava za vse območne datoteke, v katerih
mora biti natanko en zapis SOA. Ta zapis obsega podatke o domeni, od kod prihaja
(računalnik z imenom ns.linux.izmislek
), kdo je odgovoren za njeno vsebino
(hostmaster@linux.izmislek
- tu vstavite svoj e-naslov), katera različica
območne datoteke je to (serijska številka: 1) in druge podatke, ki imajo opraviti s
strežniki DNS s predpomnenjem ter s sekundarnimi strežniki DNS. Za vsa druga polja
(osveževanje - refresh, vnovični poskus - retry, razveljavljenje - expire in
minimum) se zanesite na številke, ki so navedene v tem HOWTO, in vse bi moralo
ustrezno delovati. Pred zapisom SOA pride obvezna vrstica $TTL 3D
. Naj bo v
vseh vaših območnih datotekah.
Zdaj spet zaženite named (ukaz je ndc restart
) in uporabite dig, če si
želite ogledati svoje delo. -x
opravi obratno poizvedbo (ang.: reverse query):
$ 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
Torej uspe preslikati 127.0.0.1 v localhost
. Odlično. Zdaj se lahko lotimo
našega poglavitnega opravila, domene linux.izmislek
. Najprej vstavimo nov
območni (ang.: zone) razdelek v named.conf
:
zone "linux.bogus" { notify no; type master; file "pz/linux.izmislek"; };
Spet si zapomnite, da na koncu domen v named.conf
ni pik `.
'.
V območno datoteko linux.izmislek
bomo napisali nekaj popolnoma izmišljenih
podatkov:
; ; Območna datoteka za linux.izmislek ; ; Polna območna datoteka ; $TTL 3D @ IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 199802151 ; serial, današnji datum + današnja serijska številka 8H ; refresh, sekund 2H ; retry, sekund 4W ; expire, sekund 1D ) ; minimum, sekund ; 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 dvoje. 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 se imenuje 'ns', lahko ima
kakršnokoli veljavno ime. Drugo, hostmaster.linux.izmislek se bere kot
hostmaster@linux.izmislek in mora biti veljaven naslov ali preusmeritev naslova, na
katerega bo tisti, ki vzdržuje DNS, prejemal pošto (ta človek naj pošto tudi redno
pregleduje). Ni nujno, da je to ravno `hostmaster', lahko je vaš navaden e-naslov,
vendar se pogosto pričakuje 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), drugače pa naslednjemu z najmanjšo številko, v tem primeru
mail.prijatelj.izmislek
, ki ima prednost 20.
Znova zaženite named z ukazom ndc restart
in opazujte rezultate z digom:
$ dig any linux.izmislek +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.izmislek, type = ANY, class = IN ;; ANSWER SECTION: linux.izmislek. 3D IN MX 10 mail.linux.izmislek.linux.izmislek. linux.izmislek. 3D IN MX 20 mail.prijatelj.izmislek. linux.izmislek. 3D IN NS ns.linux.izmislek. linux.izmislek. 3D IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 199802151 ; serial 8H ; refresh 2H ; retry 4W ; expiry 1D ) ; minimum
Po pazljivem opazovanju boste odkrili napako. Vrstica
linux.izmislek. 3D IN MX 10 mail.linux.izmislek.linux.izmislek.
je popolnoma napačna. Morala bi biti
linux.izmislek. 3D IN MX 10 mail.linux.izmislek.
Namenoma sem naredil napako, da se boste lahko iz nje učili :-) Če pogledate v območno datoteko, boste ugotovili, da v vrstici:
MX 10 mail.linux.izmislek ; Primarni poštni strežnik
manjka pika. Ali, drugače povedano, ima 'linux.izmislek' preveč. Če se v
območni datoteki ime računalnika ne konča s piko, se mu doda izvor in v tem primeru
povzroči dvojni linux.izmislek.linux.izmislek
. Torej je
MX 10 mail.linux.izmislek. ; Primarni poštni strežnik
ali
MX 10 mail ; Primarni poštni strežnik
pravilno. Priporočam uporabo druge možnosti, ker je treba manj tipkati. Nekateri
strokovnjaki za BIND se s tem ne bodo strinjali, nekateri drugi pa se bodo. V
območni datoteki je lahko domena napisana in se konča s `.
' ali pa ni napisana
in se namesto nje privzame izvirna domena.
Poudariti moram, da v named.conf ne sme biti pike na koncu domen. Še sanja
se vam ne, kolikokrat je `.
' tu povzročila pošteno zmešnjavo.
Zdaj, ko vse to veste, je pred vami nova, popravljena območna datoteka s še nekaj dodatnimi informacijami:
; ; Območna datoteka za linux.izmislek ; ; Polna območna datoteka ; $TTL 3D @ IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 199802151 ; serial, današnji datum + današnja serijska številka 8H ; refresh, sekund 2H ; retry, sekund 4W ; expire, sekund 1D ) ; minimum, sekund ; TXT "Linux.Izmislek, vaš svetovalec za DNS" 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"
Tu smo spoznali še cel kup novih zapisov: HINFO, informacija o računalniku (ang.: Host INFOrmation), ima dva dela in k dobrim navadam sodi, 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. Ni, denimo, priporočljivo imeti
foobar CNAME www ; NE!
pravilno pa je takole
foobar CNAME ns ; Da!
Prav tako se je varno zanašati na to, da CNAME ni dovoljeno ime računalnika za
e-naslov: webmaster@www.linux.izmislek
na primer ni dovoljen naslov glede na
zgoraj navedene nastavitve. Pričakujete lahko, da bo kar nekaj upraviteljev hotelo,
da to pravilo upoštevate, čeprav pri vas morda deluje. Težavam se izognete z uporabo
zapisov A (in še nekaterih drugih, na primer MX):
www A 192.168.196.2
Nekaj super strokovnjakov za BIND celo priporoča, naj se zapisi CNAME sploh ne uporabljajo, vendar razprava o tem, 'zakaj da' in 'zakaj ne', ne sodi v ta HOWTO.
Kakor ste že opazili, ta HOWTO in številni strežniki ne upoštevajo tega pravila.
Naložite novo zbirko podatkov z ukazom ndc reload
, ki pove named, naj še
enkrat prebere svoje datoteke.
$ dig linux.izmislek axfr ; <<>> DiG 8.2 <<>> linux.bogus axfr $ORIGIN linux.izmislek. @ 3D IN SOA ns hostmaster ( 199802151 ; serial 8H ; refresh 2H ; retry 4W ; expiry 1D ) ; minimum 3D IN NS ns 3D IN NS ns.prijatelj.izmislek. 3D IN MX 10 mail 3D IN MX 20 mail.prijatelj.izmislek. 3D IN TXT "Linux.Izmislek, vaš svetovalec za DNS" gw 3D IN TXT "Usmerjevalnik" 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.prijatelj.izmislek. 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.prijatelj.izmislek. 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.prijatelj.izmislek. 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.prijatelj.izmislek. 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
Tole je v redu. Kakor vidite, je izpis zelo podoben območni datoteki. Poglejmo,
kaj pravi samo za www
:
$ dig www.linux.izmislek +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.izmislek, type = A, class = IN ;; ANSWER SECTION: www.linux.izmislek. 3D IN CNAME ns.linux.izmislek. ns.linux.izmislek. 3D IN A 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.
Zdaj smo na polovici poti.
Zdaj lahko programi pretvorijo imena v domeni linux.izmislek v naslove, na katere se lahko priključijo, potrebujemo pa še obratne vnose, ki bodo omogočili DNS, da pretvarja naslove v imena. Imena so pomembna informacija za številne strežnike (FTP, IRC, WWW in druge), saj se na podlagi tega odločajo, ali se bodo sploh pogovarjali z vami ali ne in kakšno prednost vam bodo dali, če se bodo. Za popoln dostop do vseh storitev v internetu torej 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 taka kakor pri 0.0.127.in-addr.arpa
, pa tudi vsebina je
podobna:
$TTL 3D @ IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 199802151 ; Serial, todays date + todays serial 8H ; Refresh 2H ; Retry 4W ; Expire 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.
Znova zaženite named (ndc restart
) in spet preglejte svoje
delo z dig:
$ 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.izmislek.
Zaenkrat je videti v redu, preglejmo še vse naenkrat:
dig -x 192.168.196 AXFR ; <<>> DiG 8.2 <<>> -x AXFR $ORIGIN 196.168.192.in-addr.arpa. @ 3D IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 199802151 ; serial 8H ; refresh 2H ; retry 4W ; expiry 1D ) ; minimum 3D IN NS ns.linux.izmislek. 4 3D IN PTR mail.linux.izmislek. 2 3D IN PTR ns.linux.izmislek. 5 3D IN PTR ftp.linux.izmislek. 3 3D IN PTR donald.linux.izmislek. 1 3D IN PTR gw.linux.izmislek. @ 3D IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 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
Odlično! Če vaš izpis ni videti takole, poglejte v syslog za sporočila o napakah, kot sem razložil na začetku tega poglavja, pod naslovom Zagon named.
Rad bi še nekaj dodal. Številke IP, ki sem jih uporabil v zgledih, navedenih tu,
so vzete iz blokov 'zasebnih omrežij', kar pomeni, da se jih v internetu ne sme
uporabljati za prave naslove. So pa zato varne za uporabo v zgledih. Drugo, na kar
vas moram opozoriti, je vrstica notify no;
, ki pove named, naj svojih
sekundarnih strežnikov ne opozarja na spremembe območnih datotek. V BIND-8 lahko
named opozori druge strežnike, navedene v zapisih NS, kadar se katera od teh
spremeni. To je sicer pripravno pri resnični uporabi, za zasebne poskuse pa mora
biti izključeno - saj vendar nočemo, da bi naši poskusi onesnažili internet, kajne
da ne?
In seveda, ta domena je popolnoma izmišljena, kot so izmišljeni tudi naslovi v njej. Zgled prave domene si oglejte v naslednjem poglavju.
Pri postavljanju obratnih vnosov preži na nas nekaj ``pasti'', ki jih navadno rešimo z imenskimi poizvedbami. Preden greste naprej, potrebujete delujoče obratne vnose - če vam ne delujejo, se vrnite in jih popravite.
Razložil bom dve možnosti, zakaj obratni vnosi ne delujejo, kot so videti zunaj vašega omrežja.
Ko dobite od ponudnika internetnih storitev svoj del omrežja in domeno, je domena navadno pristojna za ta del omrežja. Pristojnost je zapis NS, lepilo, ki vam omogoča, da pridete od enega imenskega strežnika do drugega, kot sem pojasnil v poglavju o teoriji. Saj ste ga prebrali? Če vaši obratni vnosi ne delujejo, se vrnite in si preberite poglavje. Takoj 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
območne datoteke zapisati tako vnos NS za imenske poizvedbe kakor tudi vnos NS za
obratne poizvedbe. Če sledite verigi od in-addr.arpa.
do vas, boste verjetno
našli prekinitev - najverjetneje pri svojem ponudniku. V tem primeru stopite v stik
z njim in ga prosite, naj odpravi napako.
To je dokaj zapletena tema, vendar so brezrazredna podomrežja dandanes zelo pogosta in če niste vsaj srednje veliko podjetje, ste najverjetneje tudi vi v takem podomrežju.
Brezrazredna podomrežja danes ohranjajo internet pri življenju. Nekaj let nazaj se je veliko razpravljalo o pomanjkanju številk IP. Bistre glave v IETF (Internet Engineering Task Force, organizacija, ki skrbi za internet) so se staknile in iznašle rešitev. Za določeno ceno. Ta cena je, da dobite manj kakor podomrežje ``C'', poleg tega pa se lahko zgodi, da nekatere stvari ne bodo delovale. Oglejte si Ask Mr. DNS at, če si želite dobre razlage tega in napotkov, kako se s tem spopasti.
Ste prebrali? Tega ne bom razlagal, zato si, prosim, preberite.
Prvi del problema je, da mora vaš ponudnik interneta razumeti tehniko, ki jo opisuje g. DNS. Nekateri majhni ponudniki je ne razumejo popolnoma, zato jim jo boste morda morali razložiti. Prej se prepričajte, ali jo sploh sami obvladate ;-) Ponudnik bo nato postavil obratne vnose v njihovem strežniku. To lahko preverite z dig.
Drugi in zadnji del problema pa je, da morate tudi vi razumeti tehniko. Če o tem niste prepričani, se vrnite in si znova preberite, nato pa lahko postavite svoje brezrazredne obratne vnose, kot vam opisuje g. DNS.
Je pa še ena težava. Stari programi ne bodo sposobni slediti zvijači
CNAME
v verigi poizvedovanja in zato ne bodo sposobni opraviti obratnih
poizvedb za vaš računalnik. To lahko pomeni, da vas bo strežnik razvrstil v napačen
razred, vam prepovedal dostop ali storil kaj podobnega. Če res potrebujete njegove
storitve, je edina možnost (ki jo jaz poznam), da poprosite svojega ponudnika, naj
vstavi vaš zapis PTR v njihovo brezrazredno območno datoteko namesto v zvijačo z
vnosom CNAME.
Nekateri ponudniki interneta vam bodo ponudili tudi drugačne rešitve, kot so spletni forumi za obratne vnose in podobni avtomagični sistemi.
Po tem, ko ste pravilno vzpostavili svoje območje v primarnem strežniku, morate vzpostaviti vsaj še en sekundarni strežnik. Ti so potrebni zaradi zanesljivosti. Če vaš strežnik pade, bodo uporabniki še vedno dobili potrebne podatke za vašo domeno s pomočjo sekundarnega strežnika. Sekundarni strežnik naj bo čim dlje od vas in imejta čim manj skupnega z naslednjim: električno napajanje, povezava LAN, ponudnik internetnih storitev, mesto in dežela. Če so vsi našteti atributi za primarni in sekundarni strežnik različni, imate zelo dober sekundarni strežnik.
Sekundarni strežnik je imenski strežnik, ki prekopira vse območne datoteke iz primarnega strežnika. Nastavite ga takole:
zone "linux.izmislek" { type slave; file "sz/linux.izmislek"; masters { 192.168.196.2; }; };
Uporabi se mehanizem, imenovan prenos območja (ang. zone-transfer). Tega nadzira vaš SOA.
@ IN SOA ns.linux.izmislek. hostmaster.linux.izmislek. ( 199802151 ; serial, todays date + todays serial # 8H ; refresh, seconds 2H ; retry, seconds 4W ; expire, seconds 1D ) ; minimum, seconds
Območje se prenese le, če je serijska številka na primarnem strežniku večja od tiste na sekundarnem. Na vsak osveževalni interval (ang. refresh) sekundarni preveri, ali ima primarni novejši zapis. Če zaradi nedosegljivosti ni mogoče preveriti zapisa, bo poskusil vsak interval, kot je določeno v polju vnovični poskus (ang. retry). Če bo primarni nedosegljiv ves čas do izteka razveljavitnega (ang. expire) intervala, sekundarni odstrani to območje iz datotečnega sistema in ne bo več posredoval njegovih podatkov.