Ask Your Question

OpenStack + OpenDaylight network bridges

asked 2016-01-07 09:38:41 -0700

bikingviking gravatar image

updated 2016-01-18 15:32:34 -0700

Hi everyone,

I'm working on a project that uses OpenDaylight to manage an OpenStack network. I've been following these instructions to set it up:

The setup seems to go smoothly. But once it's all done, there's a big problem: ODL doesn't create any sort of connection between the br-int bridges on the various nodes. For example, here's what OVS looks like on my compute node:

root@cp-1:~# ovs-vsctl show
    Manager "tcp:"
        is_connected: true
    Bridge br-int
        Controller "tcp:"
            is_connected: true
        fail_mode: secure
        Port br-int
            Interface br-int
        Port "tap51c81deb-ae"
            Interface "tap51c81deb-ae"
    ovs_version: "2.3.2"

As you can see above (and also in the setup instructions) br-int is isolated. It has no physical or virtual interface. So when I launch an OpenStack instance on this compute node, it has no way of talking to the rest of the network.

It seems to me like ODL should be setting up some manner of connection between br-int and the rest of the network? Or is this something I have to set up manually? Or am I missing something totally different?

Would appreciate any ideas or suggestions!

edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted

answered 2016-01-08 01:47:55 -0700

Vishal Thapar gravatar image

Have you actually spawned any VMs on these nodes or you're just theorizing based on what you currently see? Tunnel ports [vxlan or gre based on your configuration] are created only once VMs are spawned. No need to create tunnels between two computes when they don't have any requirement to send traffic between them.

edit flag offensive delete publish link more


I have spawned VMs, they're unable to communicate with the network or pick up IP addresses. It seems like you need to explicitly configure tunnel endpoints in OVS, as per instructions here: If I'm able to solve this I'll post a solution below.

bikingviking ( 2016-01-08 08:14:35 -0700 )edit

answered 2016-01-18 15:41:01 -0700

bikingviking gravatar image

So it seems like the solution to this problem is to manually set up bridge connections between the OVS switches. I loosely followed the instructions here:

In my case the code looks like:

read ovstbl <<< $(ovs-vsctl get Open_vSwitch . _uuid)
bridgeip=$(ip -o addr show | grep 10.11.10 | grep -w inet | awk '{print $4}' | sed -e 's/\/.*//g')
ovs-vsctl set Open_vSwitch $ovstbl other_config={'local_ip'=$bridgeip}

Then on my network manager node, the following commands connect us to the external public internet:

externaliface=`ip route show default | grep default | cut -d' ' -f5`
ovs-vsctl add-br br-ex
ovs-vsctl add-port br-ex $externaliface

However this code is very specific to my environment. Our network manager node is isolated from the controller and compute nodes, I doubt this would work on a single-node deployment. We have a management VLAN running on 10.11.10.* addresses, so I've hard-coded this subnet to determine the bridge IP. Moreover any OpenStack/Neutron networks we use must be of GRE type, or else instances will still have network problems.

So at best this is a hacky, partial solution. If anybody has something that works more generally, please post it here.

edit flag offensive delete publish link more


If you are not using the devstack version of the depoyment you need to do both commands in order to have all the connections working, I have one question for you, do you have access to the internet from the instances you have created? Cuz I wasn't able to reach the Internet! thanks in advance.

Gabs90 ( 2016-01-19 00:57:25 -0700 )edit
Login/Signup to Answer

Question Tools

1 follower


Asked: 2016-01-07 09:38:41 -0700

Seen: 393 times

Last updated: Jan 18 '16