Professional Documents
Culture Documents
DNS Prirucnik
DNS Prirucnik
DNS prirunik
Dinko Koruni <dinkoDOTkorunicATinfomarDOThr>
verzija 1.5
Licenca:
Imenovanje-Nekomercijalno-Bez prerada 3.0 SAD
Slobodno smijete:
umnoavati, distribuirati i javnosti priopavati djelo
Pod sljedeim uvjetima:
Imenovanje. Morate priznati i oznaiti autorstvo djela na nain kako je
specificirao autor ili davatelj licence (ali ne nain koji bi sugerirao da Vi
ili Vae koritenje njihova djela ima njihovu izravnu podrku).
Nekomercijalno. Ovo djelo ne smijete koristiti u komercijalne svrhe.
Bez prerada. Ne smijete mijenjati, preoblikovati ili preraivati ovo djelo.
1/90
Sadraj
1. Uvod...............................................................................................................4
1.1. Domensko ime........................................................................................4
1.2. Domene...................................................................................................5
1.3. Domenski registri.....................................................................................6
1.4. DNS rezolucija.........................................................................................8
1.5. DNS meuspremnici.............................................................................10
1.6. Reverzna rezolucija...............................................................................11
1.7. DNS protokol i komunikacija.................................................................12
1.8. DNS klase i zapisi.................................................................................15
1.9. Primarni i sekundarni NS, prijenos zone...............................................17
1.10. Prijenos zone i poboljanja.................................................................19
1.11. Delegacija............................................................................................21
1.12. DNS dodaci i neki detalji.....................................................................23
1.13. DNS sigurnost.....................................................................................24
2. DNS alati......................................................................................................27
2.1. Naredba host.........................................................................................27
2.2. Naredba dig...........................................................................................28
2.3. Naredba dnswalk...................................................................................30
2.4. Naredba fpdns.......................................................................................31
2.5. Naredba nslint.......................................................................................32
2.6. Naredba zonecheck..............................................................................32
2.7. Naredba dnstop.....................................................................................33
3. Bind9 posluitelj...........................................................................................35
3.1. Konfiguracija openito...........................................................................35
3.2. Komentari..............................................................................................36
3.3. Parametri rada servisa..........................................................................36
3.4. Pristupne liste........................................................................................39
3.5. Odjeljak za zapisnike............................................................................40
3.6. Odjeljak kontrole....................................................................................41
3.7. Odjeljak kljueva...................................................................................42
3.8. Server odjeljak.......................................................................................42
3.9. Odjeljak konfiguracije pogleda..............................................................43
3.10. Umetnuta konfiguracijska datoteka.....................................................44
3.11. Odjeljak za zone..................................................................................45
3.12. Konfiguracija zona...............................................................................47
4. Djbdns posluitelj.........................................................................................52
4.1. Dnscache..............................................................................................53
4.2. Tinydns..................................................................................................55
4.3. Tinydns zone.........................................................................................57
4.4. Axfrdns..................................................................................................62
4.5. Pravila za tcpserver...............................................................................63
4.6. Walldns..................................................................................................65
4.7. Rbldns...................................................................................................65
5. MaraDNS.....................................................................................................66
5.1. CSV1 format zone.................................................................................67
5.2. CSV2 format zone.................................................................................70
5.3. Mararc konfiguracijska datoteka...........................................................77
6. PowerDNS...................................................................................................78
2/90
7. Unbound.......................................................................................................79
8. Dnsmasq......................................................................................................80
9. NSD..............................................................................................................81
10. Primjeri konfiguracija.................................................................................82
10.1. Bind9 konfiguracija - named.conf........................................................82
10.2. Bind9 forward zona - hosts_fsb.db.....................................................84
10.3. Bind9 reverse zona - db.127...............................................................84
10.4. Bind9 wildcard zona - blockeddomain.hosts.......................................85
10.5. Bind9 prazna zona - db.empty............................................................85
10.6. Bind9 reverse zona - hosts_116.rev...................................................85
10.7. Bind9 MS Active Directory kompatibilna zona....................................86
10.8. TinyDNS zona.....................................................................................87
10.9. MaraDNS CSV1 zona.........................................................................87
10.10. MaraDNS CSV2 zona.......................................................................87
11. Literatura....................................................................................................89
Primjer 1: Domenska imena, FQDN, labele......................................................5
Primjer 2: TLD-ovi..............................................................................................6
Primjer 3: TLD, SLD i 3LD.................................................................................6
Primjer 4: Meunarodni TLD-ovi........................................................................6
Primjer 5: Lista vrnih ICANN DNS posluitelja................................................7
Primjer 6: Rekurzivni DNS upit..........................................................................9
Primjer 7: Standardne i reverzne adrese.........................................................12
Primjer 8: Razliiti RR-ovi u svijetu i kod nas..................................................15
Primjer 9: SOA polja u praksi...........................................................................20
Primjer 10: Reverzna delegacija bez klasa.....................................................22
Primjer 11: Kruno posluivanje......................................................................23
Primjer 12: Koritenje naredbe host................................................................27
Primjer 13: Koritenje naredbe dig..................................................................29
Primjer 14: Koritenje naredbe dnswalk..........................................................30
Primjer 15: Koritenje naredbe fpdns..............................................................31
Primjer 16: Koritenje naredbe nslint...............................................................32
Primjer 17: Koritenje naredbe zonecheck......................................................32
Primjer 18: Komentari u named.conf datoteci.................................................36
Primjer 19: Options odjeljak iz named.conf datoteke......................................38
Primjer 20: Definiranje pristupnih listi u named.conf.......................................39
Primjer 21: Koritenje logging direktive...........................................................41
Primjer 22: Controls odjeljak iz named.conf datoteke.....................................42
Primjer 23: Klju za rndc program i za Bind servis..........................................42
Primjer 24: Koritenje server odjeljka..............................................................43
Primjer 25: Razdijeljeni DNS kroz view direktive.............................................44
Primjer 26: Umetnute konfiguracijske datoteke...............................................44
Primjer 27: Koritenje parametara unutar zonskih datoteka...........................48
Primjer 28: Kratice za dnscache......................................................................54
Primjer 29: Podruje djelovanja u tinydns zoni................................................62
Primjer 30: Zamjenski zapisi u tinydns zoni.....................................................62
Primjer 31: Tcpserver pravila za axfrdns.........................................................64
Primjer 32: CSV1 konfiguracija za MaraDNS..................................................67
Primjer 33: CSV2 konfiguracija za MaraDNS..................................................71
3/90
1. Uvod
Na dananjem Internetu je tzv. DNS jedan od osnovnih servisa, te se praktiki
podrazumijeva njegovo shvaanje i ispravna uporaba - ije emo temelje
postaviti u ovoj kratkoj kuharici. Kako svaki prirunik poinje sa teoretskim
uvodom, tako e i ovo uvodno poglavlje sadravati neke osnovne pojmove
nune za razumijevanje i kasniju praktinu primjenu u iduim poglavljima.
DNS (Domain Name System) je strogo hijerarhijski distribuirani sustav u
kojem se mogu nalaziti razliite informacije, prvenstveno one o IP adresama i
slovnim nazivima za raunala. Slovni naziv raunala (engl. hostname) je
jedinstveno simboliko ime unutar pojedine mree kojim se koriste neki
protokoli (SMTP, NNTP) za elektroniku identifikaciju nekog raunala. Takvi
slovni nazivi mogu biti samo jedna rije, ako se recimo radi o lokalnoj mrei; ili
nekoliko rijei odvojenih tokama. U potonjem sluaju rije je o domenskom
imenu (engl. domain name) o kojem emo detaljnije neto kasnije. Klijentima
DNS informacije pruaju DNS posluitelji koristei DNS protokol za
komunikaciju kako sa klijentima tako i meusobno.
Svrha DNS sustava je pojednostavljivanje komunikacije meu raunalima u
smislu lakeg pamenja slovnih naziva kao i mogunosti tematskih i inih
grupiranja raunala koja nisu nuno fiziki blizu (fiziki blizu u smislu slijednih
IP adresa). Oito je bitno ugodnije u svakodnevnom radu koristiti i pamtiti
slovna, simbolika imena umjesto odgovarajuih IP adresa.
Sam DNS sustav je naravno puno iri, te obuhvaa tri osnovne funkcije sa
razliitim segmentima koje emo definirati u daljnjem tekstu:
1. DNS imeniki prostor, problematiku imenovanja i pravila: karakteristike
su hijerarhijska struktura, imenika struktura i pravila imenovanja te
specifikacije domena,
2. registraciju domena i ine administrativne probleme: hijerarhijsku
strukturu nadlenih tijela, hijerarhiju vrnih nadlenih tijela (TLD),
procedure registracije sekundarnih domena, administraciju DNS zona i
administraciju hijerarhije,
3. posluitelje i proces rezolucije: DNS zapisi i zone, tipovi DNS
posluitelja sa razliitim ulogama, procesi rezolucije, DNS poruke,
formati i zapisi.
1.1.Domensko ime
Domensko ime je simboliko ime raunala na Internetu koje ga uglavnom
(postoji mogunost da vie raunala dijeli jedno domensko ime) jedinstveno
oznauje. DNS sustav vri preslikavanje domenskog imena u jednu ili vie IP
adresa te obrnuto, preslikavanje jedne ili vie IP adrese u jedno domensko
ime. Na veini modernih operacijskih sustava se DNS sustav koristi implicitno,
pa je mogue nekom raunalu na Internetu pristupiti kako kroz odgovarajuu
IP adresu, tako i kroz domensko ime - ako ono postoji.
4/90
FQDN:
labele:
ime raunala:
domensko ime:
www.srce.hr., jagor.srce.hr
www, jagor, srce, hr
www, regoc, jagor, kosjenka
jagor.srce, www
1.2.Domene
U pojedinoj domeni, odnosno domenskom prostoru ne mogu postojati dvije
iste labele - to znai niti dvije poddomene niti dva raunala. Domenska
imena su obino grupirana; ona zavravaju pojedinom grupom labela za koje
postoje tono definirana pravila. Takve zavrne labele se nazivaju TLD (engl.
Top-Level Domain) imena, kojih postoje dva tipa:
5/90
TLD: .hr
SLD: .fer.hr
3LD: .esa.fer.hr
1.3.Domenski registri
Slino kao i za IP adrese, postoje domenski registri, baze podataka o
domenama i odgovarajuim IP adresama, po jedan za svaku TLD. Oni kao
uslugu daju domenska imena za vlastitu TLD te omoguavaju ostatku svijeta
pregled informacija o registracijama pojedinih domena. Domenski registri se
inae nazivaju NIC (Network Information Centre), te su najee neprofitne ili
dravne organizacije. Informacije o registracijama su dostupne kroz Whois
sustav, pa je tako za Europu nadlean whois.ripe.net posluitelj (primjer
dobrog Whois klijenta je Jwhois, sa ugraenim bazama lokalnih registara).
Same registracije se najee deavaju na principu "tko prvi, njemu djevojka",
iako pojedini mogu formirati sloene politike zbog zatienih imena, itd. Svaki
registar upravlja DNS posluiteljima za specifini TLD, pa je to za Hrvatsku
(.HR) dns.srce.hr kojim upravlja HR-DNS sluba za CARNet, sa 28 tisua
registriranih domena u 2004. Dakle, za ccTLD-ove su obino nadlene vlade
pojedine drave, dok je za gTLD nadlean iskljuivo ICANN.
Primjer 4: Meunarodni TLD-ovi
6/90
TLD
opis
AC
ccTLD - Ascension Island
URL
Network Information Center (AC Domain
Registry) (http://www.nic.ac/)
AD
ccTLD - Andorra
Servei de Telecommunications dAndorra
(http://www.nic.ad)
AE
ccTLD - United Arab Emirates
Telecommunications
Emirates
Corporation (http://www.nic.ae)
AER gTLD - AERO (Aviation Societe
Internationale
de
O
Community)
Telecommunications Aeronautique S.C.
(http://www.information.aero)
...
...
...
HR
ccTLD - Croatia/Hrvatska CARNet - Croatian Academic and
Research Network (http://www.dns.hr)
...
...
...
Naravno, za osnovnu domenu je takoer nadlean ICANN, koji regulira
upravljanjem 13 vrnih DNS posluitelja (engl. root servers). Reeni DNS
posluitelji su uglavnom fiziki smjeteni u USA. Dio adresa vrnih posluitelja
se distribuira anycast tehnologijom koristei BGP protokol kako bi se
omoguila decentralizacija - na taj nain se veliki broj distribuiranih vorova u
svijetu pojavljuje kao jedinstveni vor odnosno servis. Trenutno je na 13
vrnih posluitelja rasporeeno ukupno stotinjak (svibnja 2007. bilo je 117
vrnih posluitelja) fizikih posluitelja diljem svijeta. Uzgred, zanimljivo je
spomenuti da se smatra kako je prosjeno 98% prometa (a prosjean vor
prima oko 2000 DNS upita u sekundi) koje vrni DNS posluitelji primaju
zapravo nepotreban promet, rezultat razliitih konfiguracijskih i inih greaka.
Primjer 5: Lista vrnih ICANN DNS posluitelja
ime
operator
A
VeriSign Naming
and Directory
Services
B
Information
Sciences Institute
C
D
E
F
G
H
Cogent
Communications
University of
Maryland
NASA Ames
Research Center
Internet Systems
Consortium, Inc.
U.S. DOD Network
Information Center
U.S. Army Research
Lab
lokacija
Dulles, Virginia,
USA
IP adresa
IPv4: 198.41.0.4
Marina Del
Rey, California,
USA
anycast
College Park,
Maryland, USA
Mountain View,
California, USA
anycast
IPv4: 128.8.10.90
27
IPv4: 192.203.230.10
297
Columbus,
Ohio, USA
Aberdeen
Proving
Ground,
Maryland, USA
7/90
ASN
1983
6
IPv4: 192.5.5.241
3557
IPv6: 2001:500::1035
IPv4: 192.112.36.4
568
IPv4: 128.63.2.53
IPv6:
2001:500:1::803f:235
13
ime
operator
I
Autonomica/NORDU
net
J
VeriSign Naming
and Directory
Services
K
Reseaux IP
Europeens Network
Coordination Centre
L
Internet Corporation
for
Assigned Names
and Numbers
M
WIDE Project
lokacija
anycast
IP adresa
IPv4: 192.36.148.17
ASN
2921
6
2641
5
anycast
IPv4: 192.58.128.30
anycast
IPv4: 193.0.14.129
IPv6: 2001:7fd::1
2515
2
Los Angeles,
California, USA
IPv4: 198.32.64.12
2014
4
anycast
IPv4: 202.12.27.33
IPv6: 2001:dc3::35
7500
1.4.DNS rezolucija
Svaki se funkcionalni DNS sustav nuno sastoji se od tri dijela:
DNS klijent (engl. resolver), program koji se izvrava na klijentskom
raunalu i koji formira odreeni DNS zahtjev. Takav program ne mora
biti nuno samostojei servis, on je na veini Unixoida najee
ugraen u standardnoj biblioteci u formi sistemskih poziva koje
pozivaju razliiti korisniki programi,
Rekurzivni (engl. recursive) DNS posluitelj, koji nakon dobivenih
upita za klijenta obavlja pretraivanje kroz DNS stablo i vraa nazad
odgovore klijentima,
8/90
9/90
1.5.DNS meuspremnici
DNS je sustav sa ovim osnovnim nainima pretraivanja (iterativni i rekurzivni
silazak kroz DNS stablo) vrlo neefikasan, budui da svaki upit implicitno znai
novi prolazak po stablu, poevi od vrnih DNS posluitelja. Jasno, kada bi se
u stvarnom svijetu nuno svaki put prolazilo od poetka DNS stabla do kraja,
do traenog zapisa - proces DNS rezolucije bi trajao i trajao, a optereenje
DNS posluitelja bi postalo pretjerano veliko, sve vee i vee sa porastom
10/90
1.6.Reverzna rezolucija
Do sada smo samo spominjali standardnu unaprijednu (engl. forward)
rezoluciju kod koje se DNS imena pretvaraju u IP adrese. U standardnoj
komunikaciji na Internetu nuno je moi vriti rezoluciju u oba smjera, to e
rei i u unazadnom obliku (engl. reverse) - primjerice za provjeru spada li
odreena adresa u kakvu domenu i sl. No, problem kod reverzne DNS
rezolucije je da se posluitelji razlikuju prvenstveno po labelama odnosno po
domenama za koje su nadleni, a ovdje imamo samo IP adresu kao poetnu
informaciju.
11/90
fly.srk.fer.hr
A
66.74.53.161.in-addr.arpa
161.53.74.66
PTR
fly.srk.fer.hr
12/90
13/90
I jo emo pokazati kako izgleda oblik zaglavlja upita, koje definira sadraj
upita poslanog od klijenta prema posluitelju. Ono se sastoji od nekoliko polja:
QName (engl. question name) - sadri objekt, domenu ili zonu koji su
predmet upita,
QType (engl. question type) - sadri tip samog upita za upit koji dolazi
od klijenta. Isti moe sadravati specifini broj koji odgovara tipu RR-a
koji se trai ili pak neki od posebnih brojeva za posebne vrste upita:
251 odgovara zahtjevu za inkrementalni zonski prijenos (IXFR), 252
odgovara standardnom zahtjevu za prijenos zone (AXFR), 253 i 254
odgovaraju zastjerjelim upitima za zapise vezane uz e-mail (MAILA i
MAILB upiti za MB, MG i MR zapisma), te 255 koji odgovara upitu za
svim zapisima ("*").
QClass (engl. question class) - oznaava koji se tip RR trai i moe
poprimiti vrijednost od 0 do 65535. Standardno je se koristi svega pet
vrijednosti: 1 za Internet (IN) zapis, 3 za CHAOS, 4 za Hesiod (HS),
254 za prazni (NONE) tip i 255 za ANY upit. ANY klasa je zamjenski
("*"), dok se NONE obino koristi u dinamikom DNS-u.
Poruka od DNS klijenta je primjerice sljedeeg oblika: klijent alje UDP upit
(QR=0, to oznaava upit, a ne odgovor) kao standardni upit (OPCODE=0) sa
jednim zapisom u upitu (QDCOUNT=1). Upit uglavnom ne sadri dodatne
zapise niti u polju za odgovor, niti za autoritativni dio niti u polju za dodatne
zapise (ANCOUNT=0, NSCOUNT=0, ARCOUNT=0). QNAME zapis oznaava
primjerice domenu za kojom klijent pretrauje (QNAME = www.google.com.).
Tip i klasa zapisa za kojom klijent pretrauje su QTYPE=1 (adresa raunala) i
QCLASS=1 (Internet adresa). Budui da veliina odgovora unutar 512
bajtova, TC=0.
14/90
esa.fer.hr.
22h30m57s IN A
carnet.hr.
23h17m31s IN NS
carnet.hr.
4h15m27s IN MX
www.l.google.com.
5M IN A
www.l.google.com.
5M IN A
130.2.53.161.in-addr.arpa
86377
jagor.srce.hr
version.bind.
0S CHAOS TXT
161.53.71.180
dns2.carnet.hr.
30 mx2.carnet.hr.
66.249.93.104
66.249.93.99
IN
PTR
"9.2.2"
16/90
Postoji jo niz rijetko koritenih zapisa: AFSDB (engl. AFS database location
code), HINFO (engl. host information), ISDN (engl. ISDN address), MB (engl.
mailbox), MR (engl. mail rename domain code), NULL (engl. null record), RT
(engl. route through), X25 (engl. X25 PSDN address), MINFO (engl. mailbox
or mailing list information), PX (engl. pointer to X.400/RFC822 mail mapping
information), NSAP (engl. network service access point address) i NAPTR
(engl. naming authority pointer). Praktinu upotrebu i detaljniji opis pojedinih
RR-ova emo pokazati kroz primjere u Bind9 poglavlju.
Ponekad moete naii na neke od ovih zapisa, no oni se vie ne koriste i
preporuljivo ih je izbjegavati koristiti: WKS (engl. well known services),
GPOS (engl. geographical position), MD (engl. mail destination), MF (engl.
mail forwarder), NSAP-PTR (engl. NSAP pointer), NXT (engl. next domain),
itd.
17/90
posluitelja. Svaki posluitelj koji ima kompletnu kopiju zone (bilo lokalno bilo
prihvatom na neki drugi nain) bez potrebe za procesom rezolucije je
autoritativni DNS posluitelj za tu zonu. Dakle, rije je o posluitelju koji
servira vlastite podatke klijentima. Naravno, posluitelj moe biti autoritativan
za jednu zonu, ali ne nuno i za neku drugu. Osnovni podatak koji informira
posluitelj da je autoritativan za tu zonu je SOA zapis, uz ostatak konfiguracije
koji omoguava prihvat podataka o zoni i sl. Krivo definirano SOA polje moe
dovesti do situacije da niti jedan DNS posluitelj za zonu ne bude autoritativan
- i time do prestanka normalnog rada DNS rezolucije za tu zonu.
Moe (ak je preporuljivo!) postojati vie definiranih DNS posluitelja za istu
zonu koristei vie odgovarajuih NS zapisa. Danas je praksa da bi svaka
zona trebala imati barem dva DNS posluitelja, tako da padom jednog DNS
nastavlja funkcionirati - neto sporije, ali bitno je da su RR-ovi i dalje dostupni.
Zato je bitno imati dva DNS posluitelja? Nakon isteka TTL vremena
pojedinog RR-a (definirano u svakom RR-u), podaci spremljeni po raznim
klijentima i posluiteljima nestaju. U sluaju da je postojao samo jedan
autoritativni NS (jedan DNS posluitelj), a da je on neaktivan ili neispravan naa zona je nedostupna. I ne samo to - ona je nedostupna na due vrijeme
zbog toga to se neuspjeli upit (NXDOMAIN) spremio na nekom klijentu i
njegovom posluitelju zbog principa negativnog meuspremnika. Stoga je
razvijen princip primarnog (engl. primary, master) i sekundarnog (engl.
secondary, slave) DNS posluitelja. Primarni posluitelj je onaj autoritativni
posluitelj koji podatke o svojoj zoni ima lokalno spremljeno, odnosno ima im
lokalni pristup. Sekundarni posluitelj je pak onaj koji dobiva podatke od
nekog vanjskog izvora, obino koristei prijenos zone (engl. zone transfer)
od primarnog posluitelja. Jasno, primarni posluitelj za jednu zonu moe biti
sekundarni za drugu i sl. Sa gledita klijenta, oba su posluitelja (primarni i
sekundarni) jednake vrijednosti (autoriteta) i jednakog prioriteta (sluajni
izbor). Naravno, postoje i drugi razlozi za implementaciju sekundarnog
posluitelja - kako radi lakeg odravanja (primarni ne mora biti aktivan za
vrijeme odravanja), tako i boljeg rasporeivanja optereenja za velike zone i
mnogo upita. Naravno, dobro je i postaviti sekundarni posluitelj fiziki
udaljenim iz ve navedenih razloga.
Osim primarnih i sekundarnih autoritativnih posluitelja postoji jo par tipova
posluitelja. Ponimo od iskljuivo meuspremnikog posluitelja (engl.
caching-only name server). Takvi posluitelji nisu autoritativni niti za jedan RR
i nemaju nikakve lokalne podatke koje bi posluivali - njihova osnovna funkcija
je poboljati performanse DNS sustava radei kako pozitivno tako i negativno
meuspremanje rezultata DNS upita, smanjujui tako optereenje na
autoritativnim posluiteljima. Sljedei tip je prosljeivaki posluitelj (engl.
forwarding name server). Njegova je osnovna funkcija prihvat i prosljeivanje
upita nekom drugom DNS posluitelju, ali se obino kombinira i sa lokalnim
spremanjem dobivenih rezultata - pa je rije o dobrom rjeenju za spore
mree. Jo jedan tip je i iskljuivo autoritativni posluitelj (engl.
authoritative-only name server) koji nema meuspremnik DNS upita niti ne
odgovara na upite za koje nije autoritativan. On je dakle primarni ili
sekundarni posluitelj za zonu, a ne omoguava rekurzivne upite. Rije je
najee o vidu sigurnosti gdje se odvajaju posluitelji za iskljuivo
18/90
esa.fer.hr
SOA
esa1.esa.fer.hr
postmaster.esa.fer.hr (
1124015177
;serial
28800
;refresh period
7200
;retry interval
604800 ;expire time (1
604800 ;default ttl (1
)
carnet.hr
SOA
dns.carnet.hr
hostmaster.carnet.hr (
2005071902
;serial
10800
;refresh period
3600
;retry interval
2419200 ;expire time (4
86400
;default ttl (1
)
(version)
(8 hours)
(2 hours)
week)
week)
(version)
(3 hours)
(1 hour)
weeks)
day)
1.11.Delegacija
Vratit emo se jo jednom na netrivijalan proces delegacije: rije je o
dijeljenju odreene zone u podzone, koristei odgovarajue NS zapise - u
svojem delegacijskom obliku. No, na nekoliko je vanih detalja potrebno
obratiti panju: ako se zona delegira na DNS posluitelje iji je FQDN iz
delegirane zone, za normalno funkcioniranje je u matinoj zoni potrebne
definirati odgovarajui povezujui zapis (engl. glue records) - A zapis koji
definira adrese DNS posluitelja iz dotine zone. To je nuno zbog toga to se
DNS posluitelji prozivaju po svojim DNS imenima, a ne IP adresama. Da bi
se dolo do podataka iz zone, nuno je doi prvo do posluitelja iz te zone meutim, u sluaju da ne postoje povezujui zapisi u matinoj zoni, posluitelj
matine zone ne bi imao dotini podatak te bi jednostavno izdelegirao upit
DNS posluitelju ija se IP adresa jo uvijek ne zna.
Nuno je primijetiti kako se svaka promjena autoritativnih posluitelja za
pojedinu domenu (NS zapisi) mora runo sinkronizirati i na nadreenim
posluiteljima da bi bila ouvana konzistentnost delegacije (engl. delegation
consistency). U protivnom nema poante postojanja dotinih posluitelja koji
nee biti dostupni (nemaju povezujue zapise na matinoj zoni) jednom kad
21/90
22/90
Pokuaj 1:
www.google.com
www.l.google.com
www.l.google.com
CNAME
A
A
www.l.google.com
66.249.93.104
66.249.93.99
Pokuaj 2:
www.google.com
www.l.google.com
www.l.google.com
CNAME
A
A
www.l.google.com
66.249.93.99
66.249.93.104
23/90
pokazivali na isti podatak u istoj zoni. U takvom zapisu se koristi znak "*" u
imenu kao jedini znak u labeli. Sam DNS posluitelj e primijeniti dotini zapis
i odgovoriti sa dotinim sadrajem u sluaju da:
Nema drugih zapisa koji su precizniji (bolji) odgovor na upit, odnosno
onih koji tono odgovaraju upitu,
Zamjenski zapis se moe staviti umjesto grupe labela tako da
odgovara na zadani upit (engl. pattern matching).
Pojednostavljeno reeno, zamjenski zapis e omoguiti da se upiti za inae
"nepostojeim" labelama preusmjere na "ispravni" RR.
Naposljetku, spomenimo i dinamiki DNS (engl. dynamic DNS) na klasini
DNS sustav. DNS u poetku osmiljen s idejom da se promjene u zonama
nee preesto odvijati - to smo ve vidjeli kod problematike razmjene i
sinkronizacije zona. Za unos u DNS sustav su uglavnom predviene statike
adrese koje se ne mijenjaju, budui da bi runo mijenjanje svaki put
predstavljalo nonu moru za odravanje. Moderni DNS i DHCP posluitelji
stoga omoguavaju meusobno povezivanje sustava dodjeljivanja IP adresa
sa DNS sustavom, tako da se svako DHCP-registrirano raunalo registrira u
DNS sustavu kroz automatizirani proces. Specifino, DHCP klijent alje DNS
UPDATE poruku koja indicira DNS posluitelju to treba obaviti sa
odgovarajuim RR-ovima. Naravno, dinamiki DNS kao takav nije ogranien
nuno na DHCP, ve u praksi svaki autorizirani DDNS (dinamiki DNS) klijent
moe upravljati odgovarajuim zapisima u zoni.
1.13.DNS sigurnost
Naalost, uz DNS sustav su vezani i razliiti sigurnosni problemi. Postoji niz
trikova pomou kojih se moe odredini DNS posluitelj natjerati da prihvati
lane zapise. Takvom metodom lairanja DNS zapisa (engl. DNS forgery)
nesvjesni se klijenti preusmjeruju na lane adrese i time postaju laka meta
napadaa. Standardno su takvi napadi u formi trovanja DNS
meuspremnika (engl. cache poisoning), napada kod kojeg se utie na DNS
posluitelj da povjeruje da je dobio autoritativne informacije o nekim RRovima. Time se utie na sve klijente koji koriste dotini DNS posluitelj da
takoer koriste lairanu informaciju, koja moe omoguiti daljnje razliite
napade na klijentska raunala.
Postoje tri osnovna tipa ovakvog napada:
Preusmjeravanje posluitelja za odredinu domenu - gdje se za neku
domenu na zloudnom posluitelju specificira vlastiti NS za traenu
domenu u autoritativnom odjeljku i jo u dodatnom odjeljku daje vlastiti
A zapis sa lanim NS-om koji se nazivno nalazi u napadnutoj domeni.
Zatrovani posluitelj pamti IP adresu NS posluitelja koji je sada
napadaev DNS posluitelj i time napada dobiva mogunost
proizvoljnog baratanja sa cijelom napadnutom zonom.
Preusmjeravanje NS zapisa odredine domene - omoguava
preusmjeravanje DNS posluitelja neke druge domene (nevezane uz
originalni upit) na proizvoljnu napadaevu IP adresu. Napadaev DNS
posluitelj odgovara u autoritativnom odjeljku za napadnutu domenu
(nevezanu uz originalni upit) sa NS zapisom u traenoj domeni, a u
24/90
25/90
26/90
2. DNS alati
Postoji cijeli spektar razliitih alata kako za iskusnog DNS administratora, tako
i za poetnika. Stoga donosimo tek osnovne alate koji bi trebali omoguiti
testiranje individualnih zapisa, konfiguracija i cijelih zona. Nadalje, nekad
mnogo koritenu naredbu nslookup ne spominjemo iz jednostavnog razloga
- neoprostivo je zastarjela i praktiki neupotrebljiva za iole sloenije zadae.
2.1.Naredba host
Naalost postoje dvije inaice ove naredbe sa istim imenima - jedna je ona
koju donosi Bind9 programski paket, a druga je slobodno dobavljiva i nalazi
standardno se u veini razliitih Unixoida i Linux distribucija. Mi emo se ovdje
orijentirati na potonju inaicu, koja ima prilino vie mogunosti i dodataka.
Osnovna sintaksa naredbe je sljedea:
host [-v] [-a] [-t tip_upita] [parametri] [posluitelj]
host [-v] [-a] [-t tip_upita] [parametri] -l zona
[posluitelj]
Argumenti naredbi su sljedei:
-v daje kompletne informacije pri pregledu RR-ova (TTL, klase), te sve
odjeljke (dodatni i autoritativni),
-t parametar omoguava pretragu za proizvoljnim tipom RR (mogue
je zadati sve tipove koje smo ve spomenuli),
-a odgovara -t any (odnosno -t *),
-l omoguava pregled svih zapisa u zoni (obavlja AXFR), te je sa -t
mogue filtrirati koje specifine tipove RR-ova se trai iz cijele zone,
-p pri ispisu zone forsira da se obavlja prijenos zone samo sa
primarnog posluitelja,
-d omoguava jo detaljniji ispis sa prikazom komunikacije i greaka,
-Z daje ispis kakav odgovara standardnoj Bind zoni.
Primjer 12: Koritenje naredbe host
38.119.119.63
38.119.119.63
38.119.119.63
127.0.0.1
2.2.Naredba dig
Naredba dig je pripadnik neto starije generacije programa, pa je dobar dio
njegove funkcionalnosti pokriven u host naredbi. No njegova jednostavna
sintaksa je prednost za veinu DNS administratora, a i standardno generira
potpuni ispis nalik na Bind zonu. Takoer, reeni alat ima niz korisnih
zastavica za
detekciju i otklanjanje greaka u udaljenoj konfiguraciji.
Najjednostavniji nain upotrebe naredbe dig je sljedei:
dig @posluitelj ime_zapisa tip_zapisa
28/90
Pri emu je posluitelj u formi IPv4 ili IPv6 adrese, ime zapisa je traeno ime
RR-a, a tip je odgovarajui tip RR-a. Standardno dig ispisuje sve komentare,
koje je mogue ugasiti koritenjem parametra +nocomments. Takoer
spomenimo par korisnijih odnosno ee koritenih parametara:
+tcp, +notcp - forsiraju koritenje TCP odnosno UDP DNS
komunikacije,
+search, +nosearch - omoguuju odnosno onemoguuju itanje
/etc/resolv.conf za search te domain parametrima,
+recurse, +norecurse - omoguuje odnosno onemoguuje
postavljanje RD zastavice odnosno rekurzije udaljenog posluitelja,
+trace, +notrace - pregled svih izvrenih upita da se zadovolji
pretraga poevi od korijenskih DNS posluitelja nadalje.
Primjer 13: Koritenje naredbe dig
IN
86400
IN
86400
IN
NS
86400
IN
NS
86400
IN
86400
IN
29/90
2.3.Naredba dnswalk
Jednom kad su postavljene zone i kad ih DNS posluitelj servira svojim
klijentima, poeljno je redovno provjeravati ispravnost istih. Jedan od
jednostavnijih alata za ovu namjenu je dnswalk, koji e koristei AXFR
preuzeti eljenu zonu i ispisati razliite utvrene nekonzistentnosti iste. Prije
upotrebe nuno je osigurati se da sa raunala klijenta imate dozvole za
prijenos zone (AXFR). Sintaksa je jednostavna (primijetite obaveznu toku na
kraju domene):
dnswalk [ -adilrfFm ] domena.
Parametri imaju sljedea znaenja:
-a upozorava na viestruke A zapise,
-r rekurzivno silazi po poddomenama u potrazi za grekama,
-d ispisuje greke na standardni izlaz za greke,
-m provjerava zonu samo ako je promijenjena od zadnjeg pokretanja
ovog programa,
-F provjerava adrese tako da radi standardnu rezoluciju pojedinog A
zapisa i provjerava dobiveni izlaz sa rekurzivnom rezolucijom (PTR) i
usporeuje dobivene rezultate,
-i onemoguuje provjeru za krivim znakovima u labelama,
-l omoguava provjeru za neispravnim delegiranjem.
Primjer 14: Koritenje naredbe dnswalk
30/90
2.4.Naredba fpdns
Naredba fpdns kao osnovnu namjenu detekcija softvera udaljenog DNS
posluitelja. Ovo je u praksi vrlo korisno za eliminiranje potencijalnih problema
u komunikaciji (primjerice, izmeu Djbdns i Bind9 posluitelja i sl). Naravno,
kao osnovna metoda detekcije na veini Bind posluitelja moe posluiti i
naredba host:
host -t txt -c chaos version.bind posluitelj
No, za skoro sve druge posluitelje nema neke opeprihvaene i standardne
metode - pa stoga fpdns vri razliite specifine upite i usporeuje prema
internoj bazi za svaki softver. Takoer, fpdns ukazuje na omoguenost
rekurzivnih upita udaljenom klijentu, to je takoer vrlo vaan dijagnostiki
podatak: u sluaju da udaljeni DNS posluitelj omoguava rekurziju klijentu
koji nije u njegovoj domeni oigledno je rije o ozbiljnoj ranjivosti. Dotina
naredba ima sljedeu sintaksu:
fpdns.pl [ -c ] [ -d ] [ -f ] [ -F broj_djece ] [ -p port
] [ -Q izvorina_adresa ] [ -r broj_pokuaja ] [ -s ]
[ -t vrijeme_upita ] [ -v ] [ posluitelj ]
Parametri imaju ova znaenja:
-c koristi pregled CH TXT polja (za Bind softver) ako je mogue, no to
se standardno ne podrazumijeva zbog nepreciznosti (administrator
moe upisati proizvoljan sadraj);
-d omoguava detaljni ispis greaka i komunikacije,
-f forsira upotrebu CH TXT,
-F omoguava kontrolu djece-procesa koji obavljaju identifikaciju,
standardno je to 10 primjeraka,
-p daje mogunost promjene odredinog porta za DNS komunikaciju naravno, to je standardno port 53,
-Q omoguava izbor izvorine adrese to je korisno primjerice na
raunalima sa vie mrenih adresa,
-r kontrolira broj ponovnih pokuaja identifikacije,
-s smanjuje izlazni ispis na to manje informacija,
-t omoguava kontrolu ukupnog vremena komunikacije - primjerice da
se ne eka na posluitelj koji je nedostupan.
Primjer 15: Koritenje naredbe fpdns
2.5.Naredba nslint
Za razliku od veine opisanih alata, nslint je naredba koja lokalno
provjerava ispravnost Bind zona. Na ovaj nain moete provjeriti veinu
problema prije nego se uope ponu servirati potencijalno neispravne zone.
Naalost, ovaj program ima minus to prijavljuje pretjerano mnogo razliitih
informacija o potencijalnim (dakle ne i stvarnim) problemima koje nije mogue
filtrirati ili kontrolirati. Takoer, budui da ovaj program radi iskljuivo lokalno ogranien je na Bind zone. Sintaksa je trivijalna, sa -c parametrom se
prosljeuje put do named.conf konfiguracijske datoteke za Bind posluitelj.
Primjer 16: Koritenje naredbe nslint
$ nslint -c /etc/named.conf
nslint: 161.53.116.6 in use by frodo.fsb.hr. and
*.hsasf.hr.
nslint: 161.53.116.6 in use by hsasf.hr. and
frodo.fsb.hr.
nslint: 161.53.116.6 in use by www.hsasf.hr. and
hsasf.hr.
itd.
2.6.Naredba zonecheck
Ovaj alat je za krajnjeg korisnika jo jednostavniji od dnswalk naredbe, a
obavlja daleko vie temeljitih pretraga ispravnosti i konzistencije DNS zona,
kao i razliitih preduvjeta za ispravno funkcioniranje. Izvjetaji su jasni i
pregledni, uz svaki problem je priloeno i vrlo jasno objanjenje na engleskom
jeziku - pa je time i dobro za DNS administratora-poetnika. Uz ve
spomenute prednosti, zonecheck ima i niz argumenata koji omoguavaju
fino upravljanje nad ispisom i testovima. Sintaksa je sljedea:
zonecheck [ -hqV ] [ -voet opt ] [ -46 ] [ -c
konfiguracija ] [ -n lista_posluitelja ] domena
Argumenti su mnogobrojni ali ne i nuni za normalan rad, gdje su standardne
postavke dovoljno dobre. Stoga neemo ii u detalje, a zainteresiranima
preporuujemo itanje odgovarajuih prirunika uz program.
Primjer 17: Koritenje naredbe zonecheck
32/90
$ zonecheck bofhlet.net
ZONE : bofhlet.net.
NS <= : ns1.bofhlet.net. [38.119.119.63]
NS
: ns2.bofhlet.net. [38.119.119.64]
_______________
,---------------.|
~~~~ |
warning
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`---------------'
w> Nameservers are all part of the same AS
| Adv: ZoneCheck
|
To avoid loosing all connectivity with the
authoritative DNS in case
| of a routing problem inside your Autonomous System, it
is advised to
| host the DNS on different AS.
`----- -- -- - - :
All the nameservers are part of the same Autonomous
System (AS number
: 21792), try to have some of them hosted on another AS.
`..... .. .. . . .
=> generic
w> Reverse for the nameserver IP address doesn't match
=> ns2.bofhlet.net./38.119.119.64
=> ns1.bofhlet.net./38.119.119.63
==> SUCCESS (but 3 warning(s))
2.7.Naredba dnstop
Rije je o servisu koji omoguava jasne i pregledne statistike DNS upita u
stvarnom vremenu. Reeni servis prislukuje mreni promet i analizira DNS
upite, kategorizirajui ih po: domeni (TLD, drugog i treeg stupnja), tipu upita,
tipu operacije te izvorinoj ili odredinoj adresi. Takoer postoji par ugraenih
filtera koji omoguavaju pregled tipinih zagaenja DNS-a: A-A upite i upite za
nepostojeim domenama. Sintaksa je sljedea:
dnstop [-aps] [-b izraz] [-i adresa] [-f filtar] [ureaj]
[datoteka]
Parametri imaju ova znaenja:
-a anonimizira odnosno skriva adrese u ispisu,
-b definira BPF izraz za filtriranje mrenog prometa (tipino je sljedei:
udp dst port 53 and udp[10:2] & 0x8000 = 0),
-i omoguava ignoriranje reene adrese,
-o onemoguava postavljanje mrenog suelja u nain za
prislukivanje svog prometa (engl. promiscuous mode),
33/90
34/90
3. Bind9 posluitelj
Danas najraireniji DNS posluiteljski softver je ISC Bind. Danas svi vrni
DNS posluitelji koriste upravo Bind softver, preteno u verziji 8 - pa je rije o
praktinom standardu. Naalost, ovaj softver prati lo glas, budui da je u
svojoj prolosti (Bind 4 i Bind 8 verzije) imao niz kritinih sigurnosnih
propusta. Naalost, i dan danas se pojavljuju kritine rupe u ovim inaicama
softvera. Verzija 9 je navodno napisana u potpunosti iz poetka, te je rije o
softveru koji podrava do danas najvei broj DNS specifikacija i dodataka DNSSEC, TSIG, DDNS, NOTIFY mehanizam, EDNS0, IXFR, IPv6, itd. Rije
je o vrlo naprednom servisu koji je specifino pisan sa vieprocesorskom i
viedretvenom podrkom na umu, udaljenom kontrolom kroz rndc program,
mogunou chrootanja i sl. Rije je o monom DNS posluitelju koji
omoguava implementaciju najsloenijih zadaa - ali koji nije nuno
najsigurniji ili ba nuan za jednostavnije zadatke.
3.1.Konfiguracija openito
Osnovna konfiguracija servisa je datoteka named.conf. Ona se obino
nalazi u /etc ili specifino za Debian u /etc/bind direktoriju. Popularna je i
varijanta sa spremanjem u /etc/namedb direktorij. Sama konfiguracijska
datoteka za servis se sastoji od nekoliko grupa direktiva odnosno odjeljaka
(donosimo najvanije, a izostavljamo masters, trusted-keys i lwres
odjeljke)
Komentari - koji omoguavaju da dio konfiguracijske datoteke (linija po
linija ili ak grupa linija) bude zanemaren pri uitavanju servisa.
Upotreba komentara u konfiguraciji je esencijalna za komplicirane
konfiguracije budui da omoguava administratorima jasan pregled kad
i zato je to promijenjeno, koji dio konfiguracije emu slui i za sline
namjene,
Pristupne liste (acl direktiva) - pristupne liste adresa ili korisnika za
odreenu primjenu kasnije u ostalim konfiguracijskim direktivama.
Koritenje pristupnih lista je iskljuivo radi olakanja kasnijih definicija
dozvola u ostalim blokovima, pa se njihova upotreba preporua radi
bolje preglednosti,
Kljuevi (key direktiva) - koji omoguavaju autorizaciju za odreenu
zonu (primjerice za DDNS i DNSSEC) ili kljueve za udaljeno
upravljanje kroz rndc program. U standardnoj upotrebi ovaj odjeljak
nije potreban,
Server grupa (server direktiva) - kroz koju se definira ponaanje DNS
posluitelja u odnosu na druge posluitelje i klijente (prijenosi zona, koji
portovi se koriste, itd). U standardnoj upotrebi ovaj blok nije potreban,
ali omoguava da se promijeni ponaanje samo za kakav specifian
posluitelj,
Kontrole (controls direktiva) - slue definiranju dozvola udaljenog
upravljanja servisom kroz rndc program. Standardno ni ovaj odjeljak
nije nuan, te ga je mogue izostaviti,
35/90
3.2.Komentari
Dozvoljeni komentari u named.conf datoteci su vrlo slobodno definirani, za
razliku od onih dozvoljenih u zonama. Specifino, mogue je koristiti
(naravno, bez navodnika):
C komentare: poinju sa "/*" i zavravaju sa "*/", a mogu se protezati
kroz nekoliko redova,
C++ komentare: poinju sa "//" i vrijede do kraja tekue linije,
Unix komentare: poinju sa "#" i vrijede do kraja tekue linije.
Primjer 18: Komentari u named.conf datoteci
/* ovo je komentar
...niz komentara, potencijalno kroz vie redova...
ali komentar zavrava sa ovim */
# komentar kroz jedan red
// ili ovakav komentar kroz jedan red
36/90
options {
[ version version_string; ]
[ directory path_name; ]
[ minimal-responses yes_or_no; ]
[ notify yes_or_no | explicit; ]
[ recursion yes_or_no; ]
[ forward ( only | first ); ]
[ forwarders { ip_addr [port ip_port] ; [ ip_addr
[port ip_port] ; ... ] }; ]
[ allow-notify { address_match_list }; ]
[ allow-query { address_match_list }; ]
[ allow-transfer { address_match_list }; ]
[ allow-recursion { address_match_list }; ]
[ blackhole { address_match_list }; ]
[
listen-on
[
port
ip_port
]
{ address_match_list }; ]
[ query-source [ address ( ip_addr | * ) ] [ port
( ip_port | * ) ]; ]
[ transfer-format ( one-answer | many-answers ); ]
[ transfer-source (ip4_addr | *) [port ip_port] ; ]
[ notify-source (ip4_addr | *) [port ip_port] ; ]
[ provide-ixfr yes_or_no; ]
[ request-ixfr yes_or_no; ]
[ port ip_port; ]
};
Krenimo redom:
version - omoguava promjenu ve spomenute CH TXT verzije Bind
posluitelja, pa se najee koristi sa skrivanje stvarne verzije
posluitelja radi nekakve lane sigurnosti,
directory - postavlja radni direktorij u odredini, tako da je za zone i
ostale direktive gdje se otvaraju datoteke mogue koristiti relativne
staze,
minimal-responses - servis e dodavati autoritativni i dodatni
odjeljak u DNS odgovore samo kad je to nuno (za delegacije i
negativne odgovore), to obino poboljava performanse DNS
posluitelja (standardno ova opcija nije postavljena),
notify - posluitelj alje NOTIFY poruke svim posluiteljima u NS
zapisima za zonu (osim onom iz SOA polja) kad se desi promjena zone
na autoritativnom DNS posluitelju (standardno postavljena),
recursion - posluitelj e obaviti sav standardni posao oko odgovora
na rekurzivne upite; u protivnom, posluitelj e odgovarati samo
iterativnim odgovorima, dakle ili proslijedivi dalje ili iz lokalnog DNS
meuspremnika; ovu je opciju poeljno staviti samo za raunala iz
vlastite lokalne mree (standardno postavljeno),
forwarders - definira listu posluitelja za prosljeivanje DNS upita
(standardno se upiti ne prosljeuju),
37/90
options {
directory "/etc/bind";
query-source address * port 53;
38/90
allow-transfer { xfer; };
allow-recursion { trusted; };
version "Unknown";
transfer-format many-answers;
max-transfer-time-in 120;
interface-interval 120;
notify yes;
recursion yes;
minimal-responses yes;
notify-source 161.53.116.8;
transfer-source 161.53.116.8;
};
3.4.Pristupne liste
Direktiva acl slui definiranju pristupnih listi, odnosno definiranju simbolikog
imena za grupu adresa koje e se kasnije koristiti u konfiguraciji. Postoji par
ugraenih pristupnih listi koje imaju posebne namjene:
any - odgovara svim adresama,
none - odgovara niti jednoj adresi,
localhost - odgovara svim IPv4 i IPv6 adresama lokalnog
posluitelja,
localnets - odgovara svim lokalnim mreama u kojima se nalazi
posluitelj, odnosno svim adresama iz takvih mrea.
Sintaksa za ovu naredbu je jednostavna:
acl acl-name {
address_match_list
};
U primjeru emo definirati nekoliko pristupnih listi koje smo koristili u
options odjeljku:
Primjer 20: Definiranje pristupnih listi u named.conf
acl "xfer" {
161.53.72.21;
161.53.3.7;
161.53.2.70;
127.0.0.1;
};
acl "trusted" {
161.53.116.0/22;
193.198.206.0/24;
193.198.217.192/27;
localhost;
};
39/90
3.5.Odjeljak za zapisnike
Reena logging direktiva odreuje gdje i kada e biti zapisane poruke o
grekama, informativne i ine poruke. Specifino, channel dio definira
simboliko ime i odreuje kakve e biti izlazne metode, oblici ispisa i nivoi.
Dotino simboliko ime se kasnije koristi sa category parametrom da se
odredi kako i gdje e se razliiti tipovi poruka zapisivati. Sintaksa je sljedea:
logging {
[ channel channel_name {
( file path name
[ versions ( number | unlimited ) ]
[ size size spec ]
| syslog syslog_facility
| stderr
| null );
[ severity (critical | error | warning | notice |
info | debug [ level ] | dynamic ); ]
[ print-category yes or no; ]
[ print-severity yes or no; ]
[ print-time yes or no; ]
}; ]
[ category category_name {
channel_name ; [ channel_name ; ... ]
}; ]
...
};
Standardno sav ispis se usmjerava na jedan ili vie kanala (definiranih
channel parametrom). Postoji nekoliko predefiniranih standardnih kanala:
default_syslog - alje syslog programu sa daemon oznakom, te
alje samo srednje i jako kritine informacije (informacije i vie),
default_debug - sprema u datoteku named.run u tekuem
direktoriju sve poruke koje generira servis,
default_stderr - ispisuje sve greke na standardni izlaz za greke,
null - sve to se ovdje zaprimi se nigdje ne ispisuje.
Pomou kategorija (definiranih category parametrom) se definira gdje e
koja kategorija poruka i kako zavriti. Opet, postoji niz standardnih kategorija
koje definiraju tipove poruka koje generira servis:
default - openite postavke za sve poruke,
general - sve inae neklasificirane poruke,
unmatched - poruke za koje nije mogue bilo odrediti klasu/tip,
database - poruke vezane uz baze za spremanje zona i
meuspremnika,
security - poruke vezane uz sigurnost, odbijanje zahtjeva klijentima i
sl,
config - vezano uz itanje i obradu konfiguracijskih datoteka,
resolver - vezano uz DNS rezoluciju, rekurzivne upite i sl,
40/90
logging {
category lame-servers { null; };
};
3.6.Odjeljak kontrole
Direktiva controls odreuje kanale za upravljanje DNS servisom, no za
sada takve kanale jedino koristi rndc program koji je inae dio Bind
distribucije. Sintaksa je sljedea:
controls {
inet ( ip_addr | * ) [ port ip_port ] allow
{ address_match_list }
keys { key_list };
[ inet ...; ]
};
Kontrolni inet kanal je TCP port na eljenoj adresi koji slua nadolazee
naredbe sa odgovarajuih raunala i izvrava ih. Preporuljivo je dozvoliti
iskljuivo lokalno raunalo (127.0.0.1) za upravljanje, da se smanji mogunost
zlouporabe. Osnovni model autorizacije je (uz postojeu listu dozvoljenih
adresa) formiran kljuevima, koji moraju odgovarati kod posluitelja i kod
klijenta. U sluaju da nema definiranog controls odjeljka, servis e postaviti
standardni kanal koji slua na 127.0.0.1 i ::1 adresi i portu 953, to je i
preporuljivo. Sam klju e pokuati iitati iz datoteke rndc.key traei ga u
direktoriju odreenim directory parametrom u options odjeljku ili u
/etc. Dotinu datoteku mogue je automatizirano napraviti koristei sljedeu
naredbu, a time definiramo klju istovremeno i za rndc i za servis, budui da
je oba itaju:
41/90
rndc-confgen -a
Primjer 22: Controls odjeljak iz named.conf datoteke
controls {
inet 127.0.0.1 allow { localhost; };
inet * port 9999 allow { "rndc-remote-users"; } keys
{ "rndc-remote-key"; };
};
3.7.Odjeljak kljueva
Dotini key odjeljak definira dijeljene autorizacijske kljueve za TSIG ali i za
komunikacijske kanale za upravljanje servisom. Svaki klju ima svoje
simboliko ime key_id, algoritam algorithm (iskljuivo hmac-md5) i niz
znakova secret koji je zapravo klju u formi base-64 kodiranog niza
znakova. Sintaksa je sljedea:
key key_id {
algorithm string;
secret string;
};
Primjer 23: Klju za rndc program i za Bind servis
key "rndc-remote-key" {
algorithm hmac-md5;
secret "OmItW1lOyLVUEuvv+Fme+Q==";
};
3.8.Server odjeljak
Osnovna namjena server odjeljka je definirati karakteristike posluitelja u
interakciji sa drugim posluiteljima, koje specifino imenujemo IP adresom.
Sintaksa je sljedea:
server ip_addr {
[ bogus yes_or_no ; ]
[ provide-ixfr yes_or_no ; ]
[ request-ixfr yes_or_no ; ]
[ edns yes_or_no ; ]
[ transfers number ; ]
[ transfer-format ( one-answer | many-answers ) ; ]]
[ keys { string ; [ string ; [...]] } ; ]
[ transfer-source (ip4_addr | *) [port ip_port] ; ]
[ transfer-source-v6 (ip6_addr | *) [port
ip_port] ; ]
};
42/90
server 161.53.3.7 {
bogus yes;
};
43/90
Kao to smo ve rekli, svaki pogled definiran svojim simbolikim imenom utie
nasamo na klijente koji mu odgovaraju kroz jedan od tri mogua naina
(dovoljno je da odgovara bilo koji od njih): match-clients (izvorine adrese
klijenata), match-destinations (odredine adrese) ili marchrecursive-only (samo rekurzivni upiti).
Primjer 25: Razdijeljeni DNS kroz view direktive
view "internal" {
// interna mrea
match-clients { 10.0.0.0/8; };
// pruamo rekurziju
recursion yes;
// kompletan pogled na zonu
zone "example.com" {
type master;
file "example-internal.db";
};
};
view "external" {
// svi klijenti koji nisu odgovarali gornjem bloku
// (bitan je redoslijed blokova!)
match-clients { any; };
// vanjski klijenti nemaju prava rekurzije
recursion no;
// pruamo samo eljene vanjske adrese
zone "example.com" {
type master;
file "example-external.db";
};
};
include "/etc/bind/zones.rfc1918";
44/90
include "/etc/bind/spywaredomains.zones";
3.11.Odjeljak za zone
Reeni odjeljak zone je u najvaniji odjeljak za sve autoritativne DNS
posluitelje. Kroz iste odjeljke se definiraju sve osobine i funkcionalnosti za
pojedinu zonu koja se posluuje, sa mogunou redefiniranja svih globalno
postavljenih parametara. Sintaksa je sljedea:
zone zone_name [class] [{
type ( master | slave | hint | stub | forward |
delegation-only ) ;
[ allow-notify { address_match_list } ; ]
[ allow-query { address_match_list } ; ]
[ allow-transfer { address_match_list } ; ]
[ allow-update { address_match_list } ; ]
[ update-policy { update_policy_rule [...] } ; ]
[ allow-update-forwarding { address_match_list } ; ]
[ also-notify { ip_addr [port ip_port] ; [ ip_addr
[port ip_port] ; ... ] }; ]
[ check-names (warn|fail|ignore) ; ]
[ dialup dialup_option ; ]
[ delegation-only yes_or_no ; ]
[ file string ; ]
[ forward (only|first) ; ]
[ forwarders { ip_addr [port ip_port] ; [ ip_addr
[port ip_port] ; ... ] }; ]
[ ixfr-base string ; ]
[ ixfr-tmp-file string ; ]
[ maintain-ixfr-base yes_or_no ; ]
[ masters [port ip_port] { ( masters_list | ip_addr
[port ip_port] [key key] ) ; [...] } ; ]
[ max-ixfr-log-size number ; ]
[ max-transfer-idle-in number ; ]
[ max-transfer-idle-out number ; ]
[ max-transfer-time-in number ; ]
[ max-transfer-time-out number ; ]
[ notify yes_or_no | explicit ; ]
[ pubkey number number number string ; ]
[ transfer-source (ip4_addr | *) [port ip_port] ; ]
[ transfer-source-v6 (ip6_addr | *) [port
ip_port] ; ]
[ alt-transfer-source (ip4_addr | *) [port ip_port] ;
]
[ alt-transfer-source-v6 (ip6_addr | *) [port
ip_port] ; ]
[ use-alt-transfer-source yes_or_no; ]
[ notify-source (ip4_addr | *) [port ip_port] ; ]
[ notify-source-v6 (ip6_addr | *) [port ip_port] ; ]
[ zone-statistics yes_or_no ; ]
45/90
[
[
[
[
[
[
[
[
sig-validity-interval number ; ]
database string ; ]
min-refresh-time number ; ]
max-refresh-time number ; ]
min-retry-time number ; ]
max-retry-time number ; ]
multi-master yes_or_no ; ]
key-directory path_name; ]
}];
Svaka zona ima svoj tip type koji odreuje nain prihvata i posluivanja
domenskih informacija:
master - posluitelj ima osnovnu, glavnu kopiju podataka za zonu i
treba biti autoritativni primarni posluitelj,
slave - posluitelj treba biti autoritativni sekundarni posluitelj za danu
zonu. Ovaj tip posluitelja mora nuno imati i postavljenu masters
listu u kojoj se nalazi jedna ili vie IP adresa primarnih posluitelja sa
kojih sekundarni moe kopirati (AXFR ili IXFR) zonu. Standardno se
preporua i koritenje datoteke kroz file parametar, ime je mogue
definirati mjesto gdje se zapisuje cijela zona pri uspjenom prijenosu i
time se ubrzava ponovno podizanje posluitelja i smanjuje broj nunih
prijenosa zone. Na posluiteljima sa vrlo velikim brojem zona se
preporua izbjegavati nakupljanje veeg broja datoteka u istom
direktoriju, pa ih je zgodnije rasporediti po nizu poddirektorija,
stub - poseban tip posluitelja specifian za Bind. Rije je o vrsti
sekundarnog posluitelja koji od primarnog prihvaa i posluuje
iskljuivo NS zapise. Primarna funkcija takvog naina je eliminacija
povezujuih zapisa, ali danas se vrlo rijetko sree u praksi,
forward - slui definiranju prosljeivanja DNS upita na razini pojedine
zone. Da bi se zona mogla prosljeivati, nuno je imati ve spomenute
forward i/ili forwarders parametre u dotinom odjeljku,
hint - zona koja definira inicijalnu grupu korijenskih DNS posluitelja.
DNS softver pri pokretanju koristi tu grupu da bi kontaktirao barem
jedan posluitelj i saznao aktualni popis. U sluaju da ovakva zona nije
definirana, Bind e koristiti internu i potencijalno zastarjelu listu,
delegation-only - takoer poseban tip zone koji slui prisilnoj
delegaciji. Svaki odgovor koji ne sadri implicitnu ili eksplicitnu
delegaciju u odjeljku autoriteta e se tretirati kao greka NXDOMAIN.
Ovakav tip zapisa se uglavnom koristi iskljuivo kod TLD zona, a nikad
kod poddomena.
to se tie klasa, one mogu biti HS (Hesiod), CH (Chaos) i IN (Internet).
Standardno se klasa class ne pie, a podrazumijeva se IN tip. to se pak
tie opcija, one su uglavnom iste iz options odjeljka, te je mogue u
potpunosti redefinirati eljeno ponaanje za pojedinu zonu.
46/90
3.12.Konfiguracija zona
Sada kada su razjanjeni svi odjeljci named.conf konfiguracije, ostaje jo
pokazati konfiguraciju samih zonskih datoteka koje sadre odgovarajue RR
koji se posluuju. Par osnovnih pravila za formiranje ispravne zonske
datoteke:
Zona se sastoji od komentara, parametara i RR-ova,
Komentari iskljuivo poinju sa ";" znakom i proteu se do kraja reda.
Niti jedan drugi tip komentara nije podran, te umetanje krivog znaka
moe uzrokovati odbacivanje veeg dijela datoteke,
Parametri zapoinju iskljuivo za znakom "$". Rije je o $ORIGIN,
$INCLUDE, $TTL i nestandardnom (i relativno kompliciranom)
$GENERATE.
Svaki RR mora biti u odgovarajuem formatu:
ime [ ttl ] [ klasa ] rr podaci-specifini-za-rr,
$TTL bi trebao uvijek biti prisutan kao prvi RR u datoteci,
Prvi RR (ne raunajui $TTL) mora biti SOA.
Vrijedi jo nekoliko pravila koje je vrijedno upamtiti:
Pravilo vie zapisa: ako se vie slijednih zapisa odnosi na istu labelu,
dovoljno je navesti ime za prvi RR, a ostali ime mogu imati prazno.
Openito, zapisi za istu labelu ne moraju nuno biti jedan za drugim ali se onda uvijek mora pisati ime labele. Zapisi sa istom labelom e biti
posluivani ciklikim redoslijedom,
Znak promjene znaenja: znak "\" se koristi za onemoguenje
specijalnog znaenja za pojedini znak, te se fiziki postavlja ispred
eljenog znaka. Kako se recimo " znak koristi za odreivanje niza
znakova, tako je unutar postojeeg niza znakova nuno koristiti znak
promjene znaenja ako elimo imati i jedan ili vie navodnika unutar
istog niza,
Prazni znakovi se ignoriraju: tab znakovi i razmaci se ignoriraju.
Mogue ih je slobodno koristiti radi poboljanja itljivosti zonskih
datoteka,
Velika i mala slova: u zonama se ne razlikuju velika i mala slova,
Toka na kraju labele: Ako je toka na kraju imena u RR ili parametru,
onda je ime ispravno odreeno - te ako sadri potpuno ime ukljuujui i
ime raunala, onda je FQDN. Vrijednost imena e se upotrebljavati
takva kakva je, bez promjena. Ako nema toke na kraju imena, onda
ime nije ispravno odreeno te e DNS softver automatski dodati ime
zone (iz odgovarajueg zone odjeljka ili iz $ORIGIN parametra) na kraj
svake takve labele.
Reeni parametri imaju sljedea znaenja:
$INCLUDE - slui umetanju definirane datoteke na mjestu gdje se
pojavljuje isti parametar. Sintaksa je sljedea:
$INCLUDE ime_datoteke [ izvorina_domena ]
[ komentar ]
47/90
$TTL 1D
$ORIGIN primjer.domena.
@ SOA ...
$INCLUDE datoteka.zona
$GENERATE 11-254 $ PTR dhcp$.primjer.domena.
U zonama se pojavljuje i specijalni znak - u zonskim datotekama znak "@"
ima specijalno znaenje: gdje se on pojavljuje se smatra da se nalazi ime
zone iz odgovarajueg zone odjeljka. U praksi on ima vrijednost $ORIGIN.
to se tie samih RR-ova, teorijski smo ve obradili njihova znaenja i
uporabu. U zonskim datotekama je mogue koristiti slijedee RR-ove
(spominjemo one najvanije):
A - IPv4 adresa:
;ime
ttl
klasa rr ip
www.carnet.hr.
A 161.53.160.25
esa.fer.hr.
59982 IN
A 161.53.71.180
CNAME
;ime
kreator.esa.fer.hr.
www
kanoniko,
zamjensko
ime:
ttl klasa rr
kanoniko_ime
CNAME esa1.esa.fer.hr.
CNAME esa1
CNAME zapisi imaju praktinu manu unoenja jednog ili vie nunih
dodatnih upita (panja, dakle smanjuje se efikasnost pretraivanja DNS
48/90
ime
esa2
esa1.esa.fer.hr.
hpe50.esa.fer.hr.
49/90
cilj
www1
www2
msad
msad
.
.
Za serv polje se koristi IANA simboliko ime servisa (velika i mala slova
nisu bitna), specifino za pojedini port. Primijetite da se za svaki servis
dodaje znak _ ispred imena servisa: _http, _ftp, _ldap, itd. Za
proto polje se koristi IANA ime protokola, takoer prefiksirano na isti
nain: _tcp, _udp, itd. Polje ime se moe izostaviti, pa se automatski
dodaje ime domene ($ORIGIN), kao to je to i uobiajeno. Polje prio
definira prioritet servisa pri emu je najvii prioritet najnie vrijednosti
odnosno 0, dok je najnii prioritet 65535. U sluaju da postoji vie
servisa sa istim prioritetom, koristi se polje teine - takoer u rasponu
od 0 do 65535, pri emu 0 definira da se teina ne koristi. U sluaju
postojanja vie istih SRV RR-ova sa istim prioritetom ali razliitim
teinama, one definiraju koji e se RR vie odnosno ee koristiti u
odgovarajuem omjeru teina. Polje port definira koji e se port koristiti
za odgovarajui servis - na ovaj se nain vrlo jednostavno mogu
koristiti proizvoljni portovi za neki servis. Naposljetku, odredite za
reeni servis moe i ne mora biti unutar pojedine zone odnosno
domene unutar koje se definira sam RR.
51/90
4. Djbdns posluitelj
Djbdns je prilino osebujan softver kojeg je napisao Daniel J. Berstein kao
sigurnu (sa gledita raunalne sigurnosti), brzu i pouzdanu zamjenu za Bind
softver koji se u to vrijeme pokazao izrazito problematinim (desetine
sigurnosnih rupa). Rije je o jednom od nekoliko najpopularnijih DNS
posluitelja u svijetu, a godinama se nije mijenjao zbog svojeg vrlo kvalitetno
napisanog koda. Reeni posluitelj je zaista izrazito malih zahtjeva za
raunalnim resursima, a uspjeno posluuje mree svih veliina i u produkciji
pokazuje dobro skaliranje sa optereenjem.
Arhitekturalno se Djbdns razlikuje od Binda prvenstveno po podjeli na niz
malih posluitelja (to je u duhu Unix filozofije) od kojih je svaki zaduen za
jedan segment rada:
Dnscache je lokalni DNS posluitelj i meuspremnik koji ne posluuje
podatke o "vlastitoj" domeni, ve iskljuivo klijentima posluuje podatke
od drugih DNS posluitelja ili iz vlastitog meuspremnika (komunikacija
se obavlja kroz UDP i TCP),
Tinydns je autoritativni DNS posluitelj koji posluuje podatke iz
vlastite centralizirane baze (ne odgovara na rekurzivne upite, niti na
TCP upite),
Axfrdns je posluitelj za prijenos DNS zona (AXFR, funkcionira
iskljuivo kroz TCP),
Walldns je reverzni DNS vatrozid koji odgovara na iterativne reverzne
DNS upite sa "generikim" odgovorima, sakrivajui na taj nain stvarne
informacije,
Rbldns je DNS posluitelj za popise IP adresa, najee DNS crne
liste e-mail spammera i slinih.
Oigledno je na prvi pogled da se funkcionalnosti koje sadri samo jedan
centralni proces kod Bind posluitelja ovdje nalaze u nizu odvojenih
posluitelja. Tako je mogue postaviti minimalnu instalaciju u kojoj se nalaze
aktivni samo oni potrebni posluitelji: npr. za DNS namijenjen samo lokalnim
klijentima je dovoljan samo dnscache, na nekom drugom raunalu moe biti
samo tinydns, DNS posluitelj koji svijet opsluuje DNS podacima o
pojedinoj domeni ili skupu domena. Tree raunalo moe imati samo
axfrdns, servis za prijenos zona, itd. Ovakva podjela je dovela do prilino
jednostavnije implementacije, manjeg broja greaka (za sada nije utvreno
postojanje niti jednog sigurnosnog problema u djbdns servisima) i monijeg
upravljanja ukupnim mogunosti koje skup DNS servisa podrava.
Ova raspodjela uloga ima i jednu nezgodnu popratnu pojavu - a to je da se
istovremeno dnscache DNS meuspremnik i tinydns DNS autoritativni
posluitelj ne mogu nalaziti na istoj IP adresi, budui da oba koriste UDP/53
(axfrdns servis koristi samo TCP/53). Dakle, u sluaju migracije sa Bind
posluitelja nuni su vei zahvati: autoritativni DNS posluitelj vie ne moe
biti na istoj IP adresi kao i rekurzivni DNS posluitelj za klijente. Trivijalno
rjeenje je obino definirati vie IP adresa po jednom mrenom suelju i
52/90
4.1.Dnscache
Servis dnscache je vrlo jednostavan DNS meuspremniki program: njegova
osnovna namjena je prihvat rekurzivnih DNS upita od klijenata, saznavanje
odgovora od udaljenih DNS posluitelja, odailjanje odgovora kao i spremanje
istih pozitivnih i negativnih rezultata u meuspremnik. Reeni servis nikada ne
vraa autoritativne podatke (AA zastavica nije nikad postavljena) i uvijek
vraa samo informacije dobivene od udaljenih autoritativnih DNS posluitelja.
Autoritativne DNS posluitelje pronalazi ve opisanim prolaskom kroz DNS
stablo, pratei delegacije sa odgovarajuih vorova. Dodatna funkcionalnost
je mogunost unoenja runo definiranih "preaca" do pojedine domene, ime
je mogue implementirati podijeljenu rezoluciju, odnosno podijeljene poglede
na zonu.
Reeni servis se konfigurira kroz dnscache-conf program sa sljedeom
sintaksom:
dnscache-conf acct logacct D ip
Pri tome definiramo direktorij D (a to je najee /etc/dnscache) u kojem
e biti konfiguracija servisa. Servis e se pri svakom pokretanju chrootati
(promijeniti pokaziva osnovnog direktorija - dakle iskljuivo e moi koristiti
datoteke samo iz definiranog direktorija i njegovih poddirektorija) u
konfigurirani direktorij i proitati konfiguraciju u kojoj je definirano da e
koristiti korisnika (sa odgovarajuim sistemski definiranim UID-om i GID-om)
acct za rad, korisnika logacct za spremanje sistemskih zapisa u direktorij
direktorij/log/main. Spremanje sistemskih zapisnika se odvija kroz
servis multilog, koji garantira i redovno "rotiranje" zapisnika najinteresantnija je obino tekstualna datoteka current koja sadri tekue,
recentne zapise.
Pri podizanju e reeni servis zapoeti oslukivanje na IP adresi ip (najee
127.0.0.1). U osnovnoj konfiguraciji se stvara i datoteka direktorij/root/
ip/127.0.0.1, koja definira da e dnscache servis dozvoljavati upite sa
adrese 127.0.0.1. Po potrebi u root/ip direktoriju trebate stvoriti prazne
datoteke (naredbom touch), formirajui time pristupnu listu: primjerice ako
vam je lokalna mrea 161.53.2.0/24, potrebno je stvoriti datoteke 161.53.2 i
127.0.0, ime definirate pristup mrei 161.53.2.0/24 i 127.0.0.0/24.
53/90
Datoteka srce.hr:
161.53.2.69
161.53.2.70
Datoteka 2.53.161.in-addr.arpa:
161.53.2.69
161.53.2.70
Ostatak konfiguracije se nalazi u env direktoriju:
CACHESIZE - definira veliinu fiksne tablice meuspremnika, pri emu
se prosjeno 5% tablice koristi kao indeks tablice. Tablica se nikad ne
smanjuje niti ne poveava: u sluaju "preljeva" se najstariji zapis brie i
tako kruno. Dotina tablica se rezervira pri pokretanju samog procesa,
DATALIMIT - slui kao zatita od sluaja greke u samom servisu.
Reena varijabla e postaviti maksimalnu veliinu do koje e servis
smjeti rasti - a praksa je obino postaviti vrijednost na par MB vee od
CACHESIZE varijable,
IP - definira IP adresu na kojoj slua sam DNS servis. Standardno je
dozvoljena svega jedna adresa, tipino 127.0.0.1 za jedno raunalo, ili
IP adresa nekog fizikog Ethernet suelja za opsluivanje vie
raunala,
IPSEND - definira IP adresu sa koje DNS servis alje DNS odgovore i
upite. Tipino je to 0.0.0.0, to znai da e koristiti adresu prvog
mrenog suelja na sustavu. No, takvo neto je najee nepoeljno u
sustavima sa vie IP adresa (a klijenti smiju paranoino odbacivati
pakete koji su odgovor na komunikaciju ali dolaze sa krive IP adrese),
pa se preporua koristiti adresu navedenu u IP varijabli,
ROOT - direktorij u kojem se nalazi cijela konfiguracija servisa i svi
navedeni poddirektoriji,
FORWARDONLY - u sluaju postojanja ove datoteke e servis koristiti
datoteku servers/@ kao listu IP adresa udaljenih DNS posluitelja
kojima e prosljeivati sve upite, dok sam nee obavljati nikakvu
rezoluciju,
HIDETTL - u sluaju postojanja ove datoteke se sakriva TTL nad
zapisima u odgovorima, te e svi uvijek iznositi 0.
Spomenimo jo par specifinosti za dnscache servis:
Nikad se ne alje odgovor sa AA zastavicom postavljenom,
54/90
4.2.Tinydns
Servis tinydns je minimalni autoritativni DNS posluitelj. On zaprima
iterativne DNS upite iz lokalne mree i svijeta te odgovara sa DNS
odgovorima iz unaprijed definirane baze. Odgovor na upit koji se ne moe
nai u bazi se jednostavno ne odgovara. Jedino u sluaju da se u bazi
pronae zapis koji definira autoritet nad domenom, onda se na upit za
nepostojeim zapisom u dotinoj domeni odgovara sa NXDOMAIN
odgovorom. Standardno se upiti serviraju iz data.cdb baze koja je u
specifinom internom formatu. Reena baza na disku je binarna datoteka
obino male veliine i relativno dobrih performansi; svi upiti se rjeavaju u
svega dva pristupa bazi, budui da je upit klju a podatak odgovor. Dotina
baza se koristi i za axfrdns servis, koji iz nje ita podatke potrebne za
prijenos zone.
Slino kao i dnscache servisu, tinydns servis se konfigurira kroz
tinydns-conf program sa sljedeom sintaksom:
tinydns-conf acct logacct D ip
55/90
56/90
4.3.Tinydns zone
Naposljetku, opiimo i konfiguraciju samih DNS podataka, odnosno nain
pisanja zapisa u data datoteci:
Svaki pojedini DNS zapis je u vlastitom redu,
Svaki red zapoinje sa znakom koji definira o kojem je tipu DNS zapisa
rije,
Unutar cijelog reda postoji nekoliko odjeljaka, koji su odvojeni znakom
dvotoke ":",
Pojedini odjeljak se smije izostaviti, ali ne i dvotoke koje ga okruuju,
Razmaci, tabulatori i prazni redovi se ignoriraju u datoteci,
Svaki zapis (red) moe imati vlastiti TTL, no on se smije izostaviti pa e
se koristiti standardne vrijednosti,
Svaki zapis moe imati i vlastitu vremensku oznaku (engl. timestamp)
koja se u praksi rijetko koristi, a koja ima dvojno znaenje:
o U sluaju da je TTL razliit od 0 ili izostavljen (dakle tinydns
se brine o njegovoj vrijednosti), to je vrijeme od kojeg e zapis
poeti vrijediti - odnosno reeni zapis e se ignorirati do tog
vremena,
o Kad je TTL jednak 0, reena oznaka predstavlja TTD (engl. time
to die) odnosno vrijeme prestanka aktualnosti reenog zapisa.
Tipovi zapisa su sljedei:
. (toka) - definira NS+A+SOA zapise za domenu fqdn zapisanu u
FQDN formatu. Sintaksa je sljedea:
.fqdn:ip:x:ttl:timestamp:lo
Pri tome e se u zoni pojaviti NS zapis x.ns.fqdn kao posluitelj za
domenu fqdn; A zapis za x.ns.fqdn sa adresom ip; SOA zapis za
domenu fqdn koji ukazuje na x.ns.fqdn kao primarni DNS
posluitelj i imat e hostmaster@fqdn kao kontakt adresu. U nekim
sluajevima je ovakav "magini" tip definiranja viestrukih RR-ova
koristan, a u nekim sluajevima se koriste drugi tipovi zapisa o kojima
e biti rijei u nastavku. Zapis lo je podruje djelovanja zapisa, o
kojem emo na samom kraju neto vie spomenuti. Zapis ip je
mogue izostaviti. Ako zapis x sadri toku, onda se tretira kao FQDN
zapis; dakle nee se magino dodati ns.fqdn sufiks na ime
posluitelja.
Primjer upotrebe bi bio sljedei:
.esa.fer.hr:161.53.71.194:esa1.esa.fer.hr
Time e se stvoriti NS zapis za esa.fer.hr domenu koji definira
esa1.esa.fer.hr kao DNS posluitelj za istu. Osim toga, stvara se A
zapis koji definira da esa1 ima adresu 161.53.71.194. Naposljetku,
definira se i ve opisani SOA, sa hostmaster@esa.fer.hr adresom za
domenu esa.fer.hr.
57/90
58/90
+fqdn:ip:ttl:timestamp:lo
Reeni zapis e stvoriti A zapis za labelu fqdn sa IP adresom ip. U
sluaju da postoji vie A zapisa (stvorenih kroz "+", "=", "@", "." ili "&")
oni e se u odgovoru biti po sluajnom (ne cikliki) redoslijedu. U
sluaju da ih ima vie od 8, u odgovorima e biti sluajni parovi od 8
zapisa.
Primjer upotrebe:
+esa1.esa.fer.hr:161.53.71.194:86400
+hpe50.esa.fer.hr:161.53.71.235:86400
59/90
60/90
61/90
%in:10.0
%ex
+esa1.esa.fer.hr:10.0.0.1:86400::in
+esa1.esa.fer.hr:161.53.71.194:86400::ex
Postoji i jo jedan nain unosa podataka u pojedini RR, a to je koritenjem
zamjenskih znakova odnosno definiranjem zamjenskih zapisa. Isti su podrani
u *.fqdn obliku, a kao i kod Bind servisa mijenjaju sve labele osim
postojeih. I osim onih definiranih takoer kroz zamjenske znakove, ali kod
kojih postoji vee podudaranje u fqdn.
Primjer 30: Zamjenski zapisi u tinydns zoni
+www.esa.fer.hr:161.53.71.180:86400
+test.www.esa.fer.hr:161.53.71.235:86400
+*.www.esa.fer.hr:161.53.71.180:86400
U
gornjem
primjeru
uspjeli
bi
upiti
za
pero.www.esa.fer.hr,
jutro.www.esa.fer.hr i test.www.esa.fer.hr. Prva dva vode na 161.53.71.180 IP
adresu, dok posljednji vodi na 161.53.71.235 adresu budui da postoji
odgovarajui standardni, nezamjenski zapis.
Svi opisani zapisi se standardno nalaze na samo jednom mjestu - unutar ve
spomenute data datoteke u root direktoriju samog tinydns servisa.
Reena se prevodi u odgovarajui data.cdb oblik koritenjem tinydnsdata naredbe bez argumenata. Alternativa je koritenje naredbe make ako
postoji na sustavu, koja e opet pozvati gornje naredbe i to je god jo
potrebno, a definirano je u Makefile predloku.
Postoji jo niz nestandardnih dodataka koji dodaju nove zapise (viestruki
SOA, NAPTR, SRV, itd), meutim jedino su opisani tipovi oni koje moete
oekivati na posve istoj (kao to je autor zamislio) ili nepoznatoj instalaciji.
4.4.Axfrdns
Reeni axfrdns servis je TCP DNS posluitelj sa prvenstvenom namjenom
prijenosa zone kao odgovora na ispravne AXFR upite, ali moe sluiti i kao
autoritativni TCP DNS servis (za DNS odgovore vee od graninih 512
bajtova). Standardno se u djbdns paketu ne preporua koristiti AXFR za
prijenos zona drugom tinydns posluitelju, budui da je za takve operacije
neto bolji eksterni rsync alat (koji se koristi npr. kroz ssh tunel). Stoga
axfrdns pokazuje svoju ulogu ponajvie u sluaju kad za primarni posluitelj
koristimo djbdns, a za sekundarni Bind ili neki drugi AXFR-kompatibilni
posluitelj.
Napomenimo vaan podatak da tinydns ne razumije NOTIFY mehanizam:
on nikad implicitno ne alje sekundarnim posluiteljima obavijesti o promjeni
zone, ve samo eksplicitno odnosno runo kroz eksterni tinydns-notify
62/90
alat koji nije dio standardne distribucije. Takoer ni ne prihvaa NOTIFY, tako
da u sluaju kad se na primarnom posluitelju promijeni zona, sekundarni
tinydns ne zna za te promjene dokle god se ne izvri kakva runa
replikacija: na primjer kroz axfr-get ili ve opisano sa rsync/ssh
kombinacijom. Sa gledita suivota sa ostalim servisima, axfrdns se
najee postavlja na isto mreno suelje na kojem je i tinydns,
komplementirajui ga u smislu TCP komunikacije. Dapae, koristi i istu data
odnosno data.cdb datoteku kao izvor podataka o zapisima.
Servis se konfigurira kroz axfrdns-conf program sa sljedeom sintaksom:
axfrdns-conf acct logacct D tiny ip
Servis i njegova konfiguracija e se nalaziti u direktoriju D koji je najee
/etc/axfrdns. Servis e se pri svakom pokretanju chrootati u konfigurirani
direktorij (env/ROOT datoteka sa sadrajem parametra tiny, odnosno
lokacije tinydns servisa) i koristiti korisnika acct za rad te korisnika
logacct
za
spremanje
sistemskih
zapisa
u
direktorij
direktorij/log/main.
Reeni servis e raditi na IP adresi ip (najee je to adresa nekog vanjskog
Ethernet suelja), koje se definira u env/IP datoteci. to se pak tie
pristupnih listi, one su definirane u tcp datoteci u posebnom formatu o kojem
e jo biti rijei te su inicijalno zabranjeni svi prijenosi zona (varijabla AXFR je
prazna). Interesantno je primijetiti da axfrdns sam po sebi nema sposobnost
komunikacije TCP protokolom ve koristi vanjski program tcpserver koji mu
predaje naredbe preko standardnog ulaza. Reeni vanjski program je inae
dio ucspi-tcp paketa od istog autora.
Servis prekida prijenos zone u sluaju greke. To su primjerice:
Zapunjenost dozvoljene koliine memorije,
Nemogunost itanja data.cdb datoteke,
TCP upit vei od 512 bajtova,
Neispravan upit,
Nedozvoljen prijenos zone za klijente za koje nije definirana AXFR
varijabla sa reenom zonom koja se pokuava prenijeti: reena
varijabla mora sadravati listu dozvoljenih zona odvojenih znakom "/"
(dijeljeno),
Upit za RR koji nisu u data.cdb.
4.5.Pravila za tcpserver
Kao to smo ve spomenuli, tcpserver je servis koji omoguava axfrdns
servisu TCP komunikaciju. Hoe li TCP sjednica biti uspostavljena odluuju
jednostavna pravila u linijskoj tekstualnoj datoteci. To je obino tcp datoteka
koja se konvertira u binarnu datoteku tcp.cdb programom tcprules.
63/90
127.0.0.1:allow,AXFR="esa.fer.hr/71.53.161.in-addr.arpa"
161.53.116.8:allow,AXFR="esa.fer.hr/71.53.161.inaddr.arpa"
161.53.2.69:allow,AXFR="esa.fer.hr/71.53.161.inaddr.arpa"
:allow,AXFR=""
U naem primjeru dozvoljavamo prijenos dviju zona esa.fer.hr i 71.53.161.inaddr.arpa klijentima sa 127.0.0.1, kao i klijentima sa 161.53.116.8 i
161.53.2.69 IP adresa. Za sve ostale klijente dozvoljavamo standardne TCP
upite osim prijenosa zone tako da postavljamo AXFR varijablu na prazan niz.
Naposljetku, datoteka sa pravilima se prevodi u datoteku tcp.cdb sa
naredbom tcprules na sljedei nain:
64/90
4.6.Walldns
Servis walldns je specifian i nestandardan DNS servis: njegova jedina
dunost je odgovaranje na iterativne upite iz svijeta o in-addr.arpa
domenama. Pri tome on odgovara sa umjetnim autoritativnim DNS
odgovorima koji slue skrivanju stvarnih informacija o pojedinoj domeni. Za
sve IP adrese x.y.z.w reeni e servis posluivati kao da ima definiran
slijedei opi tinydns zapis:
=w.z.y.x.in-addr.arpa:x.y.z.w
Ovime se stvara PTR zapis za neku IP adresu u obliku x.y.z.w (odnosno
w.z.y.x.in-addr.arpa) koji pokazuje na labelu w.z.y.x.in-addr.arpa te jedan A
zapis za labelu w.z.y.x.in-addr.arpa koji pokazuje na IP adresu x.y.z.w.
Ovaj servis se u praksi rijetko koristi, pa neemo objanjavati njegovo
postavljanje.
4.7.Rbldns
Servis rbldns je takoer relativno rijedak sluaj - njegova zadaa je
posluivanje RBL podataka. Dakle, reeni odgovara na iterativne DNS
odgovore iz svijeta za A, TXT ili ANY ("*") upitima za IP adresama u obliku
w.z.y.x.base pri emu je base sufiks (najee domena) definiran BASE
varijablom. Razlog koritenju varijable BASE je prvenstveno mogunost
spajanja standardnih tinydns podataka i podataka za rbldns u jednu
datoteku, budui da rbldns standardno koristi data.cdb za izvor RR
odgovora.
Sam servis standardno ignorira inverzne upite, upite koji nisu unutar IN klase,
nepotpune pakete, pakete sa vie upita, upite za svime to nije ili A ili TXT ili
ANY i upite za svime to nije u BASE domeni.
65/90
5. MaraDNS
NB: Ovaj odlomak je u nastajanju, te je mogue da sadri greke,
nepravilnosti i nepotpune informacije. Hvala na razumijevanju.
MaraDNS je jo jedan posluitelj koji pametnim dizajnom cilja imati minimalne
zahtjeve za resursima i biti vrlo siguran te pouzdan softver. Za razliku od
Djbdns softvera, ovaj posluitelj se vrlo aktivno razvija i kontinuirano testira u
potrazi za potencijalnim sigurnosnim i inim propustima. Takoer ga resi i vrlo
jednostavna i itljiva konfiguracija, pa je svega nekoliko konfiguracijskih linija
dovoljno za postavljanje autoritativnog ili pak rekurzivnog posluitelja.
Datoteke u kojima se nalaze zone imaju dva osnovna naina zapisivanja (o
kojima e biti kasnije rijei), od kojih je bolje prihvaen onaj noviji koji vrlo
nalikuje na tipinu Bind zonu. MaraDNS iznimno brzo posluuje podatke iz
svojih zona s obzirom da ih uvijek dri u memoriji, no zbog toga nije prikladno
koristiti ga za izrazito velike zone. MaraDNS ne podrava NOTIFY
mehanizam niti dinamiko ponovno uitavanje zone; za svaku promjenu u
zoni potrebno je restartati reeni servis. Dakle, na sekundarnim posluiteljima
je kao i kod Tinydns servisa potrebno neto runog rada da bi se osposobile
mogunosti koje su npr. kod Bind posluitelja u potpunosti automatizirane.
MaraDNS se sastoji od dva osnovna servisa:
Maradns je osnovni DNS UDP posluitelj u autoritativnom,
rekurzivnom (spremikom) ili dvojnom nainu rada. Reeni koristi
postavke iz mararc datoteke, uita sve zone u memoriju i posluuje ih.
Prilikom uitavanja zone se eventualno i sintetiziraju odreeni zapisi po
potrebi, s obzirom da je mogue izostaviti SOA i NS zapise za pojedinu
zonu. Takoer, mogue je i automatski generirati serijski broj u SOA,
na slian nain kako to radi i Tinydns (Djbdns). Servis se radi sigurnosti
uvijek chroota u radni direktorij sa zonama, otputajui administrativne
privilegije.
Zoneserver je opcionalni DNS TCP posluitelj koji se koristi za DNS
komunikaciju kroz TCP kao i prijenose zona (takoer TCP). Podran je
samo AXFR nain prijenosa zone. Zone se posluuju iskljuivo
direktno s diska. Konfiguraciju takoer ita iz mararc datoteke, te se
takoer chroota u radni direktorij sa zonama, otputajui
administrativne privilegije.
Osim toga u uobiajenoj distribuciji dolaze i korisni popratni alati:
Duende se koristi za pokretanje Maradns servisa, njegov nadzor i
podizanje servisa za sistemske zapisnike,
Askmara je alat za jednostavne DNS upite, vrlo nalik na Dig ali dosta
skromnijih mogunosti i trivijalne sintakse,
Getzone se koristi za prijenos eljene zone sa udaljenog posluitelja i
prikaz u CSV1 formatu. S obzirom da osnovni servis ne podrava
NOTIFY mehanizam, ovaj alat je jedan od predvienih naina
sinkronizacije sekundarnih DNS posluitelja sa primarnim,
Fetchzone se takoer koristi za prijenos eljene zone sa udaljenog
posluitelja, no za razliku od prethodnog, prikazuje zonu u novijem
66/90
csv1 = {}
csv1["domena."] = "db.domena"
Pri tome je potrebno kao i kod drugih DNS posluitelja paziti na zavrnu toku
labele, dok je ime datoteke u kojoj se nalazi zona proizvoljno, ali se radi
lakeg prepoznavanja prefiksira sa "db.". Kao to je mogue vidjeti, sintaksa
nalikuje na jezik Python, gdje definiramo prazni rjenik csv1, te zatim
stavljamo u rjenik ime datoteke sa zonom, a klju je samo ime domene.
U samoj zoni se koriste sljedei specijalni znakovi:
| (okomita crta) - meusobno odjeljuje polja u pojedinom zapisu. To je
jedini dozvoljeni razdjelnik, dakle niti razmaci niti tabulatori se ne
koriste, za razliku od CSV2 tipa zone.
67/90
Nain pisanja zapisa u pojedinoj CSV1 zoni je vrlo striktan i prilino podsjea
na onaj u Tinydnsu. Greke u zoni uzrokuju da se servis odbacuje zonu s
fatalnom grekom. Pravila su sljedea:
Svaki pojedini DNS zapis je u vlastitom redu,
Svaki red zapoinje sa jednim znakom koji definira o kojem je tipu DNS
zapisa rije,
Unutar cijelog reda postoji nekoliko odjeljaka, koji su odvojeni znakom
okomite crte "|",
Pojedini odjeljak se ne smije izostaviti.
Razmaci i tabulatori nisu dozvoljeni, dok prazni redovi jesu,
Svaki zapis ima vlastiti TTL i on ne bi trebao izostaviti. U sluaju da se
to uini, bit e jednak 0 (to je sasvim razliito ponaanje od onog sa
CSV2 formatom zone),
Svako pojedino domensko ime mora zavravati s tokom ili sa znakom
"%",
Prije uitavanja se sva se domenska imena u zoni pretvaraju u mala
slova,
Na poetku zone treba biti SOA zapis za domenu kojeg slijedi jedan ili
vie NS zapisa za domenu koje slijede ostali zapisi.
Tipovi zapisa su sljedei:
A (slovo A) - definira A zapise:
Ax.fqdn|ttl|ip
Reeni zapis e stvoriti A zapis za labelu x.fqdn sa IP adresom ip. U
sluaju da postoji vie A zapisa oni e se u odgovoru biti po sluajnom
(ne cikliki) redoslijedu.
Primjer:
Aesa1.esa.fer.hr.|86400|161.53.71.194
Ahpe50.esa.fer.hr.|86400|161.53.71.235
Nesa.fer.hr.|86400|esa1.esa.fer.hr.
Nesa.fer.hr.|86400|hpe50.esa.fer.hr.
69/90
@x.fqdn|ttl|dist|mx.fqdn
Kroz ovaj zapis se stvara MX zapis mx.fqdn za domensko ime (ili
domenu) x.fqdn i cijenom (udaljenou) dist.
Primjer upotrebe:
@esa.fer.hr.|86400|5|esa1.esa.fer.hr.
@esa.fer.hr.|86400|10|hpe50.esa.fer.hr.
70/90
csv2 = {}
csv2["domena."] = "db.domena"
Greke u zoni uzrokuju da se servis odbacuje zonu s fatalnom grekom.
Pravila pisanja zone su neto fleksibilnija od CSV1:
Svaki zapis mora biti u obliku name [+ttl] [rtype] rdata [~]
Sa "[...]" (uglatim zagradama) oznaavamo zapise koje je mogue
izostaviti,
name je domensko ime ili IP adresa (ili jednostavno naziv zapisa),
+ttl je TTL koji mora zapoeti sa "+" (plus) znakom, rtype je tip
zapisa (A, MX, AAAA, itd. dakle nalik na Bind sintaksu), rdata je sam
sadraj zapisa iji nain pisanja ovisi o tipu samog zapisa (razliit oblik
za npr. A, MX, SRV, itd). U sluaju da rtype nije zadan,
podrazumijeva se A tip zapisa,
Unutar svakog zapisa postoji nekoliko odjeljaka, koji su odvojeni sa "|"
(okomita crta), razmacima, tabulatorima ili prelascima u idui red,
Pojedini DNS zapis se moe protezati u vie redova. Kraj zapisa se
moe naznaiti sa znakom "~" (tilda) u MaraDNS 1.3 inaici, odnosno
prelaskom u idui red,
Svaki zapis ima vlastiti TTL i on se smije izostaviti. U sluaju da se to
uini, bit e jednak 86400 reeni zapis. To je mogue promijeniti bilo
globalno bilo za grupu zapisa koristei parametar /ttl, no o tome
emo detaljnije u nastavku,
Svako pojedino domensko ime mora zavravati s tokom ili sa znakom
"%",
Vrijede isti specijalni znakovi kao i u CSV1 formatu zone,
Vrijede ista pravila za komentare kao i u CSV1 formatu, osim to u
komentarima nije dozvoljen znak "{" (otvorena vitiasta zagrada) te
znak "'" (jednostruki navodnik),
U pojedinim poljima i kod pojedinih tipova zapisa mogue je koristiti
dodatne parametre odnosno naredbe o kojima emo detaljnije u
nastavku,
Znak "~" (tilda) se ne bi trebao pojavljivati u zoni ako se ne koristi za
odvajanje zapisa,
Prije uitavanja se sva se domenska imena u zoni pretvaraju u mala
slova,
Na poetku zone treba biti SOA zapis za domenu kojeg slijedi jedan ili
vie NS zapisa za domenu koje slijede ostali zapisi. U sluaju da reeni
zapisi ne postoje, biti e generirani automatski tako da zona moe
normalno funkcionirati.
Tipovi zapisa su ukratko sljedei (za vie informacija, pogledajte Bind9
poglavlje):
71/90
A - definira A zapise:
x.fqdn +ttl A ip
Reeni zapis e stvoriti A zapis za labelu x.fqdn sa IP adresom ip. U
sluaju da postoji vie A zapisa oni e se u odgovoru biti po sluajnom
(ne cikliki) redoslijedu. Ovo je podrazumijevani tip zapisa, pa je
njegovu oznaku mogue izostaviti.
Primjer:
esa1.esa.fer.hr. a 161.53.71.194
hpe50.% 161.53.71.235
MX - definira MX zapise:
x.fqdn +ttl MX dist mx.fqdn
Kroz ovaj zapis se stvara MX zapis mx.fqdn za domensko ime (ili
domenu) x.fqdn i cijenom (udaljenou) dist.
Primjer upotrebe:
esa.fer.hr. mx 5 esa1.esa.fer.hr.
esa.fer.hr. mx 10 hpe50.esa.fer.hr.
72/90
73/90
74/90
10.1.0.1
mail.x.com.
a 10.1.0.2
10.2.0.1
mail.x.org.
a 10.2.0.2
koristiti sljedee:
/opush %
/read datoteka
/opop
77/90
6. PowerDNS
NB: Ovaj odlomak je u nastajanju, te je mogue da sadri greke,
nepravilnosti i nepotpune informacije. Hvala na razumijevanju.
78/90
7. Unbound
NB: Ovaj odlomak je u nastajanju, te je mogue da sadri greke,
nepravilnosti i nepotpune informacije. Hvala na razumijevanju.
79/90
8. Dnsmasq
NB: Ovaj odlomak je u nastajanju, te je mogue da sadri greke,
nepravilnosti i nepotpune informacije. Hvala na razumijevanju.
80/90
9. NSD
NB: Ovaj odlomak je u nastajanju, te je mogue da sadri greke,
nepravilnosti i nepotpune informacije. Hvala na razumijevanju.
81/90
10.Primjeri konfiguracija
Donosimo razliite dijelove konfiguracije stvarnih DNS posluitelja. Prije
ikakve upotrebe preporua se proitati prethodna poglavlja. Naravno, ovo su
tek dijelovi konfiguracije koji mogu ali i ne moraju u funkcionirati - ve trebaju
posluiti samo kao primjer za pisanje vlastitih konfiguracija.
zone "fpz.hr" {
type slave;
file "/etc/bind/hosts_fpz.db";
masters { 161.53.97.3; 161.53.97.11; };
};
// itd.
// razne autogenerirane stvari
include "/etc/bind/zones.rfc1918";
include "/etc/bind/spywaredomains.zones";
A
AAAA
A
sw3404-rc-1
sw404-rc-2
sw404-rc-3
; itd.
arwen
fsbwireless.fsb.hr.
wireless.fsb.hr.
; itd.
127.0.0.1
::1
161.53.116.1
A
A
A
161.53.116.2
161.53.116.3
161.53.116.4
A
CNAME
CNAME
161.53.116.15
arwen.fsb.hr.
arwen.fsb.hr.
84/90
604800
86400
2419200
604800 )
TTL
;
@
1.0.0
IN
IN
NS
PTR
;
;
;
;
Refresh
Retry
Expire
Negative Cache
localhost.
localhost.
TTL
;
@
IN
NS
localhost. root.localhost. (
1
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
86400 )
; Negative Cache
localhost.
85/90
7200
; Retry - 1
604800
; Expire - 2
86400 )
; Minimum - 12
minute
weeks
hours
NS
NS
NS
1
2
3
4
5
; itd.
hobbit.fsb.hr.
bjesomar.srce.hr.
mafpz.fpz.hr.
PTR
cisco.fsb.hr.
PTR
sw3404-rc-1.fsb.hr.
PTR
sw404-rc-2.fsb.hr.
PTR
sw404-rc-3.fsb.hr.
PTR
fsb-backrout.fsb.hr.
10.8.TinyDNS zona
&hybserv.net::dns.hybserv.net.:86400
&hybserv.net::ns.icsbg.net.:86400
+cvs.hybserv.net:161.53.71.235:86400
+dns.hybserv.net:161.53.71.235:86400
+hybserv.net:161.53.71.235:86400
+localhost.hybserv.net:127.0.0.1:86400
+mail.hybserv.net:161.53.71.235:86400
+www.hybserv.net:161.53.71.235:86400
@hybserv.net::dns.hybserv.net.:5:86400
@hybserv.net::ns.icsbg.net.:10:86400
Csvn.hybserv.net:cvs.hybserv.net.:86400
Ctrac.hybserv.net:cvs.hybserv.net.:86400
Cviewcvs.hybserv.net:cvs.hybserv.net.:86400
Cw.hybserv.net:www.hybserv.net.:86400
Cweb.hybserv.net:www.hybserv.net.:86400
Cww.hybserv.net:www.hybserv.net.:86400
Zhybserv.net:dns.hybserv.net.:postmaster.hybserv.net.::28
800:7200:604800:604800:86400
www.hybserv.net. a 161.53.71.235
svn.hybserv.net. cname cvs.hybserv.net.
trac.hybserv.net. cname cvs.hybserv.net.
w.hybserv.net. cname www.hybserv.net.
web.hybserv.net. cname www.hybserv.net.
ww.hybserv.net. cname www.hybserv.net.
88/90
11.Literatura
90/90