Installation/Configuration des services DHCP/PXE

Un article de Mille-Xterm.

Jump to: navigation, search

Cliquer sur le lien suivant pour obtenir de l'information sur le démarrage à l'aide d'un serveur DHCP/PXE

Sommaire

Installation et configuration des services pour l'utilisation de PXE

Afin d'utiliser le protocole de démarrage PXE, vous devez installer et configurer trois services essentiels :

  • DHCP (Dynamic host configuration protocol) - Assure la configuration automatique des paramètres TCP/IP des terminaux.
  • TFTP (Trivial File Transfert Protocol) - Protocole de transfert de fichiers simplifié utilisé pour envoyer les fichiers de démarrage.
  • PXELINUX - Gestionnaire de démarrage qui permet de sélectionner les images de démarrage.

Le démarrage par PXE s'effectue en plusieurs étapes :

  • Après le chargement du BIOS, le protocole PXE commence à s'exécuter
À cette étape la version de PXE qui est utilisée s'affiche à l'écran.
  • Recherche d'une adresse IP sur un serveur DHCP
Vous devriez voir « DHCP.......... » s'afficher à l'écran, cela signifie que PXE est activé sur le poste.
  • Réception de l'adresse IP et des informations réseau assignées au poste par le serveur DHCP
Vous pouvez voir à l'écran plusieurs informations incluant l'adresse IP assignée au poste
  • Téléchargement du gestionnaire de démarrage via TFTP
  • Sélection de l'image de démarrage
La sélection peut être effectuée automatiquement ou manuellement
  • Téléchargement des fichiers de démarrage à l'aide du protocole TFTP.
Téléchargement du vmlinuz et initrd ou du fichier image
  • Exécution des fichiers de démarrage

Installation et configuration du service DHCP

Lorsque le terminal est configuré pour démarrer avec le réseau, au moment de son démarrage, une demande est envoyée au serveur DHCP afin d'obtenir une adresse IP qui permettra au terminal de s'identifier au réseau.

Pour installer le service DHCP, vous pouvez utiliser la commande suivante :

  • urpmi dhcp-server

Vous pouvez ensuite configurer le service DHCP pour qu'il puisse allouer une séquence d'adresses IP destinée aux terminaux. Vous pouvez définir la séquence désirée dans le fichier dhcp.conf qui se trouve généralement sous : /etc/dhcp.conf

Exemple d'un fichier dhcp.conf :

ddns-update-style none;
default-lease-time 7200;
max-lease-time 10800;

filename "X86PC/linux/linux.0";
next-server 192.168.0.1;

subnet 192.168.0.0 netmask 255.255.255.0{
   range 192.168.0.10 192.168.0.20;
}

Description des variables

ddns-update-style  - Mise-à-jour dynamique du DNS
default-lease-time - Durée de vie par défaut allouée aux adresses IP (temps en secondes)
max-lease-time     - Durée de vie maximale allouée aux adresses IP (temps en secondes)  

filename           - Chemin relatif qui permet d'accéder à l'exécutable du gestionnaire de connexions ( comparable à grub).Certaines versions de pxe utilise un nom de fichier différent (pxelinux.0, linux.0, etc)
next-server        - Contient l'adresse IP du serveur tftp
subnet             - Définition de l'adresse réseau
netmask            - Définition du masque de sous-réseau
range              - Séquence d'adresses IP pouvant être allouée aux clients
 

Pour que les modifications soient prises en compte,il faut redémarrer le serveur DHCP. Pour ce faire, vous pouvez utiliser la commande suivante :
service dhcpd restart

Note : À ce niveau, si un terminal tente de démarrer via le réseau, il devrait obtenir une adresse IP et afficher un le message PXE-E32: TFTP open timeout

Installation et configuration du service TFTP

Une fois l'addresse IP obtenue, le terminal attend de recevoir les fichiers nécessaires pour son démarrage. La sélection des fichiers de démarrage est assignée au poste via le gestionnaire de démarrage(Boot Manager). Le gestionnaire de démarrage est transmis au terminal par le protocole TFTP. TFTP est une version simplifiée de FTP qui permet de transférér des fichiers. Il s'agit d'un service géré par le service xinetd (extented internet services daemon). Pour installer le service TFTP, vous pouvez utiliser la commande suivante :

  • urpmi tftp-server

Normalement, la configuration par défaut de tftp-server est fonctionnel. Vous pouvez toutefois la modifier en éditant le fichier /etc/xinetd.d/tftp

Installation et configuration du gestionnaire de démarrage pxelinux

Une fois le service TFTP installé, le terminal est maintenant apte à recevoir les fichiers nécessaires pour son démarrage. Ces fichiers sont en fait un système d'exploitation minimal qui permet l'initialisation des terminaux jusqu'à la prise en charge du serveur de démarrage. Le mini système envoyé par PXE est composé de deux fichiers : Initrd et Vmlinuz

  • Vous pouvez installer le service PXELINUX à l'aide de la commande :
    urpmi pxelinux

Installation des images de démarrage

  • L'initrd est un fichier gzipper qui contient un petit système de fichier permettant de charger des modules au noyau et qui permet aux terminaux de s'initialiser.
  • Vmlinuz est le noyau compressé de GNU/Linux

Vous devez copier les images de démarrage (initrd et vmlinuz) sous le répertoire tftpboot. La version de Mandriva utilise le répertoire /var/lib/tftpboot/X86PC/linux/ pour emmagasiner ces images.

Si vous n'avez pas d'image de démarrage (initrd et vmlinuz), vous pouvez en créer à l'aide de la procédure suivante
  • Si vos images ont été générées sur un serveur de démarrage qui se trouve sur la même machine que le serveur PXE, vous pouvez les copier à l'aide de la commande :
    cp /opt/xtermroot/updates/current/* /var/lib/tftpboot/X86PC/linux/
    Note : Si le serveur PXE était installé lors de génération de l'initrd et du vmlinuz, les fichiers devraient avoir été copiés lors de leur génération.
  • Si vos images ont été générées sur un serveur de démarrage qui se trouve sur une machine distante, vous pouvez les copier en exécutant la commande suivante sur le serveur de démarrage :
    scp /opt/xtermroot/updates/current/vmlinuz /opt/xtermroot/updates/current/initrd root@ADRESSEE_SERVEUR_PXE:/var/lib/tftpboot/X86PC/linux/

Configuration du gestionnaire de démarrage

La configuration du gestionnaire de démarrage se fait dans le fichier /var/lib/tftpboot/X86PC/linux/pxelinux.cfg/default

PROMPT 1
DEFAULT terminal
TIMEOUT 5

label local
  LOCALBOOT 0

label terminal
  KERNEL images/vmlinuz
  APPEND init=/linuxrc rw root=/dev/ram0 initrd=initrd nfsroot=ADRESSE_SERVEUR_DÉMARRAGE:/opt/xtermroot vga=788


Donc, c'est le fichier pxelinux.0 qui va gérer le Boot par le réseau. Ce fichier se retrouve généralement dans la distribution de Syslinux sous: /usr/lib/syslinux/pxelinux.0 Il faut copier ce fichier dans le répertoire racine de TFTP qui se trouve généralement dans:

                  /tftpboot     ou     /tftpboot/PXEClient 


Ne pas oublier de redémarrer le service DHCP après chaque modification dans le fichier de configuration: service dhcpd restart