Types d'enregistrements DNS

Par La rédaction de Mon-Adresse-IP.net·Publié le ·

Le DNS ne sert pas qu'à traduire un nom en adresse IP : il transporte aussi les politiques anti-usurpation du courrier, les autorisations d'émission de certificats, les clés cryptographiques et les paramètres de connexion des navigateurs. Voici plus de 60 types d'enregistrements, chacun avec sa fonction réelle et un exemple de syntaxe utilisable tel quel dans un fichier de zone.

À retenir avant de modifier une zone

  • Le TTL commande tout : baissez-le à 300 secondes au moins la durée de l'ancien TTL avant une migration, sans quoi une partie des visiteurs continuera d'atterrir sur l'ancien serveur.
  • Cinq types couvrent 95 % des besoins : A, AAAA, MX, TXT et NS. Tout le reste est de la spécialisation.
  • Jamais de CNAME à l'apex : le nom racine porte déjà un SOA et des NS, ce qui l'interdit techniquement.
  • La sécurité du courrier passe par TXT : SPF, DKIM, DMARC, MTA-STS et BIMI sont tous des enregistrements TXT posés sur des noms conventionnels.
  • Un point final change le sens d'une ligne : mail.example.com sans point devient mail.example.com.example.com.

Anatomie d'un enregistrement

Un fichier de zone est un fichier texte. Chaque ligne utile décrit un enregistrement composé de cinq champs, toujours dans le même ordre : le nom, la durée de vie, la classe, le type, puis la valeur. Les trois lignes ci-dessous sont un extrait de zone valide.

; nom               TTL    classe  type   valeur (RDATA)
example.com.        3600   IN      A      203.0.113.10
www.example.com.    3600   IN      CNAME  example.com.
@                   3600   IN      MX     10 mail.example.com.
NomLe nom auquel s'applique l'enregistrement. Un nom terminé par un point est absolu ; sans point final, le serveur ajoute automatiquement l'origine de la zone. Le symbole @ désigne l'origine elle-même, c'est-à-dire l'apex du domaine.
TTLDurée de vie en secondes : combien de temps un résolveur a le droit de garder la réponse en cache. La directive $TTL en tête de fichier fixe la valeur par défaut ; le champ peut alors être omis.
ClassePresque toujours IN (Internet). La classe CH (Chaos) survit pour une seule raison pratique : interroger la version d'un serveur avec dig @serveur CH TXT version.bind.
TypeLe sigle qui détermine la nature de la donnée et le format du dernier champ. C'est l'objet de cette page.
ValeurAppelée RDATA. Sa syntaxe dépend entièrement du type : une adresse pour un A, un nom pour un CNAME, une priorité suivie d'un nom pour un MX, une suite de champs numériques pour un DNSKEY.

Deux notions complètent ce tableau. D'abord le RRset : tous les enregistrements qui partagent le même nom et le même type forment un ensemble indissociable, renvoyé en bloc et signé en bloc par DNSSEC. Vous ne pouvez pas donner deux TTL différents à deux adresses A du même nom. Ensuite les commentaires, introduits par un point-virgule et ignorés jusqu'à la fin de la ligne : précieux pour dater une clé ou noter à quel prestataire correspond un include:.

Attention : l'erreur la plus fréquente en édition manuelle est l'oubli du point final. mail.example.com saisi sans point dans la zone example.com devient mail.example.com.example.com., un nom qui n'existe pas. Beaucoup d'interfaces d'hébergeurs masquent ce détail en n'acceptant que la partie gauche du nom ; d'autres non.

Le TTL : le réglage qu'on oublie toujours

