Az internet DNS

Elv és konfiguráció


Pásztor Miklós
MTA SZTAKI/ASZI
pasztor@sztaki.hu

Lektorálta: Kiss Gábor, Martos Balázs

Az interneten használt osztott név adatbázis, a DNS (Domain Name Service) folyton használatos: minden web lap letöltésnél, levél közvetítésnél szerepe van, nélküle megbénulna a hálózat, mégis sokan még a létezésérõl sem vesznek tudomást, a szolgáltatás csendesen dolgozik a háttérben.

A DNS egy osztott, hierarchikus adatbázis: az adatbázist jelenleg név szerverek százezrei szolgáltatják nevek millióiról. A tervezéskor gondoltak redundanciára és a hibatûrésre: a névszerverek sokszor nem elérhetõk, konfigurációjuk tele van hibával, hiányossággal, elavult adatokkal, az egész mégis bámulatos módon mûködik. A DNS rendszer legfontosabb feladata a név - IP cím feloldás, de - ahogy azt látni fogjuk - egy sor más információt is szolgáltat a domain nevekrõl. A rendszergazdák fontos feladata a DNS konfigurálás. Ebben a írásban a DNS rendszer - nem is bonyolult - elvét ismertetjük, és leírjuk a konfigurálás legfontosabb elemeit.


Tartalom


IP címek, nevek

Az interneten levõ hálózati eszközök, számítógépek mindegyikének egyedi azonosítója, (4 byte-on tárolt) IP címe van. A felhasználók azonban olyan neveket szeretnek használni, amelyek könnyebben megjegyezhetõk, mint egy ilyen hosszú szám, és a névbõl következtetni tudnak a gép, a szolgáltatás helyére, a szolgáltatás típusára is. Ezért kezdettõl fogva neveket rendeltek az IP címekhez. Amikor az internet még csak pár ezer számítógépbõl állt, ezt a név-cím hozzárendelést egy folyamatosan növekvõ fájl, host táblázat tartalmazta. Ezt a táblázatot minden számítógépen lokálisan tárolták és egy központi helyrõl rendszeresen frissítették. Ennek nyoma mind a mai napig megvan: pl. a unix rendszerekben az /etc/hosts fájl éppen ilyen.

Az internet növekedtével azonban ez a megoldás tarthatatlanná vált: a fájl hatalmasra dagadt, egyre sûrûbben kellett módosítani, egyre többen töltötték le, egyre gyakrabban, Ezért jött létre a DNS (Domain Name Service), az internetes kommunikáció egyik fundamentuma. Kidolgozásában fõ szerepet játszott P. Mockapetris, az ISI (Information Science Institute) munkatársa. A DNS elve egyszerû és ötletes, frappáns bizonyítéka annak, hogy a szubszidiaritás elve milyen jól mûködik a gyakorlatban.

A nevek feloldása hálózati kommunikáció által történik. A névszerverek feladata kettõs:

Ha egy név dolgában egy szerver az internet számára elsõdleges információforrás, azaz illetékes, azt úgy szokás kifejezni, hogy az õ adata autoritatív.

Mindenki ismer internet neveket: mail.whitehouse.com, reklam.radio.hu. Az internet nevek fordított fa szerint szervezõdõ hierarchiát alkotnak:

                        .

                    /   |   \

                 hu    edu    pl    ...

               / | \  / | \  / | \

            bgytf    cmu    ac      ...

           /  |  \   |

        tonio       www             ...

A fa fordított, mert a gyökér a hierarchia legmagasabb foka. A nevek feloldása a gyökértõl kezdõdik, és fokról fokra halad elõre. A név-fa különbözõ elágazási pontjaiért és ágaiért különbözõ szerverek felelõsek. Egy-egy szerver több ágért is felelõs lehet. A név-fa egy egy pontját domain-nak, domain névnek vagy egyszerûen név-nek nevezzük.

A név hierachia

A hierarchia csúcsát 'root'-nak, gyökérnek nevezzük. Az ez alatti neveket top level domain-oknak, TLD-knek mondjuk. Amikor az internet még csak USA hálózat volt, a következõ TLD-k voltak használatosak:

edu - amerikai egyetemek, oktatási intézmények
com - vállalatok
mil - katonai szervezetek
gov - kormányhivatalok
net - hálózati szervezetek
org - mindenféle más szervezet
arpa - az internet õsében, az Arpanetben levõ gépek neveire szolglált kezdetben. Az inverz nevek feloldásánál (ld. késõbb) mind a mai napig fontos szerpe van.

Az USA-n kívüli domain-ok számára az ISO 3166 szabványban meghatározott kétkarakteres országkódot kezdték használni. Példák:

be - Belgium
pl - Lengyelország
hu - Magyarország

A hierarchia nagyon hasonlít az operációs rendszerek hierachikus fájlstruktúrájához (pl. C:\anyagok\majus\jelentes1.txt), csak az alá-fõlérendeltség itt éppen fordítva, jobbról balra olvasható le. Pl. gep.csoport.osztaly.intezet.hu. A TLD elnevezés mellett használatos még az SLD (second level domain) kifejezés is, a hierarchia második szintjén levõ domain-okra.

Zónák

A név-fa zónákra oszlik: egy-egy zóna a fa egyben kezelt része. Sokszor - de nem feltétlenül, - egybeesik egy aldomainnel. Például egy zóna lehet az osztaly.intezet.hu és minden név, ami a hiararchiában ez alatt van. Egy zóna például az összes TLD-t tartalmazó root zóna is. Egy zóna a 'láttató', az 'autoritatív' szerver szempontjából egy egység, rendszerint egy fájl. Egy-egy zónát több szerver is láttat(hat). Ezek közül az egyik az elsõdleges, a többi (ha van) másodlagos.

Az elsõdleges szerveren az adatok a zóna adminisztrátor munkájának eredményeképpen ténylegesen változnak.

A másodlagos szerver(ek) a zóna adatait meghatározott rend szerint az elsõdleges szervertõl tükrözi(k). A tükrözés rendjét az elsõdleges szerveren a rendszeradminisztrátor a zóna konfigurációjával határozza meg.

Delegálás

A hierarchia egyes darabjait a zóna adminisztrátora tovább delegálhatja más szerverekre. Például az intezet.hu domain gazdája az osztaly.intezet.hu aldomain láttatását, autoritását az illetõ osztály egy meghatározott gépére bízhatja a konfigurációban: mindenki felelõs és úr lehet a saját illetékességi körében (szubszidiaritás elve). A root zóna sõt még a TLD-k (edu, gov, hu stb.) is jóformán mást sem tartalmaznak mint ilyen delegálást. Így jön létre a hierarchikus, osztott adatbázis. A delegálás azonban nem feltétele a több szintû név megadásának. Például lehetséges, hogy az osztaly.intezet.hu nincs delegálva, nem különálló zóna, mégis létezik a gep.osztaly.intezet.hu domain, mert az intezet.hu zóna gazdája bevezette a pontot (.) tartalmazó gep.osztaly nevet. Ezt éppen úgy megteheti, mint a gep-osztaly vagy az osztalygepe nevek bevezetését, melyeknek hatása a gep-osztaly.intezet.hu, illetve az osztalygepe.intezet.hu nevek létrejötte.

