​Connecting OSPF Non-Backbone Areas Part 2

What happens if you create a connection between two non-backbone OSPF areas that already connect to area 0? We sometimes call this a backdoor link. Connecting two non-backbone areas was covered in part 1.

Will routes be shared between the two areas? Or will no routes be shared and traffic will travel via the backbone area?

What happens when we lab this out? We’ll look at both Junos and IOS-XE.

Before you read on, I want you to think about the following questions:

  • Will routes be shared over the backdoor link?
  • Will this behavior differ between Junos and IOS-XE?

The Juniper Lab

The lab is going to be set up as per the following diagram. All the OSPF configurations will be completed except the backdoor connection between areas 1 and 3.

  • A mix of device types is used to add a little variety
  • R4, R5, and R3 will be in area 0. Their loopback interfaces will be in this area too.
  • R1 and R2 will be in areas 1 and 3 respectively.
  • We’re using plain areas, no stub or NSSA area types.

Basic Configuration

The OSPF configuration for the devices is as follows:

R1

protocols {
    ospf {
        area 0.0.0.1 {
            interface lo0.0 {
                passive;
            }
            interface ge-0/0/1.0;
        }
        reference-bandwidth 100g;
    }
}

R2

protocols {
    ospf {
        area 0.0.0.3 {
            interface lo0.0 {
                passive;
            }
            interface xe-0/0/1.0;
        }
        reference-bandwidth 100g;
    }
}

R3

protocols {
    ospf {
        area 0.0.0.0 {
            interface lo0.0 {
                passive;
            }
            interface ge-0/0/1.0;
        }
        area 0.0.0.3 {
            interface ge-0/0/0.0;
        }
        reference-bandwidth 100g;
    }                                   
}

R4

protocols {
    ospf {
        area 0.0.0.0 {
            interface lo0.0 {
                passive;
            }
            interface ge-0/0/0.0;
        }
        area 0.0.0.1 {
            interface ge-0/0/1.0;
        }                               
        reference-bandwidth 100g;
    }
}

R5

protocols {
    ospf {
        area 0.0.0.0 {
            interface lo0.0 {
                passive;
            }
            interface ge-0/0/0.0;
            interface ge-0/0/1.0;
        }
        reference-bandwidth 100g;
    }                                   
}

Verification Of Basic Connectivity

With the basic connectivity and configuration in place, we can now perform a few simple checks.

Let’s look at the route table and OSPF database on R5

lab@vmx-R5> show route protocol ospf 

inet.0: 14 destinations, 14 routes (14 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.100.2.0/24      *[OSPF/10] 00:04:51, metric 110
                    >  to 10.100.4.1 via ge-0/0/1.0
10.100.3.0/24      *[OSPF/10] 00:05:12, metric 200
                    >  to 10.100.5.1 via ge-0/0/0.0
172.16.0.1/32      *[OSPF/10] 00:05:12, metric 200
                    >  to 10.100.5.1 via ge-0/0/0.0
172.16.0.2/32      *[OSPF/10] 00:04:51, metric 110
                    >  to 10.100.4.1 via ge-0/0/1.0
172.16.0.3/32      *[OSPF/10] 00:04:51, metric 100
                    >  to 10.100.4.1 via ge-0/0/1.0
172.16.0.4/32      *[OSPF/10] 00:05:12, metric 100
                    >  to 10.100.5.1 via ge-0/0/0.0
224.0.0.5/32       *[OSPF/10] 01:01:38, metric 1
                       MultiRecv

inet6.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)

lab@vmx-R5> show ospf database 

    OSPF database, Area 0.0.0.0
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Router   172.16.0.3       172.16.0.3       0x80000003   295  0x22 0x10df  48
Router   172.16.0.4       172.16.0.4       0x80000004   316  0x22 0x840b  48
Router  *172.16.0.5       172.16.0.5       0x80000004   294  0x22 0xe649  60
Network *10.100.4.2       172.16.0.5       0x80000001   294  0x22 0x3949  32
Network *10.100.5.2       172.16.0.5       0x80000001   315  0x22 0x3c44  32
Summary  10.100.2.0       172.16.0.3       0x80000002   295  0x22 0xf908  28
Summary  10.100.3.0       172.16.0.4       0x80000003   295  0x22 0x6e36  28
Summary  172.16.0.1       172.16.0.4       0x80000001   376  0x22 0x3b1f  28
Summary  172.16.0.2       172.16.0.3       0x80000001   336  0x22 0xaf05  28

lab@vmx-R5>

We have routes to the loopback interfaces of all the other routers. And we can see summary LSA’s in the OSPF database for routes from areas 1 and 3.

Next, we will look at R1. In particular, we are interested in the path it will take to reach the loopback of R2. Remember the routers are in different areas and currently the direct connection between them is not up or configured in OSPF.

lab@vsrx-R1> show route protocol ospf 

inet.0: 14 destinations, 14 routes (14 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.100.2.0/24      *[OSPF/10] 00:07:53, metric 220
                    >  to 10.100.3.2 via ge-0/0/1.0
10.100.4.0/24      *[OSPF/10] 00:08:14, metric 210
                    >  to 10.100.3.2 via ge-0/0/1.0
10.100.5.0/24      *[OSPF/10] 00:53:17, metric 110
                    >  to 10.100.3.2 via ge-0/0/1.0
172.16.0.2/32      *[OSPF/10] 00:07:53, metric 220
                    >  to 10.100.3.2 via ge-0/0/1.0
172.16.0.3/32      *[OSPF/10] 00:07:53, metric 210
                    >  to 10.100.3.2 via ge-0/0/1.0
172.16.0.4/32      *[OSPF/10] 00:53:17, metric 10
                    >  to 10.100.3.2 via ge-0/0/1.0
172.16.0.5/32      *[OSPF/10] 00:08:14, metric 110
                    >  to 10.100.3.2 via ge-0/0/1.0
224.0.0.5/32       *[OSPF/10] 00:54:31, metric 1
                       MultiRecv

inet6.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)

lab@vsrx-R1> show ospf database 

    OSPF database, Area 0.0.0.1
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Router  *172.16.0.1       172.16.0.1       0x80000005   203  0x22 0xdc1b  48
Router   172.16.0.4       172.16.0.4       0x80000005   138  0x22 0x80e2  36
Network *10.100.3.1       172.16.0.1       0x80000002   207  0x22 0x4a40  32
Summary  10.100.2.0       172.16.0.4       0x80000001   480  0x22 0xcd6b  28
Summary  10.100.4.0       172.16.0.4       0x80000002   480  0x22 0x51ee  28
Summary  10.100.5.0       172.16.0.4       0x80000007   480  0x22 0x504e  28
Summary  172.16.0.2       172.16.0.4       0x80000001   480  0x22 0x8169  28
Summary  172.16.0.3       172.16.0.4       0x80000001   480  0x22 0x13e0  28
Summary  172.16.0.4       172.16.0.4       0x80000003   561  0x22 0x2d8c  28
Summary  172.16.0.5       172.16.0.4       0x80000001   500  0x22 0x1343  28

lab@vsrx-R1> traceroute 172.16.0.2 source 172.16.0.1 
traceroute to 172.16.0.2 (172.16.0.2) from 172.16.0.1, 30 hops max, 52 byte packets
 1  10.100.3.2 (10.100.3.2)  3.217 ms  2.677 ms  2.652 ms
 2  10.100.5.2 (10.100.5.2)  5.869 ms  3.894 ms  5.336 ms
 3  10.100.4.1 (10.100.4.1)  35.232 ms  5.992 ms  5.789 ms
 4  172.16.0.2 (172.16.0.2)  112.995 ms  202.890 ms  210.678 ms

lab@vsrx-R1>

In the database output, the summary for 172.16.0.1 is advertised by 172.16.0.4.

We can repeat the above commands on R2 and confirm its behavior.

{master:0}
lab@vqfx-R2> show route protocol ospf 

inet.0: 16 destinations, 16 routes (16 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.100.3.0/24      *[OSPF/10] 00:09:17, metric 220
                    >  to 10.100.2.2 via xe-0/0/1.0
10.100.4.0/24      *[OSPF/10] 00:35:41, metric 20
                    >  to 10.100.2.2 via xe-0/0/1.0
10.100.5.0/24      *[OSPF/10] 00:09:17, metric 120
                    >  to 10.100.2.2 via xe-0/0/1.0
172.16.0.1/32      *[OSPF/10] 00:09:17, metric 220
                    >  to 10.100.2.2 via xe-0/0/1.0
172.16.0.3/32      *[OSPF/10] 00:35:41, metric 10
                    >  to 10.100.2.2 via xe-0/0/1.0
172.16.0.4/32      *[OSPF/10] 00:09:17, metric 120
                    >  to 10.100.2.2 via xe-0/0/1.0
172.16.0.5/32      *[OSPF/10] 00:09:17, metric 20
                    >  to 10.100.2.2 via xe-0/0/1.0
224.0.0.5/32       *[OSPF/10] 00:35:51, metric 1
                       MultiRecv

inet6.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)

{master:0}
lab@vqfx-R2> show ospf database 

    OSPF database, Area 0.0.0.3
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Router  *172.16.0.2       172.16.0.2       0x80000002  2149  0x22 0x7f1   48
Router   172.16.0.3       172.16.0.3       0x80000005    32  0x22 0x2a96  36
Network  10.100.2.2       172.16.0.3       0x80000002   279  0x22 0x3751  32
Summary  10.100.3.0       172.16.0.3       0x80000001   562  0x22 0xc870  28
Summary  10.100.4.0       172.16.0.3       0x80000006   562  0x22 0xdb20  28
Summary  10.100.5.0       172.16.0.3       0x80000001   562  0x22 0xc6d4  28
Summary  172.16.0.1       172.16.0.3       0x80000001   562  0x22 0x915b  28
Summary  172.16.0.3       172.16.0.3       0x80000003   603  0x22 0x3d7e  28
Summary  172.16.0.4       172.16.0.3       0x80000001   562  0x22 0x87c6  28
Summary  172.16.0.5       172.16.0.3       0x80000001   562  0x22 0x9120  28

{master:0}
lab@vqfx-R2> traceroute 172.16.0.1 source 172.16.0.2 
traceroute to 172.16.0.1 (172.16.0.1) from 172.16.0.2, 30 hops max, 40 byte packets
 1  10.100.2.2 (10.100.2.2)  108.519 ms  192.197 ms  206.526 ms
 2  10.100.4.2 (10.100.4.2)  197.529 ms  199.467 ms  204.317 ms
 3  10.100.5.1 (10.100.5.1)  204.517 ms  194.561 ms  202.367 ms
 4  172.16.0.1 (172.16.0.1)  203.783 ms  200.459 ms  201.650 ms

{master:0}
lab@vqfx-R2>

This also looks as we expect, with the traceroute showing the path taken is via area 0.

Configuring Direct Connection Between Area 1 and Area 3

To attempt to make this work, either R1 or R2 will need to be configured with an additional area to match the other device.

In this case, I’ve chosen to do that on R1. The configurations now look like this:

R1

protocols {
    ospf {
        area 0.0.0.1 {
            interface lo0.0 {
                passive;
            }
            interface ge-0/0/1.0;
        }
        area 0.0.0.3 {
            interface ge-0/0/0.0;
        }
        reference-bandwidth 100g;
    }                                   
}

R2

protocols {                             
    ospf {
        area 0.0.0.3 {
            interface lo0.0 {
                passive;
            }
            interface xe-0/0/1.0;
            interface xe-0/0/0.0;
        }
        reference-bandwidth 100g;
    }
}

Verification of R1 and R2

First, let’s check on R1. We will repeat the earlier steps of showing the OSPF routes in inet.0, the OSPF database, and show a traceroute.

lab@vsrx-R1> show route protocol ospf 

inet.0: 15 destinations, 15 routes (15 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.100.2.0/24      *[OSPF/10] 00:00:43, metric 20
                    >  to 10.100.1.2 via ge-0/0/0.0
10.100.4.0/24      *[OSPF/10] 00:00:43, metric 30
                    >  to 10.100.1.2 via ge-0/0/0.0
10.100.5.0/24      *[OSPF/10] 01:00:48, metric 110
                    >  to 10.100.3.2 via ge-0/0/1.0
172.16.0.2/32      *[OSPF/10] 00:00:43, metric 10
                    >  to 10.100.1.2 via ge-0/0/0.0
172.16.0.3/32      *[OSPF/10] 00:00:43, metric 20
                    >  to 10.100.1.2 via ge-0/0/0.0
172.16.0.4/32      *[OSPF/10] 01:00:48, metric 10
                    >  to 10.100.3.2 via ge-0/0/1.0
172.16.0.5/32      *[OSPF/10] 00:00:43, metric 30
                    >  to 10.100.1.2 via ge-0/0/0.0
224.0.0.5/32       *[OSPF/10] 01:02:02, metric 1
                       MultiRecv

inet6.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)

lab@vsrx-R1> show ospf database 

    OSPF database, Area 0.0.0.1
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Router  *172.16.0.1       172.16.0.1       0x80000006   118  0x22 0xdd18  48
Router   172.16.0.4       172.16.0.4       0x80000005   599  0x22 0x80e2  36
Network *10.100.3.1       172.16.0.1       0x80000002   668  0x22 0x4a40  32
Summary *10.100.1.0       172.16.0.1       0x80000003    58  0x22 0xff4   28
Summary  10.100.1.0       172.16.0.4       0x80000001    99  0x22 0x3df2  28
Summary *10.100.2.0       172.16.0.1       0x80000001    58  0x22 0x6c8e  28
Summary  10.100.2.0       172.16.0.4       0x80000001   941  0x22 0xcd6b  28
Summary  10.100.4.0       172.16.0.4       0x80000003   119  0x22 0x4fef  28
Summary  10.100.5.0       172.16.0.4       0x80000008   119  0x22 0x4e4f  28
Summary *172.16.0.2       172.16.0.1       0x80000001    58  0x22 0xbbfa  28
Summary  172.16.0.2       172.16.0.4       0x80000001   941  0x22 0x8169  28
Summary  172.16.0.3       172.16.0.4       0x80000001   941  0x22 0x13e0  28
Summary  172.16.0.4       172.16.0.4       0x80000004    67  0x22 0x2b8d  28
Summary  172.16.0.5       172.16.0.4       0x80000001   961  0x22 0x1343  28

    OSPF database, Area 0.0.0.3
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Router  *172.16.0.1       172.16.0.1       0x80000004    58  0x22 0x28a0  36
Router   172.16.0.2       172.16.0.2       0x80000005    59  0x22 0x37c2  60
Router   172.16.0.3       172.16.0.3       0x80000005   411  0x22 0x2a96  36
Network  10.100.1.2       172.16.0.2       0x80000001    59  0x22 0x325b  32
Network  10.100.2.2       172.16.0.3       0x80000002   658  0x22 0x3751  32
Summary *10.100.3.0       172.16.0.1       0x80000002    58  0x22 0xfa08  28
Summary  10.100.3.0       172.16.0.3       0x80000001   941  0x22 0xc870  28
Summary  10.100.4.0       172.16.0.3       0x80000007    60  0x22 0xd921  28
Summary  10.100.5.0       172.16.0.3       0x80000002    60  0x22 0xc4d5  28
Summary *172.16.0.1       172.16.0.1       0x80000001   118  0x22 0x6160  28
Summary  172.16.0.1       172.16.0.3       0x80000001   941  0x22 0x915b  28
Summary  172.16.0.3       172.16.0.3       0x80000003   982  0x22 0x3d7e  28
Summary  172.16.0.4       172.16.0.3       0x80000001   941  0x22 0x87c6  28
Summary  172.16.0.5       172.16.0.3       0x80000001   941  0x22 0x9120  28

lab@vsrx-R1> traceroute 172.16.0.2 source 172.16.0.1    
traceroute to 172.16.0.2 (172.16.0.2) from 172.16.0.1, 30 hops max, 52 byte packets
 1  172.16.0.2 (172.16.0.2)  108.866 ms  206.099 ms  207.507 ms

lab@vsrx-R1>

In the database output for area 1, an additional summary for 172.16.0.2 is now advertised by R1 itself, 172.16.0.1. It also has the Router LSA for R2 directly from area3.

Now let’s repeat that on R2.

{master:0}
lab@vqfx-R2> show route protocol ospf                   

inet.0: 17 destinations, 17 routes (17 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.100.3.0/24      *[OSPF/10] 00:03:44, metric 20
                    >  to 10.100.1.1 via xe-0/0/0.0
10.100.4.0/24      *[OSPF/10] 00:44:50, metric 20
                    >  to 10.100.2.2 via xe-0/0/1.0
10.100.5.0/24      *[OSPF/10] 00:18:26, metric 120
                    >  to 10.100.2.2 via xe-0/0/1.0
172.16.0.1/32      *[OSPF/10] 00:03:44, metric 10
                    >  to 10.100.1.1 via xe-0/0/0.0
172.16.0.3/32      *[OSPF/10] 00:44:50, metric 10
                    >  to 10.100.2.2 via xe-0/0/1.0
172.16.0.4/32      *[OSPF/10] 00:18:26, metric 120
                    >  to 10.100.2.2 via xe-0/0/1.0
172.16.0.5/32      *[OSPF/10] 00:18:27, metric 20
                    >  to 10.100.2.2 via xe-0/0/1.0
224.0.0.5/32       *[OSPF/10] 00:45:01, metric 1
                       MultiRecv

inet6.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)

