Table of contents
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:

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.

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...