Introduction§
In this lab you will obtain a user account on Emulab and create a simple network. This lab is meant as an introduction to the process of creating and executing a network within the Emulab world. In later labs Emulab will be used to prototype network architectures and to experiment with network performance.
Goals§
- To get you involved with a simulation environment that supports the development of networking. When designing a new network, it is difficult to acquire all the hardware and software. Also, performance and other networking issues can be investigate prior to building the network.
- To do a controlled pass through creating and exercising a network within the Emulab.
References§
Logistics§
The goal of this lab is to complete the Emulab Tutorial.
Each student should complete this assignment individually so that everyone has their own Emulab login and environment.
Assignment§
-
Go to Emulab and read the front-page description.
-
At the Emulab website, request an account, asking to join the project: CS330-F14
- This link should take you directly to the account request form with the project title pre-filled.
- You will receive an email when you are approved as an Emulab user.
-
Look over the FAQ to know what sorts of answers you can find there when you have a question. Pay particular attention to the "Using the Testbed," and "Troubleshooting" sections.
-
Work your way through the Emulab tutorial, not including the "Advanced Topics." A few notes:
- Use the Java GUI (linked from the tutorial as well) to create your network topology.
- After you create the experiment, you can get an image of your network topology (for the lab report) from the Emulab web interface. Go to the experiment's page under "Experimentation>Experiment List" and select the "Visualization" tab. Include this image in your lab report.
- Include the generated ns file in your lab report as well.
-
Once the experiment is "swapped in" and up and running, log in to one of the nodes using SSH.
- From a terminal window on the lab Macs, this can be done by running
ssh [host name]where "[host name]" is one of the "Qualified Names" given in the experiment email or the web interface. These are the public names of the hosts, accessible from anywhere on the internet. - On Windows, it is best to install SSH via Cygwin—let me know if you would like help with that.
- If your emulab username is different from the username you are logged into your local machine as, you will need to run
ssh [emulab username]@[hostname]. SSH tries to connect as your current username by default, and you need to override that if the remote username is different.
- From a terminal window on the lab Macs, this can be done by running
-
Verify connectivity between your nodes.
- From whichever node you log in to, ping every other node in the topology by running ping hostname, where "hostname" is the internal node name, such as "nodeA", not the qualified name, which is its external name.
- Press CTRL-C to stop ping after a few seconds.
- Include a transcript of all of your ping commands in the lab report.
-
Transfer a file to one of your nodes over the internet.
- On your local machine, download a copy of the iperf source code.
- Then, use scp to copy it to a node. The scp manpage is here, or you can run man scp to get help. The basic command you'll use should be something like scp iperf-2.0.5.tar.gz [hostname]: (the final ":" is important).
- As with SSH, SCP requires you to specify the remote username if it differs from your local username. For example: scp iperf-2.0.5.tar.gz [emulab username]@[hostname]:, and again, the ":" is important.
- On Windows, scp is again available in Cygwin.
- Include a transcript of the transfer in the lab report. How fast did it complete? What was the reported rate of data transfer?
Note that the tutorial itself sort of peters out after the experiment is set up. After you log in to a node and complete the above tasks, just skim the rest of the tutorial. When you are done, end your experiment to avoid wasting resources.
Advice§
Emulab is a shared resource used by many schools and research labs. Thus, for future exercises, you might have to schedule your time to ensure that you can get sufficient resources. The FAQ has some answers related to obtaining resources as well.
Lab Report§
The basic format of lab reports will be to include a header with your name, the date, the course number, and the lab title. Margins, fonts, and anything else aren't terribly important as long as I can read it. (Do think about how to make it easily readable and well laid-out, though. Whitespace, indentation, and formatting are useful.) I will specify what needs to be included in the report in each lab, and there will also be discussion questions to answer for each lab. Include your answers in their own section at the end of the report.
This particular report is fairly simple. The assignment above indicates what to include. Please add enough text to make it clear what is what, but you don't need to write up long descriptions. All lab reports should be submitted as PDF files. Write them up in your favorite word processor, make a web page, use Latex, do whatever, but print it to a PDF and submit that on the Moodle.
Discussion Questions§
- Besides
ns, what other options can you find for network simulation? How do they seem to compare? - About how long did you spend on this assignment? Did you have any difficulty acquiring sufficient resources?
Grading§
Finish the lab for full credit. If you don't do this, then some of the later labs will be very difficult.