У меня есть этот файл конфигурации DHCP:
authoritative;
option domain-name "XXX.XXX.XX";
allow bootp;
ddns-update-style ad-hoc;
class "karpuz-kabugu"
{
match if (substring (option user-class, 0, 6) = "karpuz");
log (info, "karpuz-kabugu");
}
subnet 10.6.1.0 netmask 255.255.255.0 {
pool {
range 10.6.1.10 10.6.1.99;
allow members of "karpuz-kabugu";
}
pool {
range 10.6.1.100 10.6.1.250;
allow unknown-clients;
}
option broadcast-address 10.6.1.255;
option routers 10.6.1.1;
}
Я хочу арендовать IP-адреса в соответствии с классом пользователя (опция 77). Я установил идентификатор класса пользователя на моем DHCP-клиенте Windows, используя ipconfig /setclassid
Я также вижу karpuz
установить в DHCP Option 77 с помощью wirehark.
Содержимое журнала DHCP выглядит следующим образом:
May 27 17:09:18 2013 dhcpd: karpuz-kabugu
May 27 17:09:18 2013 dhcpd: DHCPDISCOVER from 00:1c:23:b5:da:71 via eth4
May 27 17:09:19 2013 dhcpd: DHCPOFFER on 10.6.1.250 to 00:1c:23:b5:da:71 (DELL1-DESTEK) via eth4
May 27 17:09:19 2013 dhcpd: karpuz-kabugu
May 27 17:09:19 2013 dhcpd: if DELL1-DESTEK.meb.gov.tr IN A rrset doesn\'t exist add DELL1-DESTEK.meb.gov.tr 21600 IN A 10.6.1.250: timed out.
May 27 17:09:19 2013 dhcpd: DHCPREQUEST for 10.6.1.250 (10.6.1.1) from 00:1c:23:b5:da:71 (DELL1-DESTEK) via eth4
May 27 17:09:19 2013 dhcpd: DHCPACK on 10.6.1.250 to 00:1c:23:b5:da:71 (DELL1-DESTEK) via eth4
May 27 17:09:22 2013 dhcpd: karpuz-kabugu
May 27 17:09:22 2013 dhcpd: DHCPINFORM from 10.6.1.250 via eth4
May 27 17:09:22 2013 dhcpd: DHCPACK to 10.6.1.250 (00:1c:23:b5:da:71) via eth4
Как видите, моему клиенту назначен 10.6.1.250
однако я ожидаю IP-адрес между 10.6.1.10
и 10.6.1.99
Что я делаю не так?
Заявление dhcp allow unknow-clients
, как указано на страницах руководства, позволяет получить IP-адрес только от клиентов, у которых нет host
объявление в config. И это по умолчанию. Итак, я предполагаю сначала удалить такой оператор из объявления пула. И, во-вторых, попробуйте добавить deny
заявление в этот пул. Конфигурация вашего пула должна быть такой:
pool {
range 10.6.1.10 10.6.1.99;
allow members of "karpuz-kabugu";
}
pool {
range 10.6.1.100 10.6.1.250;
deny members of "karpuz-kabugu";
}