Manually typing TFTP address after booting
-
@Quazz Thanks for explaining a bit more and linking back to the other tread. I somehow had the feeling that we had talked about this but couldn’t find it.
Yes, booting a VM (possibly virtualbox) is perfectly explaining option 175. So that’s fine!
Not sure about the lease time coincidence. But on the other hand I don’t see why isc-dhcp should send two offers with to different IPs (to the same MAC) within just one second. Doesn’t make any sense to me. If the client does not respond fast enough I would think the DHCP server would just send the exact same offer again.
Ahhhh, there is something else I just noticed: The first two DHCP offers from 192.168.1.156 are send to the unicast addresses (192.168.1.54 and 192.168.1.47). At first I was confused because I thought ISC-DHCP usually does send to broadcast. But I was wrong: https://lists.isc.org/pipermail/dhcp-users/2008-April/006219.html
The first request (your VM PXEing) has bootp flags set to unicast but our iPXE requests broadcast answers from the DHCP server. Learning something new every day.If you can’t change your ISP modem (you are right, I don’t see next-server/filename options in those DHCP answers), then DHCP proxy should be your friend. It’s really strange that clients would still want to request the boot file from 192.168.1.1! I’ve looked through the packet dump files again (as well the old one) and I can’t see next-server being sent by 192.168.1.1 at all. Maybe it does this just once on a while?? OR iPXE is seeing the option “Relay agent IP address” in the DHCP offer as next-server. I kind of doubt this but I am not absolutely sure.
If you get a chance to get to the iPXE console/shell at some point just type
config
and you can see all the variables being set. See here: http://ipxe.org/cmd/config -
@Sebastian-Roth I have indeed chosen for ProxyDHCP in the mean time. I will try the config thing tomorrow.
The clients now always say they get DHCP offerings from both the DHCP server and the DHCP proxy (after configuring net0), most solid clients are able to select the proper answer from the ProxyDHCP, but some are not (this usually professional vs consumer grade).
As far as I can tell from the packet dump, it does not send out a dhcp option 66 as you say, but it does specify for next-server to be 0.0.0.0 (not sure if that’s normal behavior or not though, I kind of thought if it didn’t send out the option then it shouldn’t even contain that information at all)
There’s definitely something going on, hopefully there’s still some way to improve the situation, I’ll let you know how it goes.
-
This post is deleted! -
@Sebastian-Roth Anything specific you want me to look for in the ipxe config menu?
As far as I understand, these options are all set as intended at the current stage of the boot process, is that correct?
-
@Quazz Yeah, that should give us an idea of what iPXE sees. From what I can see on those two screens I guess this is before iPXE has tried to request DHCP info. So please go back to the shell (reboot) and type
dhcp net0 && config
. I would suspect you’d see gateway/netmask/ip being set (infos from 192.168.1.1) but not filename/next-server. If you select ‘net0/’ at the top you should see an entry ‘proxydhcp’… Check the values… -
@Sebastian-Roth Alright, there is indeed no next-server of filename info coming from the DHCP. And they properly receive the info (next-server and filename) from the proxydhcp as well. (it’s the only info it hands out). ProxyDHCP does refer to itself as to be the DHCP server but I’m guessing that’s normal.
All values are what we can expect, proper gateway, dns and so on.
-
@Quazz said:
ProxyDHCP does refer to itself as to be the DHCP server but I’m guessing that’s normal.
Could you post another screen of those settings? Just to make sure. Have you tried several times in a row? Sounds a bit like this is working fine sometimes but also having issues at times. See if you always get the correct values in the config dialog.
-
@Sebastian-Roth I think I may have accidently misled you earlier.
What I meant with not working 10% of the time I meant 10% of clients (generally lower end consumer garbo). It seems to work fine on anything remotely professional or decent consumer stuff. I’m fairly certain the fault lies with the NICs at this point, but I’ll continue to monitor the situation and try a couple more times.
Created an imgur album if for nothing else but historic purposes
-
@Quazz Thanks for the album! This is interesting. Clearly there is no next-server setting within ‘net0’ (so
dhcp net0
didn’t get the next-server info) but still next-server is set on the main screen. If I remember correctly from my tests this was not the case for me. We added this check to see if DHCP server and DHCP Proxy send next-server to inform the user that their DHCP setup might be “screwed”. But it looks like this is causing issues (maybe only on low end consumer NICs??).@Tom-Elliott Do you think changing the check would make a difference.
Current check:isset ${proxydhcp/next-server} && isset ${next-server} && echo Duplicate option 66 ...
New check:isset ${proxydhcp/next-server} && isset ${net0/next-server} && echo Duplicate option 66 ...
But about machines using net1 instead of net0? Maybe I added too many checks. -
I have been having a similar issue. I am not using the fog server for DHCP. Options 66 and 67 are set correctly on my Windows server. 99% of the time I am asked for the IP of the TFTP server. Since I changed the boot order of 800+ machines to boot to the NIC first when I installed and successfully used FOG 0.32, it has become a real issue while testing 1.2 (latest Trunk).
Once I enter the TFTP (fog server) ip, it seems to work. Firewall is off. Permissions on TFTP folder are correct. Any help would be greatly appreciated.
-
@Tim-M I can totally understand that you are worried about this having 800+ clients which don’t want to boot on their own. As a quick solution I can compile a custom iPXE binary for you that does not do the check. Please tell me which binary are you using? undionly.kpxe, undionly.kkpxe, ipxe.pxe, …?
On the other hand it would be awesome if you could provide the same information than Quazz did. PCAP dump file of a client booting (best to use a hub to connect the client and another PC to capture the packets) and possibly also pictures of the iPXE config menu.
Edit: @Tim-M and @Quazz Tom added the fix I suggested. So you can give it a try by upgrading to the very latest trunk and re-running the installer. Please let us know if this makes a difference with your machines.
-
@Sebastian-Roth I’ll switch back to ISC-DHCP-SERVER in a bit to check for real, but currently on proxydhcp it seems to no longer complain about getting information from both the DHCP and ProxyDHCP server, so that seems to have improved things greatly.
EDIT: ISC-DHCP-SERVER no longer asks for tftp address on my end, as far as I’ve tested, so far so good!
EDIT2: Encountered the TFTP prompt again, think I’ll stick to proxydhcp for now.
EDIT3: I noticed sloppy name lookup was off, but I am unable to enable it (the checkbox clears itself when you try to save the information. In fact, I can’t change any settings it seems, and there’s some other glitches, I’ll post a picture.
WebGUI is now also unresponsive after restarting the server.
The unrespoviness seems to be related to the following apache error as far as I can tell
[Fri Jan 22 11:27:43.497568 2016] [:error] [pid 1367] [client 192.168.1.29:53467] PHP Warning: Division by zero in /var/www/html/fog/lib/pages/dashboardpage.class.php on line 79
Manually navigating to other pages of the webgui (avoiding the dashboard) works
-
Dropped my database, purged mysql and apache and reran an older revision to fix the previously mentioned glitches. I know it’s extreme, but my database had quite a few issues and this will be cleaner and faster for me.
-
@Quazz I believe you saw from an update that I pushed last night.
My push last night (on jquery and on templates) was to ensure any unset template value was defaulted to an empty string.
However my approach forgot that you can include other templates within the page.
For example, in the code:
$this->templates = array( '${field}', '${input}', ); $fields = array( _('This is a test to show how things can be added upon to the templates. The name of this new template will be ${name}') => _('This is the input param from above, also with an included template in directly defined: ${iamanugget}'), ); foreach ($fields AS $field => &$input) { $this->data[] = array( 'field' => $field, 'input' => $input, // Now i still need to add the other templated items to have it print out 'name' => 'Hello World', 'iamanugget' => 'Sorry for being an idiot', ); }
The output should print something along the lines of:
This is a test to show how things can be added upon to the templates. The name of this new template will be Hello World This is the input param from above, also with an included template in directly defined: Sorry for being an idiot
This worked typically but if a templated value was not set in the data, it would show similar issues as you saw in my mistake.
I stupidly didn’t iterate the data as it’s passed to replace the found entries which is why you were seeing these ‘${service_value}’ and on other pages.
This should now be fixed.
-
@Tom-Elliott Alright, good to hear, I’ll update to the newest revision in a bit after I’ve captured these images.
I believe everything is thus resolved on my end, thanks
-
@Sebastian-Roth Thanks. You guys are awesome! I will try to get to that today. When I wanted to switched from Ghost to Fog a few years ago, my boss was worried about customer support. Just try to get this kind of quick response from Symantec!
-
@Quazz Thanks for letting us know. Please keep us posted if you see this again. You are probably better of using proxydhcp in your case!
-
@Sebastian-Roth Forgive my ignorance, I captured a PCAP dump, but probably grabbed too much. It was too big to upload so I shared it on Google Drive here: https://drive.google.com/file/d/0B5aGXxaL3_W6aFVfbnItNVRyTDQ/view?usp=sharing
Here are the TFTP Server settings:
I have my Windows DHCP Server set with option 66 as 10.2.1.96 and Option 67 as undionly.kpxe. I have tried kkpxe, ipxe, etc… with no success.
I installed the latest Trunk today (6124). I am still getting the same error. It looks like the screenshot that Quazz uploaded 12 days ago. It keeps asking for the TFTP server.
Thanks for your help and patience.
-
@Tim-M Thanks for uploading the PCAP file. This is great. I’d never be able to find those issues if I’d just be asking questions about your network setup. PCAP/Wireshark is just showing the whole truth. Love it!
So I guess 10.2.1.2 is your Windows DHCP server. It is answering nicely handing an IP and PXE boot information (next-server=10.2.1.96 and filename=undionly.kpxe) to the client. But there seams to be another DHCP server on the network! 10.2.1.254 is answering too. I guess this is your gateway (maybe this is provided and configured by an ISP as we have seen with Quazz an others). It answers three times in a row and hands out three completely different IPs (10.2.8.3, 10.2.12.1, 10.2.3.246), next-server options (10.3.1.2, 10.4.1.2, 10.2.1.96) and filename options (<empty>, undionly.kpxe) to the client.
On the first go (when the NIC itself PXE boots) things seam to work fine as it is requesting the iPXE binary from your FOG server correctly. But iPXE trying to request an IP is being confused by all those responses - which I don’t wonder about at all.
Please check you network setup and see who is sending those DHCP replys (who is 10.2.1.254, maybe ip-helpers on a switch?) and why does it answer three times. It should not answer at all. DHCP is handled by your Windows DHCP server!
-
I upgraded to the latest trunk and now It’s working if I uncheck the FOG_USE_SLOPPY_NAME_LOOKUPS.
I will try to understand what has been done
Thanks !