So –we’ve covered on of the two cases dealing with calculating a new path, and then I left you hanging for a week. What’s the second case? Let’s return to our small network for a moment to figure it out.
What happens if D’s cost to reach the destination isn’t lower than E’s cost? E will not be able to determine the path is loop free, and hence it cannot use D as an alternate path. Hence, we’re left without an alternate path, right?
We’re still looking at a two connected network — a network where there is loop in the topology — so there must, in fact, be some sort of alternate path from E to the destination. But what if E forwards traffic to D towards the destination? There is no way for E to know where D is going to forward this traffic — it could just as well be forwarded back through E itself, creating a routing loop.
This is, in fact, why distance vector routing protocols split horizon routing updates — when you reach the point in the topology where the traffic could conceivably loop back to the router advertising the destination, it’s best to simply not advertise the destination (poison reverse is just a “more certain” version of this same thought process).
To shorten this up, we could say that where a route is not advertised due to split horizon is precisely the point where there is the possibility of a routing loop in the case of a topology change. In the world of fast reroute, there is another term used for this point in the network: where the p and q spaces intersect. Given any network that is two connected — or rather, has loops or rings in the topology — there is, from the point of view of any given router, a p space, and a q space.
The p space is the area of the network within which a packet can be transmitted towards a specific destination without the packet being reflected back to the forwarding router. If a packet is forwarded into the q space, however, it will be forwarded back in a loop. The key point is, then, to find someplace in the q space where the packet can be forwarded without the packet being looped back to the sender.
To put it in simpler terms, the point is to figure where E can forward a packet, not using the best path through C, and without the packet being forwarded back to E itself. Given that D might forward the packet back to E, any packets forwarded towards the destination must be forwarded past D.
How can we skip a router in the path towards the destination? Through a tunnel. In fact, as we consider the rest of this series, we’ll find out that’s precisely what every fast reroute mechanism that can go beyond the p/q divide, or rather beyond feasible successors, does.
The mechanism used to compute a tunnel destination to a loop free alternate path towards the destination is tied up with the actual tunneling mechanism itself in many instances, so we’ll deal with a few mechanisms in turn over the next few episodes. Until then, keep your p’s and q’s straight, and keep checking your feasible over your shoulder.