Эй, здесь отчаянно!
Я запускаю isc-dhcp-server 4.1 здесь (с webmin, но это другая тема) и хочу предоставить некоторые параметры (tftp-server и загрузочный файл) для сетевых компонентов, которые я могу идентифицировать по MAC-адресу и строке поставщика.
Однако я дошел до того, что конфигурация совпадает с MAC-адресом, но по-прежнему говорит, что это неизвестный клиент и не будет продолжать работу после DHCPDISCOVER. Я использую deny unknown-clients, но для другой общей сети и другой подсети.
Что мне здесь не хватает и почему я вижу это только в журнале?
dhcpd: found a board
dhcpd: DHCPDISCOVER from b8:27:eb:ab:cd:ef via eth0: unknown client
Это текущий конфиг:
shared-network COMPUTERS {
subnet 10.0.106.0 netmask 255.255.254.0 {
option subnet-mask 255.255.254.0;
default-lease-time 3600;
authoritative;
ignore client-updates;
deny unknown-clients;
ddns-updates off;
pool {
range 10.0.106.170 10.0.106.200;
}
pool {
range 10.0.107.170 10.0.107.200;
}
}
}
class "board" {
match if substring (hardware, 1, 3) = b8:27:eb;
log(info, "found a board");
}
shared-network hardware {
# network for TFTP stuff
subnet 192.168.120.0 netmask 255.255.255.0 {
pool {
allow unknown-clients;
allow dynamic bootp clients;
allow members of "board";
next-server 192.168.120.254;
filename "uboot.scr";
range 192.168.120.10 192.168.120.50;
log(info , "allocated to a board" );
}
}
}
Поскольку это CentOS 6, я использую файлы конфигурации eth0 и eth0: 1 и опубликую ifconfig, а также вывод ip add:
> ifconfig:
eth0 Link encap:Ethernet HWaddr 00:26:AB:12:34:56
inet addr:10.0.106.3 Bcast:10.0.107.255 Mask:255.255.254.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:356698 errors:0 dropped:0 overruns:0 frame:0
TX packets:224426 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:59600895 (56.8 MiB) TX bytes:32866187 (31.3 MiB)
Interrupt:17
eth0:1 Link encap:Ethernet HWaddr 00:26:AB:12:34:56
inet addr:192.168.120.254 Bcast:192.168.120.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:17
> ip add:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:26:ab:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 10.0.106.3/23 brd 10.0.107.255 scope global eth0
inet 192.168.120.254/24 brd 192.168.120.255 scope global eth0:1
valid_lft forever preferred_lft forever
Любая помощь будет принята с благодарностью.
Ура
Учитывая настройку вашего интерфейса, вы должны поместить ОБЕИ подсети (10.0.106.0/255.255.254.0 и 192.168.120.0/255.255.255.0) в ОДНОВРЕМЕННОЕ объявление общей сети.
На странице руководства dhcpd.conf:
Оператор shared-network используется для информирования DHCP-сервера о том, что некоторые IP-подсети фактически используют одну и ту же физическую сеть. Любые подсети в совместно используемой сети должны быть объявлены в операторе совместно используемой сети. Параметры, указанные в операторе shared-network, будут использоваться при загрузке клиентов в этих подсетях, если только параметры, предоставленные на уровне подсети или хоста, не переопределяют их. Если какая-либо подсеть в общей сети имеет адреса, доступные для динамического распределения, эти адреса собираются в общий пул для этой общей сети и назначаются клиентам по мере необходимости. Невозможно определить, в какой подсети общей сети должен загружаться клиент.
Вы, вероятно, сможете обойти ограничение в последнем предложении, правильно используя объявления allow, deny и host, и, похоже, вы идете в правильном направлении.
Вы также можете взглянуть на allow/deny members of "class"
. Однако я не уверен, доступен ли он в вашей версии DHCP-сервера. Это задокументировано на странице руководства для ISC dhcpd 4.2.5 в CentOS 7.