Tsoonifaili haldamine
Sisukord
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
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
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