Présentation générale du DNS

Cette page présente le système de noms de domaine (DNS).

Pour en savoir plus sur Cloud DNS, consultez la présentation de Cloud DNS. Pour connaître les termes clés liés à Cloud DNS, consultez la page Termes clés.

Un DNS est une base de données organisée de manière hiérarchique qui vous permet de stocker des adresses IP et d'autres données, et de les rechercher par nom.

En d'autres termes, le DNS est un répertoire de noms de domaine lisibles qui se traduisent en adresses IP numériques utilisées par les ordinateurs pour communiquer entre eux. Par exemple, lorsque vous saisissez une URL dans un navigateur, le DNS la convertit en l'adresse IP d'un serveur Web associé à ce nom. Les répertoires DNS sont stockés et distribués dans le monde entier sur des serveurs de noms de domaine mis à jour régulièrement.

Il est important que vous connaissiez les concepts suivants pour pouvoir travailler avec les DNS.

Types de serveurs DNS

Un serveur DNS stocke une base de données de noms de domaine et traite les noms de domaine en fonction des requêtes DNS provenant d'un client dans un réseau.

Serveur primaire

Un serveur primaire est un serveur qui contient les enregistrements de noms DNS, tels que A, AAAA et CNAME.

Un serveur secondaire construit un fichier de cache basé sur les requêtes précédentes pour les domaines. Il ne contient pas d'enregistrements de noms d'origine.

Résolveur récursif

Un résolveur récursif est le serveur qui envoie une requête au serveur primaire ou secondaire à des fins de résolution. Un résolveur récursif est appelé ainsi parce qu'il exécute chaque requête pour un nom donné et renvoie le résultat final.

En revanche, un résolveur itératif ne renvoie une référence qu'aux prochains serveurs DNS susceptibles de fournir la réponse.

Par exemple, lors de la résolution du nom google.com., le résolveur récursif doit d'abord déterminer qui fait autorité pour . (la zone racine du DNS). Ensuite, il demande à ces serveurs de noms qui fait autorité pour .com.. Enfin, il leur demande qui fait autorité pour google.com.. Les données rData de l'enregistrement A sont alors renvoyées au client.

Voici un exemple de résolveur récursif en action. Si vous exécutez la commande dig +trace google.com, le résolveur récursif effectue l'action suivante (8.8.8.8/Google Public DNS est l'un de ces résolveurs) :

 dig +trace google.com
; <<>> DiG 9.11.5-P4-5.1-Debian <<>> +trace google.com
;; global options: +cmd
.           168383  IN  NS  a.root-servers.net.
.           168383  IN  NS  b.root-servers.net.
.           168383  IN  NS  c.root-servers.net.
.           168383  IN  NS  d.root-servers.net.
.           168383  IN  NS  e.root-servers.net.
.           168383  IN  NS  f.root-servers.net.
.           168383  IN  NS  g.root-servers.net.
.           168383  IN  NS  h.root-servers.net.
.           168383  IN  NS  i.root-servers.net.
.           168383  IN  NS  j.root-servers.net.
.           168383  IN  NS  k.root-servers.net.
.           168383  IN  NS  l.root-servers.net.
.           168383  IN  NS  m.root-servers.net.
.           168383  IN  RRSIG   NS 8 0 518400 20190810170000 20190728160000 59944 .
    ITqCp5bSKwoG1P76GpNfDanh4fXxOtHuld5SJzEm9ez0U/K7kpmBm4TE
    cw82zuqtZlqiGOuq+90KHJEhD1fdX3FujgDqe3kaY/41LgFIo76RBeMP
    CorYg29lKQOBf7pLPiJWewFmnLsRXsvENzxNXl9mynX80EQSS2YlCWpr
    47i2j5SFpGDzmxls7LinB4VvwVLhy0FPwBaVc5NVqQoFS5ZkfKXCUz8x
    urExPT2OtPJeDiGzrQGmT6vDbYZtJRWWGK5tPIKZQyF/08YSJlrjebNa
    1nKZVN8SsO8s7elz6JGmdoM6D/1ByLNFQmKvU55ikaVSnXylqixLbJQI 7LyQoA==
