Lihuen
RSSRSS AtomAtom

Clientes livianos con LTSP5 con Lihuen 2

Esta es una guía para montar un servidor de clientes livianos usando LTSP 5 y Lihuen 2, para esto publicamos un cd de paquetes y configurac¡ón para LTSP 5 que contiene los paquetes necesarios para instalar LTSP 5 en una instalación estándar de Lihuen 2, una imagen para que ejecuten los clientes y un script que instalará todo y copiará algunos archivos de configuración necesarios para tener el servidor funcionando.

Instalación

El cd para instalar el servidor de clientes livianos sobre LIHUEN cuenta con los paquetes necesarios para su instalación. Asimismo realiza algunas configuraciones básicas para su funcionamiento.

Los servicios que se utlizarán durante el funcionamiento del servidor son:

   * DHCP
   * TFTP
   * NFS
   * SSH

Para comenzar su instalación tenemos que utilizar el script init.sh incluido en el cd, el cual instalará los paquetes y modificará los archivos necesarios para la configuración.

Desde consola en el directorio del CD de "LTSP 5 - Lihuen 2" ejecutar

# bash init.sh

Este script instalará los paquetes ltsp-server-standalone y openssh-server que por dependencias instalarán además un servidor tftp, un servidor nfs y un servidor dhcp.

Luego de esto, va a descomprimir en /opt/ltsp el sistema que se ejecutará en los clientes para luego conectarse al servidor de livianos y en /var/lib/tftpboot/ltsp el kernel y la imagen initrd de los clientes.

Finalmente copiará una nueva configuración para dhcpd y nfs-server.


Configuraciones

Interfaz

La interfaz que se configure con la ip estática tendremos que habilitarla para que escuche las peticiones de dhcp, para esto modificamos el archivo /etc/default/dhcp3-server en la entrada INTERFACES.

Por ejemplo: INTERFACES="eth0"

Ejecutar:

/etc/init.d/dhcp3-server restart

Para que funcione correctamente debemos prestar atención a la ip que ponemos en la placa de red que escuchará las peticiones de dhcp.

Para configurar la interfaz de red podemos hacerlo manualmente en el archivo /etc/network/interfaces, o desde la aplicación en Menú->Escritorio->Administración->Red.

Dicha ip esta directamente relacionada con la configuración de los archivos /etc/dhcp3/dhcpd.conf y /etc/exports.

El archivo que establece el número de ips que se van a entregar dinámicamente es dhcpd.conf, el cual se copia durante la instalación. La ip que le asignamos a la placa de red tiene que coincidir con la que esta en este archivo, la que viene configurada por defecto es la 192.168.0.1, como asimismo la red en la cual se encuentra.

NFS

En el archivo /etc/exports se encuentra la lista de directorios que se comparten con los clientes y la red a la cual se comparte. Por defecto tiene esta configuración:

/var/opt/ltsp/swapfiles   192.168.0.0/255.255.255.0(rw,no_root_squash,async)
/opt/ltsp/i386            192.168.0.0/255.255.255.0(ro,no_root_squash,sync) 

Donde 192.168.0.0/255.255.255.0 es la red a la cual se va a compartir estos directorios.

Ejecutar:

/etc/init.d/nfs-kernel-server restart

TFTP

Para activar el arranque del servidor de TFTP durante el encendido de la máquina, podemos hacerlo de dos maneras

  • Verificamos si ya se encuentra configurado para arrancar en el archivo
/etc/inetd.conf

Donde tendría que estar descomentada esta línea

tftp     dgram   udp   wait  root   /usr/sbin/in.tftpd  /usr/sbin/in.tftpd -s /vat/lib/tftpboot

Para reiniciar el servicio ejecutar:

#/etc/init.d/openbsd-inetd
  • O bien, modificamos el archivo /etc/default/tftpd-hpa:

cambiando el valor de la entrada RUN_DAEMON a "yes" Verificar que el path especificado sea donde estan especificado las imágenes del kernel y linux, en general es:

/var/lib/tftpboot

Para reiniciar el servicio ejecutar:

#/etc/init.d/tftpd-hpa restart

Keys SSH

Para que los clientes conozcan la clave pública del servidor, ejecutamos como root, desde una terminal el comando:

# ltsp-update-sshkeys

Configuración del cliente

Para que la máquina que usaremos funcione como cliente liviano debemos graba una imagen,a la cual permite arrancar desde la red el sistema. Esta imagen se encuentra dentro del cd en la carpeta gpxe. En esta carpeta se encuentran varias imágenes según el medio que usemos podemos elegir entre las siguientes opciones:

  1. Arranque desde un CD: copiamos la imagen usamos gpxe.iso para bootear en el cd.
  2. Arranque desde un diskette: copiamos la imagen gpxe.dsk y la configuración necesaria en el diskette. Si tenemos instalado otro sistema operativo también se puede configurar para que arranque desde el diskette.


No debemos olvidar que para que el cliente liviano arranque desde un dispositivo no extraíble y no desde el disco rígido debemos indicarlo en el BIOS.

Grabando diskettes

1. Verificamos que el diskette no esté dañado con

fdformat /dev/fd0

2. Grabamos la imagen gpxe.dsk desde el directorio gpxe

dd if=gpxe.dsk of=/dev/fd0

Nota: El diskette no se podrá utilizar para guardar archivos, solamente funcionará como disco de inicio. Así que no se preocupe si intenta montarlo y el sistema le dice que no es posible hacerlo.

Grabando CDs

Estas imágenes se pueden grabar con K3B o cualquier otro programa de grabación de CDs

Verificación de servicios

En caso que que tengamos problemas para poder arrancar los clientes, podemos verificar el funcionamiento de los servicios utilizando principalmente el comando netstat: Este comando nos permite visualizar las conexiones de red actualmente establecidas netstat, los servicios que están corriendo, etc. Las opciones que utilizaremos son:

  1. '-a', que no muestra información sobre todas las conecciones de red.
  2. '-n' le dice que no convierta las direcciones de IP y los números de puertos en nombres, esto permite obtener más rápido la infomación, especialmente si tienes problemas de DNS.
  3. '-p' permite ver el número de proceso ID y el nombre del proceso que actualmente está escuchando en ese puerto.

DHCP

$netstat -an | grep ":67"
$ps aux | grep dhcpd

El archivo donde se guardan las ip que entrega el servidor dhcpd en forma dinámica esta en : /var/lib/dhcp/dhcpd.leases.

PORTMAP

$netstat -an | grep ":111"
$rpcinfo -p localhost
program vers proto   port
 100000    2   tcp    111  portmapper
 100000    2   udp    111  portmapper
 100003    2   udp   2049  nfs
 100003    3   udp   2049  nfs
 100021    1   udp  32771  nlockmgr
 100021    3   udp  32771  nlockmgr
 100021    4   udp  32771  nlockmgr
 100005    1   udp    648  mountd
 100005    1   tcp    651  mountd
 100005    2   udp    648  mountd
 100005    2   tcp    651  mountd
 100005    3   udp    648  mountd
 100005    3   tcp    651  mountd
 100024    1   udp    750  status
 100024    1   tcp    753  status

$ps -e | grep portmap

NFS

$ showmount -e

debería decir algo como esto

/opt/ltsp 192.168.10.0/255.255.255.0
/var/opt/ltsp/swapfiles 192.168.0.0/255.255.255.0

TFTP

$ netstat -anp | grep ":69 "
 udp   0   0 0.0.0.0:69    0.0.0.0:*  5371/in.tftpd

Con dichas configuraciones el servidor esta listo para funcionar, más adelante agregaremos temas para una configuración mas avanzada.

Configuraciones de arranque alternativas

BIOS

Algunas BIOS soportan arranque por red utilizando PXE, sólo hay que habilitar esta opción.

Máquinas con Windows 9x

