L'association d'un service, hôte ou site internet à une adresse ip n'est pas facilement envisageable pour un être humain qui devrait retenir de nombreuses adresses inutilement. Pour répondre à ce problème le service DNS a été mis en oeuvre et permet d'associer une adresse IP à un FQDN (Fully Qualified Domaine Name) ou à un service internet.
Le protocole DNS est donc en quelque sorte une base de données répartie contenant des enregistrements (RR : Resource Record) concernant les noms de domaine, cette base de données doit être configurée sur un serveur, appellé serveur DNS, chose qui requiert des connaissances techniques.
Chaque enregistrement présent dans le domaine possède une valeur de durée de vie, dite TTL (Time To Live) et qui représente donc la date d'invalidité du dit enregistrement. Cela permet ainsi aux serveurs intermédiaires de savoir s'ils doivent rafraichir l'enregistrement ou non, via une nouvelle requête DNS.
Voilà à quoi ressemble la structure d'un enregistrement DNS :
Ainsi, à partir d'un nom de domaine, un utilisateur (ou plus généralement une application) retrouvera l'adresse IP correspondante. Ceci se fait via une requête vers un serveur DNS du type : "Quelle est l'adresse de www.test.com. ?"
Il est aussi possible de réaliser la requête inverse, c'est à dire d'obtenir un nom de domaine à partir d'une adresse IP. C'est ce que l'on appelle la résolution inverse.
Comme on peut le voir sur ce schéma, une requête DNS peut être résolue de différentes manières:
Premièrement si un enregistrement dans un fichier host en local sur la machine correspond au nom recherché dans la requête. Ensuite la réponse peut provenir du serveur DNS par défaut configuré sur la machine, de son cache ou de ses enregistrements, finalement si cela n'aboutit pas la requête est propagée sur le réseau jusqu'à ce qu'elle soit résolue. en partant des serveurs racines, aux TLD (Top Level Domain) jusqu'au serveur contenant l'enregistrement.