Installation¶
Networking-bagpipe installation¶
The details related to how a package should be installed may depend on your environment.
If possible, you should rely on packages provided by your Linux and/or Openstack distribution.
If you use pip, follow these steps to install networking-bagpipe:
identify the version of the networking-bagpipe package that matches your Openstack version:
- Liberty: most recent of 3.0.x
- Mitaka: most recent of 4.0.x
- Newton: most recent of 5.0.x
- Ocata: most recent of 6.0.x
- Pike: most recent of 7.0.x
- (see https://releases.openstack.org/index.html)
indicate pip to (a) install precisely this version and (b) take into account Openstack upper constraints on package versions for dependencies (example for ocata):
$ pip install -c https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/ocata networking-bagpipe=6.0.0
BaGPipe for Neutron L2¶
Installation in a devstack test/development environment¶
- 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 
 
- enable bagpipe ML2 by adding this to - local.conf:- ENABLE_BAGPIPE_L2=True 
- note that with devstack, BaGPipe-BGP is installed automatically as a git submodule of networking-bagpipe 
- for multinode setups, configure BaGPipe-BGP on each compute node, i.e. you 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) 
 
Deployment¶
On Neutron servers, the following needs to be done, based on an ML2/linuxbridge configuration as a starting point:
- installing networking-bagpipe python package: - pip install -c http://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/<release> networking-bagpipe 
- in ML2 configuration ( - /etc/neutron/plugins/ml2.ini):- enabling the - route_targettype driver (typically keeping- flatand- vlantype drivers)
- adding the - bagpipemechanism driver (additionally to the- linuxbridgedriver which will still handle- flatand- vlannetworks)
- configuring the use of the - route_targettype for tenant networks
- configuring the AS number and range to use to allocate BGP Route Targets for tenant networks 
- example result: - [ml2] tenant_network_types = route_target type_drivers = flat,vlan,route_target mechanism_drivers = bagpipe,linuxbridge [ml2_type_route_target] rt_nn_ranges = 100:319,500:5190 [ml2_bagpipe] as_number = 64512 
 
You need to deploy a BGP Route Reflector, that will distribute BGP VPN routes among compute and network nodes. This route reflector will need to support E-VPN and, optionally, RT Constraints. One option, among others is to use GoBGP (sample configuration).
On compute node and network nodes the following needs to be done, based on an ML2/linuxbridge configuration as a starting point:
- installing networking-bagpipe python package 
- configuring Neutron linuxbridge agent for bagpipe - /etc/neutron/plugins/ml2.ini:- enabling - bagpipeagent extension
- disabling VXLAN 
- result: - [agent] extensions = bagpipe [vxlan] enable_vxlan = False 
 
- configuring BaGPipe-BGP: - setting local_addressto the compute node address (or the name of one
 - of its interfaces e.g. ‘eth0’) - adding the Route Reflector IP to peers
- selecting linuxdataplane driver for EVPN
 
- setting 
BaGPipe for BGPVPN¶
Information on how to use bagpipe driver for networking-bgpvpn is provided
in BGPVPN bagpipe driver documentation.