[j-nsp] Avoid route loop for joining IS-IS/OSPF areas with redundancy?

Clarke Morledge chmorl at wm.edu
Wed May 18 17:16:26 EDT 2011


I am trying to solve some problems and I need a little sanity 
check.  I have some routers that only support OSPF and I am trying to 
integrate this OSPF area/autonomous-system  into a level2 IS-IS 
area/autonomous-system.   Simplified, it looks like this:


         IS-IS
          OSPF-------------OSPF
          RTR B             RTR D
        /  |                  \
       /   |                   \
      /    |                    \
IS-IS     |                   OSPF
RTR A     |                   RTR F --static-route 0.0.0.0/0->my ISP
     \     |                    /
      \    |                   /
       \   |                  /
       IS-IS                 /
        OSPF---------------OSPF
        RTR C               RTR E

A couple other things to note:

a. there is no Level 1 IS-IS here, just Level 2.

b.  OSPF is area 0.0.0.0.

c. IS-IS wide metrics only, so no real distinction between internal and 
external routes with IS-IS.

d. the static route 0.0.0.0/0 pointing to my ISP needs to be propagated 
into the IS-IS autonomous system, and I want to rely on OSPF costing on 
the interfaces to traffic engineer the path for the default route, while 
still allowing for redundancy.

e. to avoid looping in general, I tag routes redistributed from IS-IS into 
OSPF and then reject routes from OSPF to be redistributed into IS-IS 
matching that tag.   The same logic applies for routes from OSPF to IS-IS.

Here is the first problem:

If I stay with the default Junos route preferences and let's say that one 
of the ASBRs (Router B or C) goes down and comes back up, I'll get a 
routing loop for the default route.  Since wide-metrics forces IS-IS to 
forget about the internal/external distinction, the default route gets 
lost between Routers B and C.

Following the advice of Herrero and Van Der Ven in _Network Mergers and 
Migrations_, it should be sufficient to prefer OSPF internal AND external 
routes above IS-IS.  For example, I could drop the IS-IS level 2 internal 
preference from 18 down to something below the default OSPF external route 
preference of 150 to something like 155.  I would need to do this on both 
routers B and C.  This would force the OSPF external route for 0.0.0.0/0 
to win over IS-IS at the border routers, B and C.

But here is a second problem:

If I do not have OSPF configured directly between Routers B and C, I could 
get a suboptimal routing situation.  For example, let's say I have a 
loopback address on router A and the path from A to C is "shorter" than 
the path from A to B.  Router B would then see router A's loopback as best 
advertised through OSPF via Router D.  Ugh.

So perhaps I just need to configure OSPF between B and C.  This still 
isn't the most optimal method, because now that loopback address for A is 
best reachable from router B through router C, even though A is right next 
door.

I could just extend OSPF all the way over to router A and clean that up, 
even though I really am trying to move off OSPF as soon as possible to 
simplify life, but I guess I can live with it temporarily.  I just need to 
remember to apply the same route preference settings and redistribution 
routing logic with tags on router A as I have done on routers B and C.

In the future, when I want to replace the OSPF-only routers with routers 
that support OSPF and IS-IS, I can simply go from router to router and 
reverse the route preferences for IS-IS and OSPF, making IS-IS better, and 
then I can remove OSPF altogether.

Anyway, am I on the right track here, or am I forgetting something really 
important?


Clarke Morledge
College of William and Mary
Information Technology - Network Engineering
Jones Hall (Room 18)
Williamsburg VA 23187



More information about the juniper-nsp mailing list