From cwhite's wiki
Jump to: navigation, search


Used with IPv4

  • RIPv1
    • Classful
    • Updates as broadcast
  • RIPv2
    • Classless
    • Updates as multicast

General Info

  • RFC 2453
  • Distance vector protocol - Uses split-horizon, poison reverse and count to infinity.
  • UDP 520 for transport
  • Max hop count of 16
  • Supports third party next-hop

From RFC 2453 section 3.4.3

In general, split horizon with poisoned reverse is safer than simple split horizon. If two routers have routes pointing at each other, advertising reverse routes with a metric of 16 will break the loop immediately. If the reverse routes are simply not advertised, the erroneous routes will have to be eliminated by waiting for a timeout. However, poisoned reverse does have a disadvantage: it increases the size of the routing messages.
how often to send updates in seconds (default 30 seconds)
how many seconds, since seeing a valid update, to consider the route invalid, and placing the route into hold down (default 180 seconds)
how long (in seconds) to “not believe” any equal or less impressive (worse) route updates for routes that are in hold down (default 180 seconds)
how many seconds, since the last valid update, until we throw that route in the trash (garbage collection | default 240 seconds)

Filtering Updates
Passive Interfaces
Distribute Lists
Offset Lists
Administrative Distance
Update Types
Unicast (use the neighbor command)


IOS RIP Command Guide

Below, is a basic configuration to start the RIP process and enable the interface process.

!enable global process
router rip
!enables the interface process
 network [address]
!enables v2
 version 2
!disables classful summarization (v2 only)
 no auto-summary

You can manually configure an interface to run just v1/v2 or BOTH v1 and v2 at the same time.

interface gig1/1
!the following will configure gig1/1 to send RIPv1 AND RIPv2 packets.
 ip rip receive version 1 2
 ip rip send version 1 2

You can manually summarize your NLRI with the ip summary-address rip [network] [mask] command. Note, in some IOS versions, if split-horizon is enabled, neither autosummary nor interface summary addresses are advertised.

interface gig0/1
 ip summary-address rip

You can change the update, invalid, holddown and flush timers with the command timers basic [update] [invalid] [holddown] [flush] under the RIP process. If you configure your holddown or invalid timer less than your update timer, you can "break" RIP because you're removing the route before you can send an update (there's a good example of exactly that here).

!the following will set:
!update to 10s
!invalid to 40s
!holddown to 50s
!flush to 90s
router rip
 timers basic 10 40 50 90

The following is the process to setup authentication.

key chain RIP
 key 1
  key-string pasword123
interface gig1/1
 ip rip authentication mode md5
 ip rip authentication key-chain RIP

You can setup RIP to only send unicast updates with the passive interface and neighbor commands. In this example, a router will have a neighbor with the IP address off of interface Gi2/3. We will disable broadcast/multicast updates on Gi2/3 but still allow unicast updates to be sent. NOTE: configuring an interface as passive will only disable the router from sending updates on an interface, the router will still be able to receive updates.

router rip
 passive-interface gi2/3


Used with IPv6

General Info

  • RFC 2080
  • Very similar in operation to RIPv1/2
  • UDP 521 multicast (FF02::9) for transport


With RIPng, you need to enable it on the interface level with the ipv6 rip [process] enable command. This will turn the global process on.

ipv6 unicast-routing
interface gig4/4
 ipv6 rip name1 enable