Problemas de implementação do servidor PXE

1

Eu tenho uma VM ESXi executando um servidor tftpd-hpa na versão mais recente do Debian 9 para o ambiente de rede PXE. Para fins de teste, configurei outra VM para lidar com DHCP no Debian 9 usando o isc-dhcp-server (com next-server e bootfile diretivas). Usando uma terceira VM sem sistema operacional, posso inicializar o PXE no servidor sem problemas. No entanto, ao implementar o PXE na rede (especificamente o Ubiquiti EdgeRouter), o servidor PXE não funciona a menos que a configuração do tftpd-hpa seja modificada.

Se eu comentar a linha TFTP_OPTIONS="--secure" do arquivo tftpd-hpa, o servidor funcionará bem com o EdgeRouter. Eu também tentei adicionar as seguintes linhas de configuração ao arquivo de configuração EdgeRouter sem sucesso:

subnet-parameters "filename "/srv/tftp/pxelinux.0";"
subnet-parameters "filename ;pxelinux.0";"

Sou levado a acreditar que o problema está na forma como o EdgeRouter está transmitindo as opções do DHCP para o cliente, mas o que está causando isso e como eu posso consertá-lo? Percebo que posso deixar a opção secure desativada, mas prefiro não fazer isso. Eu tentei adicionar caminhos completos e parciais para a configuração do roteador também.

Erro:

TFTP.
PXE-T01: File not found
PXE-E3B: TFTP Error - File Not found
PXE-M0F: Exiting Intel PXE ROM.
Operating System not found

/ etc / default / tftpd-hpa:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

/ srv / tftp:

$ ls -alh
total 20K
drwxrwxr-x 3 root root 4.0K Mar  4 14:38 .
drwxr-xr-x 3 root root 4.0K Apr 18 00:37 ..
drwxrwxr-x 3 root root 4.0K Mar  4 14:38 debian-installer
lrwxrwxrwx 1 root root   47 Mar  4 14:38 ldlinux.c32 -> debian-installer/amd64/boot-screens/ldlinux.c32
lrwxrwxrwx 1 root root   33 Mar  4 14:38 pxelinux.0 -> debian-installer/amd64/pxelinux.0
lrwxrwxrwx 1 root root   35 Mar  4 14:38 pxelinux.cfg -> debian-installer/amd64/pxelinux.cfg
-rw-r--r-- 1 root root   79 Apr 18 00:41 test
-rw-rw-r-- 1 root root   62 Mar  4 14:38 version.info

/config/config.boot:

dhcp-server {
        disabled false
        hostfile-update disable
        shared-network-name LAN {
            authoritative enable
            subnet 192.168.1.0/24 {
                bootfile-name pxelinux.0
                bootfile-server 192.168.1.94
                default-router 192.168.1.1
                dns-server 192.168.1.1
                lease 86400
                start 192.168.1.1 {
                    stop 192.168.1.127
                }
                unifi-controller 192.168.1.225
            }
        }
        use-dnsmasq disable
    }
...
}
    
por SuperAdmin 19.04.2018 / 05:08

1 resposta

0

--secure, -s
    Change root directory on startup. This means the remote host does not
    need to pass along the directory as part of the transfer, and may add 
    security. When --secure is specified, exactly one directory should be 
    specified on the command line. The use of this option is recommended 
    for security as well as compatibility with some boot ROMs which cannot 
    be easily made to include a directory name in its request.

O único ponto em que o parâmetro antigo pode estar relacionado ao seu problema é o uso de um parâmetro bootfile do servidor DHCP diferente.

Uma captura de tráfego do Wireshark informa:

  1. Quantos servidores DHCP você está trabalhando no mesmo segmento (deve ser apenas um)
  2. A solicitação TFTP do cliente de inicialização mostrando seu caminho / arquivo completo
por 19.04.2018 / 15:44