NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-i386/54561: pxeboot TFTP block2+ acks broken

>Number:         54561
>Category:       port-i386
>Synopsis:       pxeboot TFTP block2+ acks broken
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-i386-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Sep 22 16:25:00 +0000 2019
>Originator:     pierre-philipp braun
>Release:        9.0_BETA
Innopolis University
n.a. (pxeboot)
This bug report is about the TFTP client built-into netbsd's pxeboot.

The TFTP protocol has acks and the server sends only the next block once it receives an ack for the one that has last been sent.

The first ack (for block1) is correctly sent by pxeboot with IP destination and UDP port.  TFTP ack for block 1 is 00 04 00 01.

There is an attempt for the second ack (for block2) to be sent by pxeboot but IP destination and UDP port are missing.  Eventhough wireshark does not truly recognize this packets as a TFTP ack, one can see look at the HEX and see 00 04 00 02.

As a result, the TFTP server keep sending block2, because it did not receive the ack for block1.

Setup a PXE service (DHCP+TFTP+pxeboot), here done on Slackware Linux 14.2.  I did not try to reproduce it with NetBSD's TFTP server.

    next-server TFTP-NFS-SERVER;
    filename "pxeboot_ia32.bin";

Then PXE boot from a client node, get to the netbsd boot loader prompt provided by pxeboot and enter

    boot tftp:netbsd-INSTALL.gz

The `tftp:` device type needs to be specified otherwise it does NFS by default.

Home | Main Index | Thread Index | Old Index