06-04-2016 08:21 AM - edited 03-05-2019 04:09 AM
Is there any documentation about route preference if there are two routes received to a destination.
Next-hop PE for the destination IP address is same.
1. via direct iBGP peer to its rr-client
2. via ibgp to other Route-Reflector
06-04-2016 08:42 AM
Hello
the path selection process is not specific to RR but applies to all scenario's. BGP follows the below route selection process:
Prefer the path with the highest WEIGHT.
Note: WEIGHT is a Cisco-specific parameter. It is local to the router on which it is configured.
Prefer the path with the highest LOCAL_PREF.
Note: A path without LOCAL_PREF is considered to have had the value set with the bgp default local-preference command, or to have a value of 100 by default.
Prefer the path that was locally originated via a network or aggregate BGP subcommand or through redistribution from an IGP.
Local paths that are sourced by the network or redistribute commands are preferred over local aggregates that are sourced by the aggregate-address command.
Prefer the path with the shortest AS_PATH.
Note: Be aware of these items:
This step is skipped if you have configured the bgp bestpath as-path ignore command.
An AS_SET counts as 1, no matter how many ASs are in the set.
The AS_CONFED_SEQUENCE and AS_CONFED_SET are not included in the AS_PATH length.
Prefer the path with the lowest origin type.
Note: IGP is lower than Exterior Gateway Protocol (EGP), and EGP is lower than INCOMPLETE.
Prefer the path with the lowest multi-exit discriminator (MED).
Note: Be aware of these items:
This comparison only occurs if the first (the neighboring) AS is the same in the two paths. Any confederation sub-ASs 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 always-compare-med 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 med-confed 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.
THE MED of paths that are received from a neighbor with a MED of 4,294,967,295 are considered valid and are inserted into BGP table with effect to Codes fixed for Cisco bug ID CSCef34800.
Paths received with no MED are assigned a MED of 0, unless you have enabled bgp bestpath med missing-as-worst .
If you have enabled bgp bestpath med missing-as-worst , the paths are assigned a MED of 4,294,967,294.
If you have enabled bgp bestpath med missing-as-worst , the paths are assigned a MED of 4,294,967,295 with effect to Codes fixed for Cisco bug ID CSCef34800.
The bgp deterministic-med command can also influence this step.
Refer to How BGP Routers Use the Multi-Exit Discriminator for Best Path Selection for a demonstration.
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.
Prefer the path with the lowest IGP metric to the BGP next hop.
Continue, even if bestpath is already selected.
Determine if multiple paths require installation in the routing table for BGP Multipath.
Continue, if bestpath is not yet selected.
When both paths are external, prefer the path that was received first (the oldest one).
This step minimizes route-flap 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 compare-routerid 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.
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 router-id 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.
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 RR-specific BGP attribute.
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.
http://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/13753-25.html
Regards
Vinit
06-04-2016 11:07 PM
Yup I've read this.
This is what Im referring to.
I have a PE (3.3.3.3) dual homed to two RRs of different cluster-id.
So from RR1, I am receiving two paths.
- one via from the direct RR-client (3.3.3.3)
- one via the the second RR (2.2.2.2)
So all attributes same, even the IGP metric.
RR1 will always prefer the patch via direct RR-client peering.
I am looking for a documentation that says multiple paths via RR-client peer routes is always preferred compared to routes learned by other RR (different cluster-id).
Can you enlighten me here?
P2#sho ip bgp vpnv4 vrf TEST 192.168.128.0
BGP routing table entry for 65000:1:192.168.128.0/24, version 19
Paths: (2 available, best #2, table TEST)
Advertised to update-groups:
1 2
Refresh Epoch 1
65001
3.3.3.3 (metric 11) from 2.2.2.2 (2.2.2.2)
Origin IGP, metric 0, localpref 100, valid, internal
Extended Community: RT:65000:1
Originator: 3.3.3.3, Cluster list: 2.2.2.2
mpls labels in/out nolabel/51
rx pathid: 0, tx pathid: 0
Refresh Epoch 1
65001, (Received from a RR-client)
3.3.3.3 (metric 11) from 3.3.3.3 (3.3.3.3)
Origin IGP, metric 0, localpref 100, valid, internal, best
Extended Community: RT:65000:1
mpls labels in/out nolabel/51
rx pathid: 0, tx pathid: 0x0
12-28-2018 09:27 AM
Hey,
In my opinion and provided that all previous steps ended in tie, the selection is made on shortest cluster list (step 13) - route learned from regular iBGP peer has empty cluster list while RR has to put it's cluster ID / or at least RID there.
01-02-2019 06:18 AM
Hello Martin,
I agree with your answer: a missing cluster list means the advertisement is coming directly from the router that is injecting the IP prefix in the BGP AS domain, and it has to be preferred over one advertisement that has been reflected by another Route reflector server.
To be noted if the two RRS had used the same cluster-id the local node would have ignored the advertisement reflected by the other RRS.
Best Regards
Giuseppe
12-29-2018 07:18 AM
Hello
@ar wrote:1. via direct iBGP peer to its rr-client
2. via ibgp to other Route-Reflector
Do you mean that you have an rr client also peering with another rr client ?
12-29-2018 10:34 AM
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide