En esta práctica, exploraremos la creación de un escenario mediante la orquestación de OpenStack y, posteriormente, llevaremos a cabo el enrutamiento para asegurar la conectividad entre las distintas máquinas virtuales. Este ejercicio nos permitirá comprender y aplicar el uso de OpenStack para gestionar entornos virtuales, además de configurar la red de manera eficiente para facilitar la comunicación entre los diferentes dispositivos en el escenario.

Escenario a montar en OpenStack

Para poder montar nuestro escenario en OpenStack debido a la situación actual de las imágenes que hay disponibles , necesitaremos preparar una instancia la cual tenga habilitado el acceso por contraseña . Además si posteriormente a partir de una queremos configurar otra habilitar el acceso ssh por contraseña para este usuario .

Esta tendremos que crearla con el mismo flavour con las que generaremos el escenario para evitar errores .

Cuanto tengamos a punto nuestra instancia comprobaremos que puedes iniciar sesión desde horizon :

Ahora crearemos una instantánea :

Copiaremos el ID de las instantánea :

Y lo añadiremos al fichero :

Y lo desplegaremos :

Vemos que se ha creado correctamente :

Esquema gráfico de la configuración

El esquema quedaría de la siguiente manera :

Teniendo la siguiente relación de IPS :

MAQUINAIPINTERFAZ
PC110.0.100.144  ens3
R1-PC110.0.100.68  ens3
R1-R210.0.110.78  ens4
R2-R110.0.110.30  ens3
R2-PC210.0.120.191  ens4
PC210.0.120.203  ens3
R2-R310.0.130.146  ens5
R3-R210.0.130.36  ens3
R3-PC310.0.140.127  ens4
PC310.0.140.158  ens3

Tablas de enrutamiento

R1
10.0.100.0/24  0.0.0.0  ens3  
10.0.110.0/24  0.0.0.0  ens4  
10.0.120.0/24  10.0.110.30  ens4  
10.0.130.0/24  10.0.110.30  ens4  
10.0.140.0/24  10.0.110.30  ens4  
0.0.0.0/0  10.0.110.30  ens4  

*Las redes en las que estamos directamente conectados se crearan automáticamente las rutas.

R2
10.0.100.0/24  10.0.110.178  ens3  
10.0.110.0/24  0.0.0.0  ens3  
10.0.120.0/24  0.0.0.0  ens4  
10.0.130.0/24  0.0.0.0  ens5  
10.0.140.0/24  10.0.130.36  ens5  
0.0.0.0/0  10.0.130.36  ens5  

*Las redes en las que estamos directamente conectados se crearan automáticamente las rutas.

R3
10.0.100.0/24  10.0.130.146  ens3  
10.0.110.0/24  10.0.130.146  ens3  
10.0.120.0/24  10.0.130.146  ens3  
10.0.130.0/24  0.0.0.0  ens3  
10.0.140.0/24  0.0.0.0  ens4  
0.0.0.0/0  10.0.130.146  ens4  

Comandos de configuración de cada nodo

Router 1

Como es un router deberemos de activar el bit de forwarding para ello introduciremos el siguiente comando :

echo 1 > /proc/sys/net/ipv4/ip\_forward

Crearemos la tabla de enrutamiento :

Las rutas estáticas :

ip route add 10.0.100.0/24 via 0.0.0.0 dev ens3

La ruta por defecto:

ip route add default via 10.0.110.30 dev ens4

Nos quedaría así la tabla de enrutamiento :

PC1

Borraremos la ruta por defecto que exista en el dispositivo

Y añadiremos la nueva ruta

Router 2

Como es un router deberemos de activar el bit de forwarding para ello introduciremos el siguiente comando :

echo 1 > /proc/sys/net/ipv4/ip\_forward

Crearemos la tabla de enrutamiento :

Quedaría así :

PC2

Al igual que hicimos anteriormente eliminaremos la ruta por defecto que trae y la añadiremos la nueva :

Activaremos el bit de forwarding con el siguiente comando :

echo 1 > /proc/sys/net/ipv4/ip\_forward

Crearemos la tabla de enrutamiento para nuestro escenario :

La tabla de enrutamiento quedaría así :

PC3

Al igual que con los demás deberemos de cambiar la ruta por defecto por la ip del router a la que estamos conectado :

Resumen de configuración y aclaraciones

Para los routers

  1. Activar el bit de forwarding
  2. Crear las tablas de enrutamiento
  3. Modificar la ruta por defecto

Para los PCs

  1. Modificar la ruta por defecto

Lo de modificar la ruta por defecto , es debido a que no puedo modificar la configuración de las tarjetas de red por lo que no puedo modificar la puerta de enlace .

Por defecto al utilizar el script esta viene con la puerta de enlace X.X.X.1 sin embargo esta no coincide con la puerta de enlace de los clientes .

Para los routers debemos de modificarla también para indicar por donde mandaremos el trafico “por defecto”.

Si queremos hacer que el bit del forwarding se guarde permanentemente para que cuando reiniciemos el equipo este no vuelva a 0 :

–> Escribimos directamente en el archivo /etc/sysctl.conf:

Si queremos volcar en un archivo la configuración de las tablas de enrutamiento para tener una copia de seguridad de las mismas usamos :

Si queremos restaurar la copia :

Verificación de conectividad (ping) entre nodos

PC1

PC1 – PC2

PC1-PC3

PC2

PC2-PC1

PC2-PC3

PC3

PC3-PC1

PC3-PC2

Captura de tráfico en el router r2 o r3 mostrando tráfico entre h1 y h3.

Para hacer una captura de una determinada interfaz y guardarla en un archivo utilizaremos tcpdump:

tcpdump -i NOMBRE\_INTERFAZ -w NOMBRE\_ARCHIVO

Si queremos tener una salida al comando en lugar de guardar el archivo usaremos el parámetro -n: Aquí vemos como llegan los ICMP REQUEST de PC3 a PC1 y los ICMP REPLY DE PC1 a PC3

Además he capturado una petición y respuesta arp de PC3:

Bibliografía