Internet Performance Measurement and Analysis (IPMA)
Internet Statistics Toolset
User Guide
Version 1.0 Alpha
(Draft 4/14/98 3:24 PM)
Table of Contents
*Introduction
*Document Conventions
*Getting Help
*Credits
*1. Overview
*2. ASExplorer
*Main Window
*Real-Time Graphs
*Table of Current Flapping Prefixes
*3. NetNowd
*Synopsis
*Options
*Description
*Sample Configuration File
*Configuration Commands
*Interactive Interface Commands
*Viewing the Results
*Related Documents
*
The Regents of the University of Michigan ("The Regents") and Merit Network, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above
copyright notice, this list of conditions and the
following disclaimer.
2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other
materials provided with the distribution.
3. All advertising materials mentioning features or use of
this software must display the following acknowledgement:
This product includes software developed by the University of Michigan, Merit Network, Inc., and their contributors.
4. Neither the name of the University, Merit Network, nor the
names of their contributors may be used to endorse or
promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This chapter introduces the IPMA User Guide and explains how to obtain further information about the project.
The following document conventions are used in the User Guide:
For more information about IPMA, send mail to ipma-support@merit.edu.
The IPMA development teams are available to answer questions and provide configuration advice. We are also very interested in bug reports, feature requests, and general feedback.
A mailing list, ipma-discuss-request@merit.edu is also available for IPMA users to share advice and experiences with the toolkit.
The Internet Performance Measurement and Analysis (IPMA) project is supported by National Science Foundation grant NCR-9710176, a gift from Intel Corporation.
The University of Michigan/Merit Network IPMA development team includes: Craig Labovitz, Farnam Jahanian, Rob Malan, Susan Rebecca Harris, Scott Johnson, Jimmy Wan, Aaron Klink, Mukesh , and Nancy Scala.
The IPMA team would also like to thank other colleagues who have made major contributions to the project: John Hanley (Yahoo), K. Claffy (CAIDA), Curtis Villamizar (ANS), and Jay Brock (AT&T).
The Internet Performance Measurement and Analysis project is a joint effort of Merit Network, Inc., and the Department of Electrical Engineering and Computer Science at the University of Michigan’s College of Engineering.
IPMA focuses on two primary areas of Internet statistics: routing stability, topology, and visualization; and provider performance measurements. The overall goal of the project is to develop tools and perform statistical research that promotes the stability and rational growth of the Internet.
The IPMA project works closely with the Cooperative Association for Internet Data Analysis (CAIDA) and the National Laboratory for Applied Network Research (NLANR) to create a shared measurement infrastructure for the U.S. Internet.
The ASExplorer applet queries the Route Server systems at the five major U.S. inter-exchange points (IXPs) and determines how many BGP routing announcements have been made by each of the Route Servers' peers in the last 75 minutes. Currently, ASExplorer can display statistics from MAE-East (Washington, D.C.), MAE-West (San Francisco area), the Ameritech Network Access Point (AADS, in Chicago), the Digital Internet Exchange (PAIX), in Palo Alto), and the PacBell NAP in San Francisco.
ASExplorer uses the Salamander data distribution system to provide updated information via a real-time push webcasting system. Users simply launch the Java applet, click on an AS, and follow the links to display the number of announcements made by successive layers of neighbor ASs.
Once you launch the Java applet, it may take a minute or so for the new window to appear on your screen. In the applet window, you'll see a black box representing the AS that is your current "vantage point" in the Internet topology. BGP announcements are made right-to-left, with upstream ASs to the right of the vantage point AS, and downstream ASs to the left.
By default, a red box in the main window (shown above) indicates that the AS has made over 75 BGP routing announcements in the last 75 minutes. Orange indicates over 16 announcements, and so on. Users can easily change the color coding to use any system preferred. Similarly, the user can change the value at which ASExplorer will filter out data. For example, by default, only AS's that make more than 4 BGP announcements will be displayed.
By choosing 'Show Graph of Current Instability Levels', you can display instability graphs that are constantly updated in real-time. The graph plots the aggregate number of BGP announcements and withdraws in 15 minute intervals seen at the Route Servers today.
By Choosing 'Show Current Flapping Prefixes' under 'Show Data', you can view a table detailing the number of BGP announcements and withdrawals recieved from each Route Server peer during the last fifteen minutes.
netnowd [-v] [-f config file]
-f config_file
Specify the configuration file to use. By default, NetNowd looks in /etc/netnowd.config.
-v
verbose logging
NetNowd collects network performance statistics information and reports real-time results to one or more Statistics servers (SalServer). In turn, reporting tools and Java clients can connect to a statistics server to generate real-time and historical reports of network performance. NetNowd is the back-end tool for a number of visualization clients, including ASExplorer, FlapGraph and TopologyNow. See the IPMA web site (http://www.merit.edu/ipma) for more information about the visualization tools.
This release of NetNowd includes support for the following network measurements:
NetNowd first reads its configuration file (by default /etc/netnowd.config) to configure security controls, plink streams and other measurements. If a configuration file does not exist on disk, NetNowd will create a default configuration in volatile memory. The configuration file strongly resembles the files used by Cisco Systems.
After reading the configuration file, NetNowd will begin network measurement tests and report the results to the one or more configured statistics servers. NetNowd will also listen on the UII port for user telnet connections (specified in /etc/services as the TCP port for "netnowd").
The daemon has been set up to run in a default configuration "out of the box". You should simply be able to download the binary and run it. If you want more control over what the daemon does (such as which machines it peers with, how it outputs error and diagnostic information, and security features) you will need to edit the configuration file. By default, the daemon participates in an "Alpha" community of NetNowd testers and publishes performance data to a public statistics server (currently based at Merit Network, Inc.).
Note that if you want to specify the next hop of a plink packet, or if you want to do a local (subnet) plink, you will need to run the NetNow daemon as root.
Below is an example of starting the NetNowd daemon from the command line:
snoopy% ./netnowd -v
Jan 14 22:11:00 [1] Netnowd opened the config file /etc/netnowd.config
Jan 14 22:11:00 [1] CONFIG: password foo 0
Jan 14 22:11:00 [1] CONFIG community um_campus added
Jan 14 22:11:01 [1] CONFIG salamander host zounds.merit.net (198.108.0.13) with key 123456
Jan 14 22:11:01 [1] Allowing unconfigured peers
Jan 14 22:11:01 [1] Listening for plink packets on port 5670 (socket 0)
Jan 14 22:11:01 [1] ERROR ** could not open hme **
Jan 14 22:11:01 [1] ** Physical interface unavailable. **
Jan 14 22:11:01 [1] UII listening for connections on port 5674 (socket 6)
Jan 14 22:11:01 [1] Attempting connect to Salamander Server zounds.merit.net (key 123456)
Jan 14 22:11:01 [1] Salamander connection made!
Jan 14 22:11:01 [1] SALAMANDER query um_campus
Jan 14 22:11:01 [1] SALAMANDER query NetNow:Stats
Jan 14 22:11:01 [4] SALAMANDER recv community: um_campus, type: uping, data: compute.merit.edu zax.eecs.umich.edu zounds.merit.net snoopy.merit.net mrt.merit.edu zowie.merit.edu
Notice in the above example that we did not run NetNowd as root, and the daemon could not obtain access to the ethernet (hme) interface. Lacking this access, the NetNowd probe will only be able to send UDP packets via the default route.
A sample NewNowd configuration file is shown on the next page.
!#################################################################### ! NetNowd—MRT version 1.4.1 ALPHA December 17, 1997 !#################################################################### ! debug all /var/tmp/netnowd.log 1000 ! password blechy 1 ! source_ip 192.41.177.169 /dev/le ethernet ! ! The sites we plink and accept plinks from ! community alpha ! ! Salamander Server salserver zounds.merit.net 123456 ! allow unconfigured-peers ! ! plink_subnet 192.41.177.181 tag 3561 # MCI plink_subnet 192.41.177.80 tag 5000 # IOSnet plink_subnet 192.41.177.87 tag 4969 # NetAxs ! access-list 1 198.108.60.0 permit access-list 1 141.213.8.0 permit !###################################################################
Configuration commands are used to configure NetNowd; interactive interface (telnet) commands are used to show and modify the status of various metrics, such as packet latency and loss.
A WARNING – Most, but not all, configuration commands may be issued even through the interactive, telnet interface. In this alpha release of NetNowd, the modification of volatile memory occasionally may have unintended side effects. In rare instances, the alteration of some volatile memory setting may crash the application. We recommend most configuration changes be made directly to the configuration file on disk. The program must be restarted, or rebooted, to reread the changed configuration file. Improved support for configuration management will be available with the next release of NetNowd.
uii—configures the user interface (by telnet)
uii_password <string>
Sets a password
uii port
Changes the port number with
debug—controls debug options
debug
Logs debug messages specified
.... info, norm, trace, parse, packet, state, timer, all .... filename or "stdout". Some applications also support "syslog"
access-list—defines a filter
access-list
Defines an access list
Matches are performed in the order in which they appear. At the end of a list with the same number, permit all is assumed.
!—comment and separator
Comments can appear at the beginning of a line, or any other place in the line. A comment at the beginning of a line is treated as a separator, which ends a command clause followed by its sub-commands, such as router and interface.
redirect—allows shell-like redirection of output (> or >>).
redirect
<directory>Allows redirection to files in this directory. Unrestricted redirection was deemed a security problem.
plink—define a remote plink host
plink
Sends a one-way UDP stream to the specified host. If next hop is specified, NetNowd will encapsulate the UDP packets in a MAC-level packet destined for the nexthop interface.
If tag is specified, NetNowd will "tag" all UDP packets with this number. A tag is generally used to allow client visualization tools to distinguish between multiple plink streams between the same two hosts utilizing different nexthops.
plink_subnet
plink_subnet
Sends a one-way UDP stream to the interface of a machine on the same subnet
community—define a community
community
NetNowd queries the statistics server for all hosts belonging to this community. The community identifies both machine name, as well as the test to perform (plink, icmp, etc). After recieiving a response from the statistics server, NetNowd will initiate the specified test.
At the moment, there is no convenient way to add machines to a community. Send mail to ipma-support@merit.edu if you would like a machine added.
By default, NetNowd uses "alpha" as the test community.
salserver—specify the Statistics server
salserver
Publish results of network performance tests to
NetNowd also requires a statistics to query for information about communities.
packet_size—specify the packet size of all plink packets
packet_size
Set the size of all plink packets as
interval—specify the inter-transmission time of plink packets
interval
Set the delay between plink packets as
NetNowd provides an interactive telnet user interface for configuration and display/management of various statistics and measurement parameters.
The port number can be specified in the configuration file, or in /etc/services ("netnowd"). The default port is 5674. If a password is specified in the configuration, it must be supplied on logging in.
Unix shell-like redirection ( or filename) is available for output. To edit a line, emacs-like line editing including ^b, ^f, ^d, ^k, ^u and ^c is available. To reuse a previous line, tcsh-line history function is available by typing ^p and ^n.
The following commands are available from the user interface.
Below is an example of several netnowd user interface commands:
[ 9] NETNOWD> show stats
SalServer: zounds.merit.net (9) [Connected]
Send Update Timer: (5) Recv Update Timer: (5)
Last update from NADMIN Server on zounds.merit.net (8)
Destination Sent Recv Delay
----------- ---- ---- -----
home.merit.edu 115 0 -
zowie.merit.edu 119 0 -
* zax.eecs.umich.edu - - -
compute.merit.edu 119 119 -
zounds.merit.net 119 119 567.9 67580
snoopy.merit.net 120 120 -
mrt.merit.edu 117 0 -
Interval 500ms Jitter 200ms
A number of client applications are available for viewing and monitoring NetNow performance data. NetNowGraph is a Java application that graphs latency/loss information between a given source probe and destination over the course of a day. NetNowReport is a Perl program that shows the latency/loss information from a given source to all destinations over the course of a day. Both tools are distributed with the IPMA Internet Performance Toolkit at http://www.merit.edu/ipma/tools. A version of NetNowReport is also distributed with the NetNowd source code.
NetNow Visualization Tool
Almes, G., Mathis, M., Mahdavi, J. and V. Paxson. "Framework for IP Performance Metrics" (ftp://ietf.org/internet-drafts/draft-ietf-ippm-framework-01.txt). Defines a general framework for particular metrics to be developed by the IETF's IP Performance Metrics (IPPM) Working Group.
Almes, Guy and S. Kalidindi, "A One-way Delay Metric for IPPM." (ftp://ietf.org/internet-drafts/draft-ietf-ippm-delay-01.txt).