mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-11-02 16:25:18 +00:00
Revert "doc: Add documentation for BGP ORR support"
This reverts commit 2b55ff400f.
This commit is contained in:
parent
cfd01fc0ac
commit
cb6e090a90
317
doc/user/bgp.rst
317
doc/user/bgp.rst
@ -3566,319 +3566,6 @@ When default route is not present in R2'2 BGP table, 10.139.224.0/20 and 192.0.2
|
||||
Total number of prefixes 3
|
||||
Router2#
|
||||
|
||||
.. _bgp-optimal-route-reflection:
|
||||
|
||||
BGP Optimal Route Reflection
|
||||
----------------------------
|
||||
BGP Route Reflectors (RRs) are used to improve network scalability by reducing
|
||||
or eliminating the need for a full-mesh of IBGP sessions.
|
||||
|
||||
When a BGP RR receives multiple paths for the same IP prefix, it typically
|
||||
selects a single best path to send for all its clients.
|
||||
If the RR has multiple nearly-equal best paths and the tie-break is determined
|
||||
by the next-hop cost, the RR advertises the path based on its view of next-hop
|
||||
costs, which leads to a non-optimal routing.
|
||||
The advertised route may differ from the path that a client would select
|
||||
if it had the visibility of the same set of candidate paths and used
|
||||
its own view of next-hop costs.
|
||||
|
||||
Non-optimal advertisements by the RR can be a problem in hot-potato routing.
|
||||
Hot-potato routing aims to hand off traffic to the next AS using the closest
|
||||
possible exit point from the local AS.
|
||||
In this context, the closest exit point implies minimum IGP cost to
|
||||
reach the BGP next-hop.
|
||||
|
||||
The BGP Optimal Route Reflection allows the RR to choose and send a different
|
||||
best path to a different or a set of RR clients.
|
||||
|
||||
A link-state protocol is required. It can be OSPF or IS-IS.
|
||||
Current implementation of BGP ORR is based on the IGP cost to the BGP next hop,
|
||||
and not based on some configured policy.
|
||||
|
||||
RR runs Shortest Path First (SPF) calculation with the selected
|
||||
router as the root of the tree and calculates the cost to every other router.
|
||||
|
||||
This special SPF calculation with another router as the root, is referred to as
|
||||
a Reverse SPF (rSPF). This can only be done if the RR learns all the BGP paths
|
||||
from all the BGP border routers.
|
||||
|
||||
There could be as many rSPFs run as there are RR clients.
|
||||
This will increase the CPU load somewhat on the RR.
|
||||
|
||||
Current implementation allows up to three root nodes for the rSPF calculation.
|
||||
There is no need to configure each RR client as a root and run rSPF.
|
||||
Current implementation allows to configure three, the primary, the secondary,
|
||||
and the tertiary root, per set of RR clients, for redundancy purposes.
|
||||
For the BGP ORR feature to apply to any RR client, that RR client must be
|
||||
configured to be part of an ORR policy group.
|
||||
|
||||
The BGP ORR feature is enabled per address family.
|
||||
|
||||
The minimal configuration needed:
|
||||
|
||||
1. ORR needs to be enabled for specific groups of BGP neighbors.
|
||||
2. For each group of BGP neighbors, at least one root needs to be configured.
|
||||
Optionally, a secondary and tertiary root can be configured.
|
||||
3. For OSPF, the root routers(RR clients) need additional configuration
|
||||
to make BGP ORR work.
|
||||
i.e. The MPLS TE configuration on the root router needs to have the minimal
|
||||
configuration for MPLS TE enabled so that OSPF advertises the MPLS TE
|
||||
router ID in an opaque-area LSA (type 10).
|
||||
Once the RR has an opaque-area LSA with the MPLS TE router-ID matching the
|
||||
configured root router address, rSPF can run and BGP on the RR can
|
||||
advertise the optimal route.
|
||||
|
||||
.. clicmd:: neighbor A.B.C.D optimal-route-reflection NAME
|
||||
|
||||
This command allows the neighbor to be part of the ORR group.
|
||||
|
||||
.. clicmd:: optimal-route-reflection orr-1 A.B.C.D [A.B.C.D] [A.B.C.D]
|
||||
|
||||
This command creates an ORR group with a mandatory primary root
|
||||
and optional secondary and/or tertiary roots.
|
||||
When primary is reachable it will be the active root.
|
||||
when primary goes down, secondary followed by tertiary takes over
|
||||
the active root's role.
|
||||
Always rSPF calculation runs active root as the root.
|
||||
Which means the RR advertises the path based on active root's
|
||||
view of next-hop costs.
|
||||
|
||||
Sample Configuration
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Sample configuration on Route Reflector
|
||||
|
||||
.. code-block:: frr
|
||||
|
||||
!
|
||||
debug ospf 8 orr
|
||||
debug bgp optimal-route-reflection
|
||||
!
|
||||
interface enp0s8
|
||||
ip address 10.10.68.8/24
|
||||
ip ospf 8 area 0
|
||||
exit
|
||||
!
|
||||
interface lo
|
||||
ip address 10.100.1.8/32
|
||||
ip ospf 8 area 0
|
||||
exit
|
||||
!
|
||||
router bgp 1
|
||||
neighbor 10.100.1.1 remote-as 1
|
||||
neighbor 10.100.1.1 update-source lo
|
||||
neighbor 10.100.1.2 remote-as 1
|
||||
neighbor 10.100.1.2 update-source lo
|
||||
neighbor 10.100.1.3 remote-as 1
|
||||
neighbor 10.100.1.3 update-source lo
|
||||
neighbor 10.100.1.4 remote-as 1
|
||||
neighbor 10.100.1.4 update-source lo
|
||||
!
|
||||
address-family ipv4 unicast
|
||||
neighbor 10.100.1.1 route-reflector-client
|
||||
neighbor 10.100.1.1 optimal-route-reflection orr-1
|
||||
neighbor 10.100.1.2 route-reflector-client
|
||||
neighbor 10.100.1.2 optimal-route-reflection orr-1
|
||||
neighbor 10.100.1.3 route-reflector-client
|
||||
neighbor 10.100.1.3 optimal-route-reflection orr-1
|
||||
neighbor 10.100.1.4 route-reflector-client
|
||||
neighbor 10.100.1.4 optimal-route-reflection orr-1
|
||||
optimal-route-reflection orr-1 10.100.1.4 10.100.1.3 10.100.1.1
|
||||
exit-address-family
|
||||
exit
|
||||
!
|
||||
router ospf 8
|
||||
ospf router-id 8.8.8.8
|
||||
area 0 authentication
|
||||
capability opaque
|
||||
exit
|
||||
!
|
||||
end
|
||||
|
||||
Sample configuration on RR clients
|
||||
|
||||
.. code-block:: frr
|
||||
|
||||
interface enp0s8
|
||||
ip address 10.10.34.4/24
|
||||
ip ospf 4 area 0
|
||||
link-params
|
||||
enable
|
||||
exit-link-params
|
||||
exit
|
||||
!
|
||||
interface enp0s9
|
||||
ip address 10.10.74.4/24
|
||||
ip ospf 4 area 0
|
||||
link-params
|
||||
enable
|
||||
exit-link-params
|
||||
exit
|
||||
!
|
||||
interface lo
|
||||
ip address 10.100.1.4/32
|
||||
ip ospf 4 area 0
|
||||
exit
|
||||
!
|
||||
router bgp 1
|
||||
neighbor 10.100.1.8 remote-as 1
|
||||
neighbor 10.100.1.8 update-source lo
|
||||
!
|
||||
address-family ipv4 unicast
|
||||
neighbor 10.100.1.8 soft-reconfiguration inbound
|
||||
exit-address-family
|
||||
exit
|
||||
!
|
||||
router ospf 4
|
||||
ospf router-id 4.4.4.4
|
||||
area 0 authentication
|
||||
capability opaque
|
||||
mpls-te on
|
||||
mpls-te router-address 10.100.1.4
|
||||
mpls-te inter-as area 0.0.0.0
|
||||
mpls-te export
|
||||
exit
|
||||
!
|
||||
end
|
||||
|
||||
Sample Output
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
When Optimal Route Reflection is not enabled on RR, it sends 10.100.1.1 as the best path to its clients.
|
||||
|
||||
.. code-block:: frr
|
||||
|
||||
Router-RR# show ip bgp neighbors 10.100.1.4
|
||||
|
||||
!--- Output suppressed.
|
||||
|
||||
For address family: IPv4 Unicast
|
||||
Update group 2, subgroup 2
|
||||
Packet Queue length 0
|
||||
Route-Reflector Client
|
||||
Community attribute sent to this neighbor(all)
|
||||
0 accepted prefixes
|
||||
|
||||
!--- Output suppressed.
|
||||
|
||||
Router-RR#
|
||||
Router-RR# show ip bgp
|
||||
BGP table version is 3, local router ID is 10.100.1.8, vrf id 0
|
||||
Default local pref 100, local AS 1
|
||||
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
|
||||
i internal, r RIB-failure, S Stale, R Removed
|
||||
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
|
||||
Origin codes: i - IGP, e - EGP, ? - incomplete
|
||||
RPKI validation codes: V valid, I invalid, N Not found
|
||||
|
||||
Network Next Hop Metric LocPrf Weight Path
|
||||
* i203.0.113.0/24 10.100.1.2 0 100 0 i
|
||||
*>i 10.100.1.1 0 100 0 i
|
||||
*=i 10.100.1.3 0 100 0 i
|
||||
|
||||
Displayed 1 routes and 3 total paths
|
||||
Router-RR#
|
||||
|
||||
Router-PE4# show ip bgp
|
||||
BGP table version is 5, local router ID is 10.100.1.4, vrf id 0
|
||||
Default local pref 100, local AS 1
|
||||
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
|
||||
i internal, r RIB-failure, S Stale, R Removed
|
||||
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
|
||||
Origin codes: i - IGP, e - EGP, ? - incomplete
|
||||
RPKI validation codes: V valid, I invalid, N Not found
|
||||
|
||||
Network Next Hop Metric LocPrf Weight Path
|
||||
*>i203.0.113.0/24 10.100.1.1 0 100 0 i
|
||||
|
||||
Displayed 1 routes and 1 total paths
|
||||
Router-PE4#
|
||||
|
||||
When Optimal Route Reflection is enabled on RR, it sends 10.100.1.3 as the best path to its clients.
|
||||
|
||||
.. code-block:: frr
|
||||
|
||||
Router-RR# show ip bgp neighbors 10.100.1.4
|
||||
|
||||
!--- Output suppressed.
|
||||
|
||||
For address family: IPv4 Unicast
|
||||
Update group 1, subgroup 1
|
||||
Packet Queue length 0
|
||||
Route-Reflector Client
|
||||
ORR group (configured) : orr-1
|
||||
Community attribute sent to this neighbor(all)
|
||||
0 accepted prefixes
|
||||
|
||||
!--- Output suppressed.
|
||||
|
||||
Router-RR#
|
||||
Router-RR# show ip bgp
|
||||
BGP table version is 1, local router ID is 10.100.1.8, vrf id 0
|
||||
Default local pref 100, local AS 1
|
||||
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
|
||||
i internal, r RIB-failure, S Stale, R Removed
|
||||
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
|
||||
Origin codes: i - IGP, e - EGP, ? - incomplete
|
||||
RPKI validation codes: V valid, I invalid, N Not found
|
||||
|
||||
Network Next Hop Metric LocPrf Weight Path
|
||||
* i203.0.113.0/24 10.100.1.2 0 100 0 i
|
||||
*>i 10.100.1.3 0 100 0 i
|
||||
* i 10.100.1.1 0 100 0 i
|
||||
|
||||
Displayed 1 routes and 3 total paths
|
||||
Router-RR#
|
||||
|
||||
Router-RR# show ip bgp optimal-route-reflection
|
||||
|
||||
ORR group: orr-1, IPv4 Unicast
|
||||
Configured root: primary: 10.100.1.4(Router-PE4), secondary: 10.100.1.3(Router-PE3), tertiary: 10.100.1.1(Router-PE1)
|
||||
Active Root: 10.100.1.4(Router-PE4)
|
||||
|
||||
RR Clients mapped:
|
||||
10.100.1.1
|
||||
10.100.1.2
|
||||
10.100.1.3
|
||||
10.100.1.4
|
||||
|
||||
Number of mapping entries: 4
|
||||
|
||||
Prefix Cost
|
||||
10.10.34.0/24 100
|
||||
10.10.61.0/24 300
|
||||
10.10.63.0/24 200
|
||||
10.10.67.0/24 200
|
||||
10.10.68.0/24 300
|
||||
10.10.72.0/24 200
|
||||
10.10.74.0/24 100
|
||||
10.100.1.1/32 300
|
||||
10.100.1.2/32 200
|
||||
10.100.1.3/32 100
|
||||
10.100.1.4/32 0
|
||||
10.100.1.6/32 200
|
||||
10.100.1.7/32 100
|
||||
10.100.1.8/32 300
|
||||
|
||||
Number of mapping entries: 14
|
||||
|
||||
Router-RR#
|
||||
|
||||
Router-PE4# show ip bgp
|
||||
BGP table version is 3, local router ID is 10.100.1.4, vrf id 0
|
||||
Default local pref 100, local AS 1
|
||||
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
|
||||
i internal, r RIB-failure, S Stale, R Removed
|
||||
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
|
||||
Origin codes: i - IGP, e - EGP, ? - incomplete
|
||||
RPKI validation codes: V valid, I invalid, N Not found
|
||||
|
||||
Network Next Hop Metric LocPrf Weight Path
|
||||
*>i203.0.113.0/24 10.100.1.3 0 100 0 i
|
||||
|
||||
Displayed 1 routes and 1 total paths
|
||||
Router-PE4#
|
||||
|
||||
.. _bgp-debugging:
|
||||
|
||||
Debugging
|
||||
@ -3944,10 +3631,6 @@ Debugging
|
||||
|
||||
Enable or disable debugging of communications between *bgpd* and *zebra*.
|
||||
|
||||
.. clicmd:: debug bgp optimal-route-reflection
|
||||
|
||||
Enable or disable debugging of BGP Optimal Route Reflection.
|
||||
|
||||
Dumping Messages and Routing Tables
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
||||
@ -1145,10 +1145,6 @@ Debugging OSPF
|
||||
.. clicmd:: show debugging ospf
|
||||
|
||||
|
||||
.. clicmd:: debug ospf orr
|
||||
|
||||
Enable or disable debugging of BGP Optimal Route Reflection.
|
||||
|
||||
|
||||
Sample Configuration
|
||||
====================
|
||||
|
||||
Loading…
Reference in New Issue
Block a user