tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

MVP for a DHCP server (was Re: ISC's EoL dhcp suite, including dhcpd)



On Fri, 27 Jun 2025 08:11:21 +0200, Martin Husemann wrote:
> I tried to move to something similar simple as the in-tree ISC dhpcd
> by looking at the pkgsrc options for DHCP servers, but besides the
> new ISC variant (which loooked quite huge and a lot more complicated)
> I found nothing that just did a DHCP server and has better support state
> than ISC dhcpd.
>
> I don't need a web frontend and central management for all of my DHCP
> servers. And I don't want a combined DNS/DHCP solution, my DNS setup
> is quite complex and just works, I'd prefer to not touch it.
>
> Maybe I overlooked something.

Really the best option out there is right now is dnsmasq.
Tried, tested, supports a lot of OS.
The two downsides are the GNU license and the integrated DNS.

All the other DHCP servers I have various issues with such as overly complex configuration or useless diagnostic errors as to what's wrong.
Likely the configuration :)

Anyway, it's no secret that I've been working on a DHCP server for a while now and only recently found some free time to work on it.
It's now in a useable state and I'm just going over RFC2131 with a fine comb to ensure it's compliant.
It currently has (almost) zero configuration and the following requirements:

You need to specify a list of interfaces for it to create IP pools on
Each interface MUST have a private address that fits (10/8, 172.16-32/16,192.168/16) AND end with .1
The first matching address found for the interface will have a pool generated from .10 to the maximal IP within the netmask and will be the Server ID
The lease time will be an hour, T1 and T2 timers will be automatically generated and sent.
Router and DNS server options will be sent (if requested) with the Server ID as the value.
There is currently no persistent storage for leases.

Rationale:
My use case is an internal router/DNS server which hosts the VM's in my homelab.
I'm a believer that routers SHOULD have an address ending in .1 or ::1
In a homelab there SHOULD NOT be a large number of statically configured nodes, hence the pool starting at .10
While a configuration will come at some point, I have yet to form an opinion on how it should look and how flexible it should be hence there is currently no configuration offered and the above is currently hard-coded.
I find the configuration of all DHCP servers I've used pretty cumbersome and want something much simpler and easier.
Infact I really don't want to think about it that much and having somethings "That Just Works" is a selling point IMHO hence the above.

So the question is, what is the Minimum Viable Product of a DHCP server for replacing ISC dhcpd in the NetBSD base system?
Please answer with an idea of how it should look without having to refer to another resource.

I have no particular opinion on whether there even *should* be one in the base system, so lets just keeps replies on minimum features needed.

For example:

A DHCP server MUST store persisentent leases and it's lease file SHOULD be plain text with each field space/tab separated.

But please note, I don't see persistent leases as MVP because oddly enough things still work fine without.

What I plan on doing next are:
* rigourous testing and man pages
* intial release <---- Import to NetBSD here?
* compiles without errors and works on the same platforms dhcpcd supports (maybe not IllumOS)
* DHCPv6 support (similar hard coded list above)
* Your MVP ideas

Roy


Home | Main Index | Thread Index | Old Index