[syslinux] PXELINUX gets stuck when receiving non-PXE traffic

Michael Stapelberg michael+syslinux at stapelberg.ch
Wed Jun 5 23:45:13 PDT 2019


Hey,

I am running a custom-built router (based on a PCengines apu2c4 board, see
https://github.com/rtr7/router7 for details) on which I am using PXE boot
for recovery purposes, i.e. reverting to an older version of the
software/configuration. In this scenario, my workstation acts as the DHCP,
TFTP and HTTP server, and my router PXE boots into a recovery program.

I have noticed a couple of times that PXE boot, while working fine in lab
conditions, does not work well in practice on my network. The symptom is
that lpxelinux.0 is loaded fine, the PXELINUX log line is printed (PXELINUX
6.04 lwIP 6.04-pre3 Copyright (C) 1994-2015 H. Peter Anvin et al), but then
the boot is stuck indefinitely (I waited for multiple hours on one
occasion).

Looking closer into this, the issue seems to be that receiving any (?)
non-PXE traffic makes the PXE boot stuck. In my setup, my router receives
e.g. DNS queries (and ARP queries for said DNS queries). Once I get rid of
the extra traffic by disconnecting my router from my switch and just
connecting it 1:1 to my workstation, PXE boot works fine.

I have recently been able to reproduce this issue in a lab setup (another
apu2c4 connected 1:1 to my laptop) by using a small program to send DNS
queries every 100ms, which seems sufficient to trigger the issue.

Find more details at https://github.com/rtr7/router7/issues/29

Is this a known limitation, or does it sound like a bug in PXELINUX?

Thanks in advance,
Best regards,
Michael


More information about the Syslinux mailing list