Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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