¿Qué es OpenStack?

OpenStack es un software de código abierto que permite la creación de infraestructuras de nube privada. Es decir, permite crear una nube privada en la que los usuarios pueden crear máquinas virtuales, almacenar datos, etc.

En esta entrada vamos a realizar una serie de pequeños talleres de configuración y gestión.

Configuración del cliente VPN

Para poder acceder a la red local desde el exterior, existe una red privada configurada con OpenVPN que utiliza certificados x509 para autenticar los usuarios y el servidor.

Para ello, vamos a conectarnos desde mi red local a la VPN del centro. Para ello, vamos a utilizar el cliente OpenVPN.

Lo único que vamos a necesitar son dos cosas:

  • Disponer de un certificado x509 para autenticarnos en el servidor.
  • Configurar el cliente OpenVPN con la configuración del servidor.

Pasos a seguir

Lo primero que deberemos hacer es crear una solicitud de firma del certificado.

¿Cómo? Pues muy sencillo, vamos a utilizar el comando openssl para generar una solicitud de firma de certificado.

maria@maria-debian:~ openssl genrsa 4096 > /etc/ssl/private/[nombredemimaquina].key

Una vez generado el certificado, vamos a generar la solicitud de firma.

maria@maria-debian:~ openssl req -new -key /etc/ssl/private/[nombredemimaquina].key -out /root/[nombredemimaquina].csr

Nos pedirá una serie de valores para identificar al certificado, que tendremos que rellenar correctamente y son:

  C=ES
  ST=Sevilla
  L=Dos Hermanas
  O=IES Gonzalo Nazareno
  OU=Informatica
  CN=[Nombre del equipo] (debe ser único)

Una vez generado el certificado, lo tendremos que enviar al administrador de la red para que nos lo firme y nos lo envíe, (en este caso, el profesor del centro).

Tras haber recibido el certificado, lo tendremos que instalar en el equipo. Para ello tendremos que tener instalado el cliente OpenVPN.

Una vez nstalado, debemos crear un fichero con extensión .conf en el directorio /etc/openvpn/ con el siguiente contenido:

  dev tun
  remote sputnik.gonzalonazareno.org
  ifconfig 172.23.0.0 255.255.255.0
  pull
  proto tcp-client
  tls-client
  # remote-cert-tls server
  ca /etc/ssl/certs/gonzalonazareno.crt <- Cambiar por la ruta al certificado de la CA Gonzalo Nazareno (el mismo que utilizamos para la moodle, redmine, etc.)
  cert /etc/openvpn/mut-albertomolina.crt <- Cambiar por la ruta al certificado CRT firmado que nos han devuelto
  key /etc/ssl/private/mut.key <- Cambiar por la ruta a la clave privada, aunque en ese directorio es donde debe estar y con permisos 600
  comp-lzo
  keepalive 10 60
  log /var/log/openvpn-sputnik.log
  verb 1

Reiniciamos el servicio y comprobaremos que se haya creado correctamente el tunel y que la regla de encaminamiento adicional para acceder a los equipos que pertenecen a la red local del centro se haya añadido correctamente.

maria@maria-debian:~ sudo systemctl restart
maria@maria-debian:~ ip route

También podremos comprobarlo a través de los mensajes del fichero /var/log/openvpn-sputnik.log.

Nota 1: Para que el servicio no se inicie de forma automática, podemos deshabilitarlo con el comando systemctl disable openvpn.service.

Nota 2: No se nos debe olvidar actualizar el fichero /etc/hosts para que podamos acceder a los equipos de la red local del centro por su nombre.

Comprobación de funcionamiento

Desde mi red local de casa, y una vez configurada la IP del interfaz tun0, podemos comprobar que podemos acceder a los equipos de la red local del centro.

Gestión de redes en OpenStack

En esta sección vamos a ver cómo crear una red en OpenStack. Los siguientes pasos los vamos hacer con el cliente de OpenStack, y entraremos en Horizon para comprobar que, efectivamente, se ha creado correctamente.

  1. Vamos a crear una red llamada red-externa y una subred con DHCP, DNS el 192.168.202.2 y direccionamiento 192.168.0.0/24. Crearemos también un router y conectaremos ambas redes a este router.

    openstack network create red-externa
    
    +---------------------------+--------------------------------------+
    | Field                     | Value                                |
    +---------------------------+--------------------------------------+
    | admin_state_up            | UP                                   |
    | availability_zone_hints   |                                      |
    | availability_zones        |                                      |
    | created_at                | 2022-12-04T20:29:15Z                 |
    | description               |                                      |
    | dns_domain                | None                                 |
    | id                        | 50f75d96-bc22-4ce6-aab5-fbfac98032cc |
    | ipv4_address_scope        | None                                 |
    | ipv6_address_scope        | None                                 |
    | is_default                | False                                |
    | is_vlan_transparent       | None                                 |
    | mtu                       | 1450                                 |
    | name                      | red-externa                          |
    | port_security_enabled     | True                                 |
    | project_id                | 2aac00e135b84d868bd4cd6bca13cc5a     |
    | provider:network_type     | None                                 |
    | provider:physical_network | None                                 |
    | provider:segmentation_id  | None                                 |
    | qos_policy_id             | None                                 |
    | revision_number           | 1                                    |
    | router:external           | Internal                             |
    | segments                  | None                                 |
    | shared                    | False                                |
    | status                    | ACTIVE                               |
    | subnets                   |                                      |
    | tags                      |                                      |
    | tenant_id                 | 2aac00e135b84d868bd4cd6bca13cc5a     |
    | updated_at                | 2022-12-04T20:29:15Z                 |
    +---------------------------+--------------------------------------+
    
    openstack subnet create --network red-externa --subnet-range 192.168.0.0/24 --dhcp --gateway 192.168.0.1 --dns-nameserver 192.168.202.2 subred-externa
    
    +----------------------+--------------------------------------+
    | Field                | Value                                |
    +----------------------+--------------------------------------+
    | allocation_pools     | 192.168.0.2-192.168.0.254            |
    | cidr                 | 192.168.0.0/24                       |
    | created_at           | 2022-12-04T20:30:16Z                 |
    | description          |                                      |
    | dns_nameservers      | 192.168.202.2                        |
    | dns_publish_fixed_ip | None                                 |
    | enable_dhcp          | True                                 |
    | gateway_ip           | 192.168.0.1                          |
    | host_routes          |                                      |
    | id                   | 77b06357-36d5-4aac-a06d-d048964939d5 |
    | ip_version           | 4                                    |
    | ipv6_address_mode    | None                                 |
    | ipv6_ra_mode         | None                                 |
    | name                 | subred-externa                       |
    | network_id           | 50f75d96-bc22-4ce6-aab5-fbfac98032cc |
    | project_id           | 2aac00e135b84d868bd4cd6bca13cc5a     |
    | revision_number      | 0                                    |
    | segment_id           | None                                 |
    | service_types        |                                      |
    | subnetpool_id        | None                                 |
    | tags                 |                                      |
    | tenant_id            | 2aac00e135b84d868bd4cd6bca13cc5a     |
    | updated_at           | 2022-12-04T20:30:16Z                 |
    +----------------------+--------------------------------------+
    

Crearemos también un router y conectaremos ambas redes a este router.

