you have reached the official homepage of freeRouter!
freeRouter is a free, open source router os process.
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)
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.
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, 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, ppp, framerelay, pwether, virtppp, hairpin
misc: acl, qos, nat, pbr, srv6, vrrp, hsrp, inspect, 6to4, rpl, tunnel, vpdn, pcep
read papers or usage tips
view screenshots or selftests
browse source, view signature
contact author, read greetings
read design, testing or releasing
look at pvrp, lsrp, sdwan or discuss
try online or offline demo
download binary or source
get iso ova vmdk qcow2 gns3a
(serial console, virtio nic, 1gb ram)
one-line installer to a fresh debian:
wget freertr.org/install.sh ; sudo bash install.sh
activate external forwarding:
test hwext path /rtr/rtr- dataplane p4emu
(just press y)