There is a legitimate way to do this that does not involve touching your existing DHCP server configuration. In fact, you don't even need DHCP.
Though it may seem less than ideal - vs simply hitting F8/F12/etc. on boot and getting to a menu system directly over the network - you can use a very small (<1MB) iPXE ISO CD image to boot using any existing DHCP server. If you're booting VMs that are using DHCP - e.g., VirtualBox, VMware Workstation, VMware ESXi, etc. - it's even easier as you can simply mount the iPXE ISO and change your boot order to boot off the ISO.
Steps are as follows:
From a Linux box with gcc and git installed, grab the iPXE source code:
git clone git://git.ipxe.org/ipxe.git
Create an embedded iPXE script that points to say your existing pxelinux.0:
Here is an example script:
dhcp || goto enterip
echo -n IP address: && read net0/ip
echo -n Subnet mask: && read net0/netmask
echo -n Gateway: && read net0/gateway
echo -n DNS server: && read net0/dns
I believe a "chain tftp://" URI will also work if the server you already have pxelinux.0 on does not have a web server on it. You may want to consider using http as it's generally much faster than tftp. Just cp -R * whatever is in your current tftpboot folder into the DocumentRoot for your web server and you should be good to go using http for network bootstrapping via iPXE instead of tftp.
Save this script file off somewhere then build the iPXE ISO with the embedded script you just created:
make bin/ipxe.iso EMBEDDED_IMAGE=yourscript.ipxe
- Now boot off the ISO file - via VM with the ipxe.iso file mounted or write it to a blank CD and boot off the physical box with that CD.
This works a treat. There's so much power in iPXE I've been developing a service around it. Much of the scripting and build information represents hard-won information around this development process so hopefully it serves you well. You can look at netboot.me or the former boot.kernel.org (defunct now I believe since kernel.org was hacked a while back) to get a taste for how this might work over the Internet or your local network for that matter.
If you can get the admin of your DHCP server to eventually configure it to support network bootstrapping (PXE booting - DHCP options 66 and 67) then the same iPXE build process can generate a bootstrap file that will obviate the need for pxelinux.0. This looks like:
make bin/undionly.kpxe EMBEDDED_IMAGE=yourscript.ipxe
cp ~/ipxe/src/bin/undionly.kpxe /webserverdocumentroot/ipxe.0
You can then bootstrap directly to this iPXE file over the normal PXE boot process - again, assuming your DHCP admin has finally enabled netbooting - and it will allow you to do all sorts of nifty network boot things on your network, no ISO file required.
Don't hesitate to let me know if you have questions.