# Configuración de DHCP / PXE

#### Habilitar el arranque UEFI con PXE

##### <span style="text-decoration:underline;">Servidor DHCP:</span>

El servidor DHCP necesita una opción especial para habilitar el arranque PXE.

Las opciones DHCP son:

- Opción 66
- Opción 67

#### Configuración del servidor DHCP de Windows

En primer lugar, el servidor DHCP debe determinar qué tipo de equipo está solicitando la asignación del servidor PXE y el archivo adecuado para el arranque.

Para clasificar los equipos, deben definirse las clases de fabricante.

##### <span style="text-decoration:underline;">Clases de fabricante</span>

Las clases de fabricante como método de detección se utilizan para determinar cómo los dispositivos solicitan una imagen de arranque al servidor DHCP.

- Abra la consola DHCP y expanda el nodo IPv4
- Haga clic con el botón derecho en «Nodo IPv4» y seleccione «Definir clases de fabricante»
- Haga clic en «Añadir»
- Cree primero la clase de proveedor UEFI de 64 bits introduciendo la siguiente información
- Introduzca la siguiente información en los campos correspondientes:
    
    
    - **Nombre de visualización:**PXEClient (UEFI x64)
    - **Descripción:**PXEClient:Arch:00007
    - **ASCII:**PXEClient:Arch:00007
- Haga clic en «Aceptar»
- Haga clic en «Añadir»
    
    
    - **Nombre de visualización:**PXEClient (BIOS x86 y x64)
    - **Descripción:**PXEClient:Arch:00000
    - **ASCII:**PXEClient:Arch:00000
- Haga clic en «Aceptar»

#### Creación de políticas DHCP personalizadas

##### <span style="text-decoration:underline;">Política DHCP de BIOS de 32 y 64 bits</span>

- Haga clic con el botón derecho en «Políticas» y seleccione «Nueva política»
- Asigne a la política un nombre descriptivo que coincida con el esquema de nomenclatura de su proveedor:
    
    
    - **Nombre de la política**: PXEClient (BIOS x86 y x64)
    - **Descripción**: Proporciona el archivo de arranque correcto para equipos con BIOS
- Haga clic en «Siguiente»
- En la página «Configurar condiciones para la política», haga clic en «Añadir»
- Seleccione el cuadro desplegable «Valor» y elija la clase de proveedor**PXEClient (BIOS x86 y x64)**que ha creado en los pasos anteriores
- Asegúrese de marcar la casilla**«Añadir comodín (\*)»**
- Seleccione «Añadir»
- Seleccione «Aceptar»
- Haga clic en «Siguiente»
- Si desea que la política afecte solo a un rango específico dentro de su ámbito, configúrelo; de lo contrario, seleccione «No» y haga clic en «Siguiente»
- En la página «Configurar ajustes para la política», asegúrese de que «Opciones estándar de DHCP» esté seleccionado en el menú desplegable
- Configure las siguientes opciones de ámbito:
    
    
    - <span style="color:#c9211e;">**066**:*Dirección IP de Medulla*</span>
    - <span style="color:#c9211e;">***067**: bootloader/undionly*.kpxe</span>
- Haga clic en «Siguiente»
- **En la página «Resumen», haga clic en «Finalizar»**

#####  

##### <span style="text-decoration:underline;">Política DHCP de UEFI</span>

- Haga clic con el botón derecho en «Policies» y haga clic en «New Policy»
- Asigne a la política un nombre descriptivo que coincida con el esquema de nomenclatura de su proveedor:
    
    
    - **Nombre de la política**: PXEClient (UEFI)
    - **Descripción**: Proporciona el archivo de arranque correcto para (UEFI)
- Haga clic en «Siguiente»
- En la página «Configurar condiciones para la política», haga clic en «Añadir»
- Seleccione el cuadro desplegable «Valor» y elija la clase de proveedor**PXEClient (UEFI)**que ha creado en los pasos anteriores
- Asegúrese de marcar la casilla**«Añadir comodín (\*)»**
- Seleccione «Añadir»
- Seleccione «Aceptar»
- Haga clic en «Siguiente»
- Si desea que la política afecte solo a un rango específico dentro de su ámbito, configúrelo; de lo contrario, seleccione «No» y haga clic en «Siguiente»
- En la página «Configurar ajustes para la política», asegúrese de que «Opciones estándar de DHCP» esté seleccionado en el menú desplegable
- Configure las siguientes opciones de ámbito:
    
    
    - <span style="color:#c9211e;">**066**:*Dirección IP de Medulla*</span>
    - <span style="color:#c9211e;">***067**: bootloader-uefi64/ipxe*.efi</span>
    - Haga clic en «Siguiente»
- En la página**«Resumen»**, haga clic en «Finalizar»

##### <span style="text-decoration:underline;">Elimine las opciones PXE predeterminadas</span>

Asegúrese de haber eliminado las opciones 067, 066 y 060 de las opciones de ámbito predeterminadas para garantizar que las políticas tengan prioridad; de lo contrario, se producirá un conflicto. Siempre que haya configurado todo correctamente, ahora debería poder arrancar los equipos desde la BIOS o la UEFI.

##### <span style="text-decoration:underline;">Servidor DHCP de Linux</span>

```bash
# Definiciones 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;
opción PXE.mtftp-delay código 5 = entero sin signo de 8 bits;
opción PXE.discovery-control código 6 = entero sin signo de 8 bits;
opción PXE.discovery-mcast-addr código 7 = dirección IP;
opción arch código 93 = entero sin signo de 16 bits;
# En el paquete DHCP DISCOVER inicial, el cliente PXE establece la opción 93 en su arquitectura.
# 0000 == PC IA x86 (arranque BIOS)
# 0006 == arranque EFI x86
# 0007 == arranque EFI x64

# Arranque PXE según las especificaciones PXE
class "PXE" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
espacio-opción-proveedor PXE;
opción PXE.mtftp-ip 0.0.0.0;
si opción arch = 00:07 {
nombre-archivo "bootloader-uefi64/ipxe.efi";
} else {
nombre-archivo "/bootloader/undionly.kpxe";
}
}

# Arranque Etherboot
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##; # dirección de difusión
option domain-name ##MEDULLA_DOMAIN##; # nombre de dominio
option domain-name-servers ##MEDULLA_DNS##; # servidores DNS
option routers ##MEDULLA_GW##; # puerta de enlace predeterminada

pool { # Solo se define el grupo

# descomente las dos líneas siguientes para el arranque solo por PXE
#allow members of "PXE"; # solo PXE
#allow members of "Etherboot"; # solo PXE
range ##MEDULLA_START## ##MEDULLA_END##;
next-server ##MEDULLA_IP##;
}
}
```