Using dnsmasq

As an experimental feature, it is possible to use dnsmasq instead of the ISC dhcpd server and TFTP server.

In order to keep the file /etc/dnsmasq.d/ww4-hosts.conf is created and must be included in the main dnsmasq.conf via the conf-dir=/etc/dnsmasq.d option.

Installation

Before the installation, make sure that dhcpd and tftp are disabled. You can do that with the commands:

systemctl disable --now dhcpd
systemctl disable --now tftp

Now you can install dnsmasq.

# Rocky Linux
dnf install dnsmasq

# SUSE
zypper install dnsmasq

After the installation, instruct warewulf to use dnsmasq as its dhcpd and tftp service. This is done in the server configuration file, typically at /etc/warewulf/warewulf.conf:

tftp:
  systemd name: dnsmasq
dhcp:
  systemd name: dnsmasq

The configuration of dnsmasq often doesn’t need to be changed, as the default configuration includes all files with following pattern /etc/dnsmasq.d/*conf into its configuration. This configuration is created by the overlay template host:/etc/dnsmasq.d/ww4-hosts.conf.ww.

Note

In certain distributions, such as Rocky Linux 9, dnsmasq is configured to listen locally via the interface=lo option by default. Replace this entry in /etc/dnsmasq.conf with the interface associated with your Warewulf network, or remove/comment out the interface option entirely to enable listening on all interfaces.

Once the Warewulf configuration has been updated, re-deploy the configuration and restart warewulfd.

wwctl configure --all
systemctl restart warewulfd.service