Erinevus lehekülje "Pädeva nimeserveri NSD kasutamine" redaktsioonide vahel

Allikas: Kuutõrvaja
(Tsooni migreerimine nimeteenuse haldajate vahel)
(Tsooni migreerimine nimeteenuse haldajate vahel)
295. rida: 295. rida:
 
===Tsooni migreerimine nimeteenuse haldajate vahel===
 
===Tsooni migreerimine nimeteenuse haldajate vahel===
  
Üks oluline praktiline põhjus, miks tuleks pidada rekursiivset ja autoriteetset nimeserverit eraldi on seotud tsoonide kolimisega ühe nimeteenuse pakkuja juurest teise nimeteenuse pakkuja juurde. Kui mõlema nimeteenuse kasutajad kasutavad oma nimeteenuse pakkuja rekursiivset nimeserverit, siis kõik nimelahendus laheneb nii nagu põhimõtteliselt juurikast nimed edasi hargnevad. Kui aga nimeteenuse pakkuja rekursiivne ja autoriteetne nimeserver on üks ja sama, siis lahendab esmalt ta nii nagu tema lokaalsetes tsoonifailides on parasjagu kirjas esimeses järjekorras. Ja siit järeldub, et kui tsoon on uue nimeteenuse pakkuja juures ettevalmistatud ja veel ei ole nt ee domeeni tsoonifailis ümberlülitust toimunud, siis ühendatud teenuste puhul hakkavad sellise teenusepakkuja kliendid juba nö varem seda uut nimelahendust kasutama. Vastasel korral aga alles siis, kui ee tsoonifailis on lülitus tehtud.
+
Üks oluline praktiline põhjus, miks tuleks pidada rekursiivset ja autoriteetset nimeserverit eraldi on seotud tsoonide kolimisega ühe nimeteenuse pakkuja juurest teise nimeteenuse pakkuja juurde. Kui mõlema nimeteenuse kasutajad kasutavad oma nimeteenuse pakkuja rekursiivset nimeserverit, siis kõik nimelahendus laheneb nii nagu põhimõtteliselt juurikast nimed edasi hargnevad. Kui aga nimeteenuse pakkuja rekursiivne ja autoriteetne nimeserver on üks ja sama, siis lahendab ta esimeses järjekorras nii nagu tema lokaalsetes tsoonifailides on parasjagu ja alles seejärel pöördub juurnimeserverite poole. Ja siit järeldub, et kui tsoon on uue nimeteenuse pakkuja juures ettevalmistatud ja veel ei ole nt tld domeeni tsoonifailis ümberlülitust toimunud, siis ühendatud teenuste puhul hakkavad sellise teenusepakkuja kliendid juba nö varem seda uut nimelahendust kasutama. Vastasel korral aga alles siis, kui tld tsoonifailis on lülitus tehtud.
  
 
===Märkused===
 
===Märkused===

Redaktsioon: 5. veebruar 2010, kell 01:16

Sissejuhatus

Üks võimalus liigitada nimeservereid või nimeserverite tarkvara on selle järgi, millised päringuid teenindatakse

  • autoriteetne (ingl. k. authoritative) - vastab päringutele ainult nimeserveri tsoonifailis kirjeldatud andmete alusel; autoriteetsed nimeserverid teenindavad reeglina resolverite päringuid
  • rekursiivne (ingl. k. recursive) - rekursiivne nimeserver ei sisalda nö oma tsoonifaili, st ta ei ole mingite vastuste osas autoriteetne; rekursiivne nimeserver teenindab mingi piiratud hulga klientide päringuid lahendades neid autoriteetsete nimeserverite abil ja seetõttu nimetatakse rekursiivset nimeserverit tihti resolveriks (ingl. k. to resolve - lahendama)

Omakorda jagunevad autoriteetsed nimeserverid kaheks

  • primaarne - tavaliselt on tsoonil üks primaarne nimeserver, kuhu nimeserveri haldaja teeb muudatusi; primaarse nimeserveri nimi näidatakse tsooni SOA kirjes
  • sekundaarne - tavaliselt on tsoonil üks või enam sekundaarset nimeserverit, mis kopeerivad automaatselt tsoonifailide sisu primaarselt nimeserverilt

NSD (ingl. k. name server daemon) on autoriteetne nimeserver. Praktiliselt tähendab see, et nö nimesüsteemi lõppkasutaja ei kasuta seda otse oma arvuti nimeserverina seadistades NSD nimeserveri aadressi oma /etc/resolv.conf failis, vaid seda kasutab nt lõppkasutaja arvuti nimeserveriks seadistatud rekursiivne resolver, kui see resolver oma töö käigus nii otsustab.

