Abstract Gateway to add bridging (besides routing) between Neutron networks

Registered by Racha Ben Ali

Abstract:

Neutron already provides an abstract Router API extension for routing between cloud tenants virtual networks. Its main useful purpose is to enable NATing of IP addresses of the unlimited number of VMs to a limited pool of external/public IPv4 addresses. However, routing between virtual networks subnets adds some complexity (at least for the simple tenant abstract API) in automating the mandatory /subnet IP subnet address design of virtual networks belonging to the same tenant, in sharing various L2 services (usually by configuring helper services in routers), and in moving VMs with zero downtime (usually with extra tunneling if not in the same L2).

We propose to add optional Bridging operations to the Router object so that we abstract both Router and Bridge in a Gateway object managed by Cloud Tenants Admins. This will provide a simple REST interface to bridge virtual networks together and with physical networks while the underlying plugin will focus on programmatically controlling the L2 broadcast regardless of all the heterogeneous virtual networking technologies. This broadcast is usually emulated using L2oL3 tunnels overlays between virtual switches if native tagging is not provided, but other schemes could also be used. With this API, we will be able to easily stitch Neutron Networks to benefit from various existent services in enterprise data centers that are not managed by OpenStack:
enterprise DHCP servers, PXE boot software provisioning servers, L2VPN gateways to elastic WANs, to only cite few.

Blueprint information

Status:
Complete
Approver:
Mark McClain
Priority:
Undefined
Drafter:
Racha Ben Ali
Direction:
Needs approval
Assignee:
Racha Ben Ali
Definition:
Superseded
Series goal:
None
Implementation:
Good progress
Milestone target:
None
Started by
Racha Ben Ali
Completed by
Armando Migliaccio

Related branches

Sprints

Whiteboard

Your use cases are a bit vague - you talk about a generic 'gateway' (and it's a fair description for something that could be a router or bridge) but the descriptions in the blueprint are not terribly specific about what that gateway is bringing in the way of needed functionality.

Arguably any Neutron network is a 'gateway' by your definition, as well as the routers.

I think L2 VPNs can be brought in to a single port (rather than to a network) and this model doesn't support that, not precisely.

>> Following various valuable feedback, a revised version of the blueprint is updated here:
https://docs.google.com/document/d/1Zae1uaphj_tifFfKKGmEyLgTGR0K5LeP7to4FcfA2-0/edit#

Gerrit topic: https://review.openstack.org/#q,topic:bp/gateway-api-extension,n,z

Addressed by: https://review.openstack.org/79223
    Gateway API extension (adds L2 Bridging as a service)

Addressed by: https://review.openstack.org/93613
    GW API: L2 bridging API - Piece 1: Basic use cases

(?)

Work Items