A DNS-kiszolgáló (más néven névszerver) egy speciális kiszolgálószoftver, amely egy DNS-adatbázist használ a tartománynévrendszerrel kapcsolatos lekérdezések megválaszolására. Mivel a DNS-kiszolgálók általában dedikált állomáson találhatók, a megfelelő programokat tartalmazó számítógépeket DNS-kiszolgálóknak is nevezik.
A DNS-nek köszönhetően az internetezők a böngésző címsorába beírhatnak egy tartományt, azaz egy megjegyezhető nevet. Az interneten minden tartománynak van legalább egy IP-címe, amelyre a számítógépeknek szükségük van a hálózaton való kommunikációhoz. A DNS-kiszolgáló ismeri a tartományok és IP-címek kombinációit, illetve tudja, hogy melyik másik DNS-kiszolgálónak kell továbbítani a kérést. Egy weboldal elérésekor tehát először egy vagy több DNS-kiszolgálóhoz érkezik egy kérés, hogy végül a weboldalhoz kapcsolódhassunk. Ez teszi a DNS-kiszolgálókat a működő internet központi elemévé.
A DNS kiszolgálók különböző típusai
A DNS működése során különbséget teszünk a hiteles és a nem hiteles DNS-kiszolgálók között.
- Az authoratív DNS-kiszolgálók a DNS-adatbázisukban tárolják a tartománynévtér egy adott zónájára vonatkozó biztonságos tartományi információkat. A DNS úgy van felépítve, hogy minden zónához legalább egy hiteles névszerver tartozik. Az ilyen rendszereket általában szerverfürtként valósítják meg, ahol az azonos zónaadatokat egy master rendszer és több slave rendszer tárolja. Ebben az esetben ezeket elsődleges és másodlagos névszervereknek nevezik. Ez a fajta redundancia növeli a hiteles névszerver megbízhatóságát és rendelkezésre állását.
- A nem-autoritatív DNS-kiszolgálók nem a saját zónafájljukból, hanem egy második vagy harmadik kézből származó névszerver DNS-adatait használják. Ilyen helyzet akkor áll elő, amikor egy névszerver a saját adatállománya miatt nem tud válaszolni egy lekérdezésre, és az információt egy másik névszerverről szerzi be (rekurzió). Ezeket a DNS-adatokat ideiglenesen a helyi memóriában tárolják (gyorsítótárazás), és az új lekérdezések alkalmával szállítják. Mivel azonban a tényleges zónafájl bejegyzései időközben megváltozhattak, a nem hiteles névszerverektől származó DNS-információk nem biztonságosak.
Hogyan oldják fel a DNS szerverek a DNS kérelmeket?
A DNS-kérés feloldása a megfelelő IP-címre lépésről lépésre történik:
- A felhasználó beírja a “example.com” szót a webböngészőjébe, a lekérdezés pedig eljut az internetre, és egy DNS-rekurzív feloldó fogadja.
- A resolver ezután lekérdezi a DNS gyökér névszerverét (.).
- A gyökérkiszolgáló ezután egy felső szintű tartomány (TLD) DNS-kiszolgáló (például .com vagy .net) címével válaszol a feloldónak, amely a saját tartományainak adatait tárolja. A example.com keresésekor a kérésünk a .com TLD felé irányul.
- A feloldó ezután a .com TLD-hez intéz egy kérést.
- A TLD-kiszolgáló ezután a domain névszerverének, a example.com-nak az IP-címével válaszol.
- Végül a rekurzív feloldó lekérdezést küld a tartomány névszerverének.
- A névszerver ezután visszaküldi a feloldónak az example.com IP-címét.
- A DNS-feloldó ezután a webböngészőnek az eredetileg kért tartomány IP-címével válaszol.
Miután a DNS-keresés 8 lépése visszaadta az example.com IP-címét, a böngésző elküldheti a kérését a weboldalt kiszolgáló szervernek (9-es lépés), ami visszaküldi a válaszát (10-es lépés).
Mi történik, ha egy DNS szerver meghibásodik?
Ha egy DNS-kiszolgáló nem válaszol vagy teljesen leáll, a névfeloldási folyamat nem fejeződhet be megfelelően. Ez megszakításokhoz vezet a működésben. Mivel a DNS-kiszolgáló meghibásodása mindig előfordulhat, ésszerű, hogy DNS-infrastruktúrája a lehető leghibabiztosabb legyen.
Ennek érdekében két névszerver futhat ugyanazon DNS-zónához. Az egyik kiszolgálót elsődleges kiszolgálónak, a másikat pedig másodlagos kiszolgálónak jelöljük. Az ügyfeleknek mindkét kiszolgálót úgy kell beállítaniuk, hogy ha az egyik kiszolgáló meghibásodik, a másik DNS-kiszolgáló át tudja venni a helyét.