BGP multiple path support
BGP supports multiple paths, allowing an ADVPN to advertise multiple paths. This allows BGP to extend and keep additional network paths according to RFC 7911.
In this example, Spoke1 and Spoke2 each have four VPN tunnels that are connected to the Hub with ADVPN. The Spoke-Hub has established four BGP neighbors on all four tunnels.
Spoke 1 and Spoke 2 can learn four different routes from each other.
To configure the hub:
config router bgp set as 65505 set router-id 11.11.11.11 set ibgp-multipath enable set additional-path enable set additional-path-select 4 config neighbor-group edit "gr1" set capability-default-originate enable set remote-as 65505 set additional-path both set adv-additional-path 4 set route-reflector-client enable next end config neighbor-range edit 1 set prefix 10.10.0.0 255.255.0.0 set neighbor-group "gr1" next end config network edit 12 set prefix 11.11.11.11 255.255.255.255 next end end
To configure a spoke:
config router bgp set as 65505 set router-id 2.2.2.2 set ibgp-multipath enable set additional-path enable set additional-path-select 4 config neighbor edit "10.10.100.254" set soft-reconfiguration enable set remote-as 65505 set additional-path both set adv-additional-path 4 next edit "10.10.200.254" set soft-reconfiguration enable set remote-as 65505 set additional-path both set adv-additional-path 4 next edit "10.10.203.254" set soft-reconfiguration enable set remote-as 65505 set additional-path both set adv-additional-path 4 next edit "10.10.204.254" set soft-reconfiguration enable set remote-as 65505 set additional-path both set adv-additional-path 4 next end config network edit 3 set prefix 22.1.1.0 255.255.255.0 next end end
To view the BGP routing table on a spoke:
Spoke1 # get router info routing-table bgp Routing table for VRF=0 B* 0.0.0.0/0 [200/0] via 10.10.200.254, vd2-2, 03:57:26 [200/0] via 10.10.203.254, vd2-3, 03:57:26 [200/0] via 10.10.204.254, vd2-4, 03:57:26 [200/0] via 10.10.100.254, vd2-1, 03:57:26 B 1.1.1.1/32 [200/0] via 11.1.1.1 (recursive via 12.1.1.1), 03:57:51 [200/0] via 11.1.1.1 (recursive via 12.1.1.1), 03:57:51 [200/0] via 11.1.1.1 (recursive via 12.1.1.1), 03:57:51 [200/0] via 11.1.1.1 (recursive via 12.1.1.1), 03:57:51 B 11.11.11.11/32 [200/0] via 10.10.200.254, vd2-2, 03:57:51 [200/0] via 10.10.203.254, vd2-3, 03:57:51 [200/0] via 10.10.204.254, vd2-4, 03:57:51 [200/0] via 10.10.100.254, vd2-1, 03:57:51 B 33.1.1.0/24 [200/0] via 10.10.204.3, vd2-4, 03:57:26 [200/0] via 10.10.203.3, vd2-3, 03:57:26 [200/0] via 10.10.200.3, vd2-2, 03:57:26 [200/0] via 10.10.100.3, vd2-1, 03:57:26 [200/0] via 10.10.204.3, vd2-4, 03:57:26 [200/0] via 10.10.203.3, vd2-3, 03:57:26 [200/0] via 10.10.200.3, vd2-2, 03:57:26 [200/0] via 10.10.100.3, vd2-1, 03:57:26 [200/0] via 10.10.204.3, vd2-4, 03:57:26 [200/0] via 10.10.203.3, vd2-3, 03:57:26 [200/0] via 10.10.200.3, vd2-2, 03:57:26 [200/0] via 10.10.100.3, vd2-1, 03:57:26 [200/0] via 10.10.204.3, vd2-4, 03:57:26 [200/0] via 10.10.203.3, vd2-3, 03:57:26 [200/0] via 10.10.200.3, vd2-2, 03:57:26 [200/0] via 10.10.100.3, vd2-1, 03:57:26