NETS header NETS Homepage UCAR Homepage NCAR Homepage SCD Homepage NETS Homepage About NETS Work requests & support
  Browse NETS topics: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

NPtoolkit (NETS notes)

Pete Siemsen, 2008-11-20

Introduction

The NPtoolkit is a standard tool set that is packaged as a stand-alone Linux distribution on a CD-ROM. It is described at http://e2epi.internet2.edu/network-performance-toolkit.html NCAR runs the toolkit on a machine named nptoolkit, a rack-mounted PC located in the Mesa Lab computer room. This webpage describes how the machine is configured.

Get an NPtoolkit distribution

We need a special version of the NPToolkit CD-ROM, so that when it boots it sends it's output to the console serial port. The NPToolkit support guys sent me an ISO image af the standard NPToolkit, but with that slight modification. If you don't need that feature, You can download an ISO image of the NPtoolkit from the webpage listed above and burn it to a CD yourself. Be sure to use a blank CD-ROM that can hold at least 700Mb - the NPtoolkit fills 690mb.

How the NPtoolkit saves state

The NPToolkit saves the state of the /home, /etc and /usr/local/etc directories across reboots. It uses a configure script to ease setup of most of the system's parameters, and saves the resulting state in /usr/local/etc.

Cables

Connect a serial port to the serial interface, which is the DB-9 on the lower left when looking at the back of the machine. It's not the DB-9 that's in the upper middle!

The machine has 3 Ethernet interfaces on the back: two 10/100 RJ45s that are built-in to the motherboard and one 10/100/1000 Ethernet that's on it's own card. The first two are eth0 and eth1. The GigE is eth2.

Boot

I installed the CD-ROM and rebooted the machine. It displayed the NPtoolkit picture followed by a "boot:" prompt, and waited 30 seconds before starting with defaurt boot parameters. We want to run the machine "headless", so we want to make the boot dialog happen out the console serial port. To do that, at the "boot:" prompt, type "console=ttyS0". To avoid this, we have to get a special version of the NPToolkit distribution that will send output to the console serial port by default.

Configure

Configuring the NPToolkit machine means going through several menus to set values, and then saving the values to a local hard disk for use the next time the machine boots. The configuration menus are displayed when the system boots, and after a pause to give you a chance to use them, the system continues with the boot process using whatever values have been saved. This means there has to be a hard drive to save the file on. If you have a hard drive but need to partition it or make a filesystem on it, boot off a standard Knoppix CD-ROM to do it.

Note: to change configuration values after the system is up, use:

sudo nptoolkit-configure.py

1. Configure drive to hold data/customizations

The system has two partitions: sda3 (swap) and sda4. I selected "/dev/sda4".

2. Configure site settings

		Welcome to the Internet2 Performance Node LiveCD site information configuration program.
		This program will prompt you for your site information.
		Default values are in []

		Enter your administrator's name [Joe Admin]: Pete Siemsen
		Enter your site name [Some Organization]: Front Range GigaPoP
		Enter your site's location [Some City, State, Country]: Denver, Colorado, USA
		Enter the communities of interest, separated by spaces (e.g. LHC Internet2 eVLBI).
		If you're confused as to what to enter, visit http://code.google.com/p/perfsonar-ps/wiki/NPToolkit []: Atmospheric
		Please choose your connection speed:
		1. 100 Mbps
		2. 1 Gbps
		3. 10 Gbps
		Select your connection speed [2]: 1
		Enter an email to be used for trouble reporting [joe.admin@organization.edu]: siemsen@ucar.edu
	

3. Set built-in account passwords

See the usual place for passwords for the knoppix and root accounts.

4. Enable/Disable Services

I left all the services turned on, and turned on SSH, which is off by default.

5. Manage Users

The only reason to use this menu item is to set the password on the root account if you forget it. Then you can log in as root to use commands like fdisk and mke2fs.

6. Configure BWCTL

		Welcome to the Internet2 Performance Node LiveCD BWCTL configuration program.
		This program will help you customize BWCTL to meet your needs.
		Default values are in []

		Please provide some basic information about your system...
		What is the maximum amount of bandwidth (in Mbps) that should be usable for testing? (to omit type *) [900]: 
		The next few questions let you specify what tests you are willing to let users perform
		What is the maximum test duration (in seconds)? (to omit type *) [60]: 
		What is the maximum number of pending requests to queue? (defaults to unlimited):
		How many seconds should pending requests be allowed to queue? [1800]: 
		Advanced options...
		You may grant specific networks unrestricted access now.
		Enter a network and mask [ex. 192.168.0.0/16] (blank line to stop): 

		You may forbidspecific networks from performing tests now.
		Enter a network and mask [ex. 192.168.0.0/16] (blank line to stop): 

		You may now grant specific users unrestrictedaccess. You will need to provide a username & password for each user.
		To delete a user, select their username from the list below.
		1. Add a new user
		0. Exit
		Make a selection: 0

		BWCTL configuraiton files saved successfully.
	

