PXE boot is a quick and easy way to install any SUSE/openSUSE product on a machine. It doesn't require any boot media and today virtually any system is capable of booting using PXE.

The architecture team maintains a tftp server with boot loaders, boot loader configurations and installation images for a variety of architectures and products. Currently in the Nuernberg office this PXE boot service is only available in the network of the architecture team. Since tftp is unicast, the server should be reachable from anywhere in the internal network. What is missing is the information about the address of the tftp server and the image to boot from this server. This information is supplied by DHCP. Since DHCP uses broadcast it is not routable and thus not visible on the network outside the arch team.

One way to fix this would be to add support for support for DHCP Discovers with the PXEboot extension tag to the existing DHCP servers. This however would require changes to the DHCP server setups on each subnet. Since the DHCP servers are operated by the network administration team and setting this up would interfere with the infrastructure maintained by them. The PXE standard however supports what is called ProxyDHCP. ProxyDHCP is a special from of DHCP offer which supplies only PXE specific information to the PXE client while network and router information is provided by the normal DHCP server. This ProxyDHCP server can be run in the same network as the normal DHCP server without causing conflicts. It can be run on the same machine as the normal DHCP server or on a different one. This enables us the run PXE boot DHCP services alongside normal DHCP independently.

There are not many ProxyDHCP server implementations around. The ISC DHCP server is not capable of serving as a ProxyDHCP server. The iPXE project had suggested extending the ISC DHCP server as a GSOC project, however apparently nobody was interested to take this up.
There is however an implementation of a pure ProxyDHCP server around which is entirely written in Python: proxyDHCPd. This project looks promising. It is sufficiently compact that potential issues should be easy to fix.

The goal of this project here is:

  1. Package proxyDHCPd for openSUSE and SLE12. (Since it requires a startup script the duplicate effort to support both systemv init and systemd should be avoided).
  2. Install this tool locally, set it up to point to a locally installed tftp server, make sure it doesn't impact any other network service
  3. Test with a variety of systems and architectures.
  4. Point it to the boot server of the arch team. Test if PXE is capable of tftp'ing images from another network (ie knows about.
  5. a default route).
  6. If 4 is successful set create a configuration file template for proxyDHCPd which can be deployed to a machine on each network acting as a ProxyDHCP server for this network. Ideally it would live on the master tftp server. From there it can be deployed thru tftp as well.

Once this infrastructure is working it can be replicated across multiple company locations.

Looking for hackers with the skills:

Nothing? Add some keywords!

This project is part of:

Hack Week 12

Activity

  • over 9 years ago: zxdvd liked this project.
  • over 9 years ago: eeich started this project.
  • over 9 years ago: kpimenov liked this project.
  • over 9 years ago: eeich originated this project.

  • Comments

    • zxdvd
      over 9 years ago by zxdvd | Reply

      Hi, It seems that dnsmasq supports proxy dhcp. And our team have used it for a long time.

    Similar Projects

    This project is one of its kind!