[Kea-users] Help converting working ISC DHCP (Option 125 w/ suboption 193) to Kea
BruckyNetworks
BruckyNetworks at protonmail.com
Sun Sep 28 15:49:26 UTC 2025
Hi all,
I’m attempting to migrate from ISC DHCP to Kea DHCP and failing badly. I am after some assistance translating a small, working ISC config into Kea.
What the set up is successfully doing in ISC -
- Match on Option 61 (client-id) substring: offset 11, length 11 → "SERIALSTRING".
- Return Option 125 with a vendor suboption 193 (binary blob).
- Standard subnet options (router + DNS).
- Pool restricted to clients matching the class.
Working ISC DHCP (simplified)
```
# Define BBF Option 193 space
option space BBF code width 1 length width 2;
# Encapsulate Option 193 into Option 125
option bbf-pma-info code 125 = encapsulation BBF;
# Match Option 61 (client-id) substring for the serial at offset 11, length 11
class "device-by-duid" {
match if substring(option dhcp-client-identifier, 11, 11) = "SERIALSTRING";
option bbf-pma-info 00:00:0d:e9:0c:c1:0a:10:04:ac:1f:5a:31:14:02:11:d7;
}
subnet 192.168.50.0 netmask 255.255.255.240 {
option routers 192.168.50.1;
option domain-name-servers 1.1.1.1;
pool {
allow members of "device-by-duid";
range 192.168.50.6 192.168.50.10;
}
}
```
This works and the ISC server matches Option 61 as above and replies with Option 125 carrying a suboption 193 that contains the shown binary value. Then I get an IP address assigned.
Attempted Kea DHCP config I've tried -
```
{
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "ens192.4093/192.168.50.1" ],
"dhcp-socket-type": "udp"
},
"lease-database": { "type": "memfile", "persist": true },
"option-def": [
{
"name": "bbf-pma-info",
"code": 193,
"space": "vendor-44949",
"type": "binary"
}
],
"client-classes": [
{
"name": "device-by-duid",
"test": "substring(option[61].text, 11, 11) == 'SERIALSTRING'",
"option-data": [
{ "name": "vivso-suboptions", "data": "44949" },
{
"name": "bbf-pma-info",
"space": "vendor-44949",
"data": "00000de90cc10a1004ac1f5a31140211d7",
"always-send": true
}
]
}
],
"subnet4": [
{
"subnet": "192.168.50.0/28",
"pools": [
{ "pool": "192.168.50.6 - 192.168.50.10", "client-class": "device-by-duid" }
],
"option-data": [
{ "name": "routers", "data": "192.168.50.1" },
{ "name": "domain-name-servers", "data": "1.1.1.1" }
]
}
]
}
}
```
Error from Kea on load:
definition for option 'vendor-44949.bbf-pma-info' does not exist
I've tried so many different variations and also asked every AI bot going but I just don't seem to be able to crack the KEA equivalent of what I have working in ISC.
So what I am after please -
- What idiotic thing am I doing/not doing?
- What is the correct Kea configuration to replicate the ISC behaviour (Option 125 with vendor suboption 193)?
- Do I need to structure the option-def / option-data differently for vendor suboptions?
- A minimal working Kea example for this would be super greatly appreciated.
Cheers all, happy to answer any further questions if needed.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/kea-users/attachments/20250928/b1e57796/attachment.htm>
More information about the Kea-users
mailing list