My biggest pain point was letting my Check Point firewall handle DHCP. All options were set properly, however the TFTP file name was never passed to the host, so it got an IP, but didn’t know what to do next.
This is what I’m thinking about the sonicwall, or its not configured correctly for dhcp options 66 and 67. Also what we find in most firewalls is that they only support static dhcp options. So with static dhcp options you have to pick either bios or uefi support.
I solved this by creating a separate subnet and then letting FOG handle DHCP on that network.
This is not necessary if you install dnsmasq on your FOG server. DNSMASQ only supplies pxe boot info overriding anything the dhcp server tells the client. We find most soho routers will always send the lan interface as the boot server instead of the FOG server. DNSMASQ will fix this broken behavior.
If the OP has the sonicwall configured correctly and the target computer still isn’t pxe booting we have a tutorial on configuring the FOG server to capture the pxe booting process so we can see what is going wrong.
Sonicwall help shows how to configure the sonicwall for pxe booting: http://help.sonicwall.com/help/sw/eng/published/1334883822_5.8.1/PANEL_dhcpStatProps.html Relevant steps are 18 == ipxe.efi and 19 == fog server IP (I know it says dns name, use the ip address here). Note you may also need to configure the generic options in step 20 for dhcp options 66 and 67. Some dhcp implementation steps 18 and 19 are configuration for bootp and step 20 is for dhcp booting. They are two different protocols.