Discussion:
[Dnsmasq-discuss] pxe booti: dnsmasq 2.76 not sending dhcp-force-option 66
Andreas Goetz
2017-09-02 12:23:18 UTC
Permalink
Good morning,

I’m diagnosing the problems of netbooting a raspberry Pi3 without SD card
inserted (which is supposed to work). My environment has a FritzBox router
(and DHCP server) and another raspi acting as boot server (and DHCP proxy).
Problem is that I cannot see the client raspi connect to server raspi for
TFTP.
It has been suggested in
http://www.markwilson.co.uk/blog/2014/10/raspberry-pi-infrastructure-server-dns-dhcp-tftp.htm
that
adding option 66 might help.

My problem with this suggestion is that dnsmasq apparently doesn’t send
option 66 although it is every requested by the client (looks a bit like
https://www.mail-archive.com/dnsmasq-***@lists.thekelleys.org.uk/msg05690.html
).

Here’s the server config:

resolv-file=/etc/resolv.conf.dnsmasq

port=0
dhcp-range=192.168.0.255,proxy
dhcp-option-force=66,192.168.0.48
dhcp-option-force=67,bootcode.bin
log-dhcp

enable-tftp
tftp-root=/tftpboot

pxe-service=0,"Raspberry Pi Boot”

And here’s the tcp trace. The way I’m reading this (not an expert) is that
the client is asking for various options, including 66. The server answers
but omits option 66.
My question would be if that’s the expected behaviour or if it wouldn’t be
possible to force the server to send option 66?

The trace:

No. Time Source Destination Protocol
Length Info
79 25.468155 0.0.0.0 255.255.255.255 DHCP
362 DHCP Discover - Transaction ID 0x26f30339

Frame 79: 362 bytes on wire (2896 bits), 362 bytes captured (2896 bits)
Ethernet II, Src: Raspberr_9d:c1:5a (b8:27:eb:9d:c1:5a), Dst: Broadcast
(ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255
User Datagram Protocol, Src Port: 68, Dst Port: 67
Bootstrap Protocol (Discover)
Message type: Boot Request (1)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x26f30339
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
Client IP address: 0.0.0.0
Your (client) IP address: 0.0.0.0
Next server IP address: 0.0.0.0
Relay agent IP address: 0.0.0.0
Client MAC address: Raspberr_9d:c1:5a (b8:27:eb:9d:c1:5a)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (53) DHCP Message Type (Discover)
Length: 1
DHCP: Discover (1)
Option: (55) Parameter Request List
Length: 12
Parameter Request List Item: (43) Vendor-Specific Information
Parameter Request List Item: (60) Vendor class identifier
Parameter Request List Item: (67) Bootfile name
Parameter Request List Item: (128) DOCSIS full security server IP
[TODO]
Parameter Request List Item: (129) PXE - undefined (vendor specific)
Parameter Request List Item: (130) PXE - undefined (vendor specific)
Parameter Request List Item: (131) PXE - undefined (vendor specific)
Parameter Request List Item: (132) PXE - undefined (vendor specific)
Parameter Request List Item: (133) PXE - undefined (vendor specific)
Parameter Request List Item: (134) PXE - undefined (vendor specific)
Parameter Request List Item: (135) PXE - undefined (vendor specific)
Parameter Request List Item: (66) TFTP Server Name
Option: (93) Client System Architecture
Length: 2
Client System Architecture: IA x86 PC (0)
Option: (94) Client Network Device Interface
Length: 3
Major Version: 2
Minor Version: 1
Option: (97) UUID/GUID-based Client Identifier
Length: 17
Client Identifier (UUID): 44444444-4444-4444-4444-444444444444
Option: (60) Vendor class identifier
Length: 32
Vendor class identifier: PXEClient:Arch:00000:UNDI:002001
Option: (255) End
Option End: 255

No. Time Source Destination Protocol
Length Info
80 25.469580 192.168.0.48 255.255.255.255 DHCP
356 DHCP Offer - Transaction ID 0x26f30339

Frame 80: 356 bytes on wire (2848 bits), 356 bytes captured (2848 bits)
Ethernet II, Src: Raspberr_a9:e8:80 (b8:27:eb:a9:e8:80), Dst: Broadcast
(ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 192.168.0.48, Dst: 255.255.255.255
User Datagram Protocol, Src Port: 67, Dst Port: 68
Bootstrap Protocol (Offer)
Message type: Boot Reply (2)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x26f30339
Seconds elapsed: 0
Bootp flags: 0x8000, Broadcast flag (Broadcast)
Client IP address: 0.0.0.0
Your (client) IP address: 0.0.0.0
Next server IP address: 0.0.0.0
Relay agent IP address: 0.0.0.0
Client MAC address: Raspberr_9d:c1:5a (b8:27:eb:9d:c1:5a)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (53) DHCP Message Type (Offer)
Length: 1
DHCP: Offer (2)
Option: (54) DHCP Server Identifier
Length: 4
DHCP Server Identifier: 192.168.0.48
Option: (60) Vendor class identifier
Length: 9
Vendor class identifier: PXEClient
Option: (97) UUID/GUID-based Client Identifier
Length: 17
Client Identifier (UUID): 44444444-4444-4444-4444-444444444444
Option: (43) Vendor-Specific Information (PXEClient)
Length: 32
Option 43 Suboption: (6) PXE discovery control
Option 43 Suboption: (10) PXE menu prompt
Option 43 Suboption: (9) PXE boot menu
PXE Client End: 255
Option: (255) End
Option End: 255

Much appreciated,
Andreas
Floris Bos
2017-09-02 12:46:51 UTC
Permalink
Hi Andreas,
I’m diagnosing the problems of netbooting a raspberry Pi3 without SD
card inserted (which is supposed to work).
No. Time Source Destination Protocol Length
Info
79 25.468155 0.0.0.0 255.255.255.255 DHCP 362
DHCP Discover - Transaction ID 0x26f30339
[..]
No. Time Source Destination Protocol
Length Info
80 25.469580 192.168.0.48 255.255.255.255 DHCP
356 DHCP Offer - Transaction ID 0x26f30339
Pi 3 does not like instant replies.

Add to dnsmasq.conf:

dhcp-reply-delay=1



Yours sincerely,

Floris Bos
Chris Novakovic
2017-09-02 21:45:25 UTC
Permalink
Post by Floris Bos
Pi 3 does not like instant replies.
dhcp-reply-delay=1
Just a warning, however: Floris's patch that adds this feature [1] was
committed between 2.76 and 2.77, so you'll either have to upgrade to
2.77 or recompile 2.76 with that patch applied (and I seem to recall it
not applying cleanly, having tried to do just that previously).

[1]
http://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=503c609149fcbde42e345116844fe55db59c233f
Floris Bos
2017-09-02 22:46:33 UTC
Permalink
Post by Chris Novakovic
Post by Floris Bos
Pi 3 does not like instant replies.
dhcp-reply-delay=1
Just a warning, however: Floris's patch that adds this feature [1] was
committed between 2.76 and 2.77, so you'll either have to upgrade to
2.77 or recompile 2.76 with that patch applied (and I seem to recall it
not applying cleanly, having tried to do just that previously).
If running Raspbian on a Pi, you already have a patched version.
Patch was backported to 2.76


Yours sincerely,

Floris Bos

Loading...