SR and RSVP-TE interaction
Load sr.rsvp-te.interaction.init.cfg
R3 has a TE tunnel to R7’s loopback. When R1 does a traceroute to R7, the path ends up going through R3’s TE tunnel. Find a way to force R3 use the IGP path instead. Do not preform any configuration changes on R3.
Answer
Explanation
By default, a prefix SID is advertised with algo 0. Algo 0 means to follow the IGP path, however, it allows a node to use a local policy that overrides the IGP path. A TE tunnel counts as a local policy that overrides the IGP path. R3 uses autoroute announce for the TE tunnel to R7. This means that R3 will steer any traffic destined for R7 through this TE tunnel. (The path to R7 uses algo 0, so R3 will use the TE tunnel for this).
We see on R3 that the incoming label for 16007 is popped and forwarded out the TE tunnel:
An OAM traceroute confirms this:
What we need is a separate prefix SID that uses algo 1 instead. Algo 1 means to follow the strict SPF path. This would not allow R3 to divert this traffic into its TE tunnel. We can advertise an additional prefix SID on R7 that instead uses algo 1:
R7 now advertises two prefix SIDs for the same prefix (7.7.7.1/32). One with algo 0/index 7, and one with aglo 1/index 77.
Because the new prefix SID with index 77 uses algo 1, R3 cannot divert the traffic into the TE tunnel. The end-to-end LSP must follow the strict SPF path. So on R3, label 16077 is swapped with 16077 and forwarded out the interface following the IGP bestpath:
A regular OAM traceroute will still use 16007, as algo 0 is what is used for prefixes in the RIB:
However, if we specifically push 16077 at R1, it will follow the strict IGP path.
Last updated