Solved Trying to build FOG server on standalone network
I am setting up an imaging environment on a standalone network. However, after following the installation instructions my client gets an IP address, however, does not see the TFTP boot image and won’t boot. I am sure it has something to do with dnsmasq, but I am not sure.
Any help would be great.
Can we get a clear screen shot of the error?
Just for clarity you say you are on a standalone network, why are you using dnsmasq? Do you have an unmanageable dhcp server on this isolated network?
I am using dnsmasq because I am using an old Linksys WRT54G ver.6 router as my DHCP server. It does not support “option 66” which from my understanding is needed for tftp boot image, correct?
I am not really getting a error message. I am getting the following:
DHCP IP: 10.0.0.1 PROXY 10.0.0.100
GATEWAY IP: 10.0.0.1
Boot from network
BOOT SERVER IP: 10.0.0.100
PXE-M0F: Exiting Intel Boot Agent
Then the machine boots into windows…
@davidjor Can you post your ltsp.conf file OR can you use mine? ref last bit of this post: https://forums.fogproject.org/topic/8725/compiling-dnsmasq-2-76-if-you-need-uefi-support/6
And if everything else fails, lets grab a pcap of the pxe booting process outlined here: https://forums.fogproject.org/topic/9673/when-dhcp-pxe-booting-process-goes-bad-and-you-have-no-clue Upload a pcap to a google drive or dropbox and share the link here or IM me using the FOG IM tool the link and I will review it.
Here is my Itsp.conf file. Thank you so much.
# Sample configuration for dnsmasq to function as a proxyDHCP server, # enabling LTSP clients to boot when an external, unmodifiable DHCP # server is present. # The main dnsmasq configuration is in /etc/dnsmasq.conf; # the contents of this script are added to the main configuration. # You may modify the file to suit your needs. # Don't function as a DNS server: port=0 # Log lots of extra information about DHCP transactions. log-dhcp # Dnsmasq can also function as a TFTP server. You may uninstall # tftpd-hpa if you like, and uncomment the next line: # enable-tftp # Set the root directory for files available via FTP. tftp-root=/tftpboot # The boot filename. #dhcp-boot=pxelinux.0 dhcp-boot=unidionly.kpxe,,10.0.0.100 # rootpath option, for NFS dhcp-option=17,/images # kill multicast dhcp-option=vendor:PXEClient,6,2b # 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 # PXE menu. The first part is the text displayed to the user. The second is the timeout, in seconds. pxe-prompt="Press F8 for boot menu", 3 # 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 from network", pxelinux # A boot service type of 0 is special, and will abort the # net boot procedure and continue booting from local media. #pxe-service=X86PC, "Boot from local hard disk", 0 # If an integer boot service type, rather than a basename is given, then the # PXE client will search for a suitable boot service for that type on the # network. This search may be done by multicast or broadcast, or direct to a # server if its IP address is provided. # pxe-service=x86PC, "Install windows from RIS server", 1 # This range(s) is for the public interface, where dnsmasq functions # as a proxy DHCP server providing boot information but no IP leases. # Any ip in the subnet will do, so you may just put your server NIC ip here. # Since dnsmasq is not providing true DHCP services, you do not want it # handing out IP addresses. Just put your servers IP address for the interface # that is connected to the network on which the FOG clients exist. # If this setting is incorrect, the dnsmasq may not start, rendering # your proxyDHCP ineffective. dhcp-range=10.0.0.100,proxy # This range(s) is for the private network on 2-NIC servers, # where dnsmasq functions as a normal DHCP server, providing IP leases. # dhcp-range=192.168.0.20,192.168.0.250,8h # For static client IPs, and only for the private subnets, # you may put entries like this: # dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite
@davidjor Ok a couple of things.
- Use my ltsp.conf file
- The one you provided only supports bios systems, and you are missing a few details.
- You have a few additional settings that could possibly confuse certain target PXE Roms.
- Make sure you don’t have any other .conf files in the same directory as the ltsp.conf file.
From the linux command prompt on the FOG server please run this command and post the version number displayed
dnsmasq -vLets hope its 2.76 or newer.
If you were pxe booting a uefi system it would have failed for sure.
# 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
everywhere this conf file says <fog_server_IP> I need to edit for my ip Address, correct?
@davidjor yes, that was in the link I provided. BUT I should have also restated it, my mistake.
Also you need dnsmasq 2.76 or later to support dynamic support for both uefi and bios systems
@george1421 Thank you.
@george1421 I am getting the same result. I am running dnsmasq 2.78
@davidjor OK then follow the second link to capture a pcap file from the FOG server: https://forums.fogproject.org/topic/9673/when-dhcp-pxe-booting-process-goes-bad-and-you-have-no-clue
Post a link to the pcap file here. (FWIW: I have a similar setup wrt54/dd-wrt/dnsmasq/fog in my home lab, so I know it does work).
@george1421 George, please see the link attached. https://www.dropbox.com/s/6y7ci7g8huegm9p/output.pcap?dl=0
@davidjor Look at the chat bubble on the FOG tool tray. I have a few questions
Looking at the pcap it appears the fog server is telling the client to load pxelinux.0, which of course is wrong. What confuses me is that dnsmasq does tell the client the right file name to use in the initial Offer packet.
@davidjor I think things are being a bit mixed up here. Let’s step back and take the whole picture. In your initial post you said you wanted a FOG standalone setup and you thing dnsmasq could cause the issue. Let me ask, why do you use dnsmasq at all. What is providing DHCP in this scenario? Looks like an external server is doing this. What is it? Why can’t you add PXE boot options to that DHCP server?
If you can’t modify that DHCP server then dnsmasq is the right way to go. But as it can be a little tricky I first wanted to check if we really need to go that way.
Looking at the config you initially posted I see a line
pxe-service=X86PC, "Boot from network", pxelinuxwhich could be causing that we see pxelinux in the pcap file. Please make sure you only use Georges config (not a combined one) and put in your IP addresses where needed.