DNS (Domain Name System)

botond küldte be 2018. 06. 22., p - 21:26 időpontban

A DNS (Domain Name System, azaz tartománynévrendszer) egy hierarchikus decentralizált elnevezési rendszer számítógépekhez, szolgáltatásokhoz vagy más erőforrásokhoz, amelyek az internethez vagy egy magánhálózathoz kapcsolódnak. A rendszer információkat társít a hálózatban részt vevő egységek számára kiosztott tartománynevekhez. Leginkább az ember számára is jól olvasható és megjegyezhető neveket fordítja át a hálózati eszközökhöz rendelt numerikus számokká (IP-címekké), hogy a hálózaton lévő számítógépek beazonosíthassák egymást. Az egész világra kiterjedő, elosztott címtár szolgáltatás révén a Domain Name System az 1985 óta működő internetes funkciók egyik alapvető eleme.

A DNS rendszer átruházza a domain nevek hozzárendelésének és a nevek leképezésének felelősségét az internetes erőforrásokra, azáltal, hogy minden domainhez engedélyezi a mérvadó névszervereket. Ezek a névszerverek felelősek a saját domainjeikért. A hálózati rendszergazdák továbbadhatják ezt a felelősséget, így az al-domaineket más névkiszolgáló kezelheti. Ez a mechanizmus biztosítja az elosztott és hibatűrő működést, valamint elkerülhető az egyetlen nagy központi adatbázis használata.

A tartománynevek internetes erőforrásokhoz rendelése lehetővé teszi hogy a nevek ne függjenek az erőforrások fizikai helyétől, így a weben használt internetcímek, hiperlinkek, stb állandóak maradnak akkor is, ha időközben változás történik a fizikai rendszerben. A DNS rendszer másik célja, hogy a felhasználók könnyebben megjegyezhessék ezeket az internetes címeket, és használhassák őket anélkül, hogy közben tudniuk kellene a háttérben működő számítógépek közti kommunikációról.

 

Története

Korábban az ARPANET-en – a mai internet elődjén – az állomásnevek és a hozzájuk tartozó IP-címek listáját egy HOSTS.TXT nevú szövegfájlban tárolták, melyet központilag kezeltek, és rendszeresen eljuttatták a hálózat összes állomására. Az állomások számának növekedésével ez a statikus állomás-nyilvántartó tábla hamarosan már nem volt ésszerűen fenntartható. A DNS használatát Paul Mockapetris javasolta a statikus állomás-nyilvántartó tábla problémáinak megoldására. A DNS hivatalosan a 882-es és a 883-as RFC-ben került dokumentálásra, melyben két elgondolás jelent meg:

  • Hierarchikus tartománynevek használata, mint például a www.google.hu vagy a www.debian.org
  • Az internet minden részén megtalálható DNS-szerverek használata – egyfajta elosztott felelősség –, mint az állomások adatbázisának kezelési módszere

Az első DNS szervert négy Berkeley-es diák (Douglas Terry, Mark Painter, David Riggle és Songnian Zhou) írta meg 1984-ben Unix rendszerre, melyet BIND-nek (Berkeley Internet Name Domain) neveztek el. A BIND-et az 1990-es évek elején írták át Windows NT rendszerre. Széles körben elterjedt, főleg Unix rendszereken, és a leggyakrabban használt DNS szoftver lett az interneten. Gyakori támadások célpontja lett, így később alapjaitól újraírták, melyben sok biztonsági rést küszöböltek ki. Így a ma is ismert BIND 9-es verziója már erős biztonsággal rendelkezik.

Manapság a DNS egy dokumentált internetes szabvány, melyet frissítettek és bővítettek. A korábbi frissítések az adatok kódolásával foglalkoztak, a későbbiek pedig a DNS biztonságának tökéletesítésével. Ezek és más RFC-k is megtalálhatók az IETF (Internet Engineering Task Force, azaz internetfejlesztői különleges egység) weboldalának RFC-kkel foglalkozó oldalán, a www.ietf.org/rfc.html címen.

Ma már minden, az internethez csatlakozó állomás a DNS-re hagyatkozva fér hozzá a különböző internetes szolgáltatásokhoz és távoli állomásokhoz. Az internetszolgáltatók biztosítják felhasználóik számára azokat a DNS szerverek IP-címeit, amikhez a rendszer hozzáfér, amikor domain neveket kell feloldani IP-címekké.

 

Szerkezete

Hierarchikus tartománynevek

