[openstack-dev] [neutron] What semantics are expected when booting a VM on an external network?

Carl Baldwin carl at ecbaldwin.net
Thu Sep 17 19:41:57 UTC 2015


On Thu, Sep 17, 2015 at 10:26 AM, Kevin Benton <blak111 at gmail.com> wrote:
> Yes, the L2 semantics apply to the external network as well (at least with
> ML2).

This is true and should remain so.  I think we've come to the
agreement that a neutron Network, external, shared, or not, should be
an L2 broadcast domain and have these semantics uniformly.

> One example of the special casing is the external_network_bridge option in
> the L3 agent. That would cause the agent to plug directly into a bridge so
> none of the normal L2 agent wiring would occur. With the L2 bridge_mappings
> option there is no reason for this to exist anymore because it ignoring
> network attributes makes debugging a nightmare.

+1

>>Yes, that makes sense.  Clearly the core semantic there is IP.  I can
> imagine reasonable variation on less core details, e.g. L2 broadcast vs.
> NBMA.  Perhaps it would be acceptable, if use cases need it, for such
> details to be described by flags on the external network object.
>
> An external network object is just a regular network object with a
> router:external flag set to true. Any changes to it would have to make sense
> in the context of all networks. That's why I want to make sure that whatever
> we come up with makes sense in all contexts and isn't just a bolt on corner
> case.

I have been working on a proposal around adding better L3 modeling to
Neutron.  I will have something up by the end of this week.  As a
preview, my current thinking is that we should add a new object to
represent an L3 domain.  I will propose that floating ips move to
reference this object instead of a network.  I'm also thinking that a
router's external gateway will reference an instance of this new
object instead of a Network object.  To cover current use cases, a
Network would own one of these new instances to define the subnets
that live on the network.  I think we'll also have the flexibility to
create an L3 only domain or one that spans a group of L2 networks like
what is being requested by operators [1].

We can also discuss in the context of this proposal how a Port may be
able to associate with L3-only.  As you know, ports need to provide
certain L2 services to VMs in order for them to operate.  But, does
this mean they need to associate to a neutron Network directly?  I
don't know yet but I tend to think that the model could support this
as long as VM ports have a driver like Calico behind them to support
the VMs' dependence on DHCP and ARP.

This is all going to take a fair amount of work.  I'm hoping a good
chunk of it will fit in the Mitaka cycle.

Carl

[1] https://bugs.launchpad.net/neutron/+bug/1458890



More information about the OpenStack-dev mailing list