RARE stands for Router for Academia, Research & Education. It is an open source routing platform, used to create a network operating system (NOS) on commodity hardware (a white box switch). RARE uses FreeRtr as a control plane software and is thus often referred to as RARE/freeRtr.
RARE nodes are identified by the
rare kind in the topology file.
what is RARE?
RARE/freeRtr has the particularity to run interchangeably different dataplanes such P4 INTEL TOFINO, P4 BMv2, DPDK, XDP, libpcap or UNIX UDP raw sockets. This inherent property allows RARE/freeRtr to run multiple use cases requiring different bandwidth capability.
It can be used as:
- a full featured versatile DPDK SOHO router able to handle nx1GE, nx10GE and a couple of 100GE.
- a service provider Metropolitan Arean Network IPv4/IPv6 MPLS router
- a full featured BGP Route Reflector
Getting RARE image#
RARE/freeRtr container image is freely available on GitHub Container Registry.
The container image is nightly build of a RARE/freeRtr control plane off the
Managing RARE/freeRtr nodes#
RARE/freeRtr node launched with containerlab can be managed via the following interfaces:
Default user credentials:
RARE/freeRtr container uses the following mapping for its linux interfaces:
eth0- management interface connected to the containerlab management network
eth1- first data interface
eth2- second data interface
eth<n>- nth data interface
When containerlab launches RARE/freeRtr node:
- It will assign IPv4/6 address to the
- Data interface
eth<n>need to be configured with IP addressing manually.
Features and options#
RARE/freeRtr nodes have a dedicated
/run1 directory that is used to persist the configuration of the node which consists of 2 files:
rtr-hw.txtalso called freeRtr hardware file
rtr-sw.txtalso called freeRtr software file
User defined config#
It is possible to make RARE/freeRtr nodes to boot up with a user-defined config instead of a default one. In this case you'd have to create
rtr-sw.txt files and bind mount them to the
Configuration is saved using
write command using RARE/freeRtr CLI. The router configuration will be saved at
As an open source software, RARE/freeRtr does not require any license file.
Build RARE/freeRtr Container#
RARE/freeRTr container can be built:
During lab initialisation, each node will have their
run folder created.
In the lab example above:
root@debian:~/development/testclab/freeRtr-containerlab# tree clab-rtr000/ clab-rtr000/ ├── ansible-inventory.yml ├── authorized_keys ├── rtr1 │ └── run │ ├── conf │ │ ├── hwdet-all.sh │ │ ├── hwdet.eth │ │ ├── hwdet.mac │ │ ├── hwdet-main.sh │ │ ├── hwdet.ser │ │ ├── pcapInt.bin -> /rtr/pcapInt.bin │ │ ├── rtr-hw.txt │ │ └── rtr-sw.txt │ ├── logs │ │ └── freertr.log │ ├── mrt │ ├── ntfw │ └── pcap ├── rtr2 │ └── run │ ├── conf │ │ ├── hwdet-all.sh │ │ ├── hwdet.eth │ │ ├── hwdet.mac │ │ ├── hwdet-main.sh │ │ ├── hwdet.ser │ │ ├── pcapInt.bin -> /rtr/pcapInt.bin │ │ ├── rtr-hw.txt │ │ └── rtr-sw.txt │ ├── logs │ │ └── freertr.log │ ├── mrt │ ├── ntfw │ └── pcap └── topology-data.json
conffolder is where RARE/freeRtr configuration files are located
logsfolder is where RARE/freeRtr logs files are located (output of
pcapfolder is where
pcapfiles are located (
packet capture eth1)
ntfwfolder is where netflow files are stored (future use - not configured currently in default config)
mrtfolder is where
bmpoutput files are stored (future use - not configured currently in default config)
The following labs feature RARE/freeRtr node: