DNS-zónafájl

A Wikipédiából, a szabad enciklopédiából

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 | forrásszöveg szerkesztése]

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 (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 emailcí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 emailcí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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

  1. RFC 1035, Domain Names - Implementation and Specification, P. Mockapetris, (November 1987)

Fordítás[szerkesztés | forrásszöveg szerkesztése]

  • 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.

Kapcsolódó szócikkek[szerkesztés | forrásszöveg szerkesztése]