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