<div style="font-family: Arial, sans-serif; font-size: 14px;"><div data-start="372" data-end="379" style="margin-top: 14px; margin-bottom: 14px;"><span>Hi all,</span><div><br></div><div><span>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.<br><br>What the set up is successfully doing in ISC - </span></div><div><br></div><div><ul data-editing-info="{"orderedStyleType":1,"unorderedStyleType":2}" style="margin-top: 0px; margin-bottom: 0px;"><li style="list-style-type: "- ";"><span><span>Match on Option 61 (client-id) substring: offset 11, length 11 → "SERIALSTRING".</span><br></span></li></ul></div><div><br></div><div><ul data-editing-info="{"orderedStyleType":1,"unorderedStyleType":2}" style="margin-top: 0px; margin-bottom: 0px;"><li style="list-style-type: "- ";"><span><span>Return Option 125 with a vendor suboption 193 (binary blob).</span><br></span></li></ul></div><div><br></div><div><ul data-editing-info="{"orderedStyleType":1,"unorderedStyleType":2}" style="margin-top: 0px; margin-bottom: 0px;"><li style="list-style-type: "- ";"><span><span>Standard subnet options (router + DNS).</span><br></span></li></ul></div><div><br></div><div><ul data-editing-info="{"orderedStyleType":1,"unorderedStyleType":2}" style="margin-top: 0px; margin-bottom: 0px;"><li style="list-style-type: "- ";"><span><span>Pool restricted to clients matching the class.</span><br></span></li></ul></div><div><br><br></div><div><span>Working ISC DHCP (simplified)</span></div><div><span>```</span></div><div><span># Define BBF Option 193 space</span></div><div><span>option space BBF code width 1 length width 2;</span></div><div><br></div><div><span># Encapsulate Option 193 into Option 125</span></div><div><span>option bbf-pma-info code 125 = encapsulation BBF;</span></div><div><br></div><div><span># Match Option 61 (client-id) substring for the serial at offset 11, length 11</span></div><div><span>class "device-by-duid" {</span></div><div><span>  match if substring(option dhcp-client-identifier, 11, 11) = "SERIALSTRING";</span></div><div><span>  option bbf-pma-info <span style="display: inline !important; background-color: rgb(255, 255, 255);"><span>00:00:0d:e9:0c:c1:0a:10:04:ac:1f:5a:31:14:02:11:d7</span></span>;</span></div><div><span>}</span></div><div><br></div><div><span>subnet 192.168.50.0 netmask 255.255.255.240 {</span></div><div><span>  option routers 192.168.50.1;</span></div><div><span>  option domain-name-servers 1.1.1.1;</span></div><div><br></div><div><span>  pool {</span></div><div><span>    allow members of "device-by-duid";</span></div><div><span>    range 192.168.50.6 192.168.50.10;</span></div><div><span>  }</span></div><div><span>}</span></div><div><span>```</span></div><div><br></div><div><span>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.</span></div><div><br></div><div><span>Attempted Kea DHCP config I've tried - <br><br></span></div><div><span>```</span></div><div><span>{</span></div><div><span>  "Dhcp4": {</span></div><div><span>    "interfaces-config": {</span></div><div><span>      "interfaces": [ "ens192.4093/192.168.50.1" ],</span></div><div><span>      "dhcp-socket-type": "udp"</span></div><div><span>    },</span></div><div><br></div><div><span>    "lease-database": { "type": "memfile", "persist": true },</span></div><div><br></div><div><span>    "option-def": [</span></div><div><span>      {</span></div><div><span>        "name": "bbf-pma-info",</span></div><div><span>        "code": 193,</span></div><div><span>        "space": "vendor-44949",</span></div><div><span>        "type": "binary"</span></div><div><span>      }</span></div><div><span>    ],</span></div><div><br></div><div><span>    "client-classes": [</span></div><div><span>      {</span></div><div><span>        "name": "device-by-duid",</span></div><div><span>        "test": "substring(option[61].text, 11, 11) == 'SERIALSTRING'",</span></div><div><span>        "option-data": [</span></div><div><span>          { "name": "vivso-suboptions", "data": "44949" },</span></div><div><span>          {</span></div><div><span>            "name": "bbf-pma-info",</span></div><div><span>            "space": "vendor-44949",</span></div><div><span>            "data": "<span>00000de90cc10a1004ac1f5a31140211d7</span>",</span></div><div><span>            "always-send": true</span></div><div><span>          }</span></div><div><span>        ]</span></div><div><span>      }</span></div><div><span>    ],</span></div><div><br></div><div><span>    "subnet4": [</span></div><div><span>      {</span></div><div><span>        "subnet": "192.168.50.0/28",</span></div><div><span>        "pools": [</span></div><div><span>          { "pool": "192.168.50.6 - 192.168.50.10", "client-class": "device-by-duid" }</span></div><div><span>        ],</span></div><div><span>        "option-data": [</span></div><div><span>          { "name": "routers", "data": "192.168.50.1" },</span></div><div><span>          { "name": "domain-name-servers", "data": "1.1.1.1" }</span></div><div><span>        ]</span></div><div><span>      }</span></div><div><span>    ]</span></div><div><span>  }</span></div><div><span>}</span></div><div><span>```</span></div><div><br></div><div><span>Error from Kea on load:</span></div><div><span>definition for option 'vendor-44949.bbf-pma-info' does not exist<br><br>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.</span></div><div><br></div><div><span>So what I am after please - <br><br></span></div><div><ul data-editing-info="{"orderedStyleType":1,"unorderedStyleType":2}" style="margin-top: 0px; margin-bottom: 0px;"><li style="list-style-type: "- ";"><span>What idiotic thing am I doing/not doing?<br></span></li></ul></div><div><span><br></span></div><div><ul data-editing-info="{"orderedStyleType":1,"unorderedStyleType":2}" style="margin-top: 0px; margin-bottom: 0px;"><li style="list-style-type: "- ";"><span><span>What is the correct Kea configuration to replicate the ISC behaviour (Option 125 with vendor suboption 193)?</span><br></span></li></ul></div><div><br></div><div><ul data-editing-info="{"orderedStyleType":1,"unorderedStyleType":2}" style="margin-top: 0px; margin-bottom: 0px;"><li style="list-style-type: "- ";"><span><span>Do I need to structure the option-def / option-data differently for vendor suboptions?</span><br></span></li></ul></div><div><br></div><div><ul data-editing-info="{"orderedStyleType":1,"unorderedStyleType":2}" style="margin-top: 0px; margin-bottom: 0px;"><li style="list-style-type: "- ";"><span><span>A minimal working Kea example for this would be super greatly appreciated.</span><br></span></li></ul></div><div><br></div><div><br></div><span>Cheers all, happy to answer any further questions if needed.</span><br></div></div><div style="font-family: Arial, sans-serif; font-size: 14px;" class="protonmail_signature_block">
</div>