On 09/25/2012 11:23 AM, Dan Wendlandt wrote:
> On Tue, Sep 25, 2012 at 7:47 AM, Robert Kukura <[email protected]> wrote:
>> On 09/25/2012 08:32 AM, Yong Sheng Gong wrote:
>>> Hi,
>>> Yes, I am also embarrassed by it too.
>>
>> What are you embarrassed by? Is it the fact that quantum provider
>> networks cannot (easily) be used for br-ex?
>>
>>> In theory, every virtual networks in quanum will have a network bindings
>>> which is GRE, vlan, flat or local.
>>> If we don't provide --provider:network_type vlan
>>> --provider:physical_network physnet1 --provider:segmentation_id 1024
>>> when we create virtual network,
>>> this network is a tenant network, otherwise it is a provider network.
>>>
>>> tenant network's network binding is determined by tenant_network_type.
>>> its network binding will be selected in pool of network_vlan_ranges or
>>> tunnel_id_ranges.t
>>> but the provider networks network binding is provided by user.
>>
>> The above is all correct.
>>
>>>
>>> back to external network that is used by router's gateway port and
>>> floating ips.
>>> In theory, this kind of external network should not use network binding
>>> for realization since we will have br-ex to realize them.
>>
>> I've been focusing almost exclusively on L2 during Folsom, and have not
>> had a chance yet to really understand the l3_agent and how it uses
>> br-ex. My vague understanding is that the l3_agent needs access to a
>> network with external connectivity. What's not clear to me is whether
>> this access is:
>>
>> 1) via a quantum provider network that already has external connectivity
>>
>> 2) via a bridge that has nothing to do with any quantum network
>>
>> 3) via a quantum network that the l3_agent is somehow trying to bridge
>> to an interface in order to give it external connectivity
> 
> Its either #2 or #3, depending on exactly what you mean.
> 
> The "internal" interfaces of routers implemented by the l3-agent are
> all plugged into quantum networks, just like the interfaces of a
> dhcp-server.  These interfaces are managed by the plugin agent
> quantum-*-plugin-agent .

Right.

> 
> The "gateway" interfaces are handled specially, being plugged into an
> "external bridge" (e.g., br-ex).  The connectivity of this bridge is
> not managed by the plugin agent, it is managed manually by the
> administrator (e.g., by manually connecting eth1 to br-ex).

The above paragraph sounds exactly like what I meant by #2. But, I now
suspect current reality is more like option #3 because there is a
corresponding quantum network. That is what had really been confusing me.

> 
> I actually think provider networks are the right way to handle this.
> The reality is though, that both the l3-agent and provider networks
> were being developed at the same time and during the final cycle of
> Folsom, so making one depend on the other was too tricky.  In Grizzly
> i'd like to see a model where provider networks can be used for
> gateway uplinks.  In fact, this is basically the strategy for letting
> a single l3-agent take advantage of multiple upstream VLANs.

This is my option #1, and I agree it makes sense when the plugin
supports provider networks. I guess the external bridge may still be
needed when the plugin has no support for anything like provider networks.

It sounds like you are saying that using a provider external network
(with no special external bridge) will not work now. Is that correct? I
thought Salvatore had assured me this would work while we were both in
the midst of development. I wish I had made more of an effort to
understand the l3-agent at the time - I would have lobbied to avoid the
special handling of external networks, or at least for a way to turn it off.

It seems to me that leaving external_network_bridge unset should result
in the l3-agent just using the selected external network, with the
assumption that the external network is a properly-configured provider
network with external connectivity. Would that be doable as a quick bug
fix for Folsom? What am I missing?

> 
> That leaves us with the question of what to do about the existing
> bindings that are created and ignored.  

This is where I had been getting confused, but I now see that the real
quantum network binding is ignored and the external bridge is used instead.

>                                        Originally these bindings were
> never visible via the API, but we made a decision with the provider
> stuff to show the mappings to admin users, and I think that's still
> the right thing to do.  When I first read this thread I was  thinking
> we could add logic to avoid populating these bindings for external
> networks.

Was your initial idea that the plugin would check if the network being
created is external, and if so, not assign any binding for it?

>           However, this would prevent using provider mappings for
> external networks in the future.  

Right.

>                                   Another option would be to say that
> external networks only get a mapping if one is explicitly configured
> (i.e., a provider net) but if none is configured, it gets no mapping.

That doesn't really help unless the explicitly configured binding is
what gets used by the l3-agent.

> I'm personally not a huge fan of encoding such logic in.  One other
> idea (not sure if this is feasible) would be to instruct admins to
> specify provider net type=local when creating the network.  I think
> this would avoid a confusing allocation of a VLAN or tunnel-id, while
> still leaving us the ability in the future to make the l3-agent
> support richer provider network mappings.  Bob, can you comment on
> whether this is feasible (as well as whether you think its a good
> idea).

