Tartalom
Ismertető
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
A 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.
SOA rekord
A rekordok közül - fontossága miatt - külön érdemes kiemelni a SOA rekordot. A SOA rekordot többféleképpen is szokták hívni, például Source Of Authority, Start Of Authority vagy Service Of Authority. Mindhárom elnevezéssel találkozhatunk, ha rákeresünk a neten, de lényege ugyanaz: a domain név forrását jelző rekord, ami egy a domain működésének alapvető beállításait tartalmazó rekord. Ez a rekord tartalmazza például az alábbiakat:
- Elsődleges névszerver
- Admin kontakt email cím (pontokká alakított) például: admin.linuxportal.eu.
- Frissítési idő. A másodlagos névszerver ennyi időnként próbálja meg lemásolni a zónát.
- Újra próbálkozás ideje. A másodlagos DNS ennyi időnkén próbálkozik újra, ha nem sikerül lemásolni a zónát.
- Lejárat. A másodlagos DNS ennyi idő után törli a zónát, ha nem sikerült lekérdezni.
- Szériaszám: Ez minden változtatáskor növekedik, így a másodlagos névszerverek ez alapján tudják, hogy frissiteniük kell a zónáikat.
- Minimum TTL. Negatív cache idő. Ha egy domaint nem sikerül feloldani, akkor ennyi ideig jegyzi meg a DNS resolver a negatív választ.
- Zóna transzfer. Ez az a mechanizmus, amivel a másodlagos névszervereknek továbbítja a zóna az adatokat másolat céljából. Erre a TCP protokollt használja.
Ezek a paraméterek határozzák meg a domain neveket.
Domain név átirányításának módjai
Domain nevet kétféleképpen lehet átirányítani egy webszerverre: rekordokkal vagy névszerverekkel.
Domain átirányítás rekordokkal
Ha rekordokkal irányítjuk át a domain nevet, az azt jelenti, hogy a DNS zóna kezelése, és egyben a SOA rekord is a regisztrátornál marad, így az ő felületükön kell kezelni a rekordokat. Ilyenkor beállíthatunk például egy "A" rekordot, ami a szerverünk IP-címére mutat, és ekkor elérhetővé válik a weboldal. Vagy létrehozhatunk egy "MX" rekordot és azt is ráirányíthatjuk a szerverünkre, amennyiben az rendelkezik levelező szerverrel. De például a levelezést hagyhatjuk is a regisztrárornál, és akkor ők kezelik nekünk a levelezést. A legtöbb helyen ez a szolgáltatás már ingyenesen is elérhető.
Előnyök:
- Nem igényel bonyolult infrastruktúrát a kiszolgálói oldalon. Így például elég egy egyszerű LAMP szerver üzemeltetése is egy weboldal elérhetővé tételéhez.
- Beállítása egyszerű
Hátrányok:
- Korlátozott DNS kezelési lehetőség, ezáltal sok olyan szolgáltatás elérhetetlen, vagy csak korlátozottan elérhető, ahol automatikus DNS kezelésen alapuló webhely hitelesítési eljárásra van szükség. Ilyenkor a DNS rekordok kézi módosítása szükséges a hitelesítés lebonyolításához.
- Szolgáltatások nem egy helyen vannak. Így például a levelezést, stb más felületeken lehet kezelni, nem a saját rendszerünk részeként.
- Minden rekord művelet végrehajtásához a regisztrátor felülületét kell igénybe venni.
Domain átirányítás névszerverekkel
Az átirányítás másik módja, amikor a regisztrátornál névszervereket adunk meg. Ilyenkor a névszerverek által hivatkozott célállomáson lennie kell DNS kiszolgálásnak, valamint a domainhez tartozó SOA rekordnak is, ami ugyanúgy leírja a domain név paramétereit, mintha a regisztrátornál lenne. Ilyenkor az egész DNS kezelés a célállomásra kerül át.
Előnyök:
- Korlátlan DNS kezelési lehetőség. Ennek köszönhetően például a Let's Encrypt SSL kiállító hatóság is könnyedén le tudja ellenőrizni domain nevünk tulajdonjogát az ACME kliens segítségével.
- A szolgáltatások egy helyen összpontosulnak, így egy helyről tudjuk kezelni a levelezést, DNS kezelést, aldomaineket, stb.
- A DNS műveletekhez nem kell igénybe venni a regisztrátor kezelőfelületét, mert a SOA rekord által már a névszerverek által hivatkozott célállomás a domain kezelője.
- Vannak webes kezelőpanelek, amik leveszik a rendszergazdák válláról a DNS kiszolgáló kézi bekonfigurálásának terhét. Ilyen például az ISPConfig is.
Hátrányok:
- Bonyolultabb infrastruktúrát igényel, így például egy egyszerű LAMP szerver nem alkalmas ennek a kezelésére.
- Kézi bekonfigurálása bonyolult
- Enciklopédia - PTR rekord
- Enciklopédia - BIND (Berkeley Internet Name Domain)
- Wikipédia - Domain Name System
- Wikipédia - Domain Name System (angol)
- Wikipédia - DNS zóna
- Wikipédia - DNS rekordtípusok listája
- Wikipédia - DNS zónafájl
- Emmett Dulaney: Linux - 7 könyv 1-ben (2016)
Kapcsolódó tartalom:
- 368 megtekintés