PXE E74 on some PC



  • Hi all !
    First congrats for your project, I use it regularly on my personal network and it works wonderfully well!
    Secondly, I come here because I encounter some problem on a similar solution used at work (personalized solution) and we encounter some problems on some Pc. Our solution is dnsmasq proxy dhcp based for pxe client booting.
    we have 1 client vlan where is connected our dnsmasq server and another vlan (on another site) where is connected our main dhcp server. Our Lenovo Laptops with IBA netadapter boot without problem BUT our Lenovo ThinkCenter (realtek PXE B00 D02) are facing problem ‘PXE E74’. we don’t understand why. (Virtualbox Vm have this error too). This problem appear only for legacy Bios boot (UEFI pxe boot works in all of case)

    i think the problem is the main DHCP server has scope option 43 set with a kind of URL … (i don’t know what is it) But why only some pc are impacted ??

    we are using :
    dnsmasq 2.77 (freshly updated to test the dhcp-reply-delay option)
    ipxe.pxe (tried undionly.kpxe too but i think it is not the problem)
    ipxe.efi
    our ipxe file send one menu.ipxe file by http (no pb with that)

    (I’m able to capture traffic if needed)

    I thank you very much in advance to read that and keep an eye to the conf to say me what can be wrong .

    our config is like that :

    #DHCP-PARAM ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    #no dns
    port=0
    # Log lots of extra information about DHCP transactions.
    log-dhcp
    dhcp-no-override
    #|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    
    #TFTP-PARAM ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    # Set the root directory for files available via FTP.
    enable-tftp
    tftp-root=/srv/tftp/
    #|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    
    #*******************************************************************
    #BIOS BOOT PARAM |||||||||||||||||||||||||||||||||||||||||||||||||||
    
    dhcp-match=ipxe,175
    dhcp-option-force=175,ipxe
    
    #dhcp-boot=ipxe.kpxe,,[*IP DNSMASQ*]
    dhcp-boot=net:!ipxe,ipxe.kpxe,,[*IP DNSMASQ*]
    dhcp-boot=net:ipxe,http://[*IP DNSMASQ*]/boot.ipxe,,[*IP DNSMASQ*]
    #|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    
    #EFI BOOT PARAM ||||||||||||||||||||||||||||||||||||||||||||||||||||
    #note-> menu.ipxe directly chained by embed script
    #-------------------------------------------------
    pxe-service=BC_EFI, "boot iPXE", efi64/ipxe.efi
    pxe-service=X86-64_EFI, "Boot iPXE 64", efi64/ipxe.efi
    #|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    
    pxe-prompt="Booting",2
    #--------------------------------------------------------------------------
    # inspect the vendor class string and match the text to set the tag
    #dhcp-vendorclass=BIOS,PXEClient:Arch:00000
    #dhcp-vendorclass=UEFI32,PXEClient:Arch:00006
    #dhcp-vendorclass=UEFI,PXEClient:Arch:00007
    #dhcp-vendorclass=UEFI64,PXEClient:Arch:00009
    
    #DHCP-PROXY-PARAM ||||||||||||||||||||||||||||||||||||||||||||||||||
    dhcp-range=[*IP DNSMASQ*],proxy,255.255.255.0
    #|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    

  • Moderator

    @louislagad OK lets see what the pcap is telling us. That will give us a better picture of what the client is seeing.

    Just wondering, is the dhcp server configured for some other imaging solution?



  • client/ server are in the same vlan yes and main dhcp server is in another vlan in another country … so dhcp packet are coming from the wan


  • Moderator

    @louislagad Are client and fog server on same subnet?



  • @george1421
    ok i tried but same error E74 …

    ok, i will take a cap and submit it to you in the IM (i don’t want to publish IP @) (yes DHCP is in another subnet so you will only see the gateway because packet come from another vlan but you will have packet information)

    thx


  • Moderator

    @louislagad If the last post doesn’t fix the issue then lets grab a pcap of the dialog. What we need to get a crystal clear picture is that the fog server, dhcp server and pxe booting client need to be on the same subnet (vlan).

    https://forums.fogproject.org/topic/9673/when-dhcp-pxe-booting-process-goes-bad-and-you-have-no-clue

    Upload the pcap to a google drive and either post the link here or send me a IM with the link (if you don’t want it published globally). I’ll take a look at it with wireshark so we can understand what the client is seeing.


  • Moderator

    @louislagad said in PXE E74 on some PC:

    pxe-service=X86PC, “Boot to FOG”, undionly.kpxe
    pxe-service=X86-64_EFI, “Boot to FOG UEFI”, ipxe.efi
    pxe-service=BC_EFI, “Boot to FOG UEFI PXE-BC”, ipxe.efi

    OK what I want you to change is this in the config file I posted. (I know this config file works in 90% of the cases but some times we need to add a little more magic).

    Update the above section to look like this (replacing <fog_server_ip> with the fog server’s IP address):

    pxe-service=X86PC, "Boot to FOG", undionly.kpxe,<fog_server_ip>
    pxe-service=X86-64_EFI, "Boot to FOG UEFI", ipxe.efi,<fog_server_ip>
    pxe-service=BC_EFI, "Boot to FOG UEFI PXE-BC", ipxe.efi,<fog_server_ip>
    

    Don’t forget to restart the dnsmasq service after you update the config file.



  • @george1421 said in [PXE E74 on some PC](/post/100115):
    > # Don't function as a DNS server:
    > port=0
    > 
    > # Log lots of extra information about DHCP transactions.
    > log-dhcp
    > 
    > # Set the root directory for files available via FTP.
    > tftp-root=/tftpboot
    > 
    > # The boot filename, Server name, Server Ip Address
    > dhcp-boot=undionly.kpxe,,<fog_server_IP>
    > 
    > # Disable re-use of the DHCP servername and filename fields as extra
    > # option space. That's to avoid confusing some old or broken DHCP clients.
    > dhcp-no-override
    > 
    > # inspect the vendor class string and match the text to set the tag
    > dhcp-vendorclass=BIOS,PXEClient:Arch:00000
    > dhcp-vendorclass=UEFI32,PXEClient:Arch:00006
    > dhcp-vendorclass=UEFI,PXEClient:Arch:00007
    > dhcp-vendorclass=UEFI64,PXEClient:Arch:00009
    > 
    > # Set the boot file name based on the matching tag from the vendor class (above)
    > dhcp-boot=net:UEFI32,i386-efi/ipxe.efi,,<fog_server_IP>
    > dhcp-boot=net:UEFI,ipxe.efi,,<fog_server_IP>
    > dhcp-boot=net:UEFI64,ipxe.efi,,<fog_server_IP>
    > 
    > # PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.
    > pxe-prompt="Booting FOG Client", 1
    > 
    > # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,
    > # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
    > # This option is first and will be the default if there is no input from the user.
    > pxe-service=X86PC, "Boot to FOG", undionly.kpxe
    > pxe-service=X86-64_EFI, "Boot to FOG UEFI", ipxe.efi
    > pxe-service=BC_EFI, "Boot to FOG UEFI PXE-BC", ipxe.efi
    > 
    > dhcp-range=<fog_server_ip>,proxy
    

    George, thanks for your answer, but i have got the same problem with this config file.
    i think when my proxydhcp send option 43 (boot menu + boot prompt) it’s not taken by the client because the client receive another options 43 from the main dhcp and information is overitten i think … could it be possible ?
    but in this case how can we explain that some client boot properly from network ? (same subnet)

    however i have some differents infos sending by proxydhcp in opt 43 with your config file :

    43 (vendor-specific information) = PXEClient
    43 sub 6 = PXE Discovery Control
    43 sub 8 = PXE boot Servers
    43 sub 9 = PXE boot menu
    43 sub 10 = PXE menu prompt

    before i only had sub 9 and sub 10


  • Moderator

    [Mod note: I updated your post to include a code block so its easier to read your config]

    You might want to start with this config from the following post. https://forums.fogproject.org/topic/8725/compiling-dnsmasq-2-76-if-you-need-uefi-support/6

    This config is known to work correctly. Just be sure to update the fog server’s IP addresses.

    # Don't function as a DNS server:
    port=0
    
    # Log lots of extra information about DHCP transactions.
    log-dhcp
    
    # Set the root directory for files available via FTP.
    tftp-root=/tftpboot
    
    # The boot filename, Server name, Server Ip Address
    dhcp-boot=undionly.kpxe,,<fog_server_IP>
    
    # Disable re-use of the DHCP servername and filename fields as extra
    # option space. That's to avoid confusing some old or broken DHCP clients.
    dhcp-no-override
    
    # inspect the vendor class string and match the text to set the tag
    dhcp-vendorclass=BIOS,PXEClient:Arch:00000
    dhcp-vendorclass=UEFI32,PXEClient:Arch:00006
    dhcp-vendorclass=UEFI,PXEClient:Arch:00007
    dhcp-vendorclass=UEFI64,PXEClient:Arch:00009
    
    # Set the boot file name based on the matching tag from the vendor class (above)
    dhcp-boot=net:UEFI32,i386-efi/ipxe.efi,,<fog_server_IP>
    dhcp-boot=net:UEFI,ipxe.efi,,<fog_server_IP>
    dhcp-boot=net:UEFI64,ipxe.efi,,<fog_server_IP>
    
    # PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.
    pxe-prompt="Booting FOG Client", 1
    
    # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,
    # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
    # This option is first and will be the default if there is no input from the user.
    pxe-service=X86PC, "Boot to FOG", undionly.kpxe
    pxe-service=X86-64_EFI, "Boot to FOG UEFI", ipxe.efi
    pxe-service=BC_EFI, "Boot to FOG UEFI PXE-BC", ipxe.efi
    
    dhcp-range=<fog_server_ip>,proxy
    

Log in to reply
 

863
Online

38938
Users

10697
Topics

101491
Posts

Looks like your connection to FOG Project was lost, please wait while we try to reconnect.