Vyöhyketiedoston muoto on määritelty RFC 1035:ssä (kohta 5) ja RFC 1034:ssä (kohta 3.6.1). Tätä muotoa käytti alun perin Berkeley Internet Name Domain (BIND) -ohjelmistopaketti, mutta muut DNS-palvelinohjelmistot ovat ottaneet sen laajalti käyttöön – tosin jotkut niistä (esim. NSD, PowerDNS) käyttävät vyöhyketiedostoja vain lähtökohtana niiden kokoamiseksi tietokantamuotoon, ks. myös Microsoft DNS with Active Directory-database integration.
Vyöhyketiedosto on sarja rivisuuntaisia merkintöjä, joista kukin on joko direktiivi tai tekstikuvaus, joka määrittelee yksittäisen resurssitietueen (RR). Merkintä koostuu kentistä, jotka on erotettu millä tahansa valkoisen välilyönnin (tabulaattorit ja välilyönnit) yhdistelmällä, ja se päättyy rivin rajaan, paitsi lainausmerkkisen merkkijonokentän arvon sisällä tai parin ympäröivän muotoilusulkeisen sisällä. Mikä tahansa rivi voi päättyä kommenttitekstiin, jota edeltää puolipiste, ja tiedosto voi sisältää myös minkä tahansa määrän tyhjiä rivejä.
Merkinnät voivat esiintyä vyöhyketiedostossa missä tahansa järjestyksessä, joitakin poikkeuksia lukuun ottamatta.
Ohjeet ovat valvontamerkintöjä, jotka vaikuttavat vyöhyketiedoston muihin osiin. Direktiivin ensimmäinen kenttä koostuu dollarimerkistä, jota seuraa avainsana:
- $ORIGIN seuraa toimialueen nimi, jota käytetään alkuperänä myöhemmille suhteellisille toimialuenimille.
- $INCLUDE seuraa tiedoston nimi ja valinnainen alkuperätoimialueen nimi, jota käytetään tulkittaessa sen sisältöä (jota käsitellään ikään kuin se esiintyisi kantatiedostossa, ja sen jälkeen nollaudutaan alkuperäiseen arvoon, joka edeltää direktiivin arviointia).
- $TTL, joka on määritelty RFC 2308:ssa (kohta 4), jota seuraa luku, jota käytetään oletusarvoisena TTL:nä (time-to-live).
- $GENERATE, joka on BINDin ja joidenkin muiden nimipalvelinohjelmistojen hyväksymä epätyypillinen laajennus useiden resurssitietueiden lisäämiseksi yhdellä merkinnällä, jota seuraa ytimekäs esitys kasvavasta sarjasta ei-negatiivisia numeroita ja sen jälkeen mallinomaisen RR-merkinnän esittäminen. Jokaiselle sarjan numerolle lisätään resurssitietue käyttäen mallia, jossa numeron tilalla on pelkistämättömiä ”$”-merkkejä.
Resurssitietue-merkintä koostuu useista kentistä seuraavasti (molemmat kenttien järjestykset ovat hyväksyttäviä ja niitä voidaan käyttää vaihdellen):
nimi | ttl | tietueen luokka | tietueen tyyppi | tietueen tiedot |
nimi | rekisteriluokka | ttl | rekisterityyppi | rekisteritiedot |
Nimikenttä voidaan jättää tyhjäksi. Jos näin tehdään, tietue perii kentän edellisestä tietueesta. Vapaasti seisovaa @-merkkiä käytetään merkitsemään nykyistä alkuperää.
Ttl-kentässä määritetään sekuntien määrä, jonka jälkeen välimuistiohjelmaa käyttävän asiakkaan on hylättävä tietue ja suoritettava uusi resoluutio-operaatio tuoreen tiedon saamiseksi. Jotkin nimipalvelimet, kuten BIND, sallivat epätyypilliset esitykset, joissa käytetään aikayksiköiden lyhenteitä (esimerkiksi ”2d” tarkoittaa kahta vuorokautta tai ”1h30m” tarkoittaa yhtä tuntia ja 30 minuuttia). Se voidaan jättää pois, jolloin tuloksena oleva arvo asetetaan oletus TTL:stä (jos sellainen on määritelty) tai edellisestä tietueesta.
Tietueen luokka -kenttä ilmaisee tietueen tietojen nimiavaruuden. Se voidaan jättää pois, jolloin tuloksena oleva arvo asetetaan edellisestä tietueesta. Yleisimmin käytetty nimiavaruus on Internetin nimiavaruus, joka ilmoitetaan parametrilla IN, mutta muitakin nimiavaruuksia on olemassa ja käytössä, esim. CHAOS.
Tietueen tyyppi -kenttä on lyhenne viimeiseen kenttään, tietueen tietoihin, tallennetun tiedon tyypistä. Esimerkiksi: osoitetietue (tyyppi A IPv4:ssä tai tyyppi AAAA IPv6:ssa) kuvaa ensimmäisen kentän verkkotunnuksen nimeä tietueen tiedoissa olevaan IP-osoitteeseen; postinvaihtajatietue (tyyppi MX) määrittää verkkotunnuksen SMTP-sähköpostiisännän (SMTP).
Tietueiden datakenttä voi koostua yhdestä tai useammasta tietoelementistä kunkin tietuetyypin vaatimuksista riippuen. Esimerkiksi osoitetietue vaatii vain osoitteen, kun taas postinvaihtajatietue vaatii prioriteetin ja verkkotunnuksen. Tällaiset tietoelementit esitetään valkoisella välilyönnillä erotettuina kenttinä.
EsimerkkitiedostoMuokkaa
Esimerkki example.com-verkkotunnuksen vyöhyketiedostosta on seuraava:
$ORIGIN example.com. ; designates the start of this zone file in the namespace$TTL 3600 ; default expiration time (in seconds) of all RRs without their own TTL valueexample.com. IN SOA ns.example.com. username.example.com. ( 2020091025 7200 3600 1209600 3600 )example.com. IN NS ns ; ns.example.com is a nameserver for example.comexample.com. IN NS ns.somewhere.example. ; ns.somewhere.example is a backup nameserver for example.comexample.com. IN MX 10 mail.example.com. ; mail.example.com is the mailserver for example.com@ IN MX 20 mail2.example.com. ; equivalent to above line, "@" represents zone origin@ IN MX 50 mail3 ; equivalent to above line, but using a relative host nameexample.com. IN A 192.0.2.1 ; IPv4 address for example.com IN AAAA 2001:db8:10::1 ; IPv6 address for example.comns IN A 192.0.2.2 ; IPv4 address for ns.example.com IN AAAA 2001:db8:10::2 ; IPv6 address for ns.example.comwww IN CNAME example.com. ; www.example.com is an alias for example.comwwwtest IN CNAME www ; wwwtest.example.com is another alias for www.example.commail IN A 192.0.2.3 ; IPv4 address for mail.example.commail2 IN A 192.0.2.4 ; IPv4 address for mail2.example.commail3 IN A 192.0.2.5 ; IPv4 address for mail3.example.com
Vyöhyketiedostossa on määriteltävä vähintään SOA-tietue (Start of Authority), jossa on vyöhykkeen auktoritatiivisen isäntänimipalvelimen nimi ja nimipalvelimen hallinnoinnista vastuussa olevan henkilön sähköpostiosoite (edustettuna toimialueen nimenä, jossa on pisteenmerkki tavanomaisen @-merkin sijasta). SOA-rekisterin parametreissa määritetään myös luettelo ajoitus- ja vanhenemisparametreista (sarjanumero, orjan päivitysaika, orjan uusintayritysaika, orjan vanhenemisaika ja tietueen välimuistiin tallentamisen enimmäisaika). Jotkin nimipalvelimet, kuten BIND, vaativat myös vähintään yhden ylimääräisen NS-tietueen.
Vyöhyketiedostossa verkkotunnukset, jotka päättyvät pisteeseen (kuten ”esimerkki.com.” yllä olevassa esimerkissä), ovat täysin kelpuutettuja, kun taas verkkotunnukset, jotka eivät pääty pisteeseen, ovat suhteellisia nykyiseen alkuperään nähden (minkä vuoksi www viittaa yllä olevassa esimerkissä osoitteeseen www.example.com).