Installation d'un serveur PXE nomade

Bonjour Debian.

J’ai récupéré une mini-machine pas chère et je veux l’utiliser pour me faire un serveur PXE nomade (et multiboot) pour les install-parties.

Donc je dois préparer le serveur chez moi, sur mon réseau, mais il sera utilisé sur un réseau que je ne connais pas encore (puisque variable).

J’ai commencé avec ce tuto (qui est pour bookworm alors que je suis sous Trixie mais ça devrait pas être un problème j’imagine).

Mais dès que je veux lancer un service j’ai un message d’erreur de systemctl…
tftpd-hpa.service has entered the ‹ failed › state with result ‹ exit-code ›
ou bien la même chose pour dnsmasq

Pour dnsmasq j’avais fait attention à garder la même plage d’IP que le tuto vu que mes deux machines (celle avec laquelle j’écris ce message et la mini-machine) sont en 192.168.1.n* avec un n inférieur à la plage du tuto.
Par contre j’ai pas changé domain=example.com vu que j’ai pas idée de par quoi le remplacer.

On notera que par défaut /etc/dnsmasq.conf est entièrement commenté, et je n’ai rien décommenté, juste ajouté ce que le tutoriel recommandait.

À la limite j’aurais compris que le DHCP pète ma connexion (en envoyant des annonces différentes de celles de la box) mais je comprends pas pourquoi il ne se lance pas ?

Et ce que je trouve sur le net à partir des messages d’erreur n’est pas très utile (souvent des questions de forum, auxquelles personne n’a répondu).

De manière générale, j’ai pas très bien compris comment tester le serveur PXE au fur et à mesure que je l’installe, notamment vu que son IP actuelle est prise au DHCP de la box…

(je sais ce qu’est un serveur DHCP et un serveur tftp mais j’ai pas beaucoup d’expérience avec aucun de deux)

Salut,

Que donne journalctl -u tftpd-hpa.service -b
On en sera peut etre plus.

Votre config ne peut pas marcher à mon avis.
C’est le serveur dhcp qui donne les infos de l’adresse ip du serveur tftp. Vous ne pouvez donc avoir qu’un seul dhcp actif en meme temps. mini-machine en ip fixe et non connectée au lan, et client de test branché en direct.
Autre option, un labo en machine virtuelle, un serveur avec 2 pattes ( lan local, et lan virtuel), en un client dans le réseau virtuel en pxeboot.

déc. 30 17:03:04 PXEServer systemd[1]: Starting tftpd-hpa.service - tftpd-hpa TFTP Server...
déc. 30 17:03:04 PXEServer in.tftpd[908]: too many -s directories
déc. 30 17:03:04 PXEServer systemd[1]: tftpd-hpa.service: Control process exited, code=exited, status=64/USAGE
déc. 30 17:03:04 PXEServer systemd[1]: tftpd-hpa.service: Failed with result 'exit-code'.
déc. 30 17:03:04 PXEServer systemd[1]: Failed to start tftpd-hpa.service - tftpd-hpa TFTP Server.

Ça j’avais compris, mais je me disais qu’en jouant sur les durées de bail je passerais entre les gouttes (oui c’est horrible mais bon ça devrait pouvoir marcher).
En plus de ce que je comprends l’erreur se manifeste avant même le lancement du serveur DHCP sur le futur serveur PXE, donc ça devrait pas être ça qui la cause.

Oui mais comment je fais pour accéder en SSH à la mini-machine pour la configurer en serveur PXE ?

Je suis pas sûr de comprendre concrètement.
La VM je la fais sur quelle machine ? La mienne principale ? Le serveur PXE je le fais sur la VM et pas sur la mini-machine ? Donc juste pour tester ?

ça ne peut pas, car ce paramètre ne joue pas sur le délai de réponse d’un serveur.

Un serveur DHCP / PXE ne peut pas être autrement qu’en ip fixe manuelle sur la patte réseau qui délivre le service dhcp/pxe.
Et pour des résultats de tests, il vaut mieux avoir deux machines virtuelle dans un même réseau virtuel, que d’utiliser une machine virtuelle et une machine hote. La machine hôte doit avoir une adresse pour permettre à la VM de pouvoir accéder à un réseau.

Bonjour, bonne année à tous.

C’est sûrement parce que le port « 69 » est utilisé par une autre application.

netstat -lnp | grep 69

Infos : https://unix.stackexchange.com/questions/359630/the-tftpd-hpa-doesnt-start-after-update

1 J'aime

Bon un ami a fait son serveur PXE mais a dû le faire sur Mint parce que ça ne marchait pas sur Debian vu que apparemment DNSMask est buggé sur Debian…

Non mais c’est pas le problème. L’idée c’est que les machines qui ont déjà le bail garderont leur IP pendant sa durée.

En DHCP, une machine garde son bail advitam aeternam tant que la durée de bail n’a pas été dépassé deux ou trois fois et que l’adresse n’a pas été remise dans le pool par le serveur.
Par défaut une machine demande toujours la dernière adresse IP qu’elle a obtenu.
tant que le serveur n’est pas configuré pour systématiquement changer l’adresse, il ne le fait pas.
C’est une des brique principale du protocole DHCP.

C’est ce que je dis, oui.

Bonjour,

Ce n’est pas à proprement parler « nomade » car il faut modifier les adresses IP dans le fichier de configuration de dnsmasq lors d’un déplacement, mais j’utilise ceci pour démarrer une installation en réseau. Depuis un serveur DHCP qui prend son adresse IP auprès d’un autre serveur DHCP et sans serveur TFTP :

dnsmasq.conf

# Disable DNS Server
port=0

# Respond to PXE requests for the specified network;
# run as DHCP proxy
dhcp-range=192.168.1.75,proxy

# Enable DHCP logging
#log-dhcp

# PXEClient must be here or 2nd stage won't work - we may reconfigure iPXE to change that
dhcp-pxe-vendor=PXEClient,HTTPClient
# for a strange reason, without the line below even the non-HTTP boot attempt will not be answered
# first argument must be a numeric value and comma is required
pxe-service=0,

# boot 1st stage
dhcp-vendorclass=set:x86-64_EFI-http,HTTPClient:Arch:00016
dhcp-boot=tag:x86-64_EFI-http,"http://192.168.1.75/iPXE/ipxe.efi"

# boot 2nd stage
dhcp-match=set:ipxe,175
dhcp-boot=tag:ipxe,"http://192.168.1.75/install.ipxe"

install.ipxe pour Bookworm

#!ipxe

echo
set mirror http://ftp.fr.debian.org
set base_path ${mirror}/debian/dists/bookworm/main/installer-amd64/current/images/netboot/debian-installer/amd64
kernel ${base_path}/linux
initrd ${base_path}/initrd.gz
initrd http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/bookworm/current/firmware.cpio.gz
sleep 2
imgargs linux initrd=initrd.magic
boot

Le fichier ipxe.efi provient du paquet ipxe ou d’une compilation depuis les sources d’iPXE.

C’est un exemple d’utilisation du mode appelé « DHCP proxy », qui permet un 2nd serveur DHCP sur le réseau ne s’occupant que de la partie boot.
L’ancien serveur DHCP de l’ISC ne permet pas ce mode de fonctionnement. Je n’ai pas essayé avec le nouveau, Kea.


AnonymousCoward

1 J'aime