Konfigurace DNS serveru
Nemusis to resit, neb je vyreseno. Aby to neresili dalsi furt dokola, pokusim se to popsat (chtel jsem to udelat uz davno, ale v dusledku staleho odkladani jsem to proste zatim neudelal ).Konfigurace DNS serveru
Jak to funguje
Neni vubec zadny problem udelat DNS server, ktery zna vnitrek CZF i internet a umi odpovidat na oboji dotazy. Je nutno dodrzet nekolik podminek:- Musis mit BIND, nebo si to umet nastavit sam.
- Musi mit zapnuto rekurzivni reseni dotazu. To znamena, ze od klienta obdrzeny dotaz kompletne vyridi a vrati odpoved, ne ze klientovi rekne "ja nevim, ale ptej se taamhle". Defaultne to obvykle je zapnute.
- Musi byt slave/stealth pro zony czf a 10.in-addr.arpa. To znamena:
- slave server (secondary) stahuje data pro zonu z master (primary) serveru a je uveden v NS zaznamech pro tuto zonu.
- stealth server je obdobny, ale neni uveden v NS zaznamech zony.
- forward server - zadosti pouze cachuje a preposila dal, sam server nevede u sebe zony, nestahuje zadna data. Vhodny rezim pro slabe stroje, nebo tam kde neni rezim zapisu na disk (flashdisky)
- master servery pro tyto dve zony jsou uvedeny nize. Duvod: Pokud server nevi nic o techto zonach, bude se na ne dotazovat root serveru v internetu a tam se samozrejme nic nedozvi. Pokud je ale zna, muze se od tohoto bodu odpichnout a patranim smerem dolu dotaz uspesne vyresit. Pozn. NENI treba, aby mel server natahane VSECHNY vnitrni zony czf. Fakt ne!
- Musi mit informaci o root serverech (soubor named.ca, db.root nebo tak nejak). Pres nej bude resit dotazy na vnejsi adresy.
- Musi mit zajisten pristup do internetu na port 53 (tcp i udp), aby byl schopen resit dotazy na vnejsi adresy. Provozovatel se musi smirit s tim, ze jeho server bude generovat do inetu jisty provoz "jmenem svych klientu". Nebo musi byt globalni forwarder nastaveny na server, ktery umi prekladat internet, a zaroven czf a 10.in-addr.arpa domenu, ktera bude mit sve vlastni forwardery, a nebude pouzivat tech globalnich - cili internetovych. Taktez nesmi pouzit root servery, protoze ty taktez nemaji potuchy o czf.
- Forwardovani funguje pomerne dobre, musi se ale spravne nastavit. Pokud me (Pihhanovi) je znamo, tak to funguje spravne. Jde o jedno zasadni nastaveni - musi! se uvest server, ktery bude obsluhovat zonu czf a reverzni 10.in-addr.arpa, nebo musi byt uvedeny globalni forwardery tak, aby vsechny z uvedenych umely prekladat czf domeny (ty mohou byt taky forwardery, ale musi to umet zpracovat nebo poslat zadost spravne, a ne se ptat serveru v internetu).
Pro klienty: Pouhe uvedeni nekolika nameserveru, z nichz nektere jsou v internetu a jine v czf NEFUNGUJE spravne. Bud to trva dlouho, nebo to rovnou zblbne. Pokud totiz dotaz na czf zonu dostane nameserver v inetu, neodpovi "nevim", ale "neexistuje". A to je konec dotazovani (tzv. negativni odpoved). Takze kliosi...najdete si dva spolehlive NS v CZF a pouzivejte pouze ty. Nebo si konecne nastavte vlastni server, aby umel oboji.
(Ne)kompletni seznam fungujicich NS:
- ns2.slapanice.czf (10.129.64.2) - oficialni server s root domenou czf (root-G.czf), ve Slapanicich.
- ns.zebetin.brno.czf (10.128.11.2) - daleko od centra, asi jen pro mistni
- cern.brno.czf (10.128.0.7) - silna masina, dobre spojeni
- lisa.zabiny.brno.czf (10.128.0.35) - slaba masina, spojeni dobre, nehrnte se sem vsichni
- rtr1.kohoutovice.brno.czf (10.128.0.26) - neprilis silna, ale velmi dobre umistena masina
- geralt.lelekovice.czf (10.129.10.234) - slaba linka, asi jen pro mistni
- menserver.tisnov.czf (10.129.0.26) - pres VPN, nevhodne pro jine nez mistni
- Jak ziskat vypis oficialnich DNS serveru, ktere umi prekladat czf domeny?
dig NS czf. Pokud ti jeste DNS v czf siti nefunguje, je potreba pridat jeste zavinac a adresu nektereho z uvedenych serveru. tedy
dig NS czf. @10.129.64.2. Vsechny servery root-.czf by mely mit aktualni informace o domenach v .czf. Asi nejblizsi je root-G.czf, a je vhodne se nejdriv divat tam. Doslo k propojeni s Prahou a dalsimi mesty. Master server pro domeny czf a 10.in-addr.arpa je take root-A.czf (connected.czf, 10.24.1.2) a dalsi servery.
Nicmene slave nebo stealth serverem pro tyto zony stale musi byt kazdy DNS (pokud neni pouze forwarderem) server v CZFree, takze lze data techto zon stahovat v zasade odkudkoli (pokud to tam neni zakazano).
Nastaveni pri BIND (named)
Prida se do /etc/bind/named.conf.local, nebo na konec stavajiciho named.conf. Pokud uz tam ovsem tyto zaznamy nejsou.- slave/stealth
zone "czf" {
type slave;
# zde si muzete uvest vlastni, ale je dobry napad mit vic nez
# jeden, a asi ne vic nez 5 - tak 3. Jeden by mel byt oficialni
masters { 10.129.64.2; 10.128.0.7; 10.128.0.26; };
# ja mam tohle v nastaveni, myslim ze to funguje lip, i kdyz pritom vypisuje varovani pri (re)startu
forwarders {};
forward only;
};
zone "10.in-addr.arpa" {
type slave;
# zde si muzete uvest vlastni, ale je dobry napad mit vic nez
# jeden, a asi ne vic nez 5 - tak 3. Jeden by mel byt oficialni
masters { 10.129.64.2; 10.128.0.7; 10.128.0.26; };
# ja mam tohle v nastaveni, myslim ze to funguje lip, i kdyz pritom vypisuje varovani pri (re)startu
forwarders {};
forward only;
}
- forwarder
zone "czf" {
type forward;
# nasledujici radek je pomerne zasadni pro spravne
# fungovani - nebudeme se ptat root serveru na internetu
forward only;
# zde plati to same co pro mastery v slave rezimu, jenom
# vetsinou bude stacit 1-2 servery, ale mely by byt co nejbliz.
forwarders { 10.129.0.26; };
};
zone "10.in-addr.arpa" {
type forward;
# nasledujici radek je pomerne zasadni pro spravne
# fungovani - nebudeme se ptat root serveru na internetu
forward only;
# zde plati to same co pro mastery v slave rezimu, jenom
# vetsinou bude stacit 1-2 servery, ale mely by byt co nejbliz.
forwarders { 10.129.0.26; };
};
Jak dlouho trva, nez se projevi zmeny DNS v cele siti?
To zalezi na tom, jak jsou nastavene servery. Predevsim to zalezi na tom, jake TTL ma nastavena ta ktera domena. TTL se nastavuje pomoci direktivy $TTL na zacatku souboru zony. Potom to taky zalezi na efektivnim sireni kopii po czfree.Nekdy panuje mylna predstava, ze typ zony slave je pomalejsi nez forward. Tomu tak je pouze v pripade, ze se jedna o stealth server, a nebo o spatne nastaveny server. Co je dulezite pro rychejsi sireni - nastavit notify tak, aby fungovalo. Novejsi bindy totiz pracuji s notifikaci o zmenach zony. Jsou potreba 2 veci - pri kazde zmene se musi zmenit seriove cislo, jinak se zmena vubec neprojevi u dalsich serveru! Seriove cislo je prvni cislo v zavorce za SOA. Obvykle se nastavuje jako datum ve formatu RRRRMMDDXX. XX je poradove cislo, ktere se obvykle dava na 01, a pokud se zona meni jeste ten den, zvysuje se toto cislo.
Druha dulezita vec je, aby ostatni autoritativni servery v rezimu slave prijaly notifikaci. Tady je dulezite, aby notifikace pochazela z jedne z adres uvedene jako NS pro danou domenu. Obvykle se tam dava adresa pro dummy - nezavisla na rozhrani. Jenze BIND normalne posila notifikaci z adresy sitovky, pres kterou to jde. Je potreba nastavit, ze notifikace bude chodit z adresy, ktera se pouziva pro DNS. Takze mu musime vnutit dummy adresu. Obvykle by mela byt stejna pro vsechny zony, ktere server vede (z hlediska nastaveni je to uplne jedno, ale pro poradek by to tak byt melo), takze se prida do globalnich options {...};
prida se tam:
notify-source dummyadresa;
cili v mem pripade treba
notify-source 10.129.0.26;
v pripade, ze v souboru zony mam napsano neco jako:
@ IN NS menserver menserver IN A 10.129.0.26
Dalsi reseni je pomoci
allow-notify { seznam-ip-masteru; ze-kterych-posilaji-notify; }; vnutit, ze prijmou se muze notifikace i z jine adresy, nez autoritativniho serveru.Pokud ma domena, pro kterou jsem master, nastavene alespon jedno NS na jmeno, ktere se resolvuje na tuto adresu, ostatni NS v rezimu slave notifikaci okamzite vezmou na vedomi, a okamzite si zazadaji masterovi o novou zonu. Cela operace tak trva nekolik vterin. Od te doby uz je aktualni zona na vsech slave serverch, a jediny problem neuktualnosti lezi na TTL a cachi ostatnich serveru po ceste ke klientovi.
Problem je, ze servery stealth, ktere nejsou v seznamu NS (takove je vhodne eliminovat na minimalni miru), nic takoveho nedelaji, protoze jim notifikaci nikdo neposle, protoze o nich nevi. To se da zlepsit pomoci also-notify { seznam ip znamych steathu; }; v kazde zone, nebo pripadne globalne, na nejakem z master nebo slave serveru pro danou domenu. Kazdopadne lepsi zpusob je domluvit se se spravcem domeny, aby tam pripsal vsechny servery, ktere jeho domenu vedou, aby to vedeli i ostatni, a zaroven aby to mel aktualni, kdyz uz to ma ;-)
FAQ
- Jak zaregistrovat domenu v .czf?
- Mam MS Windows, a kdyz zadan cokoliv.czf, nefunguje to. Co delat?
- K cemu se s tim mam srat, IP adresa je spolehlivejsi
- Jednak se jmeno mnohem lip pamatuje,
- jednak se daji provozovat potom virtualni servery v siti czfree podle jmena (ne ze by bylo malo adres).
- Taky mohou fungovat vnitrni emaily uvnitr czfree site.
- A hlavne - pro koncove uzivatele IP adresy nejsou a nikdy nebyly, jmena jsou hezci, lip se pamatuji, a uzivatele si je oblibi jen co je budou umet pouzit.
- S tim ze jsou spolehlivejsi je potreba neco udelat, a ne se tomu vyhybat.
TODO
- najit vhodny parametr TTL pro zony v czf
- Návod na psaní zóny pro DNS.
- vysvetlit rozdily mezi normalnim TTL, expire, a ostatnimi cisilky v SOA atributu - detaily o SOA
- maly navod na Nastavení czf mail serveru
Sepsal TomM, doplnil Pihhan