[j-nsp] Juniper best path selection process
Stacy W. Smith
stacy at acm.org
Fri Apr 2 12:10:34 EDT 2010
On Apr 2, 2010, at 9:13 AM, Joe Metzger wrote:
> I made a mistake yesterday when I said both black-hole BGP sessions were IBGP. I
> didn't notice that the particular router I was looking at is using a private AS
> for other reasons, so both black-hole BGP sessions are EBGP multi-hop, not iBGP.
That helps explain things. I just assumed they were EBGP and didn't notice your statement that they were IBGP. :-)
> BTW, the quote you provided is not on the page I referenced. Google found it at:
> http://www.juniper.net/techpubs/software/junos/junos94/swconfig-routing/how-the-active-route-is-determined.html
Yes. I'm sorry. I got confused. The statement was not in the URL you referenced, but in the URL that Richard referenced in his e-mail on this thread. I mixed the two.
> I am not sure the rule your citing applies in this case. I interpreted "different"
> to mean the 2 routes were learned from neighbors in different AS's, and not that the
> AS of the local router differed from the AS of the external peer because that is always
> true. In my case, both of the routes in question are from the same external AS.
>
> But after poking around a bit more in the 9.4 route selection & configuration pages, I discovered the following sentence which does describe the behavior I am seeing: "By default, router ID comparison is not performed if one of the external paths is active."
>
> This sentence, plus the one you found seem to clearly indicate that current versions of
> Junos take age into account by default in the selection process.
I agree the documentation could be more explicit. I believe the part of the reason the documentation is confusing is because the path selection algorithm has changed slightly over time.
The statement I referenced in the documentation does indeed only apply when the two external routes are from differing neighbor ASs. This change was introduced by PR 37158 in JUNOS 6.1R1. As the release note for this PR states, this change was introduced to avoid route oscillations that could occur due to MED values in very specific topologies.
Later, this change to prefer the active route was expanded to include routes from the same external AS. That's where the documentation statement that you quoted came from. This change was performed under PR 392819 and was introduced in JUNOS 9.3R3, 9.4R3, 9.5R2, 9.6R1. This makes the default JUNOS path selection algorithm compliant with RFC 5004.
If you prefer to include the router ID in the path selection algorithm (pre JUNOS 6.1R1 default behavior), you can configured the 'external-router-id' path-selection knob.
--Stacy
More information about the juniper-nsp
mailing list