<div style="font-family: Arial; font-size: 14px;"><span>Hello list,</span><div><br></div><div>I
 am trying to configure kea dhcpv6 to allocate prefix from a specific 
pool based on client classification based on vendor class option.</div><div><br></div><div>The kea config is: (showing only the subnet6 part) <br></div><div><br></div><div><span>    "subnet6": [</span><div><span>      { </span></div><div><span>        "id": 1,</span></div><div><span>        "subnet": "2404:640:4003:2600::/56",</span></div><div><span>        "pools": [</span></div><div><span>          { </span></div><div><span>            "pool": "2404:640:4003:2600:0:0:0:1 - 2404:640:4003:263f:ffff:ffff:ffff:fffe"</span></div><div><span>          }</span></div><div><span>        ],</span></div><div><span>        "pd-pools": [</span></div><div><span>          { </span></div><div><span>            "prefix": "2404:640:5878:2640::",</span></div><div><span>            "prefix-len": 58,</span></div><div><span>            "delegated-len": 64</span></div><div><span>          },</span></div><div><span>          { </span></div><div><span>            "prefix": "2404:640:5878:2680::",</span></div><div><span>            "prefix-len": 58,</span></div><div><span>            "delegated-len": 64</span></div><div><span>          },</span></div><div><span>          { </span></div><div><span>            "prefix": "2404:640:5878:26c0::",</span></div><div><span>            "prefix-len": 58,</span></div><div><span>            "delegated-len": 64,</span></div><div><span>            "client-class": "VENDOR_CLASS_dhv6_pool"</span></div><div><span>          }</span></div><div><span>        ],</span></div><div><span>        "option-data": [</span></div><div><span>          { </span></div><div><span>            "name": "dns-servers",</span></div><div><span>            "data": "2404:640:4003:2640::dead:beef, 2404:640:4003:2640::cafe:babe"</span></div><div><span>          }</span></div><div><span>        ]</span></div><div><span>      }</span></div><div><span>    ],</span></div><div><span><br></span></div><div><span>Based on <span><a href="https://kea.readthedocs.io/en/kea-2.2.0/arm/classify.html?highlight=vendor_class#built-in-client-classes" rel="noreferrer nofollow noopener" target="_blank">https://kea.readthedocs.io/en/kea-2.2.0/arm/classify.html?highlight=vendor_class#built-in-client-classes</a></span><br></span></div><div><span><br></span></div><div><span><quote></span></div><div><span><span style="color:rgb(64, 64, 64);font-family:Lato, proxima-nova, "Helvetica Neue", Arial, sans-serif;font-size:16px;orphans:2;widows:2;background-color:rgb(252, 252, 252);display:inline !important">Some
 classes are built-in, so they do not need to be defined. Vendor class 
