ProAP x-treme®
La idea
Achicar costos lo mas posible a la hora de crear un nodo ProAP.
Nivel de complejidad
Medio bajo.
Tiempo aproximado de configuración/instalación
30 minutos a 1 hora.
Requisitos
Disponer de un linux corriendo con conectividad hasta el nodo vía ethernet y una NIC que soporte Etherboot(pxe).
Preámbulo
Principalmente, la idea es achicar costos, armando nodos con lo mínimo "nesario" para que puedan operar. Aunque al principio puede que la idea suene muy loca, pero, un nodo puede operar (y facilitándonos considerablemente la administración) sin disco rígido, ni compact flash, ni cdrom, ni disquetera, ni ningún medio de almacenamiento local.
Acá juega muy duro la flexibilidad de nuestro amigo el pinguinito y el software de distribución libre. Otro punto de está guía es comprender el abaníco de posibilidades que se nos abre al utilizar este tipo de operativos y herramientas/utilitarios.
A las tortas
En esta guía los ejemplos serán utilizando Debian Etch 4.0 como base y Obelisco como anfitrión, pero las diferencias entre las distintas distribuciones, incluso entre los *BSD son casi nulas, consulta la documentación de tu distribución para saber como hacerlo. Básicamente, nuestro futuro ProAP cargará todo lo que necesite por red, por medio de un sistema de archivos llamado NFS, que viene desde el mismísimo comienzo del mundo casi
La gracia de este tipo de implementación, es que nos evitamos el primer punto débil en un LinAP o ProAP, el disco duro o cualquier medio de almacenamiento, como las memorias flash, que, si bien tienen una muchísima mejor autonomía que los discos duros magnéticos tradicionales, suelen tener una vida útil limitada, dado el desgaste de las celdas flash.
Lo primero que hacemos, una vez disponible nuestro sistema base Debian, es instalar todas las herramientas que vamos a ir necesitando. Nos logueamos como root (TIP: el # indica que es un shell de root, y $ de usuario normal) y hacemos:
-Host remoto
# mkdir -p /nfs/swapfiles # mkdir -p /nfs/tftpboot # dd if=/dev/zero of=/nfs/swapfile/swap.img bs=1M count=256 # cd nfs # wget http://www.buenosaireslibre.org/obelisco/x86/pre/obelisco-x86-20070421.tar.gz # tar zxf obelisco-x86-20070421.tar.gz # mv voyage-obelisco obelisco # cd obelisco # rm -rf /tmp # mkdir /tmp # wget KERNEL && MODULOS # chroot . # mount /proc # dpkg -i kernel.deb && modulos.deb # ln -s /rw/tmp /tmp # umount /proc # exit
Con esto ya tenemos el sistema que usará nuestro ProAP remoto, via red, creamos un archivo que actuará como memoria swap de intercambio de 256 mb, el kernel modificado de Debian para que pueda auto configurarse solo al bootear, y los módulos que nos interesen para controlar las placas wifi.
-Anfitrion Instalamos los paquetes necesarios para servir los archivos vía NFS y para levantar el kernel, vía Tftp:
# aptitude install dhcp nfs-kernel-server tftpd-hpa
Cuando pregunta sobre la forma en la cual iniciar tl tftpd-hpa, le decimos que va a correr bajo 'Inetd'. Editamos el archivo '/etc/inetd.conf' y modificamos la linea que dice:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Por:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /nfs/tftpboot
Luego, editamos el archivo '/etc/exports', en donde vamos a declarar la ruta a exportar vía NFS. Por ejemplo:
/nfs/obelisco 192.168.0.200/255.255.255.0(rw,no_root_squash,async) /nfs/swapfiles 192.168.0.200/255.255.255.0(rw,no_root_squash,async)
Nos falta editar el archivo de configuración del Dhcp server, crucial para que todo esto funcione. El archivo '/etc/dhcpd.conf' tiene que tener mas o menos esta pinta:
#Dhcpd ProAP-diskless
default-lease-time 21600;
max-lease-time 21600;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.254;
option domain-name-servers 192.168.0.254;
option domain-name "proapdmz.wifi.dererk.com.ar";
option root-path "192.168.0.254:/nfs/obelisco";
subnet 192.168.1.0 netmask 255.255.255.0 {
use-host-decl-names on;
option log-servers 192.168.0.254;
host maximus {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.0.200;
filename "linux-2.6.20-obelisco/";
option option-128 e4:45:74:68:00:00;
}
}Veamos los valores con mas detalle:
192.168.0.254: El equipo que sirve como logserver (extremadamente útil), nfs-server y dns-server. Si alguno de estos está en otro equipo, hay que especificarlo aquí
- 00:00:00:00:00:00: La MAC address de la placa de red del ProAP que soporta Etherboot (PXE).
- e4:45:74:68:00:00: Un valor de identificación que no tiene *nada* que ver con la MAC address.