RouteFlow, is an open source project to provide virtualized IP routing services over OpenFlow-enabled devices.
RouteFlow is composed by an OpenFlow Controller application, an independent RouteFlow Server, and a virtual network environment that reproduces the connectivity of a physical infrastructure and runs IP routing engines (e.g. Quagga). The routing engines generate the forwarding information base (FIB) into the Linux IP tables according to the routing protocols configured (e.g., OSPF, BGP). In turn, the Linux IP and ARP tables are collected by RouteFlow Slave processes and then translated into OpenFlow tuples that are finally installed in the associated OpenFlow-enabled devices in the forwarding plane.
RouteFlow is the evolution of our early work on QuagFlow – Partnering Quagga with OpenFlow and works transparent to the specific routing engine (e.g., Quagga, XORP, BIRD) as long as it is based on the Linux networking stack.
The best way to get introduced to RouteFlow is the 4-page paper entitled "Virtual Routers as a Service: The RouteFlow Approach Leveraging Software-Defined Networks".
| The main components of the RouteFlow solution are:
The main goal of RouteFlow is to develop an open-source framework for virtual IP routing solutions over commodity hardware implementing the OpenFlow API.
RouteFlow aims at a commodity routing architecture that combines the line-rate performance of commercial hardware with the flexibility of open source routing stacks (remotely) running on general purpose computers. As an outcome of this point in the design space of routing solutions, we expect:
- Migration path from legacy IP deployments to purely software-defined networks (i.e. OpenFlow)
- Open-Source framework to support the different flavours of network virtualization (e.g., logical routers, router aggregation / multiplexation).
- IP Routing-as-a-Service models of networking
- Simplified intra- and inter-domain routing interoperable with legacy equipments.
You can download the code from the RouteFlow GitHub repository.
Use git to fetch the code:
You can setup your own virtual environment (e.g., Virtual Machines, LXC containers, etc) where the RF-Slave and the IP routing engine (e.g., Quagga) will run. For your convenience, we have pre-configured Linux VM (with Quagga and RF-Slave) for QEMU and LXC available here.
There is also a tutorial: Your first RouteFlow network - HOWTO
We look forward for your comments and contributions!
We welcome you to use and watch the Features and Bug tracking system!
Use the RouteFlow Forum to post your comments, suggest new features, or discuss anything you want.