7. Configure NTP

Some of the tools in the NPToolkit won't work well if NTP isn't maintaining accurate system time.

8. Configure OWAMP

		Welcome to the Internet2 Performance Node LiveCD OWAMP configuration program.
		This program will help you customize OWAMP to meet your needs.
		Default values are in []

		Please provide some basic information about your system...
		What is the maximum amount of bandwidth (in Mbps) that should be usable for testiing? (to omit type *) [1]: 
		What is the maximum amount of disk space (in megabytes) that should be usable for testing? (to omit type *) [500]: 

		The next few questions let you specify what tests you are willing to let users perform
		Should buffered data files be deleted automatically as they are fetched? [yes]:  
		Should buffered data files be deleted automatically as they are fetched? [yes]:

		Advanced options...
		You may grant specific networks unrestrictedaccess now.
		Enter a network and mask [ex. 192.168.0.0/16] (blank line to stop): 

		You may forbid specific networks from performing tests now.
		Enter a network and mask [ex. 192.168.0.0/16] (blank line to stop): 

		You may now grant specific users unrestricted access. You will need to provide a username & password for each user.
		To delete a user, select their username from the list below.
		1. Add a new user
		0. Exit
		Make a selection: 0
	

9. Configure Static IP

For production, I set this (n.toolkit.ucar.edu, VLAN 128):
		Enter the network interface identifier (Enter * to cancel) [eth2]: 
		Enter the IP you would like [x.x.x.x]: 128.117.128.35
		Enter your netmwask [255.255.255.0]: 
		Enter your gateway's IP address [x.x.x.x]: 128.117.128.251
		Enter your nameserver's IP address (etc): 192.43.244.12
		Enter your nameserver's IP address (etc): 192.43.244.5
		Enter your nameserver's IP address (etc): 
		Do you want to start this interface (this may take a little while)? [Yes]: 
	
For testing, I set this (pete-test.ucar.edu, VLAN 2):
		Enter the network interface identifier (Enter * to cancel) [eth2]: 
		Enter the IP you would like [x.x.x.x]: 128.117.2.21
		Enter your netmwask [255.255.255.0]: 
		Enter your gateway's IP address [x.x.x.x]: 128.117.2.249
		Enter your nameserver's IP address (etc): 128.117.8.94
		Enter your nameserver's IP address (etc): 128.117.8.250
		Enter your nameserver's IP address (etc): 
		Do you want to start this interface (this may take a little while)? [Yes]: 
	

10. Change Timezone

		Your current time zone is set to Etc/UTC
		Do you want to change that? [n]: y

		Please enter the number of the geographic area in which you live:


		1) Africa			7) Australia

		2) America			8) Europe

		3) US time zones		9) Indian Ocean

		4) Canada time zones		10) Pacific Ocean

		5) Asia				11) Use System V style time zones

		6) Atlantic Ocean		12) None of the above


		Then you will be shown a list of cities which represent the time zone
		in which they are located. You should choose a city in your time zone.

		Number: 3

		Alaska Aleutian Arizona Central East-Indiana Eastern Hawaii Indiana-Starke
		Michigan Mountain Pacific Samoa

		Please enter the name of one of these cities or zones
		You just need to type enough letters to resolve ambiguities
		Press Enter to view all of them again
		Name: [] Mountain
		Your default time zone is set to 'US/Mountain'.
		Local time is now:      Fri Feb 13 13:05:41 MST 2009.
		Universal Time is now:  Fri Feb 13 20:05:41 UTC 2009.
	

11. Modify advertised interface

TBD.

Set MTU

By default, Ethernet interfaces will be started with an MTU of 1500. We want the main GigE interface to have a "jumbo" MTU of 9000. To make this happen, add the following line to /etc/rc.local, just before the "exit 0" line:

ifconfig eth2 mtu 9000

Top-level Web page

Web to https://192.43.244.35/. Log in as knoppix.

Cacti

Web to https://192.43.244.35/admin/cacti/. Log in as knoppix.

PingER

What is PingER?

Web to https://192.43.244.35/admin/pinger/. Log in as knoppix.

perfSONAR-BUOY

PerfSONAR-BUOY is

