Skip to main content

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

  1. Ouvrir la console DHCP sur le serveur Windows.
  2. 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

  1. Faire un clic droit sur IPv4.
  2. Cliquer sur Définir les classes de fournisseurs.
  3. Cliquer sur Ajouter.
  4. 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

  1. Cliquer à nouveau sur Ajouter.
  2. 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

  1. Dans votre étendue DHCP, faire un clic droit sur Stratégies.
  2. Cliquer sur Nouvelle stratégie.
  3. 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
  1. Cliquer sur Suivant.
  2. Dans les conditions, cliquer sur Ajouter.
  3. Sélectionner la classe Vendor PXEClient (BIOS x86 & x64).
  4. Cocher Ajouter un caractère générique (*).
  5. Valider puis cliquer sur Suivant.
  6. 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

  1. Dans votre étendue DHCP, faire un clic droit sur Stratégies.
  2. Cliquer sur Nouvelle stratégie.
  3. 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
  1. Cliquer sur Suivant.
  2. Dans les conditions, cliquer sur Ajouter.
  3. Sélectionner la classe Vendor PXEClient (UEFI x64).
  4. Cocher Ajouter un caractère générique (*).
  5. Valider puis cliquer sur Suivant.
  6. 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 :

  • 060
  • 066
  • 067

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