I've discovered an easy way to detect and solve common domain routing loop issues with three domains.
Here is an extract from the ROUTE Official Certification Guide:
"...However, with three or more routing domains, setting metrics and AD values does not always solve the domain loop problem. In particular, problems can occur when three or more routing domains connect in sequence.
Inefficient Routing with Looped Routing Advertisements
The steps noted in the figure are as follows:
• Step 1: Router R9 advertises a route for network 172.20.0.0/16 from the RIP domain into the EIGRP domain where the route is treated with (default) AD 170 as an external route.
• Step 2: Router RD1 redistributes this EIGRP external route into OSPF where it is treated as an E2 route, AD 110, by default.
• Step 3: Router RD2 uses the AD 110 E2 route, rather than the AD 170 EIGRP external route, as its best route for 172.20.0.0/16. As a result, RD2 can then redistribute that OSPF route back into EIGRP as an external route, AD 170.
• Step 4: Router R4 learns of two external routes for 172.20.0.0/16, and the routes tie based on AD (170). R4 may have a better EIGRP metric through RD2, depending on the metrics used at redistribution, preferring this long route through the OSPF domain as shown.
This is just one example case for such problems, but the problem exists because the obviously better route and the longer domain loop route are both external routes.
Several solutions exist for such problems. None of the solutions require a lot of extra configuration, other than that some of the solutions require ACLs or prefix lists that match the prefixes from the various routing domains. The next three sections address each option, namely:
- using per-route AD settings,
- filtering routes based on prefix/length,
- using route tags.
" (end of extract)
The problem exists also because: "middle" RP’s external AD > "edge" RP’s external AD,
where RP stands for Routing Protocol and AD for Administrative Distance.
Routing loops happen in these situations :
|Routing Protocol Domains||Common Feature|
1) RIP à EIGRP à OSPF
2) OSPF ↔ EIGRP ↔ OSPF
3) EIGRP à RIP à OSPF
4) OSPF à RIP à OSPF
5) OSPF à EIGRP à RIP
6) RIP ↔ EIGRP ↔ RIP
1 1) and 5) represent the same topology
So, there is an easier fourth solution : changing external AD for all routes to fix routing loops in the first 4 cases, without any other tool such as route tags, so that :
"middle" RP’s external AD < "edge" RP’s external AD (to be applied on all redistributing routers)
We cannot apply the previous tool for all routes in the last 2 cases because we also have to make sure that:
"middle" RP’s internal AD < "edge" RP’s external AD (in both "directions")
So, in cases 5) and 6) (RIP as edge RP), a filtering tool must be used instead, even though this type of solutions ("filtering on prefix/length while redistributing" and "filtering using route tags") seems incomplete : the long route stays on the redistributing routers.