Tsoonifaili haldamine

Allikas: Kuutõrvaja

Sissejuhatus

Nimeserverid moodustavad hajusa andmebaasi, mille andmed asuvad tavaliselt tekstifaili kujul esinevates tsoonifailides. Reeglina kirjeldatakse andmed tsoonifailides standardsel kujul, nn BIND-formaadis (RFC 1035 punkt 5 and RFC 1034 punkt 3.6.1).

Tsoonifailis esinevad andmed ressursikirjetena (ingl. k. Resource Record, RR). Nimesüsteemi ressursikirjeid kasutatakse internetis erinevate protokollidega seotud andmevahetuse korraldamisel, nt

  • epost - MX, SPF, PTR kirjed
  • veeb - A, CNAME kirjed
  • nimeteenus - SOA, NS kirjed

BIND-formaati kasutavad nt NSD ja BIND nimeserverid.

Tsoonifaili kirjed

Tsoonifailis ....

 $TTL    604800
 $ORIGIN  loomaaed.tartu.ee
 @       IN      SOA   ns.loomaaed.tartu.ee. hostmaster.ns.loomaaed.tartu.ee. (
                     2010020100         ; 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

smbind

smbind (Simple Management for BIND) http://sourceforge.net/projects/smbind/ on veebipõhine tsoonifailide haldamise rakendus, mis on programmeeritud PHP keeles ning kasutab MySQL või PostgreSQL andmebaasi. Tarkvaral on sellised omadused

  • tsooniandmed asuvad andmebaasis ja rakendusega saab nende põhjal genereerida vastava tekstifaili

2010 aasta alguse seisuga esineb Debian Lenny keskkonnas PostgreSQL andmebaasi kasutamisel probleem seoses PostgreSQL v 8.3 süntaksiga, kui PHP koodi kohendada, saab sellest üle

 # cat /usr/share/smbind/php/src/include.php
 ...
 //    if($_CONF['range'] > 0) {
 //            $limit = "LIMIT " .
 //                     (($_GET['page'] * $_CONF['range']) - $_CONF['range']) .
 //                     ", " .  
 //                     $_CONF['range'];
       if($_CONF['range'] > 0) {
               $limit = "LIMIT " . $_CONF['range'] . "OFFSET " . (($_GET['page'] * $_CONF['range']) - $_CONF['range']);
       }

Teine probleemne fail on /usr/share/smbind/php/src/zonedelete.php.

Paigaldamine

Tarkvara paigaldamiseks Debian Lenny keskkonnas sobib öelda

 # apt-get install smbind

Tulemusena tekivad sellised olulised kataloogid ja failid

  • /etc/smbind - seadistusfailid
  • /usr/share/doc/smbind/dbfiles - PostgreSQL ja MySQL andmebaasi skriptid
  • /usr/share/smbind/php - veebirakendus

PostgreSQL andmebaasi ettevalmistamiseks sobib öelda

 $ cat /usr/share/doc/smbind/dbfiles/smbind-pg.sql | psql -h 192.168.1.247 -U smbind smbind

Kasutamine

smbind kasutamine võiks paista nt selline

Smbind-1.gif

Zoner

Zoner http://pypi.python.org/pypi/zoner/ on Pyton keeles programmeeritud tsoonide halduse tarkvara, millel on sellised omadused

  • kehtivad ja varasemad versioonid tsoonifailidest asuvad failisüsteemis
  • muudatusi võib teha vaheldumisi failisüsteemis ja kasutajaliideses
  • andmebaasi kasutatakse programmi kasutajate halduseks jms, PostgreSQL ning MySQL valikud
  • kasutab suhteliselt palju Pythoni raamistikku, nt veebiserver on ka Python
  • saab kasutada ainult SOA, A, MX, CNAME, NS ja TXT kirjeid
  • tsoonifaili failisüsteemis muutes tsoonifaili lisatud kommentaarid haldusliidese kaudu muudatusi jätkates eemaldatakse

Autor ise mainib, et tarkvara on tehtud eesmärgiga õppida TurboGear vahendite kasutamist ja eks ta seda tunda ka annab suhteliselt tasakaalust ära funktsionaalsuse ja tehniliste komponentide rohkusega.

Paigaldamine

Paigaldamiseks Debian Lenny keskkonda on vaja eelnevalt paigaldada paketid

 # apt-get install python-setuptools python-turbogears python-psycopg2

Ning paigaldada Pyhtoni vahenditega Zoner programm

 # easy_install zoner

Seejärel moodustada seadistusfail näidise eeskujul

 # cd /usr/lib/python2.5/site-packages/zoner-1.4.1-py2.5.egg
 # cp config/sample-prod.cfg zoner.cfg

kus on oluline näidata andmebaasi ligipääs, nt PostgreSQL puhul

 sqlalchemy.dburi="postgres://zoner:zoner@192.168.1.247/zoner"

Andmebaasi initsialiseerimiseks tuleb öelda

 $ tg-admin -c zoner.cfg sql create

Seejärel lisada rakendusele kasutaja

 $ zoner_users -c zoner.cfg add

Ning käivitada rakendus

 $ zoner zoner.cfg

Logi tekib failidesse

 ./zoner_access.log
 ./zoner_error.log

Kasutamine

Veebipõhine kasutajaliides asub vaikimisi aadressil http://localhost:8080/ ja näen välja selline

Zoner-1.gif

Tsoonifaili tekitamiseks tuleb esmalt moodustada kataloogi vähese sisuga tsoonifail, nt

 @ 0 IN SOA ns hostmaster.ns 2010020208 604800 86400 2419200 604800
 @ 604800 IN NS ns1
 @ 604800 IN NS ns2

Kustutamiseks fail kustutada. Kasutajaliidesest seda teha ei saa.

Töö tulemusena tekivad vaikimisi tsoonifailid kahte kataloogi

  • /var/named/zones - kehtivad tsoonifailid
  • /var/tmp/zoner_archive - tsoonifailide arhiiv, serial numbrite kaupa

Tsoonifaili sisu on suhteliselt minimalistlikul moel esitatud

 @ 0 IN SOA ns hostmaster.ns 2010020208 604800 86400 2419200 604800
 @ 604800 IN NS ns1
 @ 604800 IN NS ns2
 ftp 604800 IN A 192.168.1.21
 ns1 604800 IN A 192.168.1.51
 ns2 604800 IN A 192.168.1.52
 www 604800 IN A 192.168.1.80

Webmin

TODO

Tsoonifaili kasutamine

NSD

TODO

BIND

TODO

Kasulikud lisamaterjalid