Using multiple client classes with ISC DHCPd

Since the internet is lacking examples of how to use multiple classes with a single pool here is one:

class "mac-filtered-clients"
    match binary-to-ascii (16, 8, ":", substring(hardware, 1, 6));

subclass "mac-filtered-clients" "50:7b:00:00:00:00"; # some cool host!

class "J-client" {
    spawn with option agent.circuit-id;
    match if (substring(option agent.circuit-id, 30, 9) = "foo-bar");
    lease limit 1;

subnet {
     pool {
          allow members of "J-client";
          allow members of "mac-filtered-clients";

This isn't very special compared to a setup with just a single class but it can be confusing since debugging classes is a pita.. One pitfall I did run into was using the byte representation of the mac-addresses (without the quotes) and using match hardware;. The example above works for me (tm).


Comments powered by Disqus