domingo, 18 de mayo de 2008

Xen+Windows

Configuración del servidor dom0
Para ello debemos tener ya corriendo Xen (hypervisor) más detalles en mi antiguo blog rodria1 Es imprescindible tener un procesador INTEL VT o AMD Pacífica.
Para comprobar que nuestro procesador soporta tecnología de virtualización podremos verificarlo de las siguientes maneras.

# xm info | grep xen_caps
xen_caps : xen-3.0-x86_64 hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64

o

# cat /proc/cpuinfo

en la primera opción verificar si tenemso "hvm" y en la segunda verificar si tiene el flag vmx


Si podemos ver hvm en xen_caps entonces seguiremos con:

# apt-get install xen-ioemu-3.0.3-1

Configuración de la VM domU

Requeriremos de una imagen del CD de windows, y crear el disco para la VM

# dd if=/dev/cdrom0 of=w2k.iso

# lvcreate -L 10G -n w2k-dsk vg0

(si no tienes lvm entonces puedes usar dd)

# dd if=/dev/zero of=w2k-dsk.img bs=1M count 10000

Luego crearemos el archivo de configuración de la máquina virtual para windows.

# nano /etc/xen/w2k.cfg

#
# Archivo de configuración para Windows 2000
#
#

# Kernel y memoria
#
kernel = ‘/usr/lib/xen-default/boot/hvmloader’
builder = ‘hvm’
memory = ‘256′
#
# Disk device(s).
#
disk = [ 'phy:/dev/vg0/w2k-dsk,ioemu:hda,w', 'file:/root/w2k.iso,hdc:cdrom,r' ]
#
# Hostname
#
name = ‘w2k’

vcpus = 1

#
# Networking
#
dhcp = ‘dhcp’
vif = [ 'type=ioemu, mac=00:a1:b2:c3:e4:ff' ]
#
# Behaviour
#
on_poweroff = ‘destroy’
on_reboot = ‘restart’
on_crash = ‘restart’
# New stuff
device_model = ‘/usr/lib/xen-3.0.3-1/bin/qemu-dm’
boot = ‘d’
ne2000 = 1
acpi = 1
sdl = 0
vnc = 1
vncviewer = 0
nographic = 0

Lo nuevo en esta configuración son los parámetros :

boot = 'd' para que arranque por la unidad "d", la emulación de la tarjeta de red ne2000, activar ACPI y que nos permita conectarnos por VNC, con ello lograremos terminar la instalación.

Debemos editar el archivo de configuración de Xen para permitir la conexión de vnc desde otra máquina que no sea el localhost.

# nano /etc/xen/xend-config.sxp y cambiar la línea

(vnc-listen '127.0.0.1') por (vnc-listen '0.0.0.0')

Luego:

# /etc/init.d/xend restart (para que tome en cuenta los cambios)

Recordemos que VNC no está protegido por contraseña y cualquiera con acceso al servidor se podría conectar.

Instalación del S.O.
El primer paso será arrancar la nueva máquina virtual:

# xm create windows.cfg

Desde nuestro PC podremos conecarnos por VNC al domU y continuar con la instalación de w2k. Ejemplo:

# vncviewer xen-w2k (suponiendo que nuestro server se llama xen-w2k)

Ahora podremos continuar la instalación como la conocemos normalmente en una máquina sola :)
Una vez terminada la instalación, configuramos todo lo necesario para poder conectarnos por RDP con el usuario permitido. y desactivaremos la opción del vnc en la configuración de la VM

# nano /etc/xen/w2k.cnf

vnc = 0
nographic = 1

# nano /etc/xen/xend-config.sxp

(vnc-listen '127.0.0.1')

y volvemos a reiniciar el hypervisor

/etc/init.d/xend restart


martes, 6 de mayo de 2008

Debian+ddclient+whatismyip.org

Uno de los problemas que tenemos cuando tenemos una dirección IP dinámica que nos entrega nuestro proveedor de Internet (ISP) es que en el momento más crítico (ley de Morphy) este proveedor nos cambia la dirección IP y morimos en el intento de conectarnos.

Bueno, existen servidores de DNS Dinámico como DynDNS, ZoneEdit, No-IP, entre muchos otros que nos facilitan la tarea de configurarnos un nombre a nuestra dirección IP y que estos a su vez se encarguen de actualizar la dirección al nombre asociado para que mantengamos el nombre con cualesquiera de las direcciones que nos entregue nuestro ISP. El problema de esto es que necesitamos tener un programa que esté informándole a estos servidores de nombres los cambios de nuestra dirección IP.

En Debian tenemos una estupenda alternativa para hacer esto y es lo que les explicaré a continuación.

Requisitos:

  1. Tener una cuenta en uno de estos servidores de nombres dinámicos configurada con el nombre del host que quieras tener. Por ejemplo mi_host.dyndns.org. No es parte de este HowTo el como crear ni configurar una cuenta de dyndns.org no-ip.com, zoneedit.org o cualquier otro. Este manual no contempla explicar como crearse una cuenta en un servidor de DNS dinámico, y tampoco como crearse un hostname en él.
  2. Tener obviamente un sistema Linux, yo explicaré como usar ddclient con debian lenny.
  3. Conexión a Internet ;)

Lo primero será instalar ddclient en nuestro Debian.

# aptitude install ddclient (recuerde usar aptitude en lugar de apt)

Luego el sistema nos preguntará la información de la cuenta que creamos, en este caso en dyndns.org.

  • Proveedor de Servicio: www.dyndns.org
  • Nombre Completo del Dominio: mi_host.dyndns.org
  • Nombre de Usuario: mi_usuario_en_dyndns.org (el login en www.dyndns.org)
  • Contraseña para el Servicio: mi_contraseña_en_dyndns.org
  • Interfaz Usada por el Servicio DNS Dinámico: eth0
Para este caso, la eth0 sería la que está conectada a la WAN, si su WAN está en una interface diferente, especifiquela ahí.
  • Ejecutar ddclient: Si
  • Ejecutar ddclient como demonio: Si
  • Ejecutar cada: 3m

Mostraré un ejemplo de como quedaría el archivo de condiguración de ddclient.

#cat /etc/ddclient.conf

pid=/var/run/ddclient.pid
protocol=dyndns2
use=if, if=eth0
server=members.dyndns.org
login=milogin
password='mipasswd'
mihost.dyndns.org,mihost2.dyndns.org

Nótese que en este ejemplo he configurado dos host con diferentes nombres que he creado en mi cuenta dyndns.

Ahora bien, un problema que tenemos cuando estamos detrás de un proxy o nat es que nuestra dirección IP de la WAN puede ser una dirección privada al estilo de 192.168.0.1, lo cual no nos sirve de nada, ya que use=if tomará esa IP privada 192.168.0.1 y es la que registrará en el servidor dyndns. para ello debemos modificar la linea 'use=if, if=eth0' por algo como esto.

use=web, web='http://whatismyip.org' ó
'http://www.whatismyip.com/automation/n09230945.asp'

Con esto solucionamos ese problema, y les pasará si por ejemplo están derás de un "router" lynksys por dar una idea....

Espero que le sirva a algún novato.

Saludos