RIPng

CCIE blueprint: 2.4.a Implement and troubleshoot RIPv2

When looking at the blueprint for CCIE RIPng is not listed as a subject. However, it is good practice to have some knowledge of this routing protocol.

This post is part of a multipost series about RIP. Other posts in this series are:

Since IPv6 contains much longer addresses it is more difficult to use the old syntax that is used for RIP.

Old syntax:

router rip
 version 2
 no auto-summary
 network 192.168.1.0

The new syntax is als follows:

ipv6 router rip <name>
interface Gi 0/1
 ipv6 rip <name> enable

This format removes a lot of the possible errors by trying to type the IPv6 addresses. Many other routing protocols (like OSPF) are already capable of using this syntax for IPv4.

RIPng is comparable with RIPv2 in the following respects:

  • It uses multicast updates (to FF02::9)
  • it uses tcp port 521
  • The timers are still the same
  • metric and Administrative Distance is still the same

Other than RIPv2, RIPng does not support auto-summary.

When RIPng sends an update onto the network it uses the link local address as source address. This can be seen in the debug messages:

RIPng [Lo100, default VRF]: process "RIPNG" is sending a multicast update.
       src=FE80::5C00:FF:FE05:0
       dst=FF02::9 (Loopback100)
       sport=521, dport=521, length=92
       command=2, version=1, mbz=0, #rte=4
       tag=0, metric=1, prefix=2001:155:1:146::/64
       tag=0, metric=1, prefix=FC00:1:1:6::/64
       tag=0, metric=2, prefix=FC00:1:1:1::/64
       tag=0, metric=2, prefix=FC00:1:1:4::/64

Other information that can be learned from this output is that RIPng has VRF support and that the current version of RIPng is version 1.

RIPng uses the same split-horizon rules as all other distance vector routing protocols. However, the is a difference in the configuration of split horizon for RIPng. Where normal RIP gives you the possibility of disabling split horizon on a per interface basis, in RIPng you can only disable it globally.

ipv6 router rip RIPNG
 no split-horizon

R4#
RIPng [default VRF]: a message has been received.
RIPng [Gi0/1.45, default VRF]: response received from FE80::F816:3EFF:FED5:8F2A for process "RIPNG".
       src=FE80::F816:3EFF:FED5:8F2A (GigabitEthernet0/1.45)
       dst=FF02::9
       sport=521, dport=521, length=132
       command=2, version=1, mbz=0, #rte=6
       tag=0, metric=1, prefix=2001:150:5:5::5/128
       tag=0, metric=1, prefix=2001:155:1:45::/64
       tag=0, metric=1, prefix=2001:155:1:1234::/64
       tag=0, metric=2, prefix=2001:150:1:1::1/128
       tag=0, metric=2, prefix=2001:150:2:2::2/128
       tag=0, metric=2, prefix=2001:150:4:4::4/128 (R4 receives its own advertisement)

This might cause loops. So try to avoid disabling split horizon whenever possible. Other solutions are available, such as summarization or default routes. And if you really have to disable split-horizon you can use route filters to prevent the routes from being advertised back to the originating router.

Summarization in RIPng is done in the same way as normal RIP:

ipv6 rip RIPNG summary-address fc00:1:0::/61

Filtering in RIPng still uses distribute-lists, but unlike normal RIP only prefix-lists are supported to specify which subnets are to be filtered. An example:

ipv6 router rip RIPNG
 distribute-list prefix-list R1_LO in
!
ipv6 prefix-list R1_LO seq 5 deny 2001:150:1:1::1/128
ipv6 prefix-list R1_LO seq 10 permit ::/0 le 128

As with RIP for IPv4 you can specify the interface on which to apply the distribute-list. If no interface is specified the distribute-list will be applied on all interfaces. Of course you can also still specify whether to filter inbound or outbound.