Introduction to SDN OpenDayLight

Hello Martha

That’s great, thanks for letting us know! It’s much appreciated…

Laz

Hi, I’m not so sure to understand how OpenDayLight can be useful.

Does these software interconnect with existing devices?
I’m not sure to understand if it can be used to recreate a network topology diagram based on existing devices.
Does this software create a virtual network devices ?

Hello Giovanni

OpenDayLight is just one of many available SDN controllers/frameworks on the market. The controller itself, which is essentially OpenDayLight software running on a server or VM, connects to the actual physical network devices using some SDN protocol such as OpenFlow. (The network devices must support this). The network administrator connects to the SDN controller via APIs, and can use a web interface, a mobile app as well as programming languages (such as python) to interact with the controller, and to automate network maintenance and modifications.

The software doesn’t create a virtual network device, but a centralized location from which the whole network can be controlled and configured as a single entity.

The introduction to SDN lesson explains this whole idea in a very clear and understandable way. Take a look at this first, which approaches SDN in general, and then take a look at the OpenDayLight lesson once again, to see an example of a particular SDN solution in action.

I hope this has been helpful!

Laz

In the SDN lesson with OpenDaylight Rene uses a lot of Linux commands. Are these commands just a matter of rote memorization of specific commands or is there a repository? Is Rene using his knowledge of individual switches and parameters to formulate the specific commands himself, if so do we need to be Linux experts to use automation or could we use Python with windows based command line as well?

Hello Daniel

The purpose of this lesson is to give you some experience with an SDN platform that is widely used, which is OpenDaylight. OpenDaylight is Linux-based only and cannot be run in a Windows environment. The particular steps shown in the lesson that have detailed Linux commands are there for the purpose of installation and setup of that particular program.

The same is true about the Mininet platform.

The lesson allows you to set up an environment in which you can experiment with RESTONCF API, Yang UI, Postman, and Python. The focus is on these SDN related tools, however, the setup required some Linux commands and related setup.

You are not expected to know in any detail these Linux commands for any Cisco certification exam, however, it is useful to learn the basics in order to be able to deploy similar environments on your own.

I hope this has been helpful!

Laz

Thanks Lazaros! When you or Rene are typing these commands from Linux with their specific parameters and switches are you doing so by memory or do you refer to a command table list or pre-set commands?

Hi Daniel

This depends on how often you use Linux. I don’t use it very often, so in most cases, I have to look up the commands involved. Rene who uses it more regularly is able to do a lot more from memory, but I’m sure that he looks things up too occasionally. It’s like the Cisco IOS command line as well, the more you use it, the more things you can do by memory simply because the commands and the logic are fresher in the mind.

I hope this has been helpful!

Laz

Hello, thank you for this very clear explanation, I wonder if you could help me please, I have a project to emulate the STP protocol with ODL and let each switch send LLDP messages to neighbors every second, and send any LLDP packets they receive back to the controller. Calculate the resulting spanning tree using Kruskal’s algorithm, and implement it in the network.
Can you direct me how to proceed? I did some research but didn’t find big things, i’m looking for what is the ODL config file running the default STP, and how i can modify it? and do I have to develop an application from scratch or just modify … thank you for your answer

Hello Brahim

It seems that ODL is a little cumbersome to use for such an emulation project. Also, ODL used to support the L2switch feature, which supported STP and LLDP, but that project is no longer being updated as seen from this repository.

The L2Switch was removed from the latest iteration of ODL, but older versions should still have it. If this is just a lab situation then using that should be OK. For more info on the setup and operation of the L2switch, take a look at this link:
https://docs.opendaylight.org/en/stable-fluorine/user-guide/l2switch-user-guide.html

Some alternatives to ODL include Ryu which is Python-based, which is good to learn anyway. You can find out more info about it here:
https://osrg.github.io/ryu/
And you can find a complete example for STP here:

https://osrg.github.io/ryu-book/en/html/spanning_tree.html

Take a look at these and let us know how you get along!

I hope this has been helpful!

Laz