BGP Best Path Selection Algorithm
BGP Best Path Selection Algorithm
Introduction
Border Gateway Protocol (BGP) routers typically receive multiple paths to the same destination. The BGP best path algorithm decides which is the best path to install in the IP routing table and to use for traffic forwarding.
Prerequisites
Requirements
There are no specific requirements for this document.
Components Used
This document is not restricted to specific software and hardware versions.
Conventions
Refer to Cisco Technical Tips Conventions for more information on document conventions.
Note: Synchronization is disabled by default in Cisco IOS Software Release 12.2(8)T and later. Paths for which the NEXT_HOP is inaccessible Be sure that there is an Interior Gateway Protocol (IGP) route to the NEXT_HOP that is associated with the path. Paths from an external BGP (eBGP) neighbor if the local autonomous system (AS) appears in the AS_PATH Such paths are denied upon ingress into the router and are not even installed in the BGP Routing Information Base (RIB). The same applies to any path that is denied by a routing policy that is implemented via access, prefix, AS_PATH, or community lists, unless you have configured softreconfiguration inbound for the neighbor. If you enabled bgp enforcefirstas and the UPDATE does not contain the AS of the neighbor as the first AS number in the AS_SEQUENCE In this case, the router sends a notification and closes the session. Paths that are marked as (receivedonly) in the show ip bgp longerprefixes output The policy has rejected these paths. However, the router has stored the paths because you have configured softreconfiguration inbound for the neighbor that sends the path.
This comparison only occurs if the first (the neighboring) AS is the same in the two paths. Any confederation subASs are ignored. In other words, MEDs are compared only if the first AS in the AS_SEQUENCE is the same for multiple paths. Any preceding AS_CONFED_SEQUENCE is ignored. If bgp alwayscomparemed is enabled, MEDs are compared for all paths. You must disable this option over the entire AS. Otherwise, routing loops can occur. If bgp bestpath medconfed is enabled, MEDs are compared for all paths that consist only of AS_CONFED_SEQUENCE. These paths originated within the local confederation. THE MED of paths that are received from a neighbor with a MED of 4,294,967,295 is changed before insertion into the BGP table. The MED changes to to 4,294,967,294. Paths received with no MED are assigned a MED of 0, unless you have enabled bgp bestpath med missingasworst . If you have enabled bgp bestpath med missingasworst, the paths are assigned a MED of 4,294,967,294. The bgp deterministic med command can also influence this step. Refer to How BGP Routers Use the MultiExit Discriminator for Best Path Selection for a demonstration. 7. Prefer eBGP over iBGP paths. If bestpath is selected, go to Step 9 (multipath). Note: Paths that contain AS_CONFED_SEQUENCE and AS_CONFED_SET are local to the confederation. Therefore, these paths are treated as internal paths. There is no distinction between Confederation External and Confederation Internal. 8. Prefer the path with the lowest IGP metric to the BGP next hop. Continue, even if bestpath is already selected. 9. Determine if multiple paths require installation in the routing table for BGP Multipath. Continue, if bestpath is not yet selected. 10. When both paths are external, prefer the path that was received first (the oldest one). This step minimizes routeflap because a newer path does not displace an older one, even if the newer path would be the preferred route based on the next decision criteria (Steps 11, 12, and 13). Skip this step if any of these items is true: You have enabled the bgp best path comparerouterid command. Note: Cisco IOS Software Releases 12.0.11S, 12.0.11SC, 12.0.11S3, 12.1.3, 12.1.3AA, 12.1.3.T, and 12.1.3.E introduced this command. The router ID is the same for multiple paths because the routes were received from the same router. There is no current best path. The current best path can be lost when, for example, the neighbor that offers the path goes down. 11. Prefer the route that comes from the BGP router with the lowest router ID.
The router ID is the highest IP address on the router, with preference given to loopback addresses. Also, you can use the bgp routerid command to manually set the router ID. Note: If a path contains route reflector (RR) attributes, the originator ID is substituted for the router ID in the path selection process. 12. If the originator or router ID is the same for multiple paths, prefer the path with the minimum cluster list length. This is only present in BGP RR environments. It allows clients to peer with RRs or clients in other clusters. In this scenario, the client must be aware of the RRspecific BGP attribute. 13. Prefer the path that comes from the lowest neighbor address. This address is the IP address that is used in the BGP neighbor configuration. The address corresponds to the remote peer that is used in the TCP connection with the local router.
BGP Multipath
BGP Multipath allows installation into the IP routing table of multiple BGP paths to the same destination. These paths are installed in the table together with the best path for load sharing. BGP Multipath does not affect bestpath selection. For example, a router still designates one of the paths as the best path, according to the algorithm, and advertises this best path to its neighbors. These are the BGP Multipath features: eBGP Multipathmaximumpaths n iBGP Multipathmaximumpaths ibgp n eiBGP Multipathmaximumpaths eibgp n In order to be candidates for multipath, paths to the same destination need to have these characteristics equal to the bestpath characteristics: Weight
Local preference ASPATH length Origin MED One of these: Neighboring AS or subAS (before the addition of the eiBGP Multipath feature) ASPATH (after the addition of the eiBGP Multipath feature) Some BGP Multipath features put additional requirements on multipath candidates. These are the additional requirements for eBGP multipath: The path should be learned from an external or confederationexternal neighbor (eBGP). The IGP metric to the BGP next hop should be equal to the bestpath IGP metric. These are the additional requirements for iBGP multipath: The path should be learned from an internal neighbor (iBGP). The IGP metric to the BGP next hop should be equal to the bestpath IGP metric, unless the router is configured for unequalcost iBGP multipath. BGP inserts up to n most recently received paths from multipath candidates in the IP routing table. The maximum value of n is currently 6. The default value, when multipath is disabled, is 1. For unequalcost load balancing, you can also use BGP Link Bandwidth. Note: The equivalent nexthopself is performed on the best path that is selected among eBGP multipaths before it is forwarded to internal peers.
Related Information
Troubleshooting BGP How BGP Routers Use the MultiExit Discriminator for Best Path Selection Configuring BGP BGP Support Page Technical Support & Documentation Cisco Systems
Contacts & Feedback | Help | Site Map 2008 2009 Cisco Systems, Inc. All rights reserved. Terms & Conditions | Privacy Statement | Cookie Policy | Trademarks of Cisco Systems, Inc.