complex classes
Glenn Satchell
Glenn.Satchell at uniq.com.au
Sat Sep 1 05:13:29 UTC 2007
Minor detail, using
concat("\001", 00:50:56);
is exactly like using the simpler expression
1:00:50:56;
Beware that there are some overheads with definging a /8 subnet
definitionin dhcpd.conf. I forget the exact details, but dhcpd has to
assign some structure for every potential address, a /8 has
approximately 16 million addresses, so this can substantially slow down
start up. There was mention of this a year or two ago, so maybe things
have changed in the latest versions.
regards,
-glenn
>Date: Fri, 31 Aug 2007 21:44:30 +0400
>From: Andrey Joukov <jav at dev.aelita.com>
>To: dhcp-users at isc.org
>Subject: complex classes
>
>Hi Gents,
>
>Could you please explain, how can I do my conf with classes and
>subclasses ?
>
>Now I have approx the following configuration:
>
>Flat network 10.0.0.0/8
>10.1.0.0/16 - servers, user's computers
>10.2.0.0/16 - pool for Virtual Machines (VM)
>
>I match a VM client by first 3 octets of the mac address.
>
> class "vmware-clients" {
> match if substring(hardware, 0, 4) = concat("\001", 00:50:56);
> }
> class "vmware-clients-beta" {
> match if substring(hardware, 0, 4) = concat("\001", 00:0c:29);
> }
> # virtual server
> class "virtsrv-clients" {
> match if substring(hardware, 0, 4) = concat("\001", 00:03:ff);
> }
>
> subnet 10.0.0.0 netmask 255.0.0.0 {
> pool {
> range 10.2.1.1 10.2.10.254
> allow members of "vmware-clients";
> allow members of "vmware-clients-beta";
> allow members of "virtsrv-clients";
> }
> }
>
>I would like to split the pool 10.2.0.0/16 for two parts:
>10.2.0.0/17 -- pool for VMware machines on users PC. Users can run
>local Vmware Workstation or Virtual PC/Server
>10.2.128.0/17 - pool for VMware machines on dedicated VM servers
>
>All servers connected to the specific switches (I know agent.remote-ID).
>How can I create a complex class/subclass for assigning ip address
>from appropriate pool ?
>
>I.e. if VM runs on users pc, ip address should be obtained from pool
>10.2.0.0/17.
>If VM runs on dedicated VM server, ip address should be obtained from pool
>10.2.128.0/17.
>
>I tried to change my configuration:
>Created a copy of the classes for VM servers:
>
> class "vms-vmware-clients" {
> match if substring(hardware, 0, 4) = concat("\001", 00:50:56) and
agent.remote-ID = 0:6:0:13:c4:92:e0:0;
> }
> class "vms-vmware-clients-beta" {
> match if substring(hardware, 0, 4) = concat("\001", 00:0c:29) and
agent.remote-ID = 0:6:0:13:c4:92:e0:0;
> }
> class "vms-virtsrv-clients" {
> match if substring(hardware, 0, 4) = concat("\001", 00:03:ff) and
agent.remote-ID = 0:6:0:13:c4:92:e0:0;
> }
>But the existing classes for users should be changed too. VM should not match
into "vms-*" classes.
>I.e. there should be something like that:
> class "vmware-clients" {
> match if substring(hardware, 0, 4) = concat("\001", 00:50:56)
> and not agent.remote-ID = 0:6:0:13:c4:92:e0:0;
> }
> class "vmware-clients-beta" {
> match if substring(hardware, 0, 4) = concat("\001", 00:0c:29)
> and not agent.remote-ID = 0:6:0:13:c4:92:e0:0;
> }
> # virtual server
> class "virtsrv-clients" {
> match if substring(hardware, 0, 4) = concat("\001", 00:03:ff)
> and not agent.remote-ID = 0:6:0:13:c4:92:e0:0;
> }
>
>Any comments ? I don't check that.
>Is there the best solution ?
>Is it possible to create one class for each group of vm clients ? How?
>
>Thanks,
>--
>Andrey
>
>
More information about the dhcp-users
mailing list