Etape Optionnelle : Configurer un serveur DHCP Windows/Linux pour le boot PXE Medulla (BIOS & UEFI)
S'applique à : Medulla Imaging / PXE
Version : Toutes
Environnement : On-Premise
Catégorie : DHCP / PXE / Imaging
Objectif
Cette FAQ explique comment configurer un serveur DHCP afin de permettre le démarrage PXE des machines avec Medulla, en mode BIOS et en mode UEFI x64.
Le serveur DHCP doit être capable d’envoyer le bon fichier de démarrage selon le type de machine qui démarre en PXE.
Principe de fonctionnement
Lorsqu’une machine démarre en PXE, elle contacte le serveur DHCP pour obtenir :
- Une adresse IP
- L’adresse du serveur PXE Medulla
- Le fichier de démarrage à charger
Les deux options DHCP principales sont :
| Option DHCP | Rôle | Valeur attendue |
|---|---|---|
| 66 | Adresse du serveur PXE | Adresse IP du serveur Medulla |
| 67 | Fichier de démarrage PXE | Dépend du mode BIOS ou UEFI |
Fichiers de démarrage Medulla
| Type de démarrage | Architecture | Fichier de boot |
|---|---|---|
| BIOS | x86 / x64 | bootloader/undionly.kpxe |
| UEFI | x64 | bootloader-uefi64/ipxe.efi |
Important :
Le fichier de démarrage n’est pas le même pour les machines BIOS et les machines UEFI. Une mauvaise valeur dans l’option 67 empêche le démarrage PXE.
Configuration d’un serveur DHCP Windows
1. Ouvrir la console DHCP
- Ouvrir la console DHCP sur le serveur Windows.
- Déplier le nœud IPv4.
2. Créer les classes Vendor
Les classes Vendor permettent au serveur DHCP de reconnaître si la machine demande un démarrage PXE en BIOS ou en UEFI.
Créer la classe UEFI x64
- Faire un clic droit sur IPv4.
- Cliquer sur Définir les classes de fournisseurs.
- Cliquer sur Ajouter.
- Renseigner les valeurs suivantes :
| Champ | Valeur |
|---|---|
| Nom d’affichage | PXEClient (UEFI x64) |
| Description | PXEClient:Arch:00007 |
| ASCII | PXEClient:Arch:00007 |
Cliquer sur OK.
Créer la classe BIOS x86/x64
- Cliquer à nouveau sur Ajouter.
- Renseigner les valeurs suivantes :
| Champ | Valeur |
|---|---|
| Nom d’affichage | PXEClient (BIOS x86 & x64) |
| Description | PXEClient:Arch:00000 |
| ASCII | PXEClient:Arch:00000 |
Cliquer sur OK.
3. Créer la stratégie DHCP pour les machines BIOS
- Dans votre étendue DHCP, faire un clic droit sur Stratégies.
- Cliquer sur Nouvelle stratégie.
- Donner un nom clair à la stratégie.
| Champ | Valeur |
|---|---|
| Nom de la stratégie | PXEClient (BIOS x86 & x64) |
| Description | Fichier de démarrage PXE pour les machines BIOS |
- Cliquer sur Suivant.
- Dans les conditions, cliquer sur Ajouter.
- Sélectionner la classe Vendor PXEClient (BIOS x86 & x64).
- Cocher Ajouter un caractère générique (*).
- Valider puis cliquer sur Suivant.
- Configurer les options DHCP suivantes :
| Option | Valeur |
|---|---|
| 066 | IP_DU_SERVEUR_MEDULLA |
| 067 | bootloader/undionly.kpxe |
Terminer l’assistant en cliquant sur Suivant, puis Terminer.
4. Créer la stratégie DHCP pour les machines UEFI
- Dans votre étendue DHCP, faire un clic droit sur Stratégies.
- Cliquer sur Nouvelle stratégie.
- Donner un nom clair à la stratégie.
| Champ | Valeur |
|---|---|
| Nom de la stratégie | PXEClient (UEFI x64) |
| Description | Fichier de démarrage PXE pour les machines UEFI x64 |
- Cliquer sur Suivant.
- Dans les conditions, cliquer sur Ajouter.
- Sélectionner la classe Vendor PXEClient (UEFI x64).
- Cocher Ajouter un caractère générique (*).
- Valider puis cliquer sur Suivant.
- Configurer les options DHCP suivantes :
| Option | Valeur |
|---|---|
| 066 | IP_DU_SERVEUR_MEDULLA |
| 067 | bootloader-uefi64/ipxe.efi |
Terminer l’assistant en cliquant sur Suivant, puis Terminer.
5. Supprimer les options PXE globales
Pour éviter les conflits, les options PXE ne doivent pas être définies à la fois au niveau global de l’étendue et dans les stratégies DHCP.
Vérifier que les options suivantes ne sont pas configurées dans les options générales de l’étendue :
060066067
Important :
Si les options 66 et 67 sont définies globalement, elles peuvent entrer en conflit avec les stratégies BIOS/UEFI et empêcher le bon fichier de démarrage d’être envoyé.
Configuration d’un serveur DHCP Linux
Sur un serveur DHCP Linux, le principe est de détecter l’architecture de la machine grâce à l’option DHCP 93.
| Valeur option 93 | Type de machine | Fichier de boot |
|---|---|---|
0000 |
BIOS | bootloader/undionly.kpxe |
0007 |
UEFI x64 | bootloader-uefi64/ipxe.efi |
Exemple de configuration ISC DHCP
Adapter les valeurs entre ##...## à votre environnement.
# PXE definitions
option space PXE;
option PXE.mtftp-ip code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option PXE.discovery-control code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr code 7 = ip-address;
# Architecture PXE
option arch code 93 = unsigned integer 16;
# 0000 = BIOS
# 0007 = UEFI x64
class "PXE" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
vendor-option-space PXE;
option PXE.mtftp-ip 0.0.0.0;
if option arch = 00:07 {
filename "bootloader-uefi64/ipxe.efi";
} else {
filename "bootloader/undionly.kpxe";
}
}
class "Etherboot" {
match if substring(option vendor-class-identifier, 0, 11) = "Etherboot-5";
option vendor-encapsulated-options 3c:09:45:74:68:65:72:62:6f:6f:74:ff;
option vendor-class-identifier "Etherboot-5.0";
vendor-option-space PXE;
option PXE.mtftp-ip 0.0.0.0;
}
subnet ##MEDULLA_NETWORK## netmask ##MEDULLA_NETMASK## {
option broadcast-address ##MEDULLA_BCAST##;
option domain-name ##MEDULLA_DOMAIN##;
option domain-name-servers ##MEDULLA_DNS##;
option routers ##MEDULLA_GW##;
pool {
range ##MEDULLA_START## ##MEDULLA_END##;
next-server ##MEDULLA_IP##;
}
}
Exemple de valeurs à remplacer
| Variable | Description | Exemple |
|---|---|---|
##MEDULLA_NETWORK## |
Réseau DHCP | 192.168.1.0 |
##MEDULLA_NETMASK## |
Masque réseau | 255.255.255.0 |
##MEDULLA_BCAST## |
Adresse broadcast | 192.168.1.255 |
##MEDULLA_DOMAIN## |
Nom de domaine | domaine.lan |
##MEDULLA_DNS## |
Serveur DNS | 192.168.1.1 |
##MEDULLA_GW## |
Passerelle | 192.168.1.254 |
##MEDULLA_START## |
Début de plage DHCP | 192.168.1.100 |
##MEDULLA_END## |
Fin de plage DHCP | 192.168.1.200 |
##MEDULLA_IP## |
Adresse IP du serveur Medulla PXE | 192.168.1.10 |
Vérifications après configuration
- Redémarrer le service DHCP après modification.
- Vérifier que les postes obtiennent bien une adresse IP.
- Tester une machine en mode BIOS.
- Tester une machine en mode UEFI.
- Vérifier que le bon fichier de démarrage est envoyé selon le mode de boot.
Redémarrage du service DHCP Linux
systemctl restart isc-dhcp-server
Vérification du statut
systemctl status isc-dhcp-server
Erreurs fréquentes
La machine BIOS ne démarre pas en PXE
- Vérifier que l’option 67 pointe vers
bootloader/undionly.kpxe. - Vérifier que la machine démarre bien en mode Legacy/BIOS.
- Vérifier que le serveur Medulla est joignable depuis le réseau client.
La machine UEFI ne démarre pas en PXE
- Vérifier que l’option 67 pointe vers
bootloader-uefi64/ipxe.efi. - Vérifier que la machine démarre bien en mode UEFI.
- Vérifier que Secure Boot est désactivé si nécessaire.
Le mauvais fichier de boot est envoyé
- Vérifier les classes Vendor sur Windows DHCP.
- Vérifier les politiques DHCP BIOS et UEFI.
- Vérifier que les options 66 et 67 ne sont pas définies globalement en plus des stratégies.
Le client PXE obtient une IP mais ne télécharge pas le bootloader
- Vérifier l’option 66 ou
next-server. - Vérifier la connectivité entre le poste client et le serveur Medulla.
- Vérifier les flux réseau nécessaires au PXE.
Valeurs de référence
| Élément | BIOS | UEFI x64 |
|---|---|---|
| Vendor Class | PXEClient:Arch:00000 |
PXEClient:Arch:00007 |
| Option 66 | IP_DU_SERVEUR_MEDULLA |
IP_DU_SERVEUR_MEDULLA |
| Option 67 | bootloader/undionly.kpxe |
bootloader-uefi64/ipxe.efi |