OSPF and some interesting facts.


Even though my next post was going to be about some enhancements to STP, I found this little nugget about OSPF behavior, that I thought I would share with everyone.

As we know OSPF, when crossing an area boundary, the ABR (Area Border Router), will gather type 1 (router and its links) and type 2 (network information provided by the DR on a transit network) and form a type 3 LSA, which is basically a boiled down version of the two other types of LSA’s. It will send this LSA into the area (assuming its not a totally stubby/nssa area).

Now the interesting bit comes when you have multiple ABR’s each doing this. When a second ABR receives the type 3 LSA from another ABR, it will simply ignore it. This means that it will not send it back into the backbone area, thereby creating a routing loop. A visual overview is provided here:

As can be seen, type 1 LSA’s are sent from R1 to R2 (and also to R3). No type 2 since its not a multiple-access network. I just created this to make it simple to follow. When this arrives at R2, R2 creates a type 3 LSA and sends into Area 1. R3 receives this LSA, but since it is itself providing the same LSA (type 3) to area 1, it ignores it. The cross across the Type 3 update in the picture means only that a type 3 containing networks already learned from Area 0, wont be propagated back into Area 0. All Area 1 routes will however.

Now lets look at a different scenario in which one of the links between R2 and R3 is down in the Area 0:

Whats interesting here, is the fact that R2’s cost to the 10.0.0.0/24 subnet is: 10 + 10 = 20. R3’s cost is: 100 + 10 = 110. This is even though it could have gone through the Area 1 to R2, resulting in a cost of 30. It cant do this, because it itself is ignoring the type 3 LSA from R2.

What about R5? Well, R5 will receive both type 3 LSA’s, one from R2 and one from R3. Its cost to reach the 10.0.0.0/24 subnet is: 10 + 10 + 10 + 10 = 40. But what happens is that the next hope is R3, R3 will only have a route to subnet 10.0.0.0/24 to R1. The cost will then actually end up being: 10 + 100 + 10 = 120.

As we can see, this is suboptimal routing. In this case it is also asymmetrical routing, since any reply data from the 10.0.0.0/24 subnet will take the path to R2, then to R3 and finally to R5, a cost of 30.

I thought that this behavior was very interesting, since it goes against some pre-disposed routing theory of taking the shortest path.

Hope it was informative!