Overview
RIPng is the IPv6 version of the Routing Information Protocol, designed specifically to provide routing functionality in IPv6 networks. Similar to how RIPv2 operates in IPv4 environments, RIPng maintains the core characteristics of its predecessor while adding IPv6-specific enhancements.
Key Characteristics
Protocol Type: Distance vector routing protocol
Administrative Distance: 120 (same as RIPv4)
Metric: Hop count with a maximum of 15 hops (16 is considered infinity)
Transport Protocol: UDP using port 521 (instead of port 520 used by RIPv1/v2)
Multicast Address: FF02::9 (the all-RIP-devices multicast group address)
Update Timer: 30 seconds by default (can be customized)
Network Size: Best suited for small to medium networks due to the 15-hop limitation
Major Differences from RIPv4
Configuration Approach: RIPng configuration is interface-based rather than network-based
No Auto-summary: RIPng doesn't support the auto-summary feature of RIPv4
No Authentication: Authentication is handled by IPv6's IPsec mechanisms instead of within RIPng
IPv6 Addressing: Supports IPv6 prefixes and addresses as defined in RFC 2080
Link-local Addresses: Uses link-local addresses for RIPng updates between neighbors
Basic Configuration Steps
Enable IPv6 Routing:
Router(config)# ipv6 unicast-routing
Create RIPng Process:
Router(config)# ipv6 router rip PROCESS-NAME
Enable RIPng on Interfaces (this is where RIPng differs most from RIPv4):
Router(config)# interface GigabitEthernet 0/0
Router(config-if)# ipv6 rip PROCESS-NAME enable
The key difference from RIPv4 is that RIPng doesn't use network statements under the routing process. Instead, you enable RIPng directly on the interfaces that should participate in the routing process.
Configuration Example
! Enable IPv6 routing globally
Router(config)# ipv6 unicast-routing
! Create RIPng process named "RIPNG-PROC"
Router(config)# ipv6 router rip RIPNG-PROC
! Enable RIPng on interfaces
Router(config)# interface GigabitEthernet 0/0
Router(config-if)# ipv6 address 2001:DB8:1:1::1/64
Router(config-if)# ipv6 rip RIPNG-PROC enable
Router(config)# interface GigabitEthernet 0/1
Router(config-if)# ipv6 address 2001:DB8:2:2::1/64
Router(config-if)# ipv6 rip RIPNG-PROC enable
Verification Commands
! View IPv6 Routes:
Router# show ipv6 route rip
! View RIPng Process Information:
Router# show ipv6 rip
! View RIPng Database:
Router# show ipv6 rip database
! View RIPng Next-Hops:
Router# show ipv6 rip next-hops
Additional Configuration Options
Default Route Advertisement:
Router(config)# ipv6 router rip PROCESS-NAME
Router(config-rtr)# default-information originate
Adjusting RIPng Timers:
Router(config)# ipv6 router rip PROCESS-NAME
Router(config-rtr)# timers 5 15 10 30
!The values represent: update, expire, holddown, garbage collection timers
Setting Maximum Paths:
Router(config)# ipv6 router rip PROCESS-NAME
Router(config-rtr)# maximum-paths 16
Special Notes
RIPng has no direct "passive-interface" command like RIPv4. To achieve similar functionality, either don't enable RIPng on the interface or use prefix lists to filter advertisements.
Since there's no authentication within RIPng (it relies on IPv6's IPsec), security considerations should be addressed at the IPv6 level.
Using link-local addresses for exchanges means that global unicast addresses aren't always required on interfaces between routers.
Best Practices
Use RIPng only in small networks with simple topologies
Consider more scalable protocols like OSPFv3 or IS-IS for IPv6 for larger networks
Implement proper IPv6 security measures since RIPng lacks built-in authentication
RIPng is ideal for lab environments and small deployments where simplicity is preferred over advanced features