Le TTL est le seul champ que l'on peut régler sans rien connaître au type d'enregistrement, et c'est celui qui provoque le plus d'incidents. Il ne décrit pas la fréquence à laquelle vous modifiez la zone : il fixe la durée pendant laquelle un résolveur (celui de votre fournisseur d'accès, celui de votre entreprise, ou un service public) a le droit de servir une réponse sans revenir vous la demander.

Le décompte démarre au moment où le résolveur a obtenu la réponse, pas au moment où vous la modifiez. Si votre enregistrement A porte un TTL de 86 400 secondes et qu'un résolveur l'a mis en cache cinq minutes avant votre migration, ce résolveur enverra ses utilisateurs vers l'ancienne machine pendant les 23 heures et 55 minutes suivantes. Vous n'avez aucun moyen de purger un cache que vous ne contrôlez pas.

D'où la procédure de migration en trois temps : abaisser le TTL à 300 secondes au moins autant de temps à l'avance que l'ancien TTL était long (24 heures avant si le TTL valait 86 400), effectuer la bascule, vérifier pendant quelques heures, puis remonter le TTL. Sauter la première étape revient à s'exposer à une journée entière de trafic dédoublé entre deux serveurs.

Trois précisions rarement mentionnées :

  • Le cache négatif ne suit pas le TTL de l'enregistrement. Quand un nom n'existe pas, la durée de mémorisation de cette absence est dictée par le dernier champ du SOA (RFC 2308), et non par le TTL du futur enregistrement. Interroger un nom avant de le créer est donc contre-productif : vous faites mémoriser son inexistence à tous les résolveurs sollicités.
  • Certains résolveurs bornent les valeurs. Beaucoup imposent un plancher de quelques secondes et un plafond de 24 à 48 heures. Un TTL d'une semaine n'est pas garanti ; un TTL de 1 seconde ne l'est pas davantage.
  • Votre machine met elle aussi en cache. Windows conserve les réponses dans le service Client DNS (ipconfig /flushdns ou Clear-DnsClientCache pour le vider), et les navigateurs entretiennent leur propre cache interne. Vous pouvez donc voir l'ancienne valeur alors que le résolveur public sert déjà la nouvelle.

Ordres de grandeur usuels : 300 secondes pour ce qui peut bouger (bascule, test), 3 600 secondes pour les enregistrements courants, 86 400 secondes pour les NS et le SOA. Le TTL n'a aucune incidence sur les performances perçues au-delà de la première résolution ; le raccourcir augmente simplement le nombre de requêtes reçues par vos serveurs faisant autorité.

La table complète des types

Chaque ligne indique le sigle, le nom développé avec son numéro de type et sa RFC de référence, le rôle en une phrase et un exemple de syntaxe. Tous les exemples utilisent le domaine example.com et les plages réservées à la documentation : 203.0.113.0/24 en IPv4 et 2001:db8::/32 en IPv6, décrites dans notre table des adresses IP réservées. Les valeurs cryptographiques longues sont abrégées par des points de suspension.

Types d'enregistrements DNS, du plus courant au plus spécialisé.
TypeNom completRôleExemple de zone
A Address
type 1 · RFC 1035
Associe un nom à une adresse IPv4. Plusieurs A sur un même nom sont servis en rotation, sans aucun contrôle de disponibilité. example.com. 3600 IN A 203.0.113.10
AAAA IPv6 Address
type 28 · RFC 3596
Équivalent IPv6 du A. Ne le publiez qu'une fois le service réellement joignable en IPv6, sinon une partie des visiteurs subira des délais de bascule. example.com. 3600 IN AAAA 2001:db8::10
CNAME Canonical Name
type 5 · RFC 1035
Déclare qu'un nom est l'alias d'un autre. Interdit de coexister avec tout autre type sur le même nom, donc impossible à l'apex. www.example.com. 3600 IN CNAME example.com.
ALIAS / ANAME Alias à plat
non normalisé
Pseudo-type propriétaire proposé par certains hébergeurs : le serveur résout lui-même la cible et renvoie des A/AAAA, ce qui simule un CNAME à l'apex. N'existe dans aucune RFC et n'est pas transférable d'un hébergeur à l'autre. example.com. 300 IN ALIAS cible.example.net.
MX Mail Exchanger
type 15 · RFC 1035
Désigne les serveurs qui reçoivent le courrier du domaine. Le nombre est une préférence : la valeur la plus basse est essayée en premier. example.com. 3600 IN MX 10 mail.example.com.
MX nul Null MX
RFC 7505
Un MX de préférence 0 pointant sur la racine déclare explicitement que le domaine ne reçoit aucun courrier ; les expéditeurs abandonnent immédiatement au lieu de réessayer pendant des jours. example.com. 3600 IN MX 0 .
TXT Text
type 16 · RFC 1035
Texte libre. Devenu le support universel des politiques : SPF, DKIM, DMARC, MTA-STS, BIMI et les preuves de propriété de domaine. Chaque chaîne est limitée à 255 octets. example.com. 3600 IN TXT "v=spf1 mx -all"
NS Name Server
type 2 · RFC 1035
Désigne les serveurs faisant autorité sur la zone. Doit exister à la fois dans la zone et chez le registre parent ; une divergence produit une délégation boiteuse. example.com. 86400 IN NS ns1.example.net.
SOA Start of Authority
type 6 · RFC 1035
Enregistrement unique et obligatoire de l'apex : serveur primaire, adresse du responsable (le premier point remplace l'arobase), numéro de série, puis rafraîchissement, nouvelle tentative, expiration et TTL du cache négatif. example.com. 86400 IN SOA ns1.example.net. hostmaster.example.com. 2026082101 7200 3600 1209600 3600
PTR Pointer
type 12 · RFC 1035
Résolution inverse : d'une adresse IP vers un nom, dans les arborescences in-addr.arpa et ip6.arpa. Se configure chez le détenteur de la plage, pas chez le registrar. Indispensable pour un serveur d'envoi de courrier. 10.113.0.203.in-addr.arpa. 3600 IN PTR mail.example.com.
SRV Service Locator
type 33 · RFC 2782
Indique l'hôte et le port d'un service pour un nom conventionnel _service._protocole : priorité, poids, port, cible. Une cible réduite à un point signifie « service indisponible ici ». _sip._tls.example.com. 3600 IN SRV 10 60 5061 sip.example.com.
CAA Certification Authority Authorization
type 257 · RFC 8659
Liste les autorités de certification habilitées à émettre un certificat pour le domaine. Vérification obligatoire côté autorité avant émission. example.com. 3600 IN CAA 0 issue "letsencrypt.org"
HTTPS HTTPS Service Binding
type 65 · RFC 9460
Publie les paramètres de connexion d'un service web avant même la première requête : protocoles gérés, port, adresses suggérées, configuration ECH. Sa forme « alias » (priorité 0) est le remplaçant standard du CNAME à l'apex. example.com. 3600 IN HTTPS 1 . alpn="h3,h2" ipv4hint=203.0.113.10
SVCB Service Binding
type 64 · RFC 9460
Version générique du précédent, utilisable pour n'importe quel protocole. C'est notamment le support de la découverte des résolveurs DNS chiffrés. _8443._foo.example.com. 3600 IN SVCB 1 svc.example.net. alpn="bar" port=8443
URI Uniform Resource Identifier
type 256 · RFC 7553
Renvoie directement une URL complète, là où SRV ne donne qu'un couple hôte-port. Priorité et poids fonctionnent comme pour SRV. _ftp._tcp.example.com. 3600 IN URI 10 1 "ftp://ftp.example.com/public"
DNAME Delegation Name
type 39 · RFC 6672
Redirige tout un sous-arbre de noms d'un coup, contrairement au CNAME qui ne vaut que pour un nom. Le nom porteur lui-même n'est pas redirigé. ancien.example.com. 3600 IN DNAME nouveau.example.net.
NAPTR Naming Authority Pointer
type 35 · RFC 3403
Applique une expression régulière à un nom pour produire un URI ou renvoyer vers un SRV. Cœur du système ENUM, qui traduit un numéro de téléphone en adresse SIP. example.com. 3600 IN NAPTR 100 10 "U" "E2U+sip" "!^.*$!sip:contact@example.com!" .
CSYNC Child-to-Parent Synchronization
type 62 · RFC 7477
Autorise la zone fille à signaler au parent que ses NS ou ses adresses de colle ont changé, sans passer par l'interface du registrar. example.com. 3600 IN CSYNC 2026082101 3 A AAAA NS
SPF Sender Policy Framework
type 99 · RFC 4408, retiré par RFC 7208
Type dédié créé en 2006 pour la politique SPF, puis abandonné en 2014 faute d'adoption : les logiciels interrogeaient TXT de toute façon. Une politique SPF doit désormais être publiée exclusivement en TXT. Ne créez plus ce type. example.com. 3600 IN SPF "v=spf1 mx -all"
SPF (en TXT) Sender Policy Framework
RFC 7208
Énumère les serveurs autorisés à émettre du courrier pour le domaine. Limite stricte de 10 résolutions DNS déclenchées par l'évaluation : au-delà, le résultat est une erreur permanente et la protection tombe. example.com. 3600 IN TXT "v=spf1 include:_spf.example.net ip4:203.0.113.20 -all"
DKIM DomainKeys Identified Mail
TXT · RFC 6376
Publie la clé publique servant à vérifier la signature apposée aux messages, sur le nom <sélecteur>._domainkey. Un sélecteur par prestataire permet de révoquer ou de faire tourner les clés indépendamment. sel2026._domainkey.example.com. 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0B…"
DMARC Domain-based Message Authentication, Reporting and Conformance
TXT sur _dmarc · RFC 7489
Indique quoi faire des messages qui échouent à SPF et DKIM, et où envoyer les rapports. Ajoute la notion d'alignement : le domaine authentifié doit correspondre à celui affiché dans le champ From:. _dmarc.example.com. 3600 IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; pct=100"
BIMI Brand Indicators for Message Identification
TXT sur default._bimi
Déclare le logo à afficher à côté des messages du domaine. Exige une politique DMARC en quarantaine ou en rejet, un logo au format SVG Tiny PS, et chez la plupart des messageries un certificat de marque vérifié. default._bimi.example.com. 3600 IN TXT "v=BIMI1; l=https://example.com/logo.svg; a=https://example.com/vmc.pem"
MTA-STS SMTP MTA Strict Transport Security
TXT sur _mta-sts · RFC 8461
Signale qu'une politique de chiffrement obligatoire existe pour le courrier entrant. Le TXT ne contient qu'un identifiant de version ; la politique elle-même est servie en HTTPS sur mta-sts.example.com/.well-known/mta-sts.txt. _mta-sts.example.com. 3600 IN TXT "v=STSv1; id=20260821000000Z;"
TLS-RPT SMTP TLS Reporting
TXT sur _smtp._tls · RFC 8460
Indique où envoyer les rapports d'échec de chiffrement des serveurs qui vous écrivent. C'est le seul moyen de savoir qu'une politique MTA-STS ou DANE casse silencieusement des livraisons. _smtp._tls.example.com. 3600 IN TXT "v=TLSRPTv1; rua=mailto:tlsrpt@example.com"
OPENPGPKEY OpenPGP Public Key
type 61 · RFC 7929
Publie la clé PGP d'une adresse électronique. Le nom est l'empreinte SHA-256 de la partie gauche de l'adresse, tronquée à 28 octets et écrite en hexadécimal. c93f1e4…ec2c._openpgpkey.example.com. 3600 IN OPENPGPKEY mQINBGP…
SMIMEA S/MIME Certificate Association
type 53 · RFC 8162
Équivalent du précédent pour S/MIME : associe un certificat à une adresse électronique, avec la même grammaire de champs que TLSA. c93f1e4…ec2c._smimecert.example.com. 3600 IN SMIMEA 3 1 1 a1b2c3…
TLSA TLS Association (DANE)
type 52 · RFC 6698
Épingle un certificat ou une clé publique dans le DNS. Quatre usages (0 à 3), un sélecteur (certificat entier ou clé seule) et un mode de correspondance. N'a de valeur que si la zone est signée par DNSSEC ; largement déployé entre serveurs de messagerie, ignoré par les navigateurs. _443._tcp.www.example.com. 3600 IN TLSA 3 1 1 d2abde240d7cd3ee…
SSHFP SSH Fingerprint
type 44 · RFC 4255
Publie l'empreinte de la clé d'hôte SSH pour éviter la question « voulez-vous vraiment vous connecter ? » à la première connexion. Le client doit être lancé avec VerifyHostKeyDNS yes et la zone doit être signée. example.com. 3600 IN SSHFP 4 2 4d5f8a1c9b… (4 = Ed25519, 2 = SHA-256)
CERT Certificate
type 37 · RFC 4398
Transporte un certificat complet ou sa révocation (X.509, PGP, SPKI). Peu utilisé : les certificats dépassent vite la taille confortable d'une réponse DNS. example.com. 3600 IN CERT 1 0 0 MIIDXTCCAkWgAwIBAgIJ…
IPSECKEY IPsec Key
type 45 · RFC 4025
Publie la clé publique et la passerelle IPsec associées à un hôte ou à une plage, pour monter un tunnel sans configuration préalable des pairs. 10.113.0.203.in-addr.arpa. 3600 IN IPSECKEY 10 1 2 203.0.113.20 AQNRU3mG7…
DNSKEY DNS Public Key
type 48 · RFC 4034
Contient les clés publiques de la zone. L'indicateur 256 désigne une clé de signature de zone (ZSK), 257 une clé de signature de clé (KSK), celle dont l'empreinte est publiée chez le parent. example.com. 3600 IN DNSKEY 257 3 13 mdsswUyr3DPW132mOi8V9x…
DS Delegation Signer
type 43 · RFC 4034
Empreinte de la KSK, publiée non pas dans votre zone mais dans celle du parent (le registre du .fr ou du .com), via votre registrar. C'est le maillon qui relie votre domaine à la chaîne de confiance. example.com. 86400 IN DS 60485 13 2 2bb183af5f22588179a53b0a…
RRSIG Resource Record Signature
type 46 · RFC 4034
Signature d'un RRset, avec une date de début et une date de fin de validité. Une signature expirée rend le domaine injoignable pour tous les résolveurs validants : c'est la première cause de panne DNSSEC. example.com. 3600 IN RRSIG A 13 2 3600 20260901000000 20260818000000 60485 example.com. Vv3xY2…
NSEC Next Secure
type 47 · RFC 4034
Prouve de manière signée qu'un nom n'existe pas, en désignant le nom suivant dans l'ordre alphabétique. Effet de bord : on peut parcourir la zone entière de proche en proche. example.com. 3600 IN NSEC blog.example.com. A NS SOA MX TXT AAAA RRSIG NSEC DNSKEY
NSEC3 Next Secure v3
type 50 · RFC 5155
Même preuve, mais sur des noms hachés pour compliquer l'énumération. La RFC 9276 recommande désormais 0 itération supplémentaire et pas de sel : les valeurs élevées coûtaient cher au serveur sans gêner un attaquant. 1av5tr…example.com. 3600 IN NSEC3 1 0 0 - 3kdmt… A RRSIG
NSEC3PARAM NSEC3 Parameters
type 51 · RFC 5155
Indique aux serveurs faisant autorité quels paramètres de hachage utiliser pour générer les NSEC3 de la zone. example.com. 0 IN NSEC3PARAM 1 0 0 -
CDS Child DS
type 59 · RFC 7344
DS que la zone fille souhaite voir publié par son parent. Permet un renouvellement de clé automatisé, sans intervention manuelle chez le registrar. example.com. 3600 IN CDS 60485 13 2 2bb183af5f22588179a53b0a…
CDNSKEY Child DNSKEY
type 60 · RFC 7344
Même principe, en publiant la clé plutôt que son empreinte : le parent calcule lui-même le DS. La RFC 8078 décrit comment activer DNSSEC pour la première fois avec ces types. example.com. 3600 IN CDNSKEY 257 3 13 mdsswUyr3DPW132mOi8V9x…
ZONEMD Zone Message Digest
type 63 · RFC 8976
Empreinte de la zone entière, permettant à qui la reçoit dans son intégralité de vérifier qu'elle n'a pas été altérée. La zone racine en publie un. example.com. 86400 IN ZONEMD 2026082101 1 1 4f1e2b…
LOC Location
type 29 · RFC 1876
Coordonnées géographiques déclaratives : latitude, longitude, altitude, taille et marges d'erreur. Purement déclaratif : rien n'oblige à la sincérité, d'où son abandon de fait au profit des bases de géolocalisation IP. example.com. 3600 IN LOC 48 51 24.000 N 2 21 8.000 E 35m 1m 10000m 10m
HINFO Host Information
type 13 · RFC 1035
Décrivait à l'origine le processeur et le système d'exploitation d'une machine : une divulgation que plus personne ne souhaite. La RFC 8482 lui a donné une seconde vie : c'est la réponse minimale renvoyée aux requêtes ANY. example.com. 3600 IN HINFO "RFC8482" ""
RP Responsible Person
type 17 · RFC 1183
Adresse électronique du responsable d'un nom (le premier point remplace l'arobase) et nom d'un TXT contenant des informations complémentaires. example.com. 3600 IN RP hostmaster.example.com. contacts.example.com.
KX Key Exchanger
type 36 · RFC 2230
Désigne l'intermédiaire à contacter pour négocier des clés avec un domaine, sur le modèle du MX. Rarement déployé. example.com. 3600 IN KX 10 kx.example.net.
APL Address Prefix List
type 42 · RFC 3123
Liste de préfixes réseau, avec possibilité d'exclusion par un point d'exclamation. Statut expérimental ; utile pour décrire les plages d'un site. example.com. 3600 IN APL 1:203.0.113.0/24 !1:203.0.113.128/25
DHCID DHCP Identifier
type 49 · RFC 4701
Empreinte associant un nom à un client DHCP, pour qu'un serveur ne mette à jour dynamiquement que les noms qu'il a lui-même créés. Voir notre guide du DHCP. host.example.com. 3600 IN DHCID AAIBY2/AuCccgoJbsaxcQc9TUapptP69l…
EUI48 48-bit Extended Unique Identifier
type 108 · RFC 7043
Stocke une adresse MAC dans le DNS. La RFC elle-même met en garde : publier une adresse matérielle expose durablement l'appareil au pistage. host.example.com. 3600 IN EUI48 00-00-5e-00-53-2a
EUI64 64-bit Extended Unique Identifier
type 109 · RFC 7043
Variante 64 bits, correspondant aux identifiants d'interface utilisés notamment par certaines configurations IPv6. host.example.com. 3600 IN EUI64 00-00-5e-ef-10-00-00-2a
NULL Null RR
type 10 · RFC 1035
Conteneur expérimental pouvant renfermer jusqu'à 65 535 octets arbitraires. Jamais utilisé pour son objet initial, mais bien connu des équipes sécurité : c'est un vecteur classique de tunnel de données à travers le DNS. example.com. 3600 IN NULL (pas de représentation textuelle définie)
OPT Option (EDNS(0))
type 41 · RFC 6891
Pseudo-enregistrement qui n'existe jamais dans une zone : il n'apparaît que dans les messages, pour annoncer la taille maximale acceptée, activer DNSSEC (bit DO), transporter un code d'erreur étendu ou le sous-réseau du client. ; EDNS: version: 0, flags: do; udp: 1232 (section OPT PSEUDOSECTION de dig)
TSIG Transaction Signature
type 250 · RFC 8945
Authentifie une transaction entre deux serveurs à l'aide d'un secret partagé : transfert de zone, mise à jour dynamique. Généré à la volée, jamais stocké dans la zone. dig @ns1.example.net -y hmac-sha256:cle1:LeSecret= example.com AXFR
TKEY Transaction Key
type 249 · RFC 2930
Négocie dynamiquement le secret utilisé ensuite par TSIG, notamment avec GSS-TSIG dans les environnements Active Directory. généré par le protocole, absent des fichiers de zone
AXFR Full Zone Transfer
type 252 · RFC 5936
Requête, et non enregistrement : demande la copie intégrale d'une zone. Doit être restreinte aux serveurs secondaires autorisés, sans quoi n'importe qui obtient l'inventaire complet de votre infrastructure. dig @ns1.example.net example.com AXFR
IXFR Incremental Zone Transfer
type 251 · RFC 1995
Ne transfère que les différences depuis un numéro de série donné. Indispensable pour les très grandes zones, où un AXFR complet serait ruineux. dig @ns1.example.net example.com IXFR=2026082100
ANY All records
type 255 · RFC 1035, encadré par RFC 8482
Demande « tout ce que vous avez ». Souvent refusée ou réduite à un HINFO synthétique : la disproportion entre la taille de la requête et celle de la réponse en faisait un outil d'amplification pour les attaques par déni de service. dig example.com ANY
MD / MF Mail Destination / Mail Forwarder
types 3 et 4 · RFC 1035
Ancêtres du MX, déjà déclarés obsolètes dans la RFC 1035 elle-même. Un serveur qui en rencontre doit les traiter comme des MX de préférence 0 et 10. example.com. 3600 IN MD mail.example.com.
WKS Well Known Services
type 11 · RFC 1035
Listait les services TCP/UDP offerts par une adresse. Explicitement déconseillé dès la RFC 1123 : la liste devenait fausse dès le premier changement de configuration. Voir plutôt notre table des ports TCP et UDP. example.com. 3600 IN WKS 203.0.113.10 6 smtp http
A6 IPv6 Address (chaînée)
type 38 · RFC 2874
Tentative de représenter une adresse IPv6 en morceaux chaînés pour faciliter les renumérotations. Reclassé « historique » par la RFC 6563 : trop complexe et trop coûteux en résolutions. AAAA a gagné. example.com. 3600 IN A6 0 2001:db8::10
NXT Next
type 30 · RFC 2535
Première version de la preuve de non-existence, remplacée par NSEC lors de la refonte de DNSSEC (RFC 3755). obsolète, ne plus publier
SIG / KEY Signature / Key
types 24 et 25 · RFC 2535
Ancêtres de RRSIG et DNSKEY, retirés du DNSSEC actuel. KEY et SIG(0) restent employés pour authentifier les mises à jour dynamiques. obsolète pour la signature de zone
DLV DNSSEC Lookaside Validation
type 32769 · RFC 4431
Registre parallèle permettant de valider un domaine dont le TLD n'était pas encore signé. Devenu inutile une fois la racine et les principaux TLD signés ; officiellement abandonné par la RFC 8749. abandonné, les registres publics sont fermés
AFSDB AFS Database
type 18 · RFC 1183
Localisait les serveurs de cellules du système de fichiers distribué AFS. Un usage historique, aujourd'hui remplacé par SRV. example.com. 3600 IN AFSDB 1 afsdb.example.com.
MB / MG / MR / MINFO Mailbox, Mail Group, Mail Rename, Mailbox Info
types 7, 8, 9 et 14 · RFC 1035
Un système de boîtes aux lettres et de listes de diffusion prévu dans le DNS d'origine, resté expérimental et jamais déployé à grande échelle. boite.example.com. 3600 IN MB hote.example.com.
X25 / ISDN / RT Adresse X.121, numéro RNIS, route
types 19, 20 et 21 · RFC 1183
Vestiges de l'interconnexion avec les réseaux X.25 et RNIS des années 1980. Sans usage actuel. example.com. 3600 IN ISDN "150862028003217"
GPOS Geographical Position
type 27 · RFC 1712
Premier essai de position géographique, remplacé par LOC qui apporte l'altitude et les marges d'erreur. example.com. 3600 IN GPOS "2.3522" "48.8566" "35.0"
NSAP / NSAP-PTR Network Service Access Point
types 22 et 23 · RFC 1706
Adressage du modèle OSI, transposé dans le DNS puis abandonné avec OSI lui-même. historique

