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 91.198.174.232.
Avant de passer à la suite, si vous utilisez une machine virtuelle, vous allez devoir apporter quelques modifications à cette VM (Virtual Machine).
Comme vous le voyez sur le schéma précédent, votre serveur DNS doit pouvoir :
Recevoir des requêtes provenant des machines sur votre réseau privé ;
Envoyer des requêtes vers des serveurs DNS publiques (qui se trouvent sur internet).
Il doit donc être connecté à la fois à votre réseau privé d’entreprise et au réseau internet, tout cela avec une carte réseau ayant une adresse IP fixe. En effet l’adresse IP d’un serveur DNS (tout comme celle d’un serveur DHCP), doit toujours être statique pour qu’il puisse être facilement retrouvé par les machines clients.
Pour pouvoir obtenir cette configuration sur VirtualBox (accès réseau privé + accès réseau internet + choix d’une adresse IP fixe), vous allez devoir modifier le mode de connexion dans Virtualbox.
Pour cela, éteignez votre VM et allez dans les paramètres de VirtualBox :
Dans la fenêtre suivante, rendez-vous dansl'onglet "Réseau" et ajoutez un nouveau réseau NAT :
Dans les propriétés de ce réseau vous pouvez renseigner quel réseau IP vous souhaitez utiliser sur votre VM et surtout, vous pouvez décider de désactiver le DHCP sur ce réseau afin de pouvoir choisir manuellement l’adresse IP de vos VM. Décochez donc la case “Supporte le DHCP” :
Vous pouvez valider les paramètres. Il ne vous reste plus qu'à associer la carte réseau de votre serveur Windows à ce nouveau réseau NAT nommé NATNetwork.
Pour cela rendez-vous dans la configuration matérielle de votre VM et sélectionnez ce nouveau mode réseau :
Une fois la configuration terminée, validez et démarrer votre serveur Windows. Vérifiez maintenant simplement que votre carte réseau soit bien configurée avec une adresse IP statique qui soitdans le réseau que vous avez défini lors de la création du réseau NAT Virtualbox.
Dans notre cas nous venons de créer un réseau NAT défini sur 10.0.2.0/24, nous pouvons donc choisir par exemple l’adresse IP 10.0.2.15. Renseignez également bien la passerelle qui sera toujours la première adresse du réseau, ici 10.0.2.1 :
Avec cette configuration vous devriez avoir accès à Internet depuis votre serveur, ce qui sera indispensable pour le fonctionnement du DNS.
Vous pouvez vérifier cela en faisant un ping vers l’adresse 8.8.8.8 par exemple :
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 :
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) :
Validez les informations finales et lancez l’installation en cliquant sur “Installer”. Vous maîtrisez l’assistant maintenant, non ?
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 :
Maintenant que vous avez installé ce rôle, je vous propose de 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.
Pour y accéder, faites un clic droit sur votre serveur, puis "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.exemple.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 91.198.174.232.
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 (24 h) 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
:
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” :
Le premier onglet permet de définir sur quelle inerface votre serveur va recevoir et accepter les requêtes DNS. Dans notre cas, nous n'avons qu'une seule interface mais il est très courant que les serveurs d'entreprie aient plusieurs interfaces réseau.
Mais alors sur quelle interface doit écouter le service DNS ?
Tout dépend de votre réseau. Par défaut, il écoutera les requêtes DNS sur toutes les interfaces, et ce n'est pas du tout une bonne pratique. Si par exemple mon serveur avait 2 interfaces : une pour communiquer avec internet, et une autre pour communiquer avec le réseau privé de l'entreprise, il faudrait lui dire d'écouter les requêtes provenant uniquement du réseau privé. En effet, c'est de là que vont arriver les requêtes DNS, il n'y a donc aucune raison d'écouter également sur l'autre interface.
Dans notre cas, je vous propose 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.
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
107.180.40.145
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. Cliquez sur Action en haut de votre écran puis sélectionnez “Nouvelle zone...”.
Après l’écran de bienvenue, vous devriez avoir l’écran suivant :
Le premier choix est parfait, c’est ce que vous voulez faire. Validez ce choix par “Suivant”, jusqu’à arriver sur la page du 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). Par défaut, le fichier s'appellera gift.sa.dns. Arrive ensuite la question des mises à jour dynamiques.
Votre zone est créée, allez voir maintenant son contenu, en cliquant sur “Terminer” puis en dépliant “Zones de recherche directes” :
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 :
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 disponibles, 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 CNAME “int.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 œuvre 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é :
Toutes les requêtes de nom seront alors envoyées à votre serveur. Ouvrez alors une invite de commande et tapez nslookup intranet.gift.sa
:
C:\Users\Administrateur>nslookup intranet.gift.sa Serveur : UnKnown Address: 10.0.2.15 Nom : intranet.gift.sa Address: 10.0.2.10 C:\Users\Administrateur>nslookup 10.0.2.10 Serveur : UnKnown Address: 10.0.2.15 *** UnKnown ne parvient pas à trouver 10.0.2.10 : Non-existent domain
Le nom intranet.gift.sa est bien résolu (par la zone directe) en 10.0.2.10, 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 :
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) :
De la même façon que pour une zone directe, vous n’avez que deux enregistrements par défaut :
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 :
Testez à nouveau la résolution inversée avec nslookup
C:\Users\Administrateur>nslookup 10.0.2.10 Serveur : UnKnown Address: 10.0.2.15 Nom : intranet.gift.sa Address: 10.0.2.10
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 :
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 !
Allez plus loin
RFC régissant le fonctionnement du DNS.
Liste des différents types d’enregistrements DNS.
Gestion du cache DNS Microsoft.
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).
Poursuivez votre apprentissage avec la mise en place d’un serveur de fichiers sous Windows Server, que nous allons voir dans le prochain chapitre !