La saga continue avec ce second article dédié à Server Core dans lequel je vais détailler l’installation du rôle Serveur DHCP et son utilisation. Le tout bien sûr en ligne de commande avec les scripts qui vous permettront de réaliser la même chose facilement dans votre environnement!
Qu’est-ce que DHCP?
J’imagine que vous savez déjà ce qu’est DHCP et je ne vais pas expliquer le protocole en détail ici car ce n’est pas le but. Mais simplement faire un petit rappel pour être sûr que l’on parte sur de bonnes bases.
DHCP signifie “Dynamic Host Configuration Protocol” ce qui signifie en français protocole de configuration dynamique des hôtes. Comme son nom l’indique, DHCP va nous permettre d’attribuer dynamiquement la configuration réseau à nos machines. Par configuration réseau, on parle bien entendu d’adresse IP et de masque de sous-réseau qui sont les deux éléments primordiaux pour qu’une machine puisse communiquer sur un réseau TCP/IP, mais aussi de passerelle par défaut, d’adresses des serveurs DNS ou encore du suffixe DNS. Tous ces éléments qui font qu’une machine peut profiter pleinement des services fournis par le réseau.
Nous allons donc voir comment configurer ce rôle sur Server Core uniquement en ligne de commande. Bien sûr, comme je vous l’avais montré dans mon premier article dédié à Server Core, il est tout a fait possible d’administrer le service à distance avec les outils d’administration graphiques (RSAT), une fois qu’il est installé.
Une histoire de rôle…
La première chose à faire va être d’installer le rôle Serveur DHCP sur notre fameux Server Core, tout prêt, que vous venez de configurer à l’aide des scripts fournis dans le premier article de la série.
Tous les rôles de Windows Server 2008 ne sont pas disponibles en mode Core vu que le but de cette édition est justement d’avoir un système réduit, allégé et plus sécurisé.
Pour voir la liste des rôles disponibles et leur état (installé ou non), ainsi que celui de leurs services associés, il existe une commande sur Server Core:
oclist
Ensuite pour installer ou désinstaller un rôle, il nous faudra utiliser la commande “ocsetup”. Attention cependant, pour l’installation ou la suppression d’Active Directory, il faudra utiliser “DCPromo” comme on a l’habitude de le faire sur des versions classiques de Windows Server, mais nous aurons l’occasion d’en reparler dans une prochaine partie dédiée à Active Directory sous Server Core.
DHCPServerCore!
Maintenant que nous avons vu comment voir les rôles disponibles et les installer/supprimer, entrons dans le vif du sujet et passons à la configuration de notre serveur DHCP.
Comme dit précédemment, la première étape est d’installer le rôle DHCPServerCore. Nous allons donc utiliser la commande “ocsetup”. Cependant le problème de cette commande est qu’elle rend immédiatement la main dans l’invite de commande ce qui empêche de savoir quand est-ce que l’installation est terminée. Pour corriger cela, il existe une petite astuce qui est d’utiliser la commande “start” avec le commutateur “/w” qui permet d’attendre que l’exécution d’ocsetup soit terminée avant de rendre la main.
L’étape suivante va être de configurer le service DHCP afin qu’il soit en démarrage automatique. C’est à dire qu’il démarre automatiquement en même temps que le démarrage du système. Pour cela, nous allons utiliser la commande “sc” qui signifie Service Configuration.
Dernière étape, démarrer le service DHCP. Pour cela, nous allons utiliser la commande “net start”.
Voici le mini script complet qui effectue ces différentes tâches:
Vous pouvez télécharger ce mini-script batch ici.
…Et d’étendue!
Maintenant que le rôle est installé et qu’il est en fonctionnement, il va nous falloir le configurer pour que notre serveur puisse distribuer des adresses IP à nos clients sur le réseau. Toute la configuration du serveur DHCP va se faire grâce à l’outil “netsh” (Network Shell).
La première étape est de créer une étendue. L’entendue est l’élément de base de la configuration DHCP. C’est à l’intérieur d’une étendue que l’on va pouvoir définir des plages d’adresses IP à distribuer, ou bien des plages d’adresses IP à ne pas distribuer, ce que nous appellerons des exclusions, ou encore des réservations que je détaillerai un peu après.
Le minimum pour que votre serveur commence à distribuer des adresses IP à vos clients est de créer une étendue et ensuite de définir une plage d’adresses IP dans cette étendue. Attention cependant, pour que votre serveur puisse distribuer des adresses IP, la plage d’adresses IP doit correspondre à l’adresse IP attribuée à l’interface réseau de votre serveur. Votre serveur recevant les messages DHCPDISCOVER broadcastés par le clients sur une interface, il se base sur l’adresse IP de cette interface pour déterminer à quel sous-réseau appartient le client et lui attribuer une adresse correspondante pour ce sous-réseau.
Exemple: si votre serveur a une seule interface réseau avec comme adresse IP 192.168.10.1. Alors pour qu’il puisse distribuer des adresses sur son segment réseau, il faut créer une étendue avec une plage qui correspond à cette adresse IP, comme la plage suivante: de 192.168.10.10 à 192.168.10.160.
Voici le script qui vous permettra de créer une étendue et d’y ajouter une plage d’adresses à distribuer:
Vous pouvez télécharger ce script batch ici.
Un peu d’exclusion…
Maintenant que nous avons une étendue avec la plage d’adresse IP distribuables par notre serveur DHCP, nous pouvons rajouter des plages d’exclusions. Les exclusions permettent de définir des adresses IP qui ne doivent pas être attribuées par notre serveur DHCP dans une étendue. Cela permet d’exclure les adresses IP des machines qui sont configurées de façon statique, comme les serveurs bien souvent.
Les exclusions doivent faire parti de la plage d’adresses IP de l’étendue concernée. Il est possible de n’exclure qu’une seule adresse IP en renseignant la même adresse IP de début et de fin pour la plage d’exclusion.
Voici un petit script qui vous permettra de rajouter des exclusions à votre étendue:
Vous pouvez télécharger ce mini-script batch ici.
Attention aux réservations!
Dans certains cas, on peut avoir besoin de faire sorte que notre serveur DHCP distribue toujours la même adresse IP à une machine ou à un périphérique réseau comme une imprimante. Pour cela, on peut utiliser les réservations. Une réservation se base sur l’adresse MAC de la machine ou du périphérique. En gros, dès que la machine ou le périphérique va demander une adresse IP, le serveur DHCP va se rendre compte qu’une réservation existe pour son adresse MAC et du coup va lui fournir l’adresse IP associée et ce à chaque fois. L’intérêt réside dans le fait qu’on est sûr que cette adresse IP ne sera pas distribué à une autre machine.
Attention toutefois, il est maintenant assez aisé de changer sa propre adresse MAC. Il est donc possible de récupérer une adresse IP réservée de cette façon.
Voici le script qui vous permettra de rajouter des réservations dans une étendue:
Vous pouvez télécharger ce script batch ici.
Toujours les options!
Nous avons configuré la base de DHCP et il est maintenant capable de distribuer des adresses IP à nos clients sur le réseau. Le problème et qu’une machine cliente a souvent besoin d’un peu plus qu’une adresse IP et un masque pour accéder à toutes les fonctionnalités et services fournis par le réseau. Il faudrait pouvoir attribuer à nos clients des adresses de serveurs DNS pour qu’ils soient capables de faire de la résolution de nom, un suffixe DNS pour pouvoir faire des résolutions de nom non pleinement qualifiées ou encore une passerelle par défaut pour pouvoir sortir de leur segment réseau.
Heureusement les options DHCP sont là et vont nous permettre de fournir tous ces paramètres réseaux à nos clients. Il existe une multitude d’options par défaut dans DHCP donc il est difficile de vous fournir un script pour pouvoir toutes les configurer. Je vais donc me contenter des options les plus classiques, ce qui vous permettra de comprendre le principe et de le répéter pour d’autres options.
Ce qu’il faut savoir, c’est qu’il existe plusieurs niveaux d’application des options. Les deux principaux étant l’étendue et le serveur.
-
Une option définie au niveau du serveur va être appliquée à tous les clients recevant une adresse IP depuis ce serveur, quelque soit l’étendue à laquelle appartient le client.
-
Une option au niveau d’une étendue ne sera appliquée qu’aux clients obtenant une adresse IP faisant parti de cette étendue.
Les options définies au niveau du serveur sont appliquées en premier, puis celles au niveau de l’étendue. Cela signifie que si la même option est définie au niveau du serveur et aussi au niveau de l’étendue, le client appliquera la valeur définie au niveau de l’étendue pour cette option.
Exemple: vous configurez l’option routeur (passerelle par défaut du client) au niveau du serveur avec la valeur 192.168.0.254 et au niveau de l’étendue avec la valeur 192.168.10.254. Un client qui récupérera une adresse IP faisant parti de l’étendue aura une passerelle par défaut en 192.168.10.254.
En général l’option routeur ne sera définie qu’au niveau des étendues, car la passerelle par défaut d’un client est propre à son sous-réseau. Au niveau du serveur, on définira plutôt les options comme les serveur DNS ou le suffixe DNS, qui sont des valeurs qui peuvent être partagées entre plusieurs sous-réseaux.
Voici un script qui vous permet de définir l’option routeur au niveau d’une étendue, les serveurs DNS et le suffixe DNS au niveau du serveur:
Comme d’habitude, vous pouvez télécharger le script ici.
Conclusion
Et voilà, ce deuxième article de la série Server Core se termine. Je vous ai fourni un certain nombre d’informations qui devraient vous permettre de configurer aisément votre premier serveur DHCP en mode Core sans avoir recours à une interface graphique.
Bien sûr on pourrait beaucoup plus loin, en parlant des classes DHCP, des options sur les classes ou encore sur les réservations, mais ce n’est pas prévu à l’heure actuelle. Si certain d’entre vous sont intéressés par ce genre de configuration, faites le moi savoir en laissant un commentaire et je complèterai plus tard!
Une dernière chose: il faut autoriser votre serveur DHCP dans Active Directory, s’il est présent sur votre réseau. En effet, pour empêcher que n’importe quel serveur DHCP ne puisse distribuer des adresses sur un réseau, Microsoft a développé un mécanisme d’autorisation dans Active Directory. Un serveur DHCP sous Windows 200, Windows Server 2003 ou Windows Server 2008 qui n’est pas autorisé, ne distribuera aucune adresse IP. Pour cela il existe une commande:
netsh dhcp add server FQDN adresseIP
Exemple: si votre serveur DHCP a le FQDN srv-core.mslab.lan avec l’adresse IP 192.168.0.1, il vous taper la commande suivante:
netsh dhcp add server srv-core.mslab.lan 192.168.0.1
Voilà maintenant vous connaissez toutes les bases pour vous lancer!
Scripts à télécharger:
- Installation du rôle: cliquez ici.
- Ajout d’une étendue: cliquez ici.
- Ajout d’une plage d’exclusion: cliquez ici.
- Ajout d’un réservation: cliquez ici.
- Ajout d’options: cliquez ici.
- Package comprenant tous les scripts: cliquez ici.
A vous de jouer!