A DNS a tartományok egy hierarchikus fáját használja a névtér – a nevek teljes halmazának – elrendezéséhez. Minden magasabb szintű tartomány fennhatósággal rendelkezik az alacsonyabb szintű altartományai felett. Minden tartomány a névtér egy különálló blokkját jelöli, és a kezelése egyetlen rendszergazdai hatókörbe tartozik.

A fa gyökere az úgynevezett gyökértartomány, melyet egyetlen pont (.) jelöl. Ezt követik a legfelső vagy gyökérszintű tartományok. A legfelső szintű tartományok tovább vannak bontva második szintű tartományokra, melyek aztán további altartományokra bonthatók.

A legfelső szintű tartományok viszonylag rögzítettek, és olyan jól ismert tartományok tartoznak közéjük, mint például a COM, a NET, az ORG, az EDU, a GOV, a MIL. A COM, a NET, az ORG tartományt a világ minden részén széles körben használják, míg az EDU, a GOV és a MIL használata inkább az Ecesült Államokban jellemző. A legfelső szintű tartományok akkor jelentek meg, amikor az internet széles körben elterjedt az 1990-es évek elején.

A legfelső szintű tartományok egy másik csoportja országokat jelöl. Ezek a tartománynevek az ISO (International Organization for Standardization, azaz Nemzetközi Szabványügyi Szervezet, melyről az www.iso.org oldalon tudhatunk meg többet) által kiosztott kétbetűs országkódokat használják. Magyarország legfelső szintű országkódos tartománya például a HU. A Magyarországon működő legtöbb szervezet és cég a HU tartományt használja. A google.hu például a Google kereső magyarországi tartománya.

A teljes tartománynév (fully qualified domain name, FQDN) úgy jön létre, hogy az altartományok neveit összekötjük az alacsonyabb szintű tartományoktól a felsőbb szintűek felé haladva, és pontokkal (.) választjuk el őket egymástól. Például az UBUNTU.HU egy teljes tartománynév; csakúgy, mint a HU.OPENSUSE.ORG. Ezek mind jelölhetnek egy konkrét gazdagépet is.

A tartománynevek nem különböztetik meg a kis- és nagybetűket. Igy az UBUNTU.HU és az ubuntu.hu ugyanazt a tartományt jelölik. A szabály azonban az, hogy a tartományneveket csupa kisbetűvel írjuk.

Zónák

DNS-zóna a hierarchia összefüggő, önálló egységként kezelt része, ami egyetlen domainből is állhat, de tartozhat alá több domain és aldomain is, a kezelő által kiosztott adminisztrációs jogoktól függően.

Egy zóna kezelője továbbadhatja a hozzá tartozó zóna egy része fölötti adminisztrációs jogát más feleknek. Ilyenkor a delegálással lényegében korlátozásmentes autonómiát ad át az allokált névtér fölött, a régi zóna adminisztrátorai, névkiszolgálói már nem mérvadóak az új zónára nézve. A zónákat a zónafájlok írják le.

Zónafájlok

A zónafájl egy szöveges fájl, ami domain nevek és IP-címek és más erőforrások közötti hozzárendeléseket soronként ír le, amiket erőforrásrekordoknak nevezünk. 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.

Rekordtípusok

Egy zónában többféle rekord is tárolható. A leggyakoribb típusok közül néhány:

  • "A": IPv4 címke rekord.
    Funkciója: Leggyakrabban a hosztnév és a hozzá tartozó 32 bites IPv4 cím összerendelése.
  • "AAAA": IPv6 címke rekord. 
    Funkciója: Leggyakrabban a hosztnév és a hozzá tartozó 128 bites IPv6 cím összerendelése.
  • "CNAME": Kanonikus névrekord.
    Funkciója: A tulajdonos kanonikus vagy elsődleges neve. Egy névről egy másikra mutat (alias): a DNS-lekérdezés az új név lekérdezésével fog folytatódni.
  • "MX": mail exchange record.
    Funkciója: A tartománynévhez rendelt levéltovábbító ügynökök (Mail Transfer Agent, MTA) listája
  • "NS": name server record (névkiszolgáló-rekord).
    Funkciója: Kijelöli egy DNS-zóna számára használható autoritatív névkiszolgálókat.
  • "SOA": start of authority record.
    Funkciója: Irányadó információk a DNS-zónáról; az elsődleges névkiszolgáló, a tartomány rendszergazdájának e-mail-címe, a tartomány sorozatszáma, a zóna frissítési időközei.
  • "TXT": Text record (szöveges rekord)
    Funkciója: Eredetileg tetszőleges, emberi fogyasztásra szánt szöveg tárolására szolgált. Az 1990-es évek elejétől egyre többször tároltak benne gépi adatokat az RFC 1464 szerint.