Baremetal Host Taking Excessively Long to Boot (TFTP Client Timed Out)

Problem

  • Baremetal host is taking excessively long to boot.

  • "Client [IP] timed out" messages for tftpd are observed in the Ironic controller log.

ironic-01 in.tftpd[711]: RRQ from 10.0.0.3 filename undionly.kpxe remapped to /var/lib/tftpboot/undionly.kpxeironic-01 in.tftpd[677]: Client 10.0.0.3 finished undionly.kpxeironic-01 in.tftpd[677]: Client 10.0.0.3 timed outironic-01 in.tftpd[680]: Client 10.0.0.3 finished undionly.kpxeironic-01 in.tftpd[680]: Client 10.0.0.3 timed outironic-01 in.tftpd[734]: remap: input: undionly.kpxeironic-01 in.tftpd[734]: remap: rule 3: rewrite: /var/lib/tftpboot/undionly.kpxeironic-01 in.tftpd[734]: remap: rule 3: exit
  • "PXE-E32: TFTP open timeout" is observed on the host console.

image__1_.png

Environment

  • Platform9 Managed Baremetal - All Versions

  • Ironic

  • Trivial Transfer File Protocol (TFTP)

Cause

The TFTP blocksize is set as 512 by default, which may limit the speed of transfers. Alternatively, the blocksize may currently exceed the MTU of the NIC.

Resolution

  1. Set the TFTP blocksize to a value which is below the MTU of the NIC – accounting for additional headers, including: TFTP (4 bytes), UDP (8 bytes), and IP (20 bytes) = 32. The value should be appended to the ExecStart as shown below within the /etc/systemd/system/tftp.service unit file.

To not exceed the standard ethernet MTU (1500), it is recommended to set the blocksize to 1468 or lower.

$ grep ExecStart /etc/systemd/system/tftp.serviceExecStart=/usr/sbin/in.tftpd -v -v -v -v -v --map-file /var/lib/tftpboot/map-file -B [size] /var/lib/tftpboot

Additional Information