<!DOCTYPE html><html><head><title></title></head><body><div>Hi Darren,</div><div><br></div><div>Yes this is a Stateless DHCP configuration flow. On MacOS 27.2 when the user selects "DHCP with Manual Address" they cannot specify a subnet mask, it is greyed out along with the router; please see attached screenshot. They can specify their client address, which ends becoming the "ciaddr" that kea-dhcp4 sees. In the RFC's I am not sure if the clients are required to specify a subnet mask or if they are prohibited from specifying one and must always request it but I do see that when MacOS sends the request it does also send the "DHCP option 55 param 1" in its DHCP request which basically requests the DHCP server to provide the subnet mask. As you will see in the pcap, kea-dhcp4 doesn't actually send it, even though it matches a subnet in its configuration. As requested the pcap is attached. In the screenshot of the DHCP on MacOS you will also see that it settles on a subnet mask of 255.255.255.255 because kea-dhcp4 never sends the subnet mask. A subnet mask of 255.255.255.255 ends up breaking connectivity.</div><div><br></div><div>-- </div><div>Adonis</div><div class="align-center" style="position:relative;margin-top:1em;margin-right:0px;margin-bottom:1em;margin-left:0px;text-align:center;"><img style="max-width:100%;height:auto;" src="cid:17943336632930.23795862412546165@content.messagingengine.com"></div><div><br></div><div><br></div><div>On Tue, Nov 10, 2026, at 5:16 AM, Darren Ankney wrote:</div><blockquote type="cite" id="qt" style=""><div>Hi Adonis,</div><div><br></div><div>If I understand correctly, you are performing a stateless</div><div>configuration (<a href="https://kea.readthedocs.io/en/stable/arm/dhcp4-srv.html#stateless-configuration-of-dhcpv4-clients">https://kea.readthedocs.io/en/stable/arm/dhcp4-srv.html#stateless-configuration-of-dhcpv4-clients</a>)?</div><div>Does it make sense to send a subnet mask since you must have already</div><div>configured such IP information on the client? RFC 2131 section 3.4</div><div>(<a href="https://www.rfc-editor.org/info/rfc2131/#section-3.4">https://www.rfc-editor.org/info/rfc2131/#section-3.4</a>) says:</div><div><br></div><div>> Servers receiving a</div><div>> DHCPINFORM message construct a DHCPACK message with any local</div><div>> configuration parameters appropriate for the client without:</div><div>> allocating a new address, checking for an existing binding, filling</div><div>> in 'yiaddr' or including lease time parameters. The servers SHOULD</div><div>> unicast the DHCPACK reply to the address given in the 'ciaddr' field</div><div>> of the DHCPINFORM message.</div><div><br></div><div>which would seem to imply that Kea would not be able to find such</div><div>address related information as subnet mask (since it did not go</div><div>through the process of allocating the address). Does the MacOS not</div><div>let you manually configure the subnet mask when you are setting an</div><div>address on the interface?</div><div><br></div><div>If you don't mind, a traffic capture file (pcap) that could be opened</div><div>in Wireshark would be very informative here. You can obtain such a</div><div>capture using tcpdump on the kea-dhcp4 server: "tcpdump -i <interface></div><div>-w <<a href="http://file.pcap">file.pcap</a>> port 67". Run that command, cause MacOS to send a</div><div>DHCPINFORM, then stop the command. This file can be opened in</div><div>Wireshark for packet inspection and filtering. I would be interested</div><div>to see what MacOS requested and what kea-dhcp4 responded with.</div><div><br></div><div>Thank you,</div><div>Darren Ankney</div><div><br></div><div>On Mon, Nov 9, 2026 at 12:00 PM Adonis <<a href="mailto:smooth.map9660@isadon.com">smooth.map9660@isadon.com</a>> wrote:</div><div>></div><div>> Hi all,</div><div>></div><div>> So on macOS 27.2, when I configure DHCP with a manual address: 192.168.1.50, kea-dhcp4 (3.2.0) matches the client to one of its subnets in the configuration but sends no subnet-mask (option 1). This causes macOS to set the subnet mask to 255.255.255.255 (instead of 255.255.255.0) and break network connectivity. When using DHCP or DHCP with manual addressing in macOS the subnet-mask cannot be changed, it is meant to use whatever the server sends.</div><div>></div><div>> In the initial DHCP request (DHCPINFORM option 53) by macOS (src ip 0.0.0.0 to dst ip 255.255.255.255) I can see the ciaddr is correctly set to 192.168.1.50 in the request and the request asks for a subnet mask (DHCP option 55 param 1). Yet in the response from kea no subnet-mask is sent while other options like domain-name, domain-search, domain-name-servers configured for the subnet for 192.168.1.50 are sent. The subnet declaration in <a href="http://kea-dhcp4.conf">kea-dhcp4.conf</a> has "192.168.1.0/24" set and is being matched properly, but it seems the auto subnet mask calculation is not run and the respective subnet-mask field is not sent in response. Given the subnet-mask is explicitly stated to be auto-calculated and managed, this behavior seems like a bug to me.</div><div>></div><div>> --</div><div>> Adonis</div><div>> --</div><div>> ISC funds the development of this software with paid support subscriptions. Contact us at <a href="https://www.isc.org/contact/">https://www.isc.org/contact/</a> for more information.</div><div>></div><div>> To unsubscribe visit <a href="https://lists.isc.org/mailman/listinfo/kea-users">https://lists.isc.org/mailman/listinfo/kea-users</a>.</div><div>> <a href="mailto:Kea-users@lists.isc.org">Kea-users@lists.isc.org</a></div><div>-- </div><div>ISC funds the development of this software with paid support subscriptions. Contact us at <a href="https://www.isc.org/contact/">https://www.isc.org/contact/</a> for more information.</div><div><br></div><div>To unsubscribe visit <a href="https://lists.isc.org/mailman/listinfo/kea-users">https://lists.isc.org/mailman/listinfo/kea-users</a>.</div><div><a href="mailto:Kea-users@lists.isc.org">Kea-users@lists.isc.org</a></div><div><br></div></blockquote><div><br></div><div id="sig186835572"><div class="signature">-- </div><div class="signature">Adonis</div></div></body></html>