DNS-zónafájl
Az internet egyik alapvető, névfeloldást biztosító szolgáltatásában, a DNS-ben a zónafájl olyan szövegfájl, ami egy DNS-zónát ír le. Egy-egy DNS-zóna a globális DNS hierarchikus névterének a részhalmaza, ami gyakran egyetlen doménből áll. A zónafájl tartománynevek és IP-címek, valamint egyéb erőforrások közötti hozzárendeléseket tartalmaz, ami erőforrásrekordok soronkénti, szöveges leírásából áll. Egy zónafájl lehet DNS-mesterfájl, ami mérvadó (autoritatív) módon leír egy zónát, vagy tartalmazhatja csak egy DNS-gyorsítótár elemeit.[1]
Fájlformátum
[szerkesztés]Az eredetileg a BIND (Berkeley Internet Name Domain) által használt zónafájl formátumának de facto szabványát az RFC 1035-ben (section 5) és az RFC 1034-ben (section 3.6.1) írták le. A formátumot számos más DNS-kiszolgálószoftver átvette, bár némelyik (pl. NSD, PowerDNS) csak kiindulási pontnak használja a saját adatbázis-formátumba való konvertáláshoz, vagy ellenpélda a Microsoft DNS is, ha Active Directory-integrált üzemmódban működtetik.
A zónafájl erőforrásrekord-bejegyzések sorozatából áll. Minden sorban szöveges leírás található, ami egyetlen erőforrásrekordot (Resource Record, RR) határoz meg. A leíró részt több mező alkotja, melyeket white space (szóközök vagy tabulátorok) választanak el. Az első mező a domén neve, amit a rekord „tulajdonosának” (owner) is neveznek, ha üresen marad, alapértelmezés szerint megegyezik az előző rekord tulajdonosával. A tartománynevet a time to live mező, a rekord osztály, típusa, majd egy vagy több mezőnyi típusfüggő adat követi.
A time-to-live mező határozza meg azt az időt, aminek eltelte után a lekérdező kliensnek el kell dobnia a rekordról a gyorsítótárában lévő információt, és új lekérést kell végeznie. Alapértelmezett értékét a zóna $TTL direktívája határozza meg. A rekord osztálya meghatározza, hogy az információk milyen névtérben értelmezendők. Ez leggyakrabban az internet, amit az IN paraméter jelöl, de használatban vannak mások is, pl. CHAOS. A rekord típusa egy rövid mnemonik, ami a rekordban tárolt információra utal, és meghatározza a szükséges paraméterek számát. Például a címrekord (address record) – melynek mnemonikja A, ha IPv4-et használnak és AAAA IPv6 esetén – az első mezőben található tartománynevet hozzárendeli a negyedik mezőben található IP-címhez; a levelezőkiszolgáló (mail exchanger) rekord (típuskód: MX) meghatározza a tartományban használatos Simple Mail Transfer Protocol (SMTP) kiszolgáló nevét.
Az erőforrásrekordok kötetlen sorrendben helyezkednek el a zónafájlban (bár vannak nem kötelező konvenciók, pl. a SOA rekordot a fájl tetején elhelyezni). A jobb olvashatóság kedvéért az erőforrásrekordok több sort is elfoglalhatnak, ilyenkor a több soros paraméterlistát zárójelek közé kell helyezni. Pontosvessző után megjegyzéseket is lehet írni, a pontosvessző állhat sor elején, vagy egy sorban az utolsó értelmezett mező után. A megjegyzések a sor végén véget érnek. A zónafájl akárhány üres sort vagy megjegyzést tartalmazhat.
A zónafájl tartalmazhat dollárjellel kezdődő direktívákat is ($TTL, $ORIGIN, $INCLUDE). Az $ORIGIN kulcsszó a zóna kezdőpontját határozza meg a DNS-hierarchiában, ha hiányzik, a szerverszoftver a konfigurációs állományaiból (pl. named.conf) próbálja meghatározni az értékét. A $TTL kulcsszó (a BIND 9-től kötelező) a külön TTL értéket nem tartalmazó erőforrásrekordok TTL értékét határozza meg. Az $INCLUDE direktívával külső fájlból lehet további direktívákat beilleszteni.
Példa egy zónafájlra:
$ORIGIN example.com. ; kijelöli a zónafájl kezdőpontját a névtérben $TTL 1h ; alapértelmezett lejárati idő a saját TTL-értékkel nem rendelkező erőforrásrekordok számára example.com. IN SOA ns.example.com. username.example.com. ( 2007120710 ; a zónafájl sorozatszáma (változás esetén növelni kell az értékét) 1d ; a másodlagos névkiszolgáló (szolga) frissítési ideje (1 nap) 2h ; a szolga újrapróbálkozási ideje probléma esetén (2 óra) 4w ; a szolga lejárati ideje (4 hét) 1h ; a sikertelen lekérdezések maximális gyorsítótárazási ideje (negatív cache; 1 óra) ) example.com. NS ns ; az ns.example.com az example.com egy névkiszolgálója example.com. NS ns.somewhere.example. ; az ns.somewhere.example az example.com tartalék névkiszolgálója example.com. MX 10 mail.example.com. ; a mail.example.com az example.com levelezőszervere @ MX 20 mail2.example.com. ; a fenti sorhoz hasonlóan, a „@” a zónaeredetre utal @ MX 50 mail3 ; a fenti sorhoz hasonlóan, de relatív állomásnevet használva example.com. A 192.0.2.1 ; az example.com IPv4-címe AAAA 2001:db8:10::1 ; az example.com [[IPv6]]-címe ns A 192.0.2.2 ; az ns.example.com IPv4-címe AAAA 2001:db8:10::2 ; az ns.example.com IPv6-címe www CNAME example.com. ; a www.example.com egy alias, ami az example.com-ra mutat wwwtest CNAME www ; a wwwtest.example.com egy másik alias, ami pedig a www.example.com-ra mutat mail A 192.0.2.3 ; a mail.example.com IPv4-címe ; minden MX rekordhoz kell, hogy legyen címrekord is, ; ahogy azt az [[RFC:2181|RFC 2181]] (section 10.3) meghatározza mail2 A 192.0.2.4 ; a mail2.example.com IPv4-címe mail3 A 192.0.2.5 ; a mail3.example.com IPv4-címe
Minimális formai követelmény, hogy a zónafájlnak tartalmaznia kell egy Start of Authority (SOA) rekordot, amiben a zónára nézve irányadó információk vannak: a zóna mérvadó, elsődleges névkiszolgálója, a névkiszolgáló kezeléséért felelős személy e-mail-címe. Egyes DNS-kiszolgálószoftverek, mint a BIND is, megkövetelik ezen kívül legalább egy névkiszolgáló-rekord létezését. A SOA rekordban az e-mail-címet úgy tárolják, hogy a zónafájlban másra használt @ szimbólumot ponttal helyettesítik. A nem pontban végződő állomásnevek a zóna kezdőpontjához képest lesznek értelmezve. A fenti példában a www ezért utal a www.example.com-ra és az example.com. helyett ha example.com szerepelne, akkor example.com.example.com-ként kellene értelmezni. A ponttal végződő neveket úgy is nevezik, hogy teljesen minősített tartománynév (fully qualified domain name, FQDN).
A zónafájlra a névkiszolgáló szoftver (pl. BIND) konfigurációs fájljából hivatkoznak, például ilyen módon:
zone "example.com" { type master; file "/var/named/db.example.com"; };
Gyökérzóna és legfelső szintű tartományok
[szerkesztés]A DNS-gyökérzóna és a legfelső szintű tartományok zónafájljai kizárólag a tartomány mérvadó névkiszolgálóival kapcsolatban nyújtanak információkat.
Localhost
[szerkesztés]Egyes kiszolgálószoftverek automatikusan konfigurálnak erőforrásrekordokat egyes speciálisan kezelendő tartomány- vagy állomásnevekhez, mint a localhost; de egyéni zónafájlokra is szükség lehet.
A localhosthoz tartozó forward zóna kézi konfigurálására példa:
$ORIGIN localhost. @ 1D IN SOA @ root 1999010100 3h 15m 1w 1d @ 1D IN NS @ @ 1D IN A 127.0.0.1 @ 1D IN AAAA ::1
A megfelelő reverz zóna:
;; A 127.0.0.1 és az ::1 reverz zónája ;; ne írj ide $ORIGIN direktívát $TTL 3W @ 3W IN SOA localhost. root.localhost. 1999010100 3h 15m 1w 1d @ 3W IN NS localhost. 1 3W IN PTR localhost.
A fájl nem specifikálja a zóna kezdőpontját, így a következő konfigurációban egyszerre lehet IPv4-hez és IPv6-hoz használni:
zone "0.0.127.in-addr.arpa" IN { type master; file "r.local"; }; zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { type master; file "r.local"; };
Hasonló zónafájlok létrehozhatók a broadcast címhez és a nullacímhez is. Ezek haszna az lehet, hogy megakadályozzák, hogy a DNS-kiszolgáló más, potenciálisan külső DNS-kiszolgálóktól lekérdezze ezeket a címeket.
Jegyzetek
[szerkesztés]Fordítás
[szerkesztés]- Ez a szócikk részben vagy egészben a Zone file című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Kapcsolódó szócikkek
[szerkesztés]- DNS-rekordtípusok listája
- létrehozása zónafájlt Archiválva 2020. november 12-i dátummal a Wayback Machine-ben