27.4. DNS komponensek

A tartománynevek rendszerének három fő komponense:

27.4.1. Tartománynevek tere

Fa típusú gráf, melyben minden csúcs egy erőforráshalmazt reprezentál.

A csúcsokhoz egy (max. 63 bájt hosszúságú) címkét rendelünk.

  • Két testvér csúcs címkéje nem lehet azonos.

  • A zéró hosszúságú címke („null címke”) a gyökér számára kizárólagosan foglalt.

  • Címke belső reprezentációja:

    A címke hossza egy bájton.
    A megfelelő karaktersorozat (bájtsztring).

  • A kis- és nagybetűk között nem teszünk különbséget, de célszerű megtartani a forrás írásmódját.

27.4.1.1. Abszolút tartománynevek

Gráfelméleti alapok DNS alkalmazása:

  • A tartománynevek terében bármely csúcs egyértelműen reprezentálható a csúcstól a gyökérig vezető utat leíró címkesorozattal (abszolút tartománynév).

Abszolút tartománynév belső reprezentációja:

  • Maximum 255 bájt hosszúságú.

  • A címkéket sorrendhelyesen konkatenáljuk.

  • Szükségképpen NULL karakterrel (0 bájttal) végződik.

Tartománynevek reprezentációja felhasználói interfészeknél:

  • Címkesztring sorozat, elválasztó karakter a pont (.)

  • Lehet abszolút és relatív.

27.4.1.2. Tartománynév-tér példa

Példa tartománynév-térre

Abszolút név felhasználói specifikációja pl.:

vaxa.isi.edu.

Relatív név felhasználói specifikációja pl.:

vaxa (relatív az isi.edu.-hoz képest)
vaxa.isi (relatív az edu.-hoz képest)

vaxa.isi.edu. belső reprezentációja (hexadecimális forma):

0476617861036973690365647500

27.4.2. Erőforrás rekordok

A tartománynevek egy csomópontot specifikálnak.

A csomópontokhoz egy erőforrás-halmaz társítható.

Az információs erőforrások ún. erőforrás rekordokban (Resource Record, RR) tárolódnak.

Az erőforrás rekordok sorrendje lényegtelen.

Az erőforrás rekordok mezői:

tulajdonos
osztály
típus
élettartam
adat

27.4.2.1. Erőforrás rekordok szerkezete

Tulajdonos: Az a tartománynév, amelyhez a RR tartozik.

Osztály: 16 bites érték, mely egy protokollcsaládot, vagy egy protokollt azonosít.

IN: az internet protokollcsalád
CH: A Chaos protokollcsalád

Élettartam (TTL): 32 bites érték: A RR max. felhasználhatósági ideje (sec).

Típus: 16 bites érték a típus szerinti tagoláshoz.

A legfontosabb erőforrásrekord-típusok és jelentésük: 

AA tulajdonos hálózati címe.
CNAMEEgy alias névhez kanonikus név rendelése.
HINFOCPU, op. rsz. információk meghatározása.
MXLevélforgalmazó (mail exchange) megadása.
NSNévszerver rendelése a tartományhoz.
PTRPointer a névtér egy másik területére.
SOAHitelességi (authority) zóna specifikációja.

Érték (RDATA): A típustól függően értelmezendő bitsorozat (adat).

TípusAdat
A32 bites IP cím (IN osztály esetén).
CNAMETartománynév.
HINFOTetszőleges sztring.
MX16 bites prioritás érték és egy tartománynév.
NSEgy host tartományneve.
PTREgy tartománynév.
SOATöbb mezőből álló rekord.

27.4.3. A tartománynév-tér partícionálása

A tartománynevek tere két (természetes) módon darabolható:

  • Az osztálytagozódás alapján.

    A különböző osztályok parallel névtér-faként foghatók fel.

  • A tartománynév-tér (fa) éleinek átvágásával.

    Ha a tartománynevek terében bizonyos éleket „átvágunk”, akkor a maximálisan összefüggő részgráfok szintén fa struktúrájúak.
    Egy ilyen maximálisan összefüggő részgráfot zónának nevezünk.
    Egy zóna reprezentálható a gyökérhez legközelebbi csúcsának tartománynevével.
    A zónák közötti „átvágásokat” nyilván kell tartanunk.

