Struggling with classes not work

Thomas Markwalder tmark at isc.org
Tue Jan 5 12:33:27 UTC 2021


Hi Mark:

I suspect Simon's hunch is correct, the vendor identifier may actually 
be longer than "Mips_boot".  I just tried this configuration snippet and 
it works fine:


class "Mips_boot" {
     match if (option vendor-class-identifier = "Mips_boot");
     next-server 192.168.20.10;
     log (info,"Devboot");
}

subnet 178.16.1.0 netmask 255.255.255.0 {
     pool {
         range 178.16.1.100 178.16.1.125;
     }
}

I get the log statement and the client gets next-server.   If there are 
additional bytes after "Mips_boot" which you do not care about you can 
use substr:

match if substring (option vendor-class-identifier, 0, 9) = "Mips_boot";




On 1/5/21 7:22 AM, Simon Hobson wrote:
> Mark Mc Nicholas <markmcn at section9.ie> wrote:
>> Hey Simon,
>> Thanks for the suggestion,
>> I've just tried a very quick check changing the match statement to " match if vendor-class-identifier = "Mips_boot";"
>> however from a very quick glance the result looked the same as the device didn't boot and I saw no log lines "Devboot" on the console.
> One other thing to check is EXACTLY what the value is that you are testing for - in particular, look at a hex dump of the packet (or a decoded version of it). I've been caught out with things like trailing nulls, so it's 6 bytes of "value"0x00 not five bytes of "value" and the matching in dhcpd is very precise on this - they don't match.
>
> Simon
>
>
> _______________________________________________
> ISC funds the development of this software with paid support subscriptions. Contact us at https://www.isc.org/contact/ for more information.
>
> dhcp-users mailing list
> dhcp-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/dhcp-users



More information about the dhcp-users mailing list