Differences from ISC

There are a number of differences between the OpenBSD dhclient and the ISC one. The most visable one is that the OpenBSD client runs a seperate instance for each interface and the ISC client runs one per system. The OpenBSD model is much easer to write startup scripts for, but somewhat harder to handle when you have multiple interfaces. This also leads to higher startup delay.

Another major change is that instead of polling for status, dhclient listens on the routing socket for link state change and 802.11 associate/deassociate messages. This means that the link state messages need to be correct and useful. Unfortunatly, this code appears to be very poorly tested and often quite broken.

There are other differences that should be summarized at some point in the future.

Integration issues

Integration into the startup process has been less smooth than initially anticipated. This section exists to document known issues.



Last Update

dhclient eats CPU

Fixed in HEAD.


default route selection is arbitrary

known issue


reports of random dhclient deaths

probably link state related. The only cases I can confirm are related to wireless bugs where reassociation doesn't happen properly once an AP hasn't associated correctly. Sam is working on this issue and has committed a partial patch. May also be related to CPU eating bug. There was ample opertunity for walking off the end of buffers.


Poor behavior when moving between interfaces on the same network

known issue, solution may be difficult, particularly if it is going to work before /usr exists


NUL-terminated host-name fields get hex encoded

fixed in HEAD


server-name (sname) values containing invalid host characters cause leases to be rejected

Restritions removed in HEAD.


BrooksDavis/OpenBSD_dhclient (last edited 2021-03-28T06:29:06+0000 by KubilayKocak)