In the open networking industry, there are opportunities to innovate and optimize technology that can then be used by others in the open community. Free Range Routing (FRRouting, or FRR) is exactly that. As an open-source software designed originally by Cumulus Networks (now acquired by NVIDIA) and other contributors, FRR was created to streamline the routing protocol stack and to make engineers’ lives much easier. FRR’s enhanced flexibility has been leveraged in the connectivity component of NVIDIA® Cumulus NetQ™. Explore FRR in detail, how it was developed, and how it’s used in Cumulus NetQ.

What is FRRouting?

FRRouting was developed by a group of contributing companies in the open networking space. It’s an IP routing protocol suite for Unix and Linux platforms. FRR includes protocol daemons for Border Gateway Protocol (BGP), Intermediate System to Intermediate System (IS-IS), Label Distribution Protocol (LDP), Open Shortest Path First (OSPF), Protocol-Independent Multicast (PIM), and Routing Information Protocol (RIP).

It’s also a key component of NVIDIA Cumulus NetQ. It helps to ensure that unnumbered BGP can run on the host by allowing for advertising and addressing services directly on the host.

Since the FRR open-source project was forked from Quagga, another routing protocol suite for Linux, FRR includes the fundamentals that made Quagga so popular, as well as many enhancements that greatly improve on that foundation.

The benefits of in open source networking

FRR was created to provide layer-3 connectivity throughout a data center, from the spine and leaf switches all the way down to hosts, virtual machines, and containers. It’s designed to streamline the routing protocol stack.

Businesses can use FRR for connecting hosts, virtual machines, and containers to the network, advertising network service endpoints, network switching and routing, and internet access and peering routers.

FRR provides:

  • Simplified, modern data center design
  • Subnet freedom and mobility
  • Enhanced redundancy and flexibility
  • Stateless load balancing with anycast

FRR contributions to the Linux community

The FRRouting project was a collaborative project with contributors including 6WIND, Architecture Technology Corporation, Big Switch Networks, Cumulus Networks (now NVIDIA), LabN Consulting, NetDEF (OpenSourceRouting), Orange, Volta Networks, and others.

These contributors developed many new innovations to the protocol including, as detailed in the Linux Foundation blog and including the following:

  • 32-bit route tags were added to BGP and OSPFv2/v3, improving route policy maintenance and increasing interoperability in multivendor environments.
  • Update-groups and nexthop tracking enable BGP to scale to ever-increasing environments.
  • BGP add-path provides users with the ability to advertise service reachability in richly connected networks.
  • The addition of Requests for Comments (RFC) 5549 to BGP provides IPv4 connectivity using IPv6 native infrastructure, enabling customers to build IPv6-centric networks.
  • Virtual routing and forwarding (VRF) enables BGP users to operate isolated routing domains such as those used by web application infrastructures, hosting providers, and internet service providers.
  • Ethernet VPN (EVPN) type-5 routes allow customers with layer-2 data centers to exchange subnet information using BGP EVPN.
  • PIM Sparse Mode (PIM-SM) and Multicast Source Discovery Protocol (MSDP) enable enterprise applications that rely on IP multicast to use FRR.
  • Static Label Switched Paths (LSPs) along with LDP enable architects to use Multiprotocol Label Switching (MPLS) to engineer network data flow.
  • An overhaul of the command-line interface (CLI) infrastructure and new unit test infrastructure improves the ongoing development and quality of FRR.
  • Enabling the Internet Engineering Task Force’s (IETF) network virtualization overlays (NVO3) control allows users to build standards-based interoperable network virtualization overlays.
  • The protocol additions above are augmented by SnapCraft packaging and support for JavaScript Object Notation (JSON) outputs, both of which improve the operationalization of FRR.

FRR in Cumulus NetQ

FRR is used in the connectivity piece of NVIDIA Cumulus NetQ to enable unnumbered BGP and OSPF on the host. Using FRR as its routing suite, Cumulus NetQ works together with another piece of NVIDIA software to advertise containers into the routed fabric. This connectivity technology works in concert with Docker Engine and FRR, listening to the Docker Engine events stream and advertising and withdrawing individual container IP addresses from the routed fabric built by FRR.

The result greatly simplifies automation and the use of unnumbered interfaces to ease addressing, connectivity, and the announcement of services through software—all without manually configuring complex protocols. FRR can be deployed either as a bare-metal application or inside a container for maximum deployment flexibility.

Learn more about the FRRouting project.