DHCPd with Option 82 and fixed-host statement



Hello All,
I'm trying to get working isc-dhcpd with DHCP Relay Option 82 on D-
Link DES-3526.
I want my server to listen relayed DHCPREQUEST packets with Option 82
inserted which contains such information as vlan, port of switch from
where request was sent. I have fixed host declarations for my clients
and need to assign fixed addresses only if request come from specified
vlan.
E.g: client with mac 00:1b:fc:62:34:aa must come from vlan017 and get
10.90.90.91:

subnet 10.90.90.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option broadcast-address 10.90.90.255;
option routers 10.90.90.1;
default-lease-time 3600;
max-lease-time 3600;

class "bind_1" { match if substring (hardware, 1, 6) =
00:1b:fc:62:34:aa and binary-to-ascii(10, 8, "", substring(option
agent.circuit-id, 2, 2)) = "017";
log(info, "matched class bind_1");
}
pool { range 10.90.90.91; allow members of "bind_1"; }
}

I've got match and correctly relayed packets, but my client can't got
his lease in some strange way:

Dec 23 17:20:48 ssc dhcpd: DHCPREQUEST for 10.90.90.91 (91.193.172.3)
from 00:1b:fc:62:34:aa (lucky) via 10.90.90.90
Dec 23 17:20:48 ssc dhcpd: DHCPACK on 10.90.90.91 to 00:1b:fc:62:34:aa
(lucky) via 10.90.90.90
Dec 23 17:20:49 ssc dhcpd: released <-- Debug: on release { log(info,
"released") }
Dec 23 17:20:49 ssc dhcpd: DHCPDISCOVER from 00:1b:fc:62:34:aa via
vlan17: network 10.90.90.0/24: no free leases

Dec 23 17:20:49 ssc dhcpd: *10.90.90.91|10.90.90.90|00:1b:11:21:7d:22|
1|017* <-- Debug: contents of Option 82: lease / switch / switch-
mac / switch-port / vlan

Dec 23 17:20:49 ssc dhcpd: matched class bind_1
Dec 23 17:20:49 ssc dhcpd: DHCPDISCOVER from 00:1b:fc:62:34:aa via
10.90.90.90
Dec 23 17:20:49 ssc dhcpd: DHCPOFFER on 10.90.90.91 to 00:1b:fc:
62:34:aa (lucky) via 10.90.90.90
Dec 23 17:20:49 ssc dhcpd: released
Dec 23 17:20:49 ssc dhcpd: DHCPREQUEST for 10.90.90.91 (91.193.172.3)
from 00:1b:fc:62:34:aa via vlan17: lease 10.90.90.91 unavailable.
Dec 23 17:20:49 ssc dhcpd: DHCPNAK on 10.90.90.91 to 00:1b:fc:62:34:aa
via vlan17
Dec 23 17:20:49 ssc dhcpd: *10.90.90.91|10.90.90.90|00:1b:11:21:7d:22|
1|017*
Dec 23 17:20:49 ssc dhcpd: matched class bind_1
Dec 23 17:20:49 ssc dhcpd: *10.90.90.91|10.90.90.90|00:1b:11:21:7d:22|
1|017*
Dec 23 17:20:49 ssc dhcpd: DHCPREQUEST for 10.90.90.91 (91.193.172.3)
from 00:1b:fc:62:34:aa (lucky) via 10.90.90.90
Dec 23 17:20:49 ssc dhcpd: DHCPACK on 10.90.90.91 to 00:1b:fc:62:34:aa
(lucky) via 10.90.90.90
....
and so on... :(

Maybe there are wrong steps in my solution, or exists smarter and more
suitable way to solve such problem?
Many thanks and sorry for my English.
--
Alexander Nesterov
.