Thursday, April 24, 2014

Extensible Network Controller - XNC

XNC is Cisco distribution of OpenDayLight, with some features add on like network slicing, topology independent forwarding etc.  The original OpenDayLight will talk to the network element using Openflow as the southbound API.  For XNC, OnePK support is added and you can use it as a southbound protocol to talk to the network elements.  This blog post will give you a preliminary overview on how it works and how to add a "REAL" device to XNC / OpenDaylight.  On Internet right now there are a lot of tutorial on how OpenDayLight works with Mininet, but not much about how OpenDayLight / XNC works with a "REAL" network device that's why I want to give it a try and test it out.

To make Cisco switches Openflow capable, you need to install the "Cisco Plug-in for Openflow" to the Nexus switch.  In my testing environment I have deployed the Cisco Plug-in for Openflow 1.1.1 .ova file on Nexus 5596 virtual service container.  To understand how it is installed and activated, you can follow this guide:

http://www.cisco.com/c/en/us/td/docs/switches/datacenter/sdn/configuration/openflow-agent-nxos/cg-virtual-service-container.html

After installed and activated, you should see the Cisco Plugin for Openflow is running on your Nexus.  You need at least NX-OS 7.0.1.N1.1 on N5K to support this plugin.



Then you can start with some basic Openflow configuration on your Nexus box.  Detail configuration you can refer to the following guide:

http://www.cisco.com/c/en/us/td/docs/switches/datacenter/sdn/configuration/openflow-agent-nxos/cg-nxos-openflow.html#task_19259681156D48A9B43E37CE4CF650E6


This is my Openflow configuration.  My XNC IP address is 10.1.90.51.

 


One caveat is the default tcp port for Nexus and XNC is 6653/tcp on NX-OS.  If you don't specify the port in your configuration, it will default to 6653.tcp, which is WRONG!  I have spent days to find that out.  The correct port is 6633/tcp.  Needs to be careful about that.



Then you will able to see the state "ACTIVE" once you connect the XNC controller.
For the XNC controller, I have downloaded the version 1.5 from CCO and you can use it once you unzip it in a Linux box.  You need to make sure you have Java 1.7 or above before running it.  To run it, simply run the "runxnc.sh" and the controller process will run in background.


You can see from below screen capture that my N5K is discovered by the XNC controller:




I have also installed OpenDaylight in my environment, in the same machine.  Since both of them are listened to 8080/tcp for the web elements, I cannot turn them on at the same time.  So I have stopped my XNC and run ODL and it is how it looks.  Pretty similar to XNC but with less features.




You can also add on module to XNC such as TIF manager.  That is yet another zip file, once you unzip it, the .jar file will be placed in the plugin folder and it will show up on the web GUI once you restart the controller process.











No comments: