complex classes

Andrey Joukov jav at dev.aelita.com
Fri Aug 31 20:23:46 UTC 2007


Lars,

Sorry, I missed a keyword option before agent.remote-ID.
Thanks, your config is very useful.

-----Original Message-----
From: dhcp-users-bounce at isc.org [mailto:dhcp-users-bounce at isc.org] On Behalf Of Lars Jacobsen
Sent: Friday, August 31, 2007 11:20 PM
To: dhcp-users at isc.org
Subject: Re: complex classes

From: "Andrey Joukov" <jav at dev.aelita.com>
To: <dhcp-users at isc.org>
Sent: Friday, August 31, 2007 7:44 PM
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?
>
>

Hi Andrey

It should work if you can "build" a valid /correct syntax. I had some problems myself previusly.
Se my story at: http://www.strammelse.dk/dhcp/ But try searching the list a bit for inspiration. And read the man/doc on syntax etc. so you are completely familiar with it.

regards
/Lars




-- 
Andrey



More information about the dhcp-users mailing list