Mettre en place le rôle DHCP sur Windows Server
Définition
L’acronyme DHCP pour Dynamic Host Configuration Protocol, fait référence à un protocole de configuration dynamique incontournable dans les réseaux informatiques depuis plusieurs dizaines d’années. Pour cause, il a été introduit pour la première fois en 1993.
Ce protocole fonctionne en mode client/serveur, où l’on parle de serveur DHCP et le client correspond à un périphérique (ordinateur, serveur, smartphone, tablette, imprimante, etc.).
D’après la RFC2131, le protocole DHCP utilise deux ports : le port 67 pour le serveur et le port 68 pour le client, avec le protocole de transport UDP.
Le serveur DHCP aura pour objectif principal de distribuer une configuration réseau aux équipements qui souhaitent se connecter à un réseau. Autrement dit, lorsqu’un équipement se connecte à un réseau, il va chercher à obtenir une configuration TCP/IP automatiquement par l’intermédiaire du serveur DHCP. Grâce à cette configuration réseau, l’équipement qui vient de se connecter peut dialoguer avec les autres machines du réseau.
Cette configuration distribuée par le serveur DHCP contiendra un ensemble d’informations : adresse IP affectée au client, masque de sous-réseau, passerelle par défaut, serveur(s) de noms, nom de domaine, etc.
Le protocole DHCP fonctionne à la fois en IPv4 et en IPv6, en fonction des besoins. Indispensable avec l’IPv4, c’est différent avec l’IPv6 puisque cette version du protocole IP est capable de s’autoconfigurer (adresse de lien local). Malgré tout, avec le DHCPv6 on peut distribuer des informations spécifiques aux clients comme les serveurs de noms, par exemple.
On peut affirmer que le serveur DHCP facilite grandement la connexion d’un nouvel appareil à un réseau. Grâce à lui, nul besoin de configurer les machines que l’on...
Mettre en place le rôle DHCP sur Windows Server
Après avoir étudié le protocole DHCP en lui-même et son intérêt dans un système d’information, il est temps de s’intéresser à la mise en place du rôle DHCP sur Windows Server.
Avant d’implémenter le rôle DHCP au sein de son infrastructure, il est essentiel de déterminer sur quel serveur le rôle va être déployé. Il faut déterminer également s’il s’agira d’un serveur DHCP unique ou fonctionnant en mode « cluster », avec un second serveur, afin d’assurer une tolérance aux pannes et une haute disponibilité de ce service.
Que ce soit pour déployer un serveur DHCP autonome ou un cluster de serveurs DHCP, il faut commencer par mettre en place un premier serveur. Ensuite, un second serveur peut être ajouté plus tard : le rôle DHCP est relativement flexible dans sa mise en œuvre.
1. Mise en place avec ou sans Active Directory
Pour mettre en place un serveur DHCP, il n’est pas nécessaire d’avoir un environnement Active Directory. Autrement dit, le serveur DHCP peut être membre d’un groupe de travail, à savoir « WORKGROUP » par défaut sur Windows.
Dans le cas où un domaine Active Directory est disponible, il est préférable que le serveur soit intégré à ce domaine, ce qui permettra d’autoriser le serveur DHCP dans l’annuaire.
Toutefois, il est recommandé de ne pas installer le rôle de serveur DHCP sur le contrôleur de domaine bien que ce soit possible techniquement. L’objectif étant de protéger le contrôleur de domaine et de diminuer la surface d’attaque, car une vulnérabilité du service DHCP pourrait être exploitée pour compromettre le service Active Directory.
2. Installation du rôle DHCP
Sur une machine sous Windows Server, en l’occurrence Windows Server 2022 pour cette démonstration, le rôle peut être installé avec l’interface graphique du système via le Gestionnaire de serveur ainsi qu’à l’aide...
Gestion des options d’étendues et de serveur
Le serveur S-DHCP-1 dispose du rôle de serveur DHCP mais celui-ci est vierge de toute configuration. Pour cause, une étendue au minimum doit être configurée pour qu’il commence à distribuer des adresses IP aux éventuels clients. Autrement dit, par défaut, il n’y a pas d’étendue.
Tenant compte des deux serveurs actuellement en place, à savoir S-DC et S-DHCP-1, on peut établir le schéma suivant :
Ce qui signifie qu’une étendue pour le réseau 192.168.145.0/24, correspondant au LAN, doit être déclarée sur le serveur DHCP si l’on souhaite distribuer des adresses IP sur ce segment réseau.
Dans cet exemple très basique, toutes les machines (serveurs et ordinateurs) sont connectées sur le même segment réseau. Dans le cas de réseaux distincts, la procédure reste identique, si ce n’est que l’on doit prendre en compte la configuration de l’agent relais DHCP (sur l’équipement en charge du routage).
En fonction du nombre d’appareils à connecter, la plage d’adresses IP associée à cette étendue devra être plus ou moins importante. Partons du principe que l’on souhaite distribuer les adresses IP de 192.168.145.11 à 192.168.145.50.
1. Créer une étendue DHCP
Sur le serveur S-DHCP-1, l’étendue DHCP suivante doit être déclarée pour répondre à nos besoins :
-
Plage d’adresses IP : 192.168.145.11 à .50 ;
-
Masque de sous-réseau : 255.255.255.0 ;
-
Passerelle par défaut : 192.168.145.1 ;
-
Serveur de noms : 192.168.145.128 ;
-
Nom de domaine : eni.local ;
-
Durée du bail : 1 jour.
Pour mettre en application la configuration définie ci-dessus, ouvrez la console DHCP.
Dans la console DHCP, effectuez un clic droit sur IPv4, puis cliquez sur Nouvelle étendue dans le menu contextuel. Un assistant s’exécute. Passez la première étape.
Indiquez LAN comme nom pour cette étendue, et indiquez éventuellement une description. Le nom sera visible dans la console DHCP.
Sur une infrastructure comportant plusieurs VLANs, il est pertinent de préciser...
Inscription des enregistrements dans une zone DNS
1. Inscription dans une zone DNS d’une machine Windows
Le système d’exploitation Windows est capable de s’enregistrer auprès d’un serveur DNS dans le but de créer un enregistrement de type A avec le nom de machine et l’adresse IP. Ainsi, une machine pourra être contactée par son nom DNS, et pas uniquement par son adresse IP. C’est une fonction utile si l’on s’appuie sur des applications qui identifient les machines par leurs noms.
Lorsque la machine obtient un bail DHCP, elle va chercher à s’inscrire auprès du serveur DNS. C’est le mode de fonctionnement par défaut d’une carte réseau sous Windows, puisque l’option Enregistrer les adresses de cette connexion dans le système DNS est activée dans les paramètres DNS de la connectivité IPv4.
Après avoir obtenu une adresse IP, la machine va s’inscrire auprès d’un serveur DNS. Ce dernier va générer un enregistrement de type A ou AAAA, selon s’il s’agit d’une étendue en IPv4 ou en IPv6. Cet enregistrement pourra être mis à jour par la suite par l’ordinateur, notamment si son adresse IP change. Ce processus s’appelle une mise à jour dynamique de l’enregistrement DNS.
En fonction de la configuration du serveur DNS, l’inscription de cet enregistrement (et sa mise à jour future) peut être refusée !
En effet, le serveur DNS de notre domaine Active Directory (appelé S-DC) contient la zone eni.local. Puisque cette zone DNS est intégrée à Active Directory, la fonction de mises à jour dynamiques est configurée en mode Sécurisé uniquement, ce qui signifie que seules les machines intégrées à Active Directory peuvent s’inscrire automatiquement, car elles auront cette autorisation.
L’ordinateur PC-WIN, ordinateur membre du domaine Active Directory eni.local, est en mesure de s’inscrire auprès du serveur DNS.
La zone...
Haute disponibilité du service DHCP
1. Le principe de la haute disponibilité DHCP
À partir du moment où il est mis en œuvre au sein d’une infrastructure, le service DHCP devient critique. S’il n’est plus opérationnel, les clients DHCP ne sont plus en mesure de renouveler leur bail DHCP et les nouveaux clients DHCP ne sont pas en mesure d’obtenir un bail DHCP.
Par conséquent, les machines connectées au réseau vont progressivement relâcher leur bail, et les nouvelles machines ne pourront pas se connecter au réseau ! Un vrai problème de production.
Face à cette situation et au niveau de criticité du service DHCP, il est recommandé de mettre en œuvre deux serveurs DHCP. Le rôle DHCP de Windows Server prend en charge cette fonction nativement.
Ces deux serveurs DHCP vont travailler en binôme : si un serveur DHCP tombe en panne, le second prendra le relais pour distribuer des adresses IP. Ainsi, on assure la haute disponibilité du service DHCP.
Depuis Windows Server 2012, la fonction de cluster est intégrée au rôle DHCP de Windows Server, ce qui simplifie la mise en œuvre. Autrement dit, il n’est plus nécessaire de créer un cluster de serveurs comme on doit le faire pour certains rôles comme Hyper-V et où les prérequis sont nombreux.
Le rôle DHCP de Windows Server prend en charge deux modes de fonctionnement :
-
Équilibrage de charge : les deux serveurs DHCP sont actifs en même temps et vont se répartir un pourcentage de la plage d’adresses IP à distribuer. Ce qui permet aussi d’avoir la haute disponibilité.
-
Serveur de secours : un serveur DHCP est actif et distribue des baux DHCP aux clients, tandis que le second est passif. On peut considérer qu’il est en veille, il entrera en action si le serveur DHCP principal est inopérant.
2. Infrastructure cible
La mise en œuvre d’un cluster de serveurs DHCP implique d’utiliser au moins deux serveurs sous Windows Server. De ce fait, un second serveur DHCP nommé S-DHCP-2 va être ajouté à la configuration précédente.
Au total, quatre machines virtuelles sont utilisées :
-
S-DC : le contrôleur de domaine Active Directory et serveur DNS pour...
Gestion du DHCP avec PowerShell
1. Pourquoi utiliser PowerShell ?
Par l’intermédiaire de PowerShell, un administrateur est capable de gérer le rôle serveur DHCP de Windows Server à partir de commandes et de scripts.
Puisque le serveur DHCP peut être déployé sur une machine Windows sans interface graphique (en mode Core), il s’avère judicieux d’être capable de gérer le serveur avec PowerShell. À cela s’ajoute le côté pratique de PowerShell pour certaines tâches d’administration.
Une centaine de commandes PowerShell sont disponibles pour gérer un serveur DHCP. Ces commandes sont intégrées dans le module DhcpServer.
Sur un serveur DHCP, voici la commande à exécuter pour lister ces commandes :
Get-Command -Module DhcpServer
Précédemment, l’installation du rôle Serveur DHCP avec PowerShell a déjà été abordée.
2. Gérer les étendues DHCP
PowerShell est capable de lister, créer, modifier et supprimer les étendues d’un serveur DHCP.
La commande Get-DhcpServerv4Scope sert à lister les étendues IPv4 du serveur. Son équivalent pour IPv6 est tout simplement Get-DhcpServerv6Scope.
Sans aucun paramètre, cette commande liste l’ensemble des étendues IPv4 du serveur local.
Sur le serveur S-DHCP-1, exécutez la commande ci-dessous pour lister les étendues. Une étendue nommée LAN doit apparaître.
Get-DhcpServerv4Scope
Supprimez l’étendue LAN, de façon à reproduire la même configuration en PowerShell. L’étendue doit être spécifiée par son ScopeId, c’est-à-dire l’adresse réseau. La commande précédente permet de récupérer cette valeur.
Remove-DhcpServerv4Scope -ScopeId 192.168.145.0 -Force
Dans le cas où l’étendue est intégrée dans un partenariat de basculement entre deux serveurs DHCP, il y a des étapes supplémentaires à effectuer avant de procéder à la suppression de l’étendue.
Listez les partenariats de basculement :
Get-DhcpServerv4Failover
Cette commande donne deux informations nécessaires pour la suite : le nom de la relation...
Migration d’un serveur DHCP
Les années passent, le matériel et le système d’exploitation de votre serveur vieillissent… Jusqu’au moment où le système d’exploitation de votre serveur arrive en fin de vie et n’est plus supporté par Microsoft. Une situation délicate car vous ne recevez plus les mises à jour correctives et les patchs de sécurité.
C’est une situation fréquente et que l’on rencontre sur tous les types de serveurs : contrôleurs de domaine Active Directory, serveurs de fichiers, serveurs applicatifs, et les serveurs DHCP.
La solution consiste à migrer vers une nouvelle machine qui exécute une version plus récente du système d’exploitation, ou à effectuer une mise à niveau sur place de Windows Server.
Dans certains cas, le service doit être migré pour répondre à un besoin de mieux répartir les rôles entre les différents serveurs. C’est aussi l’occasion de repartir sur une base saine.
Pour migrer le service DHCP d’un serveur A vers un serveur B, il y a plusieurs scénarios possibles :
-
Reproduire manuellement la configuration sur le serveur B, et quand il est prêt, arrêter le service DHCP sur le serveur A.
-
Exporter la configuration du serveur A et la réimporter sur le serveur B.
Cette deuxième méthode permet de gagner du temps et facilite le travail, notamment lorsque la configuration DHCP comporte de nombreuses étendues, options et réservations.
Avant d’initier la migration, le rôle de serveur DHCP doit être installé...
Le service DHCP et la sécurité du réseau
1. Les fonctionnalités du service DHCP de Windows Server
a. Les filtres par adresses MAC
La console DHCP que l’on a manipulée précédemment contient une section nommée Filtres.
Cette fonction du serveur DHCP permet de définir une liste blanche d’adresses MAC autorisées auprès de ce serveur DHCP, ou au contraire, une liste noire d’adresses MAC interdites.
Elle se découpe en deux parties :
-
Autorisation : la liste des adresses MAC à autoriser ;
-
Exclusion : la liste des adresses MAC à interdire.
Par défaut, cette fonctionnalité est désactivée sur une étendue DHCP. Conséquemment, toutes les machines peuvent solliciter ce serveur DHCP car il n’y a pas de filtres.
Avant d’activer le filtrage sur les autorisations, il convient de constituer la liste des adresses MAC à autoriser, celles des machines et équipements qui solliciteront cette étendue du serveur DHCP.
Si l’on active cette fonction avant de créer la liste, plus aucune machine ne pourra bénéficier d’une configuration réseau.
Si certains de vos utilisateurs ont pris la fâcheuse habitude de connecter leurs appareils personnels au réseau de l’entreprise, vous pouvez les ajouter à la liste noire (via les adresses MAC) de manière à les empêcher d’obtenir une configuration réseau.
Ajouter une adresse MAC à la liste
Pour ajouter les adresses MAC à une liste, on peut utiliser l’interface graphique mais c’est long et répétitif.
Pour ajouter une nouvelle adresse MAC, vous devez effectuer un clic droit sur la liste, par exemple Autorisation et choisir Nouveau filtre. Le formulaire doit être renseigné avec l’adresse MAC de la machine, et éventuellement une description.
Quand la liste est prête, un nouveau clic droit sur Autorisation permet de cliquer sur Activer.
Ajouter des adresses MAC avec PowerShell
On peut aussi utiliser une commande PowerShell pour gagner du temps. Néanmoins, cette liste sera difficile à maintenir s’il y a des mouvements fréquents sur votre réseau.
Ci-dessous un exemple pour ajouter deux adresses MAC à la liste des autorisations...