• 12 heures
  • Moyenne

Mis à jour le 15/12/2020

Installez un serveur DNS

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Dans ce nouveau chapitre, je vous propose d’installer le rôle de Serveur DNS sur un serveur. Ce rôle est primordial pour de nombreux autres rôles (Active Directory, pour ne citer que le plus utilisé). Il permet d’associer un nom qualifié à une adresse IP. D’ailleurs, c’est sur ce protocole que se base le web tel que nous le connaissons aujourd’hui.

Rappelez-vous les fondamentaux de DNS

Un client (souvent le navigateur web) envoie une demande pour connaître l’adresse IP du serveur web correspondant à l’adresse que vous avez entrée.

Par exemple, si vous allez sur www.exemple.com, votre navigateur doit demander quelle est l’adresse IP du serveur nommé www dans la zone DNS exemple.com.

Pour cela, il va envoyer une requête au serveur DNS configuré sur votre poste, et faire une demande de type A concernant www.exemple.com. Si votre serveur DNS ne connaît pas la réponse, il va alors se tourner vers un autre serveur DNS (souvent ce sera l’un des serveurs racines (Root Servers) gérant les enregistrements de la zone “.”.

Dans cette zone particulière sont référencés les serveurs des zones “.com”, “.fr”, et d’une manière plus générale ".extension du nom de domaine”.

Alors votre serveur interrogera en retour le serveur de nom de la zone ".com" à la recherche du serveur DNS de la zone ".com", et la mécanique recommencera à la recherche de la zone exemple.com qui renverra, à ce moment-là, l'enregistrement A correspondant au champ www de sa zone : vous devriez avoir l’IP  93.184.216.34.

Schéma de fonctionnement du DNS (@wikipedia)
Schéma de fonctionnement du DNS (@wikipedia)

Installez le rôle Serveur DNS

Maintenant, je vous propose d’installer le rôle DNS sur un serveur Windows. Pour cela, comme vous le savez, rendez-vous sur le gestionnaire de serveur et ajoutez un rôle. À la sélection du rôle, Microsoft vous propose comme pour le DHCP, des fonctionnalités obligatoires :

Fonctionnalités obligatoire du rôle Serveur DNS
Fonctionnalités obligatoires du rôle Serveur DNS

Ensuite, vous avez des informations sur ce rôle, qui vous présentent le fonctionnement général (avec le lien au DHCP) et une configuration possible, préconisée par Microsoft, à savoir l’intégration à l’active Directory. Cela permet de bénéficier du mécanisme de réplication de l’AD pour simplifier la réplication des zones sur les serveurs AD (qui se doivent d’avoir le rôle Serveur DNS pour fonctionner) :

Information sur le rôle Serveur DNS de l’assistant d’installation
Informations sur le rôle Serveur DNS de l’assistant d’installation

Validez les informations finales et lancez l’installation en cliquant sur “Installer”. Vous maîtrisez l’assistant maintenant, non? 😉 

Tableau de bord après installation du rôle Serveur DNS
Tableau de bord après installation du rôle Serveur DNS

Si vous allez sur le tableau de bord de votre serveur, vous pourrez noter à quel point le nommage est primordial ! J’ai volontairement laissé le nom que j’ai positionné sur le serveur lors de l’installation du rôle DHCP, voyez la confusion possible pour l’administrateur :

Rôle DNS installé sur SRVDHCPPAR01
Rôle DNS installé sur SRVDHCPPAR01

Maintenant que vous avez installé ce rôle, je vous propose de vous faire travailler sur sa gestion !

Gérez le service DNS

Tout comme le gestionnaire DHCP, il existe le gestionnaire DNS. Cette console dédiée à l’administration du rôle DNS permet de créer les différentes zones nécessaires au fonctionnement du DNS.

Gestionnaire DNS
Gestionnaire DNS

Avant de créer votre première zone directe, il faut savoir comment un serveur DNS fonctionne : à chaque requête d’un client, la réponse va être mise en cache localement. Ce cache permettra à votre serveur, après avoir récupéré l’adresse IP du serveur www.exefmple.com, de répondre plus rapidement sans avoir à relancer une requête récursive aux serveurs “root”, ainsi qu'au serveur de la zone “exemple.com”. Ce cache doit être géré.

Pourquoi ce cache doit-il être géré ?

Eh bien, tout simplement pour éviter de garder en mémoire l’association www.exemple.com vers l’IP 93.184.216.34.

Eh oui, si l’administrateur de ce serveur décide de changer d’adresse IP, il serait dommage de ne plus pouvoir accéder à www.exemple.com.

Par défaut, cette valeur est d’une journée (24h) pour les réponses positives (une adresse IP au moins existe pour un nom qualifié) et de 15 minutes pour les réponses négatives. Pour afficher ces informations, ouvrez PowerShell et tapez la commande  Get-DnsServerCache  :

Configuration de cache du serveur DNS
Configuration de cache du serveur DNS

Nous reviendrons dans la dernière partie de ce cours sur l’utilisation de PowerShell. Utilisez l’aide en ligne de Microsoft pour modifier ces valeurs.

Enfin, vous allez vous assurer que le rôle DNS est correctement configuré. Dans le gestionnaire DNS, avec un clic droit sur le nom du serveur, choisissez “propriétés” :

Propriété du Serveur DNS
Propriétés du serveur DNS

C’est exactement ce point qu’il faut vérifier.

Sur quelle interface écoute le service DNS ?

Par défaut, il écoutera les requêtes DNS sur toutes les interfaces. Si vous avez un réseau d’administration, il peut être intéressant de ne pas écouter les requêtes sur ce réseau. Je vous propose donc de sélectionner uniquement l’IP fixe que vous avez configurée dans le premier chapitre.

Dirigez-vous sur l’onglet Indication de racine. Allez vérifier que votre serveur connaît les serveurs racines. Ce seront les serveurs qui seront contactés pour identifier une réponse à www.exemple.com par exemple.

Serveurs racine connut de votre serveur DNS
Serveurs racines connus de votre serveur DNS

Vous allez me dire, comment faire pour tester votre serveur DNS ? Il devrait être en mesure de répondre à n’importe quelle demande avec ces serveurs ?

Ouvrez, sur votre serveur, une invite de commande (un Shell). Tapez la commande  nslookup - 10.0.2.15  (où 10.0.2.15 est l’adresse IP de l’interface réseau de votre serveur). Vous entrez alors dans un client DNS interactif, en lien avec votre serveur ! Testez www.exemple.com :

nslookup - 10.0.2.15
Serveur par défaut : UnKnown
> www.exemple.com
Serveur : UnKnown
Réponse ne faisant pas autorité :
Nom : www.exemple.com
Addresses : 2606:2800:220:1:248:1893:25c8:1946
93.184.216.34

Comme votre serveur n’est pas le gestionnaire de la zone exemple.com, il interroge récursivement les serveurs racines, puis le serveur DNS de la zone exemple.com. La réponse que votre serveur vous fournit ne fait pas autorité, car votre serveur la tient d’un autre serveur 😅.

Comment avoir des réponses faisant autorité ?

En disposant d’une zone DNS ; ça tombe bien, c’est ce que vous allez mettre en place !

Mettez en place votre première zone directe

La première étape consiste à choisir un nom de domaine. Je vous propose de prendre une zone privée.

Prenez le cas suivant : suite à la configuration du DHCP, la direction de Gift S.A. vous demande de trouver un moyen de nommer les différents équipements et services sur le réseau. Le directeur en a marre de devoir taper l’adresse IP 10.0.2.10 pour accéder à l’intranet. Vous allez donc créer une zone directe pour le domaine “gift.sa” et y placer un enregistrement A faisant pointer  intranet.gift.sa  vers 10.0.2.10. Ainsi votre directeur pourra tranquillement taperhttps://intranet.gift.sa au lieu de l’adresse IP, mission réussie !

Pour cela, vous disposez (encore) d’un assistant. Faites un clic droit sur le nom du serveur DNS dans le gestionnaire DNS, puis sélectionnez  “Configurer un serveur DNS” ; après l’écran de bienvenue, vous devriez avoir l’écran suivant :

Assistant de configuration d’un serveur DNS
Assistant de configuration d’un serveur DNS

Le premier choix est parfait, c’est ce que vous voulez faire. Validez ce choix par “Suivant”. Sur l’écran suivant, une question étrange est posée : est-ce que vous allez gérer la zone via ce serveur DNS, ou est-ce que votre zone est gérée par un serveur d’un fournisseur de service ?

Gestion d’une zone DNS directe
Gestion d’une zone DNS directe

Comme vous êtes en train de créer une zone privée, ce sera votre serveur qui assurera la maintenance de la zone. Ensuite le nom de la zone : il s’agit de “gift.sa” dans le cas présent. Puis la création du fichier de zone (et son emplacement sur votre serveur). Arrive ensuite la question des mises à jour dynamiques.

Gestion de la mise à jour dynamique des enregistrements DNS
Gestion de la mise à jour dynamique des enregistrements DNS

Ensuite, il vous est proposé de configurer des redirecteurs. Ce sont des serveurs DNS souvent publics qui interrogent les serveurs racines. Vous pourriez par exemple utiliser one.one.one.one (1.1.1.1) qui est un serveur DNS public de ce type, ou google-public-dns-a.google.com (8.8.8.8). Le premier est un service de Cloudfare, le second, de Google. Si vous entrez une adresse IP d’un serveur ne permettant pas ce fonctionnement, l’assistant vous le fera remarquer via l'icône à côté de l’adresse IP :

Configuration des redirecteurs DNS
Configuration des redirecteurs DNS

Je vous propose de ne pas en configurer (ou de laisser tel que, avec 1.1.1.1 et 8.8.8.8). Cela n’a pas une grande importante pour le moment.

Finalisation de la création d’une zone directe
Finalisation de la création d’une zone directe

Votre zone est créée, allez voir maintenant son contenu, en cliquant sur “Terminer” puis en dépliant “Zones de recherche directes” :

Zone de recherche directe “gift.sa”
Zone de recherche directe “gift.sa”

Votre zone ne contient que deux enregistrements qui permettent d’identifier le serveur faisant autorité (SOA), et le serveur de noms (NS). Il serait intéressant de créer votre enregistrement intranet demandé par la direction. Pour cela, un clic droit dans la fenêtre de droite (ou sur le nom de la zone) et sélectionnez “nouvel hôte A ou AAAA”. Les enregistrements A sont pour les IPv4 et les AAAA pour les IPv6. Entrez le nom de l’hôte au sein de la zone (“intranet” donc) et l’adresse IP associée :

Créer un enregistrement A
Créer un enregistrement A

Vous avez ici la possibilité de créer un PTR, vous verrez cela dans la section suivante, d’ici quelques minutes 😉 ; ne cochez pas cette case et validez via “Ajouter un hôte”. Vous remarquerez le champ (non modifiable) du nom de domaine pleinement qualifié (fully qualified domain name - FQDN), il comporte un “point” à la fin qui représente la zone racine (root), suivi de l’extension “sa” puis du domaine “gift”. Le nom qualifié de l’intranet est donc “intranet.gift.sa.”

Pour vérifier que votre enregistrement est correctement créé, relancez une invite de commande et tapez la commande  nslookup intranet.gift.sa 10.0.2.15  pour demander de quelle adresse IP dispose l’hôte “intranet.gift.sa” au serveur 10.0.2.15 :

>nslookup intranet.gift.sa 10.0.2.15
Server : UnKnown
Address: 10.0.2.15

Nom : intranet.gift.sa
Address : 10.0.2.10

Voilà, vous savez créer des enregistrements A sur une zone directe ! Vous allez pouvoir nommer tous vos équipements ou serveurs avec des noms et arrêter d’utiliser les adresses IP.

Découvrez les autres types d’enregistrements

Avant de passer à la zone inversée, je vous propose de voir quelques éléments supplémentaires. Le DNS permet de répondre à une requête d’un client, le type A permet de demander une adresse IP à partir d’un nom, mais de nombreux autres types sont disponible, comme NS qui permet de connaître le serveur de noms. Sous Windows, vous pouvez effectuer des requêtes sur différents types avec l’option  set type=XXX , où XXX est le type demandé.

Un autre type est le SOA (Start Of Autority), permettant de savoir quel serveur fait autorité sur une zone.

>nslookup - 10.0.2.15
Serveur par défaut : UnKnown
Address: 10.0.2.15

>set type=SOA
>gift.sa
Serveur : UnKnown
Address: 10.0.2.15

gift.sa
 primary name server = srvdhcppar01
 responsible mail addr = hostmaster
 serial = 2
 refresh = 900 (15 mins)
 retry = 600 (10 mins)
 expire = 86400 (1 day)
 default TTL = 3600 (1 hour)

>set type=NS
>gift.sa
Serveur : UnKnown
Address: 10.0.2.15

gift.sa nameserver = srvdhcppar01

Un autre type est le CNAME qui permet d’associer un nom à un nom 😐.

Cela peut être pratique pour donner un nom à un serveur en pointant sur le nom du service. Par exemple, cela peut être intéressant d’avoir un nom différent pour administrer l’intranet, mais il peut être long de taper “intranet.gift.sa” lorsque l’on administre ce service. Alors un CNAMEint.gift.sa” pointant sur intranet.gift.sa permet de résoudre ce problème :

>set type=CNAME
>int.gift.sa
Serveur : UnKnown
Address: 10.0.2.15

int.gift.sa canonical name = intranet

Il existe de nombreux types, les plus connus étant NS, SOA, A, AAAA, CNAME, TXT, MX (Mail eXchange pour les serveurs de messagerie). La méthode à mettre en œuvre est la même, quel que soit le type.

Mettez en oeuvre votre première zone inversée

Maintenant que vous disposez d’une zone directe, ne serait-ce pas intéressant de créer une zone inversée ? C’est une association d’une adresse IP à un nom, en somme l’inverse de la zone directe. Cela permet de confirmer que le nom choisi dans une zone directe est bien associé à l’adresse IP, et donc d’interroger un DNS sur une adresse IP, si vous changez l’adresse du serveur DNS configuré sur votre serveur DNS, ici, dans la zone Serveur DNS préféré :

Configuration de votre serveur DNS comme serveur DNS de votre Serveur
Configuration de votre serveur DNS comme serveur DNS de votre serveur

Toutes les requêtes de nom seront alors envoyées à votre serveur. Ouvrez alors une invite de commande et tapez  ping intranet.gift.sa  :

C:\Users\Administrateur>ping intranet.gift.sa

Envoi d'une requête 'ping' sur intranet.gift.sa [10.0.2.10] avec 32 octets de données :
Ctrl+C
^C
C:\Users\Administrateur>ping 10.0.2.10
Envoi d'une requête 'ping' 10.0.2.10 avec 32 octets de données :
Ctrl+C
^C

Le nom intranet.gift.sa est bien résolu (par la zone directe) en 10.0.2.10g mais l’inverse ne se fait pas ! Il vous faut créer une zone inversée.

Pour cela, rendez-vous sur le Gestionnaire DNS et avec un clic droit sur la partie “zone inversée”, sélectionnez “Nouvelle zone” ; après l’écran d’accueil vous devriez arriver sur l’écran suivant :

Création d’une zone inversée
Création d’une zone inversée

Là encore, vous disposez de différents types de zones en fonction du niveau de maîtrise que vous souhaitez. Nous n’aborderons ici que le type principal. L’écran suivant vous propose de choisir entre IPv4 et v6.

Idem, ici restez sur IPv4. Ensuite, vous n’avez plus qu’à entrer l’ID de votre réseau. Il s’agit des octets de l’adresse IP représentant votre réseau et enfin, le nom du fichier de zone vous sera proposé et à nouveau la mise à jour dynamique (idem, on refusera les mises à jour dynamiques) :

Id de réseau
Id de réseau
Finalisation de la création de la zone inversée
Finalisation de la création de la zone inversée

De la même façon que pour une zone directe, vous n’avez que deux enregistrements par défaut :

Zone inversée
Zone inversée

Ajoutez un enregistrement de type PTR pour intranet.gift.sa (vous pouvez parcourir votre zone directe avec l’assistant de création d’enregistrement PTR pour être certain de pointer vers le bon nom !). Entrez l'adresse IP (enfin, juste le dernier octet) et vous obtenez votre premier enregistrement :

Enregistrement PTR
Enregistrement PTR

Pour tester la résolution de ce type avec un  ping, ajoutez  -a  à votre ligne de commande.

C:\Users\Administrateur>ping -a 10.0.2.10

Envoi d'une requête 'ping' sur intranet.gift.sa [10.0.2.10] avec 32 octets de données :
Ctrl+C
^C

Voilà, vous avez maintenant un serveur DNS configuré pour simplifier la gestion du réseau de votre entreprise Gift S.A. Si vous souhaitez diagnostiquer le fonctionnement de votre serveur DNS, reprenez les méthodes et outils énoncés dans le chapitre précédent, ils restent valables pour tous les rôles et fonctionnalités !

Une dernière chose

Avant de vous laisser configurer d’autres rôles, il reste quelques configurations à mettre en œuvre. La première est le transfert de zone. Cette fonctionnalité est intéressante dans le cas où vous avez plusieurs serveurs pour une même zone (ce qui est une bonne chose), mais peut se montrer dangereuse si vous exposez votre serveur DNS publiquement.

Pour cela, faites un clic droit sur le nom de votre zone, allez dans l’onglet “Transfert de zone” et refusez les transferts, ou listez les serveurs de confiance que vous allez autoriser à récupérer vos enregistrements ! Une bonne pratique consiste également à journaliser toutes les transactions DNS, mais cela vous le verrez en détail dans les cours concernant la surveillance d’un système :

Paramétrage des transferts de zone
Paramétrage des transferts de zone

Enfin, vous pouvez lancer le BPA de Microsoft sur ce rôle, pour vous assurer que votre configuration respecte les bonnes pratiques de Microsoft.

N’oubliez pas d’autoriser le port UDP 53 sur votre pare-feu, sinon votre serveur DNS ne sera pas accessible sur le réseau ; rappelez-vous, vous avez activé le pare-feu pour bloquer tous les flux n’étant pas couverts par une règle de flux entrant !

Vous pouvez maintenant poursuivre votre apprentissage avec la mise en oeuvre du rôle Serveur de fichiers !

En résumé

  • Le rôle DNS de Windows Server permet de créer des zones directes et inversées ;

  • Le serveur DNS permet de résoudre des noms en adresses IP et des adresses IP en noms ;

  • Le transfert de zone doit être restreint aux serveurs de confiance uniquement ;

  • Un serveur DNS s’interroge à l’aide de la commande nslookup ou via les navigateurs web (entre autres).