Domain nevek

A hierarchia következtében minden név egyedi. Lehet, hogy az internet több pontján is elneveznek egy gépet pl. jupiter-nek, de nevük egyértelmû, ha a teljes domain nevüket mondjuk:

jupiter.osztaly.intezet.hu.
jupiter.arizona.edu.

A domain neveknek ezt a teljes alakját, ami a nevet a gyökér domain-ig tartalmazza FQDN-nek (Fully Qualified Domain Name), a domain név pontokkal elválasztott darabjait pedig szegmenseknek nevezzük. Annak jelzésére, hogy a domain név teljes, a név végére pontot teszünk. Valójában a TLD-re (hu, edu) való végzõdés nem garantálja, hogy a név FQDN: elképzelhetõ és tökéletesen szabályos a jupiter.arizona.edu.osztaly.intezet.hu domain név is.

Domain nevekben megengedett karakterek a latin ABC betûi [a-z], a számjegyek [0-9] és a kötõjel (-). Kis-  és nagybetû egyformán használható, és nem jelent különbséget. Sajnos nem állhat domain névben ékezetes karakter. Gyakori hiba, hogy aláhúzás (_) karaktert adnak meg domain nevekben. Az eredeti definició (RFC1035) az egyes szegmensek elején csak betût engedett meg, a késõbbi (RFC1123) megengedi a számmal kezdõdõ szegmenst is. Például szabályos a 3com.com domain. Kötõjel viszont nem állhat továbbra sem se szegmens név elején, sem végén.

Cím -> név hozzárendelés

Az interneten nem csak arra van szükség, hogy nevekbõl IP címeket nyerjünk, hanem arra is, hogy IP címekbõl domain neveket. Ez a szolgáltatás - amit inverz, vagy reverz feloldásnak neveznek -, a hálózati biztonság szempontjainak erõsödése miatt egyre nagyobb jelentõségû. Például sok FTP vagy levelezõ szerver nem fogad el kéréseket csak olyan gépekrõl, amiknek címébõl a hozzájuk tartozó domain nevet ki lehet deríteni. Vannak szolgáltatások, amik csak bizonyos domain-okból érhetõk el.

A cím-név feloldás érdekében bevezették az in-addr.arpa domaint. IP címeket általában úgynevezett pontozott decimális (dotted decimal) alakban szokás megadni, ilyesformán: 150.151.152.153. Az ehhez a címhez tartozó nevet úgy kapjuk meg, hogy a domain rendszertõl megkérdezzük a 153.152.151.150.in-addr.arpa névhez tartozó rekordot.

Az in-addr.arpa domainban éppen úgy delegálják az egyes aldomain-eket mint minden más zónában.

Rezolverek és DNS szerverek

Hogyan is zajlik a névfeloldás? Tételezzük fel, hogy a jupiter.arizona.edu nevet kell feloldani, mert pl. oda akarunk egy levelet továbbítani, vagy ftp-vel belépni. Ezért az általunk használt programnak - pl. a web böngészõnek -, megadjuk a jupiter.arizona.edu domain nevet. Programunknak ekkor meg kell állapítania, hogy milyen IP cím is tartozik ehhez a domain névhez. Ezt a funkciót ellátó egységet nevezzük rezolvernek, feloldónak. Gépünkön a TCP/IP szoftver telepítésekor, konfigurálásakor meg kellett adni egy vagy több DNS szervert. Ezekhez fordul a rezolver. A DNS szerver lehet a gép saját maga, vagy - elvben - tetszõleges gép az interneten. Tehát elvben lehetséges, hogy egy Indonéziában levõ számítógép egy Dániában levõ name szervert állít be a rezolver konfigurációjában.Persze az ésszerûtlen. Célszerû egy hálózati értelemben közeli szervert beállítani. A rendszergazdák kedves kötelessége erre vonatkozó információval ellátni felhasználóikat. A rezolver rendszerint néhány konfigurációs fájlból és könyvtári szubrutinból áll. Gyakorlatilag minden TCP/IP-t használó, internetbe kapcsolt számítógépen szükség van rá. A rezolver tehát nem végez közvetlenül névfeloldást, hanem bizonyos általa ismert névszervereket kér meg arra, hogy a feloldást elvégezzék.

A rezolver konfigurációban a DNS szerverek megadásánál értelemszerûen IP címeket kell használnunk. Sok konfiguráló program a szerverek megadásánál használja az 'elsõdleges' (primary), 'másodlagos' (secondary) kifejezéseket. Ez gyakran zavart okoz, mert összekeverik a zónáknál használatos hasonló kifejezésekkel. A rezolver konfigurációnál megadott elsõdleges/másodlagos névszerver a látásra vonatkozik, vagyis arra, hogy kliensünk milyen név szervereket kérdez. A zóna definicónál pedig az elsõdleges névszerver az, amirõl a másodlagos szerverek tükrözik a láttatott, mutatott zónát.

Amikor a rezolver a konfigurációjában megadott névszerverhez fordul, hogy például a jupiter.arizona.edu névhez tartozó IP címet megtudja, akkor a szerver általában nem válaszol azonnal. Példánkban legyen a kérdezett névszerver a ns.intezet.hu. Az ns konfigurációjának archimédeszi pontja - hasonlóan a rezolver konfiguráció DNS szerver IP címeihez -, a gyökér névszerverek IP címe. Ezek valamelyikét kérdezi az ns névszerver. Egy root névszervert kérdezve például a jupiter.arizona.edu névrõl, az nem ad mást, mint a .edu zónáért felelõs név szerverek listáját. Az ns névszerver ekkor egy újabb kérdést intéz a .edu névszerveréhez, aki újra csak arra vonatkozóan ad információt, hogy hova lehet fordulni az arizona.edu nevek feloldásáért. Ilyen módon a ns rekurzív módon oldja fel a nevet, melynek végén a kérdezõ kliens gép rezolverének megadja a választ. A DNS szerverek általában nem végeznek bármely kliens számára ilyen rekurzív feloldást, hanem csak a konfigurációjukban meghatározottakra.

Cache, TTL

A névszerverek az általuk megtudott neveket tárolják azzal a céllal, hogy ha újra megkérdezik tõlük, akkor ebbõl a cache-bõl azonnal tudjanak válaszolni. Ennek többszörös haszna van: csökkenti a hálózati forgalmat, és gyorsítja a névfeloldást. A cache-ben minden megtudott nevet, csak egy bizonyos ideig tárolnak. Ha ez az idõ lejárt, akkor egy újabb kéréskor - hiába lenne a cache-ben az információ-, a névszerver újra kérdezi azt. Ilyen módon, ha a névhez tartozó információ esetleg változik, arról tudomást szerezhet. Azt az idõt, ameddig a cache-ben van egy-egy információ, nem a tárolóban, hanem a láttató, az autoritatív szerverben döntik el: minden rekordhoz tartozik egy - sokszor implicit módon megadott - TTL (Time To Live) érték. Ennyi másodpercig tárolják a szerverek a cache-ükben az információt.

