Falha ao carregar o servidor UEFI PXE

1

Eu tenho tido muitos problemas com as inicializações do UEFI ultimamente. Eu tenho duas VMs que estou usando para teste. Um está executando o DHCP / TFTP (CentOS 7) e o outro é um cliente configurado para a inicialização do UEFI. Eu testei isso com uma inicialização herdada e é capaz de inicializar e puxar uma imagem. Mas não parece que o cliente UEFI receba sua atribuição de DHCP. Ambas as máquinas estão sentadas no mesmo fio virtual (portgroup), portanto não deve haver problemas de rede no caminho. Eu espelhei outra configuração que eu fiz anteriormente, que não está tendo o mesmo problema, então estou meio perdido. Eu sinto que estou sentindo falta de algo pequeno, então se alguém notar alguma coisa, eu gostaria de receber qualquer contribuição! Obrigado!

Peguei um pcap do ambiente de teste e posso ver a resposta do DHCP do meu servidor:

# tcpdump -enli ens192 port 67
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes
12:45:51.742154 00:0c:29:ae:ff:e7 > Broadcast, ethertype IPv4 (0x0800), length 389: 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:0c:29:ae:ff:e7, length 347
12:45:51.742436 00:0c:29:7a:7c:27 > Broadcast, ethertype IPv4 (0x0800), length 342: 132.0.101.2.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 300
12:46:07.742311 00:0c:29:ae:ff:e7 > Broadcast, ethertype IPv4 (0x0800), length 389: 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:0c:29:ae:ff:e7, length 347
12:46:07.742506 00:0c:29:7a:7c:27 > Broadcast, ethertype IPv4 (0x0800), length 342: 132.0.101.2.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 300

Eu posso ver nos logs que o DHCP está realmente fornecendo um endereço para o servidor de inicialização (note que este é um ambiente offline que não tem acesso ao NTP):

Aug 17 12:42:23 stager named[1148]: error (network unreachable) resolving './NS/IN': 2001:500:12::d0d#53
Aug 17 12:42:23 stager named[1148]: error (network unreachable) resolving '3.centos.pool.ntp.org/AAAA/IN': 2001:500:12::d0d#53
Aug 17 12:42:23 stager named[1148]: error (network unreachable) resolving '3.centos.pool.ntp.org/A/IN': 2001:500:12::d0d#53
Aug 17 12:42:28 stager dhcpd: DHCPDISCOVER from 00:0c:29:ae:ff:e7 via ens192
Aug 17 12:42:28 stager dhcpd: DHCPOFFER on 132.0.101.11 to 00:0c:29:ae:ff:e7 via ens192

Independentemente disso, o cliente nunca inicializa e permanece na tela abaixo até desistir:

Meudhcpd.conf:

max-lease-time7200;ddns-update-stylenone;authoritative;log-facilitylocal7;allowbooting;allowbootp;optionclient-system-archcode93=unsignedinteger16;class"pxeclients" {
        match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
        #TFTP Server
        option tftp-server-name "132.0.101.2";
        next-server 132.0.101.2;
        if option client-system-arch = 00:00 {
                filename = "bios/pxelinux.0";
        } elsif option client-system-arch = 00:07 {
                filename = "images/esxi6.7/efi/boot/bootx64.efi";
                option boot-size 344;
        }
}

subnet 132.0.101.0 netmask 255.255.255.0 {
        option routers 132.0.101.1;
        option domain-name-servers 132.0.101.2;
        range 132.0.101.11 132.0.101.99;
}
    
por notsodev 17.08.2018 / 19:09

1 resposta

2

A Opção de tipo de arquitetura do sistema cliente do DHCP define várias arquiteturas para clientes PXE EFI. Destes, dois são de interesse:

Type   Architecture Name
----   -----------------
[...]
  7    EFI BC
[...]
  9    EFI x86-64

EFI BC é uma implementação de código de byte independente de processador para drivers e é frequentemente usada pelas inicializações do UEFI PXE .

Agora, em qualquer documentação recente da VMware, o filtro está aceitando o tipo 00:07 ou 00:09 , por exemplo, este documento PDF Instalando o ESXi usando o PXE - VMware vSphere 6.0 ou Exemplo de configurações DHCP , ambos incluem:

if option client-system-arch = 00:07 or option client-system-arch = 00:09 {

Essa expectativa me faz acreditar que o firmware UEFI emulado da VMware envia 00:09 e não o tipo mais comum de arquitetura 00:07 , por isso eles sugerem ter ambos no servidor DHCP.
ATUALIZAÇÃO: a partir do comentário do OP, parece que dependendo do fornecedor de hardware x86-64 (ou virtual), a implementação da EFI pode diferir e, portanto, enviar o tipo 00:07 ou tipo 00:09 .

Você deve adicionar o tipo 00:09 e ver se agora o TFTP é oferecido ao cliente ESXi.

Eu não tenho meios para verificar essa teoria.

    
por 17.08.2018 / 20:06