Назад | Перейти на главную страницу

ISC DHCP назначает пул / подсеть для определенных MAC-адресов

Эй, здесь отчаянно!

Я запускаю 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.