domingo, 27 de julio de 2008

Erebus Project - Parte I

Configuración de red virtual de laboratorio con VMWARE.

Este tutorial, no será corto. De hecho, seguramente sea el más largo que pondré aquí.

Lo que vamos a crear, es todo un entramado de red simulado con VMWARE, para que podáis llevar a cabo vuestras pruebas como si estuvieseis delante de una red real (con sus routers, sus switches, sus hosts...).

No os negaré, que esto requiere un PC con unas características algo elevadas. Yo os propongo
una configuración (la que he usado) que me ha dado resultados aceptables:

Dual Core a 2,15Ghz,
2Gb de RAM


Las características de las máquinas virtuales serán:

4Gb/host virtual
1Gb/router virtual
64Mb RAM / ho
st virtual.

Y el sistema operativo usado, será:

Debian 4.0

[Doy por hecho que todos sabeis instalar una máquina con VMWare, hay cantidad de tutoriales :)]

-----------

1. Primeros pasos:
Para empezar, trabajaremos con únicamente 3 máquinas virtuales (una hará de router y las otras de host).

Las configuraciones serán las siguientes (las 3 máquinas en modo NAT):

usaremos los siguientes scripts para la configuración de las máquinas virtuales:

'core.infusos.com':

echo "core.infusos.com" > /etc/hostname
ifconfig ethX:0 10.10.10.1 netmask 255.255.255.0


'node1.infusos.com':

echo "node1.infusos.com" > /etc/hostname
ifconfig ethX:1: 10.10.10.100 netmask 255.255.255.0


'node2.infusos.com':

echo "node2.infusos.com" > /etc/hostname
ifconfig ethX:2 10.10.10.200 netmask 255.255.255.0


2. Configurando la red:

Nos iremos a 'core.infusos.com' y ejecutaremos el siguiente script (como root):

#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F

iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 10.10.10.0/0 -d 0.0.0.0/0 -j MASQUERADE

iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT


3. Reconfiguramos las reglas de enrutado de los nodos.

'node1.infusos.com'

route del default route del -net X.X.X.X netmask 255.255.255.0

'node2.infusos.com'
route del default route del -net X.X.X.X netmask 255.255.255.0

4. Creamos las reglas apropiadas para nuestros nodos.

route add default gw 10.10.10.1
route add -net 10.10.10.0 netmask 255.255.255.0 gw 10.10.10.1

La segunda regla se asegura de que 'nodo1' y 'nodo2' no se vean entre ellos directamente, sino es pasando por 'core'. Si no...pierde la gracia xD.

5. Resumen:

Si todo ha ido bien, [que debería] ya podemos iniciar las pruebas de configuración antes de pasar a la segunda parte.

6. Probando los resultados.

Nos situamos en 'core.infusos.com' y hacemos:

core:/# route

Aparecerá:

Por defecto, el 'core.infusos.com' saldrá por 192.168.111.2 (la IP "pública" de la red virtual).
Todo lo que vaya a 192.168.111.0 se enrutará por 'core.infusos.com' (por si mismo).
Todo lo que vaya a 10.10.10.0 también se enrutará por si mismo. (recordemos que virtualmente, 'node1.infusos.com' y 'node2.infusos.com' están conectados físicamente a 'core.infusos.com')

Nos situamos en 'node1.infusos.com' y hacemos:

node1:/# route

Aparecerá:

Por defecto, saldrá por la IP 10.10.10.1 (La ip privada del 'core.infusos.com').
Todo lo que vaya a 10.10.10.0, pasará FORZOSAMENTE por 'core.infusos.com'
De esta manera, nos aseguramos que 'node1.infusos.com' y 'node2.infusos.com' no se vean directamente entre ellos.

Nos situamos ahora en 'node2.infusos.com' y hacemos:
node2:/# route

Aparecerá:


Ahora, volvemos a 'core.infusos.com' y hacemos la prueba de ping a los dos nodos y un traceroute a los dos nodos.

