RIPng is designed to allow routers to exchange information to compute routes in IPv6-enabled network. RIPng relies on certain information about each of the networks, mainly the metric. RIPng metric is a value between 1 and 15, inclusive. The maximum path limit is 15, after which the network is considered unreachable. RIPng supports multiple IPv6 addresses on each interface.
RIPng message format:
Each router that uses RIPng has a routing process that sends and receives datagrams (routing information, RIPng communication)¬† on UDP port number 512.
Each message contains a RIPng header of the format-
All fields are mentioned in bytes.
1- request-¬†A request to send all or part of routing table
2- respond-¬†A response containing all or part of routing table. This message could be sent in response to a request message or sent unsolicited.
Version-¬†set to 1
The rest of the message contains one or more Route Table Entries (RTE) which contains the routing table networks. Each RTE has the following format-
IPv6 Prefix-¬†128-bit destination prefix (network).
route-tag-¬†an attribute assigned to a route which must be preserved and readvertised with a route. Used to distinguish between “internal” and “external” routes.
prefix len-¬†the significant part of the prefix. A value between 0 and 128 starting from the left of the prefix.
metric-¬†indicates the current metric of the prefix between 1 and 15, inclusive. Metric 16 is deemed unreachable.
The number of routes a RIPng update can send at a time depends on the medium MTU, size of RIPng message, size of RIPng header and size of an RTE according to the following function-
In RIPng, the next-hop is specified using a special RTE which applies to all address RTE messages until the end of message or until another next-hop RTE is encountered.
A next-hop RTE is identified by¬†0xFF¬†in the metric field. The IPv6 prefix field contains the IPv6 address of the next-hop. The route-tag and prefix-len fields are set to 0.
The next-hop prefix should be the link-local address of the outgoing interface through which the update is sent. If the next-hop is an unspecified address indicates that the next-hop is the originator of the RIPng advertisements.
Periodic (by default every 30 seconds) and triggered RIPng updates must remain local to a link- they should not traverse through a router and hence, for IPv6 packet, hop-limit is set to 255. RIPng updates are sent with destination multicast address set to¬†FF02::9.
There is no distinction between network, subnet and host routes in the routing table because an IPv6 address prefix is unambiguous.
A router can be configured to advertise only a default route (::/0) to other routers using RIPng and suppress other more-specific routes.
Periodic updates¬†are sent every 30 seconds to every neighboring router. These updates contain the complete routing table. Triggered updates are sent in response to request messages or when the metric or state of a route changes.
There are two other timers associated to each route-¬†timeout¬†and¬†garbage-collection-timer.¬†The timeout is initialized when a route is established, and any time a new update is received for that route. If 180 seconds elapse without receiving an update for that route, the route is declared expired and garbage-collection-timer of 120 seconds is initialized and the metric is set to 16 (unreachable). The route is continued to be advertised in the updates. If the garbage-collection-timer expires, the route is removed from the database.
Split Horizon is an algorithm to avoid sending updates of routes to neighbors from which those routes were learned. When enabled, a neighbor ignores the route updates from a neighbor if it send them to that neighbor.
Split Horizon with Poison Reverse will include such routes in updates, but sets their metric to infinity (hop-count=16).
Split Horizon is enabled by default in Cisco IOS.
1. RFC 2080- RIPng for IPv6¬†http://www.faqs.org/ftp/rfc/pdf/rfc2080.txt.pdf