Es muy común que los clientes livianos tengan instalado este sistema operativo. Podemos aprovechar el hecho de que estas máquinas tienen disco duro e instalar gpxe en él en lugar de utilizar diskettes.

La forma más flexible de hacer esto es instalar en el cliente Grub4Dos. Y crear una imagen de gpxe que se pueda bootear de esta forma, el formato de la imagen deberá ser .lkrn para gpxe o .zlilo para el viejo etherboot (Véase: Como generar imágenes de gpxe).

  • Bajar grub4dos y descomprimirlo en la carpeta C:\boot (para este ejemplo).
  • Si queremos que aparezca el menú de grub automáticamente al inicio modificar config.sys agregando una línea que diga
shell=C:\boot\grub.exe --config-file=(hd0,0)/boot/menu.lst

O el disco que corresponda en notación de GRUB, en el 99% de los casos (hd0,0) está bien, si no funciona pruebe (hd1,0), etc...

  • Copiar gpxe.lkrn en el directorio C:\boot
  • Modificar menu.lst para que grub muestre el menú que queremos, abajo un ejemplo de una entrada para bootear como cliente liviano (el archivo menu.lst además trae varios ejemplos de como bootear otros sistemas operativos).
title Cliente Liviano de Lihuen
kernel (hd0,0)/boot/gpxe.lkrn
boot
  • Reiniciar la PC y probar (conserve un disco de arranque de DOS para poder corregir cualquier error, recomiendo usar Balder un disco de inicio basado en FreeDOS, pero cualquier disco de inicio debería alcanzar)

Ejemplos (en Windows 95, probado también en Windows 98)

  • C:\config.sys
device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
shell=C:\boot\grub.exe --config-file=(hd0,0)/boot/menu.lst
Country=052,850,C:\WINDOWS\COMMAND\country.sys
  • C:\boot\menu.lst
color black/cyan yellow/cyan
timeout 5
default 0

title Cliente Liviano de Lihuen
kernel (hd0,0)/boot/gpxe.lkrn
boot

title Windows 9x
savedefault --wait=2
quit
 

Como generar imágenes de gpxe

Las imágenes de gpxe pueden generarse desde el sitio http://rom-o-matic.net/ con configuraciones especificas, o podemos descargar el código de gpxe y compilar las nuestras. Lo interesante de ésta última forma es que nos permite generar imágenes "universales" que funcionan con casi todas las placas de red, en lugar de generar una imagen para cada modelo.

Algunos de los formatos de las imágenes son

  • .dsk para arranque desde un diskette
  • .hd para grabar en el master boot record de un disco duro
  • .usb para arranque desde pendrives
  • .lkrn (anteriormente .zlilo) para arrancar esta imagen desde un boot loader

Compilando nuestras propias imágenes de gpxe

Precisamos tener instalados al menos los siguientes paquetes

  • git-cvs
  • gcc
  • make

1. Descargamos gpxe desde su repositorio con git

git clone git://git.etherboot.org/scm/gpxe.git

2. Esto debería crear una carpeta gpxe o gpxe-versión, entramos en la carpeta

3. Ejecutamos el comando make

4. Esto debería crear varios archivos en el directorio bin (no confundir con /bin no hemos instalado nada)

5. Para generar una imagen para una placa con un chipset en especial buscamos su nombre en bin, debería haber un archivo .o por cada placa soportada por gpxe. Para generar una imagen universal con todos los drivers elegimos el nombre gpxe.

6. Elegimos el formato (.dsk, lkrn, etc...)

7. Ejecutamos make bin/nombre.formato

Ejemplos

Generamos una imagen universal para arrancar desde un boot loader (.lkrn)

cd gpxe
make
make bin/gpxe.lkrn

Generamos una imagen de diskette para placas con chipset rtl8139 y una imagen de diskette universal

cd gpxe
make bin/rtl8139.dsk
make bin/gpxe.dsk

Las imágenes se generarán en el directorio bin

Links de interés

Página oficial de LTSP

Foro en español de LTSP

Howto de LTSTP para Debian