doc:dns
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
doc:dns [2014/03/31 14:56] – [Fichier de zone] julien.lepiller | doc:dns [2020/07/19 07:54] (Version actuelle) – typo fix chiahetcho | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | Le DNS ('' | + | ====== |
- | ===== Comprendre le DNS ===== | + | Le DNS (//Domain Name System//) est le nom du protocole et de la base de données permettant la traduction entre nom de domaine et adresse IP. |
- | ==== Pourquoi | + | |
- | La section | + | ===== Pourquoi le DNS ? ===== |
+ | |||
+ | ==== Nom de domaine vs adresse IP ==== | ||
+ | |||
+ | Une correspondance entre noms de domaines et adresses IP a toujours été désirable, même avant que le DNS soit utilisé. | ||
+ | |||
+ | * **Les adresses IP sont difficiles à mémoriser** : '' | ||
+ | * **Elles dépendent de la topologie** : Si le réseau change, les noms restent les mêmes et pointent vers les nouvelles adresses IP | ||
+ | * **Elles sont limitées à un type de connectivité** : Contrairement à une adresse IP, un nom peut pointer vers plusieurs types d' | ||
+ | |||
+ | ==== DNS vs hosts.txt ==== | ||
+ | |||
+ | À l' | ||
+ | |||
+ | Grâce au DNS, aucun serveur n'est obligé de connaître toutes les correspondances entre noms et adresses. On dit que le système est réparti. En revanche, il n'est pas décentralisé car il y a une hiérarchie entre les serveurs DNS dans laquelle quelques serveurs //racine// sont au sommet. | ||
+ | |||
+ | ===== Comment ça marche ? ===== | ||
+ | |||
+ | ==== Protocole ==== | ||
+ | |||
+ | On a tendance à penser que le DNS envoie les données uniquement en [[UDP]] sur le port 53 mais en réalité le [[TCP]] peut également être utilisé. En effet, originellement, | ||
+ | |||
+ | [[http:// | ||
==== Fichier de zone ==== | ==== Fichier de zone ==== | ||
- | Le fichier de zone décrit une zone du DNS. Ce fichier a une syntaxe définie par la RFC et ne dépend pas du serveur utilisé. | + | |
+ | Sur le serveur, un fichier de zone décrit une zone du domaine. Ce fichier a une syntaxe définie par la [[http:// | ||
Voici un exemple de fichier de zone : | Voici un exemple de fichier de zone : | ||
Ligne 38: | Ligne 60: | ||
la définition du TTL n’est pas obligatoire. '' | la définition du TTL n’est pas obligatoire. '' | ||
- | === Enregistrements | + | === Enregistrements |
* A : renseigne une adresse IPv4. | * A : renseigne une adresse IPv4. | ||
Ligne 48: | Ligne 70: | ||
* TXT : peut contenir n’importe quel texte, entre guillemets doubles. | * TXT : peut contenir n’importe quel texte, entre guillemets doubles. | ||
- | === Enregistrements DNSSEC | + | === Sécurité |
- | DNSSEC ajoute plusieurs types d’enregistrement : | + | Le système des DNS n'a pas pris en compte la sécurité lors de sa création. Une étude |
- | + | ||
- | * DS : Delegation Signer. Équivalent | + | |
=== Note sur le serial === | === Note sur le serial === | ||
- | Le serial est un numéro qui identifie la version de votre fichier de zone. Il est important de **toujours** l’augmenter à chaque modification. En effet, c’est sur ce nombre que se base les serveurs caches et // | + | Le serial est un numéro qui identifie la version de votre fichier de zone. Il est important de **toujours** l’augmenter à chaque modification. En effet, c’est sur ce nombre que se base les serveurs caches et esclave |
==== Résolution ==== | ==== Résolution ==== | ||
=== Utiliser dig === | === Utiliser dig === | ||
Ligne 123: | Ligne 144: | ||
</ | </ | ||
- | On peut aussi lui demander de vérifier les zones en utilisant [[#DNSSEC|DNSSEC]]. Si la zone est validée, le flag '' | + | On peut aussi lui demander de vérifier les zones en utilisant [[DNSSEC]]. Si la zone est validée, le flag '' |
$ dig +dnssec isc.org | $ dig +dnssec isc.org | ||
; <<>> | ; <<>> | ||
Ligne 143: | Ligne 164: | ||
=== Fonctionnement === | === Fonctionnement === | ||
- | Comment un serveur récursif fait-il pour résoudre federez.net ? Imaginons que son cache est vide. Pour fonctionner, | + | Comment un serveur récursif fait-il pour résoudre federez.net ? Imaginons que son cache est vide. Pour fonctionner, |
- | A partir de là, le serveur demande à '' | + | A partir de là, le serveur demande à //.// « qui est //federez.net.// ? ». Le serveur répond qu’il ne sait pas, mais qu’il est capable de trouver |
Pour passer d’un niveau à un autre, il faut que l’IP du niveau inférieur soit référencée par le niveau supérieur. C’est le rôle des enregistrements NS, qui indique le nom de domaine à qui est déléguée la zone. Ce serveur doit lui-même contenir cet enregistrement NS et peut définir de nouvelles zones. Il n’est pas obligatoire que le serveur de nom pointé par le niveau supérieur soit le serveur répondant au nom de domaine du domaine inférieur. | Pour passer d’un niveau à un autre, il faut que l’IP du niveau inférieur soit référencée par le niveau supérieur. C’est le rôle des enregistrements NS, qui indique le nom de domaine à qui est déléguée la zone. Ce serveur doit lui-même contenir cet enregistrement NS et peut définir de nouvelles zones. Il n’est pas obligatoire que le serveur de nom pointé par le niveau supérieur soit le serveur répondant au nom de domaine du domaine inférieur. | ||
- | Par exemple, il est possible d’avoir la configuration suivante dans le niveau supérieur ('' | + | Par exemple, il est possible d’avoir la configuration suivante dans le niveau supérieur (//com.// par exemple) : |
< | < | ||
example IN NS ns.example.com | example IN NS ns.example.com | ||
Ligne 164: | Ligne 185: | ||
=== Résolution inverse === | === Résolution inverse === | ||
- | Le DNS est aussi capable de traduire une adresse IP en un nom de domaine. Pour cela, une zone spéciale, | + | Le DNS est aussi capable de traduire une adresse IP en un nom de domaine. Pour cela, une zone spéciale, |
Par exemple, une IP de federez.net donne : | Par exemple, une IP de federez.net donne : | ||
< | < | ||
Ligne 174: | Ligne 195: | ||
</ | </ | ||
- | ===== DNSSEC ===== | + | '' |
- | + | < | |
- | La section est vide. | + | $ dig -x 65.155.228.160 |
+ | … | ||
+ | ;; ANSWER SECTION: | ||
+ | 65.155.228.160.in-addr.arpa. 86400 IN PTR quigon.rez-gif.supelec.fr. | ||
+ | … | ||
+ | </ | ||
===== Configuration de bind ===== | ===== Configuration de bind ===== | ||
Ligne 207: | Ligne 233: | ||
'' | '' | ||
- | Le type peut être '' | + | Le type peut être //master// ou //slave//. Un //slave// demandera à un //master// de lui transférer sa zone. |
'' | '' | ||
Ligne 234: | Ligne 260: | ||
===== Unbound comme résolveur récursif ===== | ===== Unbound comme résolveur récursif ===== | ||
- | [[https:// | + | [[https:// |
<Exemple de configuration avec contrôle d' | <Exemple de configuration avec contrôle d' | ||
Ligne 247: | Ligne 273: | ||
===== Liens externes ===== | ===== Liens externes ===== | ||
- | * [[https:// | ||
* [[https:// | * [[https:// | ||
- | * [[https:// | + | * [[https:// |
* [[https:// | * [[https:// | ||
+ |
doc/dns.1396277807.txt.gz · Dernière modification : 2014/03/31 14:56 de julien.lepiller