Dnsmasq, mon meilleur ami aussi pour le boot PXE !
Dnsmasq est un super petit serveur DNS et DHCP à destination des bricoleurs : fort simple à déployer et utiliser, il est parfait pour les installations domestiques ou celles des petites entreprises (on en a déjà parlé ici, ici et ici). Dnsmasq est par exemple employé au sein du micrologiciel (firmware) pour routeur Tomato car il est léger et en même temps très puissant.
J'ai découvert aujourd'hui une nouvelle corde à l'arc de Dnsmasq : il possède des fonctionnalités TFTP (Trivial File Transfer Protocol) qui permettent de l'utiliser pour booter un ordinateur (un serveur par exemple) en mode PXE (Preboot Execution Environment) en quelques lignes de configuration seulement.
L'usage est fort simple, tout se règle dans le fichier de configuration /etc/dnsmasq.conf :
dhcp-boot=pxelinux.0,pxeserver,192.168.18.11 pxe-service=x86PC, "Install Linux", pxelinux enable-tftp tftp-root=/tmp/tftp
Les 4 lignes sont assez explicites :
dhcp-boot=pxelinux.0,pxeserver,192.168.18.11 pxe-service=x86PC, "Install Linux", pxelinux
propose à chaque système en faisant la requête de démarrer en mode PXE en interrogeant 192.168.18.11 comme serveur de boot PXE. Pour que la suite fonctionne, il faut évidemment que 192.168.18.11 pointe vers l'hôte hébergeant le service Dnsmasq lui-même.
Puis
enable-tftp
active le TFTP de Dnsmasq.
Et enfin,
tftp-root=/tmp/tftp
indique où trouver le répertoire qui sera servi au travers de TFTP.
Si l'on veut démarrer l'installation de Debian par exemple, on aura préalablement décompressé netboot.tar.gz dans ce dossier ! Et miracle, tout périphérique cherchant à démarrer avec PXE sur le réseau va interroger Dnsmasq et récupérer le nécessaire pour le boot. Démarrer un serveur en PXE devient alors très facile !