martes, 18 de octubre de 2011

Booteo servidor PXE en Debian Squeeze

A continuación, les redacto un breve tutorial sobre el booteo en un servidor PXE, muy útil, cuando queremos tener varias ISO disponibles en dicho servidor.

Antes que nada, aclarar que un servidor PXE(Preboot Execution Environment) es el servidor que trata de encontrar un cliente cualquiera cuando arranca por red, y cuyo servicios que ofrecemos son ISO de sistemas operativos para que arranquen por red.

Para que dicho booteo se pueda ejecutar correctamente, debemos configurar previamente un servidor DHCP(para que le de una ip válida al cliente), y un servidor tftp(
Trivial file transfer Protocol) que no es mas, que un protocolo de transferencia muy simple que se utiliza para transferir pequeños archivos entre ordenadores en una red.

Para empezar, instalamos los paquetes necesarios:
Instalación del servidor DHCP
root@bobesponja:~# aptitude install dhcp3-server

Para configurar el servidor DHCP, editamos el fichero de configuración que se encuentra en el directorio /etc/dhcp/dhcpd.conf
root@bobesponja:~# nano /etc/dhcp/dhcpd.conf


Una vez que tenemos definido los parámetros de configuración del DHCP, debemos especificar en el fichero de configuración /etc/default/isc-dhcp-server la interfaz de red por la cuál, vamos a ofrecer nuestro servicio DHCP, para ello haremos un "ifconfig" previamente, en mi caso la interfaz es la "eth0":
root@bobesponja:~# nano /etc/default/isc-dhcp-server
INTERFACES="eth0"

Para que se ejecuten los cambios, reiniciamos el servicio DHCP:
root@bobesponja:~# /etc/init.d/isc-dhcp-server


Instalación del servidor TFTP
root@bobesponja:~# aptitude install tftpd-hpa

Para configurar el directorio en el cuál, va a buscar el cliente el fichero "pxelinux.0", debemos modificar la variable "TFTP_DIRECTORY" del fichero "tftpd-hpa" del servidor.
root@bobesponja:~# nano /etc/default/tftpd-hpa

Las ISO que usamos en los servidores PXE son ISO especiales, modificadas para arrancar por red, en mi caso he utilizado una ISO de Debian Squeeze y otra de Debian Lenny, para ello:

Me bajo la ISO de Debian Squeeze y la descomprimo:
root@bobesponja:~# wget http://ftp.debian.org/debian/dists/squeeze/main/installer-i386/current/images/netboot/netboot.tar.gz
root@bobesponja:/srv/tftp# tar -xzvf /home/juanlu/netboot.tar.gz

Al descomprimirlo me crea los siguientes archivos y directorios:


Hago lo mismo con la ISO de Debian Lenny:
root@bobesponja:~# wget http://ftp.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/netboot.tar.gz
root@bobesponja:/srv/tftp# tar -xzvf /home/juanlu/netboot.tar.gz

Al descomprimirlo me da exactamente los mismos archivos y directorios, en mi caso, solo me interesa el directorio "lenny" que se encuentra dentro del directorio "debian-installer" que es diferente al de Debian Squeeze, ya que el resto de los archivos(pxelinux.0,pxelinux.cfg,....)son iguales.

Una vez descomprimidas las ISO, las muevo o copio(cuestión de gustos), al directorio "/srv/tftp/". De la ISO de Debian Lenny, sólo copio el directorio "lenny" a "/srv/tftp/debian-installer" quedando el directorio "/srv/tftp" con la siguiente estructura:

Si hago un "ls" dentro del directorio "debian-installer" podemos ver los dos directorios distintos "squeeze" y "lenny"

Debemos crear un fichero con extension ".msg" en el cuál, vamos a redactar nuestro menú de booteo, y lo debemos de colocar en el directorio "/srv/tftp/", en mi caso lo he nombrado con el nombre "explicacion.msg", y dicho fichero contiene lo siguiente:

Para que cuando pulse F1, me muestre un submenú de ayuda, he creado otro fichero con extensión ".msg", que en mi caso lo he llamado "explicacion2.msg", que debemos colocarlo en el directorio "/srv/tftp" y que contiene lo siguiente:


Ahora edito el fichero de configuración "default" que se encuentra en el directorio "pxelinux.cfg" con los siguientes parámetros:
root@bobesponja:~# nano /srv/tftp/pxelinux.cfg/default


Donde "DISPLAY" hace referencia al fichero que hace de booteo, en mi caso "explicacion.msg"
"DEFAULT" es el sistema operativo que va arrancar por defecto si no seleccionamos ninguno.
"LABEL" son las etiquetas, es decir, si escribimos la etiqueta "Debian_Lenny", hace lo que viene en kernel, si elegimos la otra etiqueta, pues arranca el otro kernel.
"F1" es para que cuando pulsemos F1, nos salga el menú de ayuda, en mi caso, el fichero es explicacion2.msg.


Antes de iniciar el cliente, debemos reiniciar el servicio TFTP, para ello:
root@bobesponja:~# /etc/init.d/tftpd-hpa

Finalmente para comprobar que esto funciona, arranco una máquina virtual, y selecciono que arranque por red:


Y como muestra final, un cliente arrancando por red, en la cuál, le sale el menú:

Ahora una muestra de la pantalla cuando pulsamos F1:

Por último, agredecer la documentación en inglés de:
http://www.novell.com/communities/node/5777/setting-pxe-boot-server

Saludos

viernes, 7 de octubre de 2011

Gestionar DNS dinámico con Dyndns

Después de tenerme que comprar un dominio para el curso 2ºASIR, nos dieron a elegir CDMON, pero al ver los precios me vine atras, y buscando por Internet me dio por comprarla en 1&1, que me costaba menos de la mitad.

El problema fue cuando me di cuenta, que no podia acceder a mi página web desde fuera porque mi ISP como el de muchas compañias, cambiaba mi IP pública, cada cierto tiempo, o simplemente al apagar y encender el router.

Para solucionar el problema he utilizado Dyndns, para ello hice lo siguiente:
1.-Me cree una cuenta en la página dyndns, y rellene los campos necesarios.

2.-Seguidamente me fui al correo para activar dicha cuenta.

3.-Una vez activada me loguee en la página y me fui a
+My Services
+Dynamic DNS hosts
+Add New Host
En IP Address nos indica la ip publica que tengo ahora mismo, la tendremos que poner en el cuadro correspondiente.
Por último "Add to cart" (No tendremos que pagar porque es gratuito)

4.-Me voy al router(comtrend) y me logueo, seguidamente me dirijo a:
+Advanced Setup
+DNS
+Dynamic DNS
+Add

Ahora entre en el panel de control de mi proveedor de dominios, en mi caso 1&1, y modifiqué lo siguiente:
5.-Seleccioné uno de mis dominios y pinché en la pestaña "DNS"-"Modificar DNS"

Seguidamente pinché en CNAME, y en Alias puse el nombre de la maquina que cree en dyndns.org(goku.dyndns.org)



Después hice lo mismo con los otros subdominios que tengo creados en mi red, y ya podemos apagar el router todas las veces que queramos, que nuestra página web seguirá estando accesible para todos.