;; Received 525 bytes from 127.0.0.1#53(127.0.0.1) in 22 ms

com.            172800  IN  NS  a.gtld-servers.net.
com.            172800  IN  NS  b.gtld-servers.net.
com.            172800  IN  NS  c.gtld-servers.net.
com.            172800  IN  NS  d.gtld-servers.net.
com.            172800  IN  NS  e.gtld-servers.net.
com.            172800  IN  NS  f.gtld-servers.net.
com.            172800  IN  NS  g.gtld-servers.net.
com.            172800  IN  NS  h.gtld-servers.net.
com.            172800  IN  NS  i.gtld-servers.net.
com.            172800  IN  NS  j.gtld-servers.net.
com.            172800  IN  NS  k.gtld-servers.net.
com.            172800  IN  NS  l.gtld-servers.net.
com.            172800  IN  NS  m.gtld-servers.net.
com.            86400   IN  DS  30909 8 2
    E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.            86400   IN  RRSIG   DS 8 1 86400 20190811170000 20190729160000 59944 .
    KXPRdZspxd6hZYRFx3cj7Yp3d6HDzOG5CmoK46ZrrlKnZkCYMPKzyFQ2
    15pA+jZ37MbQbhe6+S+C4AHWqv95DDsue85ha3ZmWGhnJxcLnDaL5Twp
    Z/W/a+1cTHhhbMZua1riw74mqvzRAF1kVerj7jrvWnOAOZCh69Dr4AFJ
    gRN4MAn+wCZDmPQCtkcGVJ9vyNV7Xra45B4ISqEo0xi8CXewp9cc+aW5
    TSjFRhj1RM9d3k+3Mrq6AAV8dVgWofYTg6Ihph/SfoIx4TrTrEbgfdsv
    MvuLPXvK6Y7oSh5WknbFduw7HQdo1jH3/QR54FORswBJT8VmYD7Zii88 tAjbRQ==
;; Received 1170 bytes from 192.58.128.30#53(j.root-servers.net) in 2 ms

google.com.     172800  IN  NS  ns2.google.com.
google.com.     172800  IN  NS  ns1.google.com.
google.com.     172800  IN  NS  ns3.google.com.
google.com.     172800  IN  NS  ns4.google.com.
    CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 -
    CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A NS SOA RRSIG DNSKEY NSEC3PARAM
    CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2
    86400 20190803044434 20190727033434 17708 com.
    rMmiNL7bYvJpB3Bc+WnqS2iiczm2PwxBvJcl7SL/vcTj88GsxM1ycTSV
    PsHZHxfrv1dv2C5BCSZ+mzeVBu8upLoeraQy+UVf3VXyt3i3rNGzcXYV
    8HSrHcXrRoAJopFim3Ge1xdZ+uERg3cTIcN2tJxxkCeqt/EcUTqtQl8t EAc=
    S84BDVKNH5AGDSI7F5J0O3NPRHU0G7JQ.com. 86400 IN NSEC3 1 1 0 -
    S84CFH3A62N0FJPC5D9IJ2VJR71OGLV5 NS DS RRSIG
    S84BDVKNH5AGDSI7F5J0O3NPRHU0G7JQ.com. 86400 IN RRSIG NSEC3
    8 2 86400 20190804045723 20190728034723 17708 com.
    jypPsaWVop9rzuf70CFYyiK0hliiJ+YYtkjgb3HVj9ICc57kLmv9DkvG
    DddF5GBQpqNEakzyJtya179MAdDT7RhJB4XfmY6fu5I5QTeIjchfP5wt
    7gU1AL7cqTmBAo2RWu62vtUytV09+O3KGFq5O+Cwr11dSTfq1yYyw6YW cMI=
