Networking / Beginners

IPv6 Interior Gateway Protocols

Every modern IPv4 IGP has either an IPv6 version counterpart or an extension that enables it to support IPv6. The following subsections review the four IGPs available on Cisco routers: RIPng, EIGRP for IPv6, OSPFv3, and IS-IS for IPv6.

Routing Information Protocol next-generation

RIP is a simple protocol in the distance vector family. That means it is simple to understand and configure, but it also means it does have some limitations. The main ones are convergence times and scaling. RIPng is basically RIP version 2 (RFC 2453) extended to handle IPv6 prefixes and next hops.

Support for IPv6

The IPv6 version of RIP is described in RFC 2080. It is called RIPng (RIP next generation); this reflects the code name used for the next-generation IP protocol.

It has been argued that RIP should be left to "Rest In Peace." Because it is an easy protocol to implement, it was the first protocol to be supported by vendors, and therefore it saw some deployment in the early days of IPv6. Now that OSPF and IS-IS are supported, RIP is used in small deployments (for example, in a multihomed host or to pass on a default route from an ISP to a customer's CPE).

There is not much new and exciting about RIPng. It supports split horizon and poison reverse as its IPv4 counterpart. It has the same limitations, such as a maximum hop count of 15, and does counting to infinity for certain routing loops.

The differences between RIP (used for IPv4) and RIPng are as follows:

  • In IPv4, RIP runs per subnet. Two neighboring routers need to be a part of the same IPv4 subnet to exchange routes. Because IPv6 neighbors always are on the same link-local subnet (FE80::/10), this restriction is removed. The consequence of this, however, is that a router will have to advertise its own prefix on a link, out that interface.
  • Because IPv6 does not use broadcast, RIP messages are sent to the "all RIP routers" link-local multicast address (FF02::9).
  • In IPv4, RIP relies on some specific RIP authentication mechanism to secure routing exchanges. RIPng relies on the IP Authentication Header and the IP Encapsulating Security Payload to ensure integrity and authentication/confidentiality of routing exchanges.

RIP does not directly support multiple instances of the protocol on a link. There is no instance identifier or anything like that in the message format, so if you require this functionality you will have to run RIP on a different UDP port, or use a different RIP multicast address (default FF02::9). The Cisco IOS implementation supports a maximum of four RIPng instances.

Configuration Example

Configuring RIP on Cisco routers is straightforward. It requires that RIP be enabled on each interface, as illustrated here:

interface Ethernet0/0
 ipv6 address 2001:200::2/64
 ipv6 rip foo enable
end

You can change the metric and summary information on a per-interface basis. The IPv6 router RIP mode allows for configuration of redistribution, distribute lists, and knobs for tuning RIP behavior. For example, poison reverse and split horizon can be turned on or off, and the default RIP timers can be changed for better convergence times.

To verify that RIP works correctly, you can use the show command shown in Example-1.

Example-1. Checking RIP Status
Router#show ipv6 rip
RIP process "foo", port 521, multicast-group FF02::9, pid 26
     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 14, trigger updates 2
  Interfaces:
    Ethernet0/0
  Redistribution:
    Redistributing protocol static

The show ipv6 rip command shows the status of the RIP process(es). The output includes most of the details you need to know; timers, redistribution status, and on which interfaces RIP is enabled.

Routing information is stored in a local database called a routing table, also referred to as Routing Information Base (RIB). The RIB essentially contains all routes available for selection. Essentially, it is the sum of all routes learned via dynamic RPs (including RIP, for instance), all directly attached networks (networks that a given router has interfaces connected to), and any additional configured routes such as static routes. There is one RIB for IPv4, and a separate one for IPv6. There may be more than one if the VPN feature is enabled.

Example-2. Rip Database Display
Router#show ipv6 rip database
RIP process "foo", local RIB
 2001:200::/64, metric 2
     Ethernet0/0/FE80::A8BB:CCFF:FE02:8B00, expires in 159 secs
 DEAD:BEEF:CAFE::/64, metric 2, installed
     Ethernet0/0/FE80::A8BB:CCFF:FE02:8B00, expires in 159 secs

In addition, each RP, such as RIPng, has its own database, which you can view.

The show ipv6 rip database command lists the routing database for RIP. You might see entries in this database that are not in the IPv6 RIB. For example, the RIB might already have a route with a better administrative distance. The keyword installed after a prefix indicates that it is installed in the RIB.

[Previous] [Contents] [Next]