Kako postaviti svojo lastno domeno.
Najprej: Saj ste prebrali vse pred tem, kajne ? To je potrebno.
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. Nehajte preletavati, 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 tipično za drevesne
podatkovne strukture. Pod . je veliko število vrhnjih domen (ang.:
TLD, Top Level Domain), 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 korenino in je zavejena. Če
imate vsaj nekaj računalniškega znanja, boste v DNS prepoznali iskalno
drevo, lahko boste našli 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 predpomnilnik vsebuje odgovor bo odgovoril
kot 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 se nahaja 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 z preusmeritivjo (ang. refferal) s
katero bo nakazal kod naj se išče odgovor. Preko preusmeritev bo
naš strežnik prišel do strežnika, ki bo imel pravi odgovor. To bom
sedaj prikazal. +norec pomeni, da naj dig sprašuje nerekurzivno,
tako da moramo sami delati rekurzijo. Z ostalimi 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 MIT.EDU strežnik. Ponovno naključno izberemo nek 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. Razdelek "AUTHORITY SECTION" vsebuje podatek katere
strežnike naj naslednjič povprašamo o ai.mit.edu. Tako lahko
neposredno njih vprašamo kadar bomo spraševali o imenih iz
ai.mit.edu.
Začenši z . smo našli imenski strežnik za vsak nivo v imenu
domene s pomčjo preusmeritev. Če bi uporabili lastni DNS strežnik
namesto vseh drugih strežnikov bi se vsi tako zbrani podatki shranili v
predpomnilnik in kar nekaj časa mu ne bi bilo potrebno ponoviti že
opravljenih poizvedb.
V drevesni prispodobi je vsaka ``.'' v imenu vejišče. Vsak del
med dvema ``.'' je ime posmazenih vej v drevesu. Po drevesu se gre
tako, da se vzame želeno ime (prep.ai.mit.edu) in poizvedemo 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, 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.
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 (angl. master)
strežnik in da so podatki zanjo shranjeni v datoteki
pz/127.0.0. Datoteko smo že prej ustvarili, vsebuje pa:
$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.
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.bogus
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.
Zapis vira PTR (Domain Name Pointer) pravi, da je računalniku na
naslovu 1 v podmreži 0.0.127.in-addr.arpa, torej 127.0.0.1, ime
localhost.
Zapis SOA (Start Of Authority) je glava za vse datoteke `zone',
ki morajo vsebovati natanko en zapis 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 predpomnenjem ter
sekundarnimi DNS strežniki. Za vsa ostala polja (osveževanje - refresh,
ponoven poskus - retry, razveljavljenje - expire in minimum) se
zanesite na številke, ki so navedene v tem HOWTO-ju in vse bi moralo
ustrezno delovati. Pred zapisom SOA pride obvezna vrstica $TTL 3D.
Vsi vaše `zone' datoteke naj jo vsebujejo.
Now restart your named (the command is ndc restart) and use
dig to examine your handy work. -x asks for the inverse query:
Sedaj ponovno zaženite named (ukaz je ndc restart) in uporabite
dig za ogled vašega dela. -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. Sedaj se
lahko spravimo k našemu glavnemu opravilu, domeni linux.izmislek.
Najprej vstavimo nov razdelek 'zone' v named.conf:
zone "linux.bogus" {
notify no;
type master;
file "pz/linux.bogus";
};
Spet si zapomnite, da na koncu domen v named.conf ni pik
`.'.
V datoteko `zone' linux.izmislek bomo napisali nekaj popolnoma
izmišljenih podatkov:
;
; Zone file for linux.bogus
;
; The full zone file
;
$TTL 3D
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial, todays date + todays serial #
8H ; refresh, seconds
2H ; retry, seconds
4W ; expire, seconds
1D ) ; minimum, seconds
;
NS ns ; Inet Address of name server
MX 10 mail.linux.bogus ; Primary Mail Exchanger
MX 20 mail.friend.bogus. ; Secondary Mail Exchanger
;
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 dig-om:
$ dig any linux.bogus +pfmin
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23499
;; QUERY: 1, ANSWER: 4, AUTHORITY: 1, ADDITIONAL: 1
;; QUERY SECTION:
;; linux.bogus, type = ANY, class = IN
;; ANSWER SECTION:
linux.bogus. 3D IN MX 10 mail.linux.bogus.linux.bogus.
linux.bogus. 3D IN MX 20 mail.friend.bogus.
linux.bogus. 3D IN NS ns.linux.bogus.
linux.bogus. 3D IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial
8H ; refresh
2H ; retry
4W ; expiry
1D ) ; minimum
Po pazljivem opazovanju boste odkrili napako. Vrstica
linux.bogus. 3D IN MX 10 mail.linux.bogus.linux.bogus.
je popolnoma napačna. Morala bi biti
linux.bogus. 3D IN MX 10 mail.linux.bogus.
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.bogus ; 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.bogus. ; Primary Mail Exchanger
ali
MX 10 mail ; Primary Mail Exchanger
pravilno. Priporočam uporabo druge možnosti, ker je potrebnega manj
tipkanja. Nekateri BIND strokovnjaki se s tem ne bodo strinjali,
nekateri pa 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:
;
; Zone file for linux.bogus
;
; The full zone file
;
$TTL 3D
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial, todays date + todays serial #
8H ; refresh, seconds
2H ; retry, seconds
4W ; expire, seconds
1D ) ; minimum, seconds
;
TXT "Linux.Bogus, your DNS consultants"
NS ns ; Inet Address of name server
NS ns.friend.bogus.
MX 10 mail ; Primary Mail Exchanger
MX 20 mail.friend.bogus. ; Secondary 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"
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 super-strokovnjakov celo priporoča, naj se zapisi CNAME sploh ne uporabljajo, vendar razprava 'zakaj da' in 'zakaj ne' ne spada v ta HOWTO.
Kot ste lahko že opazili, se ta HOWTO in mnogo strežnikov ne drži tega pravila.
Naložite novo bazo podatkov z ukazom ndc reload, ki pove named,
naj še enkrat prebere 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, your DNS consultants"
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
Tole je v redu. Kot lahko vidite, je izpis zelo podoben sami datoteki
`zone'. Poglejmo, kaj pravi samo za 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
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.
Sedaj 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-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 vseh storitev 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:
$TTL 3D
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; Serial, todays date + todays serial
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.
Ponovno zaženite named (ndc restart) in ponovno preglejte vaše
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.bogus.
Zaenkrat izgleda 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.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
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 pod naslovom Zagon named.
Rad bi dodal še nekaj stvari. IP številke, ki sem jih uporabil v
primerih, navedenih tukaj, so vzete iz blokov 'zasebnih 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 ``pasti'' 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 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 priti 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, 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. V tem primeru ga kontaktirajte 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. Oglejte si Ask Mr. DNS at za dobro razlago o tem in 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 Mr. 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 dig.
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 Mr. 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.
Zatem, ko ste pravilno vzpostavili svojo zono na primarnem strežniku morate vzpostaviti vsaj še en sekundarni strežnik. Ti so potrebni zaradi zanesljivosti. Če vaš strežnik pade bodo tako lahko uporabniki še vedno prišli do potrebnih podatkov za vašo domeno s pomočjo sekundarnega strežnika. Sekundarni strežnik naj bo čim dlje od vas in naj imata čim manj skupnega od sledečega: električno napajanje, LAN povezava, ponudnika internet storitev, mesto in deželo. Če so našteti atributi vsi različni za primarni in sekundarni strežnik imate zelo dober sekundarni strežnik.
Sekundarni strežnik je imenski strežnik, ki prekopira vse zone datoteke iz primarnega strežnika. Nastavite ga na sledeči način:
zone "linux.bogus" {
type slave;
file "sz/linux.bogus";
masters { 192.168.196.2; };
};
Uporabi se mehanizem imenovan prenos zone (ang. zone-transfer). Tega nadzira vas SOA.
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial, todays date + todays serial #
8H ; refresh, seconds
2H ; retry, seconds
4W ; expire, seconds
1D ) ; minimum, seconds
Zona 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 ponovni poskus (ang. retry). Če bo primarni nedosegljiv ves čas do izeeka razveljavitnega (ang. expire) intervala sekundarni odstrani to zono iz datotečnega sistema in ne bo več posredoval njenih podatkov .