Web to https://192.43.244.35/admin/perfsonarbuoy/. Log in as knoppix.

perfSONAR

See http://code.google.com/p/perfsonar-ps/wiki/NPToolkit

There's an LS lookup service at https://dc211.internet2.edu/cgi-bin/perfAdmin/tree.cgi

From: Aaron Brown <aaron@internet2.edu>
Date: February 20, 2009 6:00:53 AM MST
To: siemsen@ucar.edu
Subject: Re: NPToolkit question

Can you supply a pointer that explains what to do with perfSONAR? I found a link to the thing that parses traceroute output and draws some graphs. I ran the "perfSONAR UI", which doesn't seem to be ready for prime time. I guess I'm supposed to set up RRD captures of my Internet-facing router interfaces so others can see how loaded my links are.

It depends on what you want to do with it. Right now, interested parties can perform bwctl, owamp, ndt and npad tests. If you want to do some active testing of your own, you can set it up to regularly perform bwctl measurements to other sites, to regularly ping other sites, or to poll your interfaces. If you go to https://[server ip]/ there are links to the configuration guis for these three activities. Once these are setup, there are links on that same page to get graphs of the data. Also, when those are setup, interested parties will be able to use links from the various public lists to see those graphs as well.

monitoring perfSONAR as a service from Nagios

See http://code.google.com/p/perfsonar-ps/wiki/NagiosDevelopment

Lists of active NPToolkit servers

The NPToolkit distribution automatically registers itself with the NPToolkit community, so that others can run tests against it. The community includes several servers deployed in ESnet. See the perfSONAR Global Service and Data View

From: Aaron Brown <aaron@internet2.edu>
Date: February 20, 2009 12:27:09 PM MST
To: siemsen@ucar.edu
Subject: Re: NPToolkit question

I'm going to move this machine to our GigaPoP and give it a different IP address. I'll try to get it added to various public lists of servers (OWAMP, BWCTL, NDT, NPAD, etc).

Pete

Our public lists are automatically generated based on the currently available services. The disk should automatically register its services with the Lookup Service so you shouldn't have to do anything when you move them.

Aaron

Cool. I see that it works, my machine is listed, but not in the lists of PSB_BWCTL, SNMP or PINGER tables. Should I do something to get it listed?

Pete

Those just show the data if you're running regular data collection. If you configure PingER/perfSONAR-BUOY/Cacti on the hosts, your machine would show up there.

Aaron

Using the tools

To test that things are working, you need to know where other NPToolkit servers are. See the perfSONAR Global Service and Data View

Using mtr (enhanced traceroute)

Here's a traceroute to Lawrence Livermore National Laboratory in California (a random NPToolkit server in ESnet, chosen from the list at perfSONAR Global Service and Data View):

		knoppix@0[~]$ mtr --report -c 10 llnl-owamp.es.net
		HOST: Knoppix                     Loss%   Snt   Last   Avg  Best  Wrst StDev
		1. mlra.ucar.edu                 0.0%    10    0.3   0.4   0.3   1.5   0.4
		2. tcom-gs-1-n243-72.ucar.edu    0.0%    10    0.5   0.4   0.4   0.5   0.1
		3. nlrb-frgp.frgp.net            0.0%    10    9.6 147.3   1.2 606.6 181.8
		4. denvcr2-frgp.es.net           0.0%    10    1.2   1.8   1.1   7.0   1.8
		5. sunncr1-denvcr1.es.net        0.0%    10   28.4  28.4  28.4  28.4   0.0
		6. sunnsdn2-sunncr1.es.net       0.0%    10   28.2  30.9  28.2  55.1   8.5
		7. snvmr2-ip-sunnsdn2.es.net     0.0%    10   28.5  30.9  28.4  41.8   5.1
		8. llnlmr2-ip-snvmr2.es.net      0.0%    10   29.2  29.2  29.2  29.3   0.0
		9. llnl-owamp.es.net             0.0%    10   29.3  29.3  29.2  29.3   0.0
		knoppix@0[~]$ 
	

Using OWAMP (one-way ping)

