# Domain Name System

El Domain Name System o DNS (en català sistema de noms de domini) és un sistema de noms jeràrquic que funciona sobre una base de dades distribuïda. Permet que qualsevol sistema connectat a Internet o a una xarxa informàtica privada obtingui informació associada als noms de domini. En concret, l'ús més freqüent (tot i que no l'únic) és la traducció global dels noms de domini (com ara ca.wikipedia.org) a les adreces necessàries per al protocol IP. Això facilita molt l'ús d'aplicacions d'Internet, ja que evita que els usuaris hagin de memoritzar les adreces numèriques, i facilita el canvi d'adreces mantenint constant el nom de domini.
El DNS ofereix un servei vital a Internet i sense ell la navegació seria molt complicada (per no dir impossible), ja que les xarxes treballen amb IP per fer tasques com l'adreçament o l'encaminament, mentre que per als humans és molt més senzill treballar amb noms, com els que posem als URL o a les adreces de correu electrònic.

## Implementació inicial

Va ser dissenyat inicialment per Paul Mockapetris el 1984 per amainar els problemes d'escalatge que suposava l'ús d'adreces IP (difícils de memoritzar i associar al seu contingut). En una primera aproximació el DNS consistia en un sol arxiu, conegut com a taula de host, que era mantingut per l'Stanford Research Institute's Network Information Center (SRI-NIC). El sistema era força simple: quan algú registrava un domini s'afegia a la taula i els administradors dels sistemes havien d'actualitzar la seva versió de la taula via el protocol de transferència de fitxers.
Òbviament aquest sistema va quedar obsolet un cop la xarxa va començar a créixer, ja que, tot i acomplir els seus objectius, distava molt de ser un mètode eficient de distribució a més de tenir un elevat cost de manteniment. Sense una bona infraestructura pel DNS l'accessibilitat d'Internet quedava força minvada, de manera que Mockapetris i alguns col·legues van començar a treballar en el sistema actual.

## Implementació actual

La nova implementació del DNS es va pensar ja sobre la natura de la mateixa Internet, cosa que li ha permès mantenir-se fins al dia d'avui: Un sistema de bases de dades distribuïdes, interconnectades, del que cap organització en solitari n'és directament responsable. Donada la seva arquitectura, DNS està preparat per un creixement pràcticament il·limitat. Abans d'analitzar-la cal familiaritzar-se amb el domain name space. Aquesta estructura descriu un arbre de dominis, permetent diferents dominis dins un mateix.
Un servidor DNS és simplement un ordinador o equip corrent programari DNS. Donat que la gran majoria de servidors són UNIX el programari més estès és BIND, tot i que hi ha altres opcions per aquesta i altres plataformes (incloses PC i Mac).
El programari DNS està compost normalment per dues grans parts. Per una banda el servidor de noms, que no deixa de ser una taula que permet fer conversions nom-IP. Per una altra el "resolver", que s'encarrega de llançar peticions a altres servidors de noms en cas de disposar de la resposta en el propi. Veiem el funcionament amb una mica més de detall:
Quan s'escriu un URL, el navegador envia una petició al servidor DNS més proper. Si aquest ha resolt alguna petició anteriorment referent a aquest mateix domini (dintre d'un període definit per l'administrador, a fi d'evitar que les adreces caduquin) localitza la IP corresponent a la seva cache i l'envia al navegador. Si el servidor no pot respondre a la petició, consulta al servidor immediatament superior a ell segons l'arbre del domain server space. En cas que aquest tampoc ho sàpiga repetirà el procediment. I així fins a arribar a solucionar l'adreça en qüestió (quan un servidor pot respondre sense consultar-ne un altre se'n diu Servidor Autoritzat).

## Problemes amb el DNS

Tot aquest procés hauria de trigar dècimes de segons (i normalment ho fa), però en algunes ocasions pot trigar fins i tot més de 15 segons. Això pot provocar que un domini existent respongui com un no existent si el navegador es cansa d'esperar una resposta. Tot i això, donada l'arquitectura del DNS reenviant la petició és molt possible que es rebi contestació, car algun servidor entremig pot haver rebut la resposta a temps. En cas de la "caiguda" d'un servidor DNS totes les adreces de les quals era Servidor Autoritzat passarien a no respondre donant la sensació d'estar desconnectat, quan en realitat estan plenament operatives.

## Vegeu també

* Fitxer de hosts.