From 91370a6c8267a16c0ae42e3c296ac5a0d0ecf2e3 Mon Sep 17 00:00:00 2001 From: Georg Kunz Date: Tue, 28 Jun 2016 17:36:09 +0200 Subject: L3VPN ECMP: more detailed usage of BGPVPN API Adding more details on how to use the existing BGPVPN API to realize the use case. Note: work in progress - don't merge yet Change-Id: I2c41bad79602d9f8e9de0581495e0ceb93a1b4c6 Signed-off-by: Georg Kunz --- docs/requirements/use_cases/l3vpn_ecmp.rst | 54 ++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 3 deletions(-) diff --git a/docs/requirements/use_cases/l3vpn_ecmp.rst b/docs/requirements/use_cases/l3vpn_ecmp.rst index c115a7a..eec6ab8 100644 --- a/docs/requirements/use_cases/l3vpn_ecmp.rst +++ b/docs/requirements/use_cases/l3vpn_ecmp.rst @@ -58,9 +58,57 @@ Current implementation ~~~~~~~~~~~~~~~~~~~~~~ Support for creating and managing L3VPNs is in general available in OpenStack -Neutron by means of the BGPVPN project [BGPVPN]_. However, the BGPVPN API does -not yet support ECMP, but this feature is on the project roadmap. Hence, it is -currently not possible to configure the networking use case as described above. +Neutron by means of the BGPVPN project [BGPVPN]_. However, the BGPVPN project +does not yet support ECMP. Hence, it is currently not possible to configure the +networking use case as described above. + +Nevertheless, ECMP load balancing is on the roadmap of the BGPVPN project. The +following workflow shows how to realize this particular use case under the +assumption that support for static routes is available in the BGPVPN API. + + +1. Create Neutron network for tenant "Blue" + + ``neutron net-create --tenant-id Blue net1`` + + +2. Create subnet for the network of tenant "Blue" + + ``neutron subnet-create --tenant-id Blue --name subnet1 net1 5.1.1.0/24`` + + +3. Create Neutron ports in the network of tenant "Blue" + + ``neutron port-create --tenant-id Blue --name G1 --fixed-ip subnet_id=subnet1,ip_address=5.1.1.1 net1`` + + ``neutron port-create --tenant-id Blue --name G2 --fixed-ip subnet_id=subnet1,ip_address=5.1.1.2 net1`` + + ``neutron port-create --tenant-id Blue --name G3 --fixed-ip subnet_id=subnet1,ip_address=5.1.1.3 net1`` + + ``neutron port-create --tenant-id Blue --name G4 --fixed-ip subnet_id=subnet1,ip_address=5.1.1.4 net1`` + + ``neutron port-create --tenant-id Blue --name G5 --fixed-ip subnet_id=subnet1,ip_address=5.1.1.5 net1`` + + ``neutron port-create --tenant-id Blue --name G6 --fixed-ip subnet_id=subnet1,ip_address=5.1.1.6 net1`` + + +4. Create a L3VPN for tenant "Blue" + + ``neutron bgpvpn-create --tenant-id Blue --route-target AS:100 vpn1`` + + +5. Associate the BGPVPN with the network of tenant "Blue" + + ``neutron bgpvpn-network-associate --tenant-id Blue --network-id net1 vpn1`` + + +6. Create static routes which point to the same target + + ``neutron bgpvpn-static-route-add --tenant-id Blue --cidr 10.1.1.5/32 --nexthop-ip 5.1.1.1 vpn1`` + + ``neutron bgpvpn-static-route-add --tenant-id Blue --cidr 10.1.1.5/32 --nexthop-ip 5.1.1.2 vpn1`` + + ``neutron bgpvpn-static-route-add --tenant-id Blue --cidr 10.1.1.5/32 --nexthop-ip 5.1.1.3 vpn1`` -- cgit 1.2.3-korg