Use OWAMP like you'd use ping. The command arguments are intentionally similar to theso of the typical ping command. Here's a one-way ping from the NPToolkit machine to the Stanford Linear Accelerator in California (a random NPToolkit server in ESnet, chosen from the list at perfSONAR Global Service and Data View):

		knoppix@0[~]$ owping slac-owamp.es.net
		Approximately 13.1 seconds until results available

		--- owping statistics from [192.43.244.35]:43618 to [slac-owamp.es.net]:8818 ---
		SID:	c681fe92cd49b1cc082b2486340cbe05
		first:	2009-02-20T15:48:45.318
		last:	2009-02-20T15:48:53.684
		100 sent, 0 lost (0.000%), 0 duplicates
		one-way delay min/median/max = 14.4/14.5/14.5 ms, (err=0.382 ms)
		one-way jitter = 0.1 ms (P95-P50)
		Hops = 7 (consistently)
		no reordering

		--- owping statistics from [slac-owamp.es.net]:8822 to [192.43.244.35]:43619 ---
		SID:	c02bf423cd49b1cc0cc436fc2f56d4ff
		first:	2009-02-20T15:48:45.210
		last:	2009-02-20T15:48:55.348
		100 sent, 0 lost (0.000%), 0 duplicates
		one-way delay min/median/max = 14.2/14.3/14.4 ms, (err=0.382 ms)
		one-way jitter = 0 ms (P95-P50)
		Hops = 7 (consistently)
		no reordering

		knoppix@0[~]$ 
	

The output shows the performance in both directions. Of course, the pings might've taken different paths in each direction.

Using BWCTL (remote site-to-site iperf)

Test inbound

Here's a test from a machine at at Lawrence Livermore National Labs to the NCAR NPToolkit machine on 2009-04-17. The send-host defaults to the local machine, and I specified the receive-host with the "-c" option.

		knoppix@0[~]$ bwctl -c llnl-pt1.es.net
		bwctl: Using tool: iperf
		bwctl: 27 seconds until test results available

		RECEIVER START
		bwctl: exec_line: /usr/local/bin/iperf -B 198.129.254.106 -s -f b -m -p 5037 -t 10
		bwctl: start_tool: 3448977924.756123
		------------------------------------------------------------
		Server listening on TCP port 5037
		Binding to local address 198.129.254.106
		TCP window size: 65536 Byte (default)
		------------------------------------------------------------
		[ 47] local 198.129.254.106 port 5037 connected with 128.117.128.35 port 5037
		[ ID] Interval       Transfer     Bandwidth
		[ 47]  0.0-10.0 sec  637526016 Bytes  508901992 bits/sec
		[ 47] MSS size 8192 bytes (MTU 8232 bytes, unknown interface)
		bwctl: stop_exec: 3448977949.307577

		RECEIVER END
		knoppix@0[~]$
	
Test outbound

Here's a test from the local nptoolkit machine to another one at Lawrence Livermore National Labs on 2009-04-17. The send-host defaults to the xxxxxxxxxxxxxxxxxxxx machine, and I specified the receive-host with the "-c" option.

		TBD
	
Test between two remote NPToolkit servers

Here's a remote test I ran between Penn State and the University of Chicago (random NPToolkit servers chosen from the list at perfSONAR Global Service and Data View):

		knoppix@0[~]$ bwctl -c 128.118.159.105 -s 128.135.158.216
		bwctl: Using tool: iperf
		bwctl: 17 seconds until test results available

		RECEIVER START
		bwctl: exec_line: /usr/local/bin/iperf  128.118.159.105 -s -f b -m -p 5004 -t 10
		bwctl: start_tool: 3443885110.967949
		------------------------------------------------------------
		Server listening on TCP port 5004
		Binding to local address 128.118.159.105
		TCP window size: 87380 Byte (default)
		------------------------------------------------------------
		[ 14] local 128.118.159.105 port 5004 connected with 128.135.158.216 port 5004
		[ 14]  0.0-10.5 sec  73465856 Bytes  55914918 bits/sec
		[ 14] MSS size 1448 bytes (MTU 1500 bytes, ethernet)
		bwctl: stop_exec: 3443885125.577992

		RECEIVER END
		knoppix@0[~]$
	

Automated tests with other sites

Sites we might want to do automated tests to include

Shutdown

To schedule a halt, like for a machine-room powerdown, do like this
sudo shutdown -h 05:15
The time is specified as hh:mm, so you unfortunately can't specify a time more than a day from now. The shutdown command won't return to a prompt - it just sits there, but if you're in an ssh session and the ssh session goes down, the shutdown will still occur.
Address comments or questions about this Web page to the Network Engineering & Telecommunications Section (NETS) at nets-www@ncar.ucar.edu. The NETS is part of the Computational & Information Systems Laboratory (CISL) of the National Center for Atmospheric Research (NCAR), which is sponsored by the National Science Foundation (NSF) and managed by the University Corporation for Atmospheric Research (UCAR). This website follows the UCAR General Privacy Policy and the NCAR/UCAR/UCP Terms of Use.