Instance cannot connect to external network
Hello,
I am following this http://docs.openstack.org/juno/install-guide/install/apt/content/launch-instance-neutron.html (official tutorial)
I am in the part where I should check the external network connection and I have this:
$ ping -c 4 openstack.org
ping: bad address 'openstack.org'
$ ping -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
I cannot edit /etc/resolv.conf because it seems CirrOS doesn't have package manager nor any kind of text editor...
I can ping the router with the internal IP (192.168.1.1) and external IP (192.168.102.230), but I cannot ping the other IPs I already mentioned.
Here it is my network topology: http://imgur.com/vOUt3rz
How can I solve this? As I am following an official tutorial shouldn't the instance already have these issues solved?
---- UPDATE ---
Here there are some outputs:
# neutron router-show demo-router
+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up | True |
| distributed | False |
| external_gateway_info | {"network_id": "6db14247-e65d-4ebd-81dc-c914188d809b", "enable_snat": true, "external_fixed_ips": [{"subnet_id": "5272a1b6-7d77-4b3b-94dd-9ae5edfc3106", "ip_address": "192.168.102.230"}]} |
| ha | False |
| id | 839f7340-2b30-4ae3-ad97-38dbeeeff5f7 |
| name | demo-router |
| routes | |
| status | ACTIVE |
| tenant_id | c52dc6f7c1c04f9ca6f22d00ce811d19 |
+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
And next:
# neutron subnet-show ext-subnet
+-------------------+--------------------------------------------------------+
| Field | Value |
+-------------------+--------------------------------------------------------+
| allocation_pools | {"start": "192.168.102.230", "end": "192.168.102.240"} |
| cidr | 192.168.102.0/24 |
| dns_nameservers | |
| enable_dhcp | False |
| gateway_ip | 192.168.102.254 |
| host_routes | |
| id | 5272a1b6-7d77-4b3b-94dd-9ae5edfc3106 |
| ip_version | 4 |
| ipv6_address_mode | |
| ipv6_ra_mode | |
| name | ext-subnet |
| network_id | 6db14247-e65d-4ebd-81dc-c914188d809b |
| tenant_id | c52dc6f7c1c04f9ca6f22d00ce811d19 |
+-------------------+--------------------------------------------------------+
--- UPDATE 2 ----
Output of ovs-vsctl show
:
Bridge "br-eth1"
Port "phy-br-eth1"
Interface "phy-br-eth1"
type: patch
options: {peer="int-br-eth1"}
Port "eth1"
Interface "eth1"
Port "br-eth1"
Interface "br-eth1"
type: internal
Bridge br-int
fail_mode: secure
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Port "tap950d8019-fa"
Interface "tap950d8019-fa"
type: internal
Port "qr-d72ce566-06"
Interface "qr-d72ce566-06"
type: internal
Port "qvod8719add-76"
Interface "qvod8719add-76"
Port "qvo341d5b86-4d"
Interface "qvo341d5b86-4d"
Port br-int
Interface br-int
type: internal
Port int-br-ex
Interface int-br-ex
type: patch
options: {peer=phy-br-ex}
Port "int-br-eth1"
Interface "int-br-eth1"
type: patch
options: {peer="phy-br-eth1"}
Bridge br-tun
Port br-tun
Interface br-tun
type: internal
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
Bridge br-ex
Port br-ex
Interface br-ex
type: internal
Port "qg-0aa518a3-3e"
Interface "qg-0aa518a3-3e"
type: internal
Port "eth0"
Interface "eth0"
Port phy-br-ex
Interface phy-br-ex
type: patch
options: {peer=int-br-ex}
ovs_version: "2.0.2"
Output of cat /etc/neutron/neutron.conf
:
[DEFAULT]
#core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
core_plugin = ml12
notification_driver=neutron.openstack.common.notifier.rpc_notifier
verbose=True
rpc_backend = rabbit
rabbit_host = 192.168.102.208
rabbit_password = rabbit
#service_plugins=neutron.services.l3_router.l3_router_plugin.L3RouterPlugin
service_plugins = router
allow_overlapping_ips = True
auth_strategy=keystone
neutron_metadata_proxy_shared_secret=openstack
service_neutron_metadata_proxy=True
nova_admin_password=nova_pass
notify_nova_on_port_data_changes=True
notify_nova_on_port_status_changes=True
nova_admin_auth_url=http://192.168.102.208:35357/v2.0
nova_admin_tenant_id=service
nova_url=http://192.168.102.208:8774/v2
nova_admin_username=nova
[keystone_authtoken]
#auth_host = 192.168.102.208
#auth_port = 35357
#auth_protocol = http
auth_uri = http://192.168.102.208:5000/v2.0
identity_uri = http://192.168.102.208:35357
admin_tenant_name = service
admin_user = neutron
admin_password = neutron_pass
signing_dir = $state_path/keystone-signing
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True
nova_url = http://192.168.102.208:8774
nova_admin_username ...
Did you use a real GW when creating the external subnet? See here
1.When you created private subnet on which CirrOS VM is running , did you define IP of DNS Server of local ISP ?
2. From within VM run :- $ curl http://169.254.169.254/latest/meta-data
You are not supposed to run any
route add ...
from within VM. It should work automatically after log into VM.Output from the following two commands would be helpful
@Antonio G., I followed the link you gave, so I used the gateway of the real network. @dbaxps, I cannot edit /etc/resolv.conf so I didn't define any IP of DNS. I know I'm not supposed to run any "route", however, it didn't come automatically... @jjulien, I will edit my question with the outputs.