RIPv2 Configuration
RIP (Routing Information Protocol) is one of the oldest routing protocols still in use — first standardised in 1988. It is a distance-vector protocol that shares routing information by sending its entire routing table to directly connected neighbors every 30 seconds, regardless of whether the network has changed. RIPv2 (RFC 2453) added classless routing support, subnet mask transmission, multicast updates, and simple authentication over RIPv1. For RIP concepts and theory see RIP Concepts.
While RIP is rarely deployed in modern production networks — superseded by OSPF and EIGRP — it remains a CCNA exam topic and appears in legacy environments, small branch offices, and lab simulations. Understanding RIP's limitations is as important as knowing how to configure it — its hop count metric, slow convergence, and 15-hop diameter make it unsuitable for large networks. For Administrative Distance comparisons between RIP, OSPF, and EIGRP see Administrative Distance.
Before starting, complete Static Route Configuration to understand routing fundamentals, and review OSPF Single-Area Configuration and EIGRP Configuration for comparison with modern alternatives. For basic interface configuration prerequisites see Basic Interface Configuration.
1. RIPv2 — Core Concepts and Limitations
RIPv1 vs RIPv2
| Feature | RIPv1 | RIPv2 |
|---|---|---|
| Standard | RFC 1058 | RFC 2453 |
| Routing type | Classful only — no subnet masks sent | Classless — subnet masks included in updates |
| Update destination | 255.255.255.255 (broadcast) | 224.0.0.9 (multicast) — only RIPv2 routers receive |
| VLSM support | ❌ No | ✅ Yes |
| Authentication | ❌ No | ✅ Yes — plain text or MD5 |
| Auto-summary | Always on — cannot disable | On by default — can be disabled with no auto-summary |
RIP Timers
RIP uses four timers that govern how routes are sent, maintained, and expired. Understanding these timers is essential for understanding why RIP converges slowly:
| Timer | Default | What It Controls |
|---|---|---|
| Update | 30 seconds | How often RIP sends its full routing table to all neighbors |
| Invalid (Expiry) | 180 seconds | How long since the last update before a route is marked invalid (metric set to 16) |
| Holddown | 180 seconds | After a route is marked invalid, how long RIP ignores updates about that route from other sources — prevents premature route re-learning |
| Flush | 240 seconds | How long before an invalid route is completely removed from the routing table |
RIP Limitations
| Limitation | Details | Impact |
|---|---|---|
| Maximum hop count: 15 | Any route with a hop count of 16 is considered unreachable | Hard limit of 15 routers between source and destination — unusable in large networks |
| Hop count only metric | RIP counts hops — it ignores bandwidth, delay, or link quality | May choose a 15-hop path over a 2-hop path if the 2-hop path goes through one more router |
| Slow convergence | Updates sent every 30 seconds — failure not detected instantly | Routing black holes for up to 3–4 minutes after a link failure |
| Periodic full updates | Sends entire routing table every 30 seconds regardless of changes | Wastes bandwidth compared to OSPF/EIGRP which send partial updates only on change |
| No support for large networks | 15-hop diameter and slow convergence compound in large topologies | Not suitable for enterprise or ISP networks |
Loop Prevention Mechanisms
Because RIP is a pure distance-vector protocol (routers share their tables, not the full topology), routing loops can form when routes change. RIP uses several mechanisms to reduce — but not eliminate — this risk:
| Mechanism | How It Works |
|---|---|
| Split Horizon | A router does not advertise a route back on the interface it was learned from — prevents immediate two-router loops |
| Route Poisoning | When a route fails, the router immediately advertises it with metric 16 (infinity) — propagates the failure quickly |
| Poison Reverse | Extension of split horizon — after receiving a poisoned route, the receiver sends it back with metric 16 to confirm removal |
| Holddown Timer | After a route is marked unreachable, new updates about that route are ignored for 180 seconds — prevents false re-learning |
| Triggered Updates | When a route changes, RIP sends an immediate update without waiting for the 30-second timer |
RIPv2 vs OSPF vs EIGRP — Quick Comparison
| Feature | RIPv2 | OSPF | EIGRP |
|---|---|---|---|
| Type | Distance-vector | Link-state | Advanced distance-vector |
| Metric | Hop count (max 15) | Cost (bandwidth-based) | Bandwidth + delay composite |
| AD | 120 | 110 | 90 (internal) / 170 (external) |
| Convergence | Slow — minutes | Fast — seconds | Very fast — milliseconds (with FS) |
| Scalability | Max 15 hops | Large networks, multi-area | Large networks, single AS |
| Update method | Full table every 30 sec | Partial LSAs on change | Partial updates on change |
| VLSM support | ✅ RIPv2 yes | ✅ Yes | ✅ Yes |
2. Lab Topology & IP Addressing
Three routers in a simple chain topology — the most common RIP lab setup. All routers will run RIPv2 in the same routing domain. The topology is deliberately small to stay within RIP's 15-hop limit.
192.168.10.0/24 10.0.12.0/30 10.0.23.0/30 192.168.30.0/24
(LAN — PC1) (R1 ↔ R2) (R2 ↔ R3) (LAN — PC3)
[PC1]──────[R1]──Gi0/1──────────[R2]──Gi0/1────────────[R3]──────[PC3]
Gi0/0 10.0.12.1 Gi0/0 10.0.12.2 10.0.23.1 Gi0/0 10.0.23.2
192.168.10.1 192.168.30.1
| Device | Interface | IP Address | Connected To |
|---|---|---|---|
| NetsTuts_R1 | Gi0/0 | 192.168.10.1 /24 | LAN (PC1) |
| NetsTuts_R1 | Gi0/1 | 10.0.12.1 /30 | NetsTuts_R2 Gi0/0 |
| NetsTuts_R2 | Gi0/0 | 10.0.12.2 /30 | NetsTuts_R1 Gi0/1 |
| NetsTuts_R2 | Gi0/1 | 10.0.23.1 /30 | NetsTuts_R3 Gi0/0 |
| NetsTuts_R3 | Gi0/0 | 10.0.23.2 /30 | NetsTuts_R2 Gi0/1 |
| NetsTuts_R3 | Gi0/1 | 192.168.30.1 /24 | LAN (PC3) |
3. Step 1 — Configure RIPv2 on NetsTuts_R1
RIP is configured with the router rip command. The
version 2 command is critical — without it,
Cisco IOS defaults to RIPv1-compatible mode which uses broadcast updates
and cannot carry subnet masks. Always set version 2 explicitly.
NetsTuts_R1>en NetsTuts_R1#conf t Enter configuration commands, one per line. End with CNTL/Z. ! ── Enter RIP routing process ──────────────────────────── NetsTuts_R1(config)#router rip ! ── Enable RIPv2 (classless, multicast, VLSM support) ─── NetsTuts_R1(config-router)#version 2 ! ── Disable auto-summary ───────────────────────────────── NetsTuts_R1(config-router)#no auto-summary ! ── Advertise directly connected networks ──────────────── NetsTuts_R1(config-router)#network 192.168.10.0 NetsTuts_R1(config-router)#network 10.0.0.0 ! ── Suppress RIP updates on LAN interface ──────────────── NetsTuts_R1(config-router)#passive-interface GigabitEthernet0/0 NetsTuts_R1(config-router)#exit NetsTuts_R1(config)#end NetsTuts_R1#wr Building configuration... [OK] NetsTuts_R1#
network command in RIP uses classful network
addresses only — no wildcard or subnet masks are used here.
network 10.0.0.0 enables RIP on all interfaces whose IP address
falls within the Class A range 10.0.0.0/8, which matches both 10.0.12.1 (Gi0/1)
and any other 10.x.x.x interfaces. network 192.168.10.0 enables
RIP on Gi0/0. After completing configuration save with
write memory.
RIPv2 Configuration Command Reference
| Command | What It Does | Why It Matters |
|---|---|---|
router rip |
Enters the RIP routing process configuration | Starting point — no AS number needed unlike EIGRP |
version 2 |
Enables RIPv2 — classless updates with subnet masks via multicast 224.0.0.9 | Critical — without this, RIPv1-compatible mode sends broadcasts without subnet masks |
no auto-summary |
Disables automatic classful summarization | Required for VLSM networks — auto-summary causes black holes with discontiguous subnets |
network [classful-address] |
Enables RIP on all interfaces matching the classful network — no subnet mask or wildcard | Unlike OSPF/EIGRP, the network command in RIP uses classful addresses only |
passive-interface [int] |
Stops RIP updates from being sent out this interface — but still advertises the network | Same purpose as in OSPF and EIGRP — prevents unnecessary updates on LAN segments |
4. Step 2 — Configure RIPv2 on NetsTuts_R2 and NetsTuts_R3
NetsTuts_R2
NetsTuts_R2>en NetsTuts_R2#conf t Enter configuration commands, one per line. End with CNTL/Z. NetsTuts_R2(config)#router rip NetsTuts_R2(config-router)#version 2 NetsTuts_R2(config-router)#no auto-summary NetsTuts_R2(config-router)#network 10.0.0.0 NetsTuts_R2(config-router)#exit NetsTuts_R2(config)#end NetsTuts_R2#wr Building configuration... [OK] NetsTuts_R2#
network 10.0.0.0 statement enables RIP on both Gi0/0
and Gi0/1 simultaneously. No passive interface needed since both interfaces
face other routers.
NetsTuts_R3
NetsTuts_R3>en NetsTuts_R3#conf t Enter configuration commands, one per line. End with CNTL/Z. NetsTuts_R3(config)#router rip NetsTuts_R3(config-router)#version 2 NetsTuts_R3(config-router)#no auto-summary NetsTuts_R3(config-router)#network 10.0.0.0 NetsTuts_R3(config-router)#network 192.168.30.0 NetsTuts_R3(config-router)#passive-interface GigabitEthernet0/1 NetsTuts_R3(config-router)#exit NetsTuts_R3(config)#end NetsTuts_R3#wr Building configuration... [OK] NetsTuts_R3#
5. Step 3 — Default Route and Timers
Advertising a Default Route via RIP
RIP can propagate a default route to all neighbors using
default-information originate. This works identically to the
OSPF equivalent — a static default route must exist first:
! ── On R1: static default pointing to ISP ──────────────── NetsTuts_R1(config)#ip route 0.0.0.0 0.0.0.0 203.0.113.1 ! ── Propagate via RIP to all neighbors ─────────────────── NetsTuts_R1(config)#router rip NetsTuts_R1(config-router)#default-information originate NetsTuts_R1(config-router)#exit
Adjusting RIP Timers (Optional)
In lab environments or specific use cases, RIP timers can be tuned to improve convergence. All routers in the RIP domain must use the same timer values or routes will expire unexpectedly:
! ── Syntax: timers basic [update] [invalid] [holddown] [flush] NetsTuts_R1(config)#router rip NetsTuts_R1(config-router)#timers basic 15 45 45 60
RIP Authentication (MD5)
RIPv2 supports MD5 authentication to prevent rogue routers from injecting false routes. Authentication is configured on each interface using a key chain:
! ── Step 1: Create key chain ───────────────────────────── NetsTuts_R1(config)#key chain RIP-KEYS NetsTuts_R1(config-keychain)#key 1 NetsTuts_R1(config-keychain-key)#key-string NetsTuts$ecret NetsTuts_R1(config-keychain-key)#exit NetsTuts_R1(config-keychain)#exit ! ── Step 2: Apply to inter-router interface ─────────────── NetsTuts_R1(config)#interface GigabitEthernet0/1 NetsTuts_R1(config-if)#ip rip authentication mode md5 NetsTuts_R1(config-if)#ip rip authentication key-chain RIP-KEYS NetsTuts_R1(config-if)#exit
6. Verification
show ip protocols
NetsTuts_R1#show ip protocols
*** IP Routing is NSF aware ***
Routing Protocol is "rip"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Sending updates every 30 seconds, next due in 12 seconds
Invalid after 180 seconds, hold down 180, flushed after 240
Redistributing: rip
Default version control: send version 2, receive version 2
Interface Send Recv Triggered RIP Key-chain
GigabitEthernet0/1 2 2 No
Automatic network summarization is not in effect
Maximum path: 4
Routing for Networks:
10.0.0.0
192.168.10.0
Passive Interface(s):
GigabitEthernet0/0
Routing Information Sources:
Gateway Distance Last Update
10.0.12.2 120 00:00:12
Distance: (default is 120)
no auto-summary is working.
Passive Interface: Gi0/0 — LAN interface is correctly passive.
Distance: 120 — RIP's administrative distance.
The gateway 10.0.12.2 (R2) is the only RIP update source visible to R1.
show ip route rip
NetsTuts_R1#show ip route rip Codes: R - RIP R 10.0.23.0/30 [120/1] via 10.0.12.2, 00:00:17, GigabitEthernet0/1 R 192.168.30.0/24 [120/2] via 10.0.12.2, 00:00:17, GigabitEthernet0/1
show ip rip database
NetsTuts_R1#show ip rip database
10.0.0.0/8 auto-summary
10.0.12.0/30 directly connected, GigabitEthernet0/1
10.0.23.0/30
[1] via 10.0.12.2, 00:00:08, GigabitEthernet0/1
192.168.10.0/24 directly connected, GigabitEthernet0/0
192.168.30.0/24
[2] via 10.0.12.2, 00:00:08, GigabitEthernet0/1
debug ip rip — Live Update Monitoring
NetsTuts_R1#debug ip rip
RIP protocol debugging is on
NetsTuts_R1#
RIP: sending v2 update to 224.0.0.9 via GigabitEthernet0/1 (10.0.12.1)
RIP: build update entries
192.168.10.0/24 via 0.0.0.0, metric 1, tag 0
RIP: received v2 update from 10.0.12.2 on GigabitEthernet0/1
10.0.23.0/30 via 0.0.0.0 in 1 hops
192.168.30.0/24 via 0.0.0.0 in 2 hops
debug ip rip shows RIP updates in real time — what is being
sent and received on each interface. Always turn off debugging after use:
no debug ip rip or undebug all. On a busy router,
debug output can overwhelm the console and degrade performance.
show ip route — Full Routing Table (R2)
NetsTuts_R2#show ip route
Codes: C - connected, L - local, R - RIP
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C 10.0.12.0/30 is directly connected, GigabitEthernet0/0
L 10.0.12.2/32 is directly connected, GigabitEthernet0/0
C 10.0.23.0/30 is directly connected, GigabitEthernet0/1
L 10.0.23.1/32 is directly connected, GigabitEthernet0/1
R 192.168.10.0/24 [120/1] via 10.0.12.1, 00:00:24, GigabitEthernet0/0
R 192.168.30.0/24 [120/1] via 10.0.23.2, 00:00:18, GigabitEthernet0/1
Verification Command Summary
| Command | What It Shows | Primary Use |
|---|---|---|
show ip protocols |
RIP version, timers, networks, passive interfaces, update sources, AD | Comprehensive first check — confirms version 2 and no auto-summary |
show ip route rip |
Only RIP-learned routes with AD and hop count metric | Confirm routes are being received correctly |
show ip rip database |
Full RIP database — directly connected and learned routes with hop counts | View all RIP-known networks and their age |
show logging |
RIP update events and any error messages | Troubleshoot unexpected route changes |
debug ip rip |
Live RIP updates sent and received — shows exact networks and hop counts in each update | Deep troubleshooting — always disable after use with undebug all |
show ip route |
Full routing table — RIP routes shown as R, default route as R* | Final end-to-end route verification |
7. Troubleshooting RIPv2 Issues
| Problem | Symptom | Cause | Fix |
|---|---|---|---|
| Routes learned but missing subnet detail | Routes appear as classful (e.g., 10.0.0.0/8 instead of 10.0.23.0/30) | version 2 not configured — router is running RIPv1 compatible mode which strips subnet masks from updates |
Add version 2 and no auto-summary under router rip on all routers |
| No RIP updates received from neighbor | show ip rip database shows only directly connected — no learned routes |
Version mismatch (one router RIPv1, other RIPv2) or passive-interface incorrectly set on inter-router interface | Verify show ip protocols on both sides — confirm both send and receive version 2. Check passive-interface is NOT on the inter-router link |
| Routing black hole in discontiguous network | Some subnets unreachable despite correct routing table | Auto-summary is still enabled — RIP is summarizing specific subnets to their classful boundary, hiding them behind conflicting summaries | Add no auto-summary to all routers in the domain — confirm with show ip protocols "Automatic network summarization is not in effect" |
| Routes flapping (appear and disappear) | Routes alternate between present and absent every few minutes | Timer mismatch — one router using default timers (30/180) and another using custom timers. Update timer on one router exceeds Invalid timer on another | Verify timers with show ip protocols on all routers — ensure they match. Reset to defaults with no timers basic |
| Route count stops at 15 hops | Network beyond 15 hops is completely unreachable — shows metric 16 | RIP's maximum hop count is 15 — metric 16 means unreachable. This is by design | Redesign the network topology to reduce hop count, or replace RIP with OSPF or EIGRP which have no practical hop limit. See Troubleshooting Layer 3 Routing |
| RIP updates seen on LAN interface | debug ip rip shows updates being sent to 224.0.0.9 on PC-facing interface |
Passive-interface not configured on the LAN interface | Add passive-interface [LAN-interface] under router rip — stops RIP updates from reaching end devices |
Key Points & Exam Tips
- Always configure
version 2explicitly — without it, Cisco defaults to RIPv1-compatible mode (broadcasts, no subnet masks, no VLSM). - Always configure
no auto-summary— auto-summary is on by default and summarizes subnets to classful boundaries, causing black holes in VLSM networks. - The RIP
networkcommand uses classful addresses — no subnet masks or wildcard masks.network 10.0.0.0enables RIP on all interfaces with IPs in 10.0.0.0/8. - RIP's metric is hop count only — maximum 15 hops. A metric of 16 means the route is unreachable (infinite metric). RIP has no concept of bandwidth or delay.
- RIP sends its full routing table every 30 seconds regardless of changes — compared to OSPF and EIGRP which only send updates when the topology changes.
- RIP's Administrative Distance is 120 — higher (less trusted) than both OSPF (110) and EIGRP (90). If all three protocols know a route, EIGRP's version is installed.
show ip protocolsis the primary verification command — confirms RIPv2 version, timers, networks, passive interfaces, and that auto-summary is disabled.debug ip ripshows live updates — useful to confirm what each router is sending and receiving. Always disable withundebug allafter troubleshooting.- RIPv2 uses multicast 224.0.0.9 for updates — only RIPv2 routers receive them. RIPv1 used broadcast 255.255.255.255 which reached all devices on the segment.
- RIP is suitable only for small networks (under 15 hops) with simple topologies. For any network requiring fast convergence, scalability, or accurate path selection, use OSPF or EIGRP instead.