Cant pxe boot to fog.
-
So I created a fog server the other day on my test lab following the guide located here.
https://wiki.fogproject.org/wiki/index.php?title=CentOS_7Fog is up and running and I can navigate to the fog web portal.
I also setup ProxyDHCP with dnsmasq following this guide.
https://wiki.fogproject.org/wiki/index.php?title=ProxyDHCP_with_dnsmasqI assume this guide was setup for both legacy and uefi booting - i could be wrong.
When I try to pxe boot from a gen 1 vm it fails and gives me boot failure. reboot and select a proper boot device…
When I try to pxe boot from a gen 2 vm it fails and doesnt boot into fog and continues booting to windows 10. - dont see a error.
When I try to pxe boot from a laptop with legacy booting it fails and gives me pxe-e53 no boot filename received.On all 3 machines secure boot is disabled.
I have to assume dnsmasq isnt passing the file. Is there something i’m missing maybe?
The config file is pretty much the same as in step 4 on the article.
#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,,<192.168.1.3> # 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,,<192.168.1.3> dhcp-boot=net:UEFI,ipxe.efi,,<192.168.1.3> dhcp-boot=net:UEFI64,ipxe.efi,,<192.168.1.3> # 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=<192.168.1.3>,proxy
Is there something I may be missing? Any help is appreciated.
-
@blindcat420 said in Cant pxe boot to fog.:
dhcp-boot=undionly.kpxe,<192.168.1.3>
Get rid of the greater than and less than signs around the IP address. That is part of the example
<fog_server_ip>
and should not be in the config file as<192.168.1.3>
but as192.168.1.3
. Once you fix that dnsmasq service should start correctly. -
You can confirm that dnsmasq is running by issuing
ps aux|grep dnsmasq
and see if its listening by
netstat -an|grep 67
Should give you a line that lists something likeudp
and0.0.0.0:67
-
this is what i get when i type those commands.
i changed all the <192.168.1.3> to 192.168.1.3 in the config but im still not able to boot to fog.
-
the picture posted earlier was before i removed the <> from the ip address.
i just ran those commands again and got this
so i do get the
udp
line.i still cant connect to fog though from any of the machines.
-
@blindcat420 OK now that dnsmasq is running that is a start (well done by the way).
Are your target computers on the same subnet as the FOG server? They need to be for dnsmasq to hear them (if not then you will need to adjust your network infrastructure a bit). If they are on the same subnet, then what errors are you getting on the target computer when you attempt to pxe boot?
I guess I should probably ask, why do you feel you need to use dnsmasq in your environment?
-
They are on the same subnet.
When I try to pxe boot from a gen 1 vm it fails and gives me boot failure. reboot and select a proper boot device…
When I try to pxe boot from a gen 2 vm it fails and doesnt boot into fog and continues booting to windows 10. - dont see a error.
When I try to pxe boot from a laptop with legacy booting it fails and gives me pxe-e53 no boot filename received.On all 3 machines secure boot is disabled.
I have a basic home router. I would rather have dhcp from my router instead of my test lab. I havent got as far as creating a server to perform dhcp instead of my router. since its a test lab it may not stay on all the time. its loud and in my room lol. I wanted to see if i could get this working because a guy at my work did. mainly for practice. I do plan to create other things and figured having fog setup to deploy some images would help speed up the process. I have created some syspreped images but have been testing with live vms and my laptop to verify it works before i boot up the images i created.
-
@blindcat420 As far as I see you have not talked about your network setup much yet. Where is your FOG server running, physical or VM? How are all machines/VMs connected. Fairly sure we need to look into that to help you make it work.
-
I have a basic home router. It passes out c class ip addresses. 192.168.1.x
I just got a linksys lgs552p switch from a install I just did.
So from the wall I have the modem, linksys router e2000, cable from router to linksys switch. With the new switch I was able to get my test lab online.
I have two r710 servers that I got from one of my old jobs. I just got them setup really. So I installed server 2016 eval on both. I plan to make both of them hypervisors.
Right now one of the r710 servers has hyper v installed. I have fog running as a vm on that server. The fog ip is 192.168.1.3. I can browse to the portal and log in.
I cant boot to fog though from pxe. I have a gen1 vm created, a gen 2 vm created and a laptop that uses legacy boot. I could switch it to use uefi as well.
I had the laptop hooked up to the switch. Which is where the servers are hooked up as well. So as a test I hooked the laptop up to the router just to verify if the switch was maybe blocking anything. But I cant pxe boot from my router as well.
I updated the server last night and rebooted everything. I just tested all 3 machines and still have the same issue.
I dont get any errors on the vms other than what has been posted. The only error I get is from the laptop which states no boot filename received.
So seems there is a issue with dnsmasq not passing the bootfile name.
Hope that helps clear up my setup.
-
So just to confirm. I have used brand new patch cables from the servers to the switch as well.
-
@blindcat420 How did you configure the Hyper V network for your VMs? I am not much into Hyper V but for VirtualBox/XenServer and so on you always have different options, one of them usually being named something like network bridge or bridged mode. Possibly called different in Hyper V speech. If you want “external” clients like the laptop to be able to PXE boot you definitely need properly setup the network. Here you find a hint on that: https://wiki.fogproject.org/wiki/index.php?title=Installation#Hyper-V
@Wayne-Workman is the one to talk to about this I reckon.
-
Here is a picture. I have created a virtual switch with one of the network adapters. The switch is setup to provide external addresses. I dont know what happens during pxe. But I do know when vm’s boot into windows they obtain an 192.168.1.x ip address.
-
@blindcat420 Ok so you have a home lab setup here. That is fine, it just helps us set the scope on things.
Since you have a home lab and are using virtualization, what hypervisor are you using VMWare or Virtualbox? First thing you need to ensure your fog server is bridged to your physical network and not connected via nat. Also once you install your fog server it’s IP address must not change. There are hard coded bits of fog that use static ip address when fog was installed.
Also since you were not getting any real error message it sounds like the dnsmasq pxe boot stuff is not getting through. Make sure on your FOG server that you have selinux set to permissive and the linux firewall disabled.
Also there was a recent thread where someone was using virtual box for both the target and fog server. For what ever reason he could not get that setup to pxe boot. All of the signals where there bit the client kept coming up with unable to locate the boot file. He was using the isc-dhcp server and not dnsmasq so you may have better luck.
I know in my soho setup I have a home router setup and then a fog server running on a raspberry pi3 running dnsmasq. I can pxe boot clients running under virtual box (on linux mint) just fine. So you should be able to get it to work in your soho environment too.
Edit: Well dang I should have refreshed my page before answering. I see you and Sebastian have been working on it too.
-
I would suggest a packet capture on the fog server to see whats going on.
@blindcat420 do you know if you’re VM is setup to network boot via Legacy or UEFI? Do you know what version of dnsmasq you’re using? -
@blindcat420 said in Cant pxe boot to fog.:
When I try to pxe boot from a laptop with legacy booting it fails and gives me pxe-e53 no boot filename received.
@Wayne-Workman You are right the next steps is to grab a pcap of the external laptop pxe booting. That pxe-e53 error is telling. The soho routers will typically post themselves as the next server with no boot file.
@blindcat420 Follow the instructions here and post the results in this thread: https://forums.fogproject.org/topic/9673/when-dhcp-pxe-booting-process-goes-bad-and-you-have-no-clue
-
I installed tcpdump and have created the output.pcap file. I dont have much experience with linux hence why I’m messing with it.
How can I move that file to one of my windows file shares? So i can upload it here?
Answers to earlier questions.
I have a few vm’s 1 uses legacy, 1 uses uefi, i have a laptop that is currently set to legacy but i can change it to uefi.
I just installed dnsmasq the other day so it would be whatever the latest version is.
-
-
So I got a update. Seems I’m getting more action after disabling the firewall on fog.
vm 1 with legacy boot gives me this now.
vm 2 with uefi boot gives me this.
the laptop gives me the same error as the first picture.
-
@blindcat420 Just a quick question. Did you disable selinux? Check with
sestatus
or withgetenforce
. This is in the CentOS 7 instructions. -
@blindcat420 Ok those screen shots are very helpful in telling where its going sideways. Can you grab another pcap now that you have the linux server firewall disabled. In the previous pcap I only see dhcp “Offers” from your firewall/router and not dnsmasq.
I also suggest that you load wireshark onto a windows computer so you can review the pcap file.
Remember a dhcp/pxe boot process always follows this flow.
Client ->Discover
DHCP Server->Offer
(if you have proxyDHCP) DHCP Proxy ->Offer
Client ->Request
DHCP Server ->ACK
(end of normal dhcp)
(start of pxe booting)
Client ->DHCP Proxy
Client ->DHCP Proxy
Client ->tftp server (request file size)
Client ->tftp server (request file)Also if you want to interact with FOG server from windows land you will need 2 applications in your tool box.
- Putty (remote ssh termial)
- WinSCP (remote file copy explorer)
From your picture, just for clarity 192.168.1.3 is your FOG server?
From the pictures it appears that dnsmask is working but maybe the tftp server is sending the file. The pcap will tell us a bit more where to look.