OpenStack Discussions


Openstack neutron : accessing openstack managed servers from the network host

Hi all, I have a distributed OpenStack setup -- one controller and three compute instances. The "network node" is the same as the controller. I have a flat external network and VLAN provider network which has been assigned tag 775.

I have a router connecting the vlan network to the external network. All the plumbing works as expected. I can log into an OpenStack server and ping outside. Networks are isolated as expected and so forth.

On the controller/network node, I see a qrouter namespace that openstack created for the router and another one for DHCP.

I create a server on a public VLAN-enabled network. I need to reach the server from the controller. I tried some hacks by creating a veth pair and pushing one end to the qrouter namespace but that did not work.

I finally tried the following ugly hack (which worked):

ovs-vsctl show 

  # Look for the mapping that openstack is using

  ovs-ofctl dump-flows br-int -O openflow13 | grep 775

  # discover that tag 6 is used by openstack on my integration bridge.
  # corresponding to vlan 775

  # Create a veth pair so the root namespace can access the bridge.

  ip link ip link add veth0 type veth peer name veth1

  # put one end on the bridge. 
  # assign a tag of 6 so it can access the server.

  ovs-vsctl add-port br-int veth1 tag=6

  # Finally I can assign an address to veth0 and ping a host on 
  # the openstack managed vlan network

  ifconfig veth0 

After doing the steps above I am able to ping a server on my openstack managed network from my controller.

I had to do several manual steps to figure out the internal tag that openstack was using on the integration bridge. I did this by dumping flow rules on the integration bridge to see how the tags were being managed. I then did the steps outlined above. I think there must be an openstack (neutron) set of commands which I can use rather than having to go through this.

Seeking a better solution. I should not need to look at internal tags and figure out mappings etc. Is there an open stack command line base set of commands to achieve this?

Thank You.

Check out the KB!
Knowledge Base
All Community Forums