Zadani prikladu na patem terminu UNIXu (7.6.2000)
Naprogramujte Bindhost
Napiste Bindhost - program, ktery v zavislosti na obsahu /etc/hosts a
/etc/named.boot vygeneruje zonove soubory pro domeny, ktere jsou
nadefinovane v /etc/named.boot
Tedy jde o to, ze v /etc/hosts jsou napsane ip adresy, k nim prirazena
jmena stroju. Z techto udaju se ma vygenerovat soubor, ktery bude
konfiguracnim souborem DNS serveru, a to jak normalne (zaznamy IN A a IN
CNAME), tak reversni (IN PTR).
Navic v /etc/hosts jsou jmena bud cela (tedy pocitac.domena.nekde.cz) nebo
jen zkracena (napriklad pocitac1). K temto zkracenym jmenum je nutno
doplnit (jen pro nase ucely, puvodni /etc/hosts musi zustat nezmenen) nasi
vlastni domenu, ktera se nachazi v /etc/resolv.conf na radku ktery zacina
slovem domain.
Pak je treba udelat nejake pruchody tak, aby vysledek byl korektni pro
nameserver.
Na zacatku kazdeho souboru pro nameserver je SOA hlavicka, ve ktere je
ulozeno serialove cislo tohoto zaznamu. (tato SOA hlavicka muze byt pro
zjednoduseni stejna pro vsechny zonove soubory - tedy na zacatku kazdehu
souboru muze byt napsano $include named.soa, napriklad). Toto cislo je ve
formatu yyyymmddxx - y je rok, m je mesic, d je den a xx je poradove cislo
zmeny v tom dnu. Tedy je pri zmene nutne upravit toto serialove cislo, aby
odpovidalo (pokud souhlasi datum s dnesnim, zvysit xx o jednicku, pokud
nesouhlasi datum, zapsat dnesni datum a xx=01).
Priklad:
/etc/hosts
1.2.3.4 www kotelnik
11.10.9.8 neco.cizidomena.cz
11.12.13.14 pocitac1 pocitac2 pocitac3 #komentar
/etc/resolv.conf
domain mojedomena.cz
/etc/named.boot
directory /etc/named
primary mojedomena.cz mydom.db
primary 13.12.11.in-addr.arpa reverse11.db
Vas program by mel vygenerovat do adresare /etc/named soubor
mydom.db:
$include named.soa
www IN A 1.2.3.4
kotelnik IN CNAME www.mojedomena.cz
pocitac1 IN A 11.12.13.14
pocitac2 IN CNAME pocitac1.mojedomena.cz
pocitac3 IN CNAME pocitac1.mojedomena.cz
reverse11.db:
$include named.soa
14.13.12.11.in-addr.arpa IN PTR pocitac1
a prislusnym zpusobem upravit named.soa
JiKos.