Настраиваю свитч как указано в FAQ:
http://www.d-link.ru/technical/faq_hub_switch_72.php
Поднимаю на FreeBSD 6.1 из портов isc-dhcp server 3.05,
вот мой dhcpd.conf:
local-address 10.90.90.135;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
authoritative;
ddns-update-style none;
log-facility local7;
class "spnote01" {
match if binary-to-ascii (16, 8, "", option agent.remote-id) = "06015e94441cc" and binary-to-ascii (10, 8, "", option agent.circuit-id) = "0401012";
}
subnet 10.90.90.0 netmask 255.255.255.0
{
option broadcast-address 10.90.90.255;
option subnet-mask 255.255.255.0;
pool
{
range 10.90.90.249 10.90.90.249;
allow members of "spnote01";
}
}
log ( info, concat( " A.RID: ", binary-to-ascii(16, 8, "", option agent.remote-id ), " A.CID: ", binary-to-ascii (10,
8, "", option agent.circuit-id)));
#В логе выдает:
Nov 16 14:40:48 srvv dhcpd: A.RID: 06015e94441cc A.CID: 0401012
log ( info, concat( " A.RID: ", option agent.remote-id , " A.CID: ", option agent.circuit-id));
#В логе выдает:
Nov 16 14:37:27 srvv dhcpd: A.RID:
Вопрос в том, почему при очевидном сравнении A.RID и A.CID со своим же значением из логов, правило match не срабатывает и клиент не входит в класс spnote01, - IP адрес из пула не присваивается; при обновлении dhcp на клиенте вылетает ошибка - отказано в доступе.
Еще более странная ситуация: при изменении правила на: match if not exists agent.remote-id; оно срабатывает, и клиент входит в нужный класс, откуда тогда значения в логах: A.RID: 06015e94441cc A.CID: 0401012 ???
P.S. При тестировании option 82 c haneWIN dhcp сервером, как указано в FAQ, все работает как положено.
Спасибо.