[Rdo-list] Openstack Liberty with DVR and VLAN overlay
Charles Short
cems at ebi.ac.uk
Mon Mar 21 14:25:22 UTC 2016
And finally...
I have worked out why I am seeing this behavior in the first place -
I was setting NeutronExternalNetworkBridge: "''" on my overcloud
deployment, which was correctly setting 'external_network_bridge = '
(unset) in my controllers enabling VLAN provider networks to work.
But when you enable DVR the setting also becomes relevant on the compute
nodes, and by default 'external_network_bridge = br-ex' was set on my
compute nodes ( I found NeutronExternalNetworkBridge: "''" does not have
any impact on compute nodes). This bound the fg interfaces directly to
br-ex and not br-int, forcing me to apply the workaround of ovs fake
bridges.
So all I needed to do was unset 'external_network_bridge = ' on the
compute nodes and the fg interfaces bound to br-int and all worked.
Charles
On 21/03/2016 10:20, Charles Short wrote:
> An update on this -
>
> My issue was having to manually add the external VLAN tag to the fg
> interface everytime a new FIP namespace was created (FIP namespaces
> are deleted when there are no more instances on a compute node with
> floating ips)
>
> I discovered that you can create a virtual bridge within a bridge with
> a default VLAN tag. So when a port is dynamically created in this new
> bridge it automatically get the external VLAN tag.
>
> sudo ovs-vsctl add-br br-vlan1041 br-ex 1041
>
> This solves the issue. I just point the neutron config to the new
> external bridge and the fg ports get created on the new virtual bridge
> tagged with 1041
>
> Charles
>
>
> On 02/03/2016 09:34, Charles Short wrote:
>> Hi,
>>
>> I have a simple single nic bare metal set up much like this -
>>
>> https://answers.launchpad.net/neutron/+question/228376
>>
>> Tenant networks are VLANs, and the external network a VLAN provider
>> network.
>> This enables me to have one bridge which allows the VLAN overlays to
>> pass between nodes/physical switches, and importantly allows external
>> access via floating ip through the external provider network VLAN.
>>
>> This was all working fine, but I wanted to install DVR. I saw that
>> DVR functionality had relatively recently been added for VLAN
>> overlays (Kilo and beyond)
>>
>> https://blueprints.launchpad.net/neutron/+spec/neutron-ovs-dvr-vlan
>>
>> So I enabled DVR, noting that for VLAN overlays l2population is not
>> required.
>> I created two instances, two tenant networks one with a normal router
>> (non DVR) and one with a DVR router.
>>
>> I first tested SNAT on both. Worked fine (I could ping externally
>> from the instances)
>> I then applied a FIP to the non DVR routed instance. I could ping the
>> instance from the external network, so all working fine.
>>
>> I then applied a FIP to the DVR routed instance. This is where the
>> problems began. I could not ping externally from the instance, and I
>> could not ping the instance from the external network.
>> I looked at the traffic flow schematic outlined here for North/South
>> FIP (allowing for the fact I am not using tunneling) -
>>
>> http://docs.openstack.org/liberty/networking-guide/scenario_dvr_ovs.html
>>
>> I noticed that the fg interface from the FIP namespace in my compute
>> node was NOT attached to br-int as in the guide, but was attached to
>> my VLAN bridge. This seemed odd.
>> I thought that maybe this would have an effect on the tagging, so
>> tried manually adding the tag for the external provider network VLAN
>> to the fg port on the VLAN bridge
>>
>> ovs-vsctl set port fg-15df2853-c2 tag=1041
>>
>> Suddenly it all started working. I could now ping externally from
>> the DVR routed instance, and I could ping the instance from the
>> external network.
>>
>>
>> Please can someone explain why I am seeing this behavior?
>>
>> Thanks
>>
>> Charles
>>
>
--
Charles Short
Cloud Engineer
Virtualization and Cloud Team
European Bioinformatics Institute (EMBL-EBI)
Tel: +44 (0)1223 494205
More information about the dev
mailing list