Astuce : les numéros de type sont attribués par l'IANA dans le registre Resource Record (RR) TYPEs. Un serveur qui ne connaît pas un type sait quand même le stocker et le servir grâce à la syntaxe générique TYPE65534 \# 4 0a0b0c0d définie par la RFC 3597 : c'est ce qui permet de publier un type récent chez un hébergeur dont le logiciel n'a pas été mis à jour.

Les six enregistrements à connaître

Six types suffisent à faire fonctionner un domaine complet, site web et messagerie compris. Chacun a son piège caractéristique.

A et AAAA : les adresses

Ils font le travail de base décrit dans notre guide du DNS : transformer un nom en adresse. Le piège tient au couple : publier un AAAA alors que le serveur ne répond pas correctement en IPv6 dégrade l'expérience des visiteurs dont la connexion est nativement IPv6, la plupart des abonnés Free et Orange en fibre. Le mécanisme de bascule rapide des navigateurs masque souvent le problème, mais pas toujours. Vérifiez que le service répond sur les deux familles d'adresses avant de publier les deux types, comme expliqué dans notre comparatif IPv4 et IPv6.

CNAME : l'alias qui ne supporte pas la compagnie

La règle fondatrice est écrite dans la RFC 1034 et précisée par la RFC 2181 : si un nom porte un CNAME, il ne peut porter aucun autre type. Toute la logique du DNS repose sur cette exclusivité ; un résolveur qui rencontre un CNAME abandonne la requête initiale et repart sur la cible.

