Download OpenFlow1.3 GUI Manual

Document related concepts

Packet switching wikipedia , lookup

5G wikipedia , lookup

Dell PowerConnect wikipedia , lookup

Telephone exchange wikipedia , lookup

Dell M1000e wikipedia , lookup

Airborne Networking wikipedia , lookup

CAN bus wikipedia , lookup

PSTN network topology wikipedia , lookup

Number One Electronic Switching System wikipedia , lookup

Transcript
ESTINET OPENFLOW NETWORK SIMULATOR AND
EMULATOR9.0 USER MANUAL
V1.0
EstiNet
A professional company in
Software-Defined Networks (SDN)
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved
www.EstiNet.com
Revision History
Rev.
Date
1.0
March.1, 2015
Revision Description
Initial version
Copyright © 2015 by EstiNet Technologies Inc. All rights reservedi
www.EstiNet.com
Copyright © 2015 by EstiNet. All rights reserved.
The drawings, specifications, and data contained herein are the exclusive property of EstiNet. This
document is issued in strict confidentiality and shall not, without the prior written permission of
EstiNet, be reproduced, copied, or used, in parts or as a whole, for any purpose whatsoever.
EstiNet reserves the right to make revisions to this document and the product described herein
without obligation to notify any person or entity of any such changes.
EstiNet is the registered trademarks of EstiNet Inc.
Copyright © 2015 by EstiNet Technologies Inc. All rights reservedii
www.EstiNet.com
CONTENTS
ABSTRACT
1
1. INTRODUCTION TO NODES
2
2. CONSTRUCTING OPENFLOW NETWORK TOPOLOGIES
3
2-1. Deploying Nodes
4
2-1-1. Deploying OpenFlow Controllers
4
2-1-2. Deploying OpenFlow Controller Switches
6
2-1-3. Deploying OpenFlow Switches
8
2-1-4. Deploying Other Devices
10
2-2. Connecting Nodes
12
17
3. CONFIGURING OPENFLOW NETWORK NODES
3-1. Configuring OpenFlow Controllers
17
3-1-1. Using NOX Controller
20
3-1-2. Using Ryu Controller
20
3-2. Configuring OpenFlow Switches
20
4. CONFIGURING TRAFFIC GENERATORS
31
5. EXECUTING SIMULATION
37
6. BATCH DEPLOYMENT OF OPENFLOW SWITCHES AND AUTOMATIC CONNECTIONS TO THE
OPENFLOW CONTROLLER SWITCH
38
6-1. Deploying Grid OpenFlow Switch Topologies
39
6-2. Batch Processing of Connecting OpenFlow Switches Automatically to the OpenFlow Controller Switch
40
7. USING ROUTERS IN THE CONTROL PLANE NETWORK
44
8. OPENFLOW EMULATION NETWORKS IN THE EMULATION MODE
48
Copyright © 2015 by EstiNet Technologies Inc. All rights reservediii
www.EstiNet.com
8-1. OpenFlow Emulation Network Architecture
48
8-1-1. Setting up the Devices
49
8-2. Configuring Network Adapters
49
8-2-1. Configuring Network Adapters in the External Controller Host
49
8-2-2. Configuring Network Adapters in the EstiNet Server
51
8-2-3. Testing for Network Connection Status
52
8-2-4. Configuring Firewalls
52
8-3. Constructing OpenFlow Emulation Network Topologies
53
8-3-1. Deploying Nodes and Connecting Nodes
54
8-4. Configuring the OpenFlow Emulation Network Nodes
55
8-4-1. Configuring External OpenFlow Controllers
56
8-4-2. Activating External Controller
65
8-4-3. Configuring OpenFlow Controller Switch
65
8-4-4. Configuring OpenFlow Switches
67
8-5-5. Configuring Traffic Generators
70
8-5. Executing Emulation
74
77
9. EXAMINING THE FLOW TABLES OF OPENFLOW SWITCHES
9-1. Examining Flow Tables
78
9-2. Examine the Flow Table contents
82
Copyright © 2015 by EstiNet Technologies Inc. All rights reservediv
www.EstiNet.com
Abstract
This manual provides detailed instructions and examples for setting up an OpenFlow
simulation/emulation network using the EstiNet OpenFlow network simulator and emulator.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved1
www.EstiNet.com
1. Introduction to Nodes
An OpenFlow network is constructed on a network comprising OpenFlow controllers:
OpenFlow switches ver1.3:
and
. An OpenFlow controller is connected to an OpenFlow switch to
form a control plane, and their connections are represented in the graphical user interface (GUI) as
grey lines, as shown in the diagram below. In addition, the data plane can be formed by connecting
OpenFlow switches to other network devices, such as other OpenFlow switches or hosts. Data
plane connections are represented in the GUI as black lines (see below diagram). We call this
structure OUTBAND which separate the linkage of control plane and data plane.
The control plane that is formed by the connections of the controller and OpenFlow switches
enable these two types of devices to communicate using the OpenFlow protocol. However, an
OpenFlow switch does not own an IP address because it is a layer-2 device. To enable the switch to
communicate with a controller, EstiNet added an OpenFlow controller switch
in the GUI. The
OpenFlow switch acquires an IP address after connecting to the OpenFlow controller switch.
Acquired IP addresses enable the controller to accurately control any designated OpenFlow switch
for OpenFlow message transmission.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved2
www.EstiNet.com
2. Constructing OpenFlow Network
Topologies
In this manual, a topology is provided as an example to illustrate the installation procedures for
topologies and communications. In this topology, Node 1 is a controller, Node 2 is an OpenFlow
controller switch, and Node 3 is an OpenFlow switch. Host Node 4 sends TCP packets to Host Node 5.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved3
www.EstiNet.com
During the communication process, if Node 3 is required to assist Node 4 in sending TCP packets to
Node 5, Node 3 must query the controller to obtain the intelligence for packet transmissions.
Because Node 1 is the controller, this node must execute an OpenFlow controller application.
Common OpenFlow controller version1.3 applications include NOX, Ryu, and OpenDaylight. This
manual adopts NOX/Ryu for illustration purposes.
This example provides instructions for constructing a simple OpenFlow network topology in EstiNet.
In addition, key information is provided.
2-1. Deploying Nodes
Deploy at least three devices when constructing an OpenFlow network topology: 1) an OpenFlow
switch, 2) an OpenFlow controller, and 3) an OpenFlow controller switch (the controller switch is
used to connect the first two devices).
No specific deployment sequence is required. For the convenience of illustration, this manual
begins by deploying OpenFlow controllers.
2-1-1. Deploying OpenFlow Controllers
After clicking on the OpenFlow controller icon:
in the tab of add nodes, deploy the
OpenFlow controller by clicking the left mouse button at the desired location in the white area.
The screenshots below demonstrate the actual process.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved4
www.EstiNet.com
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved5
www.EstiNet.com
2-1-2. Deploying OpenFlow Controller Switches
To deploy OpenFlow controller switches, first click on the OpenFlow controllerswitch icon
in the toolbar, and then left click at the desired location. This device enables accurate
communication between OpenFlow switches and controller that are subsequently deployed.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved6
www.EstiNet.com
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved7
www.EstiNet.com
2-1-3. Deploying OpenFlow Switches
To deploy OpenFlow switches, first click on the OpenFlow controller icon
in the toolbar,
and then left click at the desired location. In this example, only one OpenFlow switch is deployed.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved8
www.EstiNet.com
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved9
www.EstiNet.com
2-1-4. Deploying Other Devices
Although routers and switches may be added, only two hosts are deployed in this example. To
simplify this example, please refer to Chapter 7 for router deployment instructions.
To deploy hosts, first click on the host icon
in the toolbar, and then left click at the desired
location.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved10
www.EstiNet.com
To deploy more than one node of the same type, additional nodes may be deployed by clicking the
left mouse button at the next desired location without re-selecting the node type. In this example,
two hosts (Nodes 4 and 5) are deployed.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved11
www.EstiNet.com
2-2. Connecting Nodes
Similar to deploying nodes, no specific sequence must be followed to connect the nodes. The
nodes may be connected in any order. In the following example, connections begin on the left side
of the topology.
To connect an OpenFlow controller and an OpenFlow controller switch, first click on the Create a
Point-to-Point Link icon
, then click and hold the left mouse button on the OpenFlow
controller icon. Drag the cursor to the OpenFlow controller switch and release the button to
complete the connection.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved12
www.EstiNet.com
As shown below, follow the same procedure to connect the OpenFlow controller switch, OpenFlow
switches, and other devices to create the topology.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved13
www.EstiNet.com
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved14
www.EstiNet.com
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved15
www.EstiNet.com
In this topology, the grey lines represent the control plane, and the black lines represent the data
plane.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved16
www.EstiNet.com
3. Configuring OpenFlow Network Nodes
In this chapter, it
introduceshow to configure OpenFlow Controllers and OpenFlow Switches.
3-1. Configuring OpenFlow Controllers
After creating a network topology, click on the Edit Property icon:
Edit Mode
to enter
and set the parameters and traffic flows for the network nodes.
In Edit Mode, double click on the OpenFlow controller icon and the following window will pop up
for editing the properties of OpenFlow controller.
Click on the Application tab near the top of the menu. Click on the Add buttonon the right to add
applications; this button is for specifying desired applications to be executed in the OpenFlow
version1.3 controller, such as NOX andRyu. The NOX and Ryu toolsare demonstrated in subsequent
instructions.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved17
www.EstiNet.com
In the first example, one enters "nox_core -i ptcp: switch" in the Command field to activate the
switch modules of the NOX controller. The start time is set to 1 seconds, and the stop time is set to
30 seconds.
In the second example, one enters"ryu-manager
/usr/lib/python2.7/site-packages/ryu/app/simple_switch_13.py" in the Command field to
activate the switch modules of the Ryu controller. The simple_switch_13.py is a Ryu component
which support OpenFlow version 1.3. The start timeand stop time are set the same as Nox
controller.
Note: [1]To set command ryu-manager directly in EstiNet Simulation command field, please install
Ryu controller in advance and add ryu-manager linkage as below:
# cd /usr/local/estinet/tools
# ln -s /usr/bin/ryu-manager ryu-manager
[2]The Ryucomponent file simple_switch_13.py can be viewed in the app folders
under/usr/lib/python2.7/site-packages/ryu/app/ which depend on user's Ryu installation path.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved18
www.EstiNet.com
User could use "#" to close the Commands when settingswitch controllers as below.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved19
www.EstiNet.com
3-1-1. Using NOX Controller
./nox_core -i ptcp:<port> [applications]
<port> assigns the TCP port used for OpenFlow switch connections. The default port is 6633.
[application] determines the NOX application functions to be executed. All available NOX
applications can be viewed in the coreappsand netapps folders at/usr/local/estinet/tools/nox/.
For additional settings, execute ./nox_core –helpin /usr/local/estinet/tools/. The default NOX
version in EstiNet Elite1.0 is 0.9.0 which supports OpenFlow version1.3(0x04).
You may visit the NOX official website (http://www.noxrepo.org/) for further information on NOX.
3-1-2. Using Ryu Controller
./ryu-manager [components]
[components] determines the Ryuprotocol functions to be executed. All available Ryucomponents
can be viewed in the app folders under/usr/lib/python2.7/site-packages/ryu/app/ which depend
on user's Ryu installation path.
One may visit the Ryu official website (http://osrg.github.io/ryu/) for further information on Ryu.
3-2. Configuring OpenFlow Switches
Double click on the OpenFlow switch icon.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved20
www.EstiNet.com
z
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved21
www.EstiNet.com
In this dialogue box, the down time of OpenFlow switches can be specified. If left unspecified, the
OpenFlow switches continue operating during the simulation.
Click on the Node editor button and the protocol stack for the OpenFlow switches appears.
Double click the OFSwitch_V13moduleto set the parameters for this OpenFlow switch.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved22
www.EstiNet.com
The parameters for this OpenFlow switch are set in this tab-formatted dialogue box. Parameters
are defined as follows.
ModeOUTBAND(default): the structure of OpenFlow switch separates the linkage as control plane
and data plane.
Parameters under the Controller label:
Controller IP Addressspecifies the IP address of the OpenFlow controller designated for
connection when the OpenFlow switch is activated.
Controller TCP Listen Portthe TCP port used for OpenFlow switch connections. The default port is
6633.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved23
www.EstiNet.com
Switch Port to Controller(default disabled)specifies the port number which connects tothe
OpenFlow controller. The GUI will set this value automatically from topology.
Controller IDspecifies the controllers when the switch connects to multiple controllers.
Note: The default controller IP address (0.0.0.0) in the OpenFlow switch is not the correct
controller IP address. Before specifying the controller IP address, one should switch the operation
mode of the EstiNet simulator to Edit Mode. Next, move the cursor over the blue box that
connects the OpenFlow controller (Node 1) to the OpenFlow controller switch (Node 2). The IP
address currently used by the OpenFlow controller will appear after several seconds. By the way,
the same procedure is used to detect the correct Switch Port to Controller. For this topology, the
correct Switch Port to Controller is 1.
The procedure is illustrated in the diagram below.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved24
www.EstiNet.com
The correct controller IP address is 1.0.1.1 and Switch Port to Controller1 can now be entered in
the field.The setting should be as below screenshot.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved25
www.EstiNet.com
The same controller settings may be assigned to all OpenFlow switches in the network with only
one mouse click. To do so, one enters the Node editor of any OpenFlow switch whose controller
settings has been correctly assigned and then clicks on the C.T.A.N (copy to all modules on all
nodes with the same type) button.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved26
www.EstiNet.com
Parameters under the Flow Table label:
Number of Table specifies the number of flow tables for an OpenFlow switch. The default value is
10.
Number of Entry Per Table specifies the number of flow entries for a flow table.The default value
is 256.
Table miss action specifies the action when table miss. There are three actions could be selected:
"Drop"(default), "Send to controller" and "Go to next table". If one is using controller OpenDaylight,
please set table miss action as "Send to controller".
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved27
www.EstiNet.com
Parameters under the Group Table label:
Number of Entryspecifies the number of entries for a group table. The default value is 64.
Parameters under the Meter Table label:
Number of Entryspecifies the number of entries for a group table. The default value is 64.
Parameters under the Buffer label:
Table-Miss Buffer Length(pkts) specifies the buffer size (in units of packet numbers) for temporary
packet storage when queries are sent to the OpenFlow controller because of table-misses. The
default value is 1000.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved28
www.EstiNet.com
Parameters under the Physical Port label:
Output Queue Length(pkts) specifies the maximum buffer size of each output queue in this switch
(in units of packet numbers) for packet transmission. The default value is 100.
Queue Output Mode There are two kinds of Queue Output Mode. One is Round Robin and the
other is Rate Limit. The default setting is Round Robin. To set the Rate Limit mode, user need to
coordinate with the setting of flow entry from controller. The rate result is depend on the
bandwidth(default is 10Mbps).
For the usage of Queue Maximum, an example setting is as below table:
Queue No.
min rate(%)
Max rate(%)
Queue1
0
50
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved29
www.EstiNet.com
Queue2
0
30
Queue3
0
100
Queue4
0
100
Queue5
0
100
Queue6
0
100
Queue7
0
100
Queue8
0
100
The throughput of portxqueue1 would be under 5Mbps and the throughput of protx queue2
would be under 3Mbps. For the usage of Queue Minimum, an example setting is as below table:
Queue No.
min rate(%)
Max rate(%)
Queue1
50
100
Queue2
30
100
Queue3
0
100
Queue4
0
100
Queue5
0
100
Queue6
0
100
Queue7
0
100
Queue8
0
100
The throughput of portxqueue1 would be at least 5Mbps and the throughput of protx queue2
would be at least 3Mbps.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved30
www.EstiNet.com
4. Configuring Traffic Generators
Desired traffic flows, such as TCP and UDP, for all hosts may be specified.
Example:
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved31
www.EstiNet.com
In this diagram, Node 4 is configured to send TCP packets to Node 5. The TCP sender program is
configured by double clicking on the Node 4 host icon.
Click Add to create a traffic flow.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved32
www.EstiNet.com
As demonstrated in this screenshot, TCP packets are sent to Node 5 (IP address: 1.0.2.2) from the
1stsecondto the 30thsecond of the simulation.
Start time specifies the time when the traffic flow (the ttcp program) starts.
Stop time specifies the time when the traffic flow (the ttcp program) stops.
Command specifies traffic flow (ttcp program) types and related settings. Please refer to App.
Usage.
Input file namespecifies the path of the configuration file that needs to be read by the traffic flow
program. As indicated in the following screenshot, one can click on App. Usage to know detailed
descriptions for running up several pre-installed traffic flow programs.
App. Usage for ttcp.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved33
www.EstiNet.com
The screenshot below shows that the ttcp program will be launched starting at 1stsecond until
30thsecond to send packets to a node configured with 1.0.2.2 IP address and tcp port 8000.
After Node 4 (i.e., the TCP sender) is configured, configure Node 5 (i.e., the TCP receiver). Double
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved34
www.EstiNet.com
click on the Node 5 host icon.
Node 5 may also be configured from the Application tab. Click Add to enter the traffic flow
command.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved35
www.EstiNet.com
The screenshot above shows that the ttcp program will receive TCP packets from the 1stsecond to
30th second of the simulation.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved36
www.EstiNet.com
5. Executing Simulation
Enter Run Mode by clicking on the Run Simulation icon:
after configuring the traffic
generators. In Run Mode, click Simulation→ Run in the menu bar at the top of the screen.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved37
www.EstiNet.com
After simulator complete execution, it changes toPlay back mode
. In this example, the
simulation results show that the content of the flow table of the OpenFlow switch (Node 3) has
been established by the aid of the OpenFlow controller (Node 1). Consequently, Node 4 can
successfully send TCP packets to Node 5 through the OpenFlow switch.
6. Batch Deployment of OpenFlow Switches
and Automatic Connections to the
OpenFlow Controller Switch
For a large-scale topology, manual deployment of a substantial amount of OpenFlow switches may
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved38
www.EstiNet.com
be required and these switches might require individual connections to the control planes. The
manual deployment described in Chapter 5 is applicable to smaller topologies; however, for
large-scale OpenFlow networks, deploying and connecting nodes manually is time-consuming,
inconvenient, and frustrating. To address this problem, the EstiNet GUI provides an automatic grid
deployment method for OpenFlow switches and a tool that automatically connects the switches to
the control plane.
6-1. Deploying Grid OpenFlow Switch Topologies
First, click N_Tools → OpenFlow Network → Insert OpenFlow Switch 1.3 Nodes in the GUI toolbar.
Click Insert OpenFlow Switch 1.3 Nodes, and a dialogue box appears. Specify the size of the grid
network in this window. In the screenshot below, 5 × 5 OpenFlow switches are deployed at the
starting point with coordinates (80, 80). Between any two switches is a distance of 100 m (1m = 1
pixel).
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved39
www.EstiNet.com
Click OK to configure the OpenFlow switches in a neat grid. As shown in the screenshot below, the
switches connect to each another and form the data plane. Unnecessary data plane connection
links may be deleted depending on specific user requirements.
6-2. Batch Processing of Connecting OpenFlow
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved40
www.EstiNet.com
Switches Automatically to the OpenFlow
Controller Switch
After numerous OpenFlow switches have been deployed, each OpenFlow switch must be
connected to the control plane to accurately communicate with the controller.
To connect numerous OpenFlow switches to the OpenFlow controller switch, use the function
subsequently described for batch processing of automatic connections. This will help reduce
manual deployment and connection time. You may use this method on manually deployed
OpenFlow 1.3 switch networks.
The screenshot below depicts the manual deployment procedure for an OpenFlow controller
switch (Node 26) based on Chapter 2-1-2.
Subsequently, click N_Tools → OpenFlow Network → Connect all OpenFlow Switches to an
OpenFlow Controller Switch in the menu bar at the top of the screen as shown below.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved41
www.EstiNet.com
The above selection connects all OpenFlow switches automatically to the OpenFlow controller
switch.
However, this function supports connecting to only the OpenFlow controller switch with the
minimum node IDs for automatic connections. Therefore, any existing connections between
OpenFlow switches and the OpenFlow controller switch are deleted first, and the OpenFlow
controller switch with the minimum node IDs is selected automatically to reestablish the
connections.
Usethe above two tools to deploy a large number of OpenFlow switches and also to connect to the
OpenFlow controller switch automatically. This will significantly reduce operation time and manual
effort.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved42
www.EstiNet.com
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved43
www.EstiNet.com
7. Using Routers in the Control Plane
Network
Typically the maximum number of OpenFlow switches in the control plane cannot exceed the
upper limit of 253. In the following example, routers are employed in the control plane network to
overcome this limitation. As shown in the diagram below, a router (Node 2) is used to divide two
OpenFlow switches into two differing subnets (the IP addresses for Nodes 5 and 6 are 1.0.2.2 and
1.0.3.2, respectively).
The diagram below shows two OpenFlow switches located within differing control plane subnets.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved44
www.EstiNet.com
However, the two hosts belong in the same data plane subnet.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved45
www.EstiNet.com
The internal settings for the two hosts are adjusted as follows: Node 7 is configured to send TCP
packets to Node 8 (IP address: 1.0.4.2), and Node 8 is configured to receive the TCP packets from
Node 7.
As shown in the screenshot below, NOX commands (or Ryu commands) can beentered in the
OpenFlow controller settings.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved46
www.EstiNet.com
When control messages are sent by the controller, the router correctly transmits the messages to
the designated OpenFlow switches, enabling communication. Thus, the two OpenFlow switches
acquire the controller’s intelligence and learn the correct path for transmitting the data packets
from Node 7 in the data plane to Node 8. The diagram below shows the simulation results.
The use of a single router overcomes the upper limit of 253 OpenFlow switches in the control
plane because every router interface belongs to a different subnet, and each subnet can connect a
maximum of 253 OpenFlow switches. For example, if this router has 10 interfaces, a maximum of
10 × 253 = 2530 OpenFlow switches canbe connected in the OpenFlow control plane.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved47
www.EstiNet.com
8. OpenFlow Emulation Networks in the
Emulation Mode
In emulation mode, emulation is performed by connecting an external physical controller with the
simulated OpenFlow network topology. In this chapter, the OpenFlow emulation network
architecture is described by using basic network diagrams; subsequently, a description of device
installation and communications protocol configuration based on the OpenFlow emulation
network architecture are provided.
For more detail such as external hosts, external switch etc., please reference another document
"EstiNet Simulation Extension".
8-1. OpenFlow Emulation Network Architecture
License Server
EstiNet Simulation
eth1 or wifi
External Controller
eth0
IP: 192.168.1.1
Mask:255.255.255.0
EstiNet Server
eth0
IP:192.168.1.2
Mask:255.255.255.0
As shown in the above basic network diagram, physical controllers (external controller hosts) are
used to execute OpenFlow controller applications. These applications are executed to control
emulatedOpenFlow network topology. Consequently, the EstiNet server requires a minimum of
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved48
www.EstiNet.com
two network adapters. The first network adapter establishes a connection with the license server
when the simulator is switched on, and the other network adapter establishes a connection with
the external controller host.
8-1-1.Setting up the Devices
Based on the structure in the basic network diagram, two host computers and one network cable
must be prepared. One of the host computers is the external controller host, and the other is the
EstiNet server. The external controller host must be capable of executing OpenFlow controller
applications and should provide at least one wired network adapter. The EstiNet server must run
an EstiNet simulator and should have at least one wired network adapter and one wired/wireless
network adapter. To connect the external controller host and EstiNet server, a crossover network
cable is required to connect the wired network adapters in the external controller host and the
EstiNet server.
8-2. Configuring Network Adapters
In addition to connecting the external controller host and EstiNet server using a network cable,
appropriate network adapter settings must be configured for the host computers. This chapter
presents instructions for configuring the network adapters in the external controller host and
EstiNet server.
8-2-1. Configuring Network Adapters in the External Controller
Host
On the desktop of the Fedora 20 operating system, from Applications>Settings->Network , double
click Network icon.Under the Wired, select a wired network adapter to connect to the EstiNet
server. After the selection is made, click the lower right button
to configure the network
adapter settings. A network adapter settings window appears.
Click on the IPV4and then selectManual in theAddresses drop-down menu to manually configure
IP addresses. In addition, in the Addresses fields, enter “192.168.1.1” under Address,
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved49
www.EstiNet.com
“255.255.255.0” under Netmask, and “0.0.0.0” under Gateway. When all values are entered, click
Apply.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved50
www.EstiNet.com
8-2-2. Configuring Network Adapters in the EstiNet Server
On the desktop of the Fedora 20 operating system, configuring Network Adapters as below.
In the EstiNet server, choose a network adapter to establish connections to the external controller
host. Click on the IPV4 and then select Manualin theAddresses drop-down menu to manually
configure IP addresses. In addition, in the Addresses fields, enter “192.168.1.2” under Address,
“255.255.255.0” under Netmask, and “0.0.0.0” under Gateway. When all values are entered, click
Apply to save all changes.
For the EstiNet server, another network adapter must be selected in advance to establish
connection with the license server. After the adapter is chosen, click Edit to configure the network
adapter settings. Click on the IPV4, and in the Addresses drop-down menu, select Automatic
(DHCP) to retrieve an IP address automatically. This network adapter establishes general
connections with the EstiNet license server. When all values are entered, click Apply to save all
changes.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved51
www.EstiNet.com
8-2-3. Testing for Network Connection Status
After the network adapters are configured, ping application may be used to monitor the
connection between the external controller host and EstiNet server. Because the wired network
adaptor of the external controller host (192.168.1.1) is connected to that of the EstiNet server
(192.168.1.2) through a crossover wire, the ping 192.168.1.2 command executed in the external
controller host starts the monitoring of connections from the external controller host to the
EstiNet server. In addition, ping 192.168.1.1 executed in the EstiNet Server starts monitoring of the
connections from the EstiNet server to the external controller host.
8-2-4. Configuring Firewalls
To establish successful communications between the external controller and the EstiNet server,
one should switch off all firewalls in the external controller host and EstiNet server. In Windows,
click Control Panel →System and Security →Windows Firewall → Customize Settings and turn off
the firewall. Click OK to apply changes, as shown in the screenshot below.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved52
www.EstiNet.com
For Linux operating systems, one should switch to the root user and execute "systemctl stop
firewalld.service" to turn off the Linux firewall. However, if both the external controller host and
EstiNet server are virtual machines in VMware, both the Linux firewall and the Windows firewall in
the virtual machines should be switched off.
8-3. Constructing OpenFlow Emulation Network
Topologies
After setting the network interface, the OpenFlow emulation network topology is ready to be
constructed in the simulator. A sample topology used in this section to explain topology and
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved53
www.EstiNet.com
communication configurations. In this topology, Node 1 is an external OpenFlow controller butonly
using OpenFlow controller icon
.Node 2 is an OpenFlow controller switch, and Node 3 is an
OpenFlow switch. Host Node 4 will send packets to Host Node 5.
During the communication process, OpenFlow switch Node 3 needs to assist Host Node 4 in
sending packets to Host Node 5.OpenFlow switch Node 3 needs to send a query to the external
OpenFlow controller to obtain intelligence for packet transmissions.
As an external OpenFlow controller, Node 1 represents a physical external controller host. Thus, an
OpenFlow controller application should be executed on the external controller host. NOX is
adopted as the external controller example in this chapter.
8-3-1. Deploying Nodes and Connecting Nodes
A minimum of three devices must be deployed when constructing an OpenFlow network topology:
1) an OpenFlow switch, 2) an OpenFlow controller, and 3) an OpenFlow controller switch (the
controller switch is used to connect the first two devices).
Similar to deploying a general OpenFlow network topology, no specific deployment sequence is
required for deploying an OpenFlow emulation network topology.
The following switches are connected to establish the desired OpenFlow emulation network
topology: 1) OpenFlow controller switch, 2) OpenFlow switches, and 3) additional devices. The
screenshot below illustrates the process.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved54
www.EstiNet.com
8-4. Configuring the OpenFlow Emulation
Network Nodes
When the network topology is created, click on the Edit Property icon:
to enter Edit Mode
and configure settings for the internal parameters of network nodes and traffic flows.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved55
www.EstiNet.com
8-4-1. Configuring External OpenFlow Controllers
In Edit Mode, double click on the OpenFlow Controller icon to edit the settings Emulation, as
displayed in the screenshot below.
An external OpenFlow controller represents a physical external controller host; therefore, the IP
address used by the external controller host (192.168.1.1) must be entered into the External
OpenFlow controller’s real IP address field in the settings window.
By the way, it needs to modify OpenFlow Controllermodules in version EstiNet Elite 1.0
withOpenFlow switch 1.3. Click on the Node editor button and the protocol stack for the
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved56
www.EstiNet.com
OpenFlow Controller appears.
It needs to add module MIFX and IPTRANSLATION between ARP and FIFO.
In step one, select Module MIFX in group MIFX.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved57
www.EstiNet.com
Click module MIFX once then click wallpaper of Node Editor. The screenshot as below.
In step two, select Module IPTRANSLATIONin group ADDRTRANS.
Click module MIFX once then click wallpaper of Node Editor.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved58
www.EstiNet.com
After selected module, the module editor window should be as below.
In step three, using Delete Module
to delete the connection between module ARP and
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved59
www.EstiNet.com
FIFO.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved60
www.EstiNet.com
In step four, using Select Module
to connect module from ARP→MIFX→IPTRANSLATION
→FIFO.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved61
www.EstiNet.com
In step five, click button Redraw.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved62
www.EstiNet.com
The modified modules should be as below.
In step six, double click module MIFX
and set the Name of Network Interfacewhich could
be get from Linux instruction ifconfig.This Network Interface is connectedto external controller.
(The network interface name would be renamed from ethx to ensx by Fedora20. In this example,
the Interface Name is ens37).
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved63
www.EstiNet.com
In step seven, double click module ARP
In step eight, double click module MAC8023
and select Run ARP Protocol thenclick OK.
and selectPromiscuous Mode then click OK.
The external controller modified modules should be done.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved64
www.EstiNet.com
8-4-2. Activating External Controller
In an emulation network topology, OpenFlow version 1.3 controllerapplication can be activated in
the external controller host such as NOX, Ryu or OpenDaylight.
Here we use controller NOX as an example.It canset command./nox_core -i ptcp: switch to
activate NOX controller.At the same time, users can only execute one kind of controller. The
execution message as below:
[root@(none) tools]# ./nox_core -i ptcp: switch
NOX 0.9.0(zaku)~full~beta (nox_core), compiled Sep 23 2013 17:31:45
Compiled with OpenFlow 0x04
00001|openflow|WARN:stream: extra-long hello (8 extra bytes)
8-4-3. Configuring OpenFlow Controller Switch
In Edit Mode, double click on the OpenFlow Controller switchicon to open below window.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved65
www.EstiNet.com
Click on the Node editor button and the protocol stack for the OpenFlow Controller
switchappears.
Double click Switch module
, select Switch Mode as Run Learning Bridge Protocolthen
click OK to complete the settings.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved66
www.EstiNet.com
8-4-4. Configuring OpenFlow Switches
Double click on the circled icon above to edit the OpenFlow switch. The configuration procedure is
the same as for configuring an OpenFlow switch in a general OpenFlow network topology. Enter
the IP address assigned to the OpenFlow controller into the Controller IP Address fieldfor the
OFSwitch module. The virtual IP address assigned to the OpenFlow controller in the simulator
(1.0.1.1)must be entered in the Controller IP Address field, rather than the physical IP address
192.168.1.1 used by the external controller host.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved67
www.EstiNet.com
Click on the Node editor button and the protocol stack for the OpenFlow switches appears.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved68
www.EstiNet.com
Double click the OFSwitch_V13module to set the parameters for this OpenFlow switch. In this
sample, set Controller IP Address as 1.0.1.1 and Controller TCP Listen Port as 6633.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved69
www.EstiNet.com
In an emulation network topology, click on the Emulation tab to edit OpenFlow switch settings, as
shown in the screenshot below.
Under this tab, enter an IP address that is currently unused on the physical subnet on which the
external controller host and the EstiNet server are connected(192.168.1.3 in this example) in the
Assigned unused real IP address in the same subnet as the emulation machine field. Notice that
each OpenFlow switch must choose a different unused real IP address on this physical subnet;
otherwise, the emulation results will be incorrect. This step enables an OpenFlow switch in the
simulator to be regarded as physical network equipment by the EstiNet server, which then
forwards the packets. This reason also serves as the basis for the execution of the route add
192.168.1.3 dev lo command.
8-5-5. Configuring Traffic Generators
This section describes the steps to configure traffic flows (e.g., TCP and UDP) in each host.
Example:
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved70
www.EstiNet.com
As shown in the diagram above, to configure Node 4 to send packets to Node 5, double click on the
host icon of Node 4 to configure the packet sender.
Click Add to create new a traffic flow.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved71
www.EstiNet.com
In this simulation screenshot, TCP packets are sent to Node 5 (IP address: 1.0.2.2) from 1stsecond
to the 300th second.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved72
www.EstiNet.com
After configuring Node4(i.e., the packetsender) , continue to configure Node 5 (i.e., the packet
receiver). Double click on the host icon of Node 5.
Similarly, click Add, which is on the right of the Application tab, and enter the traffic flow
commands.
In this example, the ttcp program for receiving TCP packets is executed during the simulation time
from 1stsecond to 300th second.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved73
www.EstiNet.com
8-5. Executing Emulation
In the emulation mode, the simulation speed must be set to the real time speed so that the
emulated network can interact with the external controller host correctly.
To adjust the simulation speed under
Edit Mode, click G_Setting→ Simulation in the menu bar,
and a settings window for adjusting related simulation parameters appears in the GUI.
Set Simulation time as 300 seconds in this example.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved74
www.EstiNet.com
Click Speedtab and check As fast as real-world clock.
After configuring the simulation speed, click on the Run Simulation icon:
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved75
to enter Run Mode.
www.EstiNet.com
In this mode, click Simulation → Run to begin. Before executing the emulation, one must run up a
controller program like NOX, Ryu or OpenDaylight which support OpenFlow ver.1.3 in advance on
the external controller host and let them stand by.
The following example shows that the flow table content of the OpenFlow switch (Node 3) is
configured correctly by the external OpenFlow controller (Node 1), thereby allowing Node 4 to
successfully send TCP packets to Node 5 through the OpenFlow switch.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved76
www.EstiNet.com
9. Examining the Flow Tables of OpenFlow
Switches
A flow table is a table that is maintained by an OpenFlow switch. Each item in the flow table is
known as a flow entry, and each flow entry comprises match fields, actions, and flow entry data.
When an OpenFlow switch receives a packet, by querying the flow table, the switch compares the
packet header and the match fields of the flow entry to determine whether the packet can be
processed by the flow entry. If the packet can be processed, actions in the matched flow entry are
performed. If all flow entries in the flow table do not match for processing this packet, the
OpenFlow switch abandons the packet or forwards it to the OpenFlow controller asking
forinstructions.
During emulation and simulation, two methods are supported for examining the content of the
flow tables of OpenFlow switches:During emulation/simulation, the Run Time Query function in
the GUI is used to examine the flow tables.
In the following topology example, assuming that Node 1
serves as an OpenFlow controller.
Execute the command./nox_core -i ptcp: switch, and set the start time to 1st second and end time
to 300th second.
Assume that Node 2
Assume that Node 3
serves as an OpenFlow controller switch.
serves as an OpenFlow v1.3 switch.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved77
www.EstiNet.com
Assume that Node 4
serves as a host. Execute the command ttcp -t -s -p 8000 1.0.2.2,and
set the start time to 1st second and end time to 300th second.
Assume that Node 5
serves as a host. Execute the command ttcp -r -s -p 8000, and set the
start time to 1st second and end time to 300th second.
9-1. Examining Flow Tables
To examine flow tables during simulation/emulation, enter Run Mode by clicking on the
icon.
Click Simulation → Run in the menu bar to begin the emulation/simulation, and then double click
on the OpenFlow switch icon (Node 3) in the topology.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved78
www.EstiNet.com
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved79
www.EstiNet.com
Click Node Editor in the OpenFlow Switch window.
When the protocol stack for the OpenFlow switch appears, double click on the
OFSwitch_V13module.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved80
www.EstiNet.com
Click Flow Table buttonin Run Time Queryto examine the flow table contents.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved81
www.EstiNet.com
9-2. Examine the Flow Table contents
In a flow table, each item (row) is a flow entry, and each flow entry contains 40 Match Fields
columns with its own Instructions. Refer to the document "OpenFlow Specification v1.3" for
specifications.
After clicking theFlow Table button, the table will be displayed as below. The Timer of the flow
table is showed at left-top.
Click the first flow entry, the contents of Instruction and Counter are showed in left-bottom block
and right-bottom block.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved82
www.EstiNet.com
To update flow table, click Refresh button
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved83
at top-right, the timer is changed to match
www.EstiNet.com
current simulation/emulation time.
Click the second or the third flow entry, the contents of Instruction and Counter are showed as
below.
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved84
www.EstiNet.com
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved85
www.EstiNet.com
Copyright © 2015 by EstiNet Technologies Inc. All rights reserved86
www.EstiNet.com