Quagga is an open source router that could set your data center up for software-defined networking.
In most corporate data centers, hardware routers send packets from one network to another. Linux historically offers an alternative, and quagga is its routing stack that continues this technological roadmap.
Quagga implements all important routing protocols: OSPFv2 and v3; RIP version 1, 2 and NG; and even BGP, which connects several Internet routing zones. It is developed for Unix in general, particularly for FreeBSD, Linux, Solaris and NetBSD.
A full router needs traffic forwarding and a routing stack. The routing stack provides the intelligence as routing protocols to forward packets.
When Linux routing was introduced, the Linux kernel took care of packet forwarding. In current networking environments, a distributed forwarding platform such as OpenFlow does this, which makes Linux networking interesting in a cloud context. The quagga router provides the logic that can be used in software-defined networking (SDN), and the OpenFlow protocol shapes the routes for network packets. This is a flexible router combination for SDN.
Quagga is frequently used in environments well suited to SDN, such as large data centers, at cloud providers and in the academic and research community. Quagga provides an open source routing stack, which makes it an easy platform for developing new standards.
A Quagga router
Quagga can supply an open source router like the pre-existing Zebra software router.
To make a Quagga router an alternative to a hardware routing appliance, the kind of hardware you run underneath it matters. There are no specific hardware recommendations, but pay attention to bus speed, RAM and CPU, as well as fast network interface cards. The CPU must have a large amount of cache. Processor speed influences routing updates, convergence and lookups. Dedicated hardware can cache all of these essential components, which has the router answer within nanoseconds. A common PC might take milliseconds to reply to the same query.
Quagga is in the default repositories of many Linux distributions, such as CentOS, which makes installation easy and helps you to integrate it in a supported way in your Linux platform of choice.
Install the software first. Specify which routing daemons it should use through the zebra.conf configuration file. Typically, you'll only activate those routing processes that your IT environment needs. After they start up, the processes will start communicating with others in your network.
About the author:
Sander van Vugt is an independent trainer and consultant based in the Netherlands. He is an expert in Linux high availability, virtualization and performance. He has authored many books on Linux topics, including Beginning the Linux Command Line, Beginning Ubuntu LTS Server Administration and Pro Ubuntu Server Administration.
Consider replacing routers with smart switches
SDN protocols beyond OpenFlow