9 Replies Latest reply: Mar 5, 2012 12:09 PM by Brian RSS

    Multi-area OSPF routing loop avoidance question - can anyone please help?

    RichT

      Hi everyone!

       

      While studying the effects of MPLS Frame mode loop prevention and detection using the GNS3 simulator, I came across an OSPF characteristic I have not encountered before and cannot find any supporting documentation that describes it.

       

      Before implementing MPLS, I wanted to build a simple Multi-area OSPF network and deliberately create a routing loop. Ive included below a diagram of the network showing the four router configs, the OSPF areas, IP addressing, what each router OSPF database looks like and the route to R4's Loopback100 address when no routing loops are present.

       

      You will need to scroll left and right and up and down I'm affraid to see all the diagram - sorry for that!

       

      As you will see in the diagram below, everything is normal....

       

      I then introduced a routing loop at ABR - R2 for prefix 192.168.26.1 (R4's Loopback100 address) using a static route pointing towards R1's fast ethernet address.

       

      R2#conf t

      Enter configuration commands, one per line.  End with CNTL/Z.

      R2(config)#ip route 192.168.26.1 255.255.255.255 FastEthernet0/0 172.16.34.1

      R2(config)#end

      R2#

       

      As I expected,  ABR - R2 replaced its OSPF inter-area routing table entry to 192.168.26.1/32 with the static route. (administrive distance for static being better)

      So far so good!!!!

       

      What I hadn't counted on was ABR R2 route poisioning its Summary Type 3 LSA for the prefix and advertising it out its Leaf Area 34 interface.

      In other words it told router R1 that 192.168.26.1 was unreachable (metric 16777215)

       

      Router R1 having no alternative path to the prefix subsequently removed it from its routing table.

       

      Now, I can hear you say "that's good isn't it because R2's prevented a routing loop"

      I would have to agree...BUT

       

      Having restored the network back to what it was, I then tried intoducing the same loop further along the path - at ABR - R3 - this time pointing towards Router R2's serial interface address.

       

      R3#conf t

      Enter configuration commands, one per line.  End with CNTL/Z.

      R3(config)#ip route 192.168.26.1 255.255.255.255 172.16.0.1

      R3(config)#end

      R3#

       

      Again, as I expected, ABR - R3 replaced its OSPF intra-area routing table entry to 192.168.26.1/32 with the static route. (administrive distance for static being better)

      Again, so far so good!!!!

       

      However, on this occasion ABR R3 didn't route poison the prefixes Summary Type 3 LSA and advertise it to Backbone Area 0.

      Consequently, ABR R2 still maintained its Inter-area route to 192.168.26.1/32 via ABR R3.

      Thus, the routing loop wasn't avoided!!!!!

       

      So, I think you can probably guess what I'm about to ask!!!!!

       

      Firstly, bearing in mind I'm simulating this network, is this the expected behaviour in the real world?

      Secondly, if this is expected behaviour, why is it different depending on which ABR the rooting loop is introduced?

       

      I understand that for ABR R3, it has topological information concerning the Leaf Area the prefix 192.168.26.1/32 (Router R4's Loopback100 address) resides in, where as ABR R2 doesn't. On this router,OSPF for this received prefix Summary Type 3 LSA works on a distance vector principle. It just knows of the network and the advertising ABR. Then using its backbone Area 0 topology can deduce the path and cost to the ABR and subsequently the prefix.

       

      So, is what I'm seeing anything to do with this?

      If so, why?

       

      Also, I've not read anywhere that a routers OSPF process can be influenced by the contents of its routing table. I've searched high and low for anything that discusses OSPF being capable of poisoning a route to prevent routing loops, but not found anything!!!! The only reference to route poisioning I've come across is to do with distance vestor protocols like RIP.

       

      If this behaviour is expected, then can anyone please point out somewhere where the rules are writtern that govern this.

      I already understand the rules covering Summary LSA's received by ABR's on their Non-backbone Area's but this is different.

       

      I would really appreciate if anyone can shed any light on this - for all I know, this could be just a GNS3 simulator issue not found on real routers!!!!!!!

       

      Many thanks

       

      kind regards

       

      Richard.....

       

       

      OSPF - Normal working.jpg

        • 1. Re: Multi-area OSPF routing loop avoidance question - can anyone please help?
          RichT

          Supplemental....

           

          I've just discovered clicking on the attached diagram enlarges it so scrolling across to view it may not work. In case its still too small to read, the router configs are below:

           

          !!!!! ROUTER 1 CONFIG !!!!!

          !

          ip cef

          !

          interface Loopback100

          ip address 192.168.34.1 255.255.255.255

          !

          interface FastEthernet0/0

          ip address 172.16.34.1 255.255.255.240

          duplex auto

          speed auto

          !

          router ospf 100

          log-adjacency-changes

          network 172.16.34.0 0.0.0.15 area 34

          network 192.168.34.1 0.0.0.0 area 34

          !

           

           

          !!!! ROUTER 2 CONFIG !!!!

           

          ip cef

          !

          interface Loopback100

          ip address 192.168.0.1 255.255.255.255

          !

          interface FastEthernet0/0

          ip address 172.16.34.2 255.255.255.240

          duplex auto

          speed auto

          !

          interface Serial1/0

          ip address 172.16.0.1 255.255.255.252

          serial restart-delay 0

          !

          router ospf 100

          log-adjacency-changes

          network 172.16.0.0 0.0.0.3 area 0

          network 172.16.34.0 0.0.0.15 area 34

          network 192.168.0.1 0.0.0.0 area 0

          !

           

           

           

          !!!! ROUTER 3 CONFIG !!!!

          !

          ip cef

          !

          interface Loopback100

          ip address 192.168.0.2 255.255.255.255

          !

          interface FastEthernet0/0

          ip address 172.16.26.2 255.255.255.240

          duplex auto

          speed auto

          !

          interface Serial1/0

          ip address 172.16.0.2 255.255.255.252

          serial restart-delay 0

          !

          router ospf 100

          log-adjacency-changes

          network 172.16.0.0 0.0.0.3 area 0

          network 172.16.26.0 0.0.0.15 area 26

          network 192.168.0.2 0.0.0.0 area 0

          !

           

           

           

          !!!! ROUTER 4 CONFIG !!!!

          !

          ip cef

          !

          interface Loopback100

          ip address 192.168.26.1 255.255.255.255

          !

          interface FastEthernet0/0

          ip address 172.16.26.1 255.255.255.240

          duplex auto

          speed auto

          !

          router ospf 100

          log-adjacency-changes

          network 172.16.26.0 0.0.0.15 area 26

          network 192.168.26.1 0.0.0.0 area 26

          !

           

          Again, many thanks....

          • 2. Re: Multi-area OSPF routing loop avoidance question - can anyone please help?
            Warren Sullivan - CCNP

            Hi RichT, id love to have a look at your questions but unfortunately im toooo busy, i would recommend posting this in the CCNP Study Group, there are a LOT more people there.....

             

            Best of luck

             

            Warren

            • 3. Re: Multi-area OSPF routing loop avoidance question - can anyone please help?
              Brian

              First, you have not created a routing loop in this instance.  A routing loop causes the route to loop indefinitely never reaching its destination.  This did not happen here.

               

              In your first example, you put the static route on ABR-R2 pointing to R1.  Since ABR-R2 poisoned the OSPF learned route it sent to R1, R1 had no path to the destination and therefore the packet is dropped.  No looping problem.  R2 still learned of the OSPF route to R4s loopback address as an LSA Type 3 in Area 0, but since it had a "static" route in the routing table, this is the route that is used.  Therefore, OSPF removed the OSPF learned route from its summary advertisement LSA Type 3 in Area 34 to R1.  This is normal behavior.  See the output below

               

              R2#sh ip ospf database

               

                          OSPF Router with ID (192.168.0.1) (Process ID 100)

               

                              Router Link States (Area 0)

               

              Link ID         ADV Router      Age         Seq#       Checksum Link count

              192.168.0.1     192.168.0.1     228         0x80000005 0x00DA91 3

              192.168.0.2     192.168.0.2     233         0x80000003 0x00DC8E 3

               

                              Summary Net Link States (Area 0)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.26.0     192.168.0.2     181         0x80000003 0x00D22B

              172.16.34.0     192.168.0.1     274         0x80000003 0x008076

              192.168.26.1    192.168.0.2     176         0x80000001 0x00053D   <--- Area 0 LSA Type 3

              192.168.34.1    192.168.0.1     279         0x80000001 0x00B288

               

                              Router Link States (Area 34)

               

              Link ID         ADV Router      Age         Seq#       Checksum Link count

              192.168.0.1     192.168.0.1     286         0x80000002 0x003C56 1

              192.168.34.1    192.168.34.1    286         0x80000003 0x00753C 2

               

                              Net Link States (Area 34)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.34.1     192.168.34.1    287         0x80000001 0x0043A2

               

                              Summary Net Link States (Area 34)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.0.0      192.168.0.1     229         0x80000001 0x006276

              172.16.26.0     192.168.0.1     176         0x80000003 0x005B63

              192.168.0.1     192.168.0.1     289         0x80000001 0x00C5A1

              192.168.0.2     192.168.0.1     219         0x80000001 0x003EE7

              192.168.26.1    192.168.0.1     176         0x80000001 0x008D75  <--- Area 34 LSA Type 3

              R2#conf t

              Enter configuration commands, one per line.  End with CNTL/Z.

              R2(config)#ip route 192.168.26.1 255.255.255.255 172.16.34.1   <--- add the static route on R2

              R2(config)#end

              R2#

              *Mar  1 00:08:48.471: %SYS-5-CONFIG_I: Configured from console by console

              R2#sh ip ospf database

               

                          OSPF Router with ID (192.168.0.1) (Process ID 100)

               

                              Router Link States (Area 0)

               

              Link ID         ADV Router      Age         Seq#       Checksum Link count

              192.168.0.1     192.168.0.1     276         0x80000005 0x00DA91 3

              192.168.0.2     192.168.0.2     281         0x80000003 0x00DC8E 3

               

                              Summary Net Link States (Area 0)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.26.0     192.168.0.2     229         0x80000003 0x00D22B

              172.16.34.0     192.168.0.1     322         0x80000003 0x008076

              192.168.26.1    192.168.0.2     224         0x80000001 0x00053D   <--- Area 0 LSA Type 3

              192.168.34.1    192.168.0.1     327         0x80000001 0x00B288

               

                              Router Link States (Area 34)

               

              Link ID         ADV Router      Age         Seq#       Checksum Link count

              192.168.0.1     192.168.0.1     334         0x80000002 0x003C56 1

              192.168.34.1    192.168.34.1    334         0x80000003 0x00753C 2

               

                              Net Link States (Area 34)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.34.1     192.168.34.1    335         0x80000001 0x0043A2

               

                              Summary Net Link States (Area 34)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.0.0      192.168.0.1     277         0x80000001 0x006276

              172.16.26.0     192.168.0.1     223         0x80000003 0x005B63

              192.168.0.1     192.168.0.1     337         0x80000001 0x00C5A1

              192.168.0.2     192.168.0.1     267         0x80000001 0x003EE7  <--- no more Area 34 LSA Type 3 for 192.168.26.1/32

              R2#sh ip rou

              Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP

                     D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

                     N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

                     E1 - OSPF external type 1, E2 - OSPF external type 2

                     i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

                     ia - IS-IS inter area, * - candidate default, U - per-user static route

                     o - ODR, P - periodic downloaded static route

               

              Gateway of last resort is not set

               

                   172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks

              C       172.16.34.0/28 is directly connected, FastEthernet0/0

              O IA    172.16.26.0/28 [110/74] via 172.16.0.2, 00:04:01, Serial0/0

              C       172.16.0.0/30 is directly connected, Serial0/0

                   192.168.26.0/32 is subnetted, 1 subnets

              S       192.168.26.1 [1/0] via 172.16.34.1    <--- static route

                   192.168.34.0/32 is subnetted, 1 subnets

              O       192.168.34.1 [110/11] via 172.16.34.1, 00:05:39, FastEthernet0/0

                   192.168.0.0/32 is subnetted, 2 subnets

              C       192.168.0.1 is directly connected, Loopback100

              O       192.168.0.2 [110/65] via 172.16.0.2, 00:04:40, Serial0/0

              R2#

               

               

              Secondly, when you added the static route on ABR-R3, R3 also replaced its route entered into the routing table from the OSPF learned route with the static route.  However, here the route is originated in Area 26 as a LSA Type 1.  The Area 0 summary LSA Type 3 is still created on ABR-R3 for 192.168.26.1/32 and all OSPF routers in Area 0 must know of the route.  This is the way OSPF maintains the LSD in the backbone area.  See below output.

               

               

              R3#sh ip ospf database

               

                          OSPF Router with ID (192.168.0.2) (Process ID 100)

               

                              Router Link States (Area 0)

               

              Link ID         ADV Router      Age         Seq#       Checksum Link count

              192.168.0.1     192.168.0.1     656         0x80000005 0x00DA91 3

              192.168.0.2     192.168.0.2     660         0x80000003 0x00DC8E 3

               

                              Summary Net Link States (Area 0)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.26.0     192.168.0.2     607         0x80000003 0x00D22B

              172.16.34.0     192.168.0.1     701         0x80000003 0x008076

              192.168.26.1    192.168.0.2     602         0x80000001 0x00053D   <--- Area 0 LSA Type 3

              192.168.34.1    192.168.0.1     706         0x80000001 0x00B288

               

                              Router Link States (Area 26)

               

              Link ID         ADV Router      Age         Seq#       Checksum Link count

              192.168.0.2     192.168.0.2     617         0x80000002 0x00851A 1

              192.168.26.1    192.168.26.1    617         0x80000002 0x006475 2   <--- Area 26 LSA Type 1

               

                              Net Link States (Area 26)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.26.2     192.168.0.2     617         0x80000001 0x00A470

               

                              Summary Net Link States (Area 26)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.0.0      192.168.0.2     658         0x80000001 0x005C7B

              172.16.34.0     192.168.0.2     648         0x80000001 0x0001B6

              192.168.0.1     192.168.0.2     648         0x80000001 0x0042E3

              192.168.0.2     192.168.0.2     668         0x80000001 0x00B5AF

              192.168.34.1    192.168.0.2     648         0x80000001 0x002FCA

              R3#conf t

              Enter configuration commands, one per line.  End with CNTL/Z.

              R3(config)#ip route 192.168.26.1 255.255.255.255 172.16.0.1   <--- added static route

              R3(config)#end

              R3#

              *Mar  1 00:15:55.343: %SYS-5-CONFIG_I: Configured from console by console

              R3#sh ip ospf database

               

                          OSPF Router with ID (192.168.0.2) (Process ID 100)

               

                              Router Link States (Area 0)

               

              Link ID         ADV Router      Age         Seq#       Checksum Link count

              192.168.0.1     192.168.0.1     709         0x80000005 0x00DA91 3

              192.168.0.2     192.168.0.2     713         0x80000003 0x00DC8E 3

               

                              Summary Net Link States (Area 0)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.26.0     192.168.0.2     660         0x80000003 0x00D22B

              172.16.34.0     192.168.0.1     754         0x80000003 0x008076

              192.168.26.1    192.168.0.2     655         0x80000001 0x00053D   <--- Area 0 LSA Type 3

              192.168.34.1    192.168.0.1     759         0x80000001 0x00B288

               

                              Router Link States (Area 26)

               

              Link ID         ADV Router      Age         Seq#       Checksum Link count

              192.168.0.2     192.168.0.2     670         0x80000002 0x00851A 1

              192.168.26.1    192.168.26.1    670         0x80000002 0x006475 2   <--- Area 26 LSA Type 1

               

                              Net Link States (Area 26)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.26.2     192.168.0.2     670         0x80000001 0x00A470

               

                              Summary Net Link States (Area 26)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.0.0      192.168.0.2     711         0x80000001 0x005C7B

              172.16.34.0     192.168.0.2     701         0x80000001 0x0001B6

              192.168.0.1     192.168.0.2     701         0x80000001 0x0042E3

              192.168.0.2     192.168.0.2     721         0x80000001 0x00B5AF

              192.168.34.1    192.168.0.2     701         0x80000001 0x002FCA

              R3#sh ip rou

              Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP

                     D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

                     N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

                     E1 - OSPF external type 1, E2 - OSPF external type 2

                     i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

                     ia - IS-IS inter area, * - candidate default, U - per-user static route

                     o - ODR, P - periodic downloaded static route

               

              Gateway of last resort is not set

               

                   172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks

              O IA    172.16.34.0/28 [110/74] via 172.16.0.1, 00:12:06, Serial0/0

              C       172.16.26.0/28 is directly connected, FastEthernet0/0

              C       172.16.0.0/30 is directly connected, Serial0/0

                   192.168.26.0/32 is subnetted, 1 subnets

              S       192.168.26.1 [1/0] via 172.16.0.1     <--- static route

                   192.168.34.0/32 is subnetted, 1 subnets

              O IA    192.168.34.1 [110/75] via 172.16.0.1, 00:12:06, Serial0/0

                   192.168.0.0/32 is subnetted, 2 subnets

              O       192.168.0.1 [110/65] via 172.16.0.1, 00:12:51, Serial0/0

              C       192.168.0.2 is directly connected, Loopback100

              R3#

               

               

              Again, since the OSPF LSD must be maintained, you can see that R2 still learns of the route to 192.168.26.1/32 via OSPF in the backbone Area as an O IA route.  The route is in the LSD and the routing table.  Therefore, it is still advertised to R1 as a summary LSA Type 3.  See below.

               

               

              R2#sh ip ospf database

               

                          OSPF Router with ID (192.168.0.1) (Process ID 100)

               

                              Router Link States (Area 0)

               

              Link ID         ADV Router      Age         Seq#       Checksum Link count

              192.168.0.1     192.168.0.1     1458        0x80000005 0x00DA91 3

              192.168.0.2     192.168.0.2     1462        0x80000003 0x00DC8E 3

               

                              Summary Net Link States (Area 0)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.26.0     192.168.0.2     1411        0x80000003 0x00D22B

              172.16.34.0     192.168.0.1     1503        0x80000003 0x008076

              192.168.26.1    192.168.0.2     1406        0x80000001 0x00053D   <--- Area 0 LSA Type 3

              192.168.34.1    192.168.0.1     1508        0x80000001 0x00B288

               

                              Router Link States (Area 34)

               

              Link ID         ADV Router      Age         Seq#       Checksum Link count

              192.168.0.1     192.168.0.1     1516        0x80000002 0x003C56 1

              192.168.34.1    192.168.34.1    1516        0x80000003 0x00753C 2

               

                              Net Link States (Area 34)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.34.1     192.168.34.1    1517        0x80000001 0x0043A2

               

                              Summary Net Link States (Area 34)

               

              Link ID         ADV Router      Age         Seq#       Checksum

              172.16.0.0      192.168.0.1     1459        0x80000001 0x006276

              172.16.26.0     192.168.0.1     1406        0x80000003 0x005B63   <--- Area 34 LSA Type 3

              192.168.0.1     192.168.0.1     1519        0x80000001 0x00C5A1

              192.168.0.2     192.168.0.1     1449        0x80000001 0x003EE7

              192.168.26.1    192.168.0.1     948         0x80000001 0x008D75

              R2#sh ip rou

              Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP

                     D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

                     N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

                     E1 - OSPF external type 1, E2 - OSPF external type 2

                     i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

                     ia - IS-IS inter area, * - candidate default, U - per-user static route

                     o - ODR, P - periodic downloaded static route

               

              Gateway of last resort is not set

               

                   172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks

              C       172.16.34.0/28 is directly connected, FastEthernet0/0

              O IA    172.16.26.0/28 [110/74] via 172.16.0.2, 00:23:41, Serial0/0

              C       172.16.0.0/30 is directly connected, Serial0/0

                   192.168.26.0/32 is subnetted, 1 subnets

              O IA    192.168.26.1 [110/75] via 172.16.0.2, 00:15:59, Serial0/0   <--- OSPF learned route

                   192.168.34.0/32 is subnetted, 1 subnets

              O       192.168.34.1 [110/11] via 172.16.34.1, 00:25:20, FastEthernet0/0

                   192.168.0.0/32 is subnetted, 2 subnets

              C       192.168.0.1 is directly connected, Loopback100

              O       192.168.0.2 [110/65] via 172.16.0.2, 00:24:20, Serial0/0

              R2#

               

               

              In the second example you did create a routing loop.  If you were to ping 192.168.26.1/32 from R1, the traffic will bounce between R2 and R3 until the TTL expires.

               

              R1>traceroute 192.168.26.1

               

              Type escape sequence to abort.

              Tracing the route to 192.168.26.1

               

                1 172.16.34.2 24 msec 8 msec 12 msec

                2 172.16.0.2 40 msec 32 msec 12 msec

                3 172.16.0.1 8 msec 28 msec 8 msec

                4 172.16.0.2 12 msec 8 msec 12 msec

                5 172.16.0.1 8 msec 8 msec 12 msec

                6 172.16.0.2 44 msec 36 msec 12 msec

                7 172.16.0.1 20 msec 32 msec 16 msec

                8 172.16.0.2 44 msec 28 msec 12 msec

                9 172.16.0.1 24 msec 8 msec 12 msec

              10 172.16.0.2 52 msec 12 msec 64 msec

              11 172.16.0.1 28 msec 20 msec 64 msec

              12 172.16.0.2 28 msec 12 msec 56 msec

              13

               

              Hope this helps.

               

              Brian

               

              • 4. Re: Multi-area OSPF routing loop avoidance question - can anyone please help?
                RichT

                Hi Brian,

                Firstly, thanks very much for spending the time and effort to look and reply to my post.

                Your description of what the routers OSPF and routing tables are doing in each situation follows along the same as mine - which for me is reassuring.

                However, although you say:-

                "In your first example, you put the static route on ABR-R2 pointing to R1. Since ABR-R2 poisoned the OSPF learned route it sent to R1, R1 had no path to the destination and therefore the packet is dropped. No looping problem. R2 still learned of the OSPF route to R4s loopback address as an LSA Type 3 in Area 0, but since it had a "static" route in the routing table, this is the route that is used. Therefore, OSPF removed the OSPF learned route from its summary advertisement LSA Type 3 in Area 34 to R1. This is normal behavior."

                What I want to know is:

                1). As this is normal behaviour, do you know of any formal documentation that describes it, as the introduction of this specific static route is clearly influencing the OSPF topology database?

                2). Why did ABR R3 not display the same behaviour for the OSP Summary Type 3 LSA into Backbone Area 0 when the static route was applied here?

                After all, it too used the static route in its routing table!!!!!

                I know you said "This is the way OSPF maintains the LSD in the backbone area", but can you please expand on this.

                As this is an inter-area route from Area 0's perspective, it’s not part of Area 0's topology, so like in the first attempted loop example, it just doesn't make sense to continue advertising it as reachable.

                Hence my question - so why does it?

                Put another way, if this is the way OSPF maintains the LSD in the backbone area, then why does it not do the same for leaf area 26 in the first attempted loop example?

                I'm afraid I just cannot see the logic!!!!!!!

                Again, I really appreciate your thoughts/comments....

                Kind regards

                Richard

                • 5. Re: Multi-area OSPF routing loop avoidance question - can anyone please help?
                  RichT

                  Sorry - meant to say " Put another way, if this is the way OSPF maintains the LSD in the backbone area, then why does it not do the same for leaf area 34 in the first attempted loop example?

                   

                  Thanks...

                   

                  Richard...

                  • 6. Re: Multi-area OSPF routing loop avoidance question - can anyone please help?
                    Brian

                    You have to look at the OSPF database entries.

                     

                    Case(1)

                    In your first example the static route is applied to R2.  R2 is an ABR for Area 0 and Area 34.  Area 0 has learned the route to R4 via R3 (ABR for Area 0/Area 26).  The route is in the OSPF LSD on R2 for Area 0.  But because of the static route which is better, the router is not advertising this route to Area 34.  This is normal and what you would expect.

                     

                    Case(2)

                    The static route is applied on R3.  R3 is an ABR for Area 0 and Area 26.  Since the route is learned via OSP from R4 (LSA Type 1 in the OSPF LSD.  OSPF must inject this to Area 0.  Thererfore, it is in the OSPF LSD o R3 as a LSA Type 3 summary route.  Now even though a static route exists and is better, OSPF by design says that routers in the Backbone Area must have the same LSD.  Therefore, R3 advertises or floods the LSA Type 3 R2 in Area 0.   R2 ABR in turn advertises this route to R1 in Area 34 as a LSA Type 3.

                     

                    Try taking a look at the following document and RFC 2328.

                     

                    http://www.cisco.com/en/US/tech/tk365/technologies_white_paper09186a0080094e9e.shtml

                     

                    So, basically it matters as to where or which router you install this static route.   In Case(1) you pointed the static route away from Area 0 towards Area 34.  But in Case(2) you pointed the static towards Area 0.  So the behavior is going to be different.

                     

                    Hope this helps.

                     

                    Brian

                     

                    • 7. Re: Multi-area OSPF routing loop avoidance question - can anyone please help?
                      Brian

                      Here is some additional info from the doument posted above.

                       

                      The algorithm places each router at the root of a tree and calculates the shortest path to each destination based on the cumulative cost required to reach that destination. Each router will have its own view of the topology even though all the routers will build a shortest path tree using the same link-state database.

                       

                      As previously mentioned, OSPF uses flooding to exchange link-state updates between routers. Any change in routing information is flooded to all routers in the network. Areas are introduced to put a boundary on the explosion of link-state updates. Flooding and calculation of the Dijkstra algorithm on a router is limited to changes within an area. All routers within an area have the exact link-state database. Routers that belong to multiple areas, and connect these areas to the backbone area are called area border routers (ABR). ABRs must therefore maintain information describing the backbone areas and other attached areas.

                       

                       

                      The RFC may have more information regarding the "internal" workings of OSPF.

                       

                      Hope this helps.

                       

                      Brian

                       

                      • 8. Re: Multi-area OSPF routing loop avoidance question - can anyone please help?
                        RichT

                        Thanks Brian ... I think I've got it now!!!

                         

                        So, for case 2:

                        The clue is in the rules governing that all routers in an area MUST have the same LSD and that because ABR R2 by design MUST summerise its Leaf area 26 networks into the backbone (regardless of the fact it uses a static route to the Leaf area 26 prefix in its routing table pointing to the backbone), ALL backbone ABR link state databases must see the same summary route.

                         

                        Where as in case 1:

                        The ABR R2 maintains this rule by having its LSD for Area 0 synchronised with all other Area 0 routers and all see the leaf area 26 prefix, but because it uses a static route in its routing table, removes the summary route from its leaf area 34 LSD which it does so after poisoning the route and informing the rest of leaf area 34.

                         

                        It makes so much sense now - I can't beleive I overlooked this basic rule!!!!!

                        It just goes to show that sometimes it's necessary just to go back to basics.....

                         

                        Once again, thanks so much for spending time on this post - its really appreciated...

                         

                        Kind regards

                         

                        Richard

                        • 9. Re: Multi-area OSPF routing loop avoidance question - can anyone please help?
                          Brian

                          Glad I could help.  Thank you for the question.  When you asked for references I had to go ok, "I know read this before, but where?"   I had to review, but it was fun.  Thanks and happy studying.

                           

                          Brian