Для моих тестов с двумя виртуальными машинами было сделано следующее. Сервер находится под CentOS7, а клиент под Windows 10 (MAC: 08: 00: 27: bd: 3d: ab).
После каждой модификации на стороне сервера я выполняю выпуск / обновление на клиенте, чтобы проверить, получает ли он нужный IP.
Вот конфигурация:
authoritative;
ddns-update-style none;
default-lease-time 28800;
max-lease-time 36000;
allow bootp;
next-server 192.168.0.254;
filename "pxelinux.0";
shared-network {
subnet 192.168.0.0 netmask 255.255.255.128 {
option broadcast-address 192.168.0.127;
option routers 192.168.0.1;
option ntp-servers 192.168.0.1;
option domain-name-servers 192.168.0.1;
class "matchHW" {
match hardware;
}
group {
deny unknown-clients;
subclass "matchHW" 1:08:00:27:bd:3d:ab;
}
group {
deny unknown-clients;
host win10 {
hardware ethernet f8:00:27:bd:3d:ab;
fixed-address 192.168.0.13;
}
}
pool {
allow members of "matchHW";
option routers 192.168.0.3;
option domain-name-servers 192.168.0.3;
range 192.168.0.40 192.168.0.49;
}
pool {
allow unknown-clients;
option routers 192.168.0.2;
option domain-name-servers 192.168.0.2;
range 192.168.0.30 192.168.0.39;
}
}
}
В этой конкретной конфигурации я не понимаю, почему клиент Windows получает IP 192.168.0.30 с .1 для своего GW. Я ожидаю, что он получит 192.168.0.40 с .3 для его GW.
Если я переключу 2 MAC (08: 00: 27: bd: 3d: ab, f8: 00: 27: bd: 3d: ab), чтобы получить статический IP-адрес, он заработает (получите 192.168.0.13). Если я отредактирую этот MAC-адрес, чтобы мой клиент получил неизвестный MAC-адрес, он тоже будет работать (получите 192.168.0.30).
Конечная цель моей конфигурации - обслуживать IP для 3 "групп":
У каждой из этих групп будут определенные маршрутизаторы и конфигурация DNS.
Есть у кого-нибудь идея?
Я нашел решение благодаря этим двум ссылкам:
Вот моя рабочая конфигурация:
shared-network {
subnet 192.168.0.0 netmask 255.255.255.128 {
option broadcast-address 192.168.0.127;
option routers 192.168.0.1;
option ntp-servers 192.168.0.1;
option domain-name-servers 192.168.0.1;
# known clients - dynamic IP
pool {
allow known-clients;
range 192.168.0.40 192.168.0.49;
}
# unknown clients - dynamic IP
pool {
allow unknown-clients;
deny known-clients;
option routers 192.168.0.2;
option domain-name-servers 192.168.0.2;
range 192.168.0.30 192.168.0.39;
}
}
}
# known clients - dynamic IP
group {
deny unknown-clients;
option routers 192.168.0.3;
option ntp-servers 192.168.0.3;
option domain-name-servers 192.168.0.3;
host dyn-A {
hardware ethernet f8:00:27:bd:3d:ab;
}
}
# known clients - static IP
group {
deny unknown-clients;
option routers 192.168.0.1;
option ntp-servers 192.168.0.1;
option domain-name-servers 192.168.0.1;
host win10 {
hardware ethernet e8:00:27:bd:3d:ab;
fixed-address 192.168.0.13;
}
}