Problemas com DnsMasq, proxy DHCP, PXE para clientes UEFI

1

Estou tentando configurar um servidor PXE com o dnsmasq como um proxy dhcp.

Funciona bem com o cliente-arch = 0 (clientes herdados x86), mas o cliente UEFI nem termina a troca de pacotes DHCP com o servidor PXE, e nem mesmo um prompt de pxe (configurado com dnsmasq) aparece nos mais recentes clientes.

Eu fiz dumps do diálogo DHCP entre o servidor PXE e os clientes com o Wireshark, vejo algumas diferenças, mas não consigo entender por que apenas os clientes legados se conectam com êxito ao meu servidor.

Despejo de mensagens DHCP entre o servidor PXE e o cliente BIOS legado (Works!)

Despejo de mensagens DHCP entre o servidor PXE e o cliente UEFI (não funciona :()

Não consegui encontrar uma configuração de trabalho on-line: seguindo muitos exemplos, tudo que eu obtenho é que os sistemas UEFI não trocam REQUEST / ACK final com o servidor PXE.

Configuração do Dnsmasq:

port=0
interface=bond
log-dhcp
dhcp-range=192.168.1.200,proxy,255.255.255.0
dhcp-no-override

dhcp-option=vendor:,6,2b

pxe-prompt="Press any key for boot menu", 5

dhcp-match=set:x86PC, option:client-arch, 0
dhcp-match=set:BC_EFI, option:client-arch, 7

pxe-service=tag:x86PC,x86PC, "Legacy BIOS PXE", bios/pxelinux
pxe-service=tag:BC_EFI,BC_EFI, "UEFI PXE", efi64/syslinux.efi

dhcp-boot=tag:x86PC, bios/pxelinux.0
dhcp-boot=tag:BC_EFI, efi64/syslinux.efi

Existe uma solução?

EDIT: Estou usando a versão 2.76, com suporte a UEFI (consulte changelog no site oficial).

EDIT2: Meu cliente UEFI é classificado como PXEClient: Arch: 00007 (portanto, BC_EFI é a tag correta do dnsmasq).

    
por Patrick Roncagliolo 27.01.2017 / 20:11

1 resposta

1

O proxyDHCP do DnsMasq não funciona em ambientes UEFI:

link

EDIT_1 se você estiver usando o novo DnsMasq com suporte a UEFI, tente adicionar a arquitetura ausente 9

 dhcp-match=set:EFI_ x86-64, option:client-arch, 9

Os clientes UEFI 64 também usam 9 como arquitetura.

EDIT_2

por favor baseie sua configuração neste

# Don't function as a DNS server:
port=0

# Log lots of extra information about DHCP transactions.
log-dhcp

# Set the root directory for files available via FTP.
tftp-root=/tftpboot

# Disable re-use of the DHCP servername and filename fields as extra
# option space. That's to avoid confusing some old or broken DHCP clients.
dhcp-no-override

# The boot filename, Server name, Server Ip Address
dhcp-boot=bios/pxelinux,,192.168.1.200

# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.
# pxe-prompt="Booting PXE Client", 1

# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,
# Intel_Lean_Client, IA32_EFI, ARM_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
# This option is first and will be the default if there is no input from the user.

# PXEClient:Arch:00000
pxe-service=X86PC, "Boot BIOS PXE", bios/pxelinux

# PXEClient:Arch:00007
pxe-service=BC_EFI, "Boot UEFI PXE-BC", efi64/syslinux.efi

# PXEClient:Arch:00009
pxe-service=X86-64_EFI, "Boot UEFI PXE-64", efi64/syslinux.efi

dhcp-range=192.168.1.200,proxy,255.255.255.0

Fonte link (Adicionando suporte ao UEFI ao script básico)

    
por 27.01.2017 / 21:34