;; Received 772 bytes from 192.41.162.30#53(l.gtld-servers.net) in 2 ms

google.com.     300 IN  A   172.217.7.14
;; Received 55 bytes from 216.239.32.10#53(ns1.google.com) in 13 ms

Chaque client DNS interroge un serveur de noms. Un résolveur récursif interroge d'autres serveurs de noms jusqu'à atteindre un serveur de noms de premier niveau, si nécessaire. L'enregistrement NS d'une zone associée à un serveur de noms de niveau supérieur redirige le résolveur sur un autre serveur de noms de niveau inférieur, pour finalement atteindre un serveur de noms qui met en cache la zone ou le serveur primaire de la zone.

Zones

Zone publique

Une zone publique est visible sur Internet. Vous pouvez créer des enregistrements DNS dans une zone publique pour publier votre service sur Internet. Par exemple, vous pouvez créer un enregistrement A dans une zone publique appelée example.com. (notez le point final) pour votre site Web public www.example.com..

Zone privée

Une zone privée est une zone qui ne peut pas être interrogée sur l'Internet public.

Sous-zone déléguée

Un DNS permet au propriétaire d'une zone d'utiliser des enregistrements NS pour déléguer un sous-domaine à un autre serveur de noms. Les résolveurs suivent ces enregistrements et envoient des requêtes destinées au sous-domaine au serveur de noms cible spécifié dans la délégation.

Par exemple, vous pouvez créer des zones distinctes pour example.com et subdomain.example.com, chacune avec son propre serveur de noms primaire. Comme subdomain.example.com est un domaine enfant de example.com, la méthode permettant de situer le serveur primaire de noms de sous-domaine à partir de la zone du domaine parent est appelée délégation. La délégation n'est ni plus ni moins qu'un pointeur vers le serveur de noms primaire d'un sous-domaine. Pour activer la délégation dans Cloud DNS, vous pouvez ajouter des enregistrements NS pour les sous-domaines situés dans la zone du domaine parent.

DNS fractionné

