Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The main objective of [RARE / FreeRouter 101] series is to help you getting started with FreeRouter from scratch without any prior knowledge.

Requirement

  • Basic Linux/Unix knowledge
  • Basic networking knowledge

Overview

freeRouter is a free, open source router control plane software. For nostalgic and old networkers (like me), freeRouter is able to handle HDLC, X25, frame-relay, ATM encapsulation.

...

  • no global routing table: every routed interface must be in a virtual routing table
  • positive side effect: there are no vrf-awareness questions

Article objective

This article is meant to simply deploy 2 instances of freeRouter on the same fresh linux installed linux box.

...

But let's get our "hand dirty" and follow the simple manual installation. 

Diagram

Cookbook #001

Expand
titleInstall your favorite operating system

In our example we will use a genuine debian stable image (buster) installed as a VirtualBox VM.


Expand
titleInstall Get your favorite operating system up to date
  • Start & connect your VM as 

Markdown
`root`

  • root 
  • Update your VM
Code Block
languagebash
themeMidnight
apt-get update
apt-get upgrade
  • Install operating system default java package
Code Block
languagebash
themeMidnight
apt-get install default-jre-headless 



Expand
titleInstall operating system java package

...

In this example, we won't recompile freeRouter so installing headless java runtime is enough. This set up is recommended for production environment in order to ensure minimal software footprint

Code Block
languagebash
themeMidnight
apt-get install default-jre-headless --no-install-recommends



Expand
titleCreate freeRouter environment

Let's create the following structure, even if some folder are empty for now:

Code Block
languagebash
themeMidnight
mkdir -p ~/freeRouter/bin ~/freeRouter/lib ~/freeRouter/etc ~/freeRouter/log
cd ~/freeRouter/lib
wget http://freerouter.nop.hu/rtr.jar

so you have have the following environment:

Code Block
languagebash
themeMidnight
╭─[11:11:54]floui@debian ~ 
╰─➤ tree freeRouter
freeRouter
├── bin
├── etc
├── lib
└── log



Expand
titleCreate freeRouter configuration files

FreeRouter uses 2 configuration files in order to run:

Code Block
languagebash
themeMidnight
titlefreeRouter hardware file: ${ROUTER_NAME}-hw.txt
int eth1 eth 0000.1111.0001 127.0.0.1 26011 127.0.0.1 26021


Code Block
languagebash
themeMidnight
titlefreeRouter software configuration file: ${ROUTER_NAME}-sw.txt
hostname r1
int eth1
desc r2 e1
exit
int eth2
desc r3 e2
exit