{master:0}
lab@vqfx-R2> show ospf database                         

    OSPF database, Area 0.0.0.3
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Router   172.16.0.1       172.16.0.1       0x80000004   228  0x22 0x28a0  36
Router  *172.16.0.2       172.16.0.2       0x80000005   227  0x22 0x37c2  60
Router   172.16.0.3       172.16.0.3       0x80000005   580  0x22 0x2a96  36
Network *10.100.1.2       172.16.0.2       0x80000001   227  0x22 0x325b  32
Network  10.100.2.2       172.16.0.3       0x80000002   827  0x22 0x3751  32
Summary  10.100.3.0       172.16.0.1       0x80000002   229  0x22 0xfa08  28
Summary  10.100.3.0       172.16.0.3       0x80000001  1110  0x22 0xc870  28
Summary  10.100.4.0       172.16.0.3       0x80000007   228  0x22 0xd921  28
Summary  10.100.5.0       172.16.0.3       0x80000002   228  0x22 0xc4d5  28
Summary  172.16.0.1       172.16.0.1       0x80000001   289  0x22 0x6160  28
Summary  172.16.0.1       172.16.0.3       0x80000001  1110  0x22 0x915b  28
Summary  172.16.0.3       172.16.0.3       0x80000004    86  0x22 0x3b7f  28
Summary  172.16.0.4       172.16.0.3       0x80000001  1110  0x22 0x87c6  28
Summary  172.16.0.5       172.16.0.3       0x80000001  1110  0x22 0x9120  28

{master:0}
lab@vqfx-R2> traceroute 172.16.0.1 source 172.16.0.2    
traceroute to 172.16.0.1 (172.16.0.1) from 172.16.0.2, 30 hops max, 40 byte packets
 1  172.16.0.1 (172.16.0.1)  110.391 ms  196.835 ms  202.827 ms

{master:0}
lab@vqfx-R2>

Again we see an additional summary in area 3, generated by R1 for the R1 loopback

It would appear, on Junos at least, that directly connecting two areas will allow them to directly share routes, even when the areas have a connection via area 0 already.

This isn’t too surprising given the behavior we saw in part 1.

Perhaps the interesting question is what R4 thinks of this situation. How do you think R4 will route traffic to R2’s loopback?

lab@vmx-R4> show route protocol ospf 

inet.0: 15 destinations, 15 routes (15 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.100.1.0/24      *[OSPF/10] 00:14:47, metric 220
                    >  to 10.100.5.2 via ge-0/0/0.0
10.100.2.0/24      *[OSPF/10] 00:28:49, metric 210
                    >  to 10.100.5.2 via ge-0/0/0.0
10.100.4.0/24      *[OSPF/10] 00:29:10, metric 200
                    >  to 10.100.5.2 via ge-0/0/0.0
172.16.0.1/32      *[OSPF/10] 01:14:11, metric 100
                    >  to 10.100.3.1 via ge-0/0/1.0
172.16.0.2/32      *[OSPF/10] 00:28:49, metric 210
                    >  to 10.100.5.2 via ge-0/0/0.0
172.16.0.3/32      *[OSPF/10] 00:28:49, metric 200
                    >  to 10.100.5.2 via ge-0/0/0.0
172.16.0.5/32      *[OSPF/10] 00:29:10, metric 100
                    >  to 10.100.5.2 via ge-0/0/0.0
224.0.0.5/32       *[OSPF/10] 01:22:33, metric 1
                       MultiRecv

inet6.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)

lab@vmx-R4> show ospf database 

    OSPF database, Area 0.0.0.0
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Router   172.16.0.3       172.16.0.3       0x80000004   473  0x22 0xee0   48
Router  *172.16.0.4       172.16.0.4       0x80000005   593  0x22 0x820c  48
Router   172.16.0.5       172.16.0.5       0x80000004  1734  0x22 0xe649  60
Network  10.100.4.2       172.16.0.5       0x80000001  1734  0x22 0x3949  32
Network  10.100.5.2       172.16.0.5       0x80000002   605  0x22 0x3a45  32
Summary  10.100.1.0       172.16.0.3       0x80000002   853  0x22 0x698f  28
Summary  10.100.2.0       172.16.0.3       0x80000003   853  0x22 0xf709  28
Summary *10.100.3.0       172.16.0.4       0x80000004   912  0x22 0x6c37  28
Summary *172.16.0.1       172.16.0.4       0x80000002  1125  0x22 0x3920  28
Summary  172.16.0.2       172.16.0.3       0x80000002   958  0x22 0xad06  28

    OSPF database, Area 0.0.0.1
 Type       ID               Adv Rtr           Seq      Age  Opt  Cksum  Len 
Router   172.16.0.1       172.16.0.1       0x80000006   913  0x22 0xdd18  48
Router  *172.16.0.4       172.16.0.4       0x80000005  1391  0x22 0x80e2  36
Network  10.100.3.1       172.16.0.1       0x80000003   284  0x22 0x4841  32
Summary  10.100.1.0       172.16.0.1       0x80000003   852  0x22 0xff4   28
Summary *10.100.1.0       172.16.0.4       0x80000001   891  0x22 0x3df2  28
Summary  10.100.2.0       172.16.0.1       0x80000001   852  0x22 0x6c8e  28
Summary *10.100.2.0       172.16.0.4       0x80000002    96  0x22 0xcb6c  28
Summary *10.100.4.0       172.16.0.4       0x80000003   912  0x22 0x4fef  28
Summary *10.100.5.0       172.16.0.4       0x80000008   912  0x22 0x4e4f  28
Summary  172.16.0.2       172.16.0.1       0x80000001   852  0x22 0xbbfa  28
Summary *172.16.0.2       172.16.0.4       0x80000001  1733  0x22 0x8169  28
Summary *172.16.0.3       172.16.0.4       0x80000001  1733  0x22 0x13e0  28
Summary *172.16.0.4       172.16.0.4       0x80000004   859  0x22 0x2b8d  28
Summary *172.16.0.5       172.16.0.4       0x80000002   345  0x22 0x1144  28

lab@vmx-R4> traceroute 172.16.0.2 source 172.16.0.4 
traceroute to 172.16.0.2 (172.16.0.2) from 172.16.0.4, 30 hops max, 52 byte packets
 1  10.100.5.2 (10.100.5.2)  6.780 ms  39.184 ms  5.123 ms
 2  10.100.4.1 (10.100.4.1)  6.225 ms  4.777 ms  4.521 ms
 3  172.16.0.2 (172.16.0.2)  111.669 ms  205.213 ms  199.694 ms

lab@vmx-R4>

So R4 is taking the path via R5 and R3 to reach R2, rather than simply going via R1.

IOS-XE Lab

The lab is going to be set up similarly to the Juniper lab. All the OSPF configurations will be completed except the backdoor connection between areas 1 and 3.

  • The devices are CSR1000v’s running IOS-XE 16.06.06
  • R4, R5, and R3 will be in area 0. Their loopback interfaces will be in this area too.
  • R1 and R2 will be in areas 1 and 3 respectively.
  • We’re using plain areas, no stub or NSSA area types.

Basic Configuration

The OSPF configuration for the devices is as follows:

R1

interface Loopback0
 ip address 172.16.0.1 255.255.255.255
!
interface GigabitEthernet3
 ip address 10.100.3.1 255.255.255.0
 negotiation auto
 no mop enabled
 no mop sysid
!
    
router ospf 1
 network 10.100.3.0 0.0.0.255 area 1
 network 172.16.0.1 0.0.0.0 area 1

R2

interface Loopback0
 ip address 172.16.0.2 255.255.255.255
!
interface GigabitEthernet3
 ip address 10.100.2.1 255.255.255.0
 negotiation auto
 no mop enabled
 no mop sysid
!
router ospf 1
 network 10.100.2.0 0.0.0.255 area 3
 network 172.16.0.2 0.0.0.0 area 3

R3

interface Loopback0
 ip address 172.16.0.3 255.255.255.255
!
interface GigabitEthernet2
 ip address 10.100.4.1 255.255.255.0
 negotiation auto
 no mop enabled
 no mop sysid
!
interface GigabitEthernet3
 ip address 10.100.2.2 255.255.255.0
 negotiation auto
 no mop enabled
 no mop sysid
!         
router ospf 1
 network 10.100.2.0 0.0.0.255 area 3
 network 10.100.4.0 0.0.0.255 area 0
 network 172.16.0.3 0.0.0.0 area 0

R4

interface Loopback0
 ip address 172.16.0.4 255.255.255.255
!
interface GigabitEthernet3
 ip address 10.100.3.2 255.255.255.0
 negotiation auto
 no mop enabled
 no mop sysid
!
interface GigabitEthernet4
 ip address 10.100.5.1 255.255.255.0
 negotiation auto
 no mop enabled
 no mop sysid
!         
router ospf 1
 network 10.100.3.0 0.0.0.255 area 1
 network 10.100.5.0 0.0.0.255 area 0
 network 172.16.0.4 0.0.0.0 area 0

R5

interface Loopback0
 ip address 172.16.0.5 255.255.255.255
!
interface GigabitEthernet2
 ip address 10.100.4.2 255.255.255.0
 negotiation auto
 no mop enabled
 no mop sysid
!
interface GigabitEthernet4
 ip address 10.100.5.2 255.255.255.0
 negotiation auto
 no mop enabled
 no mop sysid
!         
router ospf 1
 network 10.100.4.0 0.0.0.255 area 0
 network 10.100.5.0 0.0.0.255 area 0
 network 172.16.0.5 0.0.0.0 area 0

Verification Of Basic Connectivity

Time to perform a few simple checks and make sure things look like they should.

Let’s look at the route table and OSPF database on R5

CSR-R5#show ip route ospf
Codes: L - local, 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, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 8 subnets, 2 masks
O IA     10.100.2.0/24 [110/2] via 10.100.4.1, 00:12:43, GigabitEthernet2
O IA     10.100.3.0/24 [110/2] via 10.100.5.1, 00:13:55, GigabitEthernet4
      172.16.0.0/32 is subnetted, 5 subnets
O IA     172.16.0.1 [110/3] via 10.100.5.1, 00:13:55, GigabitEthernet4
O IA     172.16.0.2 [110/3] via 10.100.4.1, 00:11:56, GigabitEthernet2
O        172.16.0.3 [110/2] via 10.100.4.1, 00:12:44, GigabitEthernet2
O        172.16.0.4 [110/2] via 10.100.5.1, 00:13:55, GigabitEthernet4
CSR-R5#show ip ospf database

            OSPF Router with ID (172.16.0.5) (Process ID 1)

		Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
172.16.0.3      172.16.0.3      769         0x80000004 0x005F97 2         
172.16.0.4      172.16.0.4      844         0x80000004 0x007181 2         
172.16.0.5      172.16.0.5      771         0x80000006 0x00FFF4 3         

		Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.4.2      172.16.0.5      771         0x80000001 0x003949
10.100.5.1      172.16.0.4      844         0x80000001 0x005032

		Summary Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.2.0      172.16.0.3      771         0x80000001 0x00A16A
10.100.3.0      172.16.0.4      899         0x80000001 0x009079
172.16.0.1      172.16.0.4      899         0x80000001 0x006359
172.16.0.2      172.16.0.3      725         0x80000001 0x005F5D
CSR-R5#

We have routes to the loopback interfaces of the other routers. We can also see summary LSA’s in the OSPF database for areas 1 and 3.

Next, we will look at R1. We have not yet enabled the direct link to R2 in OSPF. Take note of what path R1 uses to reach R2’s loopback.

CSR-R1#show ip route ospf
Codes: L - local, 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, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks
O IA     10.100.2.0/24 [110/4] via 10.100.3.2, 00:15:04, GigabitEthernet3
O IA     10.100.4.0/24 [110/3] via 10.100.3.2, 00:16:16, GigabitEthernet3
O IA     10.100.5.0/24 [110/2] via 10.100.3.2, 00:17:12, GigabitEthernet3
      172.16.0.0/32 is subnetted, 5 subnets
