Table de Matieres
I. Présentation
Dans ce tutoriel, nous allons apprendre à configurer un serveur DHCP de façon à pouvoir faire du boot PXE à la fois en mode BIOS et en mode UEFI, sur le même réseau. Un serveur WDS sous Windows Server 2022 sera utilisé pour tester le bon fonctionnement.
Lorsque l’on effectue un boot PXE sur une machine en mode BIOS (ou Legacy), il faut configurer les options DHCP 66 et 67. Dans le même temps, quand on utilise le mode UEFI (avec ou sans Secure Boot), il faut configurer les options DHCP 60, 66 et 67, mais avec une valeur différente pour l’option 67 qui est commune aux deux modes.
Si l’on a besoin de déployer les deux types de machines et que l’on utilise le même réseau local pour le déploiement (ce qui est généralement le cas), on se retrouve dans l’obligation d’ajuster la configuration de l’étendue DHCP en fonction de la configuration de la machine à déployer (BIOS ou UEFI). Même si l’UEFI devient le mode par défaut et se généralise, la problématique existe toujours. Pour répondre à cette problématique et gérer les deux modes en même temps, nous allons pouvoir créer des stratégies DHCP. C’est ce que nous allons voir.
Mode | Option 60 | Option 66 | Option 67 |
BIOS | – | Adresse IP du WDS | boot\x64\wdsnbp.com |
UEFI | PXEClient | Adresse IP du WDS | boot\x64\wdsmgfw.efi |
En ce qui concerne l’environnement utilisé pour cette démo :
- Un serveur virtuel WDS
- Nom de machine : SRV-WDS
- Adresse IP : 192.168.14.11
- Intégré au domaine Active Directory (facultatif)
- Un serveur virtuel contrôleur de domaine et DHCP
- Nom de machine : SRV-ADDS-01
- Adresse IP : 192.168.14.10
- Nom de domaine : tuto.local
- Une machine virtuelle vierge pour tester le boot PXE
Si vous avez besoin d’aide pour mettre en place le serveur WDS, suivez la vidéo complète puisqu’elle intègre cette partie.
II. VMware Workstation : basculer du mode BIOS au mode UEFI
Le firmware d’une machine virtuelle VMware Workstation Pro peut être configuré en mode « BIOS ou « UEFI. Avec Windows 10, on peut utiliser l’un de ces deux modes, tandis qu’avec Windows 11, il faut utiliser impérativement le mode UEFI pour respecter le prérequis de la puce TPM (vTPM).
Pour basculer d’un mode à l’autre, voici la marche à suivre. Accédez aux paramètres de la machine virtuelle, cliquez sur l’onglet « Options« , choisissez « Advanced » dans la liste et sur la droite ajustez le paramètre « Firmware type« .
» alt= »VMware Workstation – Passer de BIOS à UEFI » width= »600″ height= »579″ data-lazy-srcset= »https://tuto.cm/wp-content/uploads/2024/09/Serveurs-WDS-et-DHCP-–-Comment-faire-du-boot-PXE.jpg 600w, https://www.it-connect.fr/wp-content-itc/uploads/2023/04/VMware-Workstation-Passer-de-BIOS-a-UEFI-550×531.jpg 550w, https://www.it-connect.fr/wp-content-itc/uploads/2023/04/VMware-Workstation-Passer-de-BIOS-a-UEFI-150×145.jpg 150w, https://www.it-connect.fr/wp-content-itc/uploads/2023/04/VMware-Workstation-Passer-de-BIOS-a-UEFI-50×48.jpg 50w » data-lazy-sizes= »(max-width: 600px) 100vw, 600px » data-lazy-src= »https://tuto.cm/wp-content/uploads/2024/09/Serveurs-WDS-et-DHCP-–-Comment-faire-du-boot-PXE.jpg » />
Si vous souhaitez vous exercer sur une machine virtuelle, comme je le fais dans cette démonstration, conservez le mode « BIOS » pour le moment.
III. WDS : boot PXE en mode BIOS
Avant de gérer les deux modes, voyons comment utiliser le mode BIOS seul. Pour cela, nous allons configurer l’étendue « Deploiement » déjà présente sur le serveur DHCP et qui distribue des adresses IP sur le réseau « 192.168.14.0/24 ».
Commencez par ouvrir la console DHCP, sélectionnez l’étendue DHCP utilisée pour le déploiement et effectuez un clic droit sur « Options d’étendue » pour cliquer sur « Configurer les options« .
Dans l’onglet « Général« , activez les options 066 et 067 en cochant la case située sur la gauche. Renseignez les deux options de cette façon :
- Option 66 : l’adresse IP du serveur PXE, ici c’est le serveur WDS
- Option 67 : le nom du fichier de démarrage, indiquez la valeur générique « boot\x64\wdsnbp.com« .
Validez, vous devez obtenir ceci :
C’est suffisant pour faire du boot PXE en mode BIOS !
Pour tester, rien de plus simple : on démarre une machine virtuelle en « boot réseau » et si elle est bien sur le même segment réseau que les serveurs, elle va obtenir une adresse IP et se connecter au serveur WDS. Sur l’exemple ci-dessous, on voit bien qu’elle a pu obtenir une adresse IP et qu’il faut appuyer sur F12 pour démarrer sur le réseau.
C’est tout bon pour le mode BIOS.
IV. WDS : Boot PXE en mode UEFI (et BIOS)
Pour configurer le DHCP avec les options spécifiques au mode UEFI, le principe est le même avec des options et valeurs différentes.
Maintenant, nous allons voir comment configurer le serveur DHCP pour qu’il gère les deux modes : UEFI et BIOS.
Je vous propose de réaliser cette configuration en PowerShell. Voici les étapes à réaliser :
- Activer la prise en charge de l’option 60 dans le serveur DHCP
- Déclarer des classes de fournisseurs pour différencier les machines BIOS et UEFI
- Créer une stratégie pour gérer les machines en mode BIOS
- Créer une stratégie pour gérer les machines en mode UEFI
A. DHCP : ajouter la prise en charge de l’option 60
Dans la liste des options DHCP, l’option 60 n’est pas disponible dans la liste. À l’aide de PowerShell (ou de netsh), nous allons pouvoir remédier à cela.
Sur le serveur DHCP, en l’occurrence SRV-ADDS-01 dans mon exemple, ouvrez une console PowerShell en tant qu’administrateur et exécutez cette commande :
Add-DhcpServerv4OptionDefinition -ComputerName SRV-ADDS-01 -Name PXEClient -Description "PXE Support" -OptionId 060 -Type String
Après avoir actualisé la console DHCP, on peut voir que cette option est accessible :
Passons à la suite.
B. DHCP : déclarer les classes de fournisseurs
Pour la suite, je vous recommande d’utiliser PowerShell ISE ou Visual Studio Code pour écrire les commandes au fur et à mesure.
Commençons par définir trois variables que l’on va appeler tout au long de la procédure :
# Nom d'hôte du serveur DHCP $DhcpServerName = "SRV-ADDS-01" # Adresse IP du serveur WDS (PXE) $PxeServerIp = "192.168.14.11" # Adresse réseau de l'étendue DHCP ciblée $Scope = "192.168.14.0"
Puis, grâce aux commandes ci-dessous, nous allons définir trois classes de fournisseurs DHCP correspondantes à des architectures différentes. Par exemple, la valeur « PXEClient:Arch:00007 » correspond à du boot PXE pour l’UEFI en x64.
Exécutez les trois commandes suivantes :
Add-DhcpServerv4Class -ComputerName $DhcpServerName -Name "PXEClient - UEFI x64" -Type Vendor -Data "PXEClient:Arch:00007" -Description "PXEClient:Arch:00007" Add-DhcpServerv4Class -ComputerName $DhcpServerName -Name "PXEClient - UEFI x86" -Type Vendor -Data "PXEClient:Arch:00006" -Description "PXEClient:Arch:00006" Add-DhcpServerv4Class -ComputerName $DhcpServerName -Name "PXEClient - BIOS x86 et x64" -Type Vendor -Data "PXEClient:Arch:00000" -Description "PXEClient:Arch:00000"
Les modifications effectuées par ces commandes sont visibles dans :
Passons à la suite.
C. Créer les stratégies DHCP pour le BIOS et l’UEFI
Désormais, il faut créer les stratégies DHCP. Dans l’ordre suivant (même si l’ordre n’a pas d’importance) :
- Une première stratégie pour le mode BIOS x86 et x64.
- Une seconde stratégie pour le mode UEFI x86
- Une troisième stratégie pour le mode UEFI x64.
Ces stratégies vont s’appliquer sur l’étendue ciblée (variable définie précédemment) sur le serveur DHCP.
Pour créer la première stratégie :
$PolicyNameBIOS = "PXEClient - BIOS x86 et x64"
Add-DhcpServerv4Policy -Computername $DhcpServerName -ScopeId $Scope -Name $PolicyNameBIOS -Description "Options DHCP pour boot BIOS x86 et x64" -Condition Or -VendorClass EQ, "PXEClient - BIOS x86 et x64*"
Set-DhcpServerv4OptionValue -ComputerName $DhcpServerName -ScopeId $Scope -OptionId 066 -Value $PxeServerIp -PolicyName $PolicyNameBIOS
Set-DhcpServerv4OptionValue -ComputerName $DhcpServerName -ScopeId $Scope -OptionId 067 -Value boot\x64\wdsnbp.com -PolicyName $PolicyNameBIOS
Pour créer la seconde stratégie :
$PolicyNameUEFIx86 = "PXEClient - UEFI x86"
Add-DhcpServerv4Policy -Computername $DhcpServerName -ScopeId $Scope -Name $PolicyNameUEFIx86 -Description "Options DHCP pour boot UEFI x86" -Condition Or -VendorClass EQ, "PXEClient - UEFI x86*"
Set-DhcpServerv4OptionValue -ComputerName $DhcpServerName -ScopeId $Scope -OptionId 060 -Value PXEClient -PolicyName $PolicyNameUEFIx86
Set-DhcpServerv4OptionValue -ComputerName $DhcpServerName -ScopeId $Scope -OptionId 066 -Value $PxeServerIp -PolicyName $PolicyNameUEFIx86
Set-DhcpServerv4OptionValue -ComputerName $DhcpServerName -ScopeId $Scope -OptionId 067 -Value boot\x86\wdsmgfw.efi -PolicyName $PolicyNameUEFIx86
Pour créer la troisième stratégie :
$PolicyNameUEFIx64 = "PXEClient - UEFI x64"
Add-DhcpServerv4Policy -Computername $DhcpServerName -ScopeId $Scope -Name $PolicyNameUEFIx64 -Description "Options DHCP pour boot UEFI x64" -Condition Or -VendorClass EQ, "PXEClient - UEFI x64*"
Set-DhcpServerv4OptionValue -ComputerName $DhcpServerName -ScopeId $Scope -OptionId 060 -Value PXEClient -PolicyName $PolicyNameUEFIx64
Set-DhcpServerv4OptionValue -ComputerName $DhcpServerName -ScopeId $Scope -OptionId 066 -Value $PxeServerIp -PolicyName $PolicyNameUEFIx64
Set-DhcpServerv4OptionValue -ComputerName $DhcpServerName -ScopeId $Scope -OptionId 067 -Value boot\x64\wdsmgfw.efi -PolicyName $PolicyNameUEFIx64
Une nouvelle fois, cette configuration est visible dans la console DHCP. Ici, il faut accéder à la partie « Stratégies » de l’étendue DHCP ciblée. Voici le résultat :
Si l’on regarde les options de notre étendue DHCP, on peut voir qu’il y a beaucoup de valeurs. Effectivement, nous avons plusieurs fois les mêmes options, mais avec des valeurs différentes, et la bonne valeur sera appliquée en fonction de la machine qui initie la connexion.
Le serveur DHCP est correctement configuré !
D. Tester le boot PXE en UEFI
Pour tester cette configuration, il convient de basculer la machine virtuelle en mode UEFI (avec le Secure Boot actif tant qu’à faire) et de tester un boot sur le réseau. Si le serveur DHCP est correctement configuré, la machine virtuelle doit parvenir à contacter le PXE et il suffira d’appuyer sur Entrée pour initier le boot réseau et charger l’image de démarrage.
V. Conclusion
Nous venons de voir comment configurer un serveur DHCP pour prendre en charge le boot PXE en mode BIOS et en mode UEFI. Dans cet exemple, le serveur PXE est représenté par un serveur WDS mais il pourrait s’agir d’une autre solution.
Si vos serveurs sont dans un réseau différent des machines à déployer (VLANs différents, par exemple), vous devez déclarer l’adresse IP du serveur DHCP et du serveur WDS dans les options de relais DHCP de votre passerelle (routeur/pare-feu).