NSD nimeserveril on sellised omadused

  • autoriteetne - sobib kasutada primaarse või sekundaarse nimeserverina
  • TSIG signatuurid - primaarse ja sekundaarse nimerveri vahelise andmevahetuse turvamiseks
  • DNSSEC tugi - võimaldab korraldada turvaliselt nimekirjete levitamist
  • IPv6 tugi

NSD paigaldamine

Debian

Debian Lenny paketihalduses on NSD tarkvara versioon 3.0.7, paigaldamiseks tuleb öelda

 # apt-get install nsd3

OpenBSD

OpenBSD 4.6 jaoks on olemas binaarse paketi kujul NSD tarkvara versiooni 3.2.2, paigaldamiseks tuleb öelda

 # pkg_add nsd

Tulemusena paigaldatakse sellised programmid

  • /usr/local/sbin/nsd - nsd deemon
  • /usr/local/sbin/nsd-notify - notify teate saatmise utiliit
  • /usr/local/sbin/zonec - tsooniandmete kodeerija
  • /usr/local/sbin/nsdc - nsd deemoni juhtprogramm
  • /usr/local/sbin/nsd-xfer - tsooni kopeerimise utiliit
  • /usr/local/sbin/nsd-patch - teisendab andmed tekstilisele kujule

ning kasutatakse selliseid katalooge

  • /etc/nsd - seadistusfailid
  • /var/nsd/zones - tsoonifailid

Primaarne nimeserver

  • Primaarne nimeserver sisaldab autoriteetseid andmeid, mis on tavaliselt kirjeldatud tema failisüsteemis nn tsoonifailides ja mille sisu haldab otseselt nimeserveri haldaja.
  • Primaarsest nimeserverist saavad sekundaarsed nimeserverid kopeerida tsoonide sisu.
  • Kõik rekursiivsed resolverid saavad autoriteetse vastuse kõnealuses primaarses nimeserveris kirjeldatud andmete osas.

Primaarse nimeserveri seadistamine

NSD programmi tööd juhib seadistusfail /etc/nsd/nsd.conf, mis võiks olla primaarsel nimeserveril nt selline

 server:
       ip-address: 192.168.10.161
       ip4-only: yes
       port: 53
       logfile: "/var/log/nsd.log"
 
 zone:
       name: "loomaaed.tartu.ee"
       zonefile: "loomaaed.tartu.ee"
       outgoing-interface: 192.168.10.161
       notify: 192.168.10.190 NOKEY
       provide-xfr: 192.168.10.190 NOKEY

Seadistusfail sisaldab kahte sektsiooni

  • server - üldised nimeserveri tööd määravad parameetrid, võib esineda üks kord
  • zone - konkreetset tsooni puudutavad parameetrid, võib esineda mitu korda

server sektsiooni parameetrid

  • ip-address - millisel ip aadressid nimesever pakub teenust
  • ip4-only - kas nimesever pakub teenus ainult IPv4 võrgus
  • port - millisel pordil nimesever pakub teenust
  • logfile - logifaili asukoht failisüsteemis

zone sektsiooni parameetrid

  • name - tsooni nimi
  • zonefile - tsoonifaili nimi
  • outgoing-interface -
  • notify - sekundaarse nimeserveri aadress, millele saadab primaarne nimeseveri teate kui vastavas tsoonifailis toimub muudatus
  • provide-xfr - sekundaarse nimeserveri aadress, millelt on lubatud vastavat tsooni kopeerida

Primaarse tsooni ettevalmistamine

Tsoonifailid ise on samasuguse sisuga nagu BIND tarkvara tsoonifailid st nt

 # cat /var/nsd/zones/loomaaed.tartu.ee.zone
 $TTL    604800
 @       IN      SOA   ns.loomaaed.tartu.ee. root.ns.loomaaed.tartu.ee. (
                      2010012400         ; Serial
                          604800         ; Refresh
                           86400         ; Retry
                         2419200         ; Expire
                          604800 )       ; Negative Cache TTL
 ;
 @       IN      NS      ns.loomaaed.tartu.ee.
 ns      IN      A       192.168.1.50
 www     IN      A       192.168.1.51

Selleks, et primaarne nimeserver saaks tsoonifaili kasutada, tuleb tsoonifail kompileerida öeldes

 # nsdc rebuild
 zonec: reading zone "loomaaed.tartu.ee".
 zonec: processed 4 RRs in "loomaaed.tartu.ee".
 
 zonec: done with 0 errors.

Tulemusena tekib sobiva sisuga fail

 /var/nsd/nsd.db

Primaarse nimeserveri kasutamine

Primaarse nimeserveri käivitamiseks peab olema kompileeritud tsoonide andmebaas ning tuleb öelda

 # nsdc start

Nimeserveri seiskamiseks tuleb öelda

 # nsdc stop

