[Kea-users] Example of how to combine host reservations and class tests?
Darren Ankney
darren.ankney at gmail.com
Mon Dec 5 11:22:29 UTC 2022
Nathan,
Something like the below would work.
However, the test for being a member of office-printers or
public-printers would need to be changed. I didn't know what
parameter would cause that to be the case so I just used an example.
Also, you shouldn't need member KNOWN in your test unless you are
performing some reservations and only want clients in the
office-printers / public-printers classes that you have given a
reservation to. If so, you can assign special options during the
reservation process. That might satisfy the JetDirect requirements in
a simpler way. Have a look at:
https://kea.readthedocs.io/en/kea-2.2.0/arm/dhcp4-srv.html?highlight=reservation#including-specific-dhcpv4-options-in-reservations
avoiding the need for these other more complex classes.
"client-classes": [
{
"name": "office-printers",
"test": "(substring(option[60].hex,0,9) == 'JetDirect')",
"only-if-required": true
},
{
"name": "public-printers",
"test": "(substring(option[60].hex,0,9) == 'JetDirect')",
"only-if-required": true
},
{
"name": "jetdirect-office",
"test": "(member('KNOWN')) and
(member('office-printers')) and (substring(option[60].hex,0,9) ==
'JetDirect')",
"only-if-required": true
},
{
"name": "jetdirect-public",
"test": "(member('KNOWN')) and
(member('public-printers')) and (substring(option[60].hex,0,9) ==
'JetDirect')",
"only-if-required": true
}
],
"subnet4": [
{
"subnet": "192.168.10.0/24",
"id": 10,
"option-data": [
{
"name": "routers",
"data": "192.168.10.1"
}
],
"pools": [
{
"pool": "192.168.10.10 - 192.168.10.20"
}
],
"client-class": "jetdirect-office"
},
{
"subnet": "192.168.20.0/24",
"id": 20,
"option-data": [
{
"name": "routers",
"data": "192.168.20.1"
}
],
"pools": [
{
"pool": "192.168.20.10 - 192.168.20.50"
}
],
"client-class": "jetdirect-office"
},
On Sun, Dec 4, 2022 at 4:35 PM Nathan Neulinger <nneul at neulinger.org> wrote:
>
> I see this example in the docs:
>
> https://kea.readthedocs.io/en/kea-2.2.0/arm/dhcp4-srv.html#reserving-client-classes-in-dhcpv4
>
> Where it's assigning 'reserved-class1' and 'reserved-class2' to to a reservation in the subnet. Is there some way to do this in conjunction with a 'test'?
>
> i.e. I'd like to say:
>
> For a host with class "reserved-class1" _AND_ VendorClassIdentifier "X" -> these options
> For a host with class "reserved-class2" _AND_ VendorClassIdentifier "X" -> these other options
>
> If you need a more specific example (come up on the fly, so there may certainly be better ways to do this, but I'm specifically wanting to do something like the above):
>
> JetDirect printer devices with label "office printers" -> use boot server A, filename X
> JetDirect printer devices with label "public printers" -> use boot server B, filename Y
>
>
> Would it be something like (VCI likely wrong, just for example purposes:
>
> {
> "client-classes": [
> {
> "name": "jetdirect-office",
> "test": "member('KNOWN') and member('office-printers') and substring(option[60].hex,0,9) == 'JetDirect'",
> "only-if-required": true
> }
> ]
> }
>
> combined with setting in a host reservation?
>
> "client-class" : "office-printers"
>
>
> -- Nathan
> ------------------------------------------------------------
> Nathan Neulinger nneul at neulinger.org
> Neulinger Consulting (573) 612-1412
>
> --
> ISC funds the development of this software with paid support subscriptions. Contact us at https://www.isc.org/contact/ for more information.
>
> To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.
>
> Kea-users mailing list
> Kea-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/kea-users
More information about the Kea-users
mailing list