Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

(info)

This project assumes you are familiar with how to access GENI, design, deploy, login to, and test a topology of your own. Please refer to this tutorial if you need a refresher.

Table of Contents

Introduction

In this project, we will create a simple topology where we can design and implement a real queueing system. The goal is to demonstrate Little's Law as we play with queue parameters and observe traffic flow.

Design Topology

In order to implement a queue and to observe its effect on network traffic, we first need:

  1. A couple hosts to generate and receive packets. Let's call these "host-1" and "host-2".
  2. A switch on which to implement the queue. Let's call this VM the "switch".

As such, let's draw a GENI topology in Jacks to accomplish this. Our topology will have host-1 and host-2, each which is connected to the single switch. If a host-1 wants to relay packets to host-2, the packets must traverse the switch (ditto for host-2 to host-1).

It is important that the VM serving as the switch use the "Ubuntu 14 with OVS by Niky" image. The other VMs can use the default image; however, it is recommended you use the "Ubuntu 14 with OVS by Niky" image just to keep everything simple and versatile.

Once we finish our design, let's select an aggregate on which to deploy our GENI resources – make sure it's an InstaGENI aggregate. Recall that we can view the utilization of the various InstaGENI aggregates by visiting this page.

Setup Resources

On our host-1 and host-2, we will need to install iperf, which is the tool we will use to generate packets.

host-1$ sudo apt-get install iperf

and don't forget host-2:

host-2$ sudo apt-get install iperf

Next, let's setup the switch by adding an Open vSwitch (OVS) bridge:

switch$ sudo ovs-vsctl add-br my-switch			# add an OVS instance (i.e. a bridge)
switch$ sudo ovs-vsctl add-port my-switch ethX	# attach ethX to the switch
switch$ sudo ovs-vsctl add-port my-switch ethY	# attach ethY to the switch
switch$ sudo ifconfig ethX 0					# remove ethX IP address (and also remove route)
switch$ sudo ifconfig ethY 0					# remove ethY IP address (and also remove route)

where ethX and ethY are the interfaces associated with the LANs leading from the switch to host-1 and host-2. Hint: They're not eth0. (Please don't use eth0, please...)

Now, if we were to test connectivity from host-1 to host-2 via the switch using ping, we'd be unsuccessful. Why? Well, take a look at the route tables of host-1 and host-2 and you'll see they are not routable from one another. To fix this, we can assign host-1 and host-2 IPs on the same subnet. You can use whatever private IPs you want, but I'll use the following just so we can better understand the context of the iperf commands we'll run later:

host-1$ sudo ifconfig ethA 10.0.0.1/24	# set ethA IP on host-1
host-2$ sudo ifconfig ethB 10.0.0.2/24	# set ethB IP on host-2 (must be different from host-1 but on same subnet)

After this, we should be able to ping between host-1 and host-2. Verify that you can do this before proceeding.

Run Experiment without a Queue on the Switch

blah

Setup Queue on the Switch

blah blah

Run Experiments with a Queue on the Switch

blahdy blah

Questions

In as few words as possible to fully explain yourself, answer the following questions:

  1. what
  2. should
  3. we
  4. ask
  5. here?
  • No labels