O IA     172.16.0.2 [110/5] via 10.100.3.2, 00:14:17, GigabitEthernet3
O IA     172.16.0.3 [110/4] via 10.100.3.2, 00:15:04, GigabitEthernet3
O IA     172.16.0.4 [110/2] via 10.100.3.2, 00:17:12, GigabitEthernet3
O IA     172.16.0.5 [110/3] via 10.100.3.2, 00:16:16, GigabitEthernet3
CSR-R1#show ip ospf database

            OSPF Router with ID (172.16.0.1) (Process ID 1)

		Router Link States (Area 1)

Link ID         ADV Router      Age         Seq#       Checksum Link count
172.16.0.1      172.16.0.1      1035        0x80000007 0x001EDF 2         
172.16.0.4      172.16.0.4      1028        0x80000006 0x008144 1         

		Net Link States (Area 1)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.3.1      172.16.0.1      1035        0x80000001 0x004C3F

		Summary Net Link States (Area 1)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.2.0      172.16.0.4      908         0x80000001 0x00AF59
10.100.4.0      172.16.0.4      981         0x80000001 0x008F78
10.100.5.0      172.16.0.4      1036        0x80000001 0x007A8D
172.16.0.2      172.16.0.4      862         0x80000001 0x006D4C
172.16.0.3      172.16.0.4      908         0x80000001 0x005960
172.16.0.4      172.16.0.4      1036        0x80000001 0x003B7F
172.16.0.5      172.16.0.4      981         0x80000001 0x003B7D
CSR-R1#traceroute 172.16.0.2 source 172.16.0.1
Type escape sequence to abort.
Tracing the route to 172.16.0.2
VRF info: (vrf in name/id, vrf out name/id)
  1 10.100.3.2 2 msec 2 msec 2 msec
  2 10.100.5.2 2 msec 2 msec 1 msec
  3 10.100.4.1 3 msec 3 msec 4 msec
  4 10.100.2.1 5 msec *  5 msec
CSR-R1#

We can repeat this on R2.

CSR-R2#show ip route ospf
Codes: L - local, 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, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks
O IA     10.100.3.0/24 [110/4] via 10.100.2.2, 00:17:14, GigabitEthernet3
O IA     10.100.4.0/24 [110/2] via 10.100.2.2, 00:17:14, GigabitEthernet3
O IA     10.100.5.0/24 [110/3] via 10.100.2.2, 00:17:14, GigabitEthernet3
      172.16.0.0/32 is subnetted, 5 subnets
O IA     172.16.0.1 [110/5] via 10.100.2.2, 00:17:14, GigabitEthernet3
O IA     172.16.0.3 [110/2] via 10.100.2.2, 00:17:14, GigabitEthernet3
O IA     172.16.0.4 [110/4] via 10.100.2.2, 00:17:14, GigabitEthernet3
O IA     172.16.0.5 [110/3] via 10.100.2.2, 00:17:14, GigabitEthernet3
CSR-R2#show ip ospf database

            OSPF Router with ID (172.16.0.2) (Process ID 1)

		Router Link States (Area 3)

Link ID         ADV Router      Age         Seq#       Checksum Link count
172.16.0.2      172.16.0.2      1028        0x80000004 0x0006F8 2         
172.16.0.3      172.16.0.3      1038        0x80000003 0x008B40 1         

		Net Link States (Area 3)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.2.2      172.16.0.3      1038        0x80000001 0x003950

		Summary Net Link States (Area 3)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.3.0      172.16.0.3      1084        0x80000001 0x00AA5E
10.100.4.0      172.16.0.3      1084        0x80000001 0x008B7E
10.100.5.0      172.16.0.3      1084        0x80000001 0x008A7D
172.16.0.1      172.16.0.3      1084        0x80000001 0x007D3E
172.16.0.3      172.16.0.3      1084        0x80000001 0x004B71
172.16.0.4      172.16.0.3      1084        0x80000001 0x005564
172.16.0.5      172.16.0.3      1084        0x80000001 0x004178
CSR-R2#traceroute 172.16.0.1 source 172.16.0.2
Type escape sequence to abort.
Tracing the route to 172.16.0.1
VRF info: (vrf in name/id, vrf out name/id)
  1 10.100.2.2 2 msec 1 msec 2 msec
  2 10.100.4.2 2 msec 3 msec 2 msec
  3 10.100.5.1 3 msec 5 msec 3 msec
  4 10.100.3.1 5 msec *  4 msec
CSR-R2#

We can see that Area 3 has a bunch of summaries for links in areas 0 and 1. The traceroute is going via area 0 which is to be expected at this stage.

Configuring Direct Connection Between Area 1 and Area 3

R1 or R2 will need to be configured with an additional area to match the other device.

In this case, I’ve chosen to do that on R1. The configurations now look like this:

R1

interface Loopback0
 ip address 172.16.0.1 255.255.255.255
!
interface GigabitEthernet2
 ip address 10.100.1.1 255.255.255.0
 negotiation auto
 no mop enabled
 no mop sysid
!
interface GigabitEthernet3
 ip address 10.100.3.1 255.255.255.0
 negotiation auto
 no mop enabled
 no mop sysid
!
router ospf 1
 network 10.100.1.0 0.0.0.255 area 3
 network 10.100.3.0 0.0.0.255 area 1
 network 172.16.0.1 0.0.0.0 area 1

R2

interface Loopback0
 ip address 172.16.0.2 255.255.255.255
!
interface GigabitEthernet2
 ip address 10.100.1.2 255.255.255.0
 negotiation auto
 no mop enabled
 no mop sysid
!
interface GigabitEthernet3
 ip address 10.100.2.1 255.255.255.0
 negotiation auto
 no mop enabled
 no mop sysid
!
router ospf 1
 network 10.100.1.0 0.0.0.255 area 3
 network 10.100.2.0 0.0.0.255 area 3
 network 172.16.0.2 0.0.0.0 area 3

Verification of R1 and R2

First, let’s check on R1. We will repeat the earlier steps of showing the OSPF routes, the OSPF database, and show a traceroute.

CSR-R1#show ip route ospf
Codes: L - local, 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, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 9 subnets, 2 masks
O        10.100.2.0/24 [110/2] via 10.100.1.2, 02:51:41, GigabitEthernet2
O IA     10.100.4.0/24 [110/3] via 10.100.3.2, 03:17:34, GigabitEthernet3
                       [110/3] via 10.100.1.2, 02:51:41, GigabitEthernet2
O IA     10.100.5.0/24 [110/2] via 10.100.3.2, 03:18:30, GigabitEthernet3
      172.16.0.0/32 is subnetted, 5 subnets
O        172.16.0.2 [110/2] via 10.100.1.2, 02:51:41, GigabitEthernet2
O IA     172.16.0.3 [110/3] via 10.100.1.2, 02:51:41, GigabitEthernet2
O IA     172.16.0.4 [110/2] via 10.100.3.2, 03:18:30, GigabitEthernet3
O IA     172.16.0.5 [110/3] via 10.100.3.2, 03:17:34, GigabitEthernet3
CSR-R1#show ip ospf database

            OSPF Router with ID (172.16.0.1) (Process ID 1)

		Router Link States (Area 1)

Link ID         ADV Router      Age         Seq#       Checksum Link count
172.16.0.1      172.16.0.1      1925        0x8000000C 0x0014E4 2         
172.16.0.4      172.16.0.4      46          0x8000000C 0x00754A 1         

		Net Link States (Area 1)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.3.1      172.16.0.1      1925        0x80000006 0x004244

		Summary Net Link States (Area 1)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.1.0      172.16.0.4      301         0x80000006 0x00BA49
10.100.2.0      172.16.0.4      46          0x80000007 0x00A35F
10.100.4.0      172.16.0.4      46          0x80000007 0x00837E
10.100.5.0      172.16.0.4      46          0x80000007 0x006E93
172.16.0.2      172.16.0.4      46          0x80000007 0x006152
172.16.0.3      172.16.0.4      46          0x80000007 0x004D66
172.16.0.4      172.16.0.4      46          0x80000007 0x002F85
172.16.0.5      172.16.0.4      46          0x80000007 0x002F83

		Router Link States (Area 3)

Link ID         ADV Router      Age         Seq#       Checksum Link count
172.16.0.1      172.16.0.1      143         0x80000009 0x007855 1         
172.16.0.2      172.16.0.2      398         0x8000000E 0x00AC55 3         
172.16.0.3      172.16.0.3      1704        0x80000008 0x008145 1         

		Net Link States (Area 3)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.1.2      172.16.0.2      398         0x80000006 0x002860
10.100.2.2      172.16.0.3      1704        0x80000006 0x002F55

		Summary Net Link States (Area 3)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.3.0      172.16.0.3      1704        0x80000006 0x00A063
10.100.4.0      172.16.0.3      1704        0x80000006 0x008183
10.100.5.0      172.16.0.3      1704        0x80000006 0x008082
172.16.0.1      172.16.0.3      1704        0x80000006 0x007343
172.16.0.3      172.16.0.3      1704        0x80000006 0x004176
172.16.0.4      172.16.0.3      1704        0x80000006 0x004B69
172.16.0.5      172.16.0.3      1704        0x80000006 0x00377D
CSR-R1#traceroute 172.16.0.2 
Type escape sequence to abort.
Tracing the route to 172.16.0.2
VRF info: (vrf in name/id, vrf out name/id)
  1 10.100.1.2 3 msec *  2 msec
CSR-R1#traceroute 172.16.0.2 source 172.16.0.1
Type escape sequence to abort.
Tracing the route to 172.16.0.2
VRF info: (vrf in name/id, vrf out name/id)
  1 10.100.1.2 4 msec *  3 msec
CSR-R1#

There are a few things worth noting from the above output.

R1 has an OSPF internal route for 172.16.0.2, the loopback of R2. This is due to R1 now participating in area 3 since we established the OSPF neighbor with R2.

The OSPF database has information for both areas 1 and 3. Based on what we saw in part 1 however, R1 will not be acting as an ABR and advertising summaries from one area into another. It just has information from both areas as it has adjacencies in both.

Now let’s repeat that on R2.

CSR-R2#show ip route ospf
Codes: L - local, 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, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 9 subnets, 2 masks
O IA     10.100.3.0/24 [110/4] via 10.100.2.2, 03:19:36, GigabitEthernet3
O IA     10.100.4.0/24 [110/2] via 10.100.2.2, 03:19:36, GigabitEthernet3
O IA     10.100.5.0/24 [110/3] via 10.100.2.2, 03:19:36, GigabitEthernet3
      172.16.0.0/32 is subnetted, 5 subnets
O IA     172.16.0.1 [110/5] via 10.100.2.2, 03:19:36, GigabitEthernet3
O IA     172.16.0.3 [110/2] via 10.100.2.2, 03:19:36, GigabitEthernet3
O IA     172.16.0.4 [110/4] via 10.100.2.2, 03:19:36, GigabitEthernet3
O IA     172.16.0.5 [110/3] via 10.100.2.2, 03:19:36, GigabitEthernet3
CSR-R2#show ip ospf database

            OSPF Router with ID (172.16.0.2) (Process ID 1)

		Router Link States (Area 3)

Link ID         ADV Router      Age         Seq#       Checksum Link count
172.16.0.1      172.16.0.1      386         0x80000009 0x007855 1         
172.16.0.2      172.16.0.2      639         0x8000000E 0x00AC55 3         
172.16.0.3      172.16.0.3      1946        0x80000008 0x008145 1         

		Net Link States (Area 3)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.1.2      172.16.0.2      639         0x80000006 0x002860
10.100.2.2      172.16.0.3      1946        0x80000006 0x002F55

		Summary Net Link States (Area 3)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.3.0      172.16.0.3      1946        0x80000006 0x00A063