core:/# ping 10.10.10.100
core:/# ping 10.10.10.200

core:/# traceroute 10.10.10.100

core:/# traceroute 10.10.10.200


Podemos comprobar, como las reglas de route funcionan correctamente. Al hacer un ping a uno de los dos nodos, llegamos perfectamente. Además, si hacemos un traceroute a los dos nodos, vemos que solo hay un salto (tal y como habíamos simulado en la conexión "real").

Nos situamos en 'node1.infusos.com' y hacemos las pruebas de ping y de traceroute.

node1:/# ping 10.10.10.200
node1:/# ping 10.10.10.1

node1:/# traceroute 10.10.10.200

node1:/# traceroute 10.10.10.1



Si hacemos ping a 10.10.10.200 vemos que responde perfectamente (tenemos connectividad con 'node2.infusos.com').
Si hacemos un traceroute a 'core.infusos.com' vemos que tan sólo hay un salto (estamos connectados a él).
Si hacemos un traceroute a 'node2.infusos.com' vemos que tenemos 2 saltos: hacia 'core.infusos.com' y de ahí al nodo2.

node2:/# ping 10.10.10.100
node2:/# ping 10.10.10.1

node2:/# traceroute 10.10.10.100
node2:/# traceroute 10.10.10.1

Nos situamos en 'node2.infusos.com' y hacemos las pruebas de ping y de traceroute.



Si hacemos ping a 10.10.10.100 vemos que responde perfectamente (tenemos connectividad con 'node1.infusos.com').
Si hacemos un traceroute a 'core.infusos.com' vemos que tan sólo hay un salto (estamos connectados a él).
Si hacemos un traceroute a 'node1.infusos.com' vemos que tenemos 2 saltos: hacia 'core.infusos.com' y de ahí al nodo1.


7. Activando scripts por defecto:

Para activar los scripts cada vez que arrancamos el sistema, nos vamos a /etc/rc2.d/ y ponemos ahi un script con todos los pasos por host que hemos ido dando, y renombrándolo a S21-nodoX.infusos.com. Al arrancar cada máquina virtual, está se autoconfigurará por si sola. ;)

Hasta aquí, la parte 1 del manual.

8. Conclusiones:

Ahora, ya tenemos un escenario, con 3 maquinas virtuales. 2 de ellas, conectadas directamente a core.

Aquí, os dejo los scripts que yo he usado para la configuración de las 3 máquinas virtuales. Los copiais en /etc/rc2.d/ los renombráis tal y como he dicho antes, y reiniciais. Tendréis los 3 servidores totalmente configurados y funcionando ;).

script core.infusos.com
script node1.infusos.com
script node2.infusos.com

Saludos,

Dani.

Erebus Project

Erebus Project consiste en la creación de toda una red virtual, ejecutable desde cualquier PC que cumpla los requisitos técnicos aquí dispuestos, mediante el uso de máquinas virtuales con VMWare Server.

No es proyecto con fines lucrativos, sino totalmente educativo, que permitirá a aquellos que no tengan acceso a redes reales, practicar con todo aquello que siempre han deseado probar y nunca se atrevieron.

Iremos montando la red poco a poco. Las entregas de cada parte, espero que sean semanales (aunque pueden modificarse). Partiremos de instalaciones limpias de Debian 4.0 edición netinstall (para disminuir al mínimo los paquetes supérfluos de Linux y disminuir el tamaño de los ficheros VMK).

Por otro lado, yo intentaré subir las imágenes de cada uno de los componentes de la red, para que vosotros podáis bajarlas, copiarlas en vuestro disco duro y no tendréis problemas (aunque indicaré el método de configuración de éstas cuyo sistema os recomiendo, pues os evitáis tener que bajar ficheros de 500Mb y aprenderéis más).

Así pues...espero que tengamos suerte, y el proyecto se convierta algún día en algo serio.

Saludos,

Dani.