Openflow Configuration Lab: Apnic SDN Workshop Lab

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

APNIC SDN Workshop Lab

OpenFlow Configuration Lab


Objective: As part of this hands-on module, you will configure a standalone OpenFlow network
using Mininet and analyse the flow entries created by the inbuilt controller.
Next, you will configure the Mininet network to use an external OpenDayLight (ODL)
controller - observe the exchange of OF messages between the contoller and the virtual switches,
along with new flows being added into the flow table.

The following base topology will be used for Part-1. Note that the IP addresses are examples only.
When working on your lab, use the actual IP addresses of your VMs (or as indicated by your
instructors). For the purpose of this guide, we use the IP address of 192.168.1.X to refer to the
Mininet VM.

1 ©APNIC
Created: 4 Sept 2017
Updated: 13 July 2018
Thursday, September 06, 2018

For Part-2, the following topology will be used. For the purpose of this guide, we use the IP address
of `192.168.1.X` to refer to the Mininet VM and the IP address of `192.168.1.Y` to refer to the
OpenDayLight VM.

Lab Notes
As a minimum, we recommend the following hardware specifications:
• Intel i5 or i7 processor
• 6GB of RAM
• 25GB of free hard disk space

Basic steps:
1. Install VirtualBox
2. Install Wireshark
3. Import and configure Mininet VM to VirtualBox
4. Build and test a simple standalone Mininet network
5. Import ODL VM to VirtualBox
6. Build and test a simple Mininet network using an external ODL controller.

2
APNIC SDN Workshop Lab
Lab Exercise
1. Install VirtualBox

Installation steps:

• Either, download the appropriate install package for your operating system from:
https://www.virtualbox.org/wiki/Downloads, OR

• Use the supplied installer to install using default parameters.

2. Install Wireshark

Installation steps:

• Either, download the appropriate install package for your operating system from:
https://www.wireshark.org/download.html
OR
• Use the supplied installer to install using default parameters.

3. Import (and configure) Mininet VM on VirtualBox

• Download Mininet VM

In order to save time, your instructor will provide you a mininet OVA virtual appliance locally
to create an Ubuntu virtual machine on VirtualBox.

Simply double-click the file mininet.ova to import it into VirtualBox. Ensure that you select
the option to re-initialise all MAC addresses.

• Network settings of the Mininet VM

Within VirtualBox, go into the Settings for the VM and ensure that the first network adapter is
attached to ‘Bridged Adapter’ as shown below (the interface name depends on your host OS;
the following is an example on OS X):

3 ©APNIC
Created: 4 Sept 2017
Updated: 13 July 2018
Thursday, September 06, 2018

• Start the Mininet VM from VirtualBox

Log in using the following credentials:

Username: mininet
Password: mininet

• Check the IP address configuration of the Mininet VM:


mininet@mininet-vm:~$ ip addr show

Verify that the interface eth0 has been assigned an address from the same range as your host
machine (LAN) interface.

• SSH to the Mininet virtual machine:

ssh mininet@192.168.1.X

4
APNIC SDN Workshop Lab

4. Build a standalone Mininet network

• Create a simple network on the Mininet VM:

mininet@mininet-vm:~$ sudo mn --mac --controller="none"

The above command creates a network with:


  1 switch, s1
  2 hosts, h1 and h2
  h1 eth0 connected to s1 eth0
  h2 eth0 connected to s1 eth1
  no OpenFlow controller

eth0 eth1

eth0
s1 eth0

h1 h2

The above command will put you into the Mininet shell:

mininet>

• Try the following commands in the Mininet CLI to get an understanding of the network:

mininet> nodes

mininet> net

mininet> dump

• Attempt pings between the hosts

mininet> h1 ping h2

mininet> h2 ping h1

Do the pings succeed? Why?

• Check the flow table of the switch:

mininet> dpctl dump-flows

Can you explain what you see?

5 ©APNIC
Created: 4 Sept 2017
Updated: 13 July 2018
Thursday, September 06, 2018

• Exit the Mininet CLI:

mininet> exit

• Create another simple network on the Mininet VM but this time use the default controller.

mininet@mininet-vm:~$ sudo mn --mac

The above command creates a network with:


  1 switch, s1
  2 hosts, h1 and h2
  h1 eth0 connected to s1 eth0
  h2 eth0 connected to s1 eth1
  the default OpenFlow controller for Mininet

Controller, c0

eth0 eth1

eth0
s1 eth0

h1 h2

The above command will put you back into the Mininet shell:

mininet>

• Try the following commands in the Mininet CLI to get an understanding of the network:

mininet> nodes

mininet> net

mininet> dump

• Check the flow table of the switch:

mininet> dpctl dump-flows

Can you explain what you see?

6
APNIC SDN Workshop Lab
• Attempt pings between the hosts

mininet> h1 ping h2

mininet> h2 ping h1

Do the pings succeed? Why?

• Check the flow table of the switch again:

mininet> dpctl dump-flows

What do you see now? Analyse the entries in the table.

• Wait for the flows to timeout (until the output of the following command is again empty)

mininet> dpctl dump-flows