Un DNS fractionné désigne une instance dans laquelle deux zones sont créées pour le même domaine, l'une devant être utilisée par le réseau interne, l'autre par le réseau externe (généralement Internet). Un DNS fractionné vous permet de renvoyer des réponses différentes (différents jeux d'enregistrements de ressources) pour le même nom en fonction du demandeur.

Par exemple, vous pouvez fournir la version de développement ou de préproduction de votre application si la requête provient du réseau de développement, et la version de production ou la version publique si la requête provient de l'Internet public.

Enregistrements

Un enregistrement est un mappage entre une ressource DNS et un nom de domaine. Chaque enregistrement DNS individuel possède un type (nom et numéro), un délai d'expiration (durée de vie) et des données spécifiques aux différents types d'enregistrements.

Voici quelques-uns des types d'enregistrements couramment utilisés :

  • A : enregistrement d'adresse permettant de mapper les noms d'hôte à leur adresse IPv4.
  • AAAA : enregistrement d'adresse IPv6 permettant de mapper les noms d'hôte à leur adresse IPv6.
  • CNAME : enregistrement de nom canonique permettant de spécifier des noms d'alias.
  • MX : enregistrement Mail Exchange utilisé pour router des requêtes vers des serveurs de messagerie.
  • NS : enregistrement du serveur de noms déléguant une zone DNS à un serveur primaire.
  • PTR : enregistrement de pointeur permettant de définir un nom associé à une adresse IP.
  • SOA (Start Of Authority, début de l'enregistrement d'autorité) : permet de spécifier le serveur de noms primaire et l'administrateur responsables d'une zone. Chaque zone hébergée sur un serveur DNS doit posséder un enregistrement SOA. Vous pouvez modifier l'enregistrement si nécessaire (par exemple, en remplaçant le numéro de série par un nombre arbitraire pour que les versions puissent être gérées en fonction de la date).

Jeux d'enregistrements

Les enregistrements portant le même nom et du même type, mais avec des valeurs de données différentes, sont appelés des jeux d'enregistrements. Lorsque vous créez un enregistrement, si un jeu ayant le même nom et le même type existe, l'enregistrement est ajouté à ce jeu correspondant. En l'absence de correspondance, un jeu est créé et ajouté à la liste des jeux d'enregistrements.

Voici un exemple de jeu d'enregistrements qui regroupe plusieurs enregistrements ayant le même nom et le même type :

Nom DNS Type TTL (secondes) Données
db-01.dev.gcp.example.com A 50 10.128.1.35
db-01.dev.gcp.example.com A 50 10.128.1.10

Pour obtenir la liste des types d'enregistrements compatibles dans Cloud DNS, consultez la page Types d'enregistrement DNS acceptés.

Délégation de sous-domaines

Lorsque vous créez des enregistrements, assurez-vous que les enregistrements NS et SOA correspondent. Si des enregistrements NS et SOA sont en conflit, certains résolveurs peuvent considérer la délégation comme non valide et la refuser, et refuser également la mise en cache des réponses NO DATA aux requêtes. Cela peut entraîner un nombre important et inattendu de requêtes sur vos zones publiques gérées par des résolveurs récursifs tiers lorsqu'ils interrogent ces zones à la recherche d'enregistrements inexistants.

Par exemple, supposons qu'il existe deux sous-domaines, example.com et subdomain.example.com, dans Cloud DNS. Les enregistrements NS et SOA pour subdomain.example.com ne correspondent pas. Aucune des deux zones ne contient d'enregistrements AAAA. Lorsque certains résolveurs récursifs tiers interrogent subdomain.example.com à la recherche d'un enregistrement AAAA et reçoivent une réponse NO DATA, et s'ils détectent la délégation non valide de subdomain.example.com, ils refusent de mettre en cache les enregistrements AAAA dans cette zone. Cela entraîne une nouvelle tentative d'exécution des requêtes. Ils interrogent tous les serveurs de noms de Cloud DNS l'un après l'autre pour obtenir ces informations.

Service d'enregistrement de noms de domaine

Un service d'enregistrement de noms de domaine est une organisation qui gère la réservation de noms de domaine Internet pour des zones publiques. Un tel service doit être accrédité par un registre de domaines de premier niveau (gTLD) générique ou un registre de domaine de premier niveau national (ccTLD). C'est ainsi que les serveurs de noms de niveau supérieur déterminent conjointement le SOA et mettent à jour les enregistrements NS de la zone pour diriger les requêtes vers les serveurs de cache ou les serveurs de noms primaires.

Numéro de série SOA

Le numéro de série SOA correspond au numéro de version d'une zone DNS. Pour que tous les serveurs de noms soient à jour avec la version d'une zone, ils doivent avoir le même numéro de série SOA. Les numéros de série des enregistrements SOA créés dans les zones gérées de Cloud DNS augmentent de manière monotone avec chaque modification transactionnelle apportée aux jeux d'enregistrements d'une zone.

Vous pouvez toutefois remplacer le numéro de série d'un enregistrement SOA par un nombre arbitraire, y compris par une date au format ISO 8601, comme recommandé dans le document RFC 1912.

DNSSEC

Les extensions de sécurité du système de noms de domaine (DNSSEC) corrigent les failles des données DNS. DNSSEC est une suite de spécifications IETF (Internet Engineering Task Force) qui permettent d'authentifier des données DNS, de fournir un déni d'existence authentifié et d'assurer l'intégrité des données transmises aux clients DNS (résolveurs). En résumé, le protocole DNSSEC permet aux logiciels de vérifier l'origine des données DNS et de confirmer qu'elles n'ont pas été modifiées pendant leur transit.

Pour plus d'informations sur DNSSEC, consultez le document RFC 4033.

Pour obtenir la liste des termes généraux de DNS, consultez le document RFC 7719.

Étapes suivantes