Skip to main content

Mechanism driver for Neutron ML2 plugin using BGP E-VPNs/IP VPNs as a backend

Project description

=====================
networking-bagpipe
=====================

Driver and agent code to use bagpipe-bgp lightweight implementation
of BGP-based VPNs as a backend, for Neutron-BGPVPN Interconnection
or Neutron ML2.

* Free software: Apache license
* Source: http://git.openstack.org/cgit/openstack/networking-bagpipe
* Bugs: http://bugs.launchpad.net/bagpipe

Overview
--------

This package includes:

* a Neutron ML2 mechanism driver ('bagpipe')
* compute node agent code for::
* the `bagpipe` ML2 driver
* the `bagpipe` driver of networking-bgpvpn_

BGP-based VPNs
--------------

BGP-based VPNs rely on extensions to the BGP routing protocol and
typically MPLS or VXLAN encapsulation to provide multi-site isolated
networks. The specification for BGP/MPLS IPVPNs is RFC4364_ and
the specification for E-VPN is RFC7432_.

Neutron ML2 mechanism driver
----------------------------

The `bagpipe` mechanism driver allocates a BGP VPN identifier (called "route target")
for each Neutron network, and will setup an E-VPN instance for each network.

When a Neutron port goes up, the agent on the corresponding compute node provides
this VPN identifier to the locally running `bagpipe-bgp`, to trigger the attachement
of the VM tap interface to the E-VPN instance.

Once E-VPN routes are exchanged, `bagpipe-bgp` setups VXLAN forwarding state in the
linuxbridge.

Neutron BGPVPN Interconnection
------------------------------

The compute node agent code extends the OVS agent of the OVS ML2 driver.

It allows the establishment of interconnections between Neutron networks and
BGP/MPLS IP VPNs, using the BGPVPN Interconnection service plugin
(networking-bgpvpn_) with its bagpipe driver.

How to use ?
------------

How to use the ML2 driver in devstack?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* install devstack (whether stable/kilo or master)

* enable the devstack plugin by adding this to ``local.conf``:

* to use branch ``stable/X`` (e.g. `stable/mitaka`)::

enable_plugin networking-bagpipe https://git.openstack.org/openstack/networking-bagpipe.git stable/X

* to use the development branch::

enable_plugin networking-bagpipe https://git.openstack.org/openstack/networking-bagpipe.git master

* use the following options in devstack ``local.conf``: ::

Q_PLUGIN=ml2
Q_AGENT=bagpipe-linuxbridge
Q_ML2_PLUGIN_TYPE_DRIVERS=flat,vlan,vxlan,route_target
Q_ML2_PLUGIN_MECHANISM_DRIVERS=bagpipe

[[post-config|/$Q_PLUGIN_CONF_FILE]]
[ml2]
tenant_network_types=route_target

[ml2_type_route_target]
# E-VPN route target ranges
rt_nn_ranges = 100:119,500:519

[ml2_bagpipe]
# Data Center AS number
as_number = 64512

* configure bagpipe-bgp_ on each compute node

* (note that with devstack, bagpipe-bgp_ is installed automatically as a git submodule of networking-bagpipe)

* the following is needed in `local.conf` to configure bagpipe-bgp_ and start it in devstack::

BAGPIPE_DATAPLANE_DRIVER_EVPN=linux_vxlan.LinuxVXLANDataplaneDriver

enable_service b-bgp

* you also need each bagpipe_bgp_ to peer with a BGP Route Reflector:

* in `local.conf`::

# IP of your route reflector or BGP router, or fakeRR:
BAGPIPE_BGP_PEERS=1.2.3.4

* for two compute nodes, you can use the FakeRR provided in bagpipe-bgp_

* for more than two compute nodes, you can use GoBGP_ (`sample configuration`_) or a commercial E-VPN implementation (e.g. vendors participating in `EANTC interop testing on E-VPN <http://www.eantc.de/fileadmin/eantc/downloads/events/2011-2015/MPLSSDN2015/EANTC-MPLSSDN2015-WhitePaper_online.pdf>`_)

How to use the networking-bgpvpn_ driver in devstack ?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Information on how to use `bagpipe` driver for networking-bgpvpn_ is provided in
`BGPVPN documentation`_.

.. _bagpipe-bgp: https://github.com/Orange-OpenSource/bagpipe-bgp
.. _networking-bgpvpn: https://github.com/openstack/networking-bgpvpn
.. _RFC4364: http://tools.ietf.org/html/rfc4364
.. _RFC7432: http://tools.ietf.org/html/rfc7432
.. _GoBGP: http://osrg.github.io/gobgp
.. _sample configuration: https://github.com/Orange-OpenSource/bagpipe-bgp/blob/master/samples/gobgp.conf
.. _BGPVPN documentation: http://docs.openstack.org/developer/networking-bgpvpn/bagpipe



Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

networking-bagpipe-5.0.0.tar.gz (44.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

networking_bagpipe-5.0.0-py2-none-any.whl (51.5 kB view details)

Uploaded Python 2

File details

Details for the file networking-bagpipe-5.0.0.tar.gz.

File metadata

File hashes

Hashes for networking-bagpipe-5.0.0.tar.gz
Algorithm Hash digest
SHA256 e4834e0835d767e62f0ebe0c955adb6dd66aaa0a2fe458cc7fbbedbbd628a266
MD5 4f5d8dfdec40e533e6c0c2ea0d872d93
BLAKE2b-256 058bfb1fe631ff44f5e1b62589f8375309f72dd131cc38eb00f020c8b79bc4fa

See more details on using hashes here.

File details

Details for the file networking_bagpipe-5.0.0-py2-none-any.whl.

File metadata

File hashes

Hashes for networking_bagpipe-5.0.0-py2-none-any.whl
Algorithm Hash digest
SHA256 e7e3c11b516fc8010084261436b3a331cc29d3196f6e80c9e181a150a3633112
MD5 deb1bcbcbc46bf5892960058cbb78511
BLAKE2b-256 5ee1d003c1e2dfbd8951144ea745ea39a8331bde3ee8ee9d0e97d15ef4be89b7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page