Névszerverek funkció szerint

Caching only szerverek

A névszerverek egy része nem autoritás semmilyen névre, hanem csak arra szolgál, hogy feloldja a neveket a kliensek számára. Ezeket nevezzük 'caching only' - csak cache-elõ - névszervereknek. Általában ajánlatos minden lokális hálózaton legalább egy névszervert mûködtetni. Ha nincs 'láttató' feladat , akkor caching-only szerverre van szükség.

Láttató, autoritatív szerverek

Ahogy már errõl szó volt, ezek azok a név szerverek, melyeknek az (is) feladata, hogy bizonyos neveket õk mutassanak meg mások számára. A domain név-fa egy egyben delegált ágát, melyért egy szerver felelõs, zónának nevezzük. Egy zónáért felelõs névszerverek közt van egy kitüntetett, amelyen az adminisztátor a konfigurációt változtatja. Az (esetleges) többi ezt a zónát tükrözi. A kitüntetett szerverre elterjedt kifejezés az 'elsõdleges', 'primary' a tükrözõ szerverekre pedig a 'másodlagos', 'secondary'. Újabban (elsõsorban a 8. változatú BIND megjelenésének hatására) inkább a master és a slave neveket használják. A master és slave név azért szerencsésebb, mert nem keveredik a rezolver konfigurációknál megadható 'primary'/'secondary' szerverekkel. Sajnos a 'slave' szerver kifejezés is használatos már régebben és más értelemben: az olyan szerverekre mondjuk hogy 'slave', amelyik csak forwarderek közvetítésével érintkezik az internet nagyobb részével. Egy szerver lehet egy zónára 'master' egy másikra 'slave'. Valójában gyakori is, hogy két intézmény kölcsönösen 'slave' autiritatív szerver a egymás zónáira. A névfeloldás szempontjából a 'master' és a 'slave' szerverek között semmi különbség nincsen: egyformán autoritatív mindegyik. A névszerverek a név feloldás során bármelyikhez fordulhatnak. A valóságban a kód úgy mûködik, hogy a szerverek egy-egy zóna autoritatív szerverei közül igyekeznek azt kérdezni, amelyik gyorsabban válaszol, aminek érdekében egy ravasz algoritmust használnak: kezdetben mindegyik névszervert megkérdezik, mérik a válaszidõt, aztán azt preferálják, ami gyorsabban válaszolt, de a lassabb szerverek idõvel újra szót kaphatnak, mert minden kérdésnél 'csökken a büntetésük'.

Forwarder szerverek

Egy névszerver gyakorlatilag kiegészítheti a cache-ét más szerverek cache-ével, ha a forwarder opciót használják a konfigurálásánál. Ha pl. kicsi.valahol.hu gépen a DNS konfigurációban megadják, hogy a nagy.valahol.hu forwarder legyen számára, akkor a kicsi-n történõ névfeloldás úgy zajlik, hogy ha a kicsi cache-ében nincs benne a kért név, akkor a kicsi DNS szerver mielõtt a világban a név-fa hierarchiának megfelelõ módon elkezdene érdeklõni , megkérdezi a nagy-ot. Ha annak a cache-ében megtalálható a keresett rekord, akkor válaszol, és így a kicsi gyorsan megtalálja a választ. Elképzelhetõ, hogy egy-egy intézménynél több kisebb szerver használ egy közös nagyobb forgalmú forwardert. Például nem csak a kicsi.valahol.hu, hanem a pici.valahol.hu is a nagy.valahol.hu-t. A több irányból érkezõ, több kérés hatására a nagy.valahol.hu-nak nagy cache-e keletkezik.

Slave szerverek

Az olyan szervert, ami csak forwardert (esetleg többet) használ a nevek feloldására, slave szervernek nevezzük. Slave szerverre van szükség tûzfal mögött, ahol a szervernek módja sincs, hogy közvetlenül kilásson az internetre. Ahogy már említettük ez a fajta 'slave' fogalom nem keverendõ össze a 'slave' fogalmával egy-egy zóna szempontjából: a forwarder(ek)re támaszkodó slave szerver korlátozott a látás szempontjából, egy-egy zóna slave szervere pedig az illetõ zóna mutatása, láttatása szempontjából.

Zónafájlok

A névszerverek az egyes zónák adatait általában egy-egy fájlban tárolják. A 'master' szerveren az adminisztrátor személy közvetlenül, vagy valamilyen program közvetítésével maga módosítja ezt a fájlt. A 'slave' szervereken a fájl a tükrözés eredménye.

A zónafájl rekordokból, RR-ekbõl (resource record) áll. Nagyon sok fajta rekordot tesznek lehetõvé az RFC-kben megadott definíciók. A következõkben ezek közül ismertetjük a legfontosabbakat.

A rekordok formáját az RFC1035 határozza meg, és az a következõ:

cimke ttl osztály típus adatok

A 'cimke' a domain rekord neve. Lehet üres, ilyenkor az elõtte levõ rekord cimkéje érvényes. A 'ttl' a rekordhoz tartozó time to live idõt adja meg másodpercben. Nem kötelezõ paraméter. Ha elhagyjuk, akkor a zónára vonatkozó alapértelmezés lesz a rekordhoz tartozó érték. A következõ paraméter értéke gyakorlatilag mindig IN, azaz internet osztály. Ez is elhagyható. A 'típus' mondja meg, hogy milyen fajta információról is van szó. Pl. IP cím (A rekord), name szerver információ (NS rekord) stb. Az 'adatok' mezõ a rekord típusától függõ információt tartalmaz.

Rekordok

SOA - Start of Authority rekord, zóna kezdõ rekord

A SOA rekord adja meg egy zónára vonatkozó közös információkat. A rekord formáját egy példán mutatjuk be:

valami.hu.  SOA       gep.valami.hu.       mester.valami.hu. (
                      1999093001           ;Serial nr.
                      86400                ;Refresh
                      1800                 ;Retry
                      604800               ;Expire
                      43200)               ;TTL

