Feature #2983


DHCPD: Add vendor-class-identifier and MAC-OIDs

Added by Grischa Zengel almost 11 years ago. Updated 11 months ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:
Plus Target Version:
Release Notes:


For provisioning and deployment there must be diffent options (mostly 66&67) for each vendor or device class.
In 2.1 this is not possible.

There are diffent ways to config this ...

with classes on vendors:

class "Devices_A" {
match if ( substring ( option vendor-class-identifier, 0, 6 ) =
"vendor1" );
log ( info, "Got a packet from a vendor1 device" );
option domain-name "";

with classes and OIDs:

class "Aastra" {
match if substring(hardware, 1, 3) = 00:08:5D;
option tftp-server-name "";
default-lease-time 2764800;
max-lease-time 3024000;

with subclasses:

option space SUNW;
option SUNW.server-address code 2 = ip-address;
option SUNW.server-name code 3 = text;
option SUNW.root-path code 4 = text;

class "vendor-classes" {
match option vendor-class-identifier;

option SUNW.server-address;
option SUNW.server-name "sundhcp-server17-1";

subclass "vendor-classes" "SUNW.Ultra-5_10" {
vendor-option-space SUNW;
option SUNW.root-path "/export/root/sparc";

subclass "vendor-classes" "SUNW.i86pc" {
vendor-option-space SUNW;
option SUNW.root-path "/export/root/i86pc";

This issue is related to #663.

Actions #1

Updated by Jim Pingle over 4 years ago

See also: #8777

Actions #2

Updated by Ben Tyger almost 4 years ago

I second the need for this feature.

Actions #3

Updated by Matthew Kern 11 months ago

I have a similar requirement - assigning different pools to clients based on option 82 data. I think the most generally useful and simple to implement solution to this would be to add the ability to define custom class definitions (i.e. you would enter the full match statement), then allow limiting those classes to different pools (similar to the MAC allow/deny that already exists).

As-is today, users with the original issue can accomplish this, as long as the match is on (partial) MAC address, by defining different pools for the different vendors, and adding MAC allow to that pool, and MAC deny to the other pools - this is how I do this in my environment now to define a custom option 66 for only one particular model of phone, that matches on the first 4 octets of the MAC. However, if the match needs to be on anything except MAC, this is impossible.


Also available in: Atom PDF