when client has global reservation without an address kea4 is not checking for reservation on subnet level.
configuration:
{
"Dhcp4": {
"client-classes": [
{
"name": "special"
},
{
"name": "NOTspecial",
"test": "not member('special')"
}
],
"hooks-libraries": [],
"interfaces-config": {
"interfaces": [
"enp0s9"
]
},
"lease-database": {
"type": "memfile"
},
"loggers": [
{
"debuglevel": 99,
"name": "kea-dhcp4",
"output_options": [
{
"output": "/home/wlodek/installed/git-thread/var/log/kea.log"
}
],
"severity": "DEBUG"
}
],
"multi-threading": {
"enable-multi-threading": true,
"packet-queue-size": 16,
"thread-pool-size": 2
},
"option-data": [],
"rebind-timer": 2000,
"renew-timer": 1000,
"reservation-mode": "global",
"reservations": [
{
"client-classes": [
"special"
],
"hw-address": "ff:01:02:03:ff:04"
}
],
"shared-networks": [
{
"interface": "enp0s9",
"name": "name-abc",
"subnet4": [
{
"client-class": "NOTspecial",
"interface": "enp0s9",
"pools": [
{
"pool": "192.168.50.1-192.168.50.50"
}
],
"subnet": "192.168.50.0/24"
},
{
"client-class": "special",
"interface": "enp0s9",
"pools": [
{
"pool": "192.168.51.1-192.168.51.50"
}
],
"reservation-mode": "all",
"reservations": [
{
"hw-address": "ff:01:02:03:ff:04",
"ip-address": "192.168.51.200"
}
],
"subnet": "192.168.51.0/24"
}
]
}
],
"subnet4": [],
"valid-lifetime": 4000
}
}
Scenario: client has a two reservations, one global with class that is manipulating subnet selection from shared network, second on subnet level that has specific address.
Problem: Client is getting address from correct subnet (global reservation works) but kea is not checking for second reservation and assign address from regular pool.
full logs attached kea.log
introduced #1139 (closed) on similar scenario but on pool level works perfectly