NPR Tutorial >> Examples | TOC |
Workaround: Using View => Change Y-axis Label in the monitoring window, sets the units for all of the plots in the chart.
We present an example using two NPRs in a dumbbell configuration. Although one of the simplest configurations uses only one NPR, the two-NPR arrangement directly represents a popular configuration that appears in many textbooks and research papers. We will create a dumbbell topology and then send ping traffic from host n1p3 on the left to host n2p2 on the right through port 1.4 Then, some common problems/mistakes are listed. Finally, you will be asked to modify the example to support two ping flows instead of one with both flows going through port 1.4 but with the returning reply packets going through the link added between ports 2.4 and 1.1.
Some of the major features covered by this example are:
The example is given as a list of steps accompanied by screen shots. At the end is an example that tests your understanding of RLI basics.
A few comments before we begin:
This approach of defining the experiment configuration while disconnected from the testbed will help you reduce setup errors by giving you time to reflect on your choices. Furthermore, it will improve resource usage efficiency during testbed busy periods.
Here are the major steps in this example:
See the Getting Started link in the sidebar of the ONL Web page. This step is not required if you do not plan to commit your experiment or make a resource reservation through the RLI.
Typically, this is either done through the command java -jar RLI.jar or by double-clicking on the Desktop RLI icon.
Watch Out!!! If you are trying this before Fall 2008, you should use the RLInpr.jar file.
Note: We'll deal with the Commit Needed message at the bottom of the window later.
We will now spin NPR.1 to the right and NPR.2 to the left to improve the appearance of the dumbbell when connecting them to each other and the four hosts. This is done with the spin handle (pink circle) attached to port 0.
Watch Out!!! A spin handle is picky about where you grab it. For best results, aim towards the southeast corner of the spin handle circle. It tells you that you have grabbed the right spot by turning itself bright red.
Also, a spin handle can only be moved to the five angular positions at the circular grab points along the outer perimeter of the icon.
Note: The host name has changed from HST0 to n1p3 indicating that the network interface to the NPR will have a logical name of n1p3 (NPR 1, port 3).
The host icons are light blue and the links are dashed to indicate that no actual hardware has been acquired and initialized.
Saving a configuration aids in recovery from misconfigurations or a testbed failure. It is good habit to adopt a discipline of periodically saving configurations as they evolve.
A dialogue box will appear.
The figure (right) shows that my .onldir directory already has lots of configuration files. Because these files are for the older NSP routers, I have created the npr subdirectory for all of my NPR configuration files.
The five icons at the top of the dialogue window allow you to:Note: You can always get back to the .onldir directory by selecting the Home icon.
- Change to the next directory up
- Change to your home directory
- Make a new directory in the current directory
- Show the current directory in brief
- Show the current directory in detail
This step is unnecessary if you already made a usable reservation earlier.
A dialogue box titled "Log In" will appear.
This binding process usually takes from one to four minutes.
Note: The longer times usually occur when there are lots of users trying to configure their experiments or if there are hardware problems.
What's Happening? The ONL testbed control software must now configure all of the components to support your description of the network. In this example, it must find two free NPRs and four free hosts and initialize them to their default settings. It also has to configure the switches to give you the connections needed for the dumbbell topology.
If the information is accepted by the ONL resource daemon, resource allocation and initialization will commence. The initialization of NPRs and hosts takes a few minutes. Because we use proactive rejuvenation (do standard initialization after an experiment terminates), resource intialization can appear to be almost instantaneous when no one else is using the testbed. Also, minor changes such as changing a routing table occur almost instanteously. You can observe the progress of the allocation and initialization process through the Testbed Status link in the sidebar of the ONL Web page.
There are menu items associated with hosts and NPRs that will be covered in other examples.
What we have so far is four hosts connected through two routers that have default settings. But the default setting of an NPR includes the following:Item 1 means that any packet coming into a router will be dropped because it doesn't know to which output port the packet should be sent. This step fixes that problem.
- An empty routing/forwarding table
- An output link capacity of 1 Gbps on each outgoing link.
- 64 datagram queues on each output port that are fed by a Stochastic Fair Queueing algorithm
- Each datagram queue can hold 32,768 bytes.
You will actually end up on the ONL user host onlusr.arl.wustl.edu.
The example shows that the control (external) network interface is onl052.arl.wustl.edu (onl052 is an alternate name).
(In the commands below, you will have to replace the host names such as onl052 with the names of your hosts.) This is what we have done so far:Watch Out!!! Each host has two network interfaces: 1) a control (external) network (e.g., onl052), and 2) a data (internal) network (e.g., n1p3). Each network interface has an IP address. The control network interface has an IP address of the form 10.0.0.X. The data network interface has an IP address of the form 192.168.X.Y where X is the NPR number and Y is something like 32, 48, 64, or 80. Usually, we want to send test traffic (e.g., ping traffic) over the data network. But when we SSH from one host to another, we usually want to do this over the control network.
client> ssh onl.arl.wustl.edu onlusr> ssh onl052 onl052> ping n2p2
Remember: You must first SSH to the user host onl.arl.wustl.edu before you can SSH to any of the hosts assigned to your experiment.
What's Happening? The ping command failed because the routing table is empty. Since the target of the ping command refers to the internal network interface n2p2, the host attempts to send the ping packets over the internal network interface which is associated with the name n1p3 and the IP address 192.168.1.64. This internal interface is connected to NPR.1, but NPR.1 will drop the packets because there will be no routing table entry matching the packets' destination IP address (192.168.2.48).
Note: Since the ping packets are destined for n2p2 which has an IP address of 192.168.2.48, they will match the last entry in the routing table and be sent out port 4 on NPR.1.
A new window titled "pkts per sec" will appear.
Note: In most situations, polling once per second will show sufficient detail. If we polled once per second with ping traffic (one packet per second), the bandwidth chart would appear as a horizontal line. But by polling once every 0.25 seconds, the bandwidth chart will show spikes occuring once per second.
Strictly speaking, this step is unnecessary when there is only one monitoring chart since the RLI is smart enough to realize which chart is being referenced when there is only one monitoring chart.
Note: The number of of packets coming into NPR.1's port 3 will be monitored every one second. For ping packets, we expect to see one packet very second.
Note: The TXPKT menu option measures the number of packets transmitted from an output port. The RXBYTE and TXBYTE options count in units proportional to the number of bytes (e.g, Mbps).
The label "RXPKT" appears in the legend and a line appears.
Note: You do not need to do a commit to do any charting operations.
The appearance of the previous chart can be modified to reveal more of the ping-like behavior: bandwidth spikes appearing approximately once per second. The charting features of the RLI allow the user to focus on a portion of a chart by zooming in and out along both the X- and Y-axes.
Note: There are four spikes within every four second interval.
Remember: A particular line in the chart can be highlighted by passing the cursor over the legend label.
Follow the same steps to create a new chart which shows the traffic bandwidths in Mb/s (with title bandwidth).
A new window titled "bandwidth" will appear.
Note: The default polling interval will still be the 0.25 second that you globally set earlier.
Most monitoring window menu items are intuitive. Below is a brief summary of the menus. An example of the Add Formula item is given in the example on filters.
Here are some common problems/mistakes:
You must SSH first to the onl user host onl.arl.wustl.edu, and then to one of our ONL hosts.
Why? We have a firewall that disallows any direct connections to the ONL hosts assigned to your experiment.
Reason 1: You can only send traffic through the internal network (connecting your ONL hosts) from a node connected to the internal network. You can not ping the internal network interface from the onl user host onlusr.arl.wustl.edu.
Reason 2: You did not properly set up the routing tables. Remember that by default all routing tables start off empty.
If the lines fall on top of each other, you can highlight the others by passing the cursor over the lines label in the legend.
Reason 1: Try the View => Reset view menu item and then check that the Y-axis values are reasonable.Reason 2: If you mix monitoring of rates with absolute values, the ones with absolute values may fall outside the window. You probably want all of them to be either rates or absolute values but not a mix of the two.
Construct the dumbbell configuration shown right that will support
two ping flows: 1) n1p3-n2p3, and 2) n1p2-n2p2.
The ICMP echo request packets in the forward direction should take
the northern route (go out port 1.4 to port 2.1),
but the returning ICMP echo reply packets in the reverse direction should
take the southern route (go out port 2.4 to port 1.1).
How does the configuration file for this example differ from the one earlier?
Construct a pkts per sec packet rate chart with the packet rates shown to the right. Note that the RXPKT 1.1 plot is a dashed line while all of the other ones are solid lines. Can you explain the following features in the chart:
Revised: Fri, Aug 14, 2009
NPR Tutorial >> Examples | TOC |