Nimeserveri tööleseadmine

Allikas: Kuutõrvaja

Sissejuhatus

Enne nimeserveri paigaldamist tuleb planeerida

   * milliste domeeninimede lahendamisega ta hakkab tegelema
   * milliseid kliente ta hakkab teenidama
   * millisesse masinasse on teda kõige otstarbekam paigaldada
   * millised nimeserverid on nõus hakkama tema tsoonide sekundaarseks nimeserveriteks 

Kuna nimeserver peab olema üldiselt hästi kättesaadav kõikvõimalikele klientidele, siis paigaldatakse ta tavaliselt võrgu sõlmpunktidesse, so masinatesse, mis asuvad mitme võrgu piiril või selle lähedal.

Nimeserveri kasutuse planeerimine

Skeemil on kujutatud asutuse server kalake.zoo.tartu.ee, mis on ühelt poolt ühendatud internetti (193.40.10.2) ja teiselt poolt kohtvõrguga (192.168.10.1)

                       ((   ..-     ) 
                  (                      )
               (                              )
           (                                )))
                  INTERNET
           (                       .    -)
                 ((.                 )
                        (----   )
                            |
                            |
                          __|__
                         |     |   zoo-ruuter
                         |__ __|   193.40.10.1
                            |
                            | 
  - - - - - - - teie haldusala piir - - - - - - - -
                            |
         avalik  võrk       | 
  |---|-- 193.40.10.0/24 ---|-------|--------------|-----|
eth0  |                           __|__          __|__
    __|__   193.40.10.2          |     |  ...   |     | 
   |     |                       |_____|        |_____|
   |     |   kalake           193.40.10.3   193.40.10.254
   |__ __|   
      |     192.168.10.1
eth1  | 
      |      sisevõrk
  |---|-----------------|--- 192.168.10.0/24 -------|-----|
                        |                           |
                      __|__                       __|__
                     |     |    ....             |     |
                     |_____|                     |_____|
   
                192.168.10.2               192.168.10.254
    

Eeldame, et serveri ja kõigi kohtvõrgu klientide võrguseadmed ning ruuting on konfigureeritud vastavalt skeemile ning jääb üle vaid nimede lahedamine korda teha. Nagu skeemilt näha, teostatakse serveris kohtvõrgu 192.168.10.0/24 suhtes maskeraadi.

Nimed on otsustatud jaotada kahte domeeni, mis langevad kokku alamvõrkudega

   * zoo.tartu.ee. - 193.40.10.0/24
   * tiik.aed. - 192.168.10.0/24 

Nimede ja IP-aadresside vastavus on selline

domeeninimi	IP-aadress
vork.zoo.tartu.ee	193.40.10.0
levi.zoo.tartu.ee	193.40.10.255
zoo-ruuter.zoo.tartu.ee	193.40.10.1
zoo.tartu.ee	193.40.10.2
kalake.zoo.tartu.ee	193.40.10.2
tuvike.zoo.tartu.ee	193.40.10.3
vork.tiik.aed.	192.168.10.0
kala.tiik.aed.	192.168.10.1
tiik.aed.	192.168.10.1
kahv.tiik.aed.	192.168.10.2
vesi.tiik.aed.	192.168.10.3
levi.tiik.aed.	192.168.10.255
Lähtematerjali valik

Programm BIND on vaba tarkvara ning ta on praktiliselt kõigi vabade operatsioonisüsteemide (sh Linux ja FreeBSD) osa. Kõige mugavam on teda paigaldada oma operatsioonisüsteemi paketist. Soovides ise kompileerida, kopeerige BINDi arendamisega tegeleva ISC (Internet Software Consortsium) kodulehelt http://www.isc.org/ programmi lähtetekstid.

Näiteks gentool võib olla bind mitte süsteemi paigutatud installi käigus. Küsige programmi versiooni mis serveris.

bash# named -v
BIND 9.3.2

Nimeserveri seadistusfail

Nimeserverit ei õnnestu käivitada muidu, kui ei ole moodustatud sobivaid seadistusfaile. Bindi tööd juhib tavaliselt üks seadistusfail /etc/named.conf ning vastavalt vajadustele moodustatud tsoonifailid. Tsoonifailides on kirjas need andmed, mille suhtes on kõnealune nimesever pädev.

Seadistame esmalt nimeserveri käima kahe tsooni jaoks: zoo.tartu.ee. domeeni nimede päri-ja pöördteisenduste tegemiseks.

Looge sellise sisuga seadistusfail /etc/named.conf

options {
        directory       "/etc/namedb";
        allow-transfer { 193.40.10.193; 127.0.0.1; };
};

zone "zoo.tartu.ee" {
        type master;
        file "zoo.tartu.ee.zone";
        allow-query { any; };
};

zone "10.40.193.in-addr.arpa" {
        type master;
        file "10.40.193.zone";
};


Selles failis on näidatud, et tsoonifailid paiknevad kataloogis /etc/namedb. Ja,et lubatakse tsooni transporti lokaalses masinas ning 193.40.10.193 nimelises, mis on sekundeerivaks nimeserveriks.

Kusjuures kirjeldamist vajavad kaks tsooni

   * zoo.tartu.ee. - tsoonile vastab päriteisenduste kohta andmeid sisaldav tsoonifail zoo.tartu.ee.zone
   * 10.40.193.in-addr.arpa - tsoonile vastab pöördteisenduste kohta andmeid sisaldav tsoonifail 10.40.193.in-addr.arpa.zone 

Kuna nimeserver on antud domeenide jaoks primaarne, siis on see näidatud reaga 'type master;'. file'i järel on näidatud vastava tsoonifaili nimi, kataloogi /var/named suhtes.

Tsooni zoo.tartu.ee. päri-ja pöördteistenduste tsoonifailid

Tsooni zoo.tartu.ee. päriteisenduste tsoonifail

zoo.tartu.ee.zone failis kirjeldatakse domeeninimedele vastavad IP-aadressid.


$TTL    86400
@ IN SOA   kalake.zoo.tartu.ee. root.zoo.tartu.ee. (
                                       2001072801      ; serial
                                       3H              ; refresh
                                       15M             ; retry
                                       1W              ; expiry
                                       1D )            ; minimum
zoo.tartu.ee.           1D IN NS        kalake.zoo.tartu.ee.
vork.zoo.tartu.ee.      1D IN A         193.40.10.0
levi.zoo.tartu.ee.      1D IN A         193.40.10.255
zoo-ruuter.tartu.ee.    1D IN A         193.40.10.1
kalake.zoo.tartu.ee.    1D IN A         193.40.10.2
zoo.tartu.ee.           1D IN A         193.40.10.2
tuvike.zoo.tartu.ee.    1D IN A         193.40.10.3


Tsoonifail koosneb ridadest, tavaliselt vastab reale tsoonifaili kirje. Mööname, et samasuguse toimega tsoonifaili saaks panna kirja ka lühemalt, kuid selguse huvides me seda esialgu ei tee.

Kommenteerime kasutatud ridu ja kirjeid rida haaval


$TTL    86400

Reaga defineeritakse kõikide selle tsooni domeeninimede elueaks 86 400 sekundit ehk üks ööpäev.

@ IN SOA 1D kalake.zoo.tartu.ee. root.zoo.tartu.ee. (

                                       2001072801      ; serial
                                       3H              ; refresh
                                       15M             ; retry
                                       1W              ; expiry
                                       1D )            ; minimum


Sellele osale vastab ilma kommentaarideta rida

zoo.tartu.ee. 1D IN SOA zoo.tartu.ee. root.zoo.tartu.ee. 2001072801 3H 15M 1W 1D


@ Reaga näidatakse, et tegu on tsooniga zoo.tartu.ee.


Niisiis, semikooloni (;) järel olevat käsitletakse kommentaarina ning sulge kasutatakse nende andmete, mis peaksid muidu olema ühel real, kirjutamiseks mitmele.

Toome järjekorras iga elemendi kohta selgituse

   * zoo.tartu.ee. - kirje nimi, st domeeninimi, mille kohta SOA real näidatud parameetrid käivad
   * 1D - kirje eluaeg (aeg kui kaua vastava tsooni domeeninimed interneti vaheladudes säilitatakse)
   * IN - näitab, et rida on IN (interet) tüüpi kirje
   * SOA - näitab, et rida on SOA kirje
   * kalake.zoo.tartu.ee. - domeeni primaarne nimeserver
   * root.zoo.tartu.ee. - domeeni eest vastutava kontaktisiku e-postiaadress (@ asemel kasutatakse punkti!)
   * 2001072801 - seerianumber (näitab, kas tsoonis on vahepeal tehtud muudatusi; seda tuleb muudatuste kehtestumiseks iga kord suurendada)
   * 86400 - värskendusperiood (määrab kui tihti sekundaarne nimeserver kopeerib andmed primaarselt)
   * 7200 - korduskatse (kui korraline andmete kopeerimine ei õnnestunud, siis näidatud ajavahemiku järel uuesti proovida)
   * 2419200 - parim möödas (kui sekundaarsel nimeserveril ei õnnestunud andmeid uuendada, siis näidatud ajavahemiku möödudes viimasest värskendusest ei
     pea sekundaarne end kõnesoleva tsooni suhtes pädevaks)
   * 10800 - eluaeg (tsooni kirjete jaoks vaikimisi aeg, kui kaua vastava tsooni domeeninimed interneti vaheladudes säilitatakse) 


zoo.tartu.ee.               1D IN NS        kalake.zoo.tartu.ee.

See NS kirje on tsooni zoo.tartu.ee. pädevuskirje, millega näidatakse, et tsoon zoo.tartu.ee. jaoks on pädev nimeserver kalake.zoo.tartu.ee.

vork.zoo.tartu.ee.      1D IN A                  193.40.10.0

See ja järgnevad A-kirjed seovad domeeninimele vastava IP-aadressi.

Tsooni zoo.tartu.ee. pöördteisenduste tsoonifail

Failis 10.40.193.in-addr.arpa kirjeldatakse IP-aadressidele vastavad domeeninimed


$TTL    86400
@       IN      SOA     kalake.zoo.tartu.ee. root.zoo.tartu.ee.  (
                                     2001072801 ; Serial
                                     3H         ; Refresh
                                     15M        ; Retry
                                     1W         ; Expire
                                     1D )       ; Minimum
10.40.193.in-addr.arpa.      IN      NS      kalake.zoo.tartu.ee.
0.10.40.193.in-addr.arpa.    IN      PTR     vork.zoo.tartu.ee.
255.10.40.193.in-addr.arpa.  IN      PTR     levi.zoo.tartu.ee.
1.10.40.193.in-addr.arpa.    IN      PTR     zoo-ruuter.zoo.tartu.ee.
2.10.40.193.in-addr.arpa.    IN      PTR     kalake.zoo.tartu.ee.
3.10.40.193.in-addr.arpa.    IN      PTR     tuvike.zoo.tartu.ee.

Kõik kirjed ja kirjete väljad on sarnase tähendusega nagu eelmise tsoonifaili puhul, kusjuures lisandunud PTR tüüpi kirje seob in-addr.arpa. domeeninimega 'päris' domeeninime. Efektiivselt toimub domeeninimede pöördteisendus, so IP-aadressid seostatakse domeeninimedega.

Käivitamine

Nimeserveri käivitamine toimub tavaliselt juurkasutaja õigustes juhtprogrammiga rndc, mis asendab bind 8 käsku ndc

bash# rndc start

Soovitav on vaadata ka süsteemi logisse samal ajal ilmuvaid teateid konfiguratsioonis leitud vigade kohta. Õnnestumisel lõpetab logi teatega

Jul 30 13:27:08 tsirk named[1005]: listening on IPv4 interface lo, 127.0.0.1#53
Jul 30 13:27:08 tsirk named[1005]: listening on IPv4 interface eth0, 193.40.10.2#53
Jul 30 13:27:08 tsirk named[1005]: listening on IPv4 interface eth0, 192.168.1.1#53

Lisaks tunnistab ndc käske

   * stop - nimeserveri töö lõpetamine
   * reload - muudetud tsoonifailide laadimine
   * restart - nimeserveri taaskäivitamine; vajalik nimeserveri konfiguratsioonifailis tehtud muutuste kehtestamiseks 


Seejärel veenduge, et teie nimeserver päringuid lahendab. Näiteks küsige tsooni zoo.tartu.ee. kohta võtmega ANY

bash$ dig @kalake.zoo.tartu.ee. zoo.tartu.ee. ANY 

Vastus võiks olla sarnane punktis Päringud toodule. Katsetage ka teisi küsimusi.

Tsooni localhost. päri-ja pöördteisenduste tsoonifailid

Nagu teada on UNIXilistel olemas nö sisemine võrguseade lo, millega seostatakse nimi localhost ja IP-aadress 127.0.0.1. Ka see on kombeks kirjeldada nimeserveris.

Lisage nimeserveri seadistusfaili /etc/named.conf lisaks kaks lõiku

zone "localhost" IN {
        type master;
        file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "0.0.127.zone";
};

Tsooni localhost. päriteistenduste tsoonifail

localhost.zone failis kirjeldatakse domeeninimedele vastavad IP-aadressid.

$TTL    86400
@           IN SOA   kalake.zoo.tartu.ee. root.zoo.tartu.ee. (
                             2001072801      ; serial
                             3H              ; refresh
                             15M             ; retry
                             1W              ; expiry
                             1D )            ; minimum
localhost.              IN NS        kalake.zoo.tartu.ee.
localhost.              IN A         127.0.0.1

Tsooni localhost. pöördteisenduste tsoonifail

0.0.127.in-addr.arpa.zone failis kirjeldatakse domeeninimedele vastavad IP-aadressid.

$TTL    86400
@          IN SOA   kalake.zoo.tartu.ee. root.zoo.tartu.ee. (
                            2001072801      ; serial
                            3H              ; refresh
                            15M             ; retry
                            1W              ; expiry
                            1D )            ; minimum
                        IN NS        kalake.zoo.tartu.ee.
1.0.0.127.in-addr.arpa. IN PTR       localhost.

Juurnimeserverite kirjeldusfail

Reeglina peavad nimeserverid teadma juurnimeserverite IP-aadresse. Salvestage programmiga dig parasjagu toimivate juurnimeserverite aadressid faili root.hints

bash# dig > /var/named/root.hints
zone "." IN {
        type hint;
        file "root.hints";
};

Tsooni tiik.aed. päri-ja pöördteisenduste tsoonifailid

Lisage nimeserveri seadistusfaili /etc/named.conf lisaks lõik

zone "tiik.aed" IN {
        type master;
        file "tiik.aed.zone";
};

zone "10.168.192.in-addr.arpa" IN {
        type master;
        file "10.168.192.zone";
};

Tsooni tiik.aed. päriteisenduste tsoonifail

aed.tiik.zone failis kirjeldatakse domeeninimedele vastavad IP-aadressid

$TTL    86400
@                   IN SOA   kalake.zoo.tartu.ee. root.tiik.aed. (
                                        2001072801      ; serial
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
tiik.aed.               IN NS        kalake.zoo.tartu.ee.
vork.tiik.aed.          IN A         192.168.1.0
tiik.aed.               IN A         192.168.1.1
kala.tiik.aed.          IN A         192.168.1.1
kahv.tiik.aed.          IN A         192.168.1.2
vesi.tiik.aed.          IN A         192.168.1.3

Tsooni tiik.aed. pöördteisenduste tsoonifail

Failis 1.168.192.in-addr.arpa kirjeldatakse IP-aadressidele vastavad domeeninimed

$TTL    86400
@       IN      SOA     kalake.zoo.tartu.ee. root.zoo.tartu.ee.  (
                                      2001072801 ; Serial
                                      3H         ; Refresh
                                      15M        ; Retry
                                      1W         ; Expire
                                      1D )       ; Minimum
10.168.192.in-addr.arpa.         IN      NS      kalake.zoo.tartu.ee.
0.10.168.192.in-addr.arpa.       IN      PTR     vork.tiik.aed.
255.10.168.192.in-addr.arpa.     IN      PTR     levi.tiik.aed.
1.10.168.192.in-addr.arpa.       IN      PTR     kala.tiik.aed.
2.10.168.192.in-addr.arpa.       IN      PTR     kahv.tiik.aed.
3.10.168.192.in-addr.arpa.       IN      PTR     vesi.tiik.aed.

Nimeserveri avalikule kasutusele võtmine

Selleks, et internetikasutajad saaksid teie nimesid kasutada, peate oma kirjeldatud domeenid registreerima. Domeeni registreerimisel lisatakse teie domeenist ülespoole jääva domeeni teenindava nimeserveri sobivasse tsooni vastav delegeerimiskirje. See delegeerimiskirje näitab millise nimeserveri pädevusse on kõnealuse domeeni kohta käivad andmed usaldatud.

Praktiliselt seadistatakse iga enda pädevusse saadava domeeni jaoks vähemalt kaks nimeserverit, tavaliselt üks primaarne ja teine sekundaarne. Mõnel juhul on see kõigi internetikasutajate huvides tehtud ka kohustuslikuks.

Jätkates esitatud näidet, on põhjust registreerida vaid zoo.tartu.ee. domeen, kuna teine on vaid kohaliku tähtsusega.

Sekundaarse nimeserveri seadistamine

Kui primaarse nimeserveri seadistamisega on üksjagu tegemist, siis sekundaarset on tunduvalt lihtsam tööle seada. Sekundaarse nimeserverina sobib kasutada mõnda muud juba töötavat nimeserverit, lisades selle nimeserveri seadistusfaili lõigud päri-ja pöördteisenduste kohta


zone "zoo.tartu.ee" {
        type slave;
        file "zoo.tartu.ee.slave.zone";
        masters {
                kalake.zoo.tartu.ee;
        };
};

zone "10.40.193.in-addr.arpa" {
        type slave;
        file "10.40.193.in-addr.arpa.slave.zone";
        masters {
                kalake.zoo.tartu.ee;
        };
};

primaarses nimeservers peab olema defineeritud ka rida allow-transfer option sektsioon

allow-transfer { 193.40.10.193; 127.0.0.1; };



Tulemusena kopeerib sekundaarne primaarselt nimeserverilt vastavad primaarse nimeserveri tsoonid omale ja salvestab failidesse zoo.tartu.ee.slave.zone. ning 10.40.193.in-addr.arpa.slave.zone. Kopeerimine toimub tsoonide SOA-kirjes näidatud värskendusperioodiga.

Normaalsel juhul on sekundaarne nimeserver klientide jaoks kõnealuse tsooni suhtes sama pädev kui primaarnegi.

Tsoonide zoo.tartu.ee. ja 10.40.193.in-addr.arpa. delegeerimine

Teatades domeeni zoo.tartu.ee. registreerimissoovis domeeni tartu.ee. administraatorile, esmalt veendudakse, et delegeeritavad domeenid on korrektselt kirjeldatud, so nimeserverid annavad päringutele adekvaatseid vastuseid.

Seejärel lisatakse tartu.ee. tsoonifaili kaks delegeerimiskirjet ning üks kleepekirje

zoo.tartu.ee.        IN NS  kalake.zoo.tartu.ee.
kalake.zoo.tartu.ee. IN A   193.40.10.1
zoo.tartu.ee.        IN NS  kool.tartu.ee.

Kui kleepekirjet mitte kasutada, siis ei lahenduks nimi kalake.zoo.tartu.ee. internetikasutajate jaoks, va nende kasutajate jaoks, kes on seadnud otseselt end teenindama nimeserveri kalake.zoo.tartu.ee. Tõepoolest, domeeninimi kalake.zoo.tartu.ee. on kirjeldatud nimeserveri kalake.zoo.tartu.ee. tsoonis zoo.tartu.ee. ja et selle tsoonini jõuda, peab olema teada nimele kalake.zoo.tartu.ee. vastav IP-aadress. See aadress tehaksegi kleepekirjega internetikasutajatele teatavaks. Kleepekirje on ainus erand, mil on lubatud domeeninime kirjeldada väljaspool oma tsooni.

Kirjeldatud põhjusel ei ole sekundaarseks nimeserveriks hakanud kool.tartu.ee. nimele kleepekirjet tarvis.

Samuti lisatakse ka domeeni 40.193.in-addr.arpa. tsoonifaili sarnased delegeerimiskirjed

10.40.193.in-addr.arpa. IN NS kalake.zoo.tartu.ee.
10.40.193.in-addr.arpa. IN NS kool.tartu.ee.

Päri-ja pöördteisendusi võivad teile delegeerida üldiselt ka erinevad nimeserverid.

Logi

Vaikimisi saadab BIND süsteemi logisse käivitamisel või tsoonifailide laadimisel ilmnenud veateated.

bash# tail -f /var/log/messages

Vaheladu

Saates nimeserveri protsessile SIGINT signaali, salvestab ta parasjagu mälus olevad andmed faili, vaikimisi /var/named/named_dump.db

bash# kill -INT PID