Introduction

Welcome to Software Defined Networking Fundamentals (SDN50)! This course provides the basic explanation and exercises for understanding SDN concepts at a high-level.

This lab starts with an already deployed SDN Controller, Mininet, and Wireshark. Students will have hands-on experience with the SDN controller guided by lab workbook to help understand the fundamentals of Software Defined Networking.

Course Objectives

Upon completing this course, students will be able to gain:

  • An understanding of traditional vs software defined networks
  • An understanding of SDN and OpenFlow concepts
  • Experience with Open vSwitch, Mininet, and ONOS

Guide Structure

This guide is designed to complement instructor-led presentations by providing step-by-step instructions for hands-on exercises. It describes the difference between traditional and software defined network and teaches you how to operate a network controller to manage a network.

Every chapter of this guide starts with Chapter Details and finishes with Checkpoint.

Chapter Details

Each chapter opens with a short description of the chapter’s goals and objectives, and an outline of included sections.

Step indicates a hands-on activity that should be completed before proceeding

Checkpoint

Each chapter ends with a summary of what has been done in the section.

You can use Checkpoints to pace the exercise and verify the topic understanding.

There are a number of notations used through out the guide. They are here to provide extra information on the task at hand. Do not execute the steps from the notations.

Notes

Notes are tips, shortcuts or alternative approaches for the task at hand.

Reference

Links to external documentation relevant to a subject.

Important

Important boxes indicate a warning or caution. They detail things that are easily missed and should not be ignored. Information that you must be aware of before proceeding.

Code blocks:

Commands to be executed in Terminal window (typically over SSH)
         and an example of the output.

Commands need to be executed exactly as they are written with the exception of the command prompt and the parts enclosed in “< >” needs to be substituted with your data, which is typically either the lab environment IP address or ID of a previously created entity.

Code blocks can also contain additional comments and/or instructions. The “#” sign marks the beginning of such comments and/or instructions.

Example of the code block:

stack@sdn:~$ sudo mn
# This opens the mininet command prompt
mininet> help
# This command lists the help options in mininet
...

Here you are expected to execute the command sudo mn. Two lines prefixed with “#” provide additional instructions. For long outputs, the non-important part is excluded and is typically substituted with “...”. Note that some outputs may be specific to the environment.

Contents