This is the first in a series of lab posts I’ll be doing to prepare for the CCIE.

Today’s lab is from Narbik’s Volume One workbook. It’s a RIPv2 lab with some tricks thrown in. Here’s the topology:


(Click image for fullsize)

Click here for the initial configs

Here is task one:

1. Configure RIPv2 on all routers and advertise their directly connected interfaces. Ensure that these routers have full NLRI to all the loopback interfaces advertised into RIP. Ensure that all routers can ping all loopbacks.

Let’s go through the config:

R1:
R1(config)#router rip
R1(config-router)#ver 2
R1(config-router)#no auto
R1(config-router)#network 10.0.0.0
R1(config-router)#network 1.0.0.0
 
R2:
R2(config)#router rip
R2(config-router)#ver 2
R2(config-router)#no auto
R2(config-router)#network 10.0.0.0
R2(config-router)#network 2.0.0.0
 
R3:
R3(config)#router rip
R3(config-router)#ver 2
R3(config-router)#no auto
R3(config-router)#network 10.0.0.0
R3(config-router)#network 3.0.0.0

Looks pretty simple, but I’m sure you guys see that this won’t work correctly. Let’s look at R2 and R3′s routing tables:

R2#sh ip route
...
R    1.0.0.0/8 [120/1] via 10.1.1.1, 00:00:15, Serial0/0
C    2.0.0.0/8 is directly connected, Loopback0
     10.0.0.0/24 is subnetted, 1 subnets
C       10.1.1.0 is directly connected, Serial0/0
 
R3#sh ip route
...
R    1.0.0.0/8 [120/1] via 10.1.1.1, 00:00:06, Serial0/0
C    3.0.0.0/8 is directly connected, Loopback0
     10.0.0.0/24 is subnetted, 1 subnets
C       10.1.1.0 is directly connected, Serial0/0

We see that R2 and R3 are missing routes to each other’s loopbacks. This is due to split horizon. To refresh everyone’s memory, split horizon is a rule that a router will not advertise a route out the same interface from which it has learned the route. This prevents loops. Split horizon applies here because we aren’t using sub-interfaces for each spoke.

Let’s disable split horizon:

R1(config-subif)#no ip split-horizon
R1(config)#int s0/0.123

We’ll verify on R2:

R2#sh ip route
...
R    1.0.0.0/8 [120/1] via 10.1.1.1, 00:00:26, Serial0/0
C    2.0.0.0/8 is directly connected, Loopback0
R    3.0.0.0/8 [120/2] via 10.1.1.3, 00:00:26, Serial0/0
     10.0.0.0/24 is subnetted, 1 subnets
C       10.1.1.0 is directly connected, Serial0/0
 
R2#ping 3.3.3.3
.....
Success rate is 0 percent (0/5)

So we now have the route in the table, but no reachability. This is another curveball. Look at the next hope for R3′s loopback, it is 10.1.1.3, which is R3′s serial interface. The issue here is that we don’t know how to get to that IP. We need a Frame-Relay map statement:

R2(config)#int s0/0
R2(config-if)#frame-relay map ip 10.1.1.3 201
 
R3(config)#int s0/0
R3(config-if)#frame-relay map ip 10.1.1.2 301
 
R3#ping 2.2.2.2
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/7/12 ms

It works! We now have reachability to all loopbacks. Notice we did not use the broadcast option at the end of our map statement as it is not needed here.

Now onto the next task:

2. Remove the no ip split-horizon command and the Frame map statements from R2 and R3 configured in the first step from R2 and R3. Then configure R2 and R3 such that they can ping each others’ loopbacks. DO NOT configure static routes or extra Frame maps to accomplish this. Ensure that the next hop IP is NOT changed and is still the address of the originating router.

First we’ll remove our previous commands:

R1(config-subif)#ip split-horizon
 
R2(config-if)#no frame-relay map ip 10.1.1.3 201
 
R3(config-if)#no frame-relay map ip 10.1.1.2 301

This one is a little trickier. How can we accomplish this without map statements or static routes? Good ole PPP. Let’s configure it:

R1(config-subif)#no ip add
R1(config-subif)#frame-relay interface-dlci 102 ppp virtual-Template 123
R1(config-fr-dlci)#exit
R1(config-subif)#frame-relay interface-dlci 103 ppp virtual-Template 123
R1(config-fr-dlci)#exit
R1(config)#interface virtual-template 123
R1(config-if)#ip add 10.1.1.1 255.255.255.0
 
R2(config)#int s0/0
R2(config-if)#no ip add
R2(config-if)#frame-relay interface-dlci 201 ppp virtual-Template 123
R2(config-fr-dlci)#exit
R2(config)#interface virtual-template 123
R2(config-if)#ip add 10.1.1.2 255.255.255.0
 
R3(config)#int s0/0
R3(config-if)#no ip add
R3(config-if)#frame-relay interface-dlci 301 ppp virtual-Template 123
R3(config-fr-dlci)#exit
R3(config)#interface virtual-template 123
R3(config-if)#ip add 10.1.1.3 255.255.255.0

We removed all IP address from the interface, then we configured PPP over FR using a virtual-template. We then configure our IP on the template. Now we’ll verify our routing table and connectivity:

R3#sh ip route
...
R    1.0.0.0/8 [120/1] via 10.1.1.1, 00:00:25, Virtual-Access1
R    2.0.0.0/8 [120/2] via 10.1.1.2, 00:00:25, Virtual-Access1
C    3.0.0.0/8 is directly connected, Loopback0
     10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
R       10.1.1.2/32 [120/1] via 10.1.1.1, 00:00:25, Virtual-Access1
C       10.1.1.0/24 is directly connected, Virtual-Access1
C       10.1.1.1/32 is directly connected, Virtual-Access1
 
R3#ping 2.2.2.2
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/12 ms

Our routing table is populated correctly and we do have reachability. The important things to note here are that we now have host routes in the table added by PPP. We have accomplished reachability without using map statements or turning off split horizon.

That’s it for this one. It’s a short lab, but it has a lot of valuable information.

The Dynagen/GNS3 .net file
(you will need to change the paths to make it work)

Colby

Colby Glass has been in IT since 2002. He is currently a Systems Engineer (presales) with a Cisco Gold partner and holds the CCNP R/S, CCNP DC, CCDP, CCIP, JNCIA-ER.

More Posts