[Kea-users] Need help assigning subnets by class with host reservations
mrobti at insiberia.net
mrobti at insiberia.net
Wed Nov 9 09:20:31 UTC 2016
On 2016-11-08 15:44, mrobti at insiberia.net wrote:
> I want to assign a client-class using hwaddr, from MySQL backend, and
> restrict a subnet for that client-class. In other words, only allow
> clients with known MAC addresses to use the subnet they are trying to
> connect to.
>
> DB hosts table has an entry for the client:
> dhcp4_subnet_id = 1
> dhcp_identifier_type = 0
> dhcp_identifier = UNHEX(REPLACE('aa:bb:cc:dd:ee:ff', ':', ''))
> hostname = test.local
> dhcp4_client_classes = test_class
>
> Config file has:
> "client-classes": [ {
> "name": "test_class"
> } ],
> "subnet4": [ {
> "id": 1,
> "subnet": "192.168.1.0/24",
> "pools": [ { "pool": "192.168.1.10 - 192.168.1.20" } ],
> "client-class": "test_class"
> } ],
>
> But Kea says (debug level 50):
> : client packet has been assigned to the following class(es):
> VENDOR_CLASS_MSFT 5.0
> : failed to select subnet for the client
> : no suitable subnet configured for a direct client
>
> It works if I remove "client-class" from the subnet definition, so
> something is not synchronizing the class somewhere.
>
> Could it be a problem that the DB hosts entry has no ipv4_address
> listed? (that column is NULL) I don't have any other ideas.
I've found this in the logs:
: HOSTS_CFG_GET_ALL_IDENTIFIER get all hosts with reservations using
identifier: hwaddr=aa:bb:cc:dd:ee:ff
: HOSTS_CFG_GET_ALL_IDENTIFIER_COUNT using identifier
hwaddr=aa:bb:cc:dd:ee:ff, found 0 host(s)
Why would this happen? Yes, I double checked the MAC address. I enabled
MySQL logging, and I can't match up timestamps exactly, but I do find a
query:
SELECT host_id, dhcp_identifier, dhcp_identifier_type, dhcp4_subnet_id,
dhcp6_subnet_id, ipv4_address, hostname, dhcp4_client_classes,
dhcp6_client_classes FROM hosts WHERE dhcp4_subnet_id = ? AND
dhcp_identifier_type = ? AND dhcp_identifier = ?
I don't know if it's possible to see the executed version of this
prepared query(?). Is it possible that the value Kea is placing in the
query is not the correct binary string?
More information about the Kea-users
mailing list