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 tsoonifailides asuvad failisüsteemis
- andmebaasi kasutatakse programmi kasutajate halduseks jms, PostgreSQL ning MySQL valikud
- kasutab suhteliselt palju Pythoni raamistikku, nt veebiserver on ka Pyton
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