Installation of NDT on ndt.aglt2.org

See also Patrick McGuigan's page at NDTInstallation.

Installation overview (more details below)

  1. Applied the web100 kernel patch to kernel SRPM, build/install new kernel RPM. Systems running a patched kernel will have a /proc/web100 directory.
  2. Compiled and installed web100 userland (v1.6). (configure options: --enable-python --disable-gtktest LDFLAGS=-L/usr/lib64/python2.3/")
  3. Compiled and installed ndt 3.3.19 (no configure options).
  4. Disabled IPv6 support in web100srv (--ipv4 option) to avoid known bug in web100 libraries.
  5. Opened ports 7123, 3001-3003, and 38420-38430 on host firewall. Used --mrange option to web100srv to specify high port range.

Building a new kernel rpm for web100

The easiest thing to do, at this point, is to grab the patched SRPM from http://linat09.grid.umich.edu/UL/kernel-2.6.20-10.3web100.src.rpm

Run:
rpmbuild --rebuild kernel-2.6.20-10.3web100.src.rpm 

A new kernel RPM will pop out into /usr/src/redhat/RPMS/. The binary RPMS below may work for you instead of building your own: http://linat09.grid.umich.edu/UL/kernel-smp-2.6.20-10.3web100.x86_64.rpm
http://linat09.grid.umich.edu/UL/kernel-smp-2.6.20-10.3web100.i686.rpm

Here's the procedure to make the patched SRPM:

  1. Install the .src.rpm for your kernel.
  2. The web100 kernel patch is available from http://www.web100.org/download/. Grab the one for your kernel version. Untarzip it, put the .patch file in /usr/src/redhat/SOURCES.
  3. In our case, at least two patch hunks failed to apply and thus stopped the build later. Just strip those bits out of the file.
  4. Add this line (as appropriate to kernel patch version) to the spec file in SPECS:
     Patch2801: web100-2.6.20-2.5.14-200702061450.patch 
  5. Run
    rpmbuild -bp kernel-2.6.20.spec 
    This will create the kernel build directory in BUILD.
  6. In the kernel build directory under BUILD, for each kernel config file that will be needed during your build, rename it to .config, run make menuconfig, and configure web100 options. Then copy the .config file to the SOURCES directory under its original name.
  7. In our case:
     rpmbuild -ba --target x86_64 kernel-2.6.20.spec 
  8. Find RPM and SRPM in appropriate dirs under /usr/src/redhat.

Compiling web100 userland (1.6)

This was done once the machine was running on the web100 enabled kernel.

  1. Grab the current version from http://www.web100.org/download
  2. In source directory:
     ./configure --enable-python --disable-gtktest LDFLAGS=-L/usr/lib64/python2.3/ 
    (it seemed good to make the python module, and it didn't find the 64 bit python libs at first).
  3. make, make install

Compiling NDT (3.3.19)

Follow the directions at http://e2epi.internet2.edu/ndt/. No configure options were used for our installation.

Configuring it all

 /etc/ndt.conf:
          administrator_view      # boolean flag to set administrator view
          multiple_clients
          syslog
   

The NDT distribution comes with startup script that will work with chkconfig. Copy it to /etc/rc.d/init.d/ and chkconfig on.

In the distribution, there is a tcpbw100.template file. Copy it to the ndt installation/webroot as tcpbw100.html and edit accordingly.

The web100 libraries have an IPv6 bug that NDT triggers if web100srv is run with IPv6 enabled. In the ndt startup script, add
--ipv4
to WEB100SRV_OPTIONS. See this post by Richard Carlson for more information and a code snippet that fixes the problem. It's a very small fix - I would nonetheless prefer to wait until the developers put it into a release.

To make NDT work, I had to open a few ports on the firewall. I also had to configure web100srv to restrict the range of tcp ports it uses for multi-test mode using --mrange.

Anyways, after all was said and done, here are the options used in our installation:

# note:  ports specified are already defaults, just wanted to document them
# mrange by default is any random tcp high port, needed a range to open
# on firewall

WEB100SRV_OPTIONS="-a --ipv4 -p 3001 --midport 3003 --c2sport 3002 --s2cport 3003 --mrange 38420:38430"
FAKEWWW_OPTIONS="-l /var/log/fakewww.log"

Other notes

Web100 includes a command line client that performs the same tests as the java applet. Basic usage is as such:
web100clt -l -n ndt.aglt2.org
(trust me, you want to see the stuff it outputs with -l)

-- BenMeekhof - 12 Apr 2007
Topic revision: r10 - 16 Oct 2009, TomRockwell
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback