Encadenamiento PXE/TFTP dentro del mismo servidor

Encadenamiento PXE/TFTP dentro del mismo servidor

Mi entorno de red existente proporciona lo siguiente:

  • Servidor DHCP que envía clientes PXE a un servidor TFTP particular
  • Servidor TFTP con archivo SYSLINUX "pxelinux.0" para arrancar

La instalación de SYSLINUX tiene como valor predeterminado el tiempo de espera para "arrancar desde el disco local", lo que permite que los clientes existentes se reinicien correctamente pero también brinda la opción de arrancar en un entorno de rescate o aprovisionamiento.

Estoy probando un nuevo entorno de aprovisionamiento que reside en un servidor TFTP diferente al que apunta el servidor DHCP. Los clientes existentes dependen del entorno actual, pero me gustaría remitir los clientes de prueba al nuevo servidor TFTP para su aprovisionamiento.

Idealmente, me gustaría poder usar una opción de menú particular desde el indicador de SYSLINUX que haría que el cliente arranque desde otro servidor TFTP (codificado, en lugar de proporcionado por el servidor DHCP).

Intenté instalar una imagen gPXE personalizada como opción de menú en SYSLINUX. La imagen personalizada (re) adquirió una dirección DHCP y fue al servidor TFTP codificado, pero le falta una pieza que no creo que gPXE sea capaz de cumplir.

El nuevo sistema de aprovisionamiento se basa en Cobbler y depende de la secuencia PXE habitual en la que el cliente busca un archivo denominado con su dirección MAC antes de conformarse con un archivo menos específico y, eventualmente, genérico. Por lo que puedo decir, parece que gPXE no es capaz de realizar esta secuencia de inicio basada en direcciones Mac.

¿Alguien puede decirme otra forma de hacer esto? Llevo varios días golpeándome la cabeza con este problema. ¡Gracias de antemano!

Respuesta1

Encadenamiento PXE/TFTP dentro del mismo servidor

Coloque el otro cargador de arranque PXE como kernel.

Este es el ejemplo que utilicé para cargar en cadena el cargador de arranque BSD PXE desde el cargador de cadena Linux PXE.

LABEL openbsd
    MENU LABEL ^OpenBSD 3.9
    KERNEL openbsd_3.9/pxeboot.0

Encadenamiento PXE/TFTP a otro servidor

pxechain.comSe utiliza para cargar en cadena otro servidor PXE.

pxechain.comestá disponible dentro del syslinux-commonpaquete en Debian/Ubuntu oarchivo del proyecto syslinuxbajo un nombre de archivo diferente pxechn.c32.

Ejemplo:

LABEL pxeserver2
        menu label Switch to 2nd PXE server...
        kernel pxechain.com
        append 192.168.10.254::pxelinux.0

Ejemplo2:(Gracias aUn tiburón) En caso de que el nombre del archivo de configuración de su pxelinux y/o la ruta al mismo difieran en ambos servidores pxe, debe definirlos explícitamente con las opciones -p y -c; de lo contrario, no funcionará (intentará usar un valor definido por dhcp que se utilizó para el arranque actual).

En la configuración del servidor DC-ISO2:

LABEL DC-ISO1
        MENU LABEL DC-ISO1 (BIOS mode)
        KERNEL pxechn.c32
        APPEND 192.168.1.1::pxelinux.0 -c default -p /
        TEXT HELP
Boot the legacy dc-iso1 menu in bios mode.
        ENDTEXT

En la antigua configuración del servidor DC-ISO1:

LABEL DC-ISO2
        MENU LABEL DC-ISO2 (BIOS mode)
        KERNEL pxechn.c32
        APPEND 192.168.1.2::/configs/pxelinux.0 -p /configs/ -c bios.cfg
        TEXT HELP
Boot the new dc-iso2 menu in bios mode.
        ENDTEXT

Técnicamente, ahora puedes incluso desactivar el servidor dhcp de DC-ISO1 (pero no tftp), y siempre iniciarás primero en DC-ISO2, mientras podrás cambiar entre los menús de ambos servidores.

Respuesta2

Tome pxelinux.0 de Ubuntu 10.4 LTS. Eso pasará por la iteración "normal": MAC - IP en HEX - ... predeterminado.

Sería más sencillo decirle a su servidor DHCP que NO responda a ciertas solicitudes y configurar otro DHCP en la misma red (no autorizado) que responda a sus solicitudes del servidor de prueba (y no responda a nada más).

información relacionada