PXE

☠️ Serveur PXE : Démarrage réseau pour les braves (et les fainéants)

Vous êtes fatigué de trimballer des clés USB entre les machines comme un hamster informatique sur une roue sans fin ? Vous rêvez d’un monde où les PC se bootent seuls, comme des grands, par magie ? Bienvenue dans le monde du PXE (Preboot eXecution Environment). ⚙️✨

📜 Principe du PXE

PXE est une technologie standardisée qui permet à une machine de démarrer via le réseau, avant même qu’un système d’exploitation local ne soit chargé. Cela repose sur une collaboration subtile entre le micrologiciel de la machine (BIOS ou UEFI), un serveur DHCP, un serveur TFTP, et souvent un serveur HTTP ou NFS.

Voici les étapes détaillées du fonctionnement PXE :

  1. 🧠 Le client démarre, active sa carte réseau en mode PXE.
  2. 📡 Il envoie une requête DHCP pour obtenir une adresse IP, mais aussi pour savoir où trouver un fichier de démarrage.
  3. 📦 Le serveur DHCP répond avec une IP et indique l’adresse d’un serveur TFTP, ainsi que le nom du fichier à télécharger (souvent pxelinux.0).
  4. 📂 Le client télécharge ce fichier via TFTP.
  5. 🧾 Ce fichier charge un menu de boot, avec différents systèmes ou installeurs à disposition.
  6. 🌍 Une fois l’option choisie, le noyau Linux (ou équivalent) est téléchargé via TFTP, HTTP ou NFS, puis exécuté en mémoire.

🧱 Pré-requis

  • Un réseau local stable (oui, les câbles mangés par des chats, ça compte pas) 🐈‍⬛
  • Un serveur DHCP (peut être intégré au PXE ou séparé)
  • Un serveur TFTP pour la livraison des fichiers de boot
  • Des fichiers de démarrage compatibles (pxelinux, iPXE, GRUB2, etc.)
  • Des images d’installation ou de système live à proposer
  • Un BIOS ou UEFI configuré pour booter en réseau (PXE enabled)

🎯 À quoi ça sert ?

  • Installation massive d’OS sur une armée de machines 🧟
  • Maintenance sans contact physique (adieu visseuses et jurons) 🔧
  • Test rapide d’environnements live 🔁
  • Réveil de machines pour les remettre dans le droit chemin 🔥

🧬 Composition d’un serveur PXE

Un serveur PXE typique est composé de :

  • DHCP 📡 – pour dire aux machines où aller chercher l’image
  • TFTP 📂 – pour livrer le bootloader (souvent pxelinux.0)
  • NFS / HTTP / FTP 🌐 – pour fournir l’OS ou l’installeur

🛠️ Implémentation de base (Debian/Ubuntu)

Voici un petit guide pour déployer un serveur PXE :

  1. Installer les paquets nécessaires :
    apt update
    apt install isc-dhcp-server tftpd-hpa syslinux pxelinux syslinux-common
  2. Configurer le DHCP :
    subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    option routers 192.168.1.1;
    filename "pxelinux.0";
    next-server 192.168.1.10; # Adresse du serveur PXE
    }
  3. Déployer le fichier pxelinux.0 dans /srv/tftp :
    cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp/
  4. Configurer le menu PXE :
    mkdir -p /srv/tftp/pxelinux.cfg
    nano /srv/tftp/pxelinux.cfg/default

    Contenu typique :

    DEFAULT menu.c32
    PROMPT 0
    TIMEOUT 100
    ONTIMEOUT local
    
    LABEL install
    MENU LABEL Installation Ubuntu
    KERNEL ubuntu-installer/amd64/linux
    APPEND initrd=ubuntu-installer/amd64/initrd.gz
  5. Démarrer les services :
    systemctl restart isc-dhcp-server
    tftpd-hpa.service

🔀 Autres méthodes d’implémentation

Le PXE peut être mis en place de différentes manières selon vos besoins et vos ressources. Voici quelques variantes :

  • iPXE 🔧 – Un bootloader plus avancé, capable de télécharger via HTTP, FTP, NFS, et avec des scripts personnalisés. Idéal pour les environnements complexes.
  • GRUB2 PXE 🐧 – Oui, GRUB peut faire du PXE. Configuration plus verbeuse, mais très souple pour booter différents OS, même Windows.
  • Serveurs combinés 🧱 – Utiliser dnsmasq pour fournir DHCP, TFTP et DNS dans un seul service (parfait pour une solution légère).
  • Solutions clés en main 🧰 – Des outils comme FOG Project ou Clonezilla Server simplifient l’ensemble du processus avec une interface web.

💀 Suggestions

  • ⚠️ Ne testez pas PXE sur votre réseau de production sans comprendre ce que vous faites. Sinon, tout le monde va booter n’importe quoi, et vous aussi.
  • 🕳️ Si ça ne marche pas, suspectez d’abord le BIOS, ensuite le câble, puis enfin votre santé mentale.
  • 😈 Oui, on peut aussi utiliser PXE pour booter des outils de récupération… ou des payloads plus malicieux. Restez du bon côté de l’éthique.

📦 Conclusion

PXE, c’est le genre de technologie que peu de gens connaissent, mais que beaucoup de sysadmins vénèrent en secret, un peu comme une secte obscure aux rituels DHCP. Une fois configuré, il vous sauvera des heures de galère, vous transformant en gourou du déploiement réseau.

Et rappelez-vous : si ça ne boote pas, ce n’est probablement pas la faute du serveur. C’est la vôtre. 😈