CONFIGURANDO EL DHCP DE MICROSOFT PARA ARRANQUE MEDIANTE PXEPXE: (Preboot Execution Environment o “pixie”) es un entorno para arrancar un ordenador usando la interface de red independientemente de tener o no dispositivos de almacenamiento (discos duros o discos usb).
PXE fue desarrollado por Intel y su especificación 2.1 fue publicada por Intel y SystemSoft en Septiembre de 1999.
Para poder arrancar desde la red un sistema operativo sin tener nada instalado en disco duro o incluso sin tener disco duro es necesario ejecutar el “PXE boot code”.
Necesitamos por tanto dos cosas: una tarjeta de red que pueda ejecutar un arranque desde red y el “boot code PXE”, el cual es un pequeño código dependiente de la tarjeta de red y que debemos “inyectarlo” en la memoria de la máquina al iniciarse para que esta sea capaz de arrancar posteriormente un sistema operativo desde la red. En artículos posteriores, veremos cómo ejecutar un sistema operativo que reside en la red, e incluso como instalar un sistema operativo en un disco de red y posteriormente usarlo sin necesidad de que nuestra máquina física tenga en ningún momento un disco duro instalado (“diskless”).
El primer paso, por tanto, es cargar en la tarjeta de red el boot code PXE para que este se encargue de iniciar el sistema desde la red.
Voy a orientar este ejemplo a arrancar (o instalar) un sistema operativo desde un “target iSCSI”.
Antes de nada, introduciremos lo que es iSCSI: iSCSI es una tecnología de comandos SCSI (de acceso a disco) encapsulador en “Internet protocol”. Por tanto son comandos puros de acceso a disco que se envían a la red. Si en la red hay un “target iSCSI” este disco será como si estuviera instalado en nuestra propia máquina. Un target iSCSI puede ser un disco de red (NAS) con dicha tecnología –son muy caros- o bien una máquina física que haga de servidor con un software de target iSCSI. Los clientes (es decir los sistemas operativos que van a usar dicho target) llevan incorporado la herramienta de cliente que es el “iSCSI initiator” –iniciador iSCSI-. Vista, W2008, y posteriores ya lo tienen nativamente. XP y W2003 es necesario instalar el iniciador iSCSI el cual está en:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=18986Por tanto, el problema que vamos a tratar en el presente artículo es cómo configurar un servidor DHCP, en este caso el de Microsoft y qué software añadido tenemos que tener para poder cargar el bootcode PXE y posteriormente que este intente iniciar desde la red.
SOFTWARE NECESARIO
Necesitamos:
- Un servidor DHCP (W2003 / W2008)
- Un servidor TFTP
- El bootcode PXE de nuestra tarjeta de red.
Servidores TFTP tenemos varios gratuitos en la red. Uno muy cómodo es el TFTP32:
http://corporate.weird-solutions.com/ y el enlace directo de descarga:
http://corporate.weird-solutions.com/unmanaged/products/dhcpt/dhcpt_std_personal.exeEl bootcode PXE podemos descargarlo de:
http://rom-o-matic.net/gpxe/gpxe-git/gpxe.git/contrib/rom-o-matic/
previamente deberemos haber identificado nuestra tarjeta de red. Para ello, en el administrador de dispositivos de cualquier sistema operativo Windows que tengamos instalado en una máquina que tenga la misma tarjeta de red, podemos ver en las propiedades de la tarjeta:
En nuestro caso, tenemos una del fabricante (VENdor) 8086 y el dispositivo (DEVice) es el 1096. Localizamos dicho identificativo en la pagina de rom-o-matic:
y seleccionamos tipo de archivo PXE. Esto nos bajará el PXE de nuestra tarjeta de red el cual es un pequeñísimo archivo típicamente inferior a 64 KB.
Este archivo lo situaremos en la carpeta de instalación del TFTP que previamente hayamos bajado. En mi caso lo tengo instalado en R:\TFTP-S
CONFIGURACION DEL TFTP
Configuramos el TFTP como en la figura adjunta:
SECUENCIA DE ARRANQUE
Vamos a ver la secuencia de arranque de una máquina desde la tarjeta de red:
- La tarjeta de red intenta localizar un servidor DHCP.
- Una vez localizado un DHCP, si este está configurado para dar BOOTP le dará dirección de red y debemos configurar el server DHCP (lo veremos más adelante) para que informe dentro de los múltiples parámetros del DHCP no sólo de dirección IP, puerta de enlace, DNS, etc... sino también de dos cosas:
- Dirección IP de la máquina que tiene un servidor DHCP
- Nombre del fichero PXE que debe enviar dicho servidor (que debe “inyectar” en la tarjeta de red).
- Un vez cargado, dicho PXE reinicializa la tarjeta de red y por tanto vuelve a pedir dirección IP. Aquí es donde reside el problema, ya que nuestro servidor IP volverá a dar los mismos datos y por tanto nos metemos en un bucle infinito: al dar de nuevo los mismos datos, se vuelve a cargar de nuevo el PXE, que a su vez vuelve a pedir IP, etc, etc.
- Por tanto, debemos hacer que nuestro servidor DHCP se “entere” de alguna forma que es la segunda vez que es llamado y esa segunda vez dar otros parámetros. En nuestro caso, lo que deseamos es que en esa segunda vez:
- No vuelva a enviarse archivo PXE
- Se envíe la ruta de un target iSCSI y sus parámetros para que el bootcode PXE inicie la carga del sistema operativo desde él.
CONFIGURACION DEL SERVER DHCP
Para ello, debemos definir una “Clase” (User Class) en el server DHCP. Dicha clase será que se identifique al servidor la “segunda vez” que sea llamado desde la máquina, es decir cuando sea llamado del bootcode PXE. Recordemos, que entonces, en la primera llamada, las opciones estándar de nuestro servidor DHCP deben dar los parámetros para cargar el PXE, y en la segunda llamada, los parámetros para arrancar desde un iSCSI.
Por tanto definimos en el servidor la clase: botón derecho en IPv4, y seleccionamos User Class, botó de añadir y la damos de alta como en la figura adjunta:
Mi consejo ahora es reservar para la MAC de esa máquina una IP de nuestro rango de direcciones:
Una vez reservada en nuestro ejemplo la IP 172.16.3.130, procedemos a la configuración. Con botón derecho, configuramos las opciones 66 y 67:
En la opción 66 le ponemos la dirección IP de nuestro server TFTP y en la opción 67 el nombre del fichero PXE a cargar.
A continuación procedemos de nuevo con botón derecho a configurar dos nuevas opciones, pero en este caso, fijémonos que vamos a la pestaña de “Avanzado” y seleccionaos previamente nuestra clase definida anteriormente gPXE. Configuramos las opciones 17 (RootPath) con el comando de carga iSCSI y de nuevo la 67 (para anular la carga del fichero PXE, es decir dejamos la 67 en blanco).
Fijémonos en que la sintaxis es:
iscsi:IP-del-target-iscsi::::nombre-iniciador-iscsi
Por tanto deberá quedarnos:
En esta situación, el proceso de arranque ya deberá efectuarse correctamente:
Veremos en siguientes artículos, como configurar target iSCSI, su uso, uso de iniciadores y l arranque e incluso instalación en targets iSCSI.
--
|
21 - abril - 2009