[Dnsmasq-discuss] PXE booting a Raspberry Pi 3B

ygator at yahoo.com ygator at yahoo.com
Wed Jan 11 22:31:01 UTC 2023


I'm trying to pxe boot a Raspberry Pi 3B (not 3B+) with dnsmasq configured with a tftp server on a different host.  In all cases I've tried it always uses dnsmasq as the tftp server.  Btw, I have Raspberry Pi 4 that does work.

Doing some tests with my own pxe server I was able to get the Raspberry Pi 3B to use the proper tftp server only when I sent option 66 last or possibly after option 43 as both are true.

Is there a way to configure dnsmasq for this to work? 

The Raspberry Pi 3B does request the tftp server parameter last, however the RFC says it is not required for the server to comply though it does say it MUST try.

FROM RFC2132


9.8. Parameter Request List


   This option is used by a DHCP client to request values for specified
   configuration parameters.  The list of requested parameters is
   specified as n octets, where each octet is a valid DHCP option code
   as defined in this document.


   The client MAY list the options in order of preference.  The DHCP
   server is not required to return the options in the requested order,
   but MUST try to insert the requested options in the order requested
   by the client.




Thanks




Details below


Network Devices
===============
192.168.0.1 = router
192.168.0.4 = dnsmasq server
192.168.0.5 = ntp server
192.168.0.6 = rpi3b computer
192.168.0.7 = tftp server


dnsmasq configuration
=====================
dhcp-range=192.168.0.0,192.168.0.255,255.255.255.0,12h
dhcp-reply-delay=tag:rpi3b,2
dhcp-ignore=tag:!known
dhcp-option=3,192.168.0.1
dhcp-option=6,192.168.0.4
dhcp-option=42,192.168.0.5
dhcp-boot="bootcode.bin","192.168.0.7",192.168.0.7
pxe-service=0,Raspberry Pi Boot
enable-tftp
tftp-root=/home/pi/network/tftpboot
log-dhcp
domain-needed
bogus-priv
no-hosts
addn-hosts=/home/pi/network/hosts
dhcp-host=aa:bb:cc:dd:ee:ff,rpi3,192.168.0.6,infinite,set:rpi3b


/home/pi/network/hosts/hosts
============================
192.168.0.6    rpi3.example.com


dnsmasq output
==============
dnsmasq-dhcp[48831]: 653460281 available DHCP range: 192.168.0.0 -- 192.168.0.255
dnsmasq-dhcp[48831]: 653460281 vendor class: PXEClient:Arch:00000:UNDI:002001
dnsmasq-dhcp[48831]: 653460281 DHCPDISCOVER(wlan0) aa:bb:cc:dd:ee:ff
dnsmasq-dhcp[48831]: 653460281 tags: rpi3b, known, wlan0
dnsmasq-dhcp[48831]: 653460281 reply delay: 2
dnsmasq-dhcp[48831]: 653460281 DHCPOFFER(wlan0) 192.168.0.6 aa:bb:cc:dd:ee:ff
dnsmasq-dhcp[48831]: 653460281 requested options: 43:vendor-encap, 60:vendor-class, 67:bootfile-name,
dnsmasq-dhcp[48831]: 653460281 requested options: 128, 129, 130, 131, 132, 133, 134, 135, 66:tftp-server
dnsmasq-dhcp[48831]: 653460281 next server: 192.168.0.7
dnsmasq-dhcp[48831]: 653460281 sent size:  1 option: 53 message-type  2
dnsmasq-dhcp[48831]: 653460281 sent size:  4 option: 54 server-identifier  192.168.0.4
dnsmasq-dhcp[48831]: 653460281 sent size:  4 option: 51 lease-time  infinite
dnsmasq-dhcp[48831]: 653460281 sent size: 12 option: 66 tftp-server  192.168.0.7
dnsmasq-dhcp[48831]: 653460281 sent size: 13 option: 67 bootfile-name  bootcode.bin
dnsmasq-dhcp[48831]: 653460281 sent size:  4 option:  1 netmask  255.255.255.0
dnsmasq-dhcp[48831]: 653460281 sent size:  4 option: 28 broadcast  192.168.0.255
dnsmasq-dhcp[48831]: 653460281 sent size:  9 option: 60 vendor-class  50:58:45:43:6c:69:65:6e:74
dnsmasq-dhcp[48831]: 653460281 sent size: 17 option: 97 client-machine-id  00:44:44:44:44:44:44:44:44:44:44:44:44:44...
dnsmasq-dhcp[48831]: 653460281 sent size: 32 option: 43 vendor-encap  06:01:03:0a:04:00:50:58:45:09:14:00:00:11...
dnsmasq-tftp[48831]: sent /home/pi/network/tftpboot/bootcode.bin to 192.168.0.6
dnsmasq-tftp[48831]: file /home/pi/network/tftpboot/bootsig.bin not found






More information about the Dnsmasq-discuss mailing list