Le système de noms de domaine (DNS, Domain name system) est une base de données hiérarchique et distribuée, implémentée sur un réseau TCP/IP. Il est essentiellement utilisé pour rechercher des adresses IP pour les noms d'hôte Internet et des noms d'hôte pour les adresses IP. Les données sont distribuées dans le réseau et sont localisées à l'aide de noms séparés par des points, lus de gauche à droite. Le DNS permet également de stocker d'autres informations d'hôte Internet, telles que les informations de routage des échanges de messagerie, les données d'emplacement et les services disponibles. La nature hiérarchique du service permet l'administration locale des domaines locaux, tout en garantissant la couverture internationale d'autres domaines connectés à Internet, à l'intranet, ou aux deux.
Les clients DNS demandent à un ou plusieurs serveurs des informations relatives à un nom d'hôte et attendent une réponse. Les serveurs DNS répondent aux demandes grâce à un cache d'informations chargé à partir de l'une des sources suivantes :
un fichier ou une base de données tierce sur un serveur DNS maître
un fichier ou une base de données tierce d'un serveur DNS esclave qui coopère dans le réseau
des informations stockées à l'occasion de requêtes antérieures
En l'absence de données et si le serveur n'est pas responsable du domaine en question, le service effectue, s'il est correctement configuré, une demande de nom d'hôte récursive auprès d'autres serveurs, puis il met la réponse en cache.