bugGNU GRUB - Bugs: bug #61101, UEFI PXE boot over VLAN is failing...


You are not allowed to post comments on this tracker with your current authentication level.

bug #61101: UEFI PXE boot over VLAN is failing with 'could not resolve hardware address' msg

Submitted by:  Piotr Zaprawa <pb_pzaprawa>
Submitted on:  Wed 01 Sep 2021 09:51:34 AM UTC  
Category:  Booting Severity:  Major
Priority:  5 - Normal Item Group:  Software Error
Status:  None Privacy:  Public
Assigned to:  None Originator Name:  Piotr Zaprawa
Open/Closed:  Open Release: 
Release:  other Reproducibility:  Every Time
Planned Release:  None

Sun 12 Sep 2021 09:32:11 PM UTC, comment #4: 

I had some discussion with TJ_ on IRC/#grub.  TJ was very helpful, here are some relevant links and findings we discussed:

This thread is related: https://lists.gnu.org/archive/html/help-grub/2017-01/msg00002.html "UEFI-PXE boot to grub2 with BIOS configured VLAN tagging?"

VLAN Trunk: The system trying to PXE boot is on a trunk port, not access port.  The post to the help-grub has a better use case than I do, "...think hypervisor host with just one interface which is a VLAN trunk."

Found 2 links to informative UEFI documentation:
- https://edk2-docs.gitbook.io/edk-ii-uefi-driver-writer-s-guide/25_network_driver_design_guidelines/253_simple_network_protocol_implementations
- https://edk2-docs.gitbook.io/edk-ii-uefi-driver-writer-s-guide/25_network_driver_design_guidelines

iPXE vision explaining poor UEFI features:
- https://ipxe.org/efi/vision

From TJ: there's a very interesting comment in the source of grub-core/net/drivers/efi/efinet.c::grub_efi_net_config_real() around line 353 about how EFI deals with PXE.

A workaround that TJ proposed (that is possibly better than using my old grub 0.97 for these specific boots): UEFI pxe -> DHCP -> iPXE -> grub2.  "Host UEFI PXE DHCP/TFTP fetches the iPXE UEFI executable as the PXE payload. iPXE can then be configured to do the same again (DHCP/TFTP) to load GRUB"

Possibly a hint:
My main test system is a Dell with IDRAC on a shared nic. The IDRAC is also configured to use the same same VLAN.  Odd thing, the IDRAC is very unstable during these attempted PXE boots, the IDRAC itself hangs/reboots seemingly every time the system tries to PXE boot.  The IDRAC is stable via network when not doing these PXE boot tests.  It is also stable when accessed from USB (instead of network) while doing these PXE boot tests.

Potential debug options:
- build all needed modules into the grub image for better diagnostic info
- (hack) adding the option to set a vlan tag number from a variable would be useful as a test

I will attempt to:
- build modules in base image and post (in text) all the grub variable (using a text console instead of graphical)
- get a workaround by bouncing through iPXE
- setup a qemu environment where I can test and share configuration with others

Scott Serr <serrsm>
Thu 09 Sep 2021 08:00:52 PM UTC, comment #3: 

Grub is not able to tftp/get its modules. Building modules into the image does not help "error: could not resolve hardware address."

Scott Serr <serrsm>
Thu 09 Sep 2021 07:54:02 PM UTC, comment #2: 

I have also run into this same problem.  I'll add that I've tried patches to 2.06 from various vendors (Fedora, OpenSUSE, CentOS).  I'm able to test on Dell (C6420/Intel) and SuperMicro (H12DSG-Q-CPU6/AMD).

Same as Piotr, 2.06 works fine with Legacy BIOS + VLAN (booting core.0).  Also UEFI without VLAN works fine.

I'll add: Grub 0.97 (Legacy) with vendor patches in CentOS 6.9/6.10 will boot UEFI + VLAN. grub-0.97-99.el6.x86_64.rpm

I'm willing to test, patch, and debug further with instruction.

Scott Serr <serrsm>
Wed 01 Sep 2021 10:45:14 AM UTC, comment #1: 

Windows is booting fine over UEFI PXE boot with VLAN enabled.

Piotr Zaprawa <pb_pzaprawa>
Wed 01 Sep 2021 09:51:34 AM UTC, original submission:  

Versions affected: up to 2.06 (2.02., 2.04, 2.06)
Reproduced on: UEFI PXE over VLAN
No repro on: Legacy PXE over VLAN
No repro on: non VLAN UEFI+Legacy PXE boot
Tested on: DELL platforms (x86_64) with various Intel adapters (DHCP+IPv4)

Having PXE server with GRUB, there is no possibility to boot over VLAN under UEFI. The 'core.efi' file is loading properly, but then timeout occurs with 'error: could not resolve hardware address' message (see attachment). Finally GRUB is entering rescue mode and no menu appears. 'core.efi' is the only one file downloaded using TFTPD. Legacy PXE over VLAN and all non-VLAN PXE boots work fine.
No working patches found. SET output attached.

Piotr Zaprawa <pb_pzaprawa>


Attached Files


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by serrsm (Posted a comment)
  • -email is unavailable- added by pb_pzaprawa (Submitted the item)
  • -email is unavailable- added by pb_pzaprawa

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.




    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2021-09-01 pb_pzaprawa Attached File- => Added uefi_pxe_boot_over_vlan.png, #51856
        Attached File- => Added uefi_pxe_boot_over_vlan_2.png, #51857
        Carbon-Copy- => Added piotr.zaprawa@intel.com

    Back to the top

    Powered by Savane 3.7