dhcpmgr
dhcpmgr is a server manager for DHCP. DHCP is a protocol for automatically configuring IP addresses on the local network. When a computer hosts a dhcpmgr server on a local network, other nearby computers can acquire a unique IP address from it automatically. Compatible clients include dhclient
(from netutils
) and netmgr
.
Requirements
- libsystem
Usage
Install dhcpmgr
. Then configure the network parameters in /etc/dhcpmgr.conf
(described below). Finally, start the manager with sudo startctl start dhcpmgr
. To run on startup, run sudo startctl install dhcpmgr
.
Configuration
dhcpmgr’s configuration is stored at /etc/dhcpmgr.conf
. This is a TOML file with the parameters for how to allocate addresses.
interface
defines the interface to host on. This can be a device path or UUID. If not set, it will pick a random interface.firstaddr
andlastaddr
define the IP range to assign. This should be in one of the private IP blocks (10.x.x.x
,192.168.x.x
,172.xx.x.x
). For most networks, the first address should bex.x.x.2
, and the last should bex.x.x.254
, which leaves room for the DHCP host at.1
, and the broadcast address at.255
.netmask
defines the network mask for the address. If not provided, it will be inferred from the address range.gateway
defines the gateway (router) address for the network. If not provided, clients won’t be able to connect to the Internet.dns
defines the domain name servers to use. If not provided, clients won’t be able to use domain names.leasetime
defines how long a DHCP lease lasts, in seconds. Set to 0 to never expire.allowrequests
determines whether a client can request its own IP address.storeassignments
determines whether assignments are stored to a file on the server.forcereassign
determines whether to always assign a new address when a client requests one.- The
static
section lists forced static assignments for certain computer IDs. - The
options
section can be used to add any extra options to the response, such as network boot parameters.
Here is an example configuration for a basic DHCP server on the 10.0.1.0/24
subnet, with some static IPs and a boot configuration:
interface = "/back"
firstaddr = "10.0.1.2"
lastaddr = "10.0.1.254"
gateway = "10.0.1.1"
dns = ["10.0.1.1"]
leasetime = 86400
allowrequests = true
storeassignments = false
forcereassign = false
[static]
25 = "10.0.1.15"
28 = "10.0.1.132"
[options]
bootServers = ["10.0.1.1"]
bootFile = "/boot.lua"