ISC класс DHCPD не присвоен

Я пытаюсь установить сервер начальной загрузки, который только отвечает на устройства, которые хотят загрузиться по сети. В зависимости от ПЗУ начальной загрузки я должен поставить различные загрузочные образы, другие настройки являются общими.

Моя текущая конфигурация (/etc/dhcp/dhcpd.conf):

ddns-update-style none;
default-lease-time 60;
max-lease-time 100;
log-facility local7;

class "DM814x ROM" {
        match if substring (option vendor-class-identifier, 0, 10) = "DM814x ROM";
        filename "u-boot-spl-debrick.bin";
}
class "AM335x U-Boot SPL" {
        match if substring (option vendor-class-identifier, 0, 17) = "AM335x U-Boot SPL";
        filename "u-boot-debrick.img";
}
# more possible strings: "PXEClient", "Etherboot"

log (error,
    concat ("TEST DUMP:"
    , " mac=", binary-to-ascii(16, 8, ":", substring(hardware, 1, 6))
    , " substr='", substring (option vendor-class-identifier, 0, 10), "'"
    , " vendor='", option vendor-class-identifier, "'"
    #, " dhcpvendor='", option dhcp-vendor-identifier, "'"
    )
);

subnet 10.0.42.0 netmask 255.255.255.0 {
        #server-name "10.0.42.1";
        #option routers 10.0.42.1;
        #option domain-name "example.org";
        #option domain-name-servers ns1.example.org, ns2.example.org;
        pool {
                range 10.0.42.200 10.0.42.240;
                allow members of "DM814x ROM";
                allow members of "AM335x U-Boot SPL";
                #allow dynamic bootp clients;
        }
}

Теперь, кажется, что класс не присвоен. Я также пытался реализовать его с помощью подклассов, но с тем же эффектом. Оператор журнала показал мне, что возвращаемая строка корректна (и substring() действительно использование базируется 0 [который не документируется]).

Для некоторых тестов я использовал allow dynamic bootp clients оператор. Результат состоял в том, что хост получил IP-адрес, но без имени файла, которое показывает, что класс все еще не был присвоен.

0
задан 18 August 2015 в 17:42
1 ответ

Я взял то, что видел из вашей конфигурации, и адаптировал его к тому, как выглядит мой вид

#change next-server to your ip
next-server 10.0.42.1;

ddns-updates off;
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;

log-facility local7;

class "DM814X_MACS" {
    match if (binary-to-ascii(16,8,":",substring(hardware, 1, 3)) = "d0:39:72");
}

subnet 10.0.42.0 netmask 255.255.255.0 {
    pool {
        allow dynamic bootp clients;
        allow members of "DM814X_MACS";
        range dynamic-bootp 10.0.42.200 10.0.42.240;
        if substring (option vendor-class-identifier, 0, 10) = "DM814x ROM" {
            filename "u-boot-spl-debrick.bin";
        } elsif substring (option vendor-class-identifier, 0, 17) = "AM335x U-Boot SPL" {
            filename "u-boot-debrick.img";
        }
    }
}
0
ответ дан 5 December 2019 в 12:16

Теги

Похожие вопросы