Comprendre le fonctionnement du DNS
Comprendre le fonctionnement du DNS
Yazid AKANHO
Office of the CTO - ICANN
August 2020
Agenda
1 2
Il était une fois… Évolution du DNS
3 4
Base de données et Résilience, Aperçu de
données DNS, processus de l’administration de la Zone
résolution Racine.
|2
Il était une fois…
Noms et Nombres
◉ Les adresses IP sont faciles à utiliser pour les machines, les humains
préfèrent utiliser des noms.
|4
Résolution de nom
◉ Au début d’Internet, la resolution de noms était basée sur le fichier en clair appelé
[Link]
|5
Problèmes avec [Link]
◉ Contention de nommage
• Modifications effectuées à la main dans un fichier texte (pas de base de données)
Pas de bonne méthode pour empêcher les doublons
◉ Synchronisation
• Personne n’a jamais eu la version à jour du fichier
|6
DNS à la rescousse
◉ Objectifs:
◉ Résoudre la difficulté de réplication de [Link]
◉ Simplifier le routage des e-mails
Top-level
xn--j6w193g uk com coffee nodes
Levels
Second-level
foo bar example nodes
Third-level
www www www mail nodes
|9
Syntaxe de l’étiquette
◉ Les caractères autorisés pour les noms sont: lettres, chiffres, trait
d’union
Longueur maximale 63 caractères
Les comparaisons de noms ne sont pas sensibles à la casse
“.”
| 10
Noms de Domaine
| 11
Fully Qualified Domain Names (FQDN)
“.”
| 12
Domaines
“.”
| 13
Zones
◉ L’administrateur d’une zone peut librement déléguer l’administration d’une partie de cette
zone, ce qui crée une nouvelle zone.
| 14
Les zones sont des frontières administratives
“.”
www www
www mail
| 15
Les délégations créent de Nouvelles zones
“.”
www www
www mail
| 16
Base de données et données DNS
Données DNS
◉ Le standard DNS spécifie le format des données DNS transmises à travers le reseau.
◉ Un fichier de zone comporte toutes les données de cette zone au format master file
format.
| 18
Enregistrements DNS
| 19
Fichiers de zone
| 20
Format of Resource Records
| 21
Format du Master File
| 22
Types d’enregistrements de ressources courants
◉ A adresse IPv4
| 23
En réalité, une multitude de type d’enregistrement de
ressource
| 24
Enregistrements de type adresse IP (A & AAAA)
◉ L’utilisation la plus courante de DNS consiste à associer des noms de domaine à des adresses
IP
Les deux principaux types d’enregistrement de resource sont:
⚪ Enregistrement A: fait le lien entre un nom de domaine et une adresse IP
[Link]. A [Link]
| 25
Name Server (NS)
[Link]. NS [Link].
[Link]. NS [Link].
| 26
Les enregistrements de type NS représentent la délégation
“.”
com. NS
[Link].
com. NS
[Link].
com. NS
[Link].
com. NS
[Link].
xn--j6w193g uk com coffee
com. NS
[Link].
com. NS
[Link].
com. NS
[Link].
com. NS
[Link].
com. NS
foo bar example
[Link].
com. NS
[Link].
com. NS
[Link].
www www com. NS
[Link].
www com. mail
NS
[Link].
| 27
Les enregistrements NS apparaissent en deux endroits
com. NS
“Parent zone” “.” [Link].
com. NS
[Link].
com. NS
[Link].
com. NS
[Link].
com. NS
[Link].
com. NS
com [Link].
“Child zone” com. NS
[Link].
NS NS NS … NS com. NS
[Link].
(13 NS records total) com. NS
[Link].
com. NS
[Link].
com. NS
[Link].
com. NS
[Link].
com. NS
[Link].
| 28
Glue Records
◉ utile pour rompre la dépendance circulaire lorsque le nom du serveur de noms se termine par
le nom de la zone déléguée
[Link]. NS [Link].
| 29
Exemple de glue record
“.”
[Link]. NS [Link].
[Link]. NS [Link].
[Link]. NS
[Link].
[Link]. NS
[Link].
xn--j6w193g uk com coffee
[Link]. NS
[Link].
[Link]. NS
[Link].
[Link]. NS
[Link].
[Link]. NS
[Link].
foo bar example
[Link]. NS
[Link].
[Link]. A [Link]
NS NS NS …
[Link]. A [Link]
www www
www mail ns1 ns2
A A
| 30
Start of Authority (SOA)
◉ Chaque domaine doit avoir un enregistrement de ressource Start of Authority là où la délégation lui a
été faite au niveau de la zone parent.
◉ SOA indique qu’un serveur de noms fait autorité pour un domaine. Si nous ne recevons pas un RR
SOA dans une réponse de requête à partir d’un serveur, cela indique que le serveur ne fait pas
autorité pour ce domaine.
◉ Les serveurs de noms DNS sont normalement configurés en clusters (master et secondaires). La
base de données de chaque cluster est synchronisée par le biais de transferts de zone. Les
données d’un enregistrement SOA pour une zone sont utilisées pour contrôler le transfert de zone.
| 31
Start of Authority (SOA)
SOA contient les champs suivants:
⚪ mname: le principal serveur de nom pour le domaine, ou le 1er serveur de nom dans la
liste des serveurs de nom pour ce domaine. Ex: [Link], mname [Link].
⚪ rname: l’adresse e-mail d’un responsible technique du domaine. Pour une adresse mail
[Link]@[Link]; on aura john\.[Link] .
⚪ serial: Le numéro de version de la copie originale de la zone (ne change pas Durant les
transferts de zone). Si un serveur de noms secondaires asservi à celui-ci observe une
augmentation de ce nombre, l’esclave supposera que la zone a été mise à jour, et il
lancera un transfert de zone. Les mises à jour de zone sont indiquées par le cachet de
date et d’heure (ex: si update le19 March 2020 at [Link]hs le serial pourrait être
20200316155500).
| 32
Start of Authority (SOA) (2)
⚪ refresh: Nombre de secondes avant qu’un NS secondaire ne vérifie les mises à jour de
zone. Généralement 24hs (86400 s).
⚪ retry: Nombre de secondes avant qu’un rafraîchissement (failed refresh) qui a échoué soit
repris. Valeur normalement inférieure à refresh. En général 2hs (7200 s).
⚪ expire: Limite supérieure en secondes avant qu’un serveur de noms secondaires ne cesse
de répondre aux demandes de la zone si le maître ne répond pas. Généralement, 1000hs
(360000 s).
| 33
Start of Authority (SOA) (3)
⚪ minimum: Le TTL pour des caching négatifs (temps pendant lequel le resolver gardera
cette réponse negative comme valide avant une nouvelle tentative).
| 34
CANNONICAL NAME (CNAME)
◉ Le nom canonique (CNAME) est normalement utilisé pour alias un nom à un autre (mais ne le
confondez pas avec un ALIAS). Dans le cas de CNAME, il ne devrait pas y avoir d’autres
enregistrements sur le même nom.
[Link]. A [Link]
| 35
CANNONICAL NAME (CNAME)
◉ Quelques limites:
⚪ Les enregistrements CNAME ne doivent pas pointer directement vers une adresse IP, mais
toujours vers un autre nom de domaine.
⚪ Les enregistrements CNAME ne peuvent pas coexister avec un autre enregistrement pour
le même nom. Il n’est pas possible d’avoir à la fois un enregistrement CNAME et TXT pour
[Link].
Un CNAME peut pointer vers un autre CNAME, bien qu’il ne soit généralement pas
recommandé pour des raisons de performance. Le CNAME doit pointer le plus près
possible du nom de la cible afin d’éviter les problèmes de performance.
⚪ Il n’y a pas de corrélation directe entre un CNAME et une redirection HTTP. La
configuration d’un CNAME n’entraîne pas automatiquement de redirection HTTP.
| 36
Mail Exchange (MX)
◉ Dans le bon vieux temps: rechercher l’adresse de [Link] et livrer via SMTP à cette
adresse
⚪ Défaut de flexibilité: nom de domaine dans l’adresse e-mail doit être (aussi) un serveur de
messagerie
⚪ N’était pas un souci à l’époque de [Link] : les e-mails étaient au format user@host
⚪ Mais que faire si l’adresse e-mail est un hôte qui n’est pas sur Internet?
• E.g., UUCP
⚪ Ou, vous voulez que le serveur de messagerie sur un serveur différent du serveur de ce
domaine?
| 37
Mail Exchange (MX)
[Link]. MX 10 [Link].
[Link]. MX 20 [Link].
◉ Le nom du propriétaire correspond au nom de domaine dans une adresse e-mail, c’est-à-dire à
la droite de l’«@»
La preference est un nombre après le “MX”, le plus bas est préféré.
◉ Le champ le plus à droite est le nom de domaine d’un serveur de messagerie qui accepte lee
mails.
| 38
Reverse DNS (PTR)
◉ L’utilisation la plus courante de DNS consiste à mapper des noms de domaine à des adresses
IP.
◉ DNS mappe également les adresses IP aux noms de domaine. C’est ce qu’on appelle le DNS
inverse et il utilise le type PTR RR.
IPv4 reverse DNS est associé à un domaine spécial (subtree) appelé [Link].
◉ IPv6 reverse DNS est associé à un domaine spécial (subtree) appelé [Link].
◉ Pour représenter l’adresse IPv4 [Link] de [Link] nom de domaine, nous renversons
l’adresse IPv4 et ajoutons le suffixe de domaine de deuxième niveau [Link]. Résultat
final:
[Link].[Link].
| 39
Reverse DNS entries (PTR)
28 0 33
1 2
6 7
| 40
Quelques autres types d’enregistrements
◉ TXT
⚪ Juste du texte
◉ URI, NAPTR
⚪ associe noms de domaine to URIs
◉ TLSA
⚪ Utilisé par DANE pour associer les certificats X.509 à un domaine.
◉ LOC, GPOS
⚪ Information de localicasion
| 41
Exemple de fichier de zone: [Link]
| 42
Processus de résolution
DNS en bref
◉ Optimisations:
◉ Caching pour améliorer les performances
◉ Réplication pour assurer la redondance et la distribution de charge.
| 44
Composants du DNS
Recursive Name Server
Authoritative
Name Server
Name
Resolver
Server
DNS query DNS queries
and response and responses
Cache
Stub Authoritative
Resolver Name Server
API call
Authoritative
Name Server
| 45
Serveurs de Noms (NS) et Zones
◉ Un serveur de nom faisant autorité (authoritative) sur une zone a une connaissance
complète de cette zone
⚪ Peut fournir une réponse définitive aux requêtes sur cette zone
| 46
Processus de résolution de noms
◉ Le stub resolver, le serveur de nom récursif et les serveurs faisant autorité collaborent
ensemble pour rechercher les informations DNS dans l’espace de nommage.
| 47
Processus de résolution de noms
| 48
Processus de résolution de noms
Mais en fait …
◉ Il n’y a aucune donnée en local, comment démarrer la resolution de noms? (un resolver qui
vient d’être mis en service!)
⚪ Cache (si activé!) vide
⚪ Ne fait autorité sur aucune zone
◉ Mais comment le resolver trouve les enregistrements NS, A/AAAA des serveurs racine?
⚪ Ils doivent être configures quelque part! (Ah oui, les logiciels DNS sont preconfigures avec
une version à jour d’un fichier appelé root hint file)
⚪ Il n’y a pas une autre alternative de découverte
◉ Le root hints file contient les nom et adresses IP des serveurs racine.
⚪ [Link]
| 49
Liste des Serveurs Racine et fichier Root Hints
. NS [Link].
. NS [Link].
. NS [Link].
. NS [Link].
. NS [Link].
. NS [Link].
. NS [Link].
. NS [Link].
. NS [Link].
. NS [Link].
. NS [Link].
. NS [Link].
. NS [Link].
[Link]. A [Link]
[Link]. A [Link]
[Link]. A [Link]
[Link]. A [Link]
[Link]. A [Link]
[Link]. A [Link]
[Link]. A [Link]
[Link]. A [Link]
[Link]. A [Link]
[Link]. A [Link]
[Link]. A [Link]
[Link]. A [Link]
[Link]. A [Link]
[Link]. AAAA [Link]
[Link]. AAAA [Link]
[Link]. AAAA [Link]
[Link]. AAAA [Link]
[Link]. AAAA [Link]
[Link]. AAAA [Link]
[Link]. AAAA [Link]
[Link]. AAAA [Link]
[Link]. AAAA [Link]
[Link]. AAAA [Link]
[Link]. AAAA [Link]
[Link]. AAAA [Link]
| 50
Comprendre le caching
◉ Lorsqu’un resolver récursif démarre, il n’a aucune dnnée DNS relative aux noms de domaine (à
l’exception des serveurs racine, dont les adresses IP et noms se trouvent dans ses fichiers de
configuration).
◉ Chaque fois que le resolver récursif apprend la réponse à une requête, il met en cache les
données afin de pouvoir les réutiliser pour les futures requêtes identiques.
◉ Lorsque le TTL expire, le resolver efface ces données de son cache. Toute requête future
donne lieu à une nouvelle recherche.
| 51
Processus de résolution de noms
Stub
Resolver
| 52
Processus de résolution de noms
Stub
Resolver
“[Link]”
| 53
Processus de résolution de noms
Stub
Resolver
| 54
Processus de résolution de noms
Stub
Resolver
| 55
Processus de résolution de noms
Recursive Resolver
[Link]
Here are the name [Link]
servers for .com.
Stub
Resolver
| 56
Processus de résolution de noms
Recursive Resolver
[Link]
[Link]
| 57
Processus de résolution de noms
| 58
Processus de résolution de noms
[Link]
What’s the IP address
Stub
of [Link]?
Resolver
[Link]
| 59
Processus de résolution de noms
[Link]
Stub
Resolver
[Link]
| 60
Processus de résolution de noms
[Link]
Stub
Resolver
[Link]
| 61
Processus de résolution de noms
[Link]
Stub
Resolver
[Link]
[Link]
[Link]
| 62
Processus de résolution de noms
◉ Le resolver garde en cache toutes ces données afin d’être plus rapide dans les prochaines
résolutions de noms sans devoir reprendre toutes ces étapes intermédiaires.
…..
| 63
Processus de résolution de noms
Stub
Resolver
“[Link]”
| 64
Processus de résolution de noms
Stub
Resolver
| 65
Processus de résolution de noms
[Link]
What’s the IP address
Stub
of [Link]?
Resolver
[Link]
| 66
Processus de résolution de noms
[Link]
Stub
Resolver
[Link]
| 67
Processus de résolution de noms
[Link]
Stub
Resolver
[Link]
| 68
Processus de résolution de noms
Recursive Resolver
[Link]
[Link]
[Link]
Stub
Resolver
[Link]
[Link]
[Link]
| 69
Résilience DNS #1
Résilience DNS #1
◉ Les zones doivent disposer de plusieurs serveurs faisant autorité sur ladite zone
⚪ Pour assurer la redondance
⚪ Pour répartir la charge
| 71
Synchronisation de serveurs autoritaires
◉ Comment maintenir alignées les données se trouvant dans les fichiers de zone dupliquées à travers plusieurs
serveurs?
◉ Les serveurs secondaires obtiennent les données à jour de la zone à travers une opération appelée zone
transfer permettant de copier le fichier de zone depuis un autre serveur autoritaire.
⚪ Le serveur duquel il copie s’apelle primary server
◉ L’opération de transfert de zone est initiée par le NS [Link] transfer is initiated by the secondary
⚪ Chaque NS secondaire interroge le primary de façon périodique pour vérifier s’il y a une mise à jour.
| 72
Aperçu de l’administration de la Zone Racine
Aperçu de l’administration de la Zone Racine
◉ Douze organisations administrent les Treize instances de serveurs faisant autorité sur le zone
racine.
| 74
Les Opérateurs de Serveurs Root
◉ AVerisign
◉ BUniversity of Southern California Information Sciences Institute
◉ CCogent Communications, Inc.
◉ DUniversity of Maryland
◉ EUnited States National Aeronautics and Space Administration (NASA) Ames
Research Center
◉ F Information Systems Consortium (ISC)
◉ G United States Department of Defense (US DoD)
Defense Information Systems Agency (DISA)
◉ HUnited States Army (Aberdeen Proving Ground)
◉ I Netnod Internet Exchange i Sverige
◉ J Verisign
◉ KRéseaux IP Européens Network Coordination Centre (RIPE NCC)
◉ L Internet Corporation For Assigned Names and Numbers (ICANN)
◉ M WIDE Project (Widely Integrated Distributed Environment)
| 75
Processus de changements dans la Zone Racine
1. Submit IANA
Note: le diagramme montre une
TLD change Functions Root Zone
version très simplifiée du processus
Operator Database
Manager actuel.
2. Request
implementation
Root Zone
Maintainer
ICANN 3. Update root
Root Zone zone database
Database
VERISIGN
4. Create root
Root Zone zone file
ROOT ZONE OPERATORS File
6. Transfer root
zone
A B C D E F G H I J K L M
Root Servers
| 76
Résilience DNS #2
Résilience DNS #2– (Résilience du Système de Serveurs Root)
◉ Un Opérateur de serveur racine peut déployer des copies de son serveur n’importe où
dans le monde grâce à la technique anycast
⚪ Assurer la redondance et résilience globale de l’infrastructure DNS.
⚪ Répartir la charge entre plusieurs serveurs.
◉ Toutes les instances doivent avoir la même donnée afin de s’assurer que tous répondront
de la même manière aux requêtes DNS et aussi s’assurer de la convergence d’Internet.
| 78
Le Système de Serveurs Racine actuel: [Link]
A: 53 C: 10 E: 308 G: 06 I: 72 K: 78 M: 09
| 79
Visit us at [Link]
| 80