Declaring subclasses on a per-subnet basis

Glenn Satchell glenn.satchell at uniq.com.au
Thu Aug 9 13:36:04 UTC 2012


You could use the "if" statement, see the dhcp-eval man page. There are
some examples matching options. You can use '=' for straight equals, or
'~=' for regex matches.

Inside the group you could have something like this. I'm not sure those
are the right strings for each vendor...

if option vendor-class-identifier ~= 'MSFT' {
  ...
} else if option vendor-class-identifier ~= 'MACOS' {
  ...
} else {
  # anything else
  ...
}

regards,
-glenn

On Thu, August 9, 2012 10:13 pm, Hristov, Tihomir H. wrote:
> Thanks for the quick response guys,
>
> I do like the group{} functionality and can definitely use it for our
> special lab subnets. This still does not solve our problem completely. In
> our case, we would still need to do some kind of matching on the
> vendor-class-identifier. Reason being that one those subnets we have both
> Windows and MAC clients. Based on the vendor-class-identifier MACs would
> be getting special options set, while Windows would be using something
> totally different. How would we incorporate a filter/matching statement
> inside the group?
>
> Thank you
>
> -----Original Message-----
> From: dhcp-users-bounces+thristov=odu.edu at lists.isc.org
> [mailto:dhcp-users-bounces+thristov=odu.edu at lists.isc.org] On Behalf Of
> Glenn Satchell
> Sent: Thursday, August 09, 2012 1:51 AM
> To: Users of ISC DHCP
> Subject: Re: Declaring subclasses on a per-subnet basis
>
> Hi Tihomir
>
> If the option is only required for specific subnets, then perhaps the
> group{} functionality would work better, for example:
>
> group {
>     option root-path "nfs:192.168.1.1:/nbi:NetInstall-Restore.dmg";
>
>     subnet 10.10.0.0 netmask 255.255.0.0 {
>     ...
>     }
>     subnet 10.11.0.0 netmask 255.255.0.0 {
>     ...
>     }
> }
> Or if it is only to be valid in a single subnet you could set the option
> in that subnet or pool only.
>
> Classes are more useful for globally matching a subset of hosts based on
> some other parameter other than subnet.
>
> regards,
> -glenn
>
> On Thu, August 9, 2012 12:36 pm, Hristov, Tihomir H. wrote:
>>
>>   Dear all,
>>
>>  I an a Network engineer for Old Dominion University, Norfolk,
>> Virginia and my team is looking into a future PXE configuration. We
>> are trying to define classes with special options and have them
>> applicable only to some special "lab" subnets of the environment.
>>
>>  Based on research done so far, we have seen that classes and
>> subclasses are parsed on a global level and thus would apply to all
>> clients, and just the special "lab" subnets.
>>
>>  Still in a post from June 2012
>> (https://lists.isc.org/pipermail/dhcp-users/2012-June/015558.html) we
>> see an interesting configuration. Using it as an example, the
>> configuration we have in mind would match on a substring of
>> vendor-class-identifier (value AAPLBSDPC in this case) and set the
>> root-path option (an example).
>> It would look like this:
>>
>> class "vendor-class" {
>> 		match substring(option vendor-class-identifier,0,9); }
>>
>> subnet 10.10.0.0 netmask 255.255.0.0 {
>>
>>   subclass "vendor-class" "AAPLBSDPC"  {
>>      option root-path "nfs:192.168.1.1:/nbi:NetInstall-Restore.dmg";
>>   }
>>   pool {
>> 		option routers 10.10.1.1;
>> 		option domain-name-servers 10.101.21;
>> 		range 10.10.7.1 10.10.7.254;
>> 		option domain-name-servers 10.101.21;
>>   }
>> }
>>
>>  The main question here is:
>>   1. Would this configuration work as we would like and the class
>> declaration would affect only clients in the 10.10.0.0 subnet?
>>   2. Or would the ISC DHCP parser end up treating the subclass as a
>> global declaration and thus set option root-path to
>> "nfs:192.168.1.1:/nbi:NetInstall-Restore.dmg" for all clients,
>> regardless of their subnet?
>>
>>
>> In case this would end up a global configuration, we were thinking of
>> declaring a class that matches on 2 conditions.
>>
>>  1. vendor-class-identifier substring
>>  2. giaddress
>>
>>  Since we use DHCP Relay Agents all over our network, we would be able
>> to use the giaddress and match it to the special "lab" subnets. We
>> have seen some references to
>>
>>    match if (option dhcp-giaddress-field= 10.10.10.1)
>>
>>  and we were wondering if that would work. If not, what is the way to
>> check the Relay Agent IP Address?
>>
>>
>>  Your help and guidance would be greatly appreciated.
>>
>>  Sincerely,
>>
>>  Tihomir Hristov
>>  Senior Network Engineer
>>  Old Dominion University
>>  Office of Computing and Communications Services
>>
>> _______________________________________________
>> dhcp-users mailing list
>> dhcp-users at lists.isc.org
>> https://lists.isc.org/mailman/listinfo/dhcp-users
>>
>
>
> _______________________________________________
> dhcp-users mailing list
> dhcp-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/dhcp-users
>
>
> --
> BEGIN-ANTISPAM-VOTING-LINKS
> ------------------------------------------------------
>
> Teach CanIt if this mail (ID 692326909) is spam:
> Spam:
> https://www.spamtrap.odu.edu/b.php?i=692326909&m=e4b513fc9233&t=20120809&c=s
> Not spam:
> https://www.spamtrap.odu.edu/b.php?i=692326909&m=e4b513fc9233&t=20120809&c=n
> Forget vote:
> https://www.spamtrap.odu.edu/b.php?i=692326909&m=e4b513fc9233&t=20120809&c=f
> ------------------------------------------------------
> END-ANTISPAM-VOTING-LINKS
>
> _______________________________________________
> 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