information is the primary example: the server checks whether an 
incoming DHCPv4 packet includes the vendor class identifier option (60) 
or an incoming DHCPv6 packet includes the vendor class option (16). If 
it does, the content of that option is prepended with<span> </span></span><code style="box-sizing:border-box;font-family:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", Courier, monospace;font-size:12px;max-width:100%;background:rgb(255, 255, 255);border:1px solid rgb(225, 228, 229);padding:2px 5px;color:black;overflow-x:auto;orphans:2;widows:2"><span style="box-sizing:border-box"><span style="box-sizing:border-box;background:rgb(241, 196, 15);box-shadow:rgb(241, 196, 15) 0px 0px 0px 2px;display:inline;font-weight:700">VENDOR_CLASS</span>_</span></code><span style="color:rgb(64, 64, 64);font-family:Lato, proxima-nova, "Helvetica Neue", Arial, sans-serif;font-size:16px;orphans:2;widows:2;background-color:rgb(252, 252, 252);display:inline !important"><span> </span>and the result is interpreted as a class.<span> <br></span></span></span></div><div><span><span style="color:rgb(64, 64, 64);font-family:Lato, proxima-nova, "Helvetica Neue", Arial, sans-serif;font-size:16px;orphans:2;widows:2;background-color:rgb(252, 252, 252);display:inline !important"><span></quote></span></span></span></div><div><span><span style="color:rgb(64, 64, 64);font-family:Lato, proxima-nova, "Helvetica Neue", Arial, sans-serif;font-size:16px;orphans:2;widows:2;background-color:rgb(252, 252, 252);display:inline !important"><span><br></span></span></span></div>I expect that the dhcpv6 clients <span></span>will be allocated IP from <span>"2404:640:5878:26c0::"</span> if the option 16 contains the value <span>dhv6_pool, based on the above explanation.<br></span></div><div><span><br></span></div><div><span>The dhcpv6 client sends a packet with following payload:</span></div><div><span><br></span></div><div><span><span>localAddr=[::1]:0 remoteAddr=[fd40:761b:fff1:2::3]:546</span><div><span>msgtype=3(REQUEST), transid=0xdd45f5</span></div><div><span>type=00001, len=00010: 00:03:00:01:02:00:00:00:00:01</span></div><div><span>type=00002, len=00014: 00:01:00:01:2a:f2:70:1e:5e:b2:d7:b4:94:54</span></div><div><span>type=00003(IA_NA), len=00040: iaid=981586272, t1=1800, t2=2880,</span></div><div><span>options:</span></div><div><span>  type=00005(IAADDR), len=00024: address=2404:640:4003:2600::2, preferred-lft=3600, valid-lft=300</span></div><div><span>type=00006, len=00002: 23(uint16)</span></div><div><span>type=00008, len=00002: 0 (uint16)</span></div><div><span>type=16, len=15,  enterprise id=0x96xx, data-len0=9, vendor-class-data0='dhv6_pool'</span></div><div><span>type=00025(IA_PD), len=00041: iaid=1736983355, t1=1800, t2=2880,</span></div><div><span>options:</span></div><div><span>  type=00026(IAPREFIX), len=00025: prefix=2404:640:5878:2641::/64, preferred-lft=3600, valid-lft=300</span></div><div><span>2 relay(s):</span></div><div><span>relay[0]: msg-type=12(RELAY_FORWARD), hop-count=1,</span></div><div><span>link-address=fd40:761b:fff1:2::3, peer-address=fd40:761b:fff1:2::2, 0 option(s)</span></div><div><span>relay[1]: msg-type=12(RELAY_FORWARD), hop-count=0,</span></div><div><span>link-address=2404:640:4003:2600::, peer-address=fe80::ffff:ffff:ff00:1, 2 option(s)</span></div><div><span>type=00018, len=00004: 00:00:00:04</span></div><div><span>type=00079, len=00008: 00:01:02:00:00:00:00:01</span></div><span></span><br></span></div><div><span><br></span></div><div><span>But kea is not recognizing the packet to be of class <span>VENDOR_CLASS_dhv6_pool. Logs show the following:</span></span></div><div><span><span><br></span></span></div><div><span><span><span>2022-11-30
 13:02:02.314 DEBUG [kea-dhcp6.dhcp6/1876234.139694032694912] 
DHCP6_CLASS_ASSIGNED duid=[00:03:00:01:02:00:00:00:00:01], tid=0xdd45f5:
 client packet has been assigned to the following class(es): UNKNOWN</span><br><span></span><br></span></span></div><div><span>Subsequently its getting a prefix from another pool:</span></div><div><span><br></span></div><div><span><span>2022-11-30
 13:02:02.314 DEBUG [kea-dhcp6.dhcpsrv/1876234.139694032694912] 
DHCPSRV_MEMFILE_ADD_ADDR6 adding IPv6 lease with address 
2404:640:5878:2641::</span><div><span>2022-11-30 13:02:02.314 INFO 
 [kea-dhcp6.leases/1876234.139694032694912] DHCP6_PD_LEASE_ALLOC 
duid=[00:03:00:01:02:00:00:00:00:01], tid=0xdd45f5: lease for prefix 
2404:640:5878:2641::/64 and iaid=1736983355 has been allocated for 300 
seconds</span></div><span></span><br></span></div><div><span>How can I ensure that the packet is correctly classified so that the address gets allocated fro the correct pool.</span></div><div><span><br></span></div><span><span>X.</span></span><br></div><br>