<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
Greetings,
<div><br>
</div>
<div>I have a subnet definition in my kea-dhcp6.conf, it inherited its configuration from a client class called “<b>device</b>”, then I gave it some customization configuration in the option-data section. After I used the config-write command to get the config
from memory, I noticed the client class of this subbed is no longer “device” but “<b>device_class2</b>”, even I never defined this client class. My guess is because of the customization data in option-data section, so kea realized its configuration is different
from the original client class “device”, and it gives a new name. </div>
<div><br>
</div>
<div>Is this behavior expected? I think this could bring some troubles when we try to do automatization. Now after we use the subnet hook, we have to use the config-write command Darren mentioned to save the config changes from memory to harddisk. And now in
the new config file, we will have those “device_class2” client class which previously didn’t exist. </div>
<div><br>
</div>
<div><br>
</div>
<div>Original config in kea-dhcp6.conf:</div>
<div><br>
</div>
<div>
<div> {</div>
<div> "id": 2,</div>
<div> "subnet": "2100:100:10:10::1/64",</div>
<div> "option-data": [</div>
<div> {</div>
<div> "space": "vendor-4491",</div>
<div> "name": "cores",</div>
<div> "code": 61,</div>
<div> "data": "2100:100:10:10::10-2100:100:10:10::100",</div>
<div> "always-send": true</div>
<div> }</div>
<div> ],</div>
<div> "pools": [</div>
<div> {</div>
<div> "pool": "2100:100:10:10::10-2100:100:10:10::100"</div>
<div> }</div>
<div> ],</div>
<div> "relay": {</div>
<div> "ip-addresses": [ "2100:100:10:10::1" ]</div>
<div> },</div>
<div> "interface": "ens2",</div>
<div><b> "client-class": “device",</b></div>
<div> "allocator": "iterative"</div>
<div> },</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>After using <b>config-write</b>:</div>
<div>
<div> {</div>
<div> "allocator": "iterative",</div>
<div> "calculate-tee-times": true,</div>
<div> "client-classes": [ “<b>device_class2</b>" ],</div>
<div> "id": 2,</div>
<div> "interface": "ens2",</div>
<div> "max-preferred-lifetime": 907200,</div>
<div> "max-valid-lifetime": 1209600,</div>
<div> "min-preferred-lifetime": 907200,</div>
<div> "min-valid-lifetime": 1209600,</div>
<div> "option-data": [</div>
<div> {</div>
<div> "always-send": true,</div>
<div> "code": 61,</div>
<div> "csv-format": true,</div>
<div> "data": “2100:100:0:30:0:0:0:22",</div>
<div> "name": "cores",</div>
<div> "never-send": false,</div>
<div> "space": "vendor-4491"</div>
<div> }</div>
<div> ],</div>
<div> "pd-allocator": "iterative",</div>
<div> "pd-pools": [ ],</div>
<div> "pools": [</div>
<div> {</div>
<div> "option-data": [ ],</div>
<div> "pool": “2100:100:10:10::10-2100:100:10:10::100"</div>
<div> }</div>
<div> ],</div>
<div> "preferred-lifetime": 907200,</div>
<div> "rapid-commit": false,</div>
<div> "rebind-timer": 1058400,</div>
<div> "relay": {</div>
<div> "ip-addresses": [ "2100:100:10:10::1" ]</div>
<div> },</div>
<div> "renew-timer": 604800,</div>
<div> "reservations": [ ],</div>
<div> "store-extended-info": false,</div>
<div> "subnet": "2100:100:10:10::1/64",</div>
<div> "t1-percent": 0.5,</div>
<div> "t2-percent": 0.8,</div>
<div> "valid-lifetime": 1209600</div>
<div> },</div>
</div>
</body>
</html>