Zodiac FX review

What is Zodiac FX

Zodiac FX is an OpenFlow enabled switch, developed by Northbound Networks. They promote it on their kickstarter project as:

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.

Unboxing

You will receive a box with the switch and a USB cable:

../post-files/zodiac-fx-review/box-scaled.JPG

The contents of the box, without the static shielding bag:

../post-files/zodiac-fx-review/board_and_cable-scaled.JPG

The switch is small enough to sit on your desk (as mentioned - just 10 x 8 cm):

../post-files/zodiac-fx-review/board-scaled.JPG

It has got 4 Ethernet ports and small rubber pads, so you can put it on your desk without short circuiting it:

../post-files/zodiac-fx-review/ports-scaled.JPG

It is powered via micro USB port:

../post-files/zodiac-fx-review/micro_usb-scaled.JPG

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:

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.

Hardware specs

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:

../post-files/zodiac-fx-review/ATSAM4E8C-scaled.JPG

The switch:

../post-files/zodiac-fx-review/KSZ8795-scaled.JPG

The revision of the board:

../post-files/zodiac-fx-review/hw_rev-scaled.JPG

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:

git clone https://github.com/noxrepo/pox.git
cd pox
./pox.py forwarding.l2_learning

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!

Comments

Comments powered by Disqus