Peale tsoonifailis muudatuste tegemist tuleb tsoon kompileerida ning öelda

 # nsdc reload

Seadistusfailis näidatud sekundaarsetele nimeserveritele saadetakse notify reload tegemisel automaatselt, kuid seda saab teha ka ilmutatud kujul

 # nsdc notify

Sekundaarne nimeserver

  • Sekundaarne nimeserver sisaldab autoriteetseid andmeid, mida ta käib kopeerimas vastava tsooni autoriteetselt nimeserverilt.
  • Kõik rekursiivsed resolverid saavad autoriteetse vastuse kõnealuses sekundaarses nimeserveris kirjeldatud andmete osas.

Sekundaarse nimeserveri seadistamine

NSD programmi tööd juhib seadistusfail /etc/nsd/nsd.conf, mis võiks olla seknudaarsel nimeserveril nt selline

 server:
       ip-address: 192.168.10.190
       ip4-only: yes
       port: 53
       logfile: "/var/log/nsd.log"
 
 zone:
       name: "loomaaed.tartu.ee"
       zonefile: "loomaaed.tartu.ee"
       outgoing-interface: 192.168.10.190
       allow-notify: 192.168.10.161 NOKEY
       allow-notify: 127.0.0.1 NOKEY
       request-xfr: 192.168.10.161 NOKEY

Seadistusfail sisaldab kahte sektsiooni

  • server - üldised nimeserveri tööd määravad parameetrid, võib esineda üks kord
  • zone - konkreetset tsooni puudutavad parameetrid, võib esineda mitu korda

server sektsiooni parameetrid

  • ip-address - millisel ip aadressid nimesever pakub teenust
  • ip4-only - kas nimesever pakub teenus ainult IPv4 võrgus
  • port - millisel pordil nimesever pakub teenust
  • logfile - logifaili asukoht failisüsteemis

zone sektsiooni parameetrid

  • name - tsooni nimi
  • zonefile - tsoonifaili nimi
  • outgoing-interface - ip aadress, millelt sekundaarne nimeserveri poolt algatatud ühendus väljub
  • allow-notify - ip aadress, millelt nimeserver võtab vasta notify teateid; 192.168.10.161 on primaarne nimeserver, 127.0.0.1 on vajalik, et nsdc utiliidi abil sekundaarsest nimesereverist endast kutsuda esile tsooni kopeerimine
  • request-xfr - ip aadress, millelt nimesever kopeerib tsooni sisu

Sekundaarse tsooni ettevalistamine

Sekundaarse tsooni sisu kopeeritakse serveri käivitamisel primaarselt automaatselt, kuid nö tühja nsd.cdb faili moodustamiseks tuleb siiski öelda

 # nsdc rebuild

Sekundaarse nimeserveri kasutamine

Üldiselt tuleb NSD käivitamiseks öelda

 # nsdc start

ja seiskamiseks

 # nsdc stop

Töö käigus saadab primaarne nimeserver sekundaarsele notify teate, seejärel kopeerib sekundaarne primaarselt vastava tsooni. Tulemus salvestatakse mitmesse faili

  • /var/nsd/nsd.db
  • /var/nsd/ixfr.db

Sekundaarse tsoonifaili kopeerimiseks vastavasse tekstifaili tuleb öelda

 # nsdc patch

Tulemusena tekib tekstifail

 /var/nsd/zones/loomaaed.tartu.ee.zone

Primaaserst nimeserverist tsoonide kopeerimiseks sobib öelda

 # nsdc update

Iseenesest kutsub tsooni kopeerimise esile kui saata notify sekundaarsele serverile

 # nsd-notify -z loomaaed.tartu.ee 127.0.0.1

Logi

Kui primaarne nimeserveri saadab notify ning toimub tsooni kopeerimine ilmub sekundaarse nimeserveri logisse

 [1264973684] nsd[12452]: info: Zone loomaaed.tartu.ee serial 2010013103 is updated to 2010013104.

NSD nimeserveri töö kontrollimine

NSD serverile päringu esitamiseks sobib öelda nii, näidates eraldi, et küsimuses ei kasutata recurse lippu

 # dig +norecurse @localhost www.talv.loomaaed.tartu.ee a
 
 ; <<>> DiG 9.5.1-P3 <<>> +norecurse @localhost www.talv.loomaaed.tartu.ee a
 ; (2 servers found)
 ;; global options:  printcmd
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26773
 ;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
 
 ;; QUESTION SECTION:
 ;www.loomaaed.tartu.ee.    IN      A
 
 ;; ANSWER SECTION:
 www.loomaaed.tartu.ee. 604800 IN   A       192.168.1.51
 
 ;; AUTHORITY SECTION:
 ns.loomaaed.tartu.ee. 604800  IN      NS      ns.loomaaed.tartu.ee.
 
 ;; ADDITIONAL SECTION:
 ns.loomaaed.tartu.ee. 604800 IN    A       192.168.1.51

kus vastuses on antud

  • QUESTION SECTION - korratakse küsimust
  • ANSWER SECTION - vastus küsimusele
  • AUTHORITY SECTION - autoriteetsete andmete osa
  • ADDITIONAL SECTION - täiendavate andmete osa

NSD tarkvara sisaldab utiliiti nsd-xfer, millega sobib kopeerida tsooni ja mida ta ka ise sisemiselt kasutab

 # nsd-xfer -z loomaaed.tartu.ee -f /tmp/loomaaed.tart.ee.zone 192.168.1.251

TSIG signatuuride kasutamine

Transaktsiooni signatuure (ingl. k. Transaction SIGnature, TSIG) kasutatakse selleks, et tagada kahe nimeseveri, tavaliselt primaarse ja sekundaarse andmevahetusel andmete autentsus.

Selleks tuleb kirjeldada mõlema nimeseveri /etc/nsd/nsd.conf seadistusfailis võti

 key:
       name: tsoonivoti
       algorithm: hmac-md5
       secret: "K2tf3TRjvQkVCmJF3/Z9vA=="

ning seda seejärel tsooni juures kasutada

       notify: 192.168.10.190 tsoonivoti
       provide-xfr: 192.168.10.190 tsoonivoti

DNSSEC kasutamine

DNSSEC sisselülitamiseks ei ole NSD puhul midagi vaja teha, signeeritud tsoonifailide kasutamisel kasutatakse DNSSEC'i automaatselt.

Nimeserveri kasutamine chroot keskkonnas

TODO

Jõudlus

  • NSD oskab kasutada mitut protsessorit ja nö keskpärasel riistvaral suudab teenidada kümneid tuhandeid päringuid sekundis. Selleks tuleb näidata, milline arv NSD protsesse käivitatakse
 # Number of NSD servers to fork.
 # server-count: 1
  • NSD on 2-3 korda kiirem kui Bind.

Tsooni migreerimine nimeteenuse haldajate vahel

Üks oluline praktiline põhjus, miks tuleks pidada rekursiivset ja autoriteetset nimeserverit eraldi on seotud tsoonide kolimisega ühe nimeteenuse pakkuja juurest teise nimeteenuse pakkuja juurde. Kui mõlema nimeteenuse kasutajad kasutavad oma nimeteenuse pakkuja rekursiivset nimeserverit, siis kõik nimelahendus laheneb nii nagu põhimõtteliselt juurikast nimed edasi hargnevad. Kui aga nimeteenuse pakkuja rekursiivne ja autoriteetne nimeserver on üks ja sama, siis lahendab ta esimeses järjekorras nii nagu tema lokaalsetes tsoonifailides on parasjagu ja alles seejärel pöördub juurnimeserverite poole. Ja siit järeldub, et kui tsoon on uue nimeteenuse pakkuja juures ettevalmistatud ja veel ei ole nt tld domeeni tsoonifailis ümberlülitust toimunud, siis ühendatud teenuste puhul hakkavad sellise teenusepakkuja kliendid juba nö varem seda uut nimelahendust kasutama. Vastasel korral aga alles siis, kui tld tsoonifailis on lülitus tehtud.

Märkused

  • Nimeserver kui nimeserveri protsess, mis pakub võrgus teenust ei ole iseenesest primaarne või sekundaarne. Sekundaarne või primaarne on nimeserver tsooni suhtes. Kuna ühes nimeserveris võib olla kirjeldatud mitmeid tsoone, siis seetõttu üks ja sama nimeserver võib olla korraga nii sekundaarne kui primaarne.
  • Kleepekirje on täiendavate omadustega A kirje, nt küsides vastavast tsoonist seda A kirjet ei esitata teda vastuses answer sektsioonis, vaid ainult additional sektsioonis.
  • nsdc update kasutamiseks peab tingimata nsd olema binditud muu hulgas ka 127.0.0.1 aadressile
  • Kui nsdc käivida sekundaarsel nimeserveril nn loopback aadressil (nt lo1 seadmele omistatud aadressil), siis tundub, et outgoing-interface direktiivi ei tohi kasutada selleks, et nsdc update töötaks
  • NSD sobib kasutada primaarne-sekundaarne paaris koos Bindiga mõlemat pidi.

Monitooring

Nimeserverit sobib monitoorida Nagiose check_dig lisa abil, nt küsides SOA kirjet

 $ /usr/lib/nagios/plugins/check_dig -l loomaaed.tartu.ee -T SOA -H 192.168.10.190 -a hostmaster

Kasulikud lisamaterjalid