As you’re limited to the number of available DHCP addresses to hand out within your network, does your fog server have more than one interface?
You could install the DHCP Server tool onto the FOG Service and have it hand out requests through a specific interface. If you only have one interface, you can still do the same type of idea. Though it’d be better that your server is set to a static IP address if they at least provide the one. When you need PXE boot, have the FOG Server serve a range of IP’s outside the scope of your current setup.
Let’s say your 300 systems runs on the IP range of class B network: 172.16.xxx.xxx, (this ensures the 300 possible IP’s and then some) And you set your fog server to be dhcp for a class C network: 192.168.xxx.xxx. When the systems boot using ports 66/67, (PXE boot phase) they should pick up the IP address from the 192.168 series and be able to PXE boot to the fog server as it’s the only one handing out that IP range. When the systems boot up, they shouldn’t be requesting IP’s from the FOG Server, as they’ve already passed the TFTP phase of the process. I’ve never really had to test this too much, but if the FOG Server is handing out IP’s, you can set the scope inside the fog server to point the dhcp server to your main network so there’s less confusion.