I don't see any problem with it, and I guess this is probably the best
option that doesn't require changing any code. At least it doesn't imply
that the external network is a real network with external connectivity.
A new "null" network_type might be better.

But again, I think the best option is fix the l3-agent so real provider
networks can be used as external networks when external_network_bridge
is not set.

-Bob

> 
> Dan
> 
> 
>>
>> Can someone clarify which of the above options (or others I missed) the
>> l3_agent is supposed to support for external connectivity?
>>
>>>
>>> any ideas?
>>
>> I need to understand the problem before I can contribute any ideas.
>>
>> -Bob
>>
>>>
>>> Yong Sheng Gong
>>>
>>>
>>> [email protected] wrote:
>>> -----
>>> To: Aaron Rosen <[email protected]>
>>> From: Gary Kotton
>>> Sent by: [email protected]
>>> Date: 09/25/2012 03:56PM
>>> Cc: quantum-core <[email protected]>
>>> Subject: Re: [Quantum-core] Provider networks and br-ex bridge
>>>
>>> Hi,
>>> Sorry for the confusion. There are two networks that are created:-
>>> 1. net1 (this has the vlan tag 1024)
>>> 2. ext_net (this is the one who's tag is 1). My understanding is that I
>>> should not create a provider network here as this is specifically
>>> managed by br-ex?
>>> Am I making any sense?
>>> Thanks
>>> Gary
>>>
>>> On 09/25/2012 09:50 AM, Aaron Rosen wrote:
>>>> Sorry, what do you mean with no attributes?
>>>>
>>>>
>>>> Also you specified:  --provider:segmentation_id 1024 and it returned
>>>> | provider:segmentation_id  | 1                                    | ?
>>>> (or is that a typo?)
>>>>
>>>> Aaron
>>>>
>>>>
>>>> On Tue, Sep 25, 2012 at 3:24 AM, Gary Kotton <[email protected]
>>>> <mailto:[email protected]>> wrote:
>>>>
>>>>     Hi,
>>>>     I am in the process of updating the documentation for the demo
>>>>     setup. I think that there is an issue with the provider networks
>>>>     and the external bridge. I'll try and explain below.
>>>>
>>>>     The setup is below:
>>>>
>>>>
>>>>     The intention is to have an internal VLAN network ( quantum
>>>>     net-create --tenant-id fbd9d50c755545a9b10228c3c4ef5d0f net1
>>>>     --provider:network_type vlan --provider:physical_network physnet1
>>>>     --provider:segmentation_id 1024
>>>>     ).
>>>>     My intention was to create an external network - with no
>>>>     attributes and just to add the interface to the br-ex bridge.
>>>>     i.e. sudo ovs-vsctl add-br br-ex and then sudo ovs-vsctl add-port
>>>>     br-ex eth2.
>>>>     When I created the external network I got the following:
>>>>     +---------------------------+--------------------------------------+
>>>>     | Field                     | Value                                |
>>>>     +---------------------------+--------------------------------------+
>>>>     | admin_state_up            | True                                 |
>>>>     | id                        | 96df1736-1720-407a-9cca-411895695dcb |
>>>>     | name                      | ext_net                              |
>>>>     | provider:network_type     | vlan                                 |
>>>>     | provider:physical_network | physnet1                             |
>>>>     | provider:segmentation_id  | 1                                    |
>>>>     | router:external           | True                                 |
>>>>     | shared                    | False                                |
>>>>     | status                    | ACTIVE                               |
>>>>     | subnets                   |                                      |
>>>>     | tenant_id                 | 2a215cce7a0a47d58a82f997ae5c2e28     |
>>>>     +---------------------------+--------------------------------------+
>>>>
>>>>     Is this a bug?
>>>>     What do you guys think?
>>>>
>>>>     Thanks
>>>>     Gary
>>>>
>>>>     --
>>>>     Mailing list: https://launchpad.net/~quantum-core
>>>>     <https://launchpad.net/%7Equantum-core>
>>>>     Post to     : [email protected]
>>>>     <mailto:[email protected]>
>>>>     Unsubscribe : https://launchpad.net/~quantum-core
>>>>     <https://launchpad.net/%7Equantum-core>
>>>>     More help   : https://help.launchpad.net/ListHelp
>>>>
>>>>
>>>
>>> --
>>> Mailing list: https://launchpad.net/~quantum-core
>>> <https://launchpad.net/%7Equantum-core>
>>> Post to     : [email protected]
>>> Unsubscribe : https://launchpad.net/~quantum-core
>>> <https://launchpad.net/%7Equantum-core>
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>>
>>
>>
>> --
>> Mailing list: https://launchpad.net/~quantum-core
>> Post to     : [email protected]
>> Unsubscribe : https://launchpad.net/~quantum-core
>> More help   : https://help.launchpad.net/ListHelp
> 
> 
> 


-- 
Mailing list: https://launchpad.net/~quantum-core
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~quantum-core
More help   : https://help.launchpad.net/ListHelp

Reply via email to