(module-ripv2)=
# RIPv2/RIPng Configuration Module
This configuration module configures the RIPv2 and RIPng. The module supports the following RIP features:
* IPv4 and IPv6
* Passive interfaces
* VRF RIPv2/RIPng instances
```eval_rst
.. contents:: Table of Contents
:depth: 2
:local:
:backlinks: none
```
## Platform Support
The following table describes per-platform support of individual RIPv2/RIPng features:
| Operating system | IPv4
(RIPv2) | IPv6
(RIPng) | Passive
interfaces | Route
import | VRF
instances | RIP
timers |
| ------------------ | :-: | :-: | :-: | :-: | :-: | :-: |
| Arista EOS | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Cisco IOSv/IOSvL2 | ✅ | ✅ | ✅ [❗](caveats-iosv) | ✅ [❗](caveats-iosv) | ✅ | ✅ |
| Cisco IOS XE[^18v] | ✅ | ✅ | ✅ [❗](caveats-iosv) | ✅ [❗](caveats-iosv) | ✅ | ✅ |
| Cumulus Linux | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| FRR | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| VyOS | ✅ | ✅ | ✅ | ❌ |
```{tip}
See [RIP Integration Tests Results](https://release.netlab.tools/_html/coverage.ripv2) for more details.
```
[^18v]: Includes Cisco CSR 1000v, Cisco Catalyst 8000v, Cisco IOS-on-Linux (IOL), and IOL Layer-2 image.
(rip-params)=
## Lab Topology Parameters
You can change the RIPv2/RIPng timers with the global **rip.timers** dictionary ([more details](rip-timers)).
The RIPv2/RIPng configuration module supports these node parameters:
* **rip.timers**: Change RIP timers for a single node
* **ripv2.import**: Specify the [import (redistribution) of routes](routing_import) into the global RIP instance (default: no route import).
RIPv2 also supports [](routing_passive) and [](routing_external).
(rip-vrf)=
## VRF Parameters
* By default, _netlab_ redistributes BGP- and connected routes into VRF RIPv2/RIPng instances on all network devices. You can change that on devices supporting configurable route import with the **[ripv2.import](routing_import)** VRF parameter.
* Use **rip.timers** VRF parameter to change RIP timers for a single VRF instance
* Set **ripv2.active** to *True* to force a VRF to use RIPv2/RIPng even when no routers are attached to the VRF interfaces.
* To disable RIPv2/RIPng in a VRF set **ripv2** to *False* (see also [](routing_disable_vrf)).
(rip-timers)=
## Changing RIP Timers
You can change the RIP protocol timers with the **rip.timers** global/node/VRF dictionary. The dictionary has these elements:
* **update**: periodic RIP update timer. Default: 30 seconds, minimum: 5 seconds
* **timeout**: route expiration timer. Default: six times the **update** timer, minimum: 5 seconds)
* **garbage**: garbage collection timer (the time after which an invalid route is removed from the routing table). Default: four times the **update** timer, minimum: 5 seconds
## Example
We want to create a simple two-router RIPv2 network using Cumulus Linux:
```
defaults.device: cumulus
module: [ ripv2 ]
```
The lab has two nodes and a link between them:
```
nodes: [ r1, r2 ]
links: [ r1-r2 ]
```
This is the resulting RIPv2 FRRouting configuration for R1:
```
router rip
network lo
network swp1
version 2
```