OpenFlow-Based Faucet Provides High-Speed SDN Controller

The open source Faucet project -- a high-speed controller for software-defined networking (SDN) implementations -- is getting some attention this week at the 2019 event in New Zealand.

The project has been in the works for years, and backer Brad Cowie will helm a presentation using Faucet to deploy a high-speed productions networks.

Faucet is based on OpenFlow, the open source communications protocol backed by the Open Networking Foundation (ONF) that's used in new-age, software-centric networking to determine the path of network packets across a network of switches.

While many open source projects have emerged with OpenFlow as a foundational technology, backers say Faucet has some key differentiators that lend it to being used "to run networks the same way they run server clusters," in one characterizations, while another says it brings "the DevOps workflow to networking."

"It does this by making network functions (like routing protocols, neighbor discovery, and switching algorithms) easy to manage, test, and extend by moving them to regular software that runs on a server, versus the traditional approach of embedding these functions in the firmware of a switch or router," said Cowie in a Jan. 15 blog post. "Faucet works by ingesting a YAML configuration file that represents the network topology and required network functionality, and it does the work to program every device on the network with OpenFlow."

Faucet supports:

  • OpenFlow v1.3 (multi table) switches (including optional table features), hardware and software
  • Multiple datapaths and distributed switching under a single controller
  • VLANs, mixed tagged/untagged ports
  • ACLs matching layer 2 and layer 3 fields
  • IPv4 and IPv6 routing, static and via BGP
  • Policy based forwarding to offload to external NFV applications (Eg 802.1x via hostapd, DHCP to isc DHCPD)
  • Port and flow statistics via InfluxDB/Grafana
  • Controller health and statistics via Prometheus
  • Unit and systems tests run under Travis based on mininet and OVS

The origins of Faucet can be traced back to 2015, when the first edition was created by REANNZ (New Zealand research and education network), after which an introductory article was penned in acmqueue in 2016.

"The benefits of SDN have been difficult to realize because of a lack of software that is accessible to today's network operator community," stated that article, written by Josh Bailey and Stephen Stuart. "While still a very simple system, Faucet could be useful enough to operators that they may take the next step toward migrating to SDN, enabling them to adopt and enjoy the specific benefits of the rapid feature development, deployment, and testing Faucet provides."

Since then, many have migrated to SDN and other new-age, software-centric networking technologies like network functions virtualization (NFV), and Faucet is still flowing strong.

"Faucet has been deployed in many different networks all over the world," Cowie said in last week's post. "Most recently, we partnered with the ACM/IEEE Supercomputing Conference 2018 (SC18) conference to deploy a large Faucet network as part of the SCinet network that delivers terabits per second of internet to the booths on the show floor. The network we built featured hardware from Allied Telesis, Cisco, and NoviFlow, and we managed to exceed 9 terabits per second of capacity."

More resources on Faucet include:

The GitHub project shows 45 contributors, 197 stars and 115 forks.

About the Author

David Ramel is an editor and writer for Converge360.


Subscribe on YouTube