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

Могу ли я запретить Debian дважды поражать DHCP-сервер во время установки?

У меня есть DHCP-сервер, используемый для автоматической установки Debian: загрузка с PXE, а затем установка операционной системы с предустановкой.

Сервер DHCP (Debian isc-dhcp-server package) настроен на выполнение операции (выполнение HTTP POST) при выдаче новой аренды:

subnet 192.168.0.0 netmask 255.255.252.0 {
    [...]
    filename "pxelinux.0";

    on commit {
        set client_ip = binary-to-ascii(10, 8, ".", leased-address);
        execute("curl", "-X", "POST", [...])
    }
}

[...]

host vmhost2 {
    hardware ethernet 00:19:66:60:c3:61;
    fixed-address 192.168.1.13;
}

Я заметил, что во время автоматической установки HTTP POST выполняется дважды: первый раз через несколько секунд после запуска машины (это ожидается) и примерно через тридцать секунд, когда установщик Debian настраивает сеть.

Я не ожидал второго запроса. Фактически, это соответствующая конфигурация пресида:

d-i netcfg/get_hostname string vmhost2
d-i netcfg/get_domain string pelicandd.com

d-i netcfg/choose_interface select auto
d-i netcfg/disable_autoconfig boolean true
d-i netcfg / disable_dhcp boolean true
d-i netcfg/dhcp_failed note
d-i netcfg/dhcp_options select Configure network manually

d-i netcfg/get_ipaddress string 192.168.1.13
d-i netcfg/get_netmask string 255.255.252.0
d-i netcfg/get_gateway string 192.168.1.1
d-i netcfg/get_nameservers string 192.168.1.3 192.168.1.4 8.8.8.8 8.8.4.4
d-i netcfg/confirm_static boolean true

Я думал, что netcfg/disable_dhcp указывает, что установщику не нужно связываться с DHCP-сервером, но, тем не менее, он это делает.

Вопросы:

Первая последовательность DHCP DORA (обнаружение, предложение, запрос, принятие) запускается микропрограммой PXE клиента, пытающейся найти IP / MASK и данные PXE (расположение NBP + TFTP).

Затем микропрограмма PXE извлекает по TFTP и запускает соответствующее ядро ​​+ initrd. Когда это ядро ​​запускается, ему требуется IP / MASK, затем оно запускает вторую последовательность DHCP DORA (это обычный DHCP-запрос, не относящийся к PXE).

Чтобы избежать второго попадания DHCP, вы должны вручную установить статическую конфигурацию сети в командной строке "ядра"; вы не можете установить эту информацию для нажатого файла, который должен быть извлечен по сети, потому что ядро ​​будет вынуждено использовать DHCP, чтобы его сетевые службы правильно работали, чтобы получить файл с предварительной загрузкой ... вы видите проблему с яйцом-цыпленком?

Вы можете либо передать соответствующие статические сетевые переменные preseed, «добавленные» в командную строку ядра, либо использовать Pxelinux ipappend команда.

ПРИМЕЧАНИЕ. Учтите, что синтаксис переменных preseed немного отличается при использовании в файле preseed или в командной строке ядра, то есть:

d-i netcfg/get_ipaddress string 192.168.1.13     <<< preseed file
netcfg/get_ipaddress=192.168.1.13                <<< kernel command line

Финал append должно выглядеть так. Удалите разрывы строк, которые здесь добавлены только для улучшения читаемости и предотвращения горизонтальной прокрутки.

append
    [...]
    netcfg/get_ipaddress=192.168.1.13
    netcfg/get_netmask=255.255.252.0
    netcfg/get_gateway=192.168.1.1
    netcfg/get_nameservers=192.168.1.3
    netcfg/disable_autoconfig=true