A cimke (valami.hu.) a zóna neve. A SOA kulcsszó utáni elsõ paraméter a zónához tartozó elsõdleges szerver domain neve. A második paraméter egy e-mail cím, melyet úgy kapunk, ha az elsõ olyan . karaktert, amit nem elõz meg backslash (\) , at jelre, @-ra cseréljük. A serial nr. a zóna sorszáma. Arra szolgál, hogy a slave (másodlagos) szerverek ellenõrizhessék, hogy a náluk levõ zóna tartalom nem avult-e el. Akkor töltik le az master (elsõdleges) szerverrõl a zóna tartalmát, ha a náluk levõ zóna sorszám kisebb. Arra kell tehát vigyázni az elsõdleges szerver adminisztrátorának, hogy ez a szám mindig növekedjen, ha valamit változtat, ha új változat keletkezik a zónából. Szokás ezt a sorszámot ÉÉÉÉHHNNVV alakban megadni, ahol ÉÉÉÉ az év négy jegyen, HH a hónap két jegyen, NN a nap két jegyen, VV a napon belüli változat két jegyen ábrázolva. Az ez után következõ négy paraméter mind másodpercben megadott érték. Az elsõ a refresh, a frissítés idõ azt mondja meg, hogy mennyi idõnként kell a slave szervereknek a master-tõl megkérdezni, hogy a zóna sorszáma mennyi, vagyis, hogy szükséges-e a zónát frissíteni náluk. A retry idõ azt mutatja, hogy ha a frissítés nem sikerült, akkor mennyi idõt várjanak, mielõtt újra próbálkoznának. Az expire azt mondja meg, hogy ha nem sikerül a master-rel kommunikálniuk, ennyi ideig szolgáltatják a zónát a világ számára. A TTL érték lesz a zóna rekordjaira érvényes alapértelmezés.

Figyelni kell rá, hogy észszerûen állítsuk be a zóna SOA rekordjában az idõ értékeket. A legtöbb esetben az 1 napos (86400) refresh, 1 órás (3600) retry, 1 hetes (604800) expire és 1 napos (86400) TTL megfelelõ. Ha gyors változás várható, akkor érdemes a TTL értéket kicsire venni. A dolog természetébõl adódóan súlyos zavarokat okoz, ha az expire idõ nem nagyobb mint a refresh: a másodlagos zóna nem fogja szolgáltatni az adatokat az idõ egy részében.

A 8-as változatú Bind-nál a másodpercben értendõ dimenzió nélkül megadott számok helyett használhatunk emberek számára könnyebben kezelhetõ mértékegységekben megadott számokat, ilyenformán:
1W2D3H

A W (week) heteket, D (day) napokat, H (hour) órákat jelent.

A - Address, cím rekord

Ez a leggyakrabban használt rekord, amely arra szolgál, hogy egy domain névhez IP címet rendeljünk. Például:

masina A 190.111.222.3

Sokszor használt tulajdonságát látjuk itt a zónafájlnak: nem írjuk ki egy domain (jelen esetben a masina) teljes domain nevét, csak annak elsõ részét. A végére oda kell érteni azt a vonatkoztatási rendszert, ahol éppen vagyunk. Ezt elõször is maga az a zóna adja meg, amire ez a fájl vonatkozik. Például ha a valami.hu zónáról van szó, akkor a 'masina' a végére biggyesztett pont nélkül úgy értendõ, mint masina.valami.hu. Ez a tulajdonság legtöbbször igen kellemes, mert például egy 200 A rekordot tartalmazó zóna esetében nem kell 200-szor megismételnünk a zónában, hogy 'egyik.valami.hu., masik.valami.hu.' hanem elég annyit írnunk 'egyik, masik'. Vigyáznunk kell azonban, mert könnyen elfelejtekezhetünk arról, hogy pontot kell tennünk a domain név végére, ha azt teljes egészében kiirjuk valahol. Figyeljük meg ebbõl a szempontból a SOA rekordra felhozott példát fentebb.

NS - Name Server, névszerver rekord

Ez a rekord szolgál arra, hogy egy domain névszervereit megadjuk. Ilyen módon a domain egy delegálási pont. Példa:

osztaly NS gep.osztaly.valami.hu.

Ezzel a rekorddal deklaráljuk, hogy az 'osztaly' aldomain névszervere a gep.osztaly.valami.hu. Ajánlatos - bár technikai értelemben nem kötelezõ - legalább két névszervert megadni. Ilyen módon a zóna adatai akkor is elérhetõk a világból, ha az egyik gép, vagy a hozzá vezetõ vonal valami miatt kiesne. A felsõbb szinten - példánkban a valami.hu zóna alatt -, nem látszik, hogy a szerverek közül melyik a master és melyik a slave. Szigorúan véve az NS rekordoknak csak a felsõbb szinten, az 'apuka' zónában van szerepe, indokolt azonban a zónában is felsorolni. Az NS rekord paramétere egy gép domain neve. Szükséges, hogy ehhez a névhez közvetlenül A rekord tartozzon. Elõ-elõfordul, de hibás CNAME rekorddal definiált domain nevet megadni.

Glue rekord

Gyakori, hogy a delegált zóna egyik name szervere éppen a zónában van, mint a fenti példában. A gep.osztaly.valami.hu rekordnak az osztaly zónában van a helye, de mégis szükség van arra, hogy egy szinttel feljebb, a valami.hu zónában is felsoroljuk, különben csapdába kerülünk. Ezért fel kell vennünk egy nem oda való A rekordot:

gep.osztaly A 190.1.2.3

Az ilyen, idegen A rekordot nevezik glue (ragadvány) rekordnak. Elõfordul, hogy adminisztrátorok akkor is felsorolnak nem a zónába való A rekordot, amikor az nem egy onnan delegált aldomainban van, ez hiba. Semmi haszna és zavart okoz. Tehát például ha az osztaly.valami.hu zónának egy másik névszervere a mas.nevszerver.intezet.hu, akkor ehhez nem kell glue rekordot csatolni a valami.hu zónában, hiszen ennek a névszervernek az A rekordját ettõl a delegálástól teljesen függetlenül lehet megtudni.

Lame delegálás

Ha valahova delegálunk egy zónát, akkor az ottani adminisztátorral meg kell beszélnünk, hogy azt folyamatosan szolgáltassa is. Ha ez nem történik meg, akkor beszélünk 'lame' delegálásról. Sokszor elõfordul például amiatt, mert a delegált zóna slave szervere nevet változtat, vagy meg is szûnik, és errõl elfelejtik értesíteni a felettes zóna gazdáit.

CNAME - Canonical Name, kanonikus név rekord

Ez a rekord arra való, hogy egy hostnak becenevet adjunk. Például:

www CNAME gep

Ha ez a rekord van mondjuk a valahol.hu zónában, az azt mutatja, hogy a www.valahol.hu egy másik neve a gep.valahol.hu-nak. Nagyon hasznos az ilyen név például a következõ esetben: tegyük fel, hogy egy idõ után a gep.valahol.hu meg is szûnik, és a szolgáltatást az ujdivat.valahol.hu veszi át. Ilyenkor elég csak a CNAME rekordot módosítani, így:

www CNAME ujdivat

A világ számára a valahol.hu web lapjai továbbra is a www.valahol.hu gépen lesznek elérhetõk. Az is gyakori, hogy egy gép több funkciót is ellát, és a funkciók mindegyikéhez tartozik egy-egy CNAME rekord, ami ugyanarra a gépre mutat. Például news.valahol.hu, ftp.valahol.hu mind mutathatnak ugyanoda.

Mint látjuk, a CNAME rekord paramétere egy domain név. Általában ez a név már A rekorddá oldható fel. Megengedett, de nem ajánlatos a CNAME-ra mutató CNAME rekord.

MX - Mail eXchanger, levelezõ szerver rekord

Ez a rekord szolgál arra, hogy egy domainba érkezõ levelek levelezõ szerverét kijelölje. A rekord formátuma egy példán:

valahol.hu.	MX      10      masina.valahol.hu.
                MX      20      mas.mashol.hu.

Ezek a sorok azt jelentik, hogy a valaki@valahol.hu alakú címre érkezõ leveleket a masina.valahol.hu, vagy a mas.mashol.hu. gépekre kell küldeni. Az MX rekordok elsõ paramétere egy szám, ami a rekord preferenciát jelenti. Kötelezõ paraméter, de csak akkor van jelentõsége, ha több MX rekord tartozik ugyanahhoz a névhez: kisebb szám nagyobb preferenciát jelent. Példánkban tehát csak akkor fogják a levelezõ szerverek a mas.mashol.hu-ra küldeni a valahol.hu domainba szóló leveleket, ha a preferáltabb masina.valahol.hu nem elérhetõ. Lehetséges több MX rekordot egyenlõ preferenciával megadni. Ilyenkor véletlenszerû, hogy melyikre érkezik be egy-egy levél. Az MX rekord második paramétere egy domain név. Fontos, hogy ehhez a névhez már A rekord tartozzon. Nem megengedett olyan domain nevet magadni, ami csak egy CNAME-ra, vagy másik MX-re mutat.

Az MX rekord gyakori alkalmazása, amikor egy intézményben egységes, egyszerûsített, és könnyen megjegyezhetõ levélcímeket vezetnek be a segítségével. Például a Firma cégnél kovacs.janos@firma.hu alakú levelezési címe lehet mindenkinek, ha a firma.hu MX rekord egy - akár idõben változó - levelezõ szerverre mutat, ahol aztán feloldják a levél cím elsõ részében a név aliast, esetleg tovább küldik a levelet egy másik szerverre.

TXT - Text, szöveges rekord

Ez a rekord tetszõleges szöveges információt tartalmazhat. Példa:

modern     TXT    "Ez a gep mar megszunt"

A TXT rekord paramétere egyetlen, idézõjelek közé zárt ASCII karaktersorozat.

HINFO - Hardware information, hardver információ rekord

Akárcsak a TXT rekord ez a rekord is emberi olvasásra szánt, egy számítógéprõl nyújt felvilágosítást. Példa:


masina	HINFO	VAX    VMS-4.7

Mint látható, két paramétere van. Az elsõ a hardver típust, a második az operációs rendszert szokta jelölni.

PTR - Pointer rekord

Ahogy arról már szó volt, nem csak név-cím, hanem cím-név hozzárendelésre is szükség van. Ezt a szolgáltatást elsõsorban nem emberek, nem is kliens programok, hanem szerver programok használják, annak kiderítésére, hogy egy hozzájuk érkezett IP csomag milyen domainhoz is tartozik. DNS rendszerben az in-addr.arpa domain alá tartozó ág szolgálja a cím-név felosztást. Itt a zónák delegálása az IP címtartomány egyes darabjainak megfelelõen történik. Példa:


140.in-addr.arpa.	NS	...

Ez a zóna a 140.x.y.z alakú IP címek inverz domain név szolgáltatásánál játszik szerepet. Ha egy intézmény egy C osztályú címet kap, vagyis gazdálkodhat pl. a 192.84.124.x alakú címekkel, akkor célszerû, ha nála van a 124.84.192.in-addr.arpa zóna elsõdleges névszervere is. Ebben a zónában vannak azután a PTR rekordok. Például:


22	PTR	gep.valahol.hu.

A PTR rekord egyetlen paramétere az a domain név, ami az illetõ IP címhez tartozik. A paraméterként megadott domain név A rekorddá kell forduljon az 'egyenes' feloldáskor.

Amikor egy domain-adminisztrátor - elterjedt kifejezéssel 'hostmaster' - egy gépnek, vagy valamilyen hálózati interfésznek nevet, és IP címet oszt, fontos, hogy gondoskodjon az inverz feloldásról is: általában párhuzamosan van szükség egy-egy A rekord és PTR rekord bejegyzésére. A dolog természete miatt az 'egyenes' és az inverz zónák nem járnak feltétlenül együtt. Ha az osztaly.intezet.hu zónát kezeljük, és gazdálkodunk egy IP címtartománnyal, akkor nem nyilvánvaló, hogy mi is a kiosztott IP címekhez tartozó inverz zóna, vagy hogy azt egyáltalán mi kezeljük. Kezdõ domain név adminisztrátoroknál gyakori hiba, hogy elfelejtkeznek az inverz domainról. A DNS hierarchikus szerkezetébõl következik azonban, hogy bárki számára egyértelmûen kideríthetõ, hogy ki is a felelõs az általunk osztott IP címekhez tartozó in-addr.arpa zónáért. Neki kell azután szólni, hogy a megfelelõ bejegyzést végezze el, vagy delegálja tovább a zóna egy darabját nekünk. Például ha a 'host' parancsot használjuk a DNS nézegetésre, és arra vagyunk kiváncsiak, hogy kinek is kell bevezetni a 202.103.132.169 IP címhez tartozó inverz rekordot, akkor a következõ láncon haladhatunk:


%host -t any 202.in-addr.arpa
202.in-addr.arpa   	NS	NS.RIPE.NET
202.in-addr.arpa   	NS	NS.TELSTRA.NET
202.in-addr.arpa   	NS	NS.APNIC.NET
202.in-addr.arpa   	NS	SVC00.APNIC.NET
202.in-addr.arpa   	SOA	NS.APNIC.NET inaddr.APNIC.NET (
			1999091501	;serial (version)
			86400	;refresh period (1 day)
			7200	;retry interval (2 hours)
			2592000	;expire time (4 weeks, 2 days)
			345600	;defaultttl (4 days)
			)

Tehát a 202.x.y.z alakú IP címekhez tartozó invez zónákat az ns.apnic.net gépen kezelik, és szolgáltatja még három másik name szerver.

Haladjunk tovább:


%host -t any 103.202.in-addr.arpa
103.202.in-addr.arpa	NS	ns.telstra.net
103.202.in-addr.arpa	NS	svc00.apnic.net
103.202.in-addr.arpa	SOA	ns.apnic.net    inaddr.apnic.net (
			1999081001	;serial(version)
 			86400	;refresh period (1 day)
			7200	;retry interval (2 hours)
			2592000	;expire time (4 weeks, 2 days)
			345600	;default ttl (4 days)
			)

A 202.103.x.y alakú IP címek zónájának hazája ezek szerint szintén az ns.apnic.net.

És itt:


%host  -t any 132.103.202.in-addr.arpa
132.103.202.in-addr.arpa does not exist, try again

és:


%host -t any 169.132.103.202.in-addr.arpa
169.132.103.202.in-addr.arpa does not exist, try again

Vagyis a helyzet kulcsa annak a személynek a kezében van, akit az inaddr@apnic.net címen érhetünk el: vagy tovább kell delegálnia megfelelõ helyre a 132.103.202.in-addr.arpa zónát, vagy neki kell bevezetnie a 169-es IP címhez tartozó PTR rekordot.

De Groot féle inverz feloldás

A klasszikus interneten az IP címeket A, B, és C osztályú hálózati darabokban osztották, és amikor egy intézmény egy címtartományt kapott, pontosan meg lehetett mondani, hogy melyik
a.in-addr.arpa, b1.b2.in-addr.arpa vagy c1.c2.c3.in-addr.arpa zóna tartozik a kapott címtartományhoz. Ennek a delegálását kellett az intézmény adminisztrátorának kérnie, és ettõl kezdve könnyen kezelhette az egyenes és in-addr.arpa zónáit. A CIDR (Classless Inter-Domain Routing) elterjedésével gyakori, hogy egy-egy intézmény például csak egy negyed részét kapja meg egy C osztályú címnek. Az ilyen címtartományt úgy szokás jelölni, hogy a legkisebb használható cím után / jellel elválasztva megadjuk a tartományt jellemzõ bitmaszk egyeseinek számát. Például: 193.225.86.128/26 jelenti a 193.225.86.128-tól 193.225.86.191-ig terjedõ címtartományt. Elõfordulhat ilyen módon, hogy egy C osztályú cím 4 vagy még több egymástól távol esõ intézmény között oszlik meg. Ha az ilyen tartományhoz tartozó inverz domaint a hagyományos módon szeretnénk kezelni, akkor minden intézménynek egy központi helyen kellene a PTR rekordjait beiratni. Ez bonyolult és kellemetlen. Sokkal jobb, ha - mint a klasszikus esetben - minden intézmény saját maga jegyezheti be a saját PTR rekordjait. A problémára Geert Jan de Groot adott megoldást, és azt az RFC2317 írja le. A megoldás a DNS technika szellemes alkalmazását mutatja.

A darabokra szabdalt C osztályú címhez tartozó in-addr.arpa zónában nem vezetünk be PTR rekordokat, viszont minden egyes rekordhoz bevezetünk egy CNAME rekordot. Ez a CNAME rekord olyan domain névre mutat, ami a címet birtokló intézmény adminisztrátora definiál. Például ha a 193.225.86.0 hálózatról van szó, akkor a 86.225.193.in-addr.arpa zónába bevezetünk 256 CNAME rekordot. Ezek jobb oldalán elvben tetszõleges domain név lehet, de szokás olyat megadni, ami az illetõ címtartomány kezdetét és nagyságát is jelzi, ilyenformán:

131.86.225.193.in-addr.arpa. CNAME 131.128/26.86.225.193.in-addr.arpa.

Az egyes kiosztott IP címtartomány darabokhoz megfelelõen delegált in-addr.arpa-beli zónák tartoznak. Például a fenti esetben:


128/26.86.225.193.in-addr.arpa.	NS	ns.intezmeny.hu.

Ilyen módon a C osztályú címhez tartozó zónában a címek kiosztása után egyszer s mindenkorra rögzíteni lehet a bejegyzéseket, a kis címtartományt birtokló helyen pedig csak arra van szükség, hogy az inverz zóna neve c1.c2.c3.in-addr.arpa alak helyett cim/maszk.c1.c2.c3.in-addr.arpa alakú legyen. Ebbe a zónába aztán éppen úgy kell PTR rekordokat felvenni mintha teljes C osztályú címhez tartozna a zóna. Például:


131	PTR	bagoly.intezmeny.hu.

Ha ez a rekord a 128/26.86.225.193.in-addr.arpa. zónában van, akkor a fenti CNAME rekorddal együtt két lépcsõben feloldást ad a 131.86.225.193.in-addr.arpa domain névre, melynek eredménye bagoly.inetzmeny.hu.

BIND - Berkeley Internet Name Domain

BIND a neve az interneten leggyakrabban használt DNS implementációnak. A program elsõsorban unix típusú gépeken fut, de van pl. NT-s változata is. Fejlesztését az Internet Software Consortium támogatja, és a BIND 'apukája', Paul Vixie koordinálja. A BIND program forráskódban is szabadon letölthetõ az ftp.isc.org szerverrõl.

BIND változatok

E sorok írásakor a BIND kurrens változata 8.2.2. Használatosak azonban ennél sokkal régebbi változatok is. Jelentõs ugrást jelentett 1998-ban a 4.9.x változatok után a 8.x változatok megjelenése. Ekkor a konfigurációs fájl szintaxisa is, a fõ konfigurációs fájl neve is megváltozott.

4.9.x konfiguráció

Ezen változatok konfigurálásának archimedeszi pontja az /etc/named.boot fájl. Ebben kell leírni azt, hogy milyen zónákra elsõdleges vagy másodlagos a szerver, és hogy a zónák milyen fájlokban tárolódjanak. Például:


;
tipus           domain                  source
;

primary         valahol.hu              valahol.zona
primary         1.2.199.in-addr.arpa    inverz.zona
secondary       amicus.hu                192.84.3.4      amicus.zona

Láthatjuk, hogy a primary kulcsszó után két paramétert kell megadnunk: a zóna nevét, és a fájlt, ami a zóna adatait tartalmazza. A secondary kulcsszóhoz három paraméter tartozik: a zóna neve, a név szerver(ek) ami(k)rõl a zónát tükrözni kell, és a fájlnév, ahova a tükrözött adatokat mentjük.

A 4.9.x konfigurációk fontos sorai még:


directory	/var/named
cache		.		root.cache

A directory kulcsszó után megadott könyvtárhoz relatívan helyezkednek el a konfigurációban megadott fájlok.

A cache direktíva arra szolgál, hogy a gyökér névszerverek neveit és címeit tartalmazó fájlt megadjuk. A névfeloldás - a szerver látó funkciója -, úgy fog zajlani, hogy ebbõl a fájlból veszi a szerver a root szerverek adatait. A root szerverek száma egyre bõvül. E sorok írásakor 13 névszerver autoritás az interneten a . zónára. Fontos, hogy a root név szerverek listáját naprakészen tartsuk. A mindenkori lista megszerezhetõ a DNS segítségével. Ha például a host parancsot használjuk, akkor a következõ parancs a friss.cache fájlba teszi az aktuális listát:

host -v -t ns -l . >friss.cache

A DNS gyökeréért felelõs névszerverek listája letölthetõ ftp-vel is például az ftp.internic.net szerverrõl: ftp://ftp.internic.net/domain/named.root

8.x konfiguráció

