In the past I've setup a PXE server several times by making the normal dhcp server return everything needed for network booting: both the regular ip config AND bootinfo in a single dhcp setup. That way it is easy to do.
According to the documentation i've read it (wikipedia has a nice summary) should be possible to have an unmodified dhcp server (for example if the admin at your location denies access) and a separate server that ONLY returns the boot information. This is usually called the "PXE server" or "Proxy DHCP" server. In the past I've seen (not used) this pxe server (last release was 5 years ago).
Yesterday I installed Cobbler to see what it really does. Now I would like to use it (love the ease of use) but modifying the 'main' dhcpd server to get PXE is not an option.
I've not been able to find any documentation on how I can get cobbler to run using a real PXE (==proxy dhcp) server.
Can this be done with cobbler?
Can I configure the isc dhcp server to behave as a PXE server (i.e. NO ip info, only boot info)?
Or should I go for a completely different approach (if so, what is your suggestion) ?
New discovery I just made: The changelog for dnsmasq version 2.4.8 says:
"Proxy-DHCP, where dnsmasq just supplies the PXE information and another DHCP server does address allocation, is also allowed."
VERY INTERESTING. Especially because cobbler can already control dnsmasq.
dnsmasq 2.51 will support this config that fully does the trick I wanted.
My /etc/cobbler/dnsmasq.template now looks like this:
# Cobbler generated configuration file for dnsmasq # $date # # resolve.conf .. ? #no-poll #enable-dbus read-ethers addn-hosts = /var/lib/cobbler/cobbler_hosts # Be a proxyDHCP server dhcp-range=10.10.0.0,proxy # Only respond to clients that are known (i.e present in /etc/ethers) dhcp-ignore=#known # Set this (and domain: see below) if you want to have a domain # automatically added to simple names in a hosts-file. expand-hosts domain=test.basjes.nl,10.10.15.0 # Loads <tftp-root>/pxelinux.0 from dnsmasq TFTP server. pxe-service=x86PC, "Boot PXELinux (=Cobbler controlled)", pxelinux ,$next_server $insert_cobbler_system_definitions
A few months ago I got an email from someone stating he couldn't get the above to work. Turns out that I had done some fixing and changing of my own cobbler that I had forgotten about. So I provided the crucial fix to the mainline cobbler which has just become part of the trunk. I also created some additional supporting documentation.