KAREN wiki

KIWI ADVANCED RESEARCH AND EDUCATION NETWORK

Network Diagnostic Tool (NDT)

From KAREN wiki

Jump to: navigation, search

Contents

About NDT

The Network Diagnostic Tool (NDT) Server was developed by Internet2 to assist users of research and education (R&E) networks to troubleshoot and measure network performance. Further details can be found at http://e2epi.internet2.edu/ndt/index.html

NDT Server Installation

This installation is based on the NDT server instructions that can be found at Internet2, using Ubuntu 8.10 server. The KAREN NDT Server is currently based on the build detailed below.

An alternative ( and very easy option ) of installation, is using the ready made Performance Toolkit ISO which is available at http://www.internet2.edu/performance/toolkit/index.html. Its based on a Knoppix Boot CD.


Install Ubuntu 8.10 Server

Perform a standard installation of Ubuntu 8.10 server.

Edit /etc/network/interfaces to enable IPv6

apt-get update

apt-get upgrade

passwd root

su

Install the following packages to provide the necessary components for the installation

apt-get install binutils cpp sendmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential libstdc++6 rcconf libio-pty-perl libnet-ssleay-perl libauthen-pam-perl libmd5-perl gcc gcc-3.4 cpp libpcap-dev kernel-package libncurses5 libncurses5-dev libqt3-mt-dev python2.5-dev fakeroot wget bzip2 libncurses5-dev libreadline5-dev libimlib2 libimlib2-dev sun-java5-bin sun-java5-jdk sun-java5-jre csh

Download Packages

Once these packages are successfully installed download the Web100 and NDT source files.

cd /usr/src

wget http://e2epi.internet2.edu/ndt/download/ndt-3.5.0.tar.gz

wget http://www.web100.org/download/kernel/2.5.22/web100-2.5.22-200810130047.tar.gz

wget http://www.web100.org/download/userland/version1.7/web100_userland-1.7.tar.gz

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2

Patch the Kernel

Extract the New Kernel

tar xjf linux-2.6.27.tar.bz2

Create a symliynk for the newly extracted kernel

ln -s linux-2.6.27 linux

Move into the kernel directory

cd /usr/src/linux

Extract the patch

tar -xvzf /usr/src/web100-2.5.22-200810130047.tar.gz

bzip2 web100/ web100-2.6.27-2.5.22-200810130047.patch

Test the patch

bzip2 -dc /usr/src/linux/web100/ web100-2.6.27-2.5.22-200810130047.patch.bz2 | patch -p1 --dry-run

The output should be similar to what is shown below:

patching file Makefile
patching file Documentation/web100/locking.txt
patching file Documentation/web100/proc_interface.txt
patching file Documentation/web100/sysctl.txt
patching file fs/proc/Makefile
patching file fs/proc/root.c
patching file fs/proc/web100.c
patching file include/linux/netlink.h
patching file include/linux/proc_fs.h
patching file include/linux/sysctl.h
patching file include/linux/tcp.h
patching file include/net/tcp.h
patching file include/net/web100.h
patching file include/net/web100_stats.h
patching file net/ipv4/Kconfig
patching file net/ipv4/Makefile
patching file net/ipv4/sysctl_net_ipv4.c
patching file net/ipv4/tcp.c
patching file net/ipv4/tcp_cong.c
patching file net/ipv4/tcp_input.c
patching file net/ipv4/tcp_ipv4.c
patching file net/ipv4/tcp_minisocks.c
patching file net/ipv4/tcp_output.c
patching file net/ipv4/tcp_timer.c
patching file net/ipv4/web100_stats.c
patching file net/ipv6/tcp_ipv6.c

If there are no errors, then it is safe to proceed. Patch the kernel with the following command:

bzip2 -dc /usr/src/linux/web100/web100-2.6.27-2.5.22-200810130047.patch.bz2 | patch -p1

Determine your existing kernel version using

uname –r

Copy your existing configuration, replacing ‘uname-r’ with the output received above, with this command:

cp /boot/config-`uname -r` ./.config

Activate the Web100 Patch

Activate the web100 patch before recompiling the kernel.

make menuconfig

Follow the screenshots below to enable Web100 Network Enhancements.

Kernel1.JPG Kernel2.JPG Kernel3.JPG Kernel4.JPG

Choose "exit" four times, and save your new kernel.

Remove XEN Support

Make-kpkg may cause an “unexpected operator” error. If this occurs remove XEN support using make menuconfig. It can be found in Processor Type and Features >> Paravirtualized Guest Support >> Xen.

Compile the new kernel

Issue

make-kpkg clean

then

fakeroot make-kpkg --initrd --append-to-version=-web100 kernel_image kernel_headers

NOTE: This process could take several hours

Check for the presence of the new files

cd /usr/src

ls –l

You should see two files named

linux-headers-2.6.27-web100-web100_2.6.27-web100-web100-10.00.Custom_i386.deb

linux-image-2.6.27-web100-web100_2.6.27-web100-web100-10.00.Custom_i386.deb

Assuming they are both there install them using

dpkg -i linux-image-2.6.27-web100-web100_2.6.27-web100-web100-10.00.Custom_i386.deb

then

dpkg -i linux-headers-2.6.27-web100-web100_2.6.27-web100-web100-10.00.Custom_i386.deb

Reboot the new server making the kernel active

shutdown –r now

Once the server has rebooted check the new kernel version using

uname –r

The output should be

2.6.27-web100-web100

Install Web100 Userland

cd /usr/src/

tar -xvzf web100_userland-1.7.tar.gz

cd web100_userland-1.7

./configure --enable-python

make

make install

NOTE: You may encounter python errors because python is installed in …/python2.x directory instead of …/python.

ln -s /usr/include/python2.5 /usr/include/python

ln -s /usr/lib/python2.5 /usr/include/python

This should resolve the python problem.

Remove the files that are no longer needed.

cd ..

rm -Rf web100_userland-1.7

rm web100_userland-1.7.tar.gz

Install NDT

tar -xvzf ndt-3.5.0.tar.gz

cd ndt-3.5.0

./configure

make

make install

A script has been provided to edit the html page

cd conf/

./create-html.sh

Enter the appropriate details for the NDT web page, accepting defaults where required.

Remove files that are no longer required

cd ../..

rm -Rf ndt-3.5.0

rm ndt-3.5.0.tar.gz

rm web100-2.5.22-200810130047.tar.gz

Start the Processes

/usr/local/sbin/fakewww >& /dev/null & /usr/local/sbin/web100srv —ipv4 >& /dev/null & /usr/local/sbin/web100srv —ipv6 >& /dev/null &

You can now connect to the NDT using the URL http://<your_server>:7123

Tidy up

Configure the process start commands to run on start up.

Create the following script in /etc/init.d

vi ndtstart.sh

  1. !/bin/bash
  2. Start NDT Services

Echo “Starting NDT” /usr/local/sbin/fakewww >& /dev/null & /usr/local/sbin/web100srv -a >& /dev/null &

Make the file executable

chmod +x ndtstart.sh

Then edit /etc/rc.local

Add the follow line to the bottom of rc.local

/etc/init.d/ndtstart.sh

Access NDT

Using a browser with java enabled http://<server IP address>:7123