labs.beatcraft.com
OpenFlow

OpenFlow/OpenFlow Tutorial 2

To use Wireshark, compare the performance of types of the switches by contents of OpenFlow packets. This resembles a part of OpenFlow Tutorials. Its details are listed at the URL below

http://www.openflow.org/wk/index.php/OpenFlow_Tutorial

Displaying OpenFlow Pcket

To use Wireshark, which includes OpenFlow analytical plugins, observe the flow of packets on the virtual network that is created at OpenFlow/OpenFlow Tutorial 1.

Code and Commands> To boot Wireshark, capture the packets at loopback interface.
To imput “of” a string at Filter, it recognizes only OpenFlow related packets (Protocol OFP).

While Wireshark monitors the packets, boot the controller, which implements OpenFlow reference, as the learning switch.

Code and Commands> To look at the capture window of Wireshark, see how the controller and switch communicate each other.

#ref(): Usage:([pagename/]attached-file-name[,parameters, ... ][,title])


The messages and their details are shown below.

Helloswitch → controllerShow the version of OpenFlow
Hellocontroller → switchShow the version of OpenFlow
Feature Requestcontroller → switchRequest feature
Set Configcontroller → switchController shows how to handle IP fragments and the maximum bytes of a new flow
Features Replyswitch → controllerSwitch replies a list of features

In mininet environment, all packets are handled via localhost, so their original sender's IP address are not specified. The controller uses the OpenFlow standard port 6630, and the switch occupies any available port. (for this example, the port number is 54129.)

While learning switch is effective, send a ping, and check what will happen on OpenFlow. Then, to pture the interface of loopback by Wireshark again, echo Request/Reply, which maintains the connection between the controller and switch, is needed to work as a filter, input string at the entry field, and apply it. As this is completed, the capturing process will start.

Code and Commands> At this moment, the table flow is empty.
Try to check it by shell, instead of mininet termina.

Code and Command>
Send a ping by mininet prompt.

Code and Command> In the capture window of Wireshark show new messages. (See the image below.)
&ref(): File not found: "" at page "OpenFlow/OpenFlow Tutorial 2";
The contents of the messages are shown below.

Packet InSwitch → ControllerReceiving packets (Since there are no matches on the flow table at the switch, switch sends packets to the controller.)
Packet OutController → SwitchSending packets
Flow ModController → SwitchAdd a flow to the flow table


To check the flow table, the entries shown below are added by the controller.

Code and Commands> This is a case that OpenFlow is set and used in Passive mode.
In Passive modem, a flow interacts with each packet.

Deferences in the performance of types of switches

To boot the mininet environment with mn commands, the switch option is specified by --switch. This option make difference in throughputs.

The switch of the mininet environment, which has been used here, is Open vSwitch

Code and Commands> In average, it reaches 300 ~ 500 Mbps throughputs.

This time, the mininet boots with a switch, which works in the user-land applied by the reference implementation of OpenFlow.

Code and Commands> In this implementation, packets need to move from user-space to kernel space several times. This is the reason why its throughputs are lower than the previous setting. With this switch, it is not complicated to improve the throughputs.

Revision History


Front page   New List of pages Search Recent changes   RSS of recent changes