Interestingly, while Routing Information Protocol is beyond the scope of the ROUTE exam as it is covered in the current CCNA exam, Routing Information Protocol next generation (RIPng), which evolved from RIPv2 and is updated specifically to support IPv6, is a requirement of the current ROUTE exam. For the most part, RIPng is very similar to the RIPv2 specification. The similarities between RIPng and RIPv2 are listed in Table 8-11.
| Protocol Characteristic | RIPv2 | RIPng |
|---|---|---|
| Protocol Classification | Distance Vector | Distance Vector |
| Hop Limitation | 15 | 15 |
| Split Horizon | Yes | Yes |
| Poison Reverse | Yes | Yes |
| Transport Layer Protocol | UDP | UDP |
| Multicast Updates | Yes (224.0.0.9) | Yes (FF02::9) |
| Administrative Distance | 120 | 120 |
| Hold-down Timers | Yes | Yes |
However, while there are many similarities between RIPv2 and RIPng, it is also important to be familiar with the notable differences between the two protocols. The first notable difference is the supported routed protocol. While both the protocols support IP, RIPv2 supports IPv4, while RIPng supports IPv6. Given the differences in routed protocol support, the next difference between the two routing protocols is that with RIPv2, destination prefixes are 32-bit, while with RIPng, destination prefixes are 128-bit due to the longer length of IPv6 addressing.
The different routed protocol also means that the next hop address used in RIPng is longer than that used in RIPv2; with the former being 128-bit and the latter 32-bit. While both RIPv2 and RIPng still send the same types of messages, i.e. requests and replies, RIPv2 messages are sent over IPv4 packets while RIPng messages are sent over IPv6 packets. In addition to this, while both protocols still use UDP as the Transport Layer protocol, RIPv2 has a standard UDP port number of 520, while RIPng uses UDP port 521.
While RIPv2 does support authentication, it must be manually configured by the administrator. RIPng does not require manual authentication configuration as IPsec is built into the IPv6 protocol. Instead, IPsec is used to ensure the integrity of RIPng messages. And finally, a significant difference between RIPv2 and RIPng is that RIPng updates are sent to adjacent routers using the Link-Local address as the source address meaning that received RIPng routes will always have a Link-Local next hop address. While going into the details of RIPng packets is beyond the scope of the ROUTE exam, Figure 8-20 shows the RIPng reply (response) packet which shows the differences described in the previous section:
To reinforce what we learned pertaining to the differences between RIPv2 and RIPng, Table 8-12 summarizes the differences described in the previous section, as well as other notable differences between these two routing protocols:
| Protocol Characteristic | RIPv2 | RIPng |
|---|---|---|
| Destination Prefix Length | 32-bit | 128-bit |
| Next Hop Length | 32-bit | 128-bit |
| Next Hop Address | Primary Interface Address | Link-Local Address |
| Transport | IPv4 | IPv6 |
| UDP Port Number | 520 | 521 |
| Authentication | Text and MD5 | Inbuilt into IPv6 (IPsec) |
| Automatic Summarization | Yes (enabled by default) | Not Applicable |
| Can Broadcast Updates | Yes | Not Applicable |
Cisco IOS Software RIPv2 and RIPng Configuration Differences
The configuration of RIPng differs from that of RIPv2. There are several significant differences between the configuration of RIPng and RIPv2, such as the omission of the network command when configuring RIPng, amongst many others. This section describes the fundamental differences between configuring and enabling RIPv2 and RIPng routing in Cisco IOS software.
The first difference between the configuration of RIPv2 and RIPng in Cisco IOS software is how the routing protocol is enabled. For RIPv2, the router rip global configuration command is required, followed by the version 2router configuration subcommand. Based on this configuration scheme, by default, only a single instance of RIP can be configured on the router. When enabling RIPng, the router rip command has been replaced by the ipv6 router rip [tag] global configuration command. The use of the tag allows multiple instances of RIPng to be enabled on the same physical router. Each instance is uniquely identified by the tag that is specified when the RIPng process is enabled by the administrator.
NOTE: The administrator defined tag is somewhat similar to the OSPF process ID in that while a unique tag must be specified for each individual instance, the tag is locally significant to the router on which it is configured and need not be the same on adjacent RIPng routers. It is often commonly a misunderstood concept when enabling RIPng in Cisco IOS software.
The second notable difference between the configuration of RIPv2 and RIPng is the omission of the standardnetwork router configuration subcommand that is used when enabling RIPv2. Instead, with RIPng, RIP routing is instead enabled on a per-interface basis using the ipv6 rip [tag] enable interface configuration command, with the tag referencing the administrator specified tag for the unique RIPng process. The ipv6 rip [tag] enableinterface configuration command allows multiple RIPng instances to be assigned to the same interface.
Additional RIP configuration, while slightly different for RIPng and RIPv2 follows the same basic configuration logic in Cisco IOS software. Table 8-13 lists some common configuration commands and how they are applied in RIPv2 and RIPng respectively:
| Command Function | RIPv2 Command | RIPng Command |
|---|---|---|
| Enable RIP routing | Use the router rip global configuration command | Use the ipv6 router rip [tag] global configuration command |
| Advertise networks or prefixes using RIP | Use the network router configuration command | Use the ipv6 rip [tag] enable interface configuration command |
| Generate a RIP default route | Use the default-information originate router configuration command | Use the ipv6 rip [tag] default-information originate interface configuration command |
| Enable or disable Split Horizon | Use the [no] ip split-horizoninterface configuration command | Use the [no] split-horizon router configuration command |
| Verify received RIP routing information | Use the show ip route [rip] command | Use the show ipv6 route [rip] command |
| Verify the RIP database | Use the show ip rip databasecommand | Use the show ipv6 rip [tag] databasecommand |
Configuring and Verifying RIPng in Cisco IOS Software
The actual configuration of RIPng in Cisco IOS software is a fairly straightforward process once you are comfortable with the fundamental configuration differences between RIP and RIPng. The following sequence of steps should be taken to enable RIPng routing in Cisco IOS software:
- Globally enable IPv6 routing using the ipv6 unicast-routing global configuration command. By default, IPv6 routing is disabled in Cisco IOS software
- Configure one or more RIPng processes using the ipv6 router rip [tag] global configuration command
- Enable IPv6 on the desired interfaces using the ipv6 address and ipv6 enable interface configuration commands
- Enable one or more RIPng processes under the interface using the ipv6 rip [tag] enable interface configuration command
Because automatic summarization is not applicable to RIPng, there is no need, and no command used to disable this behavior. To solidify the configuration of RIPng, consider the topology illustrated in Figure 8-21 which shows a network comprised of two routers. Both routers will be running RIPng. Additionally, router R3 will be advertising two additional prefixes via RIPng:
Following the sequence of configuration steps described in the previous section, RIPng will be configured on router RI as follows:
| R1(config)#ipv6 unicast-routing R1(config)#ipv6 router rip R1-RIP-NG R1(config-rtr)#exit R1(config)#interface serial 0/1 R1(config-if)#ipv6 address 3fff:1234:abcd:1::1/64 R1(config-if)#ipv6 enable R1(config-if)#ipv6 rip R1-RIP-NG enable R1(config-if)#exit |
Following the same sequence of steps, RIPng routing is configured on router R3 as follows:
| R3(config)#ipv6 unicast-routing R3(config)#ipv6 router rip R2-RIP-NG R3(config-rtr)#exit R3(config)#interface serial 1/0 R3(config-if)#ipv6 address 3fff:1234:abcd:1::3/64 R3(config-if)#ipv6 enable R3(config-if)#ipv6 rip R2-RIP-NG enable R3(config-if)#exit R3(config)#interface fastethernet 0/0 R3(config-if)#ipv6 address 3fff:1234:abcd:2::3/64 R3(config-if)#ipv6 address 3fff:1234:abcd:3::3/64 R3(config-if)#ipv6 enable R3(config-if)#ipv6 rip R2-RIP-NG enable R3(config-if)#exit |
Following the configuration of RIPng on both routers, basic show commands should be used to validate both the configuration and the routing information. For example, to view basic RIPng protocol status, e.g. timers, theshow ipv6 rip command would be used. This command prints the same basic information as the show ip protocols command used to verify RIPv2. The output of this command shows the following on R1:
| R1#show ipv6 rip RIP process “R1-RIP-NG”, port 521, multicast-group FF02::9, pid 150 Administrative distance is 120. Maximum paths is 16 Updates every 30 seconds, expire after 180 Holddown lasts 0 seconds, garbage collect after 120 Split horizon is on; poison reverse is off Default routes are not generated Periodic updates 20, trigger updates 3 Interfaces: Serial0/1 Redistribution: None |
From the output printed above, we can determine that the local RIPng instance has been named R1-RIP-NG . The default UDP port used by RIPng (521) as well as the default IPv6 Multicast group FF02::9 is also included in the output of this command. Additional information includes the default administrative distance of 120, the default RIP timer values, and also the interfaces under which the process has been enabled.
In addition to validating base protocol configuration parameters, it is also important to verify that routing updates are being received. When running RIPng, this is performed using the show ipv6 route [rip] command. The output of this command shows the following on R1:
| R1#show ipv6 route rip IPv6 Routing Table – 6 entries Codes: C – Connected, L – Local, S – Static, R – RIP, B – BGP U – Per-user Static route I1 – ISIS L1, I2 – ISIS L2, IA – ISIS interarea, IS – ISIS summary O – OSPF intra, OI – OSPF inter, OE1 – OSPF ext 1, OE2 – OSPF ext 2 ON1 – OSPF NSSA ext 1, ON2 – OSPF NSSA ext 2 R 3FFF:1234:ABCD:2::/64 [120/2] via FE80::213:7FFF:FEAF:3E00, Serial0/1 R 3FFF:1234:ABCD:3::/64 [120/2] via FE80::213:7FFF:FEAF:3E00, Serial0/1 |
From the output above, router R1 is receiving both the prefixes that were configured on R3 and are advertised via RIPng. Also, notice that the next hop address for both prefixes is not the global IPv6 Unicast address 3FFF:1234:ABCD:1::3 but rather the Link-Local address of router R3. As was previously stated, the Link-Local address will always be used in updates sent to any adjacent RIPng routers. The use of the Link-Local address allows for seamless prefix renumbering when using IPv6. In other words, it is possible to migrate from one global prefix to another without losing connectivity because the Link-Local address will never change.
And finally, as any prudent network engineer would do, you should also verify reachability to the prefixes advertised by router R3. This can be performed using a simple ping test as follows:
| R1#ping 3FFF:1234:ABCD:2::3 repeat 10Type escape sequence to abort. Sending 10, 100-byte ICMP Echos to 3FFF:1234:ABCD:2::3, timeout is 2 seconds: !!!!!!!!!! Success rate is 100 percent (10/10), round-trip min/avg/max = 12/13/16 ms |

