Thanks to Elio's help, we have found a Work Around for the External configuration. Here are the steps: Note: Avoid to use m1.tiny flavor, this flavor isn't working properly 1.- Follow the steps described here to set up a Duplex Configuration: https://wiki.openstack.org/w/index.php?title=StarlingX/Containers/InstallationOnStandardStorage&oldid=171102 2.- Login into each one of the computes and create an SSH Keypair: ssh-keygen -b 4096 with no passphrase, and no password, just the simple version (we haven't tried with passphrase or password). 3.- Copy the file located at each one of your computes at ~/.ssh/id_rsa.pub to your controller-0 (or the active one from where you will launch your VMs) 4.- Create a Keypair in your controller-0 (or the active one), using each one of the files that you already copied from your controllers, like: controller-0:~# openstack keypair create --private-key /home/sysadmin/id_rsa_compute_0.pub richo_key_c0 +-------------+-------------------------------------------------+ | Field | Value | +-------------+-------------------------------------------------+ | fingerprint | c8:01:93:a5:4b:a6:ea:c5:2e:6e:d1:31:59:a5:39:d0 | | name | richo_key_c0 | | user_id | 76813b4fa2bd497d9c3069487993d51e | +-------------+-------------------------------------------------+ controller-0:~# openstack keypair create --private-key /home/sysadmin/id_rsa_compute_1.pub richo_key_c1 +-------------+-------------------------------------------------+ | Field | Value | +-------------+-------------------------------------------------+ | fingerprint | 65:e7:c2:f5:a9:71:e9:ca:38:4e:4f:7e:0b:fc:ae:b4 | | name | richo_key_c1 | | user_id | 76813b4fa2bd497d9c3069487993d51e | +-------------+-------------------------------------------------+ 5.- Add the following property to the flavor that you are going to use to create VMs. Use any flavor different that m1.tiny: openstack flavor list openstack flavor show openstack flavor set --property hw:mem_page_size=large 6.- Create an image openstack mage create --container-format bare --disk-format qcow2 --file cirros-0.4.0-x86_64-disk.img cirros 7.- Create a security group openstack security group create security1 openstack security group rule create --ingress --protocol icmp --remote-ip 0.0.0.0/0 security1 openstack security group rule create --ingress --protocol tcp --remote-ip 0.0.0.0/0 security1 openstack security group rule create --ingress --protocol udp --remote-ip 0.0.0.0/0 security1 8.- Create a VM controller-0:~# openstack server create --image cirros --flavor m1.tiny --network public-net0 --security-group security1 --key-name richo_key_c0 richo +-------------------------------------+------------------------------------------------+ | Field | Value | +-------------------------------------+------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | | | OS-EXT-SRV-ATTR:host | None | | OS-EXT-SRV-ATTR:hypervisor_hostname | None | | OS-EXT-SRV-ATTR:instance_name | | | 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 | MzpVfzsqp74F | | config_drive | | | created | 2019-10-23T14:55:45Z | | flavor | m1.tiny (79699db2-853b-424f-82b0-58ed06ff8274) | | hostId | | | id | a6cfa75a-cfa9-4df7-aa36-6e714b37d8a3 | | image | cirros (e7a08394-cfaa-4db4-985a-3d53200470db) | | key_name | richo_key_c0 | | name | richo | | progress | 0 | | project_id | 712eab2e15db4571973e454d6f3f5d7f | | properties | | | security_groups | name='87f7a838-8ae7-458e-89f7-416ec937e944' | | status | BUILD | | updated | 2019-10-23T14:55:45Z | | user_id | 76813b4fa2bd497d9c3069487993d51e | | volumes_attached | | +-------------------------------------+------------------------------------------------+ 9.- As in this case we used the SSH Key from compute-0, you have to ensure that the VM that you launched live in such compute, if not, just migrate it to the proper one. 11.- Inside compute-0, we executed the `ip netns` command to get the NAMESPACE, and be able to SSH / PING / SCP to the running VM. compute-0:~$ ip netns qrouter-aaa24511-b6e7-416a-aa99-a50c987d7039 (id: 2) qdhcp-5a7ee53d-0bce-43c3-9d2c-9a2af04e3f25 (id: 1) qdhcp-5a51d907-493d-4b9d-b7a6-60de0c1806ce (id: 0) compute-0:~$ sudo ip netns exec qdhcp-5a51d907-493d-4b9d-b7a6-60de0c1806ce bash Password: compute-0:/home/sysadmin# ping 192.168.101.117 PING 192.168.101.117 (192.168.101.117) 56(84) bytes of data. 64 bytes from 192.168.101.117: icmp_seq=1 ttl=64 time=1.12 ms 64 bytes from 192.168.101.117: icmp_seq=2 ttl=64 time=0.206 ms 64 bytes from 192.168.101.117: icmp_seq=3 ttl=64 time=0.464 ms 64 bytes from 192.168.101.117: icmp_seq=4 ttl=64 time=0.807 ms ^C --- 192.168.101.117 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3001ms rtt min/avg/max/mdev = 0.206/0.650/1.125/0.348 ms compute-0:/home/sysadmin# ^C2.168.101.117 compute-0:/home/sysadmin# exit exit compute-0:~$ sudo ip netns exec qdhcp-5a51d907-493d-4b9d-b7a6-60de0c1806ce ssh cirros@192.168.101.117 The authenticity of host '192.168.101.117 (192.168.101.117)' can't be established. ECDSA key fingerprint is SHA256:51Zzq8QuPxeKwkPv8e1SpMb1tQ/HMI3HEuRFsJEqjHk. ECDSA key fingerprint is MD5:fa:57:93:d7:53:03:f2:7e:19:a6:b2:b9:92:23:22:7f. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.101.117' (ECDSA) to the list of known hosts. cirros@192.168.101.117's password: Permission denied, please try again. cirros@192.168.101.117's password: $ $ ifconfig eth0 Link encap:Ethernet HWaddr FA:16:3E:01:AE:CE inet addr:192.168.101.117 Bcast:192.168.101.255 Mask:255.255.255.0 inet6 addr: fe80::f816:3eff:fe01:aece/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:47 errors:0 dropped:0 overruns:0 frame:0 TX packets:55 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6355 (6.2 KiB) TX bytes:6744 (6.5 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:12 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:1020 (1020.0 B) TX bytes:1020 (1020.0 B) $ $ exit Connection to 192.168.101.117 closed. compute-0:~$ ^C compute-0:~$ sudo ip netns exec qdhcp-5a51d907-493d-4b9d-b7a6-60de0c1806ce ping 192.168.101.117 PING 192.168.101.117 (192.168.101.117) 56(84) bytes of data. 64 bytes from 192.168.101.117: icmp_seq=1 ttl=64 time=0.855 ms 64 bytes from 192.168.101.117: icmp_seq=2 ttl=64 time=0.234 ms 64 bytes from 192.168.101.117: icmp_seq=3 ttl=64 time=0.181 ms 64 bytes from 192.168.101.117: icmp_seq=4 ttl=64 time=0.204 ms 64 bytes from 192.168.101.117: icmp_seq=5 ttl=64 time=0.217 ms 64 bytes from 192.168.101.117: icmp_seq=6 ttl=64 time=0.190 ms 64 bytes from 192.168.101.117: icmp_seq=7 ttl=64 time=0.202 ms ^C --- 192.168.101.117 ping statistics --- 7 packets transmitted, 7 received, 0% packet loss, time 6001ms rtt min/avg/max/mdev = 0.181/0.297/0.855/0.228 ms compute-0:~$ ls sysadmin@controller-0 compute-0:~$ touch hola.test compute-0:~$ sudo ip netns exec qdhcp-5a51d907-493d-4b9d-b7a6-60de0c1806ce scp hola.test cirros@192.168.101.117:/home/cirros cirros@192.168.101.117's password: hola.test 100% 0 0.0KB/s 00:00 compute-0:~$ Note: In case that Horizon shows an IP address but when you login into the VM using virsh / Horizon VM Console, and you don't see an IP attached to the VM, use the following commands: sudo ifconfig eth0 ip link set dev up