Introduction

RIPng Configuration and Verification is relatively easy and it paves the way to learning the more advanced dynamic routing protocols. Let’s get started.

If you haven't viewed the RIPng for IPv6 Introduction lesson, it can be found here: RIPng for IPv6 Introduction.

Topology

Let’s configure the below topology with RIPng so that we can see how R-1 will learn about R-3’s Lo36 interface:

RIPng Configuration and Verification Topology
RIPng Configuration and Verification Topology

Verify Current Configuration

Before we start configuring, let’s check the current state of each router's routing table and verify that they don't have any routing protocols already configured.

The first thing I like to do is consider whether unicast routing is enabled:

R-1#show run | include ipv6 
ipv6 unicast-routing 
ipv6 cef 
ipv6 address FE80:12::1 link-local 
ipv6 address 2001:12::1/64 
ipv6 address FE80:13::1 link-local 
ipv6 address 2001:13::1/64

R-2#show run | include ipv6 
ipv6 unicast-routing 
ipv6 cef 
ipv6 address FE80:12::2 link-local 
ipv6 address 2001:12::2/64 
ipv6 address FE80:23::2 link-local 
ipv6 address 2001:23::2/64

R-3#show run | include ipv6
ipv6 unicast-routing
ipv6 cef
ipv6 address FE80:33::36 link-local
ipv6 address 2001:33::36/128
ipv6 address FE80:23::3 link-local
ipv6 address 2001:23::3/64
ipv6 address FE80:13::3 link-local
ipv6 address 2001:13::3/64

I like the output from this command. We can see:

  • Unicast-routing is enabled.
  • ipv6 cef is enabled (ipv6 cef is auto-enabled with the ipv6 unicast-routing command).
  • Addresses – although the addressing output doesn’t list the interfaces, I like seeing it here...especially since I embed router, link and interface information into my addresses:)

Let’s check our routing tables:

R-1#show ipv6 route
IPv6 Routing Table - default - 5 entries
C 2001:12::/64 [0/0]
    via GigabitEthernet0/0, directly connected
L 2001:12::1/128 [0/0]
    via GigabitEthernet0/0, receive
C 2001:13::/64 [0/0]
    via GigabitEthernet0/1, directly connected
L 2001:13::1/128 [0/0]
    via GigabitEthernet0/1, receive
L FF00::/8 [0/0]
    via Null0, receive

R-2#show ipv6 route
IPv6 Routing Table - default - 5 entries
C 2001:12::/64 [0/0]
    via GigabitEthernet0/0, directly connected
L 2001:12::2/128 [0/0]
    via GigabitEthernet0/0, receive
C 2001:23::/64 [0/0]
    via GigabitEthernet0/1, directly connected
L 2001:23::2/128 [0/0]
    via GigabitEthernet0/1, receive
L FF00::/8 [0/0]
    via Null0, receive

R-3#show ipv6 route
IPv6 Routing Table - default - 6 entries
C 2001:13::/64 [0/0]
    via GigabitEthernet0/1, directly connected
L 2001:13::3/128 [0/0]
    via GigabitEthernet0/1, receive
C 2001:23::/64 [0/0]
    via GigabitEthernet0/0, directly connected
L 2001:23::3/128 [0/0]
    via GigabitEthernet0/0, receive
LC 2001:33::36/128 [0/0]
     via Loopback36, receive
L FF00::/8 [0/0]
     via Null0, receive

Things are good here. As expected, only Local and Connected routes are being shown here. Notice that R-3’s Lo36 is a Local and Connected interface. After all, it is a loopback interface...it is local, but also plays like a connected interface.

Let’s check if there are any protocols already running on our routers:

R-1#show ipv6 protocols 
IPv6 Routing Protocol is "connected" 
IPv6 Routing Protocol is "application" 
IPv6 Routing Protocol is "ND"

R-2#show ipv6 protocols 
IPv6 Routing Protocol is "connected" 
IPv6 Routing Protocol is "application" 
IPv6 Routing Protocol is "ND"

R-3#show ipv6 protocols 
IPv6 Routing Protocol is "connected" 
IPv6 Routing Protocol is "application" 
IPv6 Routing Protocol is "ND"

Good. There are no other dynamic routing protocols running.

Configure and Verify on Individual Devices

Let’s start configuring RIPng by creating a RIPng process.

Note: Issuing the ipv6 router rip [process_name] command is optional. If it’s not issued, the process will be automatically created when RIPng is configured on an interface. I feel better organized if I add the RIPng process manually:

R-1(config)#ipv6 router rip RIP_TEST

All IPv6 routing protocols are enabled per interface:

R-1(config)#int g0/0
R-1(config-if)#ipv6 rip RIP_TEST enable
R-1(config-if)#int g0/1
R-1(config-if)#ipv6 rip RIP_TEST enable
R-1(config-if)#end

Caution: A typo with the process name won’t cause an error message, it will cause another RIPng process to be created.

Let’s verify that the RIPng process has been created and enabled on Gi0/0 and Gi0/1 with the show ipv6 protocols command:

R-1#show ipv6 protocols
IPv6 Routing Protocol is "connected"
IPv6 Routing Protocol is "application"
IPv6 Routing Protocol is "ND"
IPv6 Routing Protocol is "rip RIP_TEST"
    Interfaces:
       GigabitEthernet0/1
       GigabitEthernet0/0
    Redistribution:
        None

We can see that Gi0/0 and Gi0/1 are participating in the active RIPng process.

We can check the running configuration for all lines with the keyword "rip".

R-1#show run | include rip
   ipv6 rip RIP_TEST enable
   ipv6 rip RIP_TEST enable
ipv6 router rip RIP_TEST

We can see that our RIPng process is running and two interfaces have been enabled. This matches our configuration and the output from show ipv6 protocols. Even better, we know that there is no other RIP “stuff” in our running configuration.

Now that we’ve properly configured and verified R-1, let’s configure move on to R-2 and R-3.
This time I’ll let the RIPng process be automatically created when I enable the first interface.

Pro Tip: Remember a typo with the name of the RIPng process when enabling the interface(s) will cause another (undesired) RIPng process to be created.

R-2(config)#int g0/0
R-2(config-if)#ipv6 rip RIP_TEST enable

R-2(config-if)#int g0/1
R-2(config-if)#ipv6 rip RIP_TEST enable

R-3(config)#int g0/0
R-3(config-if)#ipv6 rip RIP_TEST enable

R-3(config-if)#int g0/1
R-3(config-if)#ipv6 rip RIP_TEST enable

R-3(config-if)#int lo36
R-3(config-if)#ipv6 rip RIP_TEST enable

R-2#show ipv6 protocols
IPv6 Routing Protocol is "connected"
IPv6 Routing Protocol is "application"
IPv6 Routing Protocol is "ND"
IPv6 Routing Protocol is "rip RIP_TEST"
     Interfaces:
        GigabitEthernet0/1
        GigabitEthernet0/0
     Redistribution:
          None

R-3#show ipv6 protocols
IPv6 Routing Protocol is "connected"
IPv6 Routing Protocol is "application"
IPv6 Routing Protocol is "ND"
IPv6 Routing Protocol is "rip RIP_TEST"
     Interfaces:
         Loopback36
         GigabitEthernet0/1
         GigabitEthernet0/0
     Redistribution:
          None

Under IPv6 Routing Protocol is "rip RIP_TEST" we easily see the list of participating interfaces.

R-2#show run | include rip
ipv6 rip RIP_TEST enable
ipv6 rip RIP_TEST enable
ipv6 router rip RIP_TEST

R-3#show run | include rip
ipv6 rip RIP_TEST enable
ipv6 rip RIP_TEST enable
ipv6 rip RIP_TEST enable
ipv6 router rip RIP_TEST

Timers

Modifying timers from their defaults should be done with care. Timers throughout a RIPng process should match across devices.

Timers can be modified from RIPng process configuration mode:

R-1(config)#ipv6 router rip RIP_TEST

R-1(config-rtr)#timers ?
   <5-65535> Update period
R-1(config-rtr)#timers 30 ?
   <1-65535> Route timeout period
R-1(config-rtr)#timers 30 180 ?
   <0-65535> Route holddown period
R-1(config-rtr)#timers 30 180 180 ?
   <1-65535> Route garbage collection period
R-1(config-rtr)#timers 30 180 180 240 ?
   <cr>

Terminology:
Update Period - Update Timer
Route timeout period -Invalid Timer

Route holddown period - Holddown Timer
Route garbage collection period - Flush Timer<cr> - Carriage Return (No more options)

Verify RIPng Process Operation Across Devices

So now we've configured and verified these configurations on each individual router. Let's verify that our routers are working together the way we expect them to. Remember, our goal for this lab is that we want R-1 to be able to communicate with R-3's Lo36.

RIPng Configuration and Verification Topology
RIPng Configuration and Verification Topology

First, let's check basic connectivity to R-3's Lo36 (2001:33::36) from R-1:

R-1#ping 2001:33::36
Sending 5, 100-byte ICMP Echos to 2001:33::36, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/3 ms

Good. Let's take a look at the path the ping took with a traceroute:

R-1#traceroute 2001:33::36
Tracing the route to 2001:33::36
1 2001:13::3 3 msec 3 msec 2 msec

As expected, the optimal path has been inserted into the routing table and thus used by traceroute.

Let's check all routes R-1 has learned via RIP.

R-1#show ipv6 route rip
IPv6 Routing Table - default - 7 entries
R 2001:23::/64 [120/2]
   via FE80:12::2, GigabitEthernet0/0
   via FE80:13::3, GigabitEthernet0/1
R 2001:33::36/128 [120/2]
   via FE80:13::3, GigabitEthernet0/1

We’ve got our route to R-3’s Lo36 directly from R-1 to R-3. We’ve also got equal cost load balancing to the 2001:23::/64 network.

show ipv6 route [network/prefix] is a nifty command:

R-1#show ipv6 route 2001:33::36/128
Routing entry for 2001:33::36/128
  Known via "rip RIP_TEST", distance 120, metric 2
  Route count is 1/1, share count 0
  Routing paths:
  FE80:13::3, GigabitEthernet0/1
    Last updated 00:05:23 ago

I like this command. It shows us not only that the routing table has the entry, but how it was learned (RIP and which RIP process), AD/metric and the routing path.

Let’s run through some other verification commands. Being familiar with looking for information will enhance our mastery of Networking in general:

To continue reading, please login or become a member for full access...