Un serveur DNS assure la résolution des noms à l'aide du domaine BIND (Berkeley Internet Name Domain) ou du nom de démon, souvent appelé named (prononcer « naïme-di »). Au départ, BIND a été développé par quatre étudiants de l'université de Berkley (Californie) au début des années 1980. Comme le montre la figure, le format de message DNS utilisé par BIND est le format DNS le plus répandu sur Internet.
Le serveur DNS stocke différents types d'enregistrements de ressource utilisés pour résoudre les noms. Ces enregistrements contiennent le nom, l'adresse et le type d'enregistrement.
Certains de ces types d'enregistrements sont les suivants :
- A : adresse de périphérique final
- NS : serveur de noms faisant autorité
- CNAME : nom canonique (ou nom de domaine complet) d'un alias. Il est utilisé lorsque plusieurs services emploient une adresse réseau unique, mais que chaque service possède sa propre entrée dans le DNS.
- MX : enregistrement d'échange d'e-mails. Il associe un nom de domaine à une liste de serveurs d'échange d'e-mails pour ce domaine.
Lorsqu'un client envoie une requête, le processus BIND du serveur cherche d'abord dans ses propres enregistrements pour résoudre le nom. S'il n'est pas en mesure de résoudre le nom à l'aide de ses enregistrements stockés, il contacte d'autres serveurs.
La requête peut être transmise à plusieurs serveurs, ce qui peut nécessiter un délai supplémentaire et consommer de la bande passante. Lorsqu'une correspondance est trouvée et retournée au serveur demandeur d'origine, le serveur stocke temporairement dans la mémoire cache l'adresse numérique correspondant au nom.
Si ce même nom est de nouveau demandé, le premier serveur peut retourner l'adresse en utilisant la valeur stockée dans son cache de noms. La mise en cache réduit le trafic réseau de données de demandes DNS et les charges de travail des serveurs situés aux niveaux supérieurs dans la hiérarchie. Le service Client DNS sur les ordinateurs Windows optimise les performances de la résolution des noms DNS en stockant également en mémoire les noms déjà résolus. La commande ipconfig /displaydns affiche toutes les entrées DNS mises en cache sur un système Windows.