• Enable snooping to see the OF message flow between the switch and controller.

mininet> dpctl snoop &

• Wait for the flows to timeout (until the output of the following command is again empty)

mininet> dpctl dump-flows

• Check the flow table again.

mininet> dpctl dump-flows

What do you see now?

• Ping between the hosts again

mininet> h1 ping h2

mininet> h2 ping h1

• Check the flow table now.

mininet> dpctl dump-flows

What do you see now?

• Exit from the Mininet CLI:

mininet> exit

7 ©APNIC
Created: 4 Sept 2017
Updated: 13 July 2018
Thursday, September 06, 2018

5. Install and configure OpenDayLight on Ubuntu VM

In order to save time, your instructor will provide you a ubuntu-odl.ova (precompiled ODL)
virtual appliance.

Simply double-click the file ubuntu-odl.ova and import it into VirtualBox. Ensure that you select
the option to re-initialise all MAC addresses.

• Verify the network settings of the ubuntu-odl VM

Within VirtualBox, go into the Settings for the VM and ensure that the first network adapter is
attached to ‘Bridged Adapter’ as shown below (the interface name depends on your host OS;
the following is an example on OS X):

Adapter 1:

• Start the Ubuntu-ODL VM and login with the following credentials:

Username: apnic
Password: apnic

• Check the IP address of the server:


apnic@ubuntu:~$ ip addr show

Verify that the interface enp0s3 has been assigned an address from the same range as your host
machine (LAN) interface.

• SSH into the Ubuntu-ODL VM:

ssh apnic@192.168.1.Y

8
APNIC SDN Workshop Lab

** Note that OpenDayLight uses Apache Karaf technology


(http://karaf.apache.org/) which allows the entire distribution to
be contained in a single folder.

• Run OpenDaylight:
apnic@ubuntu:~$ cd distribution-karaf-0.5.4-Boron-SR4

apnic@ubuntu:~$ ./bin/karaf

The above command will take you to the OpenDayLight shell as shown below:

• Open the OpenDayLight GUI.

Browse to the following URL on any browser (use your IP address in place of Y):
http://192.168.1.y:8181/index.html

9 ©APNIC
Created: 4 Sept 2017
Updated: 13 July 2018
Thursday, September 06, 2018

Login using the following credentials:

Username: admin
Password: admin

• To log out of OpenDaylight (for your information only):


opendaylight-user@root> system:shutdown

6. Build a Mininet network using the OpenDaylight OpenFlow controller

For this part of the lab, you will need to work with a partner to capture packets/messages
exchanged between the ODL controller and the mininet switch.

One of you will use your Mininet setup while the other will use their ODL setup - connect a
Mininet network running on one machine to an ODL controller running on another physical
machine.

Installation and configuration steps:

• Start Wireshark and select interface corresponding to your LAN or WiFi interface to capture
• Create a display filter within Wireshark for openflow_v4

• Create a simple network on the Mininet VM that connects to the ODL controller (replace Y
with the controller VM address):

mininet@mininet-vm:~$ sudo mn --mac


--controller=remote,ip=192.168.1.y,port=6633
--switch ovs,protocols=OpenFlow13

10
APNIC SDN Workshop Lab
The above command creates a network with:
o 1 switch, s1
o 2 hosts, h1 and h2
o h1 eth0 connected to s1 eth0
o h2 eth0 connected to s1 eth1
o Remote OpenFlow controller @192.168.1.y

OpenDaylight
controller, c0

Attendee 1

eth0 eth1

eth0
s1 eth0

h1 h2

Attendee 2

The above command will put you into the mininet CLI:

mininet>

• Check the flow table of the switch:

mininet> dpctl dump-flows --protocols=OpenFlow13

Can you explain what you see?

• Open the OpenDayLight GUI to view the topology

http://192.168.1.y:8181/index.html (use your IP address in place of Y)

• At this point, stop the Wireshark capture and analyse the OpenFlow messages that have
been sniffed. In particular, attempt to relate the FLOW_MOD messages with the contents
of the flow table that you displayed earlier (refer the slides where necessary).

• Re-start the Wireshark capture.

• Attempt pinging between h1 and h2

mininet> h1 ping h2

Do the pings succeed? Why?

11 ©APNIC
Created: 4 Sept 2017
Updated: 13 July 2018
Thursday, September 06, 2018

• Check the flow table of the switch again:

mininet> dpctl dump-flows

What do you see now? Analyse the entries in the table.

• Open up OpenDayLight GUI again:


http://192.168.1.y:8181/index.html

Reload the topology. Has anything changed?

• At this point, stop the Wireshark capture and analyse the OpenFlow messages that have
been sniffed. In particular, pay attention to the Packet-In and Flow_Mod messages.

• Exit from the Mininet CLI:

mininet> exit

• If time permits, repeat the above steps for the following topologies:

sudo mn --mac --topo=tree,3 --


controller=remote,ip=192.168.1.y,port=6633 --switch
ovs,protocols=OpenFlow13

sudo mn --mac --topo=linear,4 --


controller=remote,ip=192.168.1.y,port=6633 --switch
ovs,protocols=OpenFlow13

12

You might also like