At one of my previous positions, I was in charge of the PXE server. I like PXE, so I set up a PXE server here, too.
It was a lot easier at my current place of employment, because I had access to the routers and the DHCP server. It ended up being a straightforward Windows Deployment Services install. I’m not only serving up boot and install images but also Acronis Recovery Media. 🙂
Alas, at the previous place, I was not allowed access to routers or DHCP. This meant I had a lot of ‘splainin’ to do, and apparently it broke some of the network guys’ brains, so…
PXE uses DHCP (option 60). You can run PXE on a network with separate PXE and DHCP servers, but PXE does need to listen on DHCP.
It kind of goes like this:
PXE Client: DHCPREQUEST, p.s. I'm a PXE Client. DHCP Server: DHCPACK, Here's your IP! p.s., PXE over there -> PXE Server: DHCPACK, Hello, I'll be your PXE server today.
Note: That second DHCPACK does not contain an IP number. It only contains PXE information. (So, dude who kept demanding that I look at the scope of the IP addresses I was handing out? You fail Reading/Listening Comprehension 101.)
So you’re going to need to make changes to the DHCP server (to specify to PXE clients where to get PXE services) and possibly the routers as well (to specify the PXE server as a DHCP helper). You also need to make sure that the PXE server is answering on the DHCP ports (open them in the firewall). If you have separate PXE and DHCP servers, the PXE server doesn’t need to serve up IP numbers, but it does need to answer (DHCPACK, option 60).
This is a pretty good description of how someone else got it working.