A nyolcas változatú BIND-ok konfigurálásának archimedeszi pontja az /etc/named.conf fájl. Ennek sokkal bonyolultabb lehet a szerkezete, árnyaltabb feltételek megfogalmazására ad módot, mint egy 4.x konfiguráció. Ha valaki 4.x változatról 8.x-re akar áttérni, a named.boot fájl helyett az új szintaxisú named.conf-ra van szüksége. A 8-as disztribúció tartalmaz egy perl scriptet, ami automatikusan konvertál egy named.boot-ot named.conf-ra. Persze egy ilyen konfiguráció messze nem meríti ki az összes lehetõséget a lehetséges, és hasznos finomságokat illetõen. Amint láttuk, a named.boot/named.conf fájl csak a kiindulási pontja a konfigurációnak: a tényleges DNS rekordok ettõl különbözõ zóna fájlokban vannak. Ezek formátuma nem változott, nem is nagyon változhat: ami abban van, azt RFC írja le, nem implementációs kérdés.

A következõkben ismertetjük a 8.x konfiguráció néhány elemét.

Options utasítás

Ezzel az utasítással a konfiguráció egészére állíthatunk be tulajdonságokat, alapértelmezéseket. Példa:


Options
{
directory        "/usr/local/named";
named-xfer       "/usr/local/sbin/named-xfer";
notify           yes;
check-names      master fail;
check-names      slave warn;
check-names      response ignore;
recursion        yes;
transfers-in     20;
allow-transfer   {"amici";};
allow-query      {"anybody"};
listen-on        192.84.225.2;
}

A directory opció egy könyvtárra mutathat. A konfigurációban szereplõ fájlnevek ehhez a könyvtárhoz relatívan értendõk.

A named-xfer opciónak akkor van jelentõsége, ha szerverünk slave (másodlagos) bizonyos zónákra. Ilyenkor a named-xfer opcióval annak programnak a nevét adhatjuk meg, amelyik a zónatranszfert végzi.

A notify egy új, és igen hasznos elem a 8. BIND-okban. Mód van arra, hogy a slave szerverek azonnal értesítést kapjanak, ha a zóna változott. Így nem kell kivárni amíg a SOA rekordban meghatározott 'refresh' értéknek megfelelõ idõzítés lejár, a slave szerverek azonnal kezdeményezhetik a frissítést. Persze ez feltételezi, hogy a slave olyan BIND-ot futtat, ami ezt támogatja. Önmagában ez a tulajdonság is indokolja, hogy ne futtassunk 4.x változatú BIND-ot, hanem térjünk át frissebb változatra.

A check-names opció azt szabályozza, hogy ha a konfigurációs hibával szembesül a program, hogyan viselkedjen. Külön lehet szabályozni, mit tegyen, ha a saját master (elsõdleges) zónáiban, a slave (másodlagos) zónákban, vagy egy kérdésre adott válaszban talál hibát. Mindegyik esetben három értéket lehet megadni:

Ajánlatos legalább 'master' zónákra beállítani a 'fail' értéket. Így ha elrontjuk a zónafájlt, akkor szerverünk egyáltalán nem szolgáltatja, ezáltal hamar felfedezzük a hibát, és módunk lesz kijavítani.

A recursion opció azt határozza meg, hogy szerverünk csak láttat (az autoritatív zónákról nyújt információt), vagy hajlandó klienseknek kérdéseket megválaszolni a többi DNS szerverrel való kommunikáció révén. A TLD-ket szolgáltató szerverek általában nem rekurzívak.

A transfers-in, transfers-out opciókkal azt szabályozhatjuk, hogy egy idõben hány zónatranszfer mûködhessen be, illetve kifele.

Az allow-transfer opcióval meghatározhatjuk, hogy kinek engedjük meg egész zónák elvitelét. Azoknál a zónáknál van ennek jelentõsége, amelyekre autoritatívak vagyunk. Természetesen meg kell engedni a slave zónáknak, hogy a master-tõl elvigyék a zónát. Ezen kívül azonban megtilthatunk minden zónatranszfert. Régen, amikor nem volt olyan sok a visszaélés az interneten, minden name szerverrõl le lehetett tölteni bárhova a zónákat. Ezen alapulnak például az internet host count-ok és statisztikák: az internet bármely pontjáról meg lehet(ett) csinálni, hogy a root szerverektõl kezdve bejárja egy program az egész név-fát, minden zónáról zónatranszfert kér, és például összeszámlálja az A rekordokat (ez a host count statisztika). Amikor ezek a sorok íródnak nagyon sok name szerver adminisztrátor korlátozza a zónatranszfert, és így kétes eredménnyel járna, akár csak a .hu alatti A rekordok összeszámlálása is. Az allow-transfer opció paramétere egy acl (access control list), egy címlista. A címlistában hálózatokat, IP címeket sorolhatunk fel ilyenformán:


acl
amici {
  199.2.2.4;
  192.3.4.5;
  195.2.3/24;
};

Az elsõ két sor két IP címrõl - a slave-ekrõl -, engedi meg a zónatranszfert. A harmadik sorban a /24 egy bitmaszkot jelent: a 193.2.3. hálózat bármely gépének megengedjük a zónatranszfert. Az így definiált lista nevére aztán hivatkozhatunk más utasításokban (pl. options/allow-transfer, zone ). Az acl utasításnak azonban meg kell elõznie a névre való hivatkozást.

Az allow-query opcióval korlátozhatjuk, hogy honnan jövõ kéréseket válaszoljon meg szerverünk. Paramétere ennek is egy címlista.

Az options utasításban megadott 'allow-transfer' és 'allow-query' opciót az egyes zónák definiálásánál hasonló szintaxisú utasítással felülbírálhatjuk.

A listen-on opciónak akkor van jelentõsége, ha több IP címe van szerverünknek: meghatározhatjuk, hogy melyik IP címekre érkezõ kérdésekre válaszoljon. Alapértelmezésben mindegyiken elérhetõ a DNS szerver.

A 4.x konfigurációnál használt 'primary' és 'secondary' és 'cache' utasításokat a zone utasítás váltotta fel. Példák:


zone valami.hu  {
type  master;
file  "valami.hu";
allow-transfer  {"amici";};
};


zone mas.hu {
type slave;
masters { 192.2.3.4;
	  193.4.3.2;
	  }
file "sec/mas.hu";
}

zone "." {
type hint;
file "root.hints";
};

A valami.hu-ra elsõdleges (master) a mas.hu-ra másodlagos (slave) szerverek vagyunk. A valami.hu zónát a valami.hu fájlban kell prezentálnunk a szervernek. A mas.hu zónát a szerver a sec alkönyvtár mas.hu nevû fájljába kérjük. A valami.hu zónánál felülbíráltuk az 'options'-ban megadott alapértelmezését a zónatranszfer engedélyezésnek: itt csak az 'amici' nevû címlista tagjainak engedjük meg az átvitelt. A mas.hu zónánál két 'master' szervert is felsoroltunk. Ezek közül értelemszerûen (legalább) az egyik szintén 'slave', vagy ugyanannak a 'master' szervernek két különbözõ IP címérõl van szó. A 'masters' utasításban megadott IP címek sorrendje prioritást jelent: elsõsorban az elsõrõl szinkronizálja a szerver a zónát, ha az nem sikerül, akkor megy tovább a listán. Általában nem érdemes több IP címet megadni, de hasznos lehet, ha komoly esély van arra, hogy az elsõrõl nem sikerül szinkronizálni. A gyökér szerverekre vonatkozik a 'hint' típusú zóna. Az itt megadott fájl-ba (root.hints) tegyük a root name szerverekre vonatkozó NS és A rekordokat.

