Posso impedir que o Debian atinja o servidor DHCP duas vezes durante a instalação?

3

Eu tenho um servidor DHCP usado para fazer instalações autônomas da Debian: inicialize a partir do PXE e instale o sistema operacional com um preseed.

O servidor DHCP (pacote isc-dhcp-server do Debian) está configurado para fazer uma operação (fazer um HTTP POST) ao entregar uma nova concessão:

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;
}

Eu notei que durante a instalação autônoma, o HTTP POST é feito duas vezes: a primeira vez alguns segundos depois que a máquina inicia (isto é esperado), e aproximadamente trinta segundos depois quando o instalador da Debian está configurando a rede.

Eu não esperava o segundo pedido. Na verdade, essa é a configuração correspondente de pré-configuração:

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

Eu pensei que a opção netcfg/disable_dhcp indica que o instalador não precisa entrar em contato com o servidor DHCP, mas ainda assim, faz.

Perguntas:

  • Por que o instalador está contatando o servidor DHCP pela segunda vez, apesar das opções de pré-configuração?

  • Existe uma maneira de impedir que isso seja feito, seja por meio de uma opção preseed, seja modificando a configuração do servidor ISC DHCP para ignorar a segunda concessão?

por Arseni Mourzenko 24.07.2016 / 02:20

1 resposta

3

A primeira sequência DHCP DORA (Descoberta, Oferta, Solicitação, Aceitação) é acionada pelo firmware PXE do cliente, tentando encontrar um IP / MASK e os dados PXE (local NBP + TFTP).

O firmware PXE, em seguida, o TFTP recupera e executa o kernel + initrd correspondente. Quando este kernel começa a funcionar, ele precisa de um IP / MASK, então ele aciona uma segunda seqüência DHCP DORA (esta é uma requisição DHCP "não-PXE" regular)

Para evitar a segunda ocorrência de DHCP, você deve manualmente definir a configuração de rede estática na linha de comando "kernel" ; você não pode definir esta informação em um arquivo pressionado que deve ser recuperado porque o kernel seria forçado a usar o DHCP para obter seus serviços de rede funcionando corretamente para recuperar o arquivo preseed ... você pode ver o problema do ovo de galinha?

Você pode passar as variáveis de pré-rede da rede estática correspondentes "anexadas" à linha de comando do kernel ou usar o comando Pxelinux ipappend .

NOTA: Por favor, considere que a sintaxe de variáveis preseed é um pouco diferente quando usada em um arquivo preseed ou em uma linha de comando do kernel, por exemplo:

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

O% final append deve ser assim. Remova as quebras de linha, que são adicionadas aqui apenas para melhorar a legibilidade e impedir a rolagem horizontal.

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
    
por 24.07.2016 / 11:26