27.4.4. Névszerverek

A névszerverek olyan szerverprogramok, melyek:

  • Információt tárolnak a tartománynevek gráfjáról.

  • Tartománynevekhez tartozó erőforrás rekordokat tárolnak.

    • Egy (vagy több) zónához tartozó valamennyi csomópont hiteles (authoritative) erőforrás rekordját.

      A zóna gyökérhez legközelebbi csúcsát leíró adatokat.

    • Szomszéd (gyermek) zónákhoz (és ezek névszervereihez) vezető információkat.

    • Időlegesen más zónákhoz tartozó RR-t (cache).

  • Kérdéseket (lekérdezéseket) válaszolnak meg.

    Rekurzív módon
    Nem rekurzív (iteratív) módon

27.4.4.1. DNS kérdések

A lekérdezések és válaszok egy standard formátumot követnek:

  • Fejrész. Egy bitkombináció a különböző kérdések (pl. standard query, status query stb.) elkülönítésére.

  • Kérdés. A kérdéses név, és a kérdés egyéb paraméterei.

  • Válasz. A kérdéshez tartozó direkt válasz.

  • Hitelesség. A hiteles szerverek adatait leíró rekordok.

  • További adatok. A kérdéshez kapcsolódó egyéb információk (RR).

DNS kérdés példa. 

Fejrész

OPCODE=Standard Query

Kérdés

QNAME=ISI.EDU.    CLASS=IN    TYPE=MX

Válasz

Hiteles

További

DNS válasz példa. 

Fejrész

OPCODE=Standard Query, Response, AA

Kérdés

QNAME=ISI.EDU.    CLASS=IN    TYPE=MX

Válasz

ISI.EDU    86400    IN    MX    VAXA.ISI.EDU.

Hiteles

További

VAXA.ISI.EDU    IN    A    10.2.0.27
                                  A    128.9.0.33

27.4.4.2. Rekurzív és nem rekurzív módszer

Nem rekurzív módszer:

  • Szerver oldalon a legegyszerűbb megvalósítás.

  • Minden névszerverben implementált.

  • A kliensnek lehetősége nyílik az információk értékelésére.

Rekurzív módszer:

  • Kliens oldalon a legegyszerűbb megvalósítás.

  • A szerveren megvalósítható átmeneti tárolás (cache).

  • Opcionális, mind a szerveren, mind a kliensen implementált-nak kell lennie.

    A szerver minden válaszában egy bit (RA) jelzi az implementációt.
    A kliens a kérdésben egy bittel (RD) jelzi a rekurzív igényt.

27.4.5. Címfeloldó (resolver) programok

A címfeloldó programok a felhasználói programok és a névszerverek közötti interfészek.

A címfeloldás ideje lehet kicsi (millisec.) pl. helyi adatokból felépített válasz esetén, de lehet nagy (több sec.) névszerverek adatait kérdezve.

A címfeloldás kliens oldala általában platformfüggő.

Általános funkciók:

Gépnév → gépcím meghatározás
Gépcím → gépnév meghatározás
Általános lekérdezési funkció

27.4.5.1. Címfeloldási eredmények

A címfeloldók az igényelt tevékenység elvégzése után (általában) a következő eredményekkel térhetnek vissza:

  • Egy vagy több RR, a választ tartalmazva

  • Névhiba (Name Error, NE)

    A kérdezett név nem létezik.

  • Adat nem található (Data Not Found)

    A név létezik, de a kérdezett adat (vagy típus) nem.

  • Átmeneti hiba

    Például valamilyen hálózati hiba (vonalhiba) miatt a kérdezett zóna nem elérhető.
    Gyakran nem implementálják külön válaszként.