wiki:GENIEducation/SampleAssignments/IPRouting/ProcedureWithLabWiki

Version 8 (modified by divyashri.bhat@gmail.com, 9 years ago) (diff)

--

IPv4 Routing Assignment

Overview:

In this experiment you will learn how to set up static routing with the route command. We will orchestrate this experiment in LabWiki and use the ping command to verify connectivity. We will use the following network topology for this experiment:
route topology
   

Prerequisites:

For this tutorial you need :

Tools:

All the tools will already be installed on your nodes. For your reference we are going to use:
   

Where to get help:

  • Take a look at the Tips section in the end of the exercise
  • Contact your TA and/or Professor for help. If you are doing this exercise outside the context of a course, please email help@geni.net

Design/Setup

1. Verify your Environment Setup:

This exercise assumes you have already setup your account at the GENI Portal. In particular ensure that:
  1. You can login to the GENI Portal
  2. You are a member of a GENI Project (there is at least one project listed under the ''Projects'' tab)
  3. You have setup your ssh keys (there is at least one key listed under the ''Profile->SSH Keys'' tab)

2. Setup the Topology:

  1. Login to the GENI Portal
  2. Reserve resources from an InstaGENI rack using the RSpec called ECE3743Node from the Portal
Action:Take a screenshot of your slice when all the nodes are ready and include it in your write up

3. LabWiki Plan

  1. Click on the "LabWiki" button on the Slice page
  2. You will be asked to login with openID. Please accept and your browser will then show the three panels of LabWiki; Plan, Prepare and Execute
  3. Type in ipfwd_tutorial in the search bar of the Plan column and you will see a nice set of instructions on how to run this experiment. This window also serves as a nice place to save your experiment results (graphs) and submit it as an assignment. To edit this document which is in [http://daringfireball.net/projects/markdown/ Markdown] format, click and drag the icon in the top left corner to the Prepare window.
  4. Note: By default, this script is read-only. You will have to create your own copy for editing. You can do this in the Prepare column by clicking on the little wheel in the top left corner and selecting 'Wiki' as script type


Execute

4. Test connectivity using ping

  1. In the search bar of the Prepare column, type in "step1_threenode.oedl" and select it. Click and drag the icon in the leftmost corner over to the Execute column
  2. Select your slice from the dropdown list and click on the "Start Experiment" at the bottom of the Execute panel
  3. Action:Click and drag the graph over to your Markdown

5. Setup the routing

The goal of this exercise is to setup the routing as indicated in Figure 1; i.e. packets from A sent to IP address 192.168.2.12 on node C should be routed via node B. In order to create this routing behavior you will need to modify the routing tables in your nodes using the linux route command
  • Bring up the script "step2_threenode.oedl" in your Prepare panel
  • Create a copy of this script to add in the routing as part of your assignment
  • Questions:

    1. Setup the routing from A to 192.68.2.12 so that it goes through B. Was it enough to just modify the routing tables? What else did you need to change in order for the traffic to flow?

    6. Test routing using ping

    1. In the search bar of the Prepare column, type in "step3_threenode.oedl" and select it. Click and drag the icon in the leftmost corner over to the Execute column
    2. Select your slice from the dropdown list and click on the "Start Experiment" at the bottom of the Execute panel
    3. Action:Click and drag the graph over to your Markdown


    Finish

    4. Cleanup

    After you are done with the exercise and you have captured everything requested for the writeup, you should release your resources so that other experimenters can use them. In order to cleanup your slice :
    1. In Jacks, press the Delete button in the top of your canvas
    2. Select Delete at used managers and confirm your selection.
    Wait and after a few moments all the resources will have been released and you will have an empty canvas again. Notice that your slice is still there. There is no way to delete a slice, it will be removed automatically after its expiration date, but remember that a slice is just an empty container so it doesn't take up any resources.

    What to hand in:

    1. Drag the graphs into your Markdown and include answers to the questions above in the same document.
    2. When you are ready to submit your assignment, i.e, verified that the required routing is in place, Click on the Share Page button at the top left corner of the Plan column. This sends a link to your grader to evaluate your output.

    Tips

    • If you have trouble with your assignment, look carefully in the logs on the Execute panel. It gives you an output similar to one you will see in bash shell and you will be able to figure out why your script doesn't work as expected.
    • If you get a "Command not found " error when executing standard commands like ifconfig add sbin to your path:
         export PATH=$PATH:/sbin
      
    • Remember that you can use “ifconfig” to determine which Ethernet interface (e.g., eth0) is bound to what IP address at each of the nodes.
    • In order to enable IP forwarding of packets on a node you have to execute the following command:
      sudo sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
      
    • A new slice will always be in its initial state with NO routing set up!
    • A useful tool to debug the packet flow is tcpdump. In order to install it run:
         sudo apt-get install tcpdump
      

    Attachments (2)

    Download all attachments as: .zip