grubnetx64.efi tftp client does not work over ipv6
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Fix Released
|
High
|
LaMont Jones | ||
grub2 (Ubuntu) |
Fix Released
|
High
|
Mathieu Trudel-Lapierre | ||
Xenial |
Fix Released
|
High
|
Mathieu Trudel-Lapierre | ||
grub2-signed (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Xenial |
Fix Released
|
High
|
Mathieu Trudel-Lapierre |
Bug Description
[Impact]
Trying to PXE boot (with UEFI) over IPv6 with grub. This is especially relevant for MAAS users in IPv6 setups.
[Test cases]
[IPv6 PXE boot]
0) Setup PXE boot infrastructure (https:/
1) Attempt to PXE boot (with UEFI) over IPv6 a system.
[IPv4 PXE boot]
0) Setup PXE boot infrastructure;
Required DHCP config:
- filename should specify the path to the efi binary to use to boot, or to pxelinux in a non-EFI case.
- next-server should be set to the TFTP server.
1) Attempt to PXE boot (with and without UEFI) with IPv4.
[IPv4 PXE boot with HTTPClient]
0) Setup PXE boot infrastructure;
Required DHCP config:
- set vencor class to HTTPClient.
- configure filename to be the url to the pxelinux (non-UEFI) or EFI binary (UEFI)
- next-server should be set to the TFTP server.
1) Attempt to PXE boot (with and without UEFI) with IPv4.
[MaaS deployment in IPv4 network]
1) deploy a system using MaaS in an IPv4-only network.
[MaaS deployment in IPv6 network]
1) deploy a system using MaaS in an IPv6-only network.
[MaaS deployment in a mixed network]
1) deploy a system using MaaS on a network with both IPv4 and IPv6.
Testers can use grubnetx64.
[Regression potential]
Possible regressions include any issues in routing IPv4 or IPv6 and/or retrieving files over PXE/tftp via grub. Ping is a good way to validate that routing is being done correctly, so is actually booting using the build grubnetx64.efi.
---
Testing using the pre-built grubnetx64.efi, I am not able to use the tftp client support within grub2 to load configs (/kernels/initrds) over the network. This works fine if using IPv4.
grubnetx64.efi is being loaded over the network (via shim no less), so the firmware's network stack is definitely up and working. But when grub tries to load grub.cfg via the default path, it fails with:
error: couldn't send network packet.
This message is repeated, approximately once every three seconds. It looks to be an infinite loop; at least, the message is repeated more than 100 times. But sometimes, when I've not been paying close attention to the boot, I get a grub shell instead. In that case, the grub shell shows:
grub> echo $root
tftp,0.5.0.24
grub> set
[...]
net_default_server=
net_efinet2_
net_efinet2_
net_efinet2_
[...]
prefix=
pxe_default_server=
root=tftp,0.5.0.24
[...]
grub>
The actual server IP is 2001:1938:23f::2.
I've booted a locally-generated (self-signed) grubnetx64.efi with grub-bootstrap.cfg modified to call 'set' first, and I get identical output for all of the network-related variables.
Changed in grub2 (Ubuntu): | |
status: | Confirmed → In Progress |
assignee: | nobody → Mathieu Trudel-Lapierre (cyphermox) |
Changed in grub2 (Ubuntu Xenial): | |
assignee: | nobody → Mathieu Trudel-Lapierre (cyphermox) |
importance: | Undecided → High |
status: | New → Triaged |
description: | updated |
Changed in grub2 (Ubuntu Xenial): | |
status: | Triaged → In Progress |
Changed in grub2-signed (Ubuntu): | |
status: | New → Fix Released |
Changed in grub2-signed (Ubuntu Xenial): | |
status: | New → In Progress |
Changed in grub2-signed (Ubuntu): | |
importance: | Undecided → High |
Changed in grub2-signed (Ubuntu Xenial): | |
importance: | Undecided → High |
assignee: | nobody → Mathieu Trudel-Lapierre (cyphermox) |
tags: | added: maas-ipv6 |
Changed in maas: | |
status: | Confirmed → Triaged |
tags: | removed: verification-failed |
Changed in maas: | |
status: | Triaged → Fix Released |
description: | updated |
tags: |
added: verification-done removed: verification-needed |
Details on how to configure a DHCPv6 server in order to reproduce this can be found here: /wiki.ubuntu. com/UEFI/ SecureBoot- PXE-IPv6# DHCPv6_ .28isc- dhcp-server. 29
https:/