Enrutamiento en OpenStack
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 :
MAQUINA | IP | INTERFAZ |
---|---|---|
PC1 | 10.0.100.144 | ens3 |
R1-PC1 | 10.0.100.68 | ens3 |
R1-R2 | 10.0.110.78 | ens4 |
R2-R1 | 10.0.110.30 | ens3 |
R2-PC2 | 10.0.120.191 | ens4 |
PC2 | 10.0.120.203 | ens3 |
R2-R3 | 10.0.130.146 | ens5 |
R3-R2 | 10.0.130.36 | ens3 |
R3-PC3 | 10.0.140.127 | ens4 |
PC3 | 10.0.140.158 | ens3 |
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
- Activar el bit de forwarding
- Crear las tablas de enrutamiento
- Modificar la ruta por defecto
Para los PCs
- 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: