you have reached the official homepage of freeRouter. it is mostly yet another
routing/forwarding stack made by some network/software engineers for you all.
freeRouter is a free, open source router os process and some dataplanes.
it speaks routing protocols, and (re)encapsulates packets on interfaces.
(a huge list of encapsulation and routing test cases can be found under self-test page)
since it handles packets itself, it is independent of underlaying os capabilities.
(it can export forwarding tables to xdp, dpdk or hardware switches via openflow or p4lang)
these different forwarders could be stacked and the backplane protocol is mpls and the outer
mpls label selects the stack member and the inner label selects the service of the packet.
(it means that every regular port could be configured to be a stack port or a user port and the
stack could be arbitrary long without the need to do any packet rewrite as the packet travelses
the stack members. similar idea seen these days in the mpls segment routing in the telco scene)
since it is an unprivilegized process, it receives and sends packets through udp sockets.
(it means that internet can be used as backplane for router processes)
there are external, privileged processes that place traffic to these udp sockets.
the command line tries to mimic the industry standards with one exception:
no global routing table: every routed interface must be in a virtual routing table.
positive side effect: there are no vrf-awareness questions.
self-tests
connectivity tests executed on a network of virtual routers
and these test results are compared to predefined values.
when a feature introduced, test cases are created for it.
before releasing a version, all the test cases have to pass.
these also serve as a guide about how to configure features.
summary of features
forwarding: ipv4, ipv6, ipx, mpls, nsh, layer2, irb, atom, eompls, vpls, evpn
routing protocols: ospf, isis, bgp, rip, eigrp, rift, babel, olsr, pim, msdp
lsp support: p2p, p2mp, mp2mp built by bgp, ldp, rsvp-te, sr, sr-te, bier, polka
crypto: macsec, ipsec, ikev1, ikev2, tls, dtls, ssh, openvpn, wireguard, sgt
tunnel: gre, ipip, l2tp, pptp, lisp, geneve, nvgre, vxlan, etherip, amt
encapsulation: ethernet, vlan, qinq, ppp(oe), framerelay, pwether, virtppp, hairpin
misc: acl, qos, nat, pbr, srv6, vrrp, hsrp, inspect, 6to4, rpl, tunnel, vpdn, pcep
information:
read papers or usage tips
browse source view signature
contact author read greetings
read design testing
or releasing
view some screenshots, the
sw,
ovs or
p4api
tests used to compare various dataplanes,
tests against ios-xe,
ios-xr,
junos,
frrouting.
may look at pvrp lsrp
sdwan community
demo
captures
rfcs
rare
docs
blog
youtube
reddit
twitter
email
chat
github
downloads:
try online or offline demo
download binary or source
get
ova
vmdk
qcow2
gns3a or
iso for
x86-64
i686
arm32
arm64
ppc64
mips64
risc64
s390x
sparc
loong
last but not least the portable hotspot
(serial console, virtio nic, 1vcpu, 1gb ram)
one-line installer to a fresh debian sid:
wget freertr.org/install.sh ; sudo bash install.sh
activate external forwarding:
write
test hwext path /rtr/rtr- dataplane p4raw
reload cold
(just press y)
last updated: