<div dir="ltr"><div dir="ltr">Hi All, <div><br></div><div><span style="box-sizing:border-box"><p>In the recent Kea 3.0.4 updates, I noticed that the <code>client-classes</code> attribute in the subnet/pool configuration is now defined as an array, which is a good improvement. However, I noticed that we still cannot directly specify multiple client classes as a comma-separated list and have them evaluated as a combination.</p><p>For example, in the Kea Reference Guide under <strong>16.12.7 – Load Balancing With Advanced Classification</strong>, multiple classes are created to represent combinations such as:</p><p><font face="monospace">=====Sample config=======<br></font>{<br> "Dhcp4": {<br> "client-classes": [{<br> "name": "phones",<br> "test": "substring(option[60].hex,0,6) == 'Aastra'"<br> }, {<br> "name": "laptops",<br> "test": "not member('phones')"<br> }, {<br> "name": "phones_server1",<br> "test": "member('phones') and member('HA_server1')"<br> }, {<br> "name": "phones_server2",<br> "test": "member('phones') and member('HA_server2')"<br> }, {<br> "name": "laptops_server1",<br> "test": "member('laptops') and member('HA_server1')"<br> }, {<br> "name": "laptops_server2",<br> "test": "member('laptops') and member('HA_server2')"<br> }],<br><br> "subnet4": [{<br> "id": 1,<br> "subnet": "<a href="http://192.0.3.0/24" target="_blank">192.0.3.0/24</a>",<br> "pools": [{<br> "pool": "192.0.3.100 - 192.0.3.125",<br> "client-classes": [ "phones_server1" ]<br> }, {<br> "pool": "192.0.3.126 - 192.0.3.150",<br> "client-classes": [ "laptops_server1" ]<br> }],<br><br> "option-data": [{<br> "name": "routers",<br> "data": "192.0.3.1"<br> }],<br> }]<br> }<br>}<br>=========================================<font face="monospace"></font></p><p>This approach works, but it can result in a large number of additional client classes when we have multiple base classes and need different combinations for different subnets/pools.</p><p>For example, if we have six classes and need:</p><ul><li><p>Subnet 1 → Class 1 + Class 2 + Class 3</p></li><li><p>Subnet 2 → Class 2 + Class 4 + Class 6</p></li><li><p>Subnet 3 → Class 1 + Class 5 + Class 6</p></li></ul><p>We would need to create separate combination classes for each required combination. This can make the configuration large and difficult to maintain.</p><p>In ISC DHCP, this can be handled more easily using statements such as:</p><p><code>allow members of "class1";</code><br><code>allow members of "class2";</code></p><p>and additional classes can be added independently as required.</p><p>Can anyone please suggest whether there is an existing Kea mechanism or a recommended approach to handle such class combinations without creating a separate class for each combination?</p><p>If not, this is a useful enhancement/feature request for Kea, allowing multiple client classes to be associated with a pool and evaluated independently, similar to the <code>allow members of</code> approach in ISC DHCP.</p><p>Thanks in Advance<br>Kriashak</p></span></div></div>
</div>