Hasznos segédprogramok

A DNS adatok lekérdezésének klasszikus eszköze az nslookup. Ez a program szinte minden operációs rendszernek szabványos része. Vannak azonban szabadon terjeszthetõ alternatívái, amiknek talán kényelmesebb a felhasználói felülete, és a DNS kérdezésen kívül sok mást - például hibafelderítést - is közvetlenül támogatnak.

Host

Ennek a programnak több változata is elterjedt. Igen jó, sokat tudó és folytonosan fejlõdõ az Erik Wassenar féle. Kurrens változata letölthetõ az ftp.nikhef.nl-rõl. Érdemes letölteni és installálni a friss változatot akkor is, ha operációs rendszerünk már tartalmazná a program valamely változatát. A BIND disztribúcióval is jön egy változat, de általában az sem elég friss.

Dig

A Dig hasonló célokat szolgál, mint a host. Ízlés és szokás kérdése, hogy ki melyiket használja.

Grafikus DNS adminisztációs segédletek

Felmerül az igény, hogy ne kézzel editáljuk a DNS konfigurációs fájlokat, hanem pl. egy grafikus felületen át. Erre több megoldás is készült. Egyik ezek közül a Webmin. Ez több rendszeradminisztrációs feladatra - többek közt DNS adminisztációra - alkalmas web-es felületet nyújtó eszköz. Otthona: http://www.webmin.com/webmin/

Megjegyzendõ, hogy az ilyen eszköz nem pótolja a hozzáértést.

Regisztrálás a .hu TLD és a .hu alatti közcélú SLD-k alatt

A .hu alatti regisztálás feltételeit e sorok írásakor (1999. november) az Internet Szolgáltatók Tanácsa szabályozza. Létrejött néhány közcélú második szintû (SLD) domain: org.hu, co.hu, info.hu stb. Az ezek alatti és a .hu alatti domain név igénylésrõl részletes tájékoztató olvasható a www.nic.hu web lapokon. A lényeg az, hogy van egy sor szolgáltató, akiknél egyformán be kell tartani néhány formai és technikai szabályt, de a szolgáltatás díját a szolgáltatók önállóan, egymással versenyben állapítják meg.

Az egyik formai szabály, hogy .hu alatt csak olyan nevet lehet regisztálni, ami az igénylõ neve, nevének rövidítése vagy valamilyen védjegye.

Két fõ technikai szabály:

Példák

Néhány példa konfigurációs fájl következik, a sorok között magyarázatokkal.
Named.conf fájl csak látó, nem láttató (caching-only) szerver számára:


options {
          directory "/usr/local/named";
          recursion yes;
};

zone "." {
          type hint;
          file "root.hints";
};

zone "0.0.127.in-addr.arpa" {
          type master;
          file "127.0.0";
};

Named.conf láttató szerver számára:
/*
   Elsõdleges a valahol.hu és a 193.111.222
   C osztályú címtartomány inverze számára, másodlagos
   a mas.hu zóna számára. Szükséges fájlok még:
   root.hints  -  a root szerverek adataival
   valahol.hu  -  a szükséges NS, A, stn. rekordokkal
   193.111.222 -  a szükséges PTR rekordokkal
   127.0.0     -  a loopback hálózat számára
*/

  options {
          directory "/usr/local/named";
          recursion yes;
          notify yes;
          check-names slave warn;
          check-names master fail;
          allow-transfer {"slaves";};
};

/* csak két címrõl engedünk meg zónatranszfert: */

acl "slaves" {
  193.222.111.1;
  193.111.222.5;
};


zone "." {
          type hint;
          file "root.hints";
};

zone "0.0.127.in-addr.arpa" {
          type master;
          file "127.0.0";
};

zone "valahol.hu" {
          type master;
          file "valahol.hu";
};
zone "222.111.193.in-addr.arpa" {
          type master;
          file "193.111.222";
};

zome "mas.hu" {
          type slave;
          masters { 193.111.222.5;}
          file "sec/mas.hu";
};

A 0.0.127.in-addr.arpa zónára a következõ fájl elegendõ:
@            SOA     ns.valahol.hu. hostmaster.valahol.hu. (
                     1999091001       ; Serial
                     86400   ; Refresh
                     7200    ; Retry
                     604800  ; Expire
                     86400)  ; Minimum TTL
             NS      ns.valahol.hu.

1            PTR     localhost.

A valami.hu fájl lehet ilyen:

@            SOA     ns.valahol.hu. hostmaster.valahol.hu. (
                     1999091001       ; Serial
                     86400   ; Refresh
                     7200    ; Retry
                     604800  ; Expire
                     86400)  ; Minimum TTL
             NS      ns.valahol.hu.
             NS      ns.mas.hu.
ns           MX      10 masina.valahol.hu.
masina       A       193.111.222.1
ns           A       193.111.222.3
www          CNAME   masina

A 193.111.222 fájl lehet ilyen:

@            SOA     ns.valahol.hu. hostmaster.valahol.hu. (
                     1999091001       ; Serial
                     86400   ; Refresh
                     7200    ; Retry
                     604800  ; Expire
                     86400)  ; Minimum TTL
             NS      ns.valahol.hu.
             NS      ns.mas.hu.
1            PTR     ns.valahol.hu.
3            PTR     masina.valahol.hu.

Források az interneten

DNS-sel kapcsolatos RFC-k. Elérhetõk például itt: ftp://ftp.sztaki.hu/pub/nic/rfc

News csoportok:

Ez a news csoport a bind-users@isc.org lista tükörképe. A lista archívuma:
http://www.isc.org/ml-archives/bind-users/index.html

A bind lapjai: http://www.isc.org

A Bind Operations Guide, a BOG. Része a Bind disztribúciónak, de letölthetõ külön is:
http://www.dns.net/dnsrd/docs/bog

DNS-sel kapcsolatos információk: http://www.dns.net

Kitûnõ és olvasmányos könyv a DNS-rõl:
Cricket Liu & Paul Albitz: DNS and BIND
O'Reilly kiadó

A .hu alatti regisztrálásról: http://www.nic.hu

A linux disztribúciók DNS HOWTO-ja minden disztríbúciónak része. Letölthetõ pl. innen: ftp://ftp.kfki.hu/pub/linux/sunsite.unc.edu/docs/HOWTO/DNS-HOWTO