Votre ordinateur dispose d'une liste de serveurs DNS qu'il peut interroger pour plus d'informations. Sur un système Unix ou Linux, cela est stocké dans /etc/resolv.conf
. Sous Windows, il est configurable dans vos paramètres réseau. Souvent, votre serveur DNS sera fourni par votre serveur DHCP, éventuellement avec d'autres paramètres comme le domaine par défaut, les serveurs proxy, etc.
L'emplacement du serveur DNS que vous utilisez n'a pas beaucoup d'importance. Tant que votre ordinateur possède une adresse IP et une route par défaut fonctionnelle (c'est-à-dire que vous pouvez ping
le serveur DNS), vous devriez pouvoir effectuer des requêtes DNS.
Les serveurs DNS ne doivent pas connaître "tous" les domaines. Ils ont seulement besoin de savoir qui est "faisant autorité", ce qu'il apprend d'un ensemble de serveurs "root". Chaque serveur DNS a une liste de serveurs "racine", et cette liste change rarement. Sur l'un de mes serveurs DNS, 18 serveurs racine sont configurés, et cette configuration est venue lorsque j'ai installé le serveur DNS il y a deux ans, et si la liste des serveurs racine a changé depuis, suffisamment d'entre eux sont accessibles que je n'ai pas l'a remarqué.
Mon serveur DNS, lorsqu'on lui demande de résoudre un domaine qu'il ne connaît pas, fait une requête à un serveur racine pour savoir quel autre serveur DNS fait autorité pour le domaine. La réponse qu'il obtient peut contenir des enregistrements "NS" supplémentaires et être marquée comme ne faisant pas autorité, auquel cas mon serveur DNS sait qu'il doit "suivre la chaîne" et faire une nouvelle requête à un nouveau serveur. Finalement, il trouve un serveur DNS qui fournit des informations faisant autorité, et des requêtes peuvent être effectuées qui ne sont pas uniquement des enregistrements NS. A (adresse) et MX (échange de courrier) sont bien sûr les deux plus courants.
Chaque TLD (domaine de premier niveau) comme COM, NET, ORG, CA, UK, etc. gère son propre registre de sous-domaines. (Un "sous-domaine" est un domaine dans un autre domaine, donc "example.com" est un sous-domaine dans "com", et "com" est même un sous-domaine dans ".", La "racine".) Les règles de chaque registre s'appliquent uniquement au TLD qu'il administre - c'est-à-dire qu'il existe un ensemble de critères complètement différent pour chaque TLD de code de pays, et les TLD "génériques" sont administrés par différentes organisations avec des politiques différentes. Mais ils maintiennent tous des serveurs DNS pour leur TLD, ce que, à partir d'une ligne de commande, vous pouvez voir à l'aide des outils de requête DNS de base:
[ghoti@pc ~]$ host -t ns ca.
ca name server c.ca-servers.ca.
ca name server e.ca-servers.ca.
ca name server z.ca-servers.ca.
ca name server a.ca-servers.ca.
ca name server f.ca-servers.ca.
ca name server sns-pb.isc.org.
ca name server j.ca-servers.ca.
ca name server k.ca-servers.ca.
ca name server tld.isc-sns.net.
ca name server l.ca-servers.ca.
[ghoti@pc ~]$ host -t ns info
info name server c0.info.afilias-nst.info.
info name server d0.info.afilias-nst.org.
info name server b2.info.afilias-nst.org.
info name server b0.info.afilias-nst.org.
info name server a2.info.afilias-nst.info.
info name server a0.info.afilias-nst.info.
[ghoti@pc ~]$
Lorsque vous achetez un domaine auprès d'un registraire (dont il existe de nombreux), ce registraire soumet des informations sur le domaine au registre (dont il n'y en a qu'une par TLD). Il est de la responsabilité de chaque registre de maintenir la liste des domaines enregistrés au sein de leur TLD et de maintenir les serveurs DNS qui fournissent ces informations aux autres serveurs.