Skip to main content

Paso opcional: Configurar un servidor DHCP de Windows/Linux para el arranque PXE de Medulla (BIOS y UEFI)

Aplicable a: Medulla Imaging / PXE
Versión: Todas
Entorno: On-Premise
Categoría: DHCP / PXE / Imágenes

Objetivo

En esta FAQ se explica cómo configurar un servidor DHCP para permitir el arranque PXE de los equipos con Medulla, tanto en modo BIOS como en modo UEFI x64.

El servidor DHCP debe ser capaz de enviar el archivo de arranque adecuado según el tipo de equipo que se inicie mediante PXE.


Principio de funcionamiento

Cuando un equipo arranca en modo PXE, se pone en contacto con el servidor DHCP para obtener:

  • Una dirección IP
  • La dirección del servidor PXE de Medulla
  • El archivo de arranque que debe cargarse

Las dos opciones principales de DHCP son:

Opción DHCP Función Valor esperado
66 Dirección del servidor PXE Dirección IP del servidor Medulla
67 Archivo de arranque PXE Depende del modo BIOS o UEFI

Archivos de arranque de Medulla

Tipo de arranque Arquitectura Archivo de arranque
BIOS x86 / x64 bootloader/undionly.kpxe
UEFI x64 bootloader-uefi64/ipxe.efi

Importante:
El archivo de arranque no es el mismo para los equipos con BIOS y los equipos con UEFI. Un valor incorrecto en la opción 67 impide el arranque PXE.


Configuración de un servidor DHCP de Windows

1. Abrir la consola DHCP

  1. Abre la consola DHCP en el servidor Windows.
  2. Despliega el nodo IPv4.

2. Crear las clases de proveedor

Las clases de proveedor permiten al servidor DHCP reconocer si el equipo solicita un arranque PXE en BIOS o en UEFI.

Crear la clase UEFI x64

  1. Haz clic con el botón derecho en IPv4.
  2. Haga clic en «Definir clases de proveedor».
  3. Haz clic en «Añadir».
  4. Introduce los siguientes valores:
Campo Valor
Nombre de visualización PXEClient (UEFI x64)
Descripción PXEClient:Arch:00007
ASCII PXEClient:Arch:00007

Haz clic en «Aceptar».

Crear la clase BIOS x86/x64

  1. Vuelve a hacer clic en «Añadir».
  2. Introduce los siguientes valores:
Campo Valor
Nombre de visualización PXEClient (BIOS x86 y x64)
Descripción PXEClient:Arch:00000
ASCII PXEClient:Arch:00000

Haz clic en «Aceptar».


3. Crear la política DHCP para los equipos con BIOS

  1. En su ámbito DHCP, haz clic con el botón derecho del ratón en «Políticas».
  2. Haz clic en «Nueva política».
  3. Asigna un nombre claro a la política.
Campo Valor
Nombre de la política PXEClient (BIOS x86 y x64)
Descripción Archivo de arranque PXE para equipos con BIOS
  1. Haz clic en «Siguiente».
  2. En los criterios, haz clic en «Añadir».
  3. Selecciona la clase «Vendor PXEClient (BIOS x86 y x64)».
  4. Marca la casilla «Añadir un comodín (*)».
  5. Confirme y haga clic en «Siguiente».
  6. Configura las siguientes opciones de DHCP:
Opción Valor
066 IP_DEL_SERVIDOR_MEDULLA
067 bootloader/undionly.kpxe

Finaliza el asistente haciendo clic en «Siguiente» y, a continuación, en «Finalizar».


4. Crear la política de DHCP para los equipos UEFI

  1. En su ámbito DHCP, haz clic con el botón derecho del ratón en «Políticas».
  2. Haz clic en «Nueva política».
  3. Asigna un nombre claro a la política.
Campo Valor
Nombre de la política PXEClient (UEFI x64)
Descripción Archivo de arranque PXE para equipos UEFI x64
  1. Haz clic en «Siguiente».
  2. En los requisitos, haz clic en «Añadir».
  3. Selecciona la clase «Vendor PXEClient (UEFI x64)».
  4. Marca la casilla «Añadir un comodín (*)».
  5. Confirma y haz clic en «Siguiente».
  6. Configura las siguientes opciones de DHCP:
Opción Valor
066 IP_DEL_SERVIDOR_MEDULLA
067 bootloader-uefi64/ipxe.efi

Finaliza el asistente haciendo clic en «Siguiente» y, a continuación, en «Finalizar».


5. Eliminar las opciones PXE globales

Para evitar conflictos, las opciones PXE no deben configurarse tanto a nivel global del ámbito como en las políticas de DHCP.

Comprueba que las siguientes opciones no estén configuradas en las opciones generales del ámbito:

  • 060
  • 066
  • 067

Importante:
Si las opciones 66 y 67 están definidas a nivel global, pueden entrar en conflicto con las políticas de BIOS/UEFI e impedir que se envíe el archivo de arranque correcto.


Configuración de un servidor DHCP en Linux

En un servidor DHCP de Linux, el principio consiste en detectar la arquitectura del equipo mediante la opción DHCP 93.

Valor de la opción 93 Tipo de máquina Archivo de arranque
0000 BIOS bootloader/undionly.kpxe
0007 UEFI x64 bootloader-uefi64/ipxe.efi

Ejemplo de configuración de ISC DHCP

Adapta los valores entre ##...## a tu entorno.

# Definiciones de PXE
option space PXE;
option PXE.mtftp-ip code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option PXE.discovery-control code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr code 7 = ip-address;

# Arquitectura PXE
option arch code 93 = unsigned integer 16;

# 0000 = BIOS
# 0007 = UEFI x64

clase "PXE" {
    coincide si la subcadena (opción vendor-class-identifier, 0, 9) es "PXEClient";
    espacio de opciones del proveedor PXE;
    opción PXE.mtftp-ip 0.0.0.0;

    if option arch = 00:07 {
        filename "bootloader-uefi64/ipxe.efi";
    } else {
        filename "bootloader/undionly.kpxe";
    }
}

class "Etherboot" {
    match if substring(option vendor-class-identifier, 0, 11) = "Etherboot-5";
    option vendor-encapsulated-options 3c:09:45:74:68:65:72:62:6f:6f:74:ff;
    option vendor-class-identifier "Etherboot-5.0";
    vendor-option-space PXE;
    option PXE.mtftp-ip 0.0.0.0;
}

subnet ##MEDULLA_NETWORK## netmask ##MEDULLA_NETMASK## {
    option broadcast-address ##MEDULLA_BCAST##;
    option domain-name ##MEDULLA_DOMAIN##;
    option domain-name-servers ##MEDULLA_DNS##;
    option routers ##MEDULLA_GW##;

    pool {
        range ##MEDULLA_START## ##MEDULLA_END##;
        next-server ##MEDULLA_IP##;
    }
}

Ejemplo de valores que deben sustituirse

Variable Descripción Ejemplo
##MEDULLA_NETWORK## Red DHCP 192.168.1.0
##MEDULLA_NETMASK## Máscara de red 255.255.255.0
##MEDULLA_BCAST## Dirección de difusión 192.168.1.255
##MEDULLA_DOMAIN## Nombre de dominio dominio.lan
##MEDULLA_DNS## Servidor DNS 192.168.1.1
##MEDULLA_GW## Puerta de enlace 192.168.1.254
##MEDULLA_START## Inicio del rango DHCP 192.168.1.100
##MEDULLA_END## Fin del rango DHCP 192.168.1.200
##MEDULLA_IP## Dirección IP del servidor Medulla PXE 192.168.1.10

Comprobaciones tras la configuración

  • Reinicia el servicio DHCP tras realizar los cambios.
  • Comprueba que los equipos obtengan correctamente una dirección IP.
  • Probar un equipo en modo BIOS.
  • Probar un equipo en modo UEFI.
  • Comprueba que se envía el archivo de arranque correcto según el modo de arranque.

Reinicio del servicio DHCP en Linux

systemctl restart isc-dhcp-server

Comprobación del estado

systemctl status isc-dhcp-server

Errores frecuentes

El equipo con BIOS no arranca en PXE

  • Comprueba que la opción 67 apunte a bootloader/undionly.kpxe.
  • Comprueba que el equipo arranca correctamente en modo Legacy/BIOS.
  • Comprueba la accesibilidad del servidor Medulla desde la red del cliente.

El equipo UEFI no arranca en modo PXE

  • Comprueba que la opción 67 apunte a bootloader-uefi64/ipxe.efi.
  • Comprueba que el equipo arranca correctamente en modo UEFI.
  • Comprueba que Secure Boot esté desactivado si es necesario.

Se envía un archivo de arranque incorrecto

  • Comprueba las clases de proveedor en el DHCP de Windows.
  • Comprueba las políticas DHCP de la BIOS y la UEFI.
  • Comprueba que las opciones 66 y 67 no estén definidas globalmente además de en las políticas.

El cliente PXE obtiene una dirección IP, pero no descarga el gestor de arranque

  • Comprueba la opción 66 o «next-server».
  • Comprueba la conectividad entre el equipo cliente y el servidor Medulla.
  • Comprueba los flujos de red necesarios para el PXE.

Valores de referencia

Elemento BIOS UEFI x64
Clase de proveedor PXEClient:Arch:00000 PXEClient:Arch:00007
Opción 66 IP_DEL_SERVIDOR_MEDULLA IP_DEL_SERVIDOR_MEDULLA
Opción 67 bootloader/undionly.kpxe bootloader-uefi64/ipxe.efi