Saturday, June 17, 2017

Experimental Docker FAUCET image for Pi

Docker makes it easy to manage installations that can have a lot of dependencies (like Ryu, which FAUCET depends on). There are Docker images for FAUCET for x86 already, but there is now an experimental Docker build for Pi as well.

If you're running Raspbian, you probably need to upgrade Docker itself before you can use the image.

Thursday, June 8, 2017


V1.5.0 has just been released (and a new pip package is available).

This release is a significant advance over V1.4.0, benefiting from experience gained at the recent FAUCET PlugFest at LBL, and the deployment at WAND a the University of Waikato.

Among the many changes (including performance and reliability improvements to existing basic/policy based switching, and the test suite which now runs in Docker and supports python3), FAUCET now supports Prometheus, and both IPv4 and IPv6 routing are improved (the latter now supporting RAs).

It is strongly recommended that you upgrade to this release.

While V1.5.0 passes all systems tests under python3, testing under python3 is still not complete. You may prefer to stay python2 for now. V1.5.1 will move to python3 and drop python2 support.

Monday, May 22, 2017

FAUCET @ WAND: inside a live enterprise FAUCET deployment

Our friends and colleagues at the WAND group, at the University of Waikato in NZ, have deployed an enterprise SDN network controlled by FAUCET, supporting two different vendor hardware switches and OVS with DPDK. It peers with BGP, and switches and routes both IPv4 and IPv6 for wired and WiFi access.

The system is managed with Ansible - configuration changes are checked (and checked in), and then pushed to NFV services and FAUCET controllers. Even upgrades of the controller software are automatically checked and pushed out.

This means all configuration changes to the network - ACLs, BGP, etc are made through Ansible. There is no reason to log in to a switch directly once FAUCET has assumed control of it with OpenFlow.

Sunday, May 14, 2017

Using Prometheus with FAUCET

Here is a quick example of configuring and using Prometheus with FAUCET.

First, enable access to Prometheus to FAUCET (the Docker instructions in show how to enable access to port 9244).

Then install Prometheus. Under Ubuntu 16.0.4, this is as simple as:

apt-get install prometheus

Then configure Prometheus to scrape FAUCET. Under Ubuntu, edit /etc/prometheus/prometheus.yml, and under scrape_configs add a job for FAUCET:

  - job_name: 'faucet'


       - targets: ['']

Restart Prometheus.

service prometheus restart

You should now be able to browse port 9090 on your Prometheus server, and draw graphs (for example, packet in rate):

Wednesday, May 10, 2017

TouSIX, Umbrella and FAUCET

Marc Bruyere describes his proof of concept TouSIX SDX, and plans for a FAUCET controlled exchange using Umbrella encoding, which eliminates unwanted broadcast traffic from a distributed layer 2 network.

Installing, testing and routing with FAUCET and OVS in less than 5m

Joe Stringer walks through installing FAUCET and configuring it as a router step by step, in less than 5m.

If you want to get FAUCET routing and switching and have only 5m to learn how, this might be the reference for you.