Routing Information Protocol
Introduction
The Routing Information Protocol (RIP) is a dynamic routing protocol. RIP is an example of a distance vector routing protocol, and historically it has been one of the most widely used intra-domain unicast routing protocol within the Internet.
RIP is relatively simple to setup, but does not handle topology changes as rapidly as the OSPF dynamic routing protocol. Therefore, OSPF is generally preferred over RIP when it is possible to select dynamic routing protocol.
For information on OSPF, see the OSPF configuration page.
Overview
RIP enabled routers will exchange routing information with their neighbors periodically. This in order to construct their own routing tables, with entries describing how to reach each of the participating routers.
In Figure 1 below, we have an example network of 5 RIP enabled routers. Each RIP router only needs to know the networks where other RIP enabled routers are located. Afterwards they will automatically construct their routing tables, no need for configuring static routing entries.
| |
.---+---. .---+---.
| | | |
| R | | R |
| | | |
'---+---' '---+---'
|.1 |.2
-------------+------------+-------------+-------------
10.0.1.0/24 |.3
.---+---.
.1| |.1
+---+ R1 +---+
| | | |
| '-------' |
10.0.2.0/24 | | 10.0.3.0/24
-------------+----+--- ---+-----+-------------
|.2 |.2
.---+---. .---+---.
| | | |
| R | | R |
| | | |
'---+---' '---+---'
| |
In order for a RIP router to find the best path, between the source and destination network, it utilizes hop count as a metric. The hop count is simply the amount of routers between the source and destination network. Therefore, when adding entries to the routing table, the path with the lowest hop count will be selected. For more information on routing table entries, see the Static Routing section.
Note
RIP has a maximum hop count of 15. This means that any destination that is more than 15 routers away from the source will be unreachable. One reason for this limitation is to prevent routing loops.
There are two different versions of RIP v1 and v2. One big difference is that RIPv2 routers exchange routing information using IP multicast (IP address 224.0.0.9). While RIPv1 uses broadcast to exchange routing information.
Authentication
RIPv2 allows authentication of RIP messages. This can be helpful to avoid that
false routing information is injected into your network (deliberately or by
mistake). This is configured for each iface
using the auth
command.
Route Redistribution
It is possible to redistribute routing information learnt externally (OSPF, con-
nected routes or static routes) inside the RIP routing domain, using the
redistribute
command.
You can also let a RIP router inject a default route (0.0.0.0/0) into your RIP
domain, using the distribute-default
command.
Passive Interface
In some situations you may wish to include a router’s subnets as part of the RIP
routing domain without running RIP on the associated network interface. This can
be done using the passive
command under each iface
.
Configuration
The configuration of RIP is separated into two different parts. The actual router configuration and RIP related settings for each individual interface.
Router
RIP is configured under the router
section of the global configuration
context:
example:/#> configure example:/config/#> router example:/config/router/#> rip example:/config/router/rip/#>
Syntax
[no] version <1|2>
-
Set the RIP version to use.
Default: version 2.
no
- Reset to the default setting.
[no] distance <1-255>
-
Set protocol distance.
Default: 120.
no
- Reset to the default setting.
[no] timers [update SEC] [invalid SEC] [flush SEC]
-
Control RIP protocol timers.
Defaults:
update
30 seconds.invalid
180 seconds.flush
120 seconds.
no
- Reset to the default settings.
SEC
- Time value in whole seconds.
[no] passive-interface
-
Control if RIP should be passive on all interfaces by default.
Use the network command, or the per interface “passive” command to activate RIP on an interface. The neighbor command can also be useful.
Default:
no passive-interface
, i.e, RIP is disabled on all interfaces.no
- Reset to the default setting.
[no] neighbor <IPADDR[,IPADDR,...]>
-
Explicitly define a RIP neighbor.
This can be useful when the neighbor in question cannot handle IP multicast and thus cannot receive RIP routing information. When explicitly defining a RIP neighbor it will receive routing updates over IP unicast.
no
- Remove configured RIP neighbors.
IPADDR
- IP address in standard quad-dotted notation, e.g. 192.168.1.1
[no] network <IFACE|NETWORK[,NETWORK,...]>
-
Define RIP enabled networks.
no
- Remove all configured RIP networks.
IFACE
- Enable RIP for a given interface, e.g.
vlan1
. NETWORK
- IP address in standard quad-dotted notation including netmask, e.g. 192.168.1.1/24.
[no] redistribute <connected|static|ospf>
-
Redistribute external routing information.
-
Use “redistribute connected” to redistribute routes to directly attached networks, which have not been defined to belong to any RIP area in the
network
command. -
Use
redistribute static
to redistribute static routes set with theip route
command. -
Use
redistribute ospf
to redistribute OSPF routes.
Redistribution of the default route is handled separately with the
distribute-default
command.Default: Disabled for all three alternatives.
no
- Disable redistribution.
-
[no] distribute-default
-
Inject default route, i.e., announce network 0.0.0.0/0.
Default: Disabled.
no
- Disable distribution of the default route.
Interface Specific Settings
To configure RIP related settings for an interface is located under the iface
context:
example:/#> configure example:/config/#> iface vlan1 example:/config/iface-vlan1/#> rip example:/config/iface-vlan1/rip/#>
Syntax
[no] passive [auto]
-
Control passive-interface setting for RIP on this interface.
Default: Auto. Follows
router rip
passive-interface
setting.no
- Disable.
auto
- Use same setting as system wide RIP setting.
[no] split-horizon [poisoned-reverse]
-
Enable, or disable, split horizon on this interface.
Split horizon is a method that helps preventing routing loops. The principle is that a router will not advertise a route back to the interface it was learned from.
Default: Enabled.
no
- Disable.
poisoned-reverse
- Actively advertise routes as unreachable over the interface which they were learned.
[no] send-version <1,2>
-
RIP version to send on this interface.
Default: Auto. Follows
router rip
version
setting.no
- Resets to the default setting.
[no] receive-version <1,2>
-
RIP version to receive on this interface.
Default: Auto. Follows
router rip
version
setting.no
- Resets to the default setting.
[no] auth <md5 KEYID | plain> [hash] <SECRET>
-
Configure authentication of RIP messages on this interface.
Default: None.
no
- Remove any configured authentication.
md5
-
Use md5 cryptographic authentication.
The
SECRET
when using md5 are text strings of 4-32 characters.The
KEYID
is a key identifier (0-255) associated with MD5 keys. plain
-
Use a clear-text password as authentication.
The
SECRET
when using plain text are text strings of 4-16 characters.
Status
The current status of a RIP configured router can be observed in the exec context in the following manner:
example:/#> show rip Routing Protocol is "rip" Sending updates every 30 seconds with +/-50%, next due in 17 seconds Timeout after 180 seconds, garbage collect after 120 seconds Outgoing update filter list for all interface is not set Incoming update filter list for all interface is not set Default redistribution metric is 1 Redistributing: Default version control: send version 2, receive version 2 Interface Send Recv Key-chain vlan1 2 2 Routing for Networks: vlan1 Routing Information Sources: Gateway BadPackets BadRoutes Distance Last Update 10.0.2.1 0 0 120 00:00:10 Distance: (default is 120)
We can also see any potential routes that RIP have added using show ip route
as such:
example:/#> show ip route S - Static | C - Connected | K - Kernel route | > - Selected route O - OSPF | R - RIP | [Distance/Metric] | * - FIB route R>* 10.0.1.0/24 [120/2] via 10.0.2.1, vlan1, 00:02:08 C>* 10.0.2.0/24 is directly connected, vlan1
Any route denoted with an R
is a route that have been learned by RIP.