Supplementing DHCP Offers with additional Options (like PXE / 66 and 67)
Is there information on configuring Proxy DHCP with ISC Kia or DHCPD?
It is a useful feature when wanting to supplement an existing DHCP service and provide the required, but often not configured options 66 and 67.
The DHCP Proxy is be used by services running from a laptop or phone connected to the local ethernet to assist in PXE bootstrap network nodes without needing to configure the local DHCP service.
I couldn't find it in the docs for Kia or DHCPD, but DNSMasq seems to provide the most simple implementation for this use case.
DNSmasq provides configuration within the dhcp-range option:
From https://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html :
--dhcp-range=::,constructor:eth0
The optional keyword may be static which tells dnsmasq to enable DHCP for the network specified, but not to dynamically allocate IP addresses: only hosts which have static addresses given via --dhcp-host or from /etc/ethers will be served. A static-only subnet with address all zeros may be used as a "catch-all" address to enable replies to all Information-request packets on a subnet which is provided with stateless DHCPv6, ie --dhcp-range=::,static
For IPv4, the may be proxy in which case dnsmasq will provide proxy-DHCP on the specified subnet. (See --pxe-prompt and --pxe-service for details.)
From https://wiki.archlinux.org/title/dnsmasq#Proxy_DHCP
> Proxy DHCP
> In case there is already a DHCP server running on the network and you want to interoperate with it, dnsmasq can be set to behave as a "proxy DHCP", therefore only serving the #PXE server specific information to the client. This mode is only available with IPv4. Use the following syntax, providing the existing DHCP server address:
> dhcp-range=192.168.0.1,proxy
A full example configuration used to augment existing DHCP to supply kernel boot arguments to raspberry pis.
port=0 dhcp-range=192.168.1.0,proxy pxe-service=0,"Raspberry Pi Boot" enable-tftp tftp-root=/tftpboot
The use case normally means responding with a second DHCP OFFER at the same time as the locally authoritative DHCP server but including the following options https://www.rfc-editor.org/rfc/rfc2132.html :
> 9.4 TFTP server name
> This option is used to identify a TFTP server when the 'sname' field
> in the DHCP header has been used for DHCP options.
> 9.5 Bootfile name
> This option is used to identify a bootfile when the 'file' field in
> the DHCP header has been used for DHCP options.