RIP is a dynamic, distance vector routing protocol based around the Berkely BSD application routed and was developed for smaller IP based networks. RIP uses UDP port 520 for route updates. RIP calculates the best route based on hop count. Like all distance vector routing protocols, RIP takes some time to converge. While RIP requires less CPU power and RAM than some other routing protocols, RIP does have some limitations:
- Metric: Hop Count
- Since RIP calculates the best route to a destination based solely on how many hops it is to the destination network, RIP tends to be inefficient in network using more than one LAN protocol, such as Fast Ethernet and serial or Token Ring. This is because RIP prefers paths with the shortest hop count. The path with the shortest hop count might be over the slowest link in the network.
- Hop Count Limit
- RIP cannot handle more than 15 hops. Anything more than 15 hops away is considered unreachable by RIP. This fact is used by RIP to prevent routing loops.
- Classful Routing Only
- RIP is a classful routing protocol. RIP cannot handle classless routing. RIP v1 advertises all networks it knows as classful networks, so it is impossible to subnet a network properly via VLSM if you are running RIP v1, which
However, it must be pointed out that RIP is the only routing protocol that all routing devices and software support, so in a mixed equipment environment, RIP may be your only option for dynamic routing. This is changing with the widespread use of OSPF.
RIP MESSAGES
RIP updates are placed as UDP payload inside an IP datagram. Below is the base format of a RIP message.
command | version | zeroes | |
Address Family ID | zeroes | ||
IP Address | |||
zeroes | |||
zeroes | |||
Metric | |||
Payload...
|
- REQUEST (1)- Request either a partial or full table update from another RIP router.
- RESPONSE (2) - A response to a request. All route updates use this command in the command field.
- TRACEON (3) / TRACEOFF (4) - Obsolete and ignored.
- RESERVED (5) - Sun Microsystems uses this field for it's own purposes.
VERSION field - Describes which version of the RIP protocol it is (1 or 2).
ADDRESS FAMILY ID - Identifies which addressing protocol is being used (CLNS, IPX, IP etc.)
METRIC - Metric measures how 'good' a route is. RIP uses the number of hops as the metric. The route with the fewest number of hops is preferred.
RIP ROUTING UPDATES
Routers running IP RIP broadcast the full list of all the routes they know every 30 seconds. When a router running RIP hears a broadcast it runs the distance vector algorithm to create a list of best routes.
RIP TIMERS
TIMER | DEFAULT | CONTROLS |
Update | 30 sec. | Interval between route update advertisements |
Hold-Down | 90 sec. | Period a route is withdrawn from the table to prevent a routing loop. |
Timeout | 180 sec. | Interval a route should stay 'live' in the routing table. This counter is reset every time the router hears an update for this route. |
Flush | 120 sec. | How long to wait to delete a route after it has timed out. |
The routing-update timer controls the time between routing updates. Default is usually 30 seconds, plus a small random delay to prevent all RIP routers from sending updates simultaneously.
The route-timeout timer controls when a route is no longer available. The default is usually 180 seconds. If a router has not seen the route in an update during this specified interval, it is dropped from the router's announcements. The route is maintained long enough for the router to advertise the route as down (hop count of 16).
The route-flush timer controls how long before a route is completely flushed from the routing table. The default setting is usually 120 seconds.
CISCO ROUTERS - Configuring RIP
Configuring a Cisco router for RIP requires a series of configuration steps. First you must turn on the RIP routing protocol, then you must identify the network that will be advertised and which interfaces will advertise it with the network statement.
BASIC RIP CONFIGURATION (Cisco)
According to the recollection of InetDaemon, configuring a Cisco router for a basic RIP configuration would look something like this:
router> enable Password: router# conf t router(config)#interface ethernet 0 router(config-if)# ip address 192.168.42.1 router(config-if)# interface ethernet 1 router(config-if)# ip address 192.168.43.1 router(config-if)# exit router(config)# router rip router(config-router)# network 192.168.42.0 router(config-router)# network 192.168.43.0 router(config-router)# exit router(config-router)# ^z router#
The example above assumes that the interfaces that will be running RIP have IP addresses on them that fall within the 204.191.42.0, and 204.191.43.0 class C ranges.