subnet-specific class
Chuck Anderson
cra at WPI.EDU
Thu Apr 12 16:33:49 UTC 2007
On Thu, Apr 12, 2007 at 12:03:46PM -0400, Chuck Anderson wrote:
> class "Class-60P-i2004" {
> match if (packet(24,3) = 82:d7:vv and substring (option vendor-class-identifier,0,14) = "Nortel-i2004-A");
> 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.";
> }
>
> 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.";
> }
>
> The question is, which one wins if both match conditions are true? In
> my limited testing, the first one is matching for packets from the
> 130.215.v relay agent.
>
> Is this deterministic? What is the rule? First class in config file
> wins ? Most specific match criteria wins?
I see more problems with this approach. For unicast packets to the
DHCP server, the giaddr is 0.0.0.0--so this won't work for them. If I
tried to use leased-address, I'm guessing this won't work either since
the leased-address cannot always be determined yet, since class
matching can influence pool selection and hence leased-address.
What I really need here is a way to access the underlying
subnet-matching logic of the DHCP server. Is there any way to match
the incoming interface of a DHCP request, or the matched
shared-network or subnet of the incoming packet? Something like this:
match if subnet = 130.215.v.0/255.255.255.0
where it would match if giaddr was in that subnet OR if the request
came in on a local interface that matches that subnet. I guess if
there is a shared-network, it would have to match if ANY of the
subnets in the shared network match.
Another approach would be to support subnet-specific classes with the
class defined inside the subnet block.
More information about the dhcp-users
mailing list