Configuration and Management of Networks 2014 / 2015
|
|
- Posy Haynes
- 5 years ago
- Views:
Transcription
1 ! Departamento de Engenharia Electrotécnica Configuration and Management of Networks 2014 / 2015 Mestrado Integrado em Engenharia Electrotécnica e de Computadores 4º ano 8º semestre Final Lab part II: Simple SDN app using OpenFlow and Mininet Pedro Amaral
2 1. PART II Configuring a network using OpenFlow. The goal is to make a first contact with the use of the OpenFlow protocol to control the switches of a hierarchical network. You will use the mininet simulator to simulate the OpenFlow controlled network. You will then connect an external controller to the topology. The controller uses OpenFlow to receive information from the switches (unmatched packets) and instruct the switches how to deal with them. In this project you will use code that is already available in the distribution of the POX controller development platform (Python based OpenFlow controller) to control the switches. The goal is that you analyse that code and understand the OpenFlow messages exchanged between the controller and the switches. You will start by setting up the mininet/openflow VM and setting up the POX controller development environment. You should then run mininet with a tree topology and connect it to the POX controller (running an example application python file) as it is described in the instructions. The exercise consists in changing the code of the controller example code (that acts like a hub) to act like a learning switch and push forwarding rules to the switches so that packets with known destination MAC addresses are sent to the learned port without controller intervention. 2. Instructions The instructions below use three different command prompts to indicate where commands should be run. Commands that should be run on your local machine are preceded by the prompt: you@yourmachine$ Commands that should be run directly in the VM console, or in an SSH session to the VM are preceded by the prompt: mininet@vm$ Commands that should be run in mininet are preceded by the prompt: mininet> There are also two different IP addresses you will need. Both of these IP addresses are associated with the host-only network created by the hypervisor you use to run the mininet VM (VirtuaBox or VmWare). The first is the IP address assigned to the host-only network adapter created on your local machine by VirtualBox (in VMware it is called a bridged networking adapter). We will refer to this IP as: <host_ip>. You can use ifconfig (or ipconfig in windows) to determine the IP address the hypervisor attributes to your local machine. In VmWare for example it is listed like a vmnet interface in the results of the ifconfig command.! 1
3 The second is the IP address assigned to host-only network adapter within the VM. We will refer to this IP as: <vm_ip>. This IP can be determined by running ifconfig -a within the VM to determine which. ifconfig in the VM should show two network interfaces. One should be a NAT interface that can be used to access the Internet, and the other should be a host-only interface to enable it to communicate with the host machine. For example, your NAT interface could be eth0 and have a 10.x IP address, and your host-only interface could be eth1 and have a x IP address it can also be the other way around. You will need to try and ssh from your host OS to the IPs of the mininet VM until you succeed. ssh -X mininet@<vm_ip> 2.1 Set Up the Mininet/OpenFlow VM Note: These instructions assume your machine is running Linux. If you are running OS X or Windows, the set up process will be slightly different; instructions can be found in the OpenFlow tutorial at references to specific sections of this tutorial are included in the details below. A VMware virtual machine with the mininet installation is available in the course site or directly in the mining website. You should install VMplayer and open the VM file. Under the settings menu, on the right side panel you need to select the add device button and add another network adapter. On the properties of the network adapter select host-only and enable the dhcp server option. You can now boot the VM image file. The user name and password are: mininet. You should be able to connect from your host machine to the VM via SSH. In the VM Run the following to identify the IP address you should use to connect: mininet@vm$ ifconfig a In your host machine go to your network settings and check the IP address that you are using to reach the Internet. In the result of the above command in the VM one of the interfaces will have that same IP address and it is used for Internet connectivity. There should be another interface (the host-only network adapter) with a different IP address. This is the address that you should use to SSH in to the VM. When you connect via SSH, be sure to enable X11 forwarding using the X option in ssh: you@yourmachine$ ssh -X <vm_ip>. If you are running Mac OS X or Windows, you will need the appropriate tools for connecting to the VM via SSH and displaying GUIs using X. See the following parts of the OpenFlow tutorial for guidance:! 2
4 and Set Up Controller Development Environment Your SDN application can run atop several available controller platforms. In this project we describe how to use the POX (Phyton-based) controller. Obtain the latest version of POX from github (a software versioning platform on which the POX controller software is maintained): git clone If you are using windows on your host machine install git from: and then run from the command line the above command to install pox. Just change in to the pox folder that should be created in your user area and you are ready to start using POX. 2.3 Using mininet Mininet emulates an OpenFlow network and end-hosts within a single machine. It includes built-in support to create several common topologies, plus it allows for construction of custom topologies using a python script. Since we are only considering tree-like data center topologies, will only use the tree topology built-in. To launch mininet with the network arranged in a binary tree topology with depth 3, run the following command (either directly in the VM console or in an SSH session to the VM): openflow@vm$ sudo mn --topo tree,3 --mac --arp --switch ovsk --controller remote,ip=<host_ip> Each of the part of the command does the following: sudo runs as root. mn runs mininet. --topo tree,3 creates a tree topology of depth 3 with the default fanout of 2 (i.e., binary). --mac makes the mac address of mininet hosts the same as their node number. --arp installs static ARP entries in all hosts. --switch ovsk uses Open vswitch in kernel mode for each of the switches. --controller remote,ip= <host_ip> the SDN controller will run outside of mininet in the IP of your host machine.! 3
5 The created topology with the above command is depicted in the following figure: The numbering of hosts and switches is according to the numbering used by mininet. Squares represent hosts and circles represent switches. Once mininet is running, you can obtain information about the network, generate traffic, and run commands on individual hosts. To display all of the elements in the network, run the nodes command within mininet: mininet> nodes Nodes starting with h are hosts, and nodes starting with s are switches. To display the list of links in the network, run the net command within mininet: mininet> net This will output a list of switches, and for each switch, list the hosts and switches connected to that switch (along with the network interface on each host and switch that is used for the link). One option to generate traffic is to run ping or iperf on individual hosts. To do so, you need to run a command on a specific host within mininet. This is achieved by typing the hosts name, followed by the command. For example, to send 10 ping packets to h2 from h1, run: mininet> h1 ping -c 10 h2 To run iperf, you ll need to start the iperf server on one host, running the command in the background, and then start the iperf client on another host. For example, to run an iperf server onh1 and an iperf client on h2, run: mininet> h1 iperf -s & mininet> h2 iperf -c h1 You can also provide other options to iperf, if desired. Also, you should kill the iperf server on h1, when you are finished: mininet> h1 kill `ps grep iperf cut -f2 -d ` Note that if you run ping or iperf without an SDN controller running on your local machine, no traffic will be sent across the switches (since there are no OpenFlow rules in the switches) and the commands will timeout.! 4
6 An alternative option to generate traffic is to use the mininet commands pingpair, pingall, and iperf. Using these commands avoids the need to run commands on individual hosts. You can use the mininet help command or consult the Mininet documentation ( OpenFlow/MininetWalkthrough) to learn more about these commands. 2.4 Running your controller You will run your SDN controller on your local machine. In your local machine in the folder where POX was installed issue the following command to run a basic hub example (switches will act like hubs): $./pox.py log.level --DEBUG misc.of_tutorial This tells POX to enable verbose logging and to start the of_tutorial component, which you'll be using (which currently acts like a hub). Now in your VM start mininet with the above tree topology of depth 3 with the command: sudo mn --topo tree,3 --mac --arp --switch ovsk --controller remote,ip=<host_ip> The controller should indicate that the switches are connected printing something like this: INFO:openflow.of_01:[Con 1/1] Connected to DEBUG:samples.of_tutorial:Controlling [Con 1/1] The first line is from the portion of POX that handles OpenFlow connections. The second is from the tutorial component itself (the specific controller that we are using). 2.5 Verify Hub Behaviour with tcpdump Now we verify that hosts can ping each other, and that all hosts see the exact same traffic (the behavior of a hub). To do this, we'll create xterms for each host and view the traffic in each. In the Mininet console, start up 8 xterms: mininet> xterm h1 h2 h3 h4 h5 h6 h7 h8 Arrange each xterm so that they're all on the screen at once. This may require reducing the height of to fit a cramped laptop screen. In the xterms for h2 trough h8, run tcpdump, a utility to print the packets seen by a host: For example for hosts h2 and h3: # tcpdump -XX -n -i h2-eth0 and respectively: # tcpdump -XX -n -i h3-eth0 In the xterm for h1, send a ping: # ping -c The ping packets are now going up to the controller, which then floods them out all interfaces except the sending one. You should see identical ARP and ICMP packets corresponding to the ping in both xterms! 5
7 running tcpdump. This is how a hub works; it sends all packets to every port on the network. So the ping packet is seen in all hosts. In mininet (in the VM) run the iperf command: mininet> iperf This Mininet command runs an iperf TCP server on one virtual host, then runs an iperf client on a second virtual host. Once connected, they blast packets between each other and report the results. Remember that every packet goes up the controller and to all switches. 2.6 Changing the controller The next exercise is to edit the controller to act like a learning switch instead of a hub. Edit the file pox/misc/of_tutorial.py in your favorite text editor. The file contains in commented code almost all the needed alterations to change the controller such that it instructs the switches to perform like a learning switch and to install forwarding rules for learnt addresses. To re-run the controller with the new program save the file and then run it again with: $./pox.py log.level --DEBUG misc.of_tutorial The following sections gives some information about Python so that you can better understand the controller code and point to a possible solution Learning Python Python: is a dynamic, interpreted language. There is no separate compilation step, just update your code and re-run it. uses indentation rather than curly braces and semicolons to delimit code. Four spaces denote the body of a for loop, for example. is dynamically typed. There is no need to pre-declare variables and types are automatically managed. has built-in hash tables, called dictionaries, and vectors, called lists. is object-oriented and introspective. You can easily print the member variables and methods of an object at runtime. runs slower than native code because it is interpreted. Performance-critical controllers may want to distribute processing to multiple nodes or switch to a more optimised language. Common operations: To initialize a dictionary: mactable = {}! 6
8 To add an element to a dictionary: mactable[0x123] = 2 To check for dictionary membership: if 0x123 in mactable: print 'element 2 is in mactable' if 0x123 not in mactable: print 'element 2 is not in mactable' To print a debug message in POX: log.debug('saw new MAC!') To print an error message in POX: log.error('unexpected packet causing system meltdown!') To print all member variables and functions of an object: print dir(object) To comment a line of code: # Prepend comments with a #; no // or /**/ In the next lines you can find some information about the code in the of_tutorial.py file and POX classes that are useful for the exercise Open flow messages in POX When a connection to a switch starts, a ConnectionUp event is fired by the POX controller s switch listener. The of_tutorial.py code creates a new Tutorial object (Tutorial(event.connection)) (one Tutorial object is created for each switch that connects) that holds a reference to the associated Connection object returned by the Switch listener. This object is a packet listener that is used to receive events from the switches. This object is also used to send commands (OpenFlow messages) to the switch. def launch (): Starts the component def start_switch (event): log.debug("controlling %s" % (event.connection,)) Tutorial(event.connection) core.openflow.addlistenerbyname("connectionup", start_switch)! 7
9 In the Tutorial class constructor (def init (self, connection) method) the connection object is registered so that the controller can send it messages. def init (self, connection): # Keep track of the connection to the switch so that we can # send it messages! self.connection = connection And the instance of the tutorial class is registered as the event listener for this connection (with this switch): # This binds our PacketIn event listener connection.addlisteners(self) Packet_in events are processed in the _handle_packetin method: def _handle_packetin (self, event): Handles packet in messages from the switch. packet = event.parsed # This is the parsed packet data. if not packet.parsed: log.warning("ignoring incomplete packet") return packet_in = event.ofp # The actual ofp_packet_in message. # Comment out the following line and uncomment the one after # when starting the exercise. self.act_like_hub(packet, packet_in) #self.act_like_switch(packet, packet_in) The above code receives a packet. The POX packet library is used to parse packets and make each protocol field available to Python in a clean Object format. This library can also be used to construct packets for sending. The parsing libraries are in: pox/lib/packet/ Each protocol has a corresponding parsing file. For the exercise, you'll only need to access the Ethernet source and destination fields. To extract the source MAC address of a packet, use the dot notation: packet.src! 8
10 The Ethernet src and dst fields are stored as pox.lib.addresses.ethaddr objects. These can easily be converted to their common string representation (str(addr) will return something like "01:ea:be: 02:05:01"). To see all members of a parsed packet object: print dir(packet) The event.ofp object contains the packet in the form needed to send it via OpenFlow trough the network. The line: packet_in = event.ofp Stores this object in the packet_in variable. The act_like_hub method calls the resend_packet method to flood the packets: self.resend_packet(packet_in, of.ofpp_all) That is defined as: def resend_packet (self, packet_in, out_port): Instructs the switch to resend a packet that it had sent to us. "packet_in" is the ofp_packet_in object the switch had sent to the controller due to a table-miss. msg = of.ofp_packet_out() #creates a packet out in the msg variable msg.data = packet_in #fills message with the received packet # Add an action to send to the specified port action = of.ofp_action_output(port = out_port) msg.actions.append(action) # Send message to switch self.connection.send(msg) It creates a packet from the of class (imported from pox.openflow.libopenflow_01). And an action is created using the: ofp_action_output class This is an action for use with ofp_packet_out and ofp_flow_mod objects. It specifies a switch port that you wish to send the packet out of. It can also take various "special" port numbers. An example of this would be OFPP_FLOOD, which sends the packet out all ports except the one the packet originally arrived on. In the example code resend_packet is called with out_port = of.ofpp_all (this value has a similar behaviour to the OFPP_FLOOD value. You should now complete the following act_like_switch method:! 9
11 def act_like_switch (self, packet, packet_in): Implement switch-like behavior. # DELETE THIS LINE TO START WORKING ON THIS (AND THE ONE BELOW!) # # Here's some psuedocode to start you off implementing a learning # switch. You'll need to rewrite it as real Python code. # Learn the port for the source MAC self.mac_to_port... <add or update entry># if the port associated with the destination MAC of the packet is known: # Send packet out the associated port self.resend_packet(packet_in,...) # Once you have the above working, try pushing a flow entry # instead of resending the packet (comment out the above and # uncomment and complete the below.) log.debug("installing flow...") # Maybe the log statement should have source/destination/port? #msg = of.ofp_flow_mod() # ## Set fields to match received packet #msg.match = of.ofp_match.from_packet(packet) # #< Set other fields of flow_mod (timeouts? buffer_id?) > # #< Add an output action, and send -- similar to resend_packet() > else: # Flood the packet out everything but the input port # This part looks familiar, right? self.resend_packet(packet_in, of.ofpp_all) # DELETE THIS LINE TO START WORKING ON THIS # To perform this the following information is useful: After the _handle_packetin method the source address of the Ethernet packet is in packet.src and the port where the message arrived at the switch is in event.port. You may need to find a way to pass this port in to the act_like_switch method since the event object is not known inside this method. You can test if a destination address is stored in the mac_to_port dictionary with: if packet.dst in self.mac_to_port. In the affirmative case you can then call the self.resend_packet method passing the port stored in the dictionary for the destination in the packet: self.mac_to_port[packet.dst]! 10
12 This will make the switch send the packet through that port. In case the destination address is still not in the dictionary the packet should be flooded you can do that by using: self.resend_packet(packet_in, of.ofpp_all) After you change the code above to store the port for a mac address and to forward known destination addresses via those ports you have a learning switch. Repeat the hub test with the new controller. You should see that after the first packet the following ones are sent only to the destination hosts. However up to this point the switches still send every packet they receive to the controller. You can now try and change the code so that the controller installs a flow entry in the switch instructing that all packets for that destination should be forwarded by the respective port. This will cause the switch to automatically forward packets for destinations addresses that were already learned instead of sending it to the controller. You can create a message variable to store an OpenFlow flow entry object using the method ofp_flow_mod() of the of class pox.openflow.libopenflow_01 (that is imported as of.) : msg = of.ofp_flow_mod() You can then define a match using the of.ofp_match object defining the attributes to match on. For example: msg.match = of.ofp_match(in_port = 5, dl_dst = packet.dst) Creates a match for packets arriving in port 5 with the destination MAC address (dl_dst). That match rule is associated with the flow entry msg that we will send to the switch. Alternately you can define a match from an existing packet (the match will be for all packets that have the same header values of the passed packet) using the from_packet method. For example: of.ofp_match.from_packet(packet) Creates an exact match on the fields of the packet object meaning that packets arriving at any interface with the same headers are matched. This means that all packets with the same source and destination MAC addresses as the first one will be dealt by this flow entry. After defining the match rule of the flow entry we have to define the OpenFlow actions applied to packets that are matched. There are several possible actions, in this example we will use the output action using the class ofp_action_output. This action defines an action to forward out of a port. For example: msg.actions.append(of.ofp_action_output(port = out_port)) Will create an action to forward a packet that matches our flow entry out of the port with port number out_port. Other flow attributes can be set like timer values or matching priority. This can be done via the available fields at the flow object for example msg.priority contains the priority value of the of.ofp_flow_mod() object contained in msg.! 11
13 Finally we can send the flow entry to the switch, using the instruction: self.connection.send(msg) Upon completion of the code you should repeat the test in mininet. Like in the last case only the destination host should see the ping traffic, the difference to the previous case is that now after the learning stage similar packets are directly forwarded towards the next switch and not to the controller. If you issue the pingall command in mininet and then iperf you will see that the bandwidth is now much higher than in the previous cases. The reason is that there is less delay forwarding traffic since the packets do not have to be sent to the controller.! 12
Configuration and Management of Networks
Final Laboratory Configuration and Management of Networks The final Lab consists in configuring a series of case study routing topologies to configure without instructions. Each scenario has a small description
More informationA short walk-through of Mininet and POX
A short walk-through of Mininet and POX This tutorial has three parts. The first part covers the basics of the Mininet network emulation environment under which your programming assignment will be carried
More informationMininet & OpenFlow 24/11/2016
Mininet & OpenFlow 24/11/2016 Firt steps: configure VM PREREQUISITE: download and install the mininet VM from http://mininet.org/download/ THEN: Change network settings by enabling «bridge» Start the mininet
More informationMininet & OpenFlow 19/05/2017
Mininet & OpenFlow 19/05/2017 Setup 1: Mininet-based Single Switch sudo mn --topo single,3 --switch ovsk --controller remote c0 Controller port6633 virtual switch loopback (127.0.0.1:6633) s1 OpenFlow
More informationSDN CONTROLLERS. SDN Tutorial 1
SDN CONTROLLERS SDN Tutorial 1 SDN Controllers The three concepts: Programmability Separation of the control and data planes Management of ephemeral network state in a centralized control plane, regardless
More informationLab 9 (Traffic Measurement)
Lab 9 (Traffic Measurement) In this lab, the number of packets or bytes for IP or ARP will be recorded in Table 0. Then IP traffic will be forwarded to Table 5 for further classification. The number of
More informationADVANCED COMPUTER NETWORKS Assignment 9: Introduction to OpenFlow
Spring Term 2014 ADVANCED COMPUTER NETWORKS Assignment 9: Introduction to OpenFlow Assigned on: 8 May 2014 Due by: 21 May 2014, 23:59 1 Introduction The goal of this assignment is to give an introduction
More informationLab 3: Simple Firewall using OpenFlow
Lab 3: Simple Firewall using OpenFlow This lab builds on the knowledge acquired through Lab 1 where you were first introduced to the Mininet environment. It will also help you prepare for the class project.
More informationADVANCED COMPUTER NETWORKS Assignment 9: Introduction to OpenFlow
Spring Term 2015 ADVANCED COMPUTER NETWORKS Assignment 9: Introduction to OpenFlow Assigned on: 7 May 2015 Due by: 20 May 2015, 23:59 1 Introduction The goal of this assignment is to give an introduction
More informationOutline. SDN Overview Mininet and Ryu Overview Mininet VM Setup Ryu Setup OpenFlow Protocol and Open vswitch Reference
1 Mininet and Ryu 2 Outline SDN Overview Mininet and Ryu Overview Mininet VM Setup Ryu Setup OpenFlow Protocol and Open vswitch Reference 3 SDN Overview Decoupling of control and data planes Directly Programmable
More informationMininet/Openflow. Objectives. Network Topology. You will need a Number
Mininet/Openflow Objectives In this lab, you will start by learning the basics of running Mininet in a virtual machine. Mininet facilitates creating and manipulating Software Defined Networking components.
More informationProgramming Assignment
Overview Programming Assignment In this assignment, you will program the OpenFlow controller POX and use it to implement two applications. Task 1: Firewall In this part, your task is to implement a layer-2
More informationLab Exercise 3 (part A) Introduction to Mininet
Lab Exercise 3 (part A) Introduction to Mininet Objectives: Learn the basic commands in Mininet Learn how to create basic network topologies in Mininet Learn Mininet API Marks: This exercise forms the
More informationProject 4: SDNs Due: 11:59 PM, Dec 12, 2018
CS168 Computer Networks Fonseca Project 4: SDNs Due: 11:59 PM, Dec 12, 2018 Contents 1 Introduction 2 2 Overview 2 2.1 Architecture......................................... 3 3 Shortest-path Switching
More informationReliable SDN Network Architecture
Reliable SDN Network Architecture Parvathy S Parthan, Dr. N.Guruprasad Department of Computer Science and Engineering, New Horizon College of Engineering Bengaluru, Karnataka, India-560103 ABSTRACT: Software
More informationIntro to OpenFlow Tutorial
5/24/2015 GENIExperimenter/Tutorials/OpenFlowOVS GENI: geni Intro to OpenFlow Tutorial Overview: This is a simple OpenFlow tutorial that will guide you through the writing of simple OpenFlow controllers
More informationIntro to OpenFlow Tutorial
GENIExperimenter/Tutorials/OpenFlowOVS-Floodlight GENI: geni Intro to OpenFlow Tutorial Overview: This is a simple OpenFlow tutorial that will guide you how to use the Floodlight Controller in conjunction
More informationMininet Tutorial. Leonardo Richter Bays Gustavo Mio7o Marcelo Caggiani Luizelli Luciano Paschoal Gaspary
Mininet Tutorial Leonardo Richter Bays Gustavo Mio7o Marcelo Caggiani Luizelli Luciano Paschoal Gaspary Outline Introduc?on Installing Mininet SeAng Up First Steps in Mininet Ini?aliza?on Main commands
More informationInteroperability in Software Defined Networking
Interoperability in Software Defined Networking A Thesis Submitted In Partial Fulfilment of the Requirements for the Degree of Bachelor of Technology In Electronics and Communication Engineering By VISHAL
More informationAssignment 5: Software Defined Networking CS640 Spring 2015
Assignment 5: Software Defined Networking CS640 Spring 2015 Due: Thursday, May 7 at 11pm Overview For this project you will implement two control application for a software defined network (SDN). A layer
More informationAssignment 5. 2 Assignment: Emulate a Data Center and Manage it via a Cloud Network Controller
University of Crete Computer Science Department Lecturer: Prof. Dr. X. Dimitropoulos TAs: Dimitrios Gkounis, George Nomikos Manos Lakiotakis, George Vardakis HY436 - Software Defined Networks Tasks of
More informationCloud and Datacenter Networking
Cloud and Datacenter Networking Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione DIETI Laurea Magistrale in Ingegneria Informatica
More informationState of the Internet The Need for a New Network Software-Defined Networking (SDN) Network Data Plane SDN Data Plane Technology: OpenFlow
State of the Internet The Need for a New Network Software-Defined Networking (SDN) Network Data Plane SDN Data Plane Technology: OpenFlow SDN Tutorial 2 SDN Tutorial 3 Proposed in the late 1970s Open Systems
More informationLab I: Using tcpdump and Wireshark
Objectives To get the student familiar with basic network protocol analyzer, tools and equipment used in later labs, including tcpdump and Wireshark. Lab Readings Go to http://www.tcpdump.org/tcpdump_man.html
More informationInstituto Superior Técnico, Universidade de Lisboa Network and Computer Security. Lab guide: Traffic analysis and TCP/IP Vulnerabilities
Instituto Superior Técnico, Universidade de Lisboa Network and Computer Security Lab guide: Traffic analysis and TCP/IP Vulnerabilities Revised on 2016-10-18 Alpha version: This is an early version and
More informationSoftware-Defined Networking (Continued)
Software-Defined Networking (Continued) CS640, 2015-04-23 Announcements Assign #5 released due Thursday, May 7 at 11pm Outline Recap SDN Stack Layer 2 Learning Switch Control Application Design Considerations
More informationOpenFlow Configuration Lab
APNIC SDN Workshop Lab OpenFlow Configuration Lab Objective: As part of this hands-on module, you will be installing the Mininet network emulator on your PC. You will then configure a standalone OpenFlow
More informationONOS-P4 Tutorial Hands-on Activity. P4 Brigade Work Days, Seoul (Korea) September 18-29, 2017
ONOS-P4 Tutorial Hands-on Activity P4 Brigade Work Days, Seoul (Korea) September 18-29, 2017 Tutorial VM Download (~4GB) http://bit.ly/onos-p4-dev-vm Run The VM is in.ova format and has been created using
More informationNOX, POX, and lessons learned. James Murphy McCauley
NOX, POX, and lessons learned James Murphy McCauley Organization A Bit of History Lessons Learned Part 1: Two little lessons Part 2: Thinking big Ongoing Work Wrap-Up 2 Current NOX and POX Collaborators
More informationHow to Work with Fast-Failover OpenFlow Groups
How to Work with Fast-Failover OpenFlow Groups Background Redundant links are frequently used in network topology design in order to reduce the risk of end-to-end connectivity failure due to a single link
More informationUsing OpenFlow 1.3 RYU. SDN Framework. RYU project team
Using OpenFlow 1.3 RYU SDN Framework RYU project team CONTENTS Preface 1 1 Installation Guide 3 2 Switching Hub 5 2.1 Switching Hub............................................ 5 2.2 Switching Hub by OpenFlow....................................
More informationModule 2 OpenFlow Configuration Lab
APNIC SDN Workshop Lab Module 2 OpenFlow Configuration Lab Objective: As part of this hands-on module, you will be installing the Mininet network emulator on your PC. You will then configure a standalone
More informationThe instructions in this document are applicable to personal computers running the following Operating Systems:
Preliminary Notes The instructions in this document are applicable to personal computers running the following Operating Systems: Microsoft Windows from version 7 up to 10 Apple Mac OS X from versions
More informationSpring 2017 Gabriel Kuri
Lab 2 ECE 431L Spring 2017 Gabriel Kuri This lab is made up of two parts. Part 1 will consist of familiarizing yourself with the Raspberry Pi (RPi). It includes running Unix/Linux commands to become somewhat
More informationAssignment 2 TCP/IP Vulnerabilities
LEIC/MEIC - IST Alameda LEIC/MEIC/MERC IST Taguspark DEASegInf Network and Computer Security 2012/2013 Assignment 2 TCP/IP Vulnerabilities Goals Gather information about the machines in the network. Explore
More informationUsing OpenFlow 1.3 RYU. SDN Framework. RYU project team
Using OpenFlow 1.3 RYU SDN Framework RYU project team CONTENTS Preface 1 1 Switching Hub 3 1.1 Switching Hub............................................ 3 1.2 Switching Hub by OpenFlow....................................
More informationNetwork softwarization Lab session 2: OS Virtualization Networking
Network softwarization Lab session 2: OS Virtualization Networking Nicolas Herbaut David Bourasseau Daniel Negru December 16, 2015 1 Introduction 1.1 Discovering docker 1.1.1 Installation Please launch
More informationComputer Security II Lab Network Security
Computer Security II Lab Network Security Setup Boot lab machine into Windows. In Windows Explorer, navigate to \\evs2\compga02\ and download the three Virtual Machines clientvm1819.zip, servervm1819.zip
More informationThe instructions in this document are applicable to personal computers running the following Operating Systems:
Preliminary Notes The instructions in this document are applicable to personal computers running the following Operating Systems: Microsoft Windows from version 7 up to 10 Apple Mac OS X from versions
More informationsottotitolo Network Administration Milano, XX mese 20XX A.A. 2016/17 Federico Reghenzani, Alessandro Barenghi
Titolo presentazione Piattaforme Software per la Rete sottotitolo Network Administration Milano, XX mese 20XX A.A. 2016/17, Alessandro Barenghi Outline 1) Introduction and Netkit-NG 2) Link-Layer Management
More informationDesign and development of the reactive BGP peering in softwaredefined routing exchanges
Design and development of the reactive BGP peering in softwaredefined routing exchanges LECTURER: HAO-PING LIU ADVISOR: CHU-SING YANG (Email: alen6516@gmail.com) 1 Introduction Traditional network devices
More informationOpenFlow Firewall and NAT Devices
OpenFlow Firewall and NAT Devices OpenFlow Firewall and NAT Devices Step by step Instructions Overview: This is a very simple tutorial with two topologies demonstrating an OpenFlow Firewall and an OpenFlow
More informationProtocols for Data Networks (aka Advanced Computer Networks)
Protocols for Data Networks (aka Advanced Computer Networks) Deadline: 19 March 2016 Programming Assignment 1: Introduction to mininet The goal of this assignment is to serve as an introduction to the
More informationIntroduction to a NIC Wire App in P4
Introduction to a NIC Wire App in P4 This lab introduces the concepts of P4 by implementing a rudimentary Network Interface Card (NIC). This is achieved by creating a program to match traffic entering
More information5. Write a capture filter for question 4.
Pre-Lab 2: Single Segment IP Networks 1. Review Linux man pages for arp at www.linuxmanpages.com (in both Sections 7 and 8), the ARP RFC (RFC 826) at www.ietf.org, and Section 3.4 of the IBM Red Book.
More informationVPN-against-Firewall Lab: Bypassing Firewalls using VPN
SEED Labs 1 VPN-against-Firewall Lab: Bypassing Firewalls using VPN Copyright c 2016 Wenliang Du, Syracuse University. The development of this document was partially funded by the National Science Foundation
More informationDenial-of-Service (DoS) Attacks in an SDN Environment
Denial-of-Service (DoS) Attacks in an SDN Environment Contents Experiment Task Design:... 3 Submission:... 3 Start the Experiment... 3 Conduct the Experiment... 6 Section 1.1: Installing Dependencies...
More informationAssignment 2: Getting to know yanc and Mininet
ECEN 5023/CSCI 7000-0005: Advanced Networking Spring 2014 Assignment 2: Getting to know yanc and Mininet Due Fri 2/28/2014 In this assignment, we ll get some exposure to Floodlight and Mininet. I encourage
More informationSIMPLE ROUTER PROJECT 2. - Balachander Padmanabha - TA CSE 123 (FALL 2017) - OH (Wed 9-11am B240A)
SIMPLE ROUTER PROJECT 2 - Balachander Padmanabha - TA CSE 123 (FALL 2017) - OH (Wed 9-11am B240A) MININET It is a network emulation orchestration system which runs a collection of end-hosts, switches,
More informationImplementation of Layer 2 Rules using Software Defined Networking
Implementation of Layer 2 Rules using Software Defined Networking G Anagha 1, Deepthi G S 1, Archithaa S Rao 1, Pooja K 1, B Sudha 2, Sunita Katre 3 UG Student 1, Assistant Professor 2, Research and Development
More informationImplementation of Virtualization in Software Defined Networking (SDN) for Data Center Networks
Implementation of Virtualization in Software Defined Networking (SDN) for Data Center Networks Nader F. Mir, Jayashree N. Kotte, and Gokul A. Pokuri nader.mir@sjsu.edu Department of Electrical Engineering
More informationPacket Capturing with TCPDUMP command in Linux
Packet Capturing with TCPDUMP command in Linux In this tutorial we will be looking into a very well known tool in Linux system administrators tool box. Some times during troubleshooting this tool proves
More informationLab Zero: A First Experiment Using GENI and Jacks Tool
Lab Zero: A First Experiment Using GENI and Jacks Tool These instructions are at: http://tinyurl.com/geni labzero Overview This is a first, simple experiment on GENI useful for familiarizing new experimenters
More information2 nd SEE 6DISS Workshop Plovdiv June Host Configuration (Windows XP) Athanassios Liakopoulos
2 nd SEE 6DISS Workshop Plovdiv 27-29 June 2007 Host Configuration (Windows XP) Athanassios Liakopoulos aliako@grnet.gr 1. Lab information Network Topology The network topology is shown in Figure 1. PCs
More informationWeek Date Teaching Attended 5 Feb 2013 Lab 7: Snort IDS Rule Development
Weekly Tasks Week 5 Rich Macfarlane 2013 Week Date Teaching Attended 5 Feb 2013 Lab 7: Snort IDS Rule Development Aim: The aim of these labs are to further investigate the Snort, network IDS, and methods
More informationOnce the VM is started, the VirtualBox OS Manager window can be closed. But our Ubuntu VM is still running.
How to use iptables on Ubuntu Revised: 16-August-2016 by David Walling This "How To" document describes using the iptables program to define firewall rules for our Ubuntu server. We will also explore using
More informationLAN Setup Reflection
LAN Setup Reflection After the LAN setup, ask yourself some questions: o Does your VM have the correct IP? o Are you able to ping some locations, internal and external? o Are you able to log into other
More informationNetwork Security Laboratory 23 rd May STATEFUL FIREWALL LAB
Network Security Laboratory 23 rd May 2016. STATEFUL FIREWALL LAB 1 CONTENTS INTRODUCTION I. What is Stateful Firewall II. Difference between Stateful and Stateless III. Example of Stateful firewall IV.
More informationEclipse Environment Setup
Eclipse Environment Setup Adapted from a document from Jeffrey Miller and the CS201 team by Shiyuan Sheng. Introduction This lab document will go over the steps to install and set up Eclipse, which is
More informationLab Zero: A First Experiment Using GENI and Jacks Tool
GENIExperimenter/Tutorials/jacks/GettingStarted_PartI/Procedure GENI: geni 2/27/16, 14:35 Lab Zero: A First Experiment Using GENI and Jacks Tool These instructions are at: http://tinyurl.com/geni-labzero
More informationCNBK Communications and Networks Lab Book: Purpose of Hardware and Protocols Associated with Networking Computer Systems
Lab Book: Purpose of Hardware and Protocols Associated with Networking Computer Systems Contents Purpose of Hardware and Protocols Associated with Computer Networks... 3 Lab Objectives... 3 Lab Resources...
More informationA quick tutorial on using tshark
A quick tutorial on using tshark Ross Maloney January 24, 2017 The network sniffing program tshark is the terminal oriented version of the GUI version wireshark. This GUI version was initially called ethereal.
More informationLAB THREE STATIC ROUTING
LAB THREE STATIC ROUTING In this lab you will work with four different network topologies. The topology for Parts 1-4 is shown in Figure 3.1. These parts address router configuration on Linux PCs and a
More informationFuzzing the easy way, using Zulu
An NCC Group Publication Fuzzing the easy way, using Zulu Prepared by: Andy Davis Research Director andy.davis at nccgroup dot com Contents 1 Introduction... 3 2 Tutorial One: Zulu basics... 4 3 Tutorial
More informationOS10 Virtualization Guide. Enterprise Edition
OS10 Virtualization Guide Enterprise Edition 2018-7 Rev. A00 Contents 1 OS10 software virtualization...4 2 Setup GNS3 server...7 3 Setup GNS3 client... 11 4 Start GNS3 client...16 5 Import OS10 appliance...20
More informationCOMPUTER NETWORKING LAB EXERCISES (TP) 4
Name 1: Name 2: Group number: COMPUTER NETWORKING LAB EXERCISES (TP) 4 IPV6 December 14, 2009 Abstract In this TP you will revisit some of the basic networking tools that were introduced in TP1, only this
More informationLaboratory 2 Dynamic routing using RIP. Iptables. Part1. Dynamic Routing
Introduction Laboratory 2 Dynamic routing using RIP. Iptables. Part1. Dynamic Routing Static routing has the advantage that it is simple, requires no computing power in router for determining routes (this
More informationComputer Networks A Simple Network Analyzer Decoding Ethernet and IP headers
Computer Networks A Simple Network Analyzer Decoding Ethernet and IP headers Objectives The main objective of this assignment is to gain an understanding of network activities and network packet formats
More informationCS144 Lab 4 NAT. Feb., 2015
CS144 Lab 4 NAT Feb., 2015 Overview You re going to write a simplified NAT(+Router) Recall Lab 3 StaMc topology + StaMc roumng table IP RouMng + ICMP messages Lab 4 Take your Lab 3 NAT handling ICMP and
More informationAre you ready for the tutorial? 1. Grab a worksheet and instructions 3. Connect to the network Connect to Texas A&M s wireless network 2. Did you do the pre-work? A. Do you have an account? B. Have you
More informationDescription: Write VHDL code for full_adder.vhd with inputs from switches and outputs to LEDs.
LAB Assignment #1 for ECE 443 Assigned: Mon., Aug. 24, 2016 Due: Wed., Sept. 26, 2016 Description: Write VHDL code for full_adder.vhd with inputs from switches and outputs to LEDs. This assignment is intentionally
More informationpulsarvmlite v Installation and Usage
pulsarvmlite v1.05 Installation and Usage Lawrence Toomey July 15 th 2015 lawrence.toomey@gmail.com Welcome to pulsarvmlite, a custombuilt 32bit virtual machine (VM) image for pulsar astronomers. Based
More informationEnter your answers to the questions in this lab using Canvas Quiz Ch.5 Global Unicast Address + Lab. Additional questions are included in the quiz.
Lab: Introducing Global Unicast Addresses CIS 116 IPv6 Fundamentals Enter your answers to the questions in this lab using Canvas Quiz Ch.5 Global Unicast Address + Lab. Additional questions are included
More informationLab 1: Introduction to Linux Networking
CMPE 150: Introduction to Computer Networks Fall 2011 http://courses.soe.ucsc.edu/courses/cmpe150/fall11/01/ Lab 1: Introduction to Linux Networking Materials: Please bring a USB drive to each lab section.
More informationCS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG
CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG 1 Notice Class Website http://www.cs.umb.edu/~jane/cs114/ Reading Assignment Chapter 1: Introduction to Java Programming
More informationOPENSTACK CLOUD RUNNING IN A VIRTUAL MACHINE. In Preferences, add 3 Host-only Ethernet Adapters with the following IP Addresses:
OPENSTACK CLOUD RUNNING IN A VIRTUAL MACHINE VirtualBox Install VirtualBox In Preferences, add 3 Host-only Ethernet Adapters with the following IP Addresses: 192.168.1.2/24 192.168.2.2/24 192.168.3.2/24
More informationCSC 4900 Computer Networks: Network Layer
CSC 4900 Computer Networks: Network Layer Professor Henry Carter Fall 2017 Chapter 4: Network Layer 4. 1 Introduction 4.2 What s inside a router 4.3 IP: Internet Protocol Datagram format 4.4 Generalized
More informationSDN-based Defending against ARP Poisoning Attack
Journal of Advances in Computer Research Quarterly pissn: 2345-606x eissn: 2345-6078 Sari Branch, Islamic Azad University, Sari, I.R.Iran (Vol. 8, No. 2, May 2017), Pages: 95- www.jacr.iausari.ac.ir SDN-based
More informationECE 4110 Internetwork Programming Lab 7: Configuring a Network Using RIP Routing Protocol. Prelab Questions
ECE 4110 Internetwork Programming Lab 7: Configuring a Network Using RIP Routing Protocol Group Number: Member Names: Date Issued: March 26, 2013 Date Due: April 3, 2013 Last Edited: January 31, 2013 This
More informationThe Assignment is divided into preparation, practical part, and documentation.
EINTE LAB EXERCISES LAB EXERCISE #4 IGP ROUTING PURPOSE AND GOALS This lab assignment will give you a hands-on experience in configuring and managing routers and particularly in setting up IP routing protocols.
More informationThe trace is here: https://kevincurran.org/com320/labs/wireshark/trace-dhcp.pcap
Lab Exercise DHCP Objective To see how DHCP (Dynamic Host Configuration Protocol) works. The trace is here: https://kevincurran.org/com320/labs/wireshark/trace-dhcp.pcap Network Setup Recall that DHCP
More informationTCP/IP and the OSI Model
TCP/IP BASICS TCP/IP and the OSI Model TCP/IP BASICS The network protocol of the Internet Composed of six main protocols IP Internet Protocol UDP User Datagram Protocol TCP Transmission Control Protocol
More informationECE 697J Advanced Topics in Computer Networks
ECE 697J Advanced Topics in Computer Networks Network Measurement 12/02/03 Tilman Wolf 1 Overview Lab 3 requires performance measurement Throughput Collecting of packet headers Network Measurement Active
More informationOpenState demo. Hands-on activity. NetSoft 15 - April 13, 2015 A.Capone & C. Cascone: OpenState Live Demo 1
OpenState demo Hands-on activity NetSoft 15 - April 13, 2015 A.Capone & C. Cascone: OpenState Live Demo 1 Outline OpenState specification State table, key extractors, set-state action Demo tools: Mininet,
More informationEE122 Routing Simulator Guide
EE122 Routing Simulator Guide v0.3 (19/10/2011) Running the Simulator Here s the info you need to get started with the simulator: File Layout The simulator is organized thusly: simulator.py - Starts up
More informationCOMPUTER NETWORKS. CPSC 441, Winter 2016 Prof. Mea Wang Department of Computer Science University of Calgary
COMPUTER NETWORKS CPSC 441, Winter 2016 Prof. Mea Wang Department of Computer Science University of Calgary Introduction: Wireshark and tshark Running tshark Running Wireshark Exercise: Analyze HTTP traffic
More informationLab 1: Accessing the Linux Operating System Spring 2009
CIS 90 Linux Lab Exercise Lab 1: Accessing the Linux Operating System Spring 2009 Lab 1: Accessing the Linux Operating System This lab takes a look at UNIX through an online experience on an Ubuntu Linux
More informationFirewall Evasion Lab: Bypassing Firewalls using VPN
SEED Labs Firewall Evasion Lab 1 Firewall Evasion Lab: Bypassing Firewalls using Copyright 2018 Wenliang Du, Syracuse University. The development of this document was partially funded by the National Science
More informationELE409 SPRING2018 LAB0
ELE409 SPRING2018 LAB0 Getting familiar with the LXDE system Objectives: Pre-Lab: 1. Burn the linux system onto a micro-sd card 2. Get familiar with basic linux commands 3. Be able to communicate with
More informationCMP3214 Computer Communication Networks. Lecture 4 NTE. Network Training Emulator. Diarmuid Ó Briain CEng, FIEI, FIET, CISSP.
CMP3214 Computer Communication Networks Lecture 4 NTE Network Training Emulator CEng, FIEI, FIET, CISSP diarmuid@obriain.com Network Training Emulator Originally IMUNES - IP network emulator / simulator
More informationOpenStack Havana All-in-One lab on VMware Workstation
OpenStack Havana All-in-One lab on VMware Workstation With all of the popularity of OpenStack in general, and specifically with my other posts on deploying the Rackspace Private Cloud lab on VMware Workstation,
More informationStatic routing lab KTH/CSC. Juniper version. Group Nr. Name 1. Name 2. Name 3. Name 4. Date. Grade. Instructor s Signature
KTH/CSC Static routing lab Juniper version Group Nr Name 1 Name 2 Name 3 Name 4 Date Grade Instructor s Signature Table of Contents 1 Goals...3 2 Preparation questions...3 3 Host configuration...4 4 Static
More informationHardening servers for the modern internet
Hardening servers for the modern internet Philip Paeps The FreeBSD Foundation SANOG32 7 August 2018 Dhaka, Bangladesh Session 1 (09:00 11:00) 1. Presentation: Introduction to the FreeBSD project (30 minutes)
More informationECE 358 Project 3 Encapsulation and Network Utilities
ECE 358 Project 3 Encapsulation and Network Utilities Objective: After this project, students are expected to: i. Understand the format of standard frames and packet headers. ii. Use basic network utilities
More informationGuide to your Plug Computer
This document lives here: http://inst.eecs.berkeley.edu/~ee122/fa11/project3/guide-to-plug.pdf Guide to your Plug Computer UC Berkeley, EE 122, Fall 2011 Version 1 This document is a step-by-step guide
More informationin functions). Try to play around with a few more data types and you'll be comfortable with the language in little time. Getting started: Install and
Bro ids tutorial This site uses cookies, including for analytics, personalization, and advertising purposes. For more information or to change your cookie settings, click here. print fmt("vector: %s, has
More informationLab Exercise Sheet 2 (Sample Solution)
Lab Exercise Sheet 2 (Sample Solution) Document and analyze your experimental procedures by using your Wireshark and terminal recordings. Note all relevant intermediate steps. Mark and explain all relevant
More informationTraffic Isolation on Multi-Tenant Data Center Networks
Traffic Isolation on Multi-Tenant Data Center Networks Heitor Moraes Universidade Federal de Minas Gerais motta@dcc.ufmg.br Marcos A. M. Vieira Universidade Federal de Minas Gerais mmvieira@dcc.ufmg.br
More informationSetting-up WAN Emulation using WAN-Bridge Live-CD v1.10
Setting-up WAN Emulation using WAN-Bridge Live-CD v1.10 Contents Document version 0.1 Overview... 2 What s New in Version 1.10... 2 Software Installed on the CD... 2 License... 3 Sample Lab Configurations...
More informationkurguide Documentation
kurguide Documentation Release 0.1 Pedro Cuadra Sep 27, 2017 Contents 1 Installation 3 1.1 Install Virtualbox............................................. 3 1.2 Import Mininet s VM..........................................
More information