10.100.4.0      172.16.0.3      1946        0x80000006 0x008183
10.100.5.0      172.16.0.3      1946        0x80000006 0x008082
172.16.0.1      172.16.0.3      1946        0x80000006 0x007343
172.16.0.3      172.16.0.3      1946        0x80000006 0x004176
172.16.0.4      172.16.0.3      1946        0x80000006 0x004B69
172.16.0.5      172.16.0.3      1946        0x80000006 0x00377D
CSR-R2#traceroute 172.16.0.1
Type escape sequence to abort.
Tracing the route to 172.16.0.1
VRF info: (vrf in name/id, vrf out name/id)
  1 10.100.2.2 2 msec 6 msec 2 msec
  2 10.100.4.2 3 msec 2 msec 3 msec
  3 10.100.5.1 3 msec 3 msec 4 msec
  4 10.100.3.1 4 msec *  2 msec
CSR-R2#traceroute 172.16.0.1 source 172.16.0.2
Type escape sequence to abort.
Tracing the route to 172.16.0.1
VRF info: (vrf in name/id, vrf out name/id)
  1 10.100.2.2 2 msec 2 msec 2 msec
  2 10.100.4.2 3 msec 3 msec 3 msec
  3 10.100.5.1 3 msec 3 msec 2 msec
  4 10.100.3.1 2 msec *  3 msec
CSR-R2#

Based on the above you can see that R2 uses the inter-area route to reach R1’s loopback of 172.16.0.1. Remember on R1 the loopback interface is associated with area 1 and not area 3.

This causes traffic from R2 to take the long way via area 0 to reach R1’s loopback.

Due to this behavior, we have some asymmetry in the network. R1 will take the direct link to reach R2’s loopback, but R2’s response back will be via area 0.

This differs from the Junos example where R1 acted like an ABR and advertised summary LSA’s into the areas it connected to.

As a sanity check, we can look at R4 and check its behavior.

CSR-R4#show ip route ospf
Codes: L - local, 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, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 9 subnets, 2 masks
O IA     10.100.1.0/24 [110/4] via 10.100.5.2, 03:01:07, GigabitEthernet4
O IA     10.100.2.0/24 [110/3] via 10.100.5.2, 03:24:39, GigabitEthernet4
O        10.100.4.0/24 [110/2] via 10.100.5.2, 03:25:52, GigabitEthernet4
      172.16.0.0/32 is subnetted, 5 subnets
O        172.16.0.1 [110/2] via 10.100.3.1, 03:26:47, GigabitEthernet3
O IA     172.16.0.2 [110/4] via 10.100.5.2, 03:23:53, GigabitEthernet4
O        172.16.0.3 [110/3] via 10.100.5.2, 03:24:39, GigabitEthernet4
O        172.16.0.5 [110/2] via 10.100.5.2, 03:25:52, GigabitEthernet4
CSR-R4#show ip ospf database

            OSPF Router with ID (172.16.0.4) (Process ID 1)

		Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
172.16.0.3      172.16.0.3      227         0x8000000A 0x00539D 2         
172.16.0.4      172.16.0.4      548         0x8000000A 0x006587 2         
172.16.0.5      172.16.0.5      229         0x8000000C 0x00F3FA 3         

		Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.4.2      172.16.0.5      229         0x80000007 0x002D4F
10.100.5.1      172.16.0.4      548         0x80000007 0x004438

		Summary Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.1.0      172.16.0.3      1225        0x80000006 0x00AC5A
10.100.2.0      172.16.0.3      227         0x80000007 0x009570
10.100.3.0      172.16.0.4      548         0x80000007 0x00847F
172.16.0.1      172.16.0.4      548         0x80000007 0x00575F
172.16.0.2      172.16.0.3      227         0x80000007 0x005363

		Router Link States (Area 1)

Link ID         ADV Router      Age         Seq#       Checksum Link count
172.16.0.1      172.16.0.1      402         0x8000000D 0x0012E5 2         
172.16.0.4      172.16.0.4      548         0x8000000C 0x00754A 1         

		Net Link States (Area 1)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.3.1      172.16.0.1      402         0x80000007 0x004045

		Summary Net Link States (Area 1)

Link ID         ADV Router      Age         Seq#       Checksum
10.100.1.0      172.16.0.4      803         0x80000006 0x00BA49
10.100.2.0      172.16.0.4      548         0x80000007 0x00A35F
10.100.4.0      172.16.0.4      548         0x80000007 0x00837E
10.100.5.0      172.16.0.4      548         0x80000007 0x006E93
172.16.0.2      172.16.0.4      548         0x80000007 0x006152
172.16.0.3      172.16.0.4      548         0x80000007 0x004D66
172.16.0.4      172.16.0.4      548         0x80000007 0x002F85
172.16.0.5      172.16.0.4      548         0x80000007 0x002F83
CSR-R4#traceroute 172.16.0.2 source 172.16.0.4
Type escape sequence to abort.
Tracing the route to 172.16.0.2
VRF info: (vrf in name/id, vrf out name/id)
  1 10.100.5.2 3 msec 2 msec 2 msec
  2 10.100.4.1 3 msec 3 msec 4 msec
  3 10.100.2.1 4 msec *  3 msec
CSR-R4#

Since R1 is not behaving as an ABR, R4 still sees only the one path to R2’s loopback, taking the path via R5 and R3. The summary for 172.16.0.2 in area 1 was advertised by R4 itself.

Conclusions

At the start, I asked you to think about these two questions:

  • Will routes be shared over the backdoor link?
  • Will this behavior differ between Junos and IOS-XE?

Similar to part 1, the answer depends on which vendor is in use. Junos is still letting R1 behave partly as an ABR, whereas IOS-XE isn’t.

The IOS-XE example shows some asymmetric routing between the loopbacks of R1 and R2. This could affect client traffic between areas 1 and 3 and is something to keep in mind.

For production networks, I would avoid using a direct connection between non-zero areas as we used in this example. The behavior is inconsistent between vendors and it raises the risk of unexpected consequences.

On the other hand, I thoroughly recommend doing things the “wrong way” and trying this out in a lab environment for yourself. Labbing scenarios like this make for great learning opportunities.

Leave a Comment

Your email address will not be published. Required fields are marked *