[syslinux] Sporadic duplicate requests with lpxelinux.0

Dietrich, Stefan stefan.dietrich at desy.de
Thu May 14 23:42:56 PDT 2020


Hello,

answering my own question, in case somebody is running in the same problem:
After some additional debugging, most likely lpxelinux.0 ran into some error and sent the request for the UUID config again with the same source port number.
This does not work well with TFTP, wrong files are downloaded and PXE booting is broken in the end.

I found a patch on the mailing list, which solves exactly this: [PATCH] core/lwip: Avoid immediate reuse of UDP port numbers
https://www.syslinux.org/archives/2016-July/025278.html

Adding that patch to a 6.04pre1 build seems to solve our PXE problems.

Regards,
Stefan

----- Original Message -----
> From: "Stefan Dietrich" <stefan.dietrich at desy.de>
> To: syslinux at syslinux.org
> Sent: Tuesday, September 3, 2019 9:30:41 AM
> Subject: Sporadic duplicate requests with lpxelinux.0

> Hello,
> 
> I am seeing sporadic duplicate read requests from lpxelinux.0 (6.03 from
> kernel.org), which results in a failed PXE boot.
> This happens only sporadic, but happens often enough to be annoying.
> 
> The TFTP server serving lpxelinux.0 is running CentOS 7.6 with all updates
> applied.
> The client machine initiates the PXE boot, receives the lpxelinux.0 binary,
> downloads ldlinux.c32 and proceeds to download the pxelinux configuration
> files.
> 
> Sometimes the request for the pxelinux.cfg/UUID configuration file is
> duplicated.
> However this file does not exist in our setup, a file not found is returned and
> it proceeds with the MAC based config file. This file exists in our setup.
> 
> Due to the duplicate request for the UUID config file, the TFTP servers sends
> out a second file not found reply.
> The source port for the request of the UUID and MAC config are the same, so I
> think some kind of mixup happens here on the lpxelinux.0 side.
> The boot process now goes haywire, e.g. the content of the MAC address config
> file appears later in the config file for the IP in hex.
> 
> I was able to capture this on the TFTP server, see below for a short snippet.
> As the identification field in the IPv4 header is increased, this packet has not
> been simply duplicated along the way.
> Most likely lpxelinux.0 send out two requests for whatever reason?
> 
> This is not really reproducible, e.g. after a reboot of a machine in this state
> it is booting fine.
> As we rely heavily on the HTTP capability of lpxelinux.0, testing with
> pxelinux.0 is not trivial :(
> 
> Has anybody seen this before or additional ideas?
> 
> # Number Time Source SrcPort Destination DSTPort Protocol Length Info
> 16062	0.003813687	131.169.168.108	49153	131.169.81.129	69	TFTP	121	Read Request,
> File: pxelinux.cfg/008093db-74fd-e711-8000-e0d55eccd74f, Transfer type: octet,
> tsize=0, blksize=1408
> 16064	0.080917021	131.169.168.108	49153	131.169.81.129	69	TFTP	121	Read Request,
> File: pxelinux.cfg/008093db-74fd-e711-8000-e0d55eccd74f, Transfer type: octet,
> tsize=0, blksize=1408
> 16065	0.060306182	131.169.81.129	42275	131.169.168.108	49153	TFTP	61	Error Code,
> Code: File not found, Message: File not found
> 16066	0.000072405	131.169.168.108	49153	131.169.81.129	69	TFTP	105	Read Request,
> File: pxelinux.cfg/01-e0-d5-5e-cc-d7-4f, Transfer type: octet, tsize=0,
> blksize=1408
> 16067	0.000381140	131.169.81.129	32967	131.169.168.108	49153	TFTP	61	Error Code,
> Code: File not found, Message: File not found
> 16068	0.000077763	131.169.168.108	49153	131.169.81.129	69	TFTP	93	Read Request,
> File: pxelinux.cfg/83A9A86C, Transfer type: octet, tsize=0, blksize=1408
> <--- file does not exist on TFTP
> 16069	0.020583304	131.169.81.129	59373	131.169.168.108	49153	TFTP	68	Option
> Acknowledgement, tsize=1216, blksize=1408      <--- transfers the content of
> pxelinux.cfg/01-e0-d5-5e-cc-d7-4f
> 
> Regards,
> Stefan
> 
> --
> ------------------------------------------------------------------------
> Stefan Dietrich            Deutsches Elektronen-Synchrotron (IT-Systems)
>                        Ein Forschungszentrum der Helmholtz-Gemeinschaft
>                                                            Notkestr. 85
> phone:  +49-40-8998-4696                                   22607 Hamburg
> e-mail: stefan.dietrich at desy.de                                  Germany
> ------------------------------------------------------------------------


More information about the Syslinux mailing list