What is Zodiac FX
The OpenFlow switch that is powerful enough to develop world changing SDN applications yet small enough to sit on your desk.
I've played with Openflow during Nick Feamster's course Software Defined Networking and I've decided that owning such device is a good opportunity to run Openflow controllers in a real network. I can't say how powerful the switch is, because all I have done up to now is to get it out of the box and start it up, but it is definitely small! Its dimensions are 10 x 8 cm, so expect something as big as Raspberry Pi, for example.
You will receive a box with the switch and a USB cable:
The contents of the box, without the static shielding bag:
The switch is small enough to sit on your desk (as mentioned - just 10 x 8 cm):
It has got 4 Ethernet ports and small rubber pads, so you can put it on your desk without short circuiting it:
It is powered via micro USB port:
The switch is shipped without a charger, but you can power it from the USB port on your laptop, which is really convenient.
What is SDN and OpenFlow
SDN stands for Software Defined Networking. There are a lot of good articles on this topic, so I will recommend only three of them:
- Software-defined networking on Wikipedia - general information about the SDN as a concept.
- What is SDN on SDX Central - a shorter article about the basic SDN concepts. Also discusses what is OpenFlow.
- Software Defined Networking course on Coursera - by Nick Feamster.
OpenFlow is de-facto the standard protocol for SDN. It allows the controller to interact with the switch. It is defined in RFC 7149 and there are lots of open source implementations.
Why real device and why Zodiac FX?
Actually you don't need a real device to play with OpenFlow. There are open source projects like Mininet, which can emulate hosts, switches and OpenFlow controllers on your computer. You can create very complicated network topologies and test your OpenFlow controller with lots of devices. However Mininet remains a simulation. Sometimes you want to run tests with devices you can't simulate or simply play with real hardware. For such situations it's worth to own a real OpenFlow switch.
There are a lot of OpenFlow enabled switches on the market, but most of them has got one major issue for me. They are designed for a server rack, they are big and they are noisy. In nutshell - they are not something you want on your desk. On the other side Zodiac FX is small. You can carry it around with you and use it everywhere. It is powered over USB so you can plug it in your laptop's USB port and not worry about separate power supply for the switch.
I have got Rev-A of the board. It has got:
- Microcontroller Atmel ATSAM4E8C.
- Switch - Micrel (now acquired by Microchip) KSZ8795.
- 4 Ethernet ports available for the user.
- Powered via micro-USB interface.
- Physical dimensions: 100 x 80 mm.
- Open sourced firmware - the code is on GitHub.
And some pictures. The microcontroller:
The revision of the board:
Powering up the switch
This switch is not at all useful without a Openflow controller, so let's attach one to it. First you need to configure the Ethernet interface on your computer (or wherever you will run the controller). According to the User manual, the board looks for the Openflow controller on IP address 10.0.1.8 via port 4. Set this IP address to your Ethernet interface and connect it to port 4 on Zodiac FX.
Now let's continue with the Openflow controller. My recommendation is POX, because it is relatively easy to set it up. Clone the git repo and you are ready to go:
You should see output similar to this one:
POX 0.2.0 (carp) / Copyright 2011-2013 James McCauley, et al. INFO:core:POX 0.2.0 (carp) is up. INFO:openflow.of_01:[70-b3-d5-6c-d0-d2 1] connected
The last line indicates that the switch is connected to the controller. At this point Zodiac FX should work as learning layer 2 Ethernet switch. Connect some devices to it and make sure it is working properly.
Okay the board is working. What now?
There is a very good article by Glen Turner, explaining how to connect to connect to Zodiac FX's CLI. He also explains how to configure the switch as flooding layer 2 hub with POX (it is similar to what we already did) and how to inspect the Openflow rules loaded in the device by the controller. You can learn more about POX from SDN Hub's tutorial.
Good luck and thanks for reading!