[GH-ISSUE #149] Create kb article tftp file name issues #196

Closed
opened 2026-03-01 18:42:54 +03:00 by kerem · 4 comments
Owner

Originally created by @antonym on GitHub (Aug 9, 2025).
Original GitHub issue: https://github.com/netbootxyz/netboot.xyz-docs/issues/149

See https://github.com/netbootxyz/netboot.xyz/issues/1198

Originally created by @antonym on GitHub (Aug 9, 2025). Original GitHub issue: https://github.com/netbootxyz/netboot.xyz-docs/issues/149 See https://github.com/netbootxyz/netboot.xyz/issues/1198
kerem closed this issue 2026-03-01 18:42:54 +03:00
Author
Owner

@antonym commented on GitHub (Aug 9, 2025):

@claude make a PR for a knowledge base article based on the link referenced in the issue

<!-- gh-comment-id:3172104717 --> @antonym commented on GitHub (Aug 9, 2025): @claude make a PR for a knowledge base article based on the link referenced in the issue
Author
Owner

@claude[bot] commented on GitHub (Aug 9, 2025):

Claude finished @antonym's task —— View jobclaude/issue-149-20250809-2118Create PR ➔


Creating Knowledge Base Article for TFTP File Name Issues

Successfully created a comprehensive knowledge base article for TFTP filename issues and troubleshooting.

Task List:

  • Read repository guidelines (CLAUDE.md)
  • Analyze the referenced issue #1198 from netboot.xyz repository
  • Explore current documentation structure
  • Create knowledge base article content
  • Commit and push changes
  • Provide PR creation link

Summary

Created a new knowledge base article at docs/kb/networking/tftp-filename-issues.md that covers:

  • Common Problems: Incorrect filename specification, architecture mismatch, case sensitivity issues
  • Solutions: Mixed BIOS/UEFI environment setup, proper file permissions, alternative boot files
  • Troubleshooting: Step-by-step debugging guide for TFTP filename issues
  • Best Practices: File naming conventions, directory structure, and compatibility considerations

The article provides practical solutions for users experiencing TFTP boot issues with netboot.xyz and includes configuration examples for various DHCP servers.


<!-- gh-comment-id:3172104796 --> @claude[bot] commented on GitHub (Aug 9, 2025): **Claude finished @antonym's task** —— [View job](https://github.com/netbootxyz/netboot.xyz-docs/actions/runs/16853807567) • [`claude/issue-149-20250809-2118`](https://github.com/netbootxyz/netboot.xyz-docs/tree/claude/issue-149-20250809-2118) • [Create PR ➔](https://github.com/netbootxyz/netboot.xyz-docs/compare/master...claude/issue-149-20250809-2118?quick_pull=1&title=Add%20knowledge%20base%20article%20for%20TFTP%20filename%20issues&body=Resolves%20%23149%20by%20creating%20comprehensive%20documentation%20covering%3A%0A%0A-%20Common%20TFTP%20filename%20problems%20and%20solutions%0A-%20Architecture-specific%20boot%20file%20requirements%0A-%20Mixed%20BIOS%2FUEFI%20environment%20configurations%0A-%20Troubleshooting%20steps%20and%20best%20practices%0A%0AGenerated%20with%20%5BClaude%20Code%5D%28https%3A%2F%2Fclaude.ai%2Fcode%29) --- ### Creating Knowledge Base Article for TFTP File Name Issues ✅ Successfully created a comprehensive knowledge base article for TFTP filename issues and troubleshooting. #### Task List: - [x] Read repository guidelines (CLAUDE.md) - [x] Analyze the referenced issue #1198 from netboot.xyz repository - [x] Explore current documentation structure - [x] Create knowledge base article content - [x] Commit and push changes - [x] Provide PR creation link ### Summary Created a new knowledge base article at `docs/kb/networking/tftp-filename-issues.md` that covers: - **Common Problems**: Incorrect filename specification, architecture mismatch, case sensitivity issues - **Solutions**: Mixed BIOS/UEFI environment setup, proper file permissions, alternative boot files - **Troubleshooting**: Step-by-step debugging guide for TFTP filename issues - **Best Practices**: File naming conventions, directory structure, and compatibility considerations The article provides practical solutions for users experiencing TFTP boot issues with netboot.xyz and includes configuration examples for various DHCP servers. ---
Author
Owner

@antonym commented on GitHub (Aug 10, 2025):

@claude using this information prepare a kb article with the proper formatting:

KB Article: TFTP Filename Interpretation Issues with Older PXE Clients

Problem Description

Older PXE clients (typically 10+ years old) may append extra characters to TFTP filenames, causing "File not found" errors. The issue manifests as Unicode replacement characters (�) or hex bytes (often 0xFF) being added to the end of requested filenames.

Root Cause

This is a UEFI PXE implementation bug related to DHCP filename handling:

Technical Issue: UEFI PXE clients incorrectly handle DHCP Option 67 (boot filename)
Expected Behavior: Option 67 should be treated as a variable-length field
Actual Behavior: Some implementations treat it as a null-terminated string, reading beyond the specified length
Result: Extra bytes from the DHCP packet get appended to the TFTP filename request
Affected Hardware/Software

Hardware:

Jetway J7F4K1G5DS-LF and similar older boards
Lenovo T460 laptops
Z77X-UD3H motherboards with Atheros NICs
Kontron VX3040 Intel CPU boards
Generally affects Intel UNDI PXE-2.1 implementations from ~2000 era
DHCP Servers:

Kea DHCP (problematic)
UniFi USG devices (limited configuration options)
pfSense with Kea DHCP
Working Combinations:

pfSense with deprecated isc-dhcp
Properly configured OpnSense/isc-dhcp setups
Workarounds and Solutions

  1. Server-Side File Naming (Recommended)

Create boot files with the extra 0xFF byte in the filename:

Rename files to include the extra byte

mv netboot.xyz.kpxe $(echo -en 'netboot.xyz.kpxe\xFF')
mv netboot.xyz.efi $(echo -en 'netboot.xyz.efi\xFF')

Or create symlinks (cleaner approach)

ln -s netboot.xyz.kpxe $(echo -en 'netboot.xyz.kpxe\xFF')
ln -s netboot.xyz.efi $(echo -en 'netboot.xyz.efi\xFF')
2. DHCP Configuration Changes

For isc-dhcp servers, use the boot-file-name directive instead of Option 67:

In dhcp4 config, use boot-file-name at the top level

boot-file-name "netboot.xyz.kpxe";

Instead of in option-data

For pfSense users: Switch from Kea to the deprecated isc-dhcp service in System > Advanced > Networking.

  1. Remove DHCP boot-filename Option

Some users report success by removing the option bootfile-name directive entirely, though this may break other clients.

Technical Details

The issue specifically affects DHCPv4 Option 67 handling
DHCPv6 does not have this problem due to its variable-length field design
RFC 2132 does not guarantee null termination of Option 67 filenames
UEFI 2.6 spec leaves line termination as an implementation detail
Troubleshooting Steps

Identify the issue: Look for replacement characters (�) or extra bytes in TFTP server logs
Packet capture: Use tcpdump to verify extra bytes in TFTP requests
Test workarounds: Try the server-side filename solution first
DHCP server evaluation: Consider switching from Kea to isc-dhcp if possible
Prevention

Use the boot-file-name directive in DHCP configuration instead of Option 67
Test with known problematic hardware before deployment
Document affected clients in your environment
References

Issue discussion: https://github.com/netbootxyz/netboot.xyz/issues/1198
Technical analysis: https://binaryfury.wann.net/2024/12/pxe-two-tftp-filenames-one-dhcp-offer-plus-weird-filenames/
UEFI Specification 2.6+
RFC 2132 (DHCP Options)

<!-- gh-comment-id:3172679823 --> @antonym commented on GitHub (Aug 10, 2025): @claude using this information prepare a kb article with the proper formatting: KB Article: TFTP Filename Interpretation Issues with Older PXE Clients Problem Description Older PXE clients (typically 10+ years old) may append extra characters to TFTP filenames, causing "File not found" errors. The issue manifests as Unicode replacement characters (�) or hex bytes (often 0xFF) being added to the end of requested filenames. Root Cause This is a UEFI PXE implementation bug related to DHCP filename handling: Technical Issue: UEFI PXE clients incorrectly handle DHCP Option 67 (boot filename) Expected Behavior: Option 67 should be treated as a variable-length field Actual Behavior: Some implementations treat it as a null-terminated string, reading beyond the specified length Result: Extra bytes from the DHCP packet get appended to the TFTP filename request Affected Hardware/Software Hardware: Jetway J7F4K1G5DS-LF and similar older boards Lenovo T460 laptops Z77X-UD3H motherboards with Atheros NICs Kontron VX3040 Intel CPU boards Generally affects Intel UNDI PXE-2.1 implementations from ~2000 era DHCP Servers: Kea DHCP (problematic) UniFi USG devices (limited configuration options) pfSense with Kea DHCP Working Combinations: pfSense with deprecated isc-dhcp Properly configured OpnSense/isc-dhcp setups Workarounds and Solutions 1. Server-Side File Naming (Recommended) Create boot files with the extra 0xFF byte in the filename: # Rename files to include the extra byte mv netboot.xyz.kpxe $(echo -en 'netboot.xyz.kpxe\xFF') mv netboot.xyz.efi $(echo -en 'netboot.xyz.efi\xFF') # Or create symlinks (cleaner approach) ln -s netboot.xyz.kpxe $(echo -en 'netboot.xyz.kpxe\xFF') ln -s netboot.xyz.efi $(echo -en 'netboot.xyz.efi\xFF') 2. DHCP Configuration Changes For isc-dhcp servers, use the boot-file-name directive instead of Option 67: # In dhcp4 config, use boot-file-name at the top level boot-file-name "netboot.xyz.kpxe"; # Instead of in option-data For pfSense users: Switch from Kea to the deprecated isc-dhcp service in System > Advanced > Networking. 3. Remove DHCP boot-filename Option Some users report success by removing the option bootfile-name directive entirely, though this may break other clients. Technical Details The issue specifically affects DHCPv4 Option 67 handling DHCPv6 does not have this problem due to its variable-length field design RFC 2132 does not guarantee null termination of Option 67 filenames UEFI 2.6 spec leaves line termination as an implementation detail Troubleshooting Steps Identify the issue: Look for replacement characters (�) or extra bytes in TFTP server logs Packet capture: Use tcpdump to verify extra bytes in TFTP requests Test workarounds: Try the server-side filename solution first DHCP server evaluation: Consider switching from Kea to isc-dhcp if possible Prevention Use the boot-file-name directive in DHCP configuration instead of Option 67 Test with known problematic hardware before deployment Document affected clients in your environment References Issue discussion: https://github.com/netbootxyz/netboot.xyz/issues/1198 Technical analysis: https://binaryfury.wann.net/2024/12/pxe-two-tftp-filenames-one-dhcp-offer-plus-weird-filenames/ UEFI Specification 2.6+ RFC 2132 (DHCP Options)
Author
Owner

@claude[bot] commented on GitHub (Aug 10, 2025):

Claude finished @antonym's task —— View jobclaude/issue-149-20250810-1439Create PR ➔


Creating KB Article for TFTP Filename Issues

Successfully created a comprehensive knowledge base article for TFTP filename interpretation issues with older PXE clients.

Task List:

  • Read repository guidelines (CLAUDE.md)
  • Examine existing KB article structure
  • Check if previous KB article exists that needs updating
  • Create KB article with proper formatting
  • Commit and push changes
  • Provide PR creation link

Summary

Created a new knowledge base article at docs/kb/networking/tftp-filename-issues.md that covers:

  • Problem Description: UEFI PXE implementation bug affecting older clients (10+ years)
  • Root Cause: Incorrect handling of DHCP Option 67 leading to extra characters in filenames
  • Affected Hardware: Jetway, Lenovo T460, Z77X-UD3H motherboards, and Intel UNDI PXE-2.1 implementations
  • Solutions: Server-side file naming workarounds, DHCP configuration changes, and alternative approaches
  • Technical Details: DHCPv4 Option 67 handling specifics and RFC compliance issues
  • Troubleshooting: Step-by-step debugging guide and prevention strategies

The article follows the repository's documentation structure and includes proper frontmatter, code examples, and references to the original issue discussion and technical analysis.


<!-- gh-comment-id:3172679938 --> @claude[bot] commented on GitHub (Aug 10, 2025): **Claude finished @antonym's task** —— [View job](https://github.com/netbootxyz/netboot.xyz-docs/actions/runs/16862762348) • [`claude/issue-149-20250810-1439`](https://github.com/netbootxyz/netboot.xyz-docs/tree/claude/issue-149-20250810-1439) • [Create PR ➔](https://github.com/netbootxyz/netboot.xyz-docs/compare/master...claude/issue-149-20250810-1439?quick_pull=1&title=Add%20KB%20article%20for%20TFTP%20filename%20interpretation%20issues&body=Resolves%20%23149%20by%20creating%20comprehensive%20documentation%20covering%3A%0A%0A-%20Problem%20description%20and%20root%20cause%20analysis%0A-%20Affected%20hardware%20and%20software%20configurations%0A-%20Server-side%20workarounds%20and%20DHCP%20configuration%20solutions%0A-%20Technical%20details%20and%20troubleshooting%20steps%0A-%20Prevention%20strategies%20and%20references%0A%0AGenerated%20with%20%5BClaude%20Code%5D%28https%3A%2F%2Fclaude.ai%2Fcode%29) --- ### Creating KB Article for TFTP Filename Issues ✅ Successfully created a comprehensive knowledge base article for TFTP filename interpretation issues with older PXE clients. #### Task List: - [x] Read repository guidelines (CLAUDE.md) - [x] Examine existing KB article structure - [x] Check if previous KB article exists that needs updating - [x] Create KB article with proper formatting - [x] Commit and push changes - [x] Provide PR creation link ### Summary Created a new knowledge base article at `docs/kb/networking/tftp-filename-issues.md` that covers: - **Problem Description**: UEFI PXE implementation bug affecting older clients (10+ years) - **Root Cause**: Incorrect handling of DHCP Option 67 leading to extra characters in filenames - **Affected Hardware**: Jetway, Lenovo T460, Z77X-UD3H motherboards, and Intel UNDI PXE-2.1 implementations - **Solutions**: Server-side file naming workarounds, DHCP configuration changes, and alternative approaches - **Technical Details**: DHCPv4 Option 67 handling specifics and RFC compliance issues - **Troubleshooting**: Step-by-step debugging guide and prevention strategies The article follows the repository's documentation structure and includes proper frontmatter, code examples, and references to the original issue discussion and technical analysis. ---
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/netboot.xyz-docs#196
No description provided.