Conséquence directe : on ne peut pas mettre de CNAME à l'apex, c'est-à-dire sur example.com sans préfixe. L'apex porte obligatoirement le SOA et les NS de la zone ; la cohabitation est donc impossible par construction. Ce n'est pas une limitation d'hébergeur, c'est le protocole. Les contournements sont au nombre de trois : le pseudo-type ALIAS/ANAME propriétaire, la résolution manuelle en A/AAAA (fragile si la cible change d'adresse), ou l'enregistrement HTTPS en mode alias, qui est la réponse normalisée depuis la RFC 9460 mais suppose que le client la comprenne.

Deux autres règles souvent violées : la cible d'un MX ou d'un NS ne doit jamais être un CNAME, et les chaînes d'alias successifs allongent la résolution d'un aller-retour à chaque maillon.

MX : la priorité inversée

Le nombre qui précède le nom du serveur est une préférence : plus il est petit, plus le serveur est prioritaire. Deux MX de même valeur se partagent la charge ; deux valeurs différentes définissent un principal et un secours. Trois erreurs classiques : écrire une adresse IP à la place d'un nom (interdit), pointer vers un CNAME (interdit), et laisser un domaine sans MX alors qu'il ne reçoit pas de courrier, publiez plutôt un MX nul, qui évite aux expéditeurs de réessayer pendant plusieurs jours.

TXT : le fourre-tout devenu critique

Le TXT ne devait servir qu'à des commentaires. Il porte aujourd'hui l'essentiel de la sécurité du courrier. Deux limites à connaître : chaque chaîne entre guillemets est plafonnée à 255 octets (une clé DKIM de 2 048 bits doit donc être scindée en deux chaînes accolées) et il ne doit exister qu'un seul enregistrement TXT commençant par v=spf1 par domaine. Un second, ajouté par mégarde lors d'une migration, provoque une erreur permanente qui désactive silencieusement votre protection.

NS : la délégation en double

Les NS existent en deux exemplaires : ceux publiés dans votre zone et ceux enregistrés chez le registre du domaine de premier niveau. Ce sont ces derniers qui font foi pour l'entrée dans la zone. S'ils divergent (un serveur retiré de la zone mais toujours déclaré chez le registrar) vous obtenez une délégation boiteuse : certaines requêtes atterrissent sur un serveur qui ne fait plus autorité, avec des résultats intermittents difficiles à diagnostiquer.

Sécuriser son courrier : SPF, DKIM, DMARC

Ces trois mécanismes ne se remplacent pas, ils se complètent, et l'ordre de mise en place compte : activer DMARC en rejet avant d'avoir inventorié ses expéditeurs revient à faire disparaître ses propres messages. Notre guide adresse IP et e-mails détaille le fonctionnement de chacun ; voici la progression opérationnelle.

  1. Recenser puis publier SPF Listez tout ce qui envoie du courrier en votre nom : messagerie principale, outil de facturation, plateforme d'envoi, formulaire du site, applications métier. Publiez un TXT v=spf1 … ~all (échec léger) le temps de valider l'inventaire. Surveillez la limite de dix résolutions DNS : chaque include: en consomme au moins une, et le dépassement invalide toute la politique.
  2. Signer avec DKIM Générez une paire de clés par prestataire et publiez chaque clé publique sur son propre sélecteur. Un sélecteur dédié permet de couper un prestataire ou de renouveler une clé sans toucher aux autres. Contrairement à SPF, la signature DKIM survit à une redirection de boîte aux lettres : c'est elle qui sauve l'authentification quand un abonné fait suivre son courrier vers une autre adresse.
  3. Observer avec DMARC en p=none Publiez v=DMARC1; p=none; rua=mailto:… et laissez tourner plusieurs semaines. Les rapports agrégés quotidiens révèlent les expéditeurs oubliés, et ils le sont toujours. C'est aussi à cette étape que l'on découvre les problèmes d'alignement : SPF et DKIM peuvent réussir tout en authentifiant un domaine différent de celui affiché dans le champ From:, ce que DMARC refuse.
  4. Durcir progressivement Passez à p=quarantine; pct=10, augmentez le pourcentage par paliers en surveillant les rapports, puis p=quarantine; pct=100 et enfin p=reject. Comptez plusieurs mois pour un domaine actif. Ajoutez sp=reject pour les sous-domaines et, sur tous les domaines qui n'envoient jamais rien, publiez directement v=spf1 -all, un MX nul et p=reject : ce sont les cibles favorites de l'usurpation.

Une fois cette base en place, MTA-STS et TLS-RPT ajoutent l'obligation de chiffrement pour le courrier entrant, et BIMI l'affichage du logo, mais BIMI exige au minimum p=quarantine et ne s'active donc qu'en fin de parcours. Pour vérifier ce qui s'est réellement passé sur un message reçu, collez ses en-têtes dans notre analyseur d'en-têtes d'e-mail : les lignes Authentication-Results y sont décodées.

CAA : bloquer un certificat pirate

N'importe quelle autorité de certification publiquement reconnue peut techniquement émettre un certificat pour votre domaine. Le CAA restreint cette liberté : il énumère les autorités que vous autorisez, et les règles du CA/Browser Forum obligent chaque autorité à consulter cet enregistrement avant d'émettre. Une autorité non listée doit refuser.

La syntaxe tient en trois champs : un indicateur (0, ou 128 pour rendre l'étiquette critique), une étiquette, une valeur entre guillemets.

; seule cette autorité peut émettre pour example.com
example.com.  3600  IN  CAA  0 issue "letsencrypt.org"
; aucun certificat générique (*.example.com) n'est autorisé
example.com.  3600  IN  CAA  0 issuewild ";"
; où signaler une demande refusée
example.com.  3600  IN  CAA  0 iodef "mailto:securite@example.com"

Trois précisions utiles. La recherche remonte l'arborescence : si boutique.example.com n'a pas de CAA, l'autorité consulte example.com. Vous protégez donc tout un domaine avec un seul jeu d'enregistrements à l'apex. La valeur ";" seule interdit toute émission : c'est la bonne réponse pour un domaine qui n'héberge aucun service en HTTPS. Enfin, des paramètres complémentaires permettent de restreindre l'émission à un compte précis chez l'autorité (accounturi=) ou à une méthode de validation donnée (validationmethods=), et la RFC 9495 a ajouté l'étiquette issuemail pour les certificats S/MIME.

Attention : Le CAA agit au moment de l'émission, et seulement là. Il ne révoque pas un certificat déjà délivré, ne protège pas contre une autorité qui ignorerait la règle, et n'a de valeur probante que si votre zone est signée par DNSSEC : sans quoi un attaquant capable de falsifier vos réponses DNS falsifierait aussi votre CAA. Le complément indispensable est la surveillance des journaux de Certificate Transparency, qui vous alerte après coup si un certificat inattendu a été émis.

DNSSEC en cinq minutes

Le DNS d'origine ne vérifie rien : un résolveur croit la première réponse plausible qui lui parvient. DNSSEC ajoute des signatures cryptographiques qui permettent de vérifier qu'une réponse provient bien du détenteur de la zone et n'a pas été modifiée en route.

Le mécanisme repose sur une chaîne de confiance qui part de la racine, connue de tous les résolveurs validants, et descend jusqu'à votre domaine : la racine signe les informations du .fr, le .fr signe les vôtres, vous signez vos enregistrements. Quatre types y participent :

  • DNSKEY publie vos clés publiques. En pratique deux : une clé de zone (ZSK) qui signe les enregistrements au quotidien, et une clé de clés (KSK) qui signe le jeu de clés lui-même et change rarement.
  • RRSIG est la signature d'un ensemble d'enregistrements, assortie d'une fenêtre de validité de quelques jours à quelques semaines. Passée cette date, la signature n'est plus acceptée : un domaine dont les signatures ont expiré devient injoignable pour tous les résolveurs validants, y compris ceux des grands fournisseurs d'accès. C'est la panne DNSSEC typique, et elle est totale.
  • DS est l'empreinte de votre KSK, publiée non pas chez vous mais dans la zone parente, via votre bureau d'enregistrement. C'est le maillon qui relie votre domaine au reste de la chaîne ; c'est aussi l'étape la plus souvent oubliée, et une zone signée sans DS publié n'est tout simplement pas validée.
  • NSEC et NSEC3 prouvent qu'un nom n'existe pas, ce qu'une simple signature ne saurait faire. NSEC désigne le nom suivant en clair, ce qui permet de reconstituer toute la zone ; NSEC3 travaille sur des empreintes pour compliquer cet inventaire, avec les paramètres sobres que recommande désormais la RFC 9276.

Les types CDS et CDNSKEY complètent l'ensemble en permettant d'annoncer un changement de clé au parent sans passer par l'interface du registrar : une automatisation précieuse, car un renouvellement de KSK mal séquencé casse la chaîne.

Ce que DNSSEC protège

  • L'intégrité des réponses : une réponse modifiée en chemin est rejetée.
  • L'authenticité : la réponse vient bien du détenteur de la zone.
  • L'inexistence d'un nom, qui ne peut plus être niée ni inventée.
  • Il rend possibles des usages qui en dépendent entièrement, comme DANE/TLSA pour le courrier ou SSHFP.

Ce qu'il ne protège pas

  • La confidentialité : requêtes et réponses restent en clair. C'est le rôle de DoH et DoT.
  • Le dernier kilomètre entre votre machine et le résolveur, sauf si ce lien est lui-même protégé.
  • Le contenu du site atteint : DNSSEC valide une adresse, pas un serveur ni un certificat.
  • Un domaine légitimement enregistré par un fraudeur : un site d'hameçonnage peut parfaitement être signé.

Interroger le DNS soi-même

Consulter un enregistrement ne demande aucun outil en ligne. Trois commandes suffisent, selon le système. Rappelons que si vous avez configuré un résolveur particulier (voyez notre guide pour changer de serveur DNS) c'est lui que ces commandes interrogent par défaut ; ajoutez @adresse ou -Server pour en cibler un autre.

dig (Linux, macOS, WSL)

dig example.com A +noall +answer      # réponse seule, sans le bavardage
dig example.com MX +short             # une valeur par ligne
dig _dmarc.example.com TXT +short     # lire une politique DMARC
dig @9.9.9.9 example.com A +short     # interroger un résolveur précis
dig -x 203.0.113.10 +short            # résolution inverse (PTR)
dig example.com NS +trace             # suivre la délégation depuis la racine
dig example.com A +dnssec             # demander les signatures RRSIG

La sortie complète se lit en quatre points. La ligne status: donne le verdict : NOERROR (réponse valide, éventuellement vide), NXDOMAIN (le nom n'existe pas), SERVFAIL (le serveur a échoué, souvent une validation DNSSEC en défaut). Les flags: comptent autant : aa signale une réponse faisant autorité, ad une réponse validée par DNSSEC. La section ANSWER SECTION contient les enregistrements avec leur TTL restant, qui décroît à chaque nouvelle interrogation du même résolveur : c'est le moyen le plus simple de vérifier qu'une réponse vient d'un cache. Enfin les lignes Query time et SERVER indiquent le délai et le résolveur réellement utilisé.

nslookup (partout, y compris Windows)

nslookup -type=MX example.com
nslookup -type=TXT _dmarc.example.com 1.1.1.1
nslookup -type=SOA example.com
nslookup -debug example.com           # affiche l'échange complet

Deux réflexes : la mention Réponse ne faisant pas autorité est normale, elle signifie seulement que la réponse vient d'un résolveur récursif et non du serveur maître du domaine. Et nslookup s'adresse directement au serveur, en contournant le cache du client Windows : il peut donc afficher une valeur différente de celle qu'utilise réellement votre navigateur.

Resolve-DnsName (PowerShell)

Resolve-DnsName example.com -Type A
Resolve-DnsName example.com -Type MX -Server 9.9.9.9
Resolve-DnsName _dmarc.example.com -Type TXT
Resolve-DnsName example.com -Type A -DnssecOk   # réclame les données DNSSEC
Resolve-DnsName 203.0.113.10 -Type PTR
Get-DnsClientCache | Select-Object Entry, Data, TimeToLive
Clear-DnsClientCache                            # vide le cache local

Cette applet renvoie des objets, non du texte : Resolve-DnsName example.com -Type MX | Sort-Object Preference trie les serveurs par priorité sans aucun découpage de chaîne. Attention toutefois, elle consulte par défaut le fichier hosts et le cache local ; ajoutez -NoHostsFile et -DnsOnly pour n'obtenir que ce que le DNS répond vraiment. Pour identifier le propriétaire d'une adresse obtenue par une de ces commandes, passez-la dans notre outil de recherche d'adresse IP ; et si un sigle rencontré en chemin vous échappe, le glossaire du réseau le définit.

Questions fréquentes

Combien de temps faut-il pour qu'une modification DNS soit visible partout ?

Au pire, la durée du TTL qui était publié avant votre modification. Si vos enregistrements avaient un TTL de 86 400 secondes, un résolveur qui a mis la réponse en cache juste avant votre changement continuera de servir l'ancienne valeur pendant 24 heures. La formule « il faut 48 heures » relève du folklore : elle vient de l'époque où les serveurs faisaient autorité rechargeaient leur zone deux fois par jour.

Peut-on mettre un CNAME sur le domaine racine (l'apex) ?

Non. Un nom qui porte un CNAME ne peut porter aucun autre enregistrement, or l'apex porte obligatoirement un SOA et des NS. Les hébergeurs contournent ce blocage avec un pseudo-type ALIAS ou ANAME, non normalisé, qui résout la cible côté serveur. Le remplaçant standard est l'enregistrement HTTPS en mode alias, décrit par la RFC 9460.

Faut-il encore créer un enregistrement de type SPF (99) ?

Non. La RFC 7208 a retiré le type 99 en 2014 : une politique SPF doit être publiée uniquement dans un enregistrement TXT. Certains panneaux d'hébergement proposent encore un champ « SPF » séparé ; s'il crée un enregistrement de type 99, il est inutile et peut prêter à confusion. Voyez notre guide adresse IP et e-mails.

Un enregistrement TXT peut-il dépasser 255 caractères ?

Oui, mais pas d'un seul tenant. Le protocole limite chaque chaîne de caractères à 255 octets ; un enregistrement TXT peut en contenir plusieurs, qui sont concaténées par le lecteur. C'est pourquoi une clé publique DKIM de 2 048 bits s'écrit en deux chaînes entre guillemets accolées, sans espace ni virgule entre elles.

Pourquoi une requête ANY ne renvoie-t-elle presque rien ?

Parce que la RFC 8482 autorise un serveur à répondre à ANY par un enregistrement minimal plutôt que par le contenu complet du nom. Cette pratique s'est généralisée car ANY servait à amplifier des attaques par déni de service : une petite requête produisait une très grosse réponse. Interrogez les types un par un plutôt que d'utiliser ANY.

DNSSEC protège-t-il ma vie privée ?

Non, et c'est la confusion la plus répandue. DNSSEC signe les réponses : il garantit qu'elles n'ont pas été falsifiées, mais elles circulent toujours en clair, lisibles par qui se trouve sur le trajet. Chiffrer les requêtes relève de DoH et DoT, deux mécanismes complémentaires et indépendants de DNSSEC.