Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. http://www.apartamentoenfamilia.es. Número registro HUTT-005768

lunes, 11 de enero de 2010

Instalar un servidor TFTP

TFTP son las siglas de Trivial file transfer Protocol (Protocolo de transferencia de archivos trivial). Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre ordenadores en una red, como cuando un terminal X Window o cualquier otro cliente ligero arranca desde un servidor de red.
(Fuente: Wikipedia)

Para instalar el servicio TFTP bastará con realizar:
sudo apt-get install tftpd-hpa
Una vez instalado (junto a sus dependencias), ya podemos configurarlo correctamente. Lo primero que tenemos que hacer es activar el TFTP, que por defecto viene desactivado. Para ello tenemos que editar el archivo /etc/default/tftpd-hpa : 
# Defaults for tftpd-hpa

RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
Una vez hecho esto podemos usarlo para transferir archivos en red. Si lo que transeferimos es una imagen de disco, puede ser usado para arrancar en red un sistema operativo o cargar una imagen en un dispositivo para actualizar un firmware (un switch, un teléfono, etc).



Por ejemplo, una vez hemos activado el tftp ya podemos configurarnos nuestro espacio tftp para el arranque en red:

sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg
sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot
Aqui podemos ver que copiamos pxelinux.0 en la raíz del tftpboot ya que luego en el servidor DHCP le decimos que arranque con él.
Creamos un archivo default dentro de /var/lib/tftpboot/pxelinux.cfg/ ya que el PXE busca el archivo de configuración para el nodo que esta mirando de arrancar por este orden:
/var/lib/tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd
/var/lib/tftpboot/pxelinux.cfg/C000025B
/var/lib/tftpboot/pxelinux.cfg/C000025
/var/lib/tftpboot/pxelinux.cfg/C00002
/var/lib/tftpboot/pxelinux.cfg/C0000
/var/lib/tftpboot/pxelinux.cfg/C000
/var/lib/tftpboot/pxelinux.cfg/C00
/var/lib/tftpboot/pxelinux.cfg/C0
/var/lib/tftpboot/xelinux.cfg/C
/var/lib/tftpboot/pxelinux.cfg/default
En donde 01-88-99-aa-bb-cc-dd es la configuración para un nodo con esa dirección MAC y los demás archivos son para nodos con esa IP (hexadecimal). El archivo default se lee cuando no ha encontrado ninguna otra coincidencia. De esta manera, cada nodo puede disponer de su propio arranque. Así pues, primero creamos el archivo default y luego podremos renombrarlo con la MAC del nodo en cuestión: 

LABEL linux
KERNEL vmlinuz-2.6.31-14-generic-pae 
APPEND root=/dev/nfs initrd=initrd.img-2.6.31-14-generic-pae nfsroot=192.168.0.100:/HPC/nfsroot_node2 ip dhcp rw

De esta manera arrancará el kernel vmlinuz-2.6.31-14-generic-pae y montará la raíz del sistema de archivos en NFS que esta en 192.168.1.100 en la carpeta nfsroot_node2. La IP la tomará por dhcp y será un sistema de lectura-escritura.
  • label indica el sistema operativo que vamos a arrancar.
  • kernel indica como se llama el fichero que contiene el kernel.
  • append son una serie de parámetros que podemos pasar al kernel. En la configuración que os doy indicamos que el servidor nfs está en un servidor concreto y donde monta el directorio raíz. Otra opción podría ser cargar el directorio raíz en RAM, siempre y cuando nuestros ordenadores dispongan de los suficientes megas.
 
RFC: http://tools.ietf.org/html/rfc1350

That u don't know what you've got 'til it's gone