[GH-ISSUE #1264] Publish iPXE binaries w/o IPv6 support #1913

Open
opened 2026-03-01 18:37:17 +03:00 by kerem · 4 comments
Owner

Originally created by @samip5 on GitHub (Jun 29, 2023).
Original GitHub issue: https://github.com/netbootxyz/netboot.xyz/issues/1264

Is your feature request related to a problem? Please describe.
Broken happy eyeballs implementation might result in iPXE trying to use IPv6 when there is none available and prevent an user to use it.

Describe the solution you'd like
Publish all artifacts w/o IPv6 support too.

Describe alternatives you've considered
Compiling it myself, but that's not feasible to keep up-to-date.

Additional context
https://discord.com/channels/425186187368595466/425186187368595468/1123844673086160978

Originally created by @samip5 on GitHub (Jun 29, 2023). Original GitHub issue: https://github.com/netbootxyz/netboot.xyz/issues/1264 **Is your feature request related to a problem? Please describe.** Broken happy eyeballs implementation might result in iPXE trying to use IPv6 when there is none available and prevent an user to use it. **Describe the solution you'd like** Publish all artifacts w/o IPv6 support too. **Describe alternatives you've considered** Compiling it myself, but that's not feasible to keep up-to-date. **Additional context** https://discord.com/channels/425186187368595466/425186187368595468/1123844673086160978
Author
Owner

@mthibaut commented on GitHub (Aug 6, 2023):

Actually I feel this should be treated as a bug. iPXE simply doesn't have a working BIOS implementation of IPv6.

What this means is that if you happen to have a working IPv6 implementation on your network and boot netboot.xyz using BIOS, it fails. There is no mitigation that I can see. Just google for IPv6 and iPXE issues and you can find error reports all over the place. This one for instance is quite illuminating:

https://forum.ipxe.org/showthread.php?tid=16868

So I would suggest the following in roles/netbootxyz/files/ipxe/local/general.h:

#undef NET_PROTO_IPV6

<!-- gh-comment-id:1666687250 --> @mthibaut commented on GitHub (Aug 6, 2023): Actually I feel this should be treated as a bug. iPXE simply doesn't have a working BIOS implementation of IPv6. What this means is that if you happen to have a working IPv6 implementation on your network and boot netboot.xyz using BIOS, it fails. There is no mitigation that I can see. Just google for IPv6 and iPXE issues and you can find error reports all over the place. This one for instance is quite illuminating: https://forum.ipxe.org/showthread.php?tid=16868 So I would suggest the following in roles/netbootxyz/files/ipxe/local/general.h: `#undef NET_PROTO_IPV6`
Author
Owner

@antonym commented on GitHub (Aug 6, 2023):

Can you give this a try and see if it helps improve the detection of a env that may not have v6 fully working?

https://github.com/netbootxyz/netboot.xyz/issues/283#issuecomment-1627775682

<!-- gh-comment-id:1666939872 --> @antonym commented on GitHub (Aug 6, 2023): Can you give this a try and see if it helps improve the detection of a env that may not have v6 fully working? https://github.com/netbootxyz/netboot.xyz/issues/283#issuecomment-1627775682
Author
Owner

@nrvale0 commented on GitHub (Aug 19, 2024):

Please see the following comment from another Issue: https://github.com/netbootxyz/netboot.xyz/issues/283#issuecomment-2296911959

<!-- gh-comment-id:2296913266 --> @nrvale0 commented on GitHub (Aug 19, 2024): Please see the following comment from another Issue: https://github.com/netbootxyz/netboot.xyz/issues/283#issuecomment-2296911959
Author
Owner

@NiKiZe commented on GitHub (Dec 30, 2025):

This seems to be a case where https://howtodisableipv6.com/ applies.
Yes, the UX with iPXE on a network with broken IPv6 could use some improvements.
But in most cases the issues that is hidden by disabling IPv6 on a client is much better solved by resolving the root cause, as in misconfigured network.

iPXE should only try to use IPv6, if a IPv6 router is present on the network. But it is not uncommon for Pi-hole and other devices to announce themselves as routers, even if they have no working IPv6 connectivity, if the client in question (applications) has Happy Eyeballs support this network configuration error is often not noticeable.
The matter is not helped by services that fails to allow pMTUd which just breaks, for happy eyeballs clients this, again, is hidden by fallback to IPv4, but it is much better to have the configuration fixed, rather than disable IPv6 as a band-aid.

iPXE does not have happy eyeballs support, and probably never will, so nothing is broken here, it is just following RFC, that is try IPv6 first, if available, and as stated above, if there is a router on the network claiming to provide IPv6 routing, then there is nothing to do other than to trust it, If you don't want iPXE to use IPv6, remove the router announcements, If you are sure you have working IPv6, verify that so is the case, and not falling back to v4.

To identify these issues on a network quickly, I use the IPvFoo browser extension, it shows if IPv6 is actually used/working or not for connections.

<!-- gh-comment-id:3697855996 --> @NiKiZe commented on GitHub (Dec 30, 2025): This seems to be a case where https://howtodisableipv6.com/ applies. Yes, the UX with iPXE on a network with broken IPv6 could use some improvements. But in most cases the issues that is hidden by disabling IPv6 on a client is much better solved by resolving the root cause, as in misconfigured network. iPXE should only try to use IPv6, if a IPv6 router is present on the network. But it is not uncommon for Pi-hole and other devices to announce themselves as routers, even if they have no working IPv6 connectivity, if the client in question (applications) has Happy Eyeballs support this network configuration error is often not noticeable. The matter is not helped by services that fails to allow pMTUd which just breaks, for happy eyeballs clients this, again, is hidden by fallback to IPv4, but it is much better to have the configuration fixed, rather than disable IPv6 as a band-aid. iPXE does not have happy eyeballs support, and probably never will, so nothing is broken here, it is just following RFC, that is try IPv6 first, if available, and as stated above, if there is a router on the network claiming to provide IPv6 routing, then there is nothing to do other than to trust it, If you don't want iPXE to use IPv6, remove the router announcements, If you are sure you have working IPv6, verify that so is the case, and not falling back to v4. To identify these issues on a network quickly, I use the IPvFoo browser extension, it shows if IPv6 is actually used/working or not for connections.
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#1913
No description provided.