subnet-specific class

Chuck Anderson cra at WPI.EDU
Wed Apr 11 22:24:26 UTC 2007


I would like to hand out different options to a class of devices, 
depending on what subnet they are in.  I have had this class working 
for all Nortel IP phones for several years now:

option space Nortel;
option Nortel.i2004-server-info code 128 = text;

class "Class-Nortel-i2004-A" {
        match if substring (option vendor-class-identifier,0,14) = "Nortel-i2004-A";
        vendor-option-space Nortel;
        option Nortel.i2004-server-info "Nortel-i2004-A,130.215.x.y:4100,1,10;130.215.x.y:4100,1,10.";
}

But now I have a second call server that I want to use for phones in a 
single specific subnet, with the first call server still used for 
everything else.  So basically I want to change the option for just a 
single subnet.

The new subnet will have nothing but IP phones in it, so I first tried 
just putting that option in subnet scope:

subnet 130.215.v.0 netmask 255.255.255.0 {
	...
        vendor-option-space Nortel;
        option Nortel.i2004-server-info "Nortel-i2004-A,130.215.v.w:4100,1,10;130.215.v.w:4100,1,10.";
}

But this doesn't work, since according to dhcpd.conf:

  When a client is to be booted, its boot parameters are determined by
  consulting that client's host declaration (if any), and then
  consulting any class declarations matching the client, followed by
  the pool, subnet and shared-network declarations for the IP
  address assigned to the client.  Each of these declarations itself
  appears within a lexical scope, and all declarations at less
  specific lexical scopes are also consulted for client option
  declarations.  Scopes are never considered twice, and if parameters
  are declared in more than one scope, the parameter declared in the
  most specific scope is the one that is used.

so class options override subnet options.

Does anyone have any suggestions?  Can I match on the subnet in a 
class?

Thanks.



More information about the dhcp-users mailing list