openstack router create router-externo
+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| admin_state_up          | UP                                   |
| availability_zone_hints |                                      |
| availability_zones      |                                      |
| created_at              | 2022-12-04T20:31:24Z                 |
| description             |                                      |
| enable_ndp_proxy        | None                                 |
| external_gateway_info   | null                                 |
| flavor_id               | None                                 |
| id                      | 430c756a-e261-4aee-bbe1-dbcc5982fa4b |
| name                    | router-externo                       |
| project_id              | 2aac00e135b84d868bd4cd6bca13cc5a     |
| revision_number         | 1                                    |
| routes                  |                                      |
| status                  | ACTIVE                               |
| tags                    |                                      |
| tenant_id               | 2aac00e135b84d868bd4cd6bca13cc5a     |
| updated_at              | 2022-12-04T20:31:24Z                 |
+-------------------------+--------------------------------------+
openstack router add subnet router-externo subred-externa
openstack router set router-externo --external-gateway ext-net
  1. Crearemos una instancia llamada maquina-routerque conectaremos a la nueva red y donde comprobaremos que la IP fija está en el redireccionamiento de la subred.

    • Primero creamos el puerto con la IP fija:

      openstack port create --network red-externa --fixed-ip ip-address=192.168.0.10 puerto-externo
      
      +-------------------------+-----------------------------------------------------------------------------+
      | Field                   | Value                                                                       |
      +-------------------------+-----------------------------------------------------------------------------+
      | admin_state_up          | UP                                                                          |
      | allowed_address_pairs   |                                                                             |
      | binding_host_id         | None                                                                        |
      | binding_profile         | None                                                                        |
      | binding_vif_details     | None                                                                        |
      | binding_vif_type        | None                                                                        |
      | binding_vnic_type       | normal                                                                      |
      | created_at              | 2022-12-04T20:33:10Z                                                        |
      | data_plane_status       | None                                                                        |
      | description             |                                                                             |
      | device_id               |                                                                             |
      | device_owner            |                                                                             |
      | device_profile          | None                                                                        |
      | dns_assignment          | None                                                                        |
      | dns_domain              | None                                                                        |
      | dns_name                | None                                                                        |
      | extra_dhcp_opts         |                                                                             |
      | fixed_ips               | ip_address='192.168.0.10', subnet_id='77b06357-36d5-4aac-a06d-d048964939d5' |
      | id                      | 14cac4e6-0a06-44a2-9cd0-d0285c19981c                                        |
      | ip_allocation           | None                                                                        |
      | mac_address             | fa:16:3e:a8:c3:e0                                                           |
      | name                    | puerto-externo                                                              |
      | network_id              | 50f75d96-bc22-4ce6-aab5-fbfac98032cc                                        |
      | numa_affinity_policy    | None                                                                        |
      | port_security_enabled   | True                                                                        |
      | project_id              | 2aac00e135b84d868bd4cd6bca13cc5a                                            |
      | propagate_uplink_status | None                                                                        |
      | qos_network_policy_id   | None                                                                        |
      | qos_policy_id           | None                                                                        |
      | resource_request        | None                                                                        |
      | revision_number         | 1                                                                           |
      | security_group_ids      | ea2781f0-7c84-46b5-873c-a4986b14f232                                        |
      | status                  | DOWN                                                                        |
      | tags                    |                                                                             |
      | tenant_id               | 2aac00e135b84d868bd4cd6bca13cc5a                                            |
      | trunk_details           | None                                                                        |
      | updated_at              | 2022-12-04T20:33:10Z                                                        |
      +-------------------------+-----------------------------------------------------------------------------+
      
    • Creamos la instancia y conectamos el puerto creado anteriormente:

      openstack server create --flavor m1.mini \
      --image "Debian 11 Bullseye" \
      --security-group default \
      --key-name pass \
      --port puerto-externo \
      maquina-router
      
      +-----------------------------+------------------------------------------------------------------+
      | Field                       | Value                                                            |
      +-----------------------------+------------------------------------------------------------------+
      | OS-DCF:diskConfig           | MANUAL                                                           |
      | OS-EXT-AZ:availability_zone |                                                                  |
      | OS-EXT-STS:power_state      | NOSTATE                                                          |
      | OS-EXT-STS:task_state       | scheduling                                                       |
      | OS-EXT-STS:vm_state         | building                                                         |
      | OS-SRV-USG:launched_at      | None                                                             |
      | OS-SRV-USG:terminated_at    | None                                                             |
      | accessIPv4                  |                                                                  |
      | accessIPv6                  |                                                                  |
      | addresses                   |                                                                  |
      | adminPass                   | dBkgyGGPNFd8                                                     |
      | config_drive                |                                                                  |
      | created                     | 2022-12-04T20:34:38Z                                             |
      | flavor                      | m1.mini (3)                                                      |
      | hostId                      |                                                                  |
      | id                          | 109737f8-3b6f-4af8-93dd-f6e53977562e                             |
      | image                       | Debian 11 Bullseye (6d992898-7e4f-44b9-a681-6dcf32d24a1f)        |
      | key_name                    | pass                                                             |
      | name                        | maquina-router                                                   |
      | progress                    | 0                                                                |
      | project_id                  | 2aac00e135b84d868bd4cd6bca13cc5a                                 |
      | properties                  |                                                                  |
      | security_groups             | name='ea2781f0-7c84-46b5-873c-a4986b14f232'                      |
      | status                      | BUILD                                                            |
      | updated                     | 2022-12-04T20:34:38Z                                             |
      | user_id                     | 96a8e1784a38a07b78e6b0d2ac823603b2590a618dd18748ebd450bed2a376a9 |
      | volumes_attached            |                                                                  |
      +-----------------------------+------------------------------------------------------------------+
      
    • ¿Podremos aignarle una IP flotante?

      • Si, porque está diractamente conectada con la red externa.
      maria@maria-debian:~$ openstack floating ip create ext-net
      
      +---------------------+--------------------------------------+
      | Field               | Value                                |
      +---------------------+--------------------------------------+
      | created_at          | 2022-12-04T20:35:28Z                 |
      | description         |                                      |
      | dns_domain          | None                                 |
      | dns_name            | None                                 |
      | fixed_ip_address    | None                                 |
      | floating_ip_address | 172.22.201.223                       |
      | floating_network_id | 2ebd4d15-00e3-44c6-a9a7-aeebef5f6540 |
      | id                  | e7075044-807b-4a69-87df-efb96b237358 |
      | name                | 172.22.201.223                       |
      | port_details        | None                                 |
      | port_id             | None                                 |
      | project_id          | 2aac00e135b84d868bd4cd6bca13cc5a     |
      | qos_policy_id       | None                                 |
      | revision_number     | 0                                    |
      | router_id           | None                                 |
      | status              | DOWN                                 |
      | subnet_id           | None                                 |
      | tags                | []                                   |
      | tenant_id           | 2aac00e135b84d868bd4cd6bca13cc5a     |
      | updated_at          | 2022-12-04T20:35:28Z                 |
      +---------------------+--------------------------------------+
      
      openstack server add floating ip maquina-router 172.22.201.223
      
  2. Creamos una nueva red llamada red-interna con una subred con DHCP, DNS el 192.168.202.2 y direccionamiento 10.0.100.0/24.

    openstack network create red-interna
    
    +---------------------------+--------------------------------------+
    | Field                     | Value                                |
    +---------------------------+--------------------------------------+
    | admin_state_up            | UP                                   |
    | availability_zone_hints   |                                      |
    | availability_zones        |                                      |
    | created_at                | 2022-12-04T20:36:32Z                 |
    | description               |                                      |
    | dns_domain                | None                                 |
    | id                        | 883c8952-21e8-48a1-8cf0-0418e8e592d7 |
    | ipv4_address_scope        | None                                 |
    | ipv6_address_scope        | None                                 |
    | is_default                | False                                |
    | is_vlan_transparent       | None                                 |
    | mtu                       | 1450                                 |
    | name                      | red-interna                          |
    | port_security_enabled     | True                                 |
    | project_id                | 2aac00e135b84d868bd4cd6bca13cc5a     |
    | provider:network_type     | None                                 |
    | provider:physical_network | None                                 |
    | provider:segmentation_id  | None                                 |
    | qos_policy_id             | None                                 |
    | revision_number           | 1                                    |
    | router:external           | Internal                             |
    | segments                  | None                                 |
    | shared                    | False                                |
    | status                    | ACTIVE                               |
    | subnets                   |                                      |
    | tags                      |                                      |
    | tenant_id                 | 2aac00e135b84d868bd4cd6bca13cc5a     |
    | updated_at                | 2022-12-04T20:36:32Z                 |
    +---------------------------+--------------------------------------+
    
    openstack subnet create --network red-interna --subnet-range 10.0.100.0/24 --dhcp --gateway 10.0.100.1 --dns-nameserver 192.168.202.2 subred-interna
    
    +----------------------+--------------------------------------+
    | Field                | Value                                |
    +----------------------+--------------------------------------+
    | allocation_pools     | 10.0.100.2-10.0.100.254              |
    | cidr                 | 10.0.100.0/24                        |
    | created_at           | 2022-12-04T20:37:21Z                 |
    | description          |                                      |
    | dns_nameservers      | 192.168.202.2                        |
    | dns_publish_fixed_ip | None                                 |
    | enable_dhcp          | True                                 |
    | gateway_ip           | 10.0.100.1                           |
    | host_routes          |                                      |
    | id                   | 2b25eec7-cb6c-4fa8-a06e-651ab5e13f09 |
    | ip_version           | 4                                    |
    | ipv6_address_mode    | None                                 |
    | ipv6_ra_mode         | None                                 |
    | name                 | subred-interna                       |
    | network_id           | 883c8952-21e8-48a1-8cf0-0418e8e592d7 |
    | project_id           | 2aac00e135b84d868bd4cd6bca13cc5a     |
    | revision_number      | 0                                    |
    | segment_id           | None                                 |
    | service_types        |                                      |
    | subnetpool_id        | None                                 |
    | tags                 |                                      |
    | tenant_id            | 2aac00e135b84d868bd4cd6bca13cc5a     |
    | updated_at           | 2022-12-04T20:37:21Z                 |
    +----------------------+--------------------------------------+
    
  1. Lo siguiente que realizaremos será conectar la máquina-router a la nueva red y le asignamos la primera dirección: 10.0.100.1.

    openstack port create --network red-interna --fixed-ip ip-address=10.0.100.1 puerto-interno
    
    +-------------------------+---------------------------------------------------------------------------+
    | Field                   | Value                                                                     |
    +-------------------------+---------------------------------------------------------------------------+
    | admin_state_up          | UP                                                                        |
    | allowed_address_pairs   |                                                                           |
    | binding_host_id         | None                                                                      |
    | binding_profile         | None                                                                      |
    | binding_vif_details     | None                                                                      |
    | binding_vif_type        | None                                                                      |
    | binding_vnic_type       | normal                                                                    |
    | created_at              | 2022-12-04T20:38:34Z                                                      |
    | data_plane_status       | None                                                                      |
    | description             |                                                                           |
    | device_id               |                                                                           |
    | device_owner            |                                                                           |
    | device_profile          | None                                                                      |
    | dns_assignment          | None                                                                      |
    | dns_domain              | None                                                                      |
    | dns_name                | None                                                                      |
    | extra_dhcp_opts         |                                                                           |
    | fixed_ips               | ip_address='10.0.100.1', subnet_id='2b25eec7-cb6c-4fa8-a06e-651ab5e13f09' |
    | id                      | f795c9c0-3a3d-4b64-800e-8f1833716b38                                      |
    | ip_allocation           | None                                                                      |
    | mac_address             | fa:16:3e💿a7:50                                                         |
    | name                    | puerto-interno                                                            |
    | network_id              | 883c8952-21e8-48a1-8cf0-0418e8e592d7                                      |
    | numa_affinity_policy    | None                                                                      |
    | port_security_enabled   | True                                                                      |
    | project_id              | 2aac00e135b84d868bd4cd6bca13cc5a                                          |
    | propagate_uplink_status | None                                                                      |
    | qos_network_policy_id   | None                                                                      |
    | qos_policy_id           | None                                                                      |
    | resource_request        | None                                                                      |
    | revision_number         | 1                                                                         |
    | security_group_ids      | ea2781f0-7c84-46b5-873c-a4986b14f232                                      |
    | status                  | DOWN                                                                      |
    | tags                    |                                                                           |
    | tenant_id               | 2aac00e135b84d868bd4cd6bca13cc5a                                          |
    | trunk_details           | None                                                                      |
    | updated_at              | 2022-12-04T20:38:34Z                                                      |
    +-------------------------+---------------------------------------------------------------------------+
    
    openstack server add port maquina-router puerto-interno
    
  2. Creamos una nueva instancia llamada maquina-cliente y la conectamos a la red que hemos llamado red-interna. Usando los puertos de red, le asignaremos la IP 10.0.100.200 y comprobamos si su puerta de enlace es la máquina-router.

    openstack port create --network red-interna --fixed-ip ip-address=10.0.100.200 puerto-cliente
    
    +-------------------------+-----------------------------------------------------------------------------+
    | Field                   | Value                                                                       |
    +-------------------------+-----------------------------------------------------------------------------+
    | admin_state_up          | UP                                                                          |
    | allowed_address_pairs   |                                                                             |
    | binding_host_id         | None                                                                        |
    | binding_profile         | None                                                                        |
    | binding_vif_details     | None                                                                        |
    | binding_vif_type        | None                                                                        |
    | binding_vnic_type       | normal                                                                      |
    | created_at              | 2022-12-04T20:39:42Z                                                        |
    | data_plane_status       | None                                                                        |
    | description             |                                                                             |
    | device_id               |                                                                             |
    | device_owner            |                                                                             |
    | device_profile          | None                                                                        |
    | dns_assignment          | None                                                                        |
    | dns_domain              | None                                                                        |
    | dns_name                | None                                                                        |
    | extra_dhcp_opts         |                                                                             |
    | fixed_ips               | ip_address='10.0.100.200', subnet_id='2b25eec7-cb6c-4fa8-a06e-651ab5e13f09' |
    | id                      | f790d187-3a17-4eb6-ac68-0a93275927b0                                        |
    | ip_allocation           | None                                                                        |
    | mac_address             | fa:16:3e:a8:d9:6a                                                           |
    | name                    | puerto-cliente                                                              |
    | network_id              | 883c8952-21e8-48a1-8cf0-0418e8e592d7                                        |
    | numa_affinity_policy    | None                                                                        |
    | port_security_enabled   | True                                                                        |
    | project_id              | 2aac00e135b84d868bd4cd6bca13cc5a                                            |
    | propagate_uplink_status | None                                                                        |
    | qos_network_policy_id   | None                                                                        |
    | qos_policy_id           | None                                                                        |
    | resource_request        | None                                                                        |
    | revision_number         | 1                                                                           |
    | security_group_ids      | ea2781f0-7c84-46b5-873c-a4986b14f232                                        |
    | status                  | DOWN                                                                        |
    | tags                    |                                                                             |
    | tenant_id               | 2aac00e135b84d868bd4cd6bca13cc5a                                            |
    | trunk_details           | None                                                                        |
    | updated_at              | 2022-12-04T20:39:42Z                                                        |
    +-------------------------+-----------------------------------------------------------------------------+
    
    openstack server create --flavor m1.mini \
    --image "Debian 11 Bullseye" \
    --key-name pass \
    --port puerto-cliente \
    maquina-cliente
    
    +-----------------------------+------------------------------------------------------------------+
    | Field                       | Value                                                            |
    +-----------------------------+------------------------------------------------------------------+
    | OS-DCF:diskConfig           | MANUAL                                                           |
    | OS-EXT-AZ:availability_zone |                                                                  |
    | OS-EXT-STS:power_state      | NOSTATE                                                          |
    | OS-EXT-STS:task_state       | scheduling                                                       |
    | OS-EXT-STS:vm_state         | building                                                         |
    | OS-SRV-USG:launched_at      | None                                                             |
    | OS-SRV-USG:terminated_at    | None                                                             |
    | accessIPv4                  |                                                                  |
    | accessIPv6                  |                                                                  |
    | addresses                   |                                                                  |
    | adminPass                   | 24fYKvf2iM5g                                                     |
    | config_drive                |                                                                  |
    | created                     | 2022-12-04T20:40:48Z                                             |
    | flavor                      | m1.mini (3)                                                      |
    | hostId                      |                                                                  |
    | id                          | ca52b7d4-9bb9-4133-98d4-82aa8300cf40                             |
    | image                       | Debian 11 Bullseye (6d992898-7e4f-44b9-a681-6dcf32d24a1f)        |
    | key_name                    | pass                                                             |
    | name                        | maquina-cliente                                                  |
    | progress                    | 0                                                                |
    | project_id                  | 2aac00e135b84d868bd4cd6bca13cc5a                                 |
    | properties                  |                                                                  |
    | security_groups             | name='default'                                                   |
    | status                      | BUILD                                                            |
    | updated                     | 2022-12-04T20:40:48Z                                             |
    | user_id                     | 96a8e1784a38a07b78e6b0d2ac823603b2590a618dd18748ebd450bed2a376a9 |
    | volumes_attached            |                                                                  |
    +-----------------------------+------------------------------------------------------------------+
    
    • ¿Podremos assignarle a esta instancia una IP flotante?¿Por qué?
      • No, porque no está conectada directamente con la red externa.
  3. Ya montado todo este escenario, vamos a configurar la máquina-routerpara que haga de router nat. Sin embargo, las restricciones y la seguridad del cortafuegos que tenemos configurado en cada una de las intrefaces de las instancias no van a permitir que funcione de forma adecuada. Por lo tanto, desactiva la seguridad de la interfaz de maquina-router y maquina-cliente conectadas a la red-interna.

    --- maquina-router ---
    openstack server remove security group maquina-router default
    openstack port set --disable-port-security puerto-externo
    openstack port set --disable-port-security puerto-interno
    
    --- maquina-cliente ---
    openstack server remove security group maquina-cliente default
    openstack port set --disable-port-security puerto-cliente
    
    • Nos conectamos a la máquina-cliente a través de la máquina router usando ssh -AJ
    ssh -AJ debian@172.22.201.223 debian@10.0.100.200
    
  1. Configuramos la instancia maquina-router para que funcione como router-nat. Comprueba que el cliente tiene acceso a internet. Instala un servidor web en el cliente.

    • Nos conectamos a la máquina-router y la configuramos de la siguiente manera:

      ---Nos conectamos---
      ssh debian@172.22.200.229
      
    • Instalamos iptables

      sudo su
      apt install iptables
      
    • Configuramos el bit de forwarding

      echo 1 > /proc/sys/net/ipv4/ip_forward
      
    • Configuramos las reglas de iptables

      iptables -t nat -A POSTROUTING -s 10.0.100.0/24 -o ens3 -j SNAT --to 192.168.0.10
      iptables -t nat -A PREROUTING -p tcp --dport 80 -i ens3 -j DNAT --to 10.0.100.200:80
      
      root@maquina-router:/home/debian# sudo iptables -t nat -L -n -v
      Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
       pkts bytes target     prot opt in     out     source               destination         
          0     0 DNAT       tcp  --  ens3   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 to:10.0.100.200:80
      
      Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
       pkts bytes target     prot opt in     out     source               destination         
      
      Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
       pkts bytes target     prot opt in     out     source               destination         
      
      Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
       pkts bytes target     prot opt in     out     source               destination         
          0     0 SNAT       all  --  *      ens3    10.0.100.0/24        0.0.0.0/0            to:192.168.0.10
      
  2. Comprobamos del acceso al servidor web de la maquina-cliente desde el exterior.

    ssh -AJ debian@ip debian@10.0.100.200
    ping -c 5 8.8.8.8
    
  • Instalamos apache2

    apt update
    apt install apache2
    
    <html>
      <head>
        <title>TALLER 2</title>
      </head>
      <body>
        <h1>Gestión de redes en OpenStack</h1>
      </body>
    </html>
    
  • Accedemos desde el navegador a la IP de la máquina-router

EXTRA. Comprobación de la creación de las redes.

  • Listado de routers
  • Listado de redes
  • Listado de subredes