Making use of classes

Gustaf Ankarloo gustaf at nestil.se
Sat Jan 17 01:16:51 UTC 2009


Im trying to figure out how the [match if substring (option dhcp-client-identifier, x, x) = "somevalue"]
Works inside a class statement.

I´v googled a lot and I see different numbers presented by the x
How do I know what to put there.

I used dhcpdump and got the following:
TIME: 2009-01-17 02:04:36.592
    IP: 10.0.0.254 (0:6:b1:1e:cb:e8) > 192.168.32.2 (0:b:cd:73:c0:a5)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: c36a3b9b
  SECS: 0
 FLAGS: 0
CIADDR: 10.0.2.1
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 10.0.0.254
CHADDR: 00:0f:b0:6e:9d:46:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         3 (DHCPREQUEST)
OPTION:  61 (  7) Client-identifier         01:00:0f:b0:6e:9d:46
OPTION:  12 ( 12) Host name                 karins-lilla
OPTION:  81 ( 16) Client FQDN               0-0-0 karins-lilla.
OPTION:  60 (  8) Vendor class identifier   MSFT 5.0
OPTION:  55 ( 11) Parameter Request List      1 (Subnet mask)
                                             15 (Domainname)
                                              3 (Routers)
                                              6 (DNS server)
                                             44 (NetBIOS name server)
                                             46 (NetBIOS node type)
                                             47 (NetBIOS scope)
                                             31 (Perform router discovery)
                                             33 (Static route)
                                            249 (MSFT - Classless route)
                                             43 (Vendor specific info)

OPTION:  43 (  3) Vendor specific info      dc0100           ...

My first guess were that for example if I wanted to match by hostname OPTION:12 (12) Host name

The config should look like:
class "test1" {
        match if substring (option host-name, 12, 12) = "karins-lilla";
}

I have tried different variations of dhcp-client-identifier instead but to no avail.

What I´m trying to do is divide clients based on some value but preferable not MAC into
different classes. And every class has it´s own range.

Here is the dhcpd.conf:

ddns-update-style interim;
ddns-updates off;
authoritative;
allow client-updates;
one-lease-per-client false;
deny bootp;
option T150 code 150 = string;
#option local-option97 code97 = string;

class "test1" {
        match if substring (option host-name, 12, 12) = "karins-lilla";
        
}

class "test2" {
        match if substring (option dhcp-client-identifier, 1, 12) = "karins-lilla";
        
}

class "test3" {
        match if substring (option dhcp-client-identifier, 0, 12) = "karins-lilla";
        

}

subnet 192.168.32.0 netmask 255.255.255.0 {
        range 192.168.32.4 192.168.32.254;
        option routers 192.168.32.1;
        option domain-name-servers 195.67.199.27, 195.67.199.28, 195.67.199.29;
        option domain-name "alphacube.local";
}

subnet 192.168.168.0 netmask 255.255.255.0 {
}

subnet 10.0.0.0 netmask 255.255.0.0 {
        pool {
                range 10.0.2.1 10.0.2.254;
                option domain-name "country1.example.org";
               allow members of "test1";
        }
        pool {
                range 10.0.3.1 10.0.3.254;
                option domain-name "country2.example.org";
                allow members of "test2";
        }
        pool {
                range 10.0.4.1 10.0.4.254;
                option domain-name "country3.example.org";
                allow members of "test3";
        }
#       range 10.0.1.1 10.0.1.254;
        option routers 10.0.0.254;
        option domain-name-servers 195.67.199.27, 195.67.199.28, 195.67.199.29;
}

host gustaf-laptop {
        hardware ethernet 00:1f:29:b0:12:cd;
        fixed-address 192.168.32.3;
}


Possibly there is some major config fault from me.

I´d appreciate any input

> Gustaf Ankarloo
Systemtekniker
------------------------------------------------------------------------------------------------------------------------------
      	
Tel. dir.: +46 31 26 04 80 
Mob.: +46 708 14 70 95 
Fax.:+46 31 26 41 40
www.nestil.se 
------------------------------------------------------------------------------------------------------------------------------
This e-mail may contain confidential and/or legally privileged information.
If you are not the intended recipient (or have received this e-mail in error) please
notify the sender immediately and delete this